1 / 13
文档名称:

C语言考试题库(精选题).docx

格式:docx   大小:40KB   页数:13
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言考试题库(精选题).docx

上传人:小屁孩 2026/1/30 文件大小:40 KB

下载得到文件列表

C语言考试题库(精选题).docx

相关文档

文档介绍

文档介绍:该【C语言考试题库(精选题) 】是由【小屁孩】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【C语言考试题库(精选题) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。C语言考试题库
第一部分 单选题(50题)
1、若inti=5,s=0;执行while(i>0){s+=i;i--;}后s的值是?( )




【答案】:答案解析:累加5+4+3+2+1=15,s=15,故选A。
2、若charstr="abcde";则(str+4)的值是?( )
A.'d'
B.'e'
C.'\0'

【答案】:答案解析:str+4指向第5个字符,值为'e',故选B。
3、以下定义指向数组的指针正确的是?( )
[5],*p=a;
[5],*p=&a;
[5],p=a;
[5],*p=a[0];
【答案】:答案解析:a是数组名(首元素地址),p=a等价于p=&a[0],B&a是数组地址(类型不匹配),Cp是普通变量,Dp不能赋a[0]的值,故选A。
4、以下定义指向二维数组的指针正确的是?( )
[2][3],(*p)[3]=a;
[2][3],*p=a;
[2][3],p=a[0];
[2][3],*p=&a;
【答案】:答案解析:A是指向3列数组的指针(匹配二维数组a的行),B、C、D类型不匹配,故选A。
5、以下switch语句中,default的执行时机是?( )




【答案】:答案解析:default仅在所有case都不匹配时执行,故选A。
6、函数调用时,实参的类型必须与形参的类型?( )

(可自动转换)


【答案】:答案解析:实参和形参类型可兼容(如int→float),编译器自动转换,不兼容则编译错误,故选B。
7、若inti=1;执行while(i<=3){printf("%d",i);i++;}输出结果是?( )




【答案】:答案解析:i初始1,满足i<=3,执行3次,输出123,i最终4,循环结束,故选A。
8、以下函数定义中,参数为两个int类型的是?( )
(inta,floatb){}
(inta,intb){}
(floata,intb){}
(inta,charb){}
【答案】:答案解析:B中两个参数均为int类型,其余选项参数类型不匹配,故选B。
9、数组名作为函数参数时,函数形参的正确写法是?( )
[]
*a
[5]

【答案】:答案解析:数组形参可写为inta[]、int*a(指针)、inta[5](长度可忽略),本质均为指针,故选D。
10、以下if语句中,逻辑运算符使用正确的是?( )
(x>3&&x<7)
(x>3&x<7)
(x>3|||x<7)
(x>3||x<7)
【答案】:答案解析:逻辑与用&&,逻辑或用||,B是按位与,C多写||,D逻辑错误(x>3或x<7恒为真),故选A。
11、以下数组定义中,可省略数组长度的是?( )
[5];
[]={1,2,3};
[5]={1,2,3};
[][3];
【答案】:答案解析:初始化时可省略长度(编译器自动计算),D二维数组第二维不能省略,故选B。
12、表达式5>3&&2<4的结果是?( )




【答案】:答案解析:5>3为真(1),2<4为真(1),逻辑与&&结果为1,故选B。
13、C语言中,宏定义的预处理命令关键字是?( )




【答案】:答案解析:#define用于宏定义,#include用于包含头文件,#ifdef/endif是条件编译,故选B。
14、以下字符串数组定义正确的是?( )
[5][10]={"hello","world"};
[5][]={"hello","world"};
[][10]={"hello","world","!"};
[5][10]={"hello","world","!"};
【答案】:答案解析:B第二维不能省略,A、C、D均正确?D最完整(5行10列,初始化3个字符串),故选D。
15、以下关于数组初始化的说法正确的是?( )




【答案】:答案解析:数组可部分赋值(未赋值元素默认0),A数组可不用初始化,B可少于长度,D数组元素可修改,故选C。
16、以下函数定义错误的是?( )
(inta,intb){returna+b;}
(){inta=5;printf("%d",a);}
(){inta=3;returna;}
(inta){returna;}
【答案】:答案解析:D返回值类型void,不能return表达式a,语法错误,故选D。
17、若inti=0;执行while(i<5){i++;if(i==3)continue;printf("%d",i);}输出结果是?( )




【答案】:答案解析:i=3时continue,跳过printf,输出1、2、4、5,故选A。
18、函数参数传递中,值传递的特点是?( )




【答案】:答案解析:值传递时形参是实参的拷贝,修改形参不影响实参,地址传递才影响实参,故选B。
19、若inti=0;执行for(;;){if(i==4)break;printf("%d",i);i++;}输出结果是?( )




【答案】:答案解析:for(;;)是无限循环,i=4时break,输出0123,故选A。
20、以下转义字符表示换行的是?( )
A.\t
B.\n
C.\
D.\r
【答案】:答案解析:\t是制表符,\n是换行符,\是反斜杠,\r是回车符,故选B。
21、以下关于数组越界的说法正确的是?( )




【答案】:答案解析:数组越界属于未定义行为,编译时不报错,运行时可能正常或崩溃,故选C。
22、以下哪个运算符的优先级最高?( )
A.+
B.*
C.=
D.==
【答案】:答案解析:算术运算符中*(乘)优先级高于+(加),赋值(=)和关系(==)优先级更低,故选B。
23、若inti=0,s=0;执行do{s+=i;i++;}while(i<5);后s的值是?( )




【答案】:答案解析:do-while累加0+1+2+3+4=10,s=10,故选A。
24、若intx=2;执行switch(x){default:printf("0");case1:printf("1");break;case2:printf("2");case3:printf("3");}输出结果是?( )




【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出23,故选B。
25、若inti=0;执行while(i<5){if(i==2)break;printf("%d",i);i++;}输出结果是?( )




【答案】:答案解析:i=2时执行break,终止循环,输出01,故选A。
26、若charstr="hello";则str[1]的值是?( )
A.'h'
B.'e'
C.'l'
D.'\0'
【答案】:答案解析:str是字符串首地址,str[1]等价于(str+1),值为'e',故选B。
27、递归函数的终止条件是?( )




【答案】:答案解析:递归函数必须有终止条件(否则无限递归栈溢出),终止条件是不再调用自身的判断,故选C。
28、若inta=6;执行a/=3;后a的值是?( )




【答案】:答案解析:a/=3等价于a=a/3=6/3=2,故选A。
29、若intx=10;则表达式x%3的结果是?( )




【答案】:答案解析:%是取余运算符,10除以3商3余1,故选A。
30、以下函数声明中,返回类型为float的是?( )
();
(floata);
(floata);
(floata);
【答案】:答案解析:A返回类型为float,B无返回值,C返回类型int,D返回类型char,故选A。
31、以下关于函数的说法错误的是?( )




【答案】:答案解析:C函数名不能重定义(重复定义编译报错),A、B、D正确,故选C。
32、函数定义和函数声明的区别是?( )
,声明不包含
,定义不包含

,声明在结尾
【答案】:答案解析:函数定义是完整实现(含函数体),声明是告诉编译器函数名、参数、返回类型(不含函数体),故选A。
33、若inta=5,*p=&a;则&*p的值是?( )

B.&a


【答案】:答案解析:&*p等价于p,即&a(a的地址),故选B。
34、若inti=0;执行for(i=0;i<5;i++){if(i==3)break;printf("%d",i);}输出结果是?( )




【答案】:答案解析:i=3时break,输出012,故选A。
35、若floatf=;强制转换为整型的表达式是?( )
(f)
B.(int)f

D.(float)f
【答案】:答案解析:强制类型转换格式为(目标类型)变量,(int)f结果为5(取整数部分),故选B。
36、以下switch语句中,case后的常量可以是?( )




【答案】:答案解析:switch的case后必须是整型常量(整数、字符、枚举常量,字符本质是ASCII码整数),故选D。
37、若inta=3;执行if(++a==4)printf("A");elseprintf("B");输出结果是?( )




【答案】:答案解析:++a使a=4,条件为真,输出A,故选A。
38、函数返回值的类型由______决定?( )




【答案】:答案解析:函数返回类型在定义时指定,return表达式类型需与返回类型匹配(不匹配则强制转换),故选B。
39、若inta=4;执行if(a--<4)printf("A");elseprintf("B");输出结果是?( )




【答案】:答案解析:a--是后置自减,条件判断时a=4,4<4为假,执行else(输出B),后a变为3,故选B。
40、若intx=6;执行以下代码后输出结果是?( )if(x<5){printf("A");}elseif(x<8){printf("B");}else{printf("C");}




【答案】:答案解析:x=6<8,执行第二个分支,输出B,故选B。