全国计算机等级考试二级C语言全真模拟试卷及答案.docx
全国计算机等级考试二级C语言全真模拟试卷及答案
一、选择题(每题2分,共40分)
1.以下选项中,合法的C语言标识符是()
A._123
B.123abc
C.if
D.int
答案:A
解析:C语言标识符只能由字母、数字和下划线组成,且第一个字符必须是字母或下划线。选项B以数字开头不合法;选项C“if”和选项D“int”是C语言的关键字,不能作为标识符。
2.以下关于C语言数据类型的说法正确的是()
A.所有数据类型的长度都固定不变
B.不同的编译系统对同一数据类型的长度可能不同
C.字符型数据不能参与算术运算
D.浮点型数据的精度是无限的
答案:B
解析:不同的编译系统对同一数据类型的长度可能不同,例如在某些16位系统和32位系统中,`int`类型的长度可能不同,所以选项A错误;字符型数据在内存中以ASCII码存储,可以参与算术运算,选项C错误;浮点型数据有一定的精度限制,不是无限的,选项D错误。
3.若有定义`inta=3,b=2;`,则表达式`(a+b)/2`的值是()
A.2
B.2.5
C.3
D.3.5
答案:A
解析:`a`和`b`都是`int`类型,`a+b`的结果也是`int`类型,为5。`(a+b)/2`即`5/2`,两个整数相除结果取整,所以值为2。
4.以下程序段的输出结果是()
```c
intx=10;
printf(%d\n,x++);
```
A.10
B.11
C.10
D.11
答案:A
解析:`x++`先取`x`的值10并取负,得到10输出,然后`x`的值再自增1变为11。
5.以下关于`if`语句的说法正确的是()
A.`if`语句后面的条件表达式只能是关系表达式
B.`if`语句可以没有`else`子句
C.`if`语句中条件表达式的值必须是整数
D.`if`语句只能控制一条语句的执行
答案:B
解析:`if`语句后面的条件表达式可以是各种表达式,不只是关系表达式,选项A错误;条件表达式的值只要能判断真假即可,不一定是整数,选项C错误;`if`语句可以控制多条语句,使用花括号`{}`括起来即可,选项D错误;`if`语句可以没有`else`子句,选项B正确。
6.以下程序段的输出结果是()
```c
inti;
for(i=0;i3;i++){
if(i==1)continue;
printf(%d,i);
}
```
A.012
B.02
C.1
D.2
答案:B
解析:当`i=0`时,不满足`i==1`,输出0;当`i=1`时,满足`i==1`,执行`continue`语句,跳过本次循环的剩余部分,直接进入下一次循环;当`i=2`时,不满足`i==1`,输出2。所以输出结果是02。
7.以下关于数组的说法错误的是()
A.数组必须先定义后使用
B.数组的下标从0开始
C.数组的大小可以在运行时动态确定
D.数组名代表数组首元素的地址
答案:C
解析:在C语言中,数组的大小必须在定义时确定,不能在运行时动态确定,所以选项C错误;数组必须先定义后使用,选项A正确;数组的下标从0开始,选项B正确;数组名代表数组首元素的地址,选项D正确。
8.若有定义`inta[5]={1,2,3,4,5};`,则`a[3]`的值是()
A.1
B.2
C.3
D.4
答案:D
解析:数组下标从0开始,`a[3]`表示数组`a`的第4个元素,其值为4。
9.以下关于函数的说法正确的是()
A.函数必须有返回值
B.函数可以没有参数
C.函数名可以与变量名相同
D.函数内部不能再定义函数
答案:B
解析:函数可以没有返回值,返回类型为`void`,选项A错误;函数可以没有参数,选项B正确;函数名和变量名不能相同,会引起命名冲突,选项C错误;在C语言中,函数内部不能再定义函数,但可以嵌套调用函数,选项D错误。
10.以下程序段的输出结果是()
```c
voidfunc(intx){
x=10;
}
intmain(){
inta=20;
func(a);
printf(%d\n,