9月计算机等级考试二级c语言笔试考试练习题(答案).docx
9月计算机等级考试二级c语言笔试考试练习题(答案)
选择题
1.以下选项中,不合法的C语言标识符是()
A._123
B.int
C.abc
D.num_1
答案:B
解析:C语言标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线。同时,不能使用C语言的关键字作为标识符。选项B中的“int”是C语言的关键字,用于定义整型变量,所以不合法。
2.若有定义:inta=10;则执行语句a+=a=aa;后,a的值是()
A.180
B.180
C.10
D.100
答案:A
解析:根据运算符优先级,先计算aa=100,然后执行a=100,即a=a100=10100=90,最后执行a+=90,即a=a+(90)=90+(90)=180。
3.以下关于for循环的说法不正确的是()
A.for循环只能用于循环次数已经确定的情况
B.for循环是先判断循环条件,后执行循环体
C.for循环的三个表达式都可以省略
D.for循环可以嵌套使用
答案:A
解析:for循环不仅可以用于循环次数确定的情况,也可以用于循环次数不确定的情况,只要循环条件合适即可。选项B,for循环先判断循环条件,条件为真时执行循环体;选项C,for循环的三个表达式都可以省略,如for(;;)是一个无限循环;选项D,for循环可以嵌套使用,实现更复杂的逻辑。
4.若有定义:inta[5]={1,2,3,4,5};则对数组元素的正确引用是()
A.a[5]
B.a[0]
C.a(2)
D.a[10]
答案:B
解析:数组下标从0开始,对于数组a[5],合法的下标范围是0到4。选项A中a[5]超出了数组的范围;选项C中使用括号引用数组元素是错误的,应该用方括号;选项D中a[10]也超出了数组的范围。
5.以下函数调用语句中,含有的实参个数是()
func((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.4
D.5
答案:B
解析:逗号表达式的值是最后一个表达式的值。在函数调用func((exp1,exp2),(exp3,exp4,exp5));中,(exp1,exp2)是一个逗号表达式,其值为exp2,(exp3,exp4,exp5)是另一个逗号表达式,其值为exp5,所以实参个数是2。
填空题
1.若有定义:charch=A;则执行语句ch=ch+32;后,ch的值是______。
答案:a
解析:在ASCII码表中,大写字母和小写字母的差值为32。字符A的ASCII码值加上32后得到字符a的ASCII码值,所以ch的值变为a。
2.设intx=1,y=2;则表达式xy?x:y的值是______。
答案:2
解析:这是一个三目运算符表达式。先判断xy是否成立,由于12不成立,所以返回冒号后面的值,即y的值2。
3.若有定义:inta[3][4];则数组a中元素的个数是______。
答案:12
解析:二维数组a[3][4]表示有3行4列,元素个数为行数乘以列数,即34=12。
4.函数的返回值类型是由______决定的。
答案:函数定义时指定的返回值类型
解析:在定义函数时,需要指定函数的返回值类型,函数执行完后返回的值的类型必须与定义的返回值类型一致(在允许的类型转换范围内)。
判断题
1.在C语言中,所有变量在使用前都必须先定义。()
答案:正确
解析:C语言是一种静态类型语言,变量在使用前必须先定义,以确定变量的类型和存储空间。
2.数组名代表数组首元素的地址。()
答案:正确
解析:在C语言中,数组名通常表示数组首元素的地址。例如,对于数组inta[5];,a就代表a[0]的地址。
3.一个C语言程序可以有多个主函数。()
答案:错误
解析:一个C语言程序只能有一个主函数(main函数),程序从主函数开始执行。
4.用dowhile语句构成的循环,在while后的表达式为零时结束循环。()
答案:正确
解析:dowhile循环先执行循环体,再判断while后的表达式。当表达式的值为0(假)时,结束循环。
解答题
1.编写一个程序,输入一个整数,判断它是否为素数。
```c
includestdio.h
includemath.h
intmain(){
intnum,i,isPrime=1;
printf(请输入一个整数:);
scanf(%d,num);
if(num