文档介绍:该【期末c语言试题及完整答案1套 】是由【政】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【期末c语言试题及完整答案1套 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。期末c语言试题
第一部分 单选题(50题)
1、以下switch语句中,default的执行时机是?( )
【答案】:答案解析:default仅在所有case都不匹配时执行,故选A。
2、指针作为函数参数时,传递的是?( )
【答案】:答案解析:指针传参本质是传递变量地址,函数中通过指针可修改实参值,故选D。
3、以下函数定义错误的是?( )
(inta,intb){returna+b;}
(){inta=5;printf("%d",a);}
(){inta=3;returna;}
(inta){returna;}
【答案】:答案解析:D返回值类型void,不能return表达式a,语法错误,故选D。
4、do-while循环中,循环体至少执行几次?( )
【答案】:答案解析:do-while“先执行后判断”,无论条件是否满足,循环体至少执行一次,故选B。
5、以下for循环中,用于计算1到5的平方和的是?( )
=0;for(i=1;i<=5;i++)s+=ii;
=0;for(i=1;i<=5;i++)s+=i2;
=1;for(i=1;i<=5;i++)s*=i;
=0;for(i=1;i<=5;i++)s+=i+i;
【答案】:答案解析:平方和是1²+2²+3²+4²+5²=1+4+9+16+25=55,A的逻辑正确,故选A。
6、若intx=5;则表达式x+++x的结果是?( )
【答案】:答案解析:结合性从左到右,x+++x等价于(x++)+x=5+6=11,故选B。
7、以下哪个不是C语言的关键字?( )
【答案】:答案解析:then不是C语言关键字,if(条件)、else(否则)、for(循环)均是,故选C。
8、以下字符串常量定义正确的是?( )
[]="C";
[1]='C';
[]={'C'};
[2]={'C','\0'};
【答案】:答案解析:A用双引号定义字符串(自动加\0),B单引号用于字符常量,C无\0,D长度2正确但A更简洁,故选A。
9、以下函数参数为指针的是?( )
(int*a){}
(inta){}
(inta[]){}
【答案】:答案解析:A是指针参数,C数组名参数本质是指针,B是值参数,故选D。
10、函数定义的格式是?( )
(参数列表){函数体}
(返回类型,参数列表){函数体}
(参数列表)返回类型{函数体}
{参数列表,函数体}
【答案】:答案解析:函数定义标准格式为“返回类型函数名(参数列表){函数体}”,故选A。
11、以下循环语句中,执行次数为5次的是?( )
(i=0;i<5;i++)
(i<5){i++;}
{i++;}while(i<5);
(i=1;i<=5;i--)
【答案】:答案解析:A执行5次(0-4),B、C未初始化i(若i初始0则5次,否则不确定),D初始i=1>0,执行0次,故选A。
12、以下哪个数据类型用于存储单个字符?( )
【答案】:答案解析:char用于存储单个字符(ASCII码),int存储整数,float/double存储浮点数,故选B。
13、若inti=0;执行do{i++;printf("%d",i);}while(i<=2);输出结果是?( )
【答案】:答案解析:do-while执行3次,i=1、2、3,输出123,故选A。
14、若inta[3][4]={{1,2},{3,4,5},{6}};则a[0][1]的值是?( )
【答案】:答案解析:a[0][1]是第一行第二列,值为2,故选B。
15、若inta=5;执行if(a>10);elsea=20;后a的值是?( )
【答案】:答案解析:if后分号表示空语句,else执行a=20,故选B。
16、以下关于指针数组的定义正确的是?( )
*arr[5];
(*arr)[5];
[5];
[];
【答案】:答案解析:A是指针数组(5个int指针),B是指向数组的指针,C是普通数组,D缺少长度,故选A。
17、以下关于main函数的说法正确的是?( )
【答案】:答案解析:main函数可声明为void(无返回值),可带argc/argv参数,是程序唯一入口,故选D。
18、指针的核心优势是?( )
,灵活操作内存
,减少内存开销
【答案】:答案解析:指针的核心优势包括间接访问、高效、动态内存、回调等,故选D。
19、若intx=2;执行switch(x){default:printf("0");case1:printf("1");break;case2:printf("2");case3:printf("3");}输出结果是?( )
【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出23,故选B。
20、若inta=6;执行a/=3;后a的值是?( )
【答案】:答案解析:a/=3等价于a=a/3=6/3=2,故选A。
21、若inta=4;执行if(a--<4)printf("A");elseprintf("B");输出结果是?( )
【答案】:答案解析:a--是后置自减,条件判断时a=4,4<4为假,执行else(输出B),后a变为3,故选B。
22、以下定义函数指针正确的是?( )
(*fp)(int);
*fp(int);
(int);
(fp)[];
【答案】:答案解析:A是指向int返回值、int参数的函数指针,B是返回int的函数,C是普通函数,D是指向数组的指针,故选A。
23、若inti=0;执行for(i=0;i<5;i++){if(i%2==0)continue;printf("%d",i);}输出结果是?( )
【答案】:答案解析:i为偶数(0、2、4)时continue,输出奇数1、3,故选A。
24、break语句在循环中的作用是?( )
,继续下一次
【答案】:答案解析:break在循环中用于终止整个循环(跳出循环体),continue是跳过本次循环,故选B。
25、若int*p=(int)malloc(sizeof(int));则p的值是?( )
【答案】:答案解析:malloc分配的内存未初始化,值为随机值,故选B。
26、若inti=1;执行do{printf("%d",i);i++;}while(i<=3);输出结果是?( )
【答案】:答案解析:do-while先执行一次(输出1,i=2),再判断,共执行3次,输出123,故选A。
27、以下数组定义错误的是?( )
[0];
[5];
[]={1,2,3};
[5]={1,2,3};
【答案】:答案解析:数组长度不能为0,编译报错,其余正确,故选A。
28、以下数组初始化中,未赋值元素默认为0的是?( )
[5]={1,2,3};
[5];
[5];
【答案】:答案解析:全局数组未初始化默认为0,局部数组未初始化是随机值,A初始化部分元素,未赋值默认为0,故选A。
29、以下哪个条件表达式表示“x是奇数”?( )
%2==0
%2!=0
==0
!=0
【答案】:答案解析:奇数除以2余数为1,x%2!=0表示奇数,A是偶数,故选B。
30、以下指针与函数的关系正确的是?( )
【答案】:答案解析:A、B、C均是函数与指针的基本关系,故选D。
31、函数调用时,实参和形参的个数必须?( )
【答案】:答案解析:函数调用时实参和形参个数、类型需匹配,否则编译错误,故选A。
32、以下if语句中,条件表达式正确的是?( )
(x=5)printf("yes");
(x==5)printf("yes");
(x=5;)printf("yes");
(x==5;)printf("yes");
【答案】:答案解析:if条件需是判断表达式(==),A是赋值,C、D多加分号,故选B。
33、函数返回值通过______语句返回?( )
【答案】:答案解析:return语句用于函数返回值,printf输出,scanf输入,break跳出循环/switch,故选C。
34、while循环的语法格式正确的是?( )
(条件)语句;
;
(条件);语句;
(条件){语句}
【答案】:答案解析:while后条件需加括号,语句可是单条(加分号)或代码块(用{}),D缺少分号,故选A。
35、以下if-else语句中,代码块执行顺序正确的是?( )
,满足则执行if代码块,否则执行else代码块
,再执行if条件
【答案】:答案解析:if-else逻辑为“条件判断→满足执行if,否则执行else”,互斥执行,故选A。
36、若inta=3;执行if(++a>3)printf("A");elseprintf("B");输出结果是?( )
【答案】:答案解析:++a是前置自增,a变为4>3,条件为真,输出A,故选A。
37、若charstr="Clanguage";则(str+2)的值是?( )
A.'C'
B.''
C.'l'
D.'a'
【答案】:答案解析:str+2指向第三个字符,值为'l',故选C。
38、以下if-else语句中,代码块正确的是?( )
(x>0)printf("a");printf("b");elseprintf("c");
(x>0){printf("a");printf("b");}elseprintf("c");
(x>0)printf("a");{printf("b");}elseprintf("c");
(x>0)printf("a");printf("b");else{printf("c");}
【答案】:答案解析:else需与最近的if匹配,A、C、D中else前有独立printf,语法错误,B用{}包裹代码块正确,故选B。
39、若inta[5]={1,2,3,4,5},p=a;执行p+=2;后p的值是?( )
【答案】:答案解析:p+=2使p指向a[2],*p=3,故选B。
40、以下关于函数参数的说法正确的是?( )
【答案】:答案解析:A、B、C均是函数参数的基本规则,故选D。