【推荐】9月全国计算机等级考试二级c语言笔试试题(含参考答案).docx
【推荐】9月全国计算机等级考试二级c语言笔试试题(含参考答案)
选择题
1.以下选项中合法的标识符是()
A.1_abc
B._123
C.int
D.ab
答案:B
解析:标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线。选项A以数字开头,不合法;选项C“int”是C语言的关键字,不能作为标识符;选项D中包含“”,不合法;选项B符合标识符的定义,是合法的。
2.若有定义:inta=10,b=20;则执行语句a=a+b;b=ab;a=ab;后,a和b的值分别为()
A.10,20
B.20,10
C.10,10
D.20,20
答案:B
解析:初始时a=10,b=20。执行a=a+b后,a的值变为10+20=30;接着执行b=ab,此时b的值为3020=10;最后执行a=ab,a的值为3010=20。所以最终a=20,b=10。
3.以下程序段的输出结果是()
```c
intx=10;
printf(%d\n,(x++)2);
```
A.20
B.22
C.10
D.11
答案:A
解析:在表达式(x++)2中,x++是后置自增运算符,先使用x的值进行运算,然后再将x的值加1。所以先计算102=20,然后x的值变为11。因此输出结果是20。
4.以下关于函数的说法,正确的是()
A.函数必须有返回值
B.函数可以没有参数
C.函数定义可以嵌套
D.函数调用不能嵌套
答案:B
解析:选项A,函数可以没有返回值,使用void类型来声明,所以A错误;选项B,函数可以没有参数,例如`voidfunc(){}`,所以B正确;选项C,函数定义不能嵌套,但函数调用可以嵌套,所以C错误;选项D,函数调用可以嵌套,例如在一个函数中调用另一个函数,所以D错误。
5.若有定义:charstr[]=abc\0def;则`strlen(str)`的值是()
A.3
B.7
C.4
D.8
答案:A
解析:`strlen`函数用于计算字符串的长度,它从字符串的起始位置开始,直到遇到字符串结束符`\0`为止。在字符串abc\0def中,遇到`\0`就停止计数,所以字符串的长度是3。
填空题
1.若有定义:inta[5]={1,2,3,4,5};则数组a的元素个数是______。
答案:5
解析:在定义数组`inta[5]`时,方括号中的数字5指定了数组的元素个数,所以数组a有5个元素。
2.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为______。
答案:1.0
解析:在表达式1.0+x/y中,x和y都是int型变量,所以x/y进行的是整数除法,1/2的结果是0。然后再加上1.0,结果为1.0。
3.若要定义一个指向整型变量的指针变量p,可使用的定义语句是______。
答案:intp;
解析:在C语言中,定义指向整型变量的指针变量的一般形式是`类型名指针变量名;`,所以定义指向整型变量的指针变量p的语句是`intp;`。
4.函数的返回值类型是由______决定的。
答案:函数定义时指定的返回值类型
解析:在函数定义时,需要明确指定函数的返回值类型,例如`intfunc(){}`表示函数`func`的返回值类型是int。函数的返回值类型由函数定义时指定的类型决定。
5.若有定义:structstudent{charname[20];intage;}s;则访问结构体变量s的成员age的方式是______。
答案:s.age
解析:在C语言中,使用点运算符“.”来访问结构体变量的成员。对于结构体变量s,访问其成员age的方式是`s.age`。
判断题
1.在C语言中,变量必须先定义后使用。()
答案:正确
解析:在C语言中,变量必须先定义后使用。如果在使用变量之前没有进行定义,编译器会报错。
2.字符常量和字符串常量是相同的概念。()
答案:错误
解析:字符常量是用单引号括起来的单个字符,例如`A`;字符串常量是用双引号括起来的字符序列,例如`ABC`。字符串常量在内存中会自动在末尾添加一个字符串结束符`\0`,而字符常量没有。所以它们是不同的概念。
3.数组名代表数组的首地址。()
答案:正确
解析:在C语言中,数组名代表数组的首地址,即数组第一个元素的地址。可以通过数组名来访问数组元素。
4.函数的形参在函数未被调用时不占内存空间。()
答案:正确
解析:函数的形参在函数被调