- 0
- 0
- 约6.39千字
- 约 13页
- 2026-01-30 发布于河南
- 举报
c语言竞赛测试题
第一部分单选题(50题)
1、以下for循环的循环变量初始化表达式为“i=5”的是?()
A.for(i=0;i5;i++)
B.for(i=5;i0;i--)
C.for(i=2;i=5;i++)
D.for(i=5;i10;i+=2)
【答案】:答案解析:初始化表达式是for循环第一个部分,B中i=5符合,其余初始化非5,故选B。
2、以下字符串数组定义正确的是?()
A.charstr[5][10]={hello,world};
B.charstr[5][]={hello,world};
C.charstr[][10]={hello,world,!};
D.charstr[5][10]={hello,world,!};
【答案】:答案解析:B第二维不能省略,A、C、D均正确?D最完整(5行10列,初始化3个字符串),故选D。
3、指针作为函数返回值时,不能返回?()
A.静态局部变量的地址
B.全局变量的地址
C.动态分配内存的地址
D.局部变量的地址
【答案】:答案解析:局部变量在函数调用结束后释放,返回其地址会导致野指针,故选D。
4、以下关于函数的说法正确的是?()
A.函数必须有返回值
B.函数可嵌套定义
C.函数可递归调用
D.函数名可重定义
【答案】:答案解析:A函数可无返回值(void),B不能嵌套定义(可嵌套调用),D函数名不能重定义,C递归调用正确,故选C。
5、函数参数的默认值在______指定?()
A.函数定义时
B.函数声明时
C.函数调用时
D.C语言不支持默认参数
【答案】:答案解析:标准C语言不支持函数参数默认值(C++支持),故选D。
6、C语言程序的入口函数是?()
A.main()
B.printf()
C.scanf()
D.main
【答案】:答案解析:所有C程序从main()函数开始执行,必须有且仅有一个,故选A。
7、若inti=0;执行do{i++;printf(%d,i);}while(i=2);输出结果是?()
A.123
B.012
C.12
D.无输出
【答案】:答案解析:do-while执行3次,i=1、2、3,输出123,故选A。
8、若inta=3;执行if(++a==4)printf(A);elseprintf(B);输出结果是?()
A.A
B.B
C.AB
D.无输出
【答案】:答案解析:++a使a=4,条件为真,输出A,故选A。
9、以下定义指向数组的指针正确的是?()
A.inta[5],*p=a;
B.inta[5],*p=a;
C.inta[5],p=a;
D.inta[5],*p=a[0];
【答案】:答案解析:a是数组名(首元素地址),p=a等价于p=a[0],Ba是数组地址(类型不匹配),Cp是普通变量,Dp不能赋a[0]的值,故选A。
10、C语言程序的基本单位是?()
A.语句
B.函数
C.变量
D.表达式
【答案】:答案解析:C程序由函数构成,main是入口函数,其他函数实现功能,故选B。
11、以下关于return语句的说法正确的是?()
A.函数中可有多条return语句
B.函数中必须有return语句
C.return语句必须在函数末尾
D.return语句只能返回一个值
【答案】:答案解析:A函数中可有多条return(如条件判断后返回),Bvoid函数可无return,Creturn可在任意位置,Dreturn只能返回一个值(返回多个值需用指针/数组),故选A。
12、若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。
13、以下if语句中,赋值表达式作为条件的是?()
A.if(x==3)
B.if(x=3)
C.if(x3)
D.if(x!=3)
【答案】:答案解析:x=3是赋值表达式,结果为3(非0,真),其余是判断表达式,故选B。
14、以下if-else语句的语法错误是?()
A.if(x0)printf(a);elseprintf(b);
B.if(x0){printf(a);}else{printf(b);}
C.if(x0)printf(a);else;printf(b);
D.if(x0){printf(a);}elseprintf(b);
【答案】:答案解析:else后不能直接加分号(否则else无作用),C中else;后printf独立执行,故选C。
15、若inta=8;执行if(a%4==0)a=a/2;elsea=a+2;后a的
原创力文档

文档评论(0)