基本信息
文件名称:2025年计算机二级c语言考试试题.doc
文件大小:23 KB
总页数:7 页
更新时间:2025-06-22
总字数:约2.51千字
文档摘要

计算机二级c语言考试试题

一、选择题

1.以下叙述中正确的是()[单选题]*

A.在C语言中,主函数名main可由用户命名

B.在C语言中,主函数必须位于源程序的最前面

C.C语言程序的执行总是从main函数开始,在main函数结束

D.在C语言程序中,除main函数外,用户可定义任意多个函数,这些函数可相互调用

答案:C。原因:在C语言中,主函数名必须为main,不能由用户命名,A错误;主函数的位置可以在源程序的任何地方,B错误;C语言程序的执行从main函数开始,最后在main函数结束,C正确;函数之间可以相互调用,但函数不能调用main函数,D错误。

2.以下定义语句中正确的是()[单选题]*

A.inta=b=0;

B.charA=65+1,b=b;

C.floata=1,*b=a,*c=b;

D.doublea=0.0;b=1.1;

答案:B。原因:A选项中,不能连续赋值定义变量,应该先定义b再对a赋值,A错误;B选项中,字符可以用ASCII码值加1来定义,同时可以正常定义另一个字符变量,B正确;C选项中,c定义错误,应该是*c=b,C错误;D选项中,定义第二个变量b时缺少类型声明,D错误。

3.若有定义:inta=1,b=2,c=3;则执行表达式(a=b+c)||(++b)后,a、b、c的值依次为()[单选题]*

A.5,2,3

B.5,3,3

C.1,2,3

D.1,3,3

答案:A。原因:先计算b+c的值为5,然后将5赋给a,此时逻辑或表达式左边的值为真(非0),由于逻辑或只要左边为真就不再计算右边,所以++b不执行,b的值还是2,c的值不变为3,所以a=5,b=2,c=3。

4.以下程序的输出结果是()[单选题]*

#includestdio.h

intmain()

{

inta=1,b=2,c=3;

if(ab)

if(b0)c=0;

elsec++;

printf(%d\n,c);

return0;

}

A.0

B.1

C.2

D.3

答案:D。原因:首先判断ab成立,进入内部的if-else语句,但是b0不成立,所以执行else部分,c++,c原来的值为3,执行后还是3。

5.以下关于数组的描述正确的是()[单选题]*

A.数组的大小是固定的,但可以有不同类型的元素

B.数组元素的下标从1开始

C.数组名代表数组的首地址

D.定义数组时必须指定数组元素的个数

答案:C。原因:数组的大小是固定的且数组中的元素类型必须相同,A错误;数组元素的下标从0开始,B错误;数组名代表数组的首地址,C正确;在定义数组时,如果进行初始化,可以不指定数组元素的个数,D错误。

6.下面函数调用语句含有实参的个数为()[单选题]*

func((e1,e2),(e3,e4,e5));

A.1

B.2

C.3

D.5

答案:B。原因:这里(e1,e2)和(e3,e4,e5)是两个逗号表达式,它们作为实参传递给函数func,所以实参个数为2。

7.设有以下定义:

chars1[]=string,s2[8],*s3,*s4=string;

则()[多选题]*

A.sizeof(s1)等于sizeof(s2)

B.strlen(s1)等于strlen(s4)

C.s3=s1;合法

D.s4=s1;合法

答案:BC。原因:A选项中,s1是字符串数组,其长度是字符串加上\0的长度,s2定义的数组长度为8,二者长度不同,A错误;B选项中,strlen计算字符串的实际长度(不包含\0),s1和s4中的字符串内容相同,所以strlen(s1)等于strlen(s4),B正确;C选项中,s3是字符指针,可以指向s1这个字符数组,C正确;D选项中,s4是指向常量字符串的指针,不能再指向s1这个可修改的数组,D错误。

8.以下关于结构体的说法正确的是()[单选题]*

A.结构体成员不能是结构体类型

B.结构体变量在定义时不能初始化

C.结构体成员的访问只能通过指针

D.结构体变量的大小是其成员大小之和(考虑对齐情况)

答案:D。原因:A选项中,结构体成员可以是结构体类型,A错误;B选项中,结构体变量在定义时可以初始化,B错误;C选项中,结构体成员可以通过结构体变量直接访问,也可以通过指针访问,C错误;D选项中,结构体变量的大小是其成员大小之和(考虑对齐情况),D正确。

9.在C语言中,以下