春考c语言考试题库(名校卷)_第1页
春考c语言考试题库(名校卷)_第2页
春考c语言考试题库(名校卷)_第3页
春考c语言考试题库(名校卷)_第4页
春考c语言考试题库(名校卷)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

春考c语言考试题库第一部分单选题(50题)1、若inti=1;执行while(i<=3){printf("%d",i);i++;}输出结果是?()

A.123

B.1234

C.012

D.无输出

【答案】:答案解析:i初始1,满足i<=3,执行3次,输出123,i最终4,循环结束,故选A。2、若charstr[10];执行strcpy(str,"hello");后str的长度是?()

A.5

B.6

C.10

D.不确定

【答案】:答案解析:strcpy复制字符串"hello"(含\0),长度为5(不含\0),故选A。3、若inta=3,b=5;执行以下代码后输出结果是?()if(a>b)printf("A");elseprintf("B");

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:a=3<b=5,条件为假,执行else分支,输出B,故选B。4、若inta=3;执行a+=aa;后a的值是?()

A.12

B.6

C.9

D.15

【答案】:答案解析:优先级先乘后加,a+=aa等价于a=a+(aa)=3+(33)=12,故选A。5、continue语句在循环中的作用是?()

A.终止整个循环

B.跳过本次循环剩余部分,继续下一次

C.暂停循环

D.无作用

【答案】:答案解析:continue跳过本次循环剩余代码,直接进入下一次循环条件判断,故选B。6、以下循环中,循环次数为3次的是?()

A.for(i=1;i<=3;i++)

B.while(i=3)

C.do{i++;}while(i<3);

D.for(i=5;i>0;i--)

【答案】:答案解析:A执行3次(1-3),B是无限循环,C(i初始0)执行3次,D执行5次,题目问“3次”,A明确正确,故选A。7、以下哪个数据类型用于存储单个字符?()

A.int

B.char

C.float

D.double

【答案】:答案解析:char用于存储单个字符(ASCII码),int存储整数,float/double存储浮点数,故选B。8、若inta[3]={1,2,3},p=a;则(p+2)的值是?()

A.1

B.2

C.3

D.无定义

【答案】:答案解析:p+2指向a[2],解引用*(p+2)=a[2]=3,故选C。9、C语言程序的入口函数是?()

A.main()

B.printf()

C.scanf()

D.main

【答案】:答案解析:所有C程序从main()函数开始执行,必须有且仅有一个,故选A。10、若inti=1,s=0;执行while(i<=5){s+=i;i++;}后s的值是?()

A.15

B.10

C.5

D.0

【答案】:答案解析:循环累加1+2+3+4+5=15,s=15,故选A。11、若intx=5;执行if(x>3&&x<7)printf("yes");elseprintf("no");输出结果是?()

A.yes

B.no

C.yesno

D.无输出

【答案】:答案解析:x=5>3且<7,条件为真,输出yes,故选A。12、以下关于数组初始化的说法正确的是?()

A.数组必须初始化

B.数组初始化时元素个数不能少于长度

C.数组初始化时可部分赋值

D.数组初始化后不能修改

【答案】:答案解析:数组可部分赋值(未赋值元素默认0),A数组可不用初始化,B可少于长度,D数组元素可修改,故选C。13、以下哪个关键字用于定义整型变量?()

A.char

B.int

C.float

D.double

【答案】:答案解析:int定义整型,char字符型,float单精度浮点型,double双精度浮点型,故选B。14、若inti=0;执行while(i<5){printf("%d",i);i++;if(i==3)break;}输出结果是?()

A.012

B.0123

C.01

D.无输出

【答案】:答案解析:i=3时break,输出012,故选A。15、表示“x大于5且小于10”的合法C语言表达式是?()

A.5<x<10

B.x>5||x<10

C.x>5&&x<10

D.x>5&x<10

【答案】:答案解析:逻辑与用&&,逻辑或用||,A是连续比较语法错误,&是按位与,故选C。16、若inti=0;执行for(;;){if(i==4)break;printf("%d",i);i++;}输出结果是?()

A.0123

B.01234

C.无限循环

D.无输出

【答案】:答案解析:for(;;)是无限循环,i=4时break,输出0123,故选A。17、以下二维数组初始化正确的是?()

A.inta[2][3]={{1},{2},{3}};

B.inta[2][3]={1,2,3,4,5};

C.inta[2][3]={{1,2,3},{4,5,6}};

D.inta[2][3]={1,2,3,4,5,6,7};

【答案】:答案解析:A行数超2,B元素不足6个(补0),C标准初始化,D元素超6个,故选C。18、以下for循环的语法错误是?()

A.for(inti=0;i<5;i++)printf("%d",i);

B.for(i=0;i<5;i++)printf("%d",i);

C.for(;i<5;i++)printf("%d",i);

D.for(i=0;;i++)printf("%d",i);

【答案】:答案解析:B中i未定义(需先声明inti;),A(C99标准允许循环内定义)、C(初始化省略)、D(条件省略,无限循环)语法均正确,故选B。19、若inta=5,p=&a;则&p的值是?()

A.5

B.&a

C.p

D.无定义

【答案】:答案解析:*&p等价于p,即指针p自身的值(a的地址),故选C。20、若inta[5]={1,2,3,4,5};则*(a+4)的值是?()

A.4

B.5

C.1

D.2

【答案】:答案解析:a+4是第五个元素地址,*(a+4)=a[4]=5,故选B。21、若intx=1;执行switch(x){case1:printf("1");case2:printf("2");break;case3:printf("3");}输出结果是?()

A.1

B.12

C.123

D.无输出

【答案】:答案解析:x=1匹配case1,无break,穿透到case2(执行后break),输出12,故选B。22、以下关于动态内存分配的说法正确的是?()

A.malloc函数用于动态分配内存,返回void*

B.free函数用于释放动态分配的内存

C.动态分配的内存需手动释放,避免内存泄漏

D.以上都正确

【答案】:答案解析:A、B、C均是动态内存分配的核心规则,故选D。23、若intx=4;执行switch(x){case2:printf("2");break;default:printf("0");case4:printf("4");break;}输出结果是?()

A.04

B.4

C.204

D.无输出

【答案】:答案解析:x=4匹配case4,执行输出4,break跳出,故选B。24、转义字符\0的作用是?()

A.表示空格

B.表示制表符

C.字符串结束标志

D.换行

【答案】:答案解析:\0ASCII码为0,是字符串默认结束标志,不计入长度,故选C。25、以下关于指针数组和数组指针的说法正确的是?()

A.指针数组是数组,元素为指针

B.数组指针是指针,指向数组

C.int*arr[5]是指针数组,int(*arr)[5]是数组指针

D.以上都正确

【答案】:答案解析:A、B、C均准确区分了指针数组和数组指针,故选D。26、以下指针运算中,结果为指针的是?()

A.*p

B.p+1

C.&a

D.B和C

【答案】:答案解析:p+1是指针偏移,&a是取地址,结果均为指针;*p是解引用(获取值),故选D。27、若inta=5;执行if(a>10);elsea=20;后a的值是?()

A.5

B.20

C.10

D.无定义

【答案】:答案解析:if后分号表示空语句,else执行a=20,故选B。28、若inti=0;执行for(i=0;i<5;i++){if(i%2==0)continue;printf("%d",i);}输出结果是?()

A.13

B.024

C.01234

D.无输出

【答案】:答案解析:i为偶数(0、2、4)时continue,输出奇数1、3,故选A。29、以下关于void类型函数的说法正确的是?()

A.不能有return语句

B.可以有return语句(无表达式)

C.必须有return语句

D.可返回任意类型

【答案】:答案解析:void函数可写return;(无表达式),用于提前结束函数,不能返回表达式,故选B。30、以下函数无返回值的是?()

A.intfun(){return0;}

B.voidfun(){printf("hello");}

C.floatfun(){return3.14;}

D.charfun(){return'b';}

【答案】:答案解析:void类型函数无返回值,A、C、D均有返回值,故选B。31、以下if语句中,赋值表达式作为条件的是?()

A.if(x==3)

B.if(x=3)

C.if(x>3)

D.if(x!=3)

【答案】:答案解析:x=3是赋值表达式,结果为3(非0,真),其余是判断表达式,故选B。32、二维数组a[2][3]在内存中存储的顺序是?()

A.a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]

B.a[0][0],a[1][0],a[0][1],a[1][1],a[0][2],a[1][2]

C.随机顺序

D.按列存储

【答案】:答案解析:二维数组按行优先连续存储,顺序为第一行所有元素,再第二行,故选A。33、若intx=2;执行switch(x){case1:printf("a");case2:printf("b");case3:printf("c");}输出结果是?()

A.b

B.bc

C.abc

D.无输出

【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出bc,故选B。34、以下switch语句中,default的位置可以在?()

A.所有case之前

B.所有case之后

C.两个case之间

D.以上都可以

【答案】:答案解析:default位置灵活,可在case前、后或中间,不影响执行逻辑,故选D。35、若intx=6;执行if(x<5)printf("A");else{printf("B");printf("C");}输出结果是?()

A.A

B.BC

C.ABC

D.无输出

【答案】:答案解析:x=6不满足if,执行else代码块,输出BC,故选B。36、逻辑表达式!5的结果是?()

A.0

B.1

C.5

D.真

【答案】:答案解析:5为真,!是逻辑非,真变假(0),故选A。37、函数返回值的类型与return语句中表达式类型不一致时,会?()

A.编译错误

B.自动强制转换为函数返回类型

C.程序崩溃

D.无影响

【答案】:答案解析:编译器会将return表达式类型强制转换为函数返回类型(可能丢失精度),不报错,故选B。38、以下函数调用正确的是?()

A.fun(5);

B.fun(3,4);

C.fun("hello");

D.取决于函数定义

【答案】:答案解析:函数调用需匹配函数定义的参数类型和个数,A、B、C是否正确取决于函数定义,故选D。39、若inti=0,s=0;执行for(i=0;i<4;i++)s+=i;后s的值是?()

A.6

B.10

C.4

D.0

【答案】:答案解析:累加0+1+2+3=6,s=6,故选A。40、以下函数定义错误的是?()

A.intfun(inta,intb){returna+b;}

B.voidfun(){inta=5;printf("%d",a);}

C.intfun(){inta=3;returna;}

D.voidfun(inta){returna;}

【答案】:答案解析:D返回值类型void,不能return表达式a,语法错误,故选D。41、定义单精度浮点型变量y并赋值2.718的语句是?()

A.doubley=2.718;

B.floaty=2.718f;

C.floaty=2.718;

D.inty=2.718;

【答案】:答案解析:float是单精度,需加f后缀(否则默认double),double是双精度,故选B。42、以下数组初始化正确的是?()

A.charstr[]="hello";

B.charstr[5]="hello";

C.charstr[]={'h','e','l','l','o'};

D.charstr[5]={'h','e','l','l','o','\0'};

【答案】:答案解析:A字符串自动加\0,B长度5不足以存hello(含\0共6个字符),C无\0(字符串不完整),D长度5超,故选A。43、若inta=2;执行a*=a+3;后a的值是?()

A.7

B.10

C.14

D.5

【答案】:答案解析:a*=a+3等价于a=a*(a+3)=2*(2+3)=10,故选B。44、以下switch语句语法正确的是?()

A.switch(x){case1:printf("1");break;case2:printf("2");}

B.switch(x){case1:printf("1");case2:printf("2");break;}

C.switch(x){case1:printf("1");break;default:printf("0");}

D.以上都正确

【答案】:答案解析:switch语句case后可加break(跳出)或不加(穿透),default可选,A、B、C语法均正确,故选D。45、以下指针与函数的关系正确的是?()

A.函数名是函数的地址

B.函数指针可指向函数

C.可通过函数指针调用函数

D.以上都正确

【答案】:答案解析:A、B、C均是函数与指针的基本关系,故选D。46、以下关于函数参数的说法正确的是?()

A.形参是局部变量

B.实参是局部变量

C.形参在函数调用后释放

D.实参在函数调用后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论