点击查看:2018年3月全国计算机二级C语言练习题及答案汇总
一、选择题(每小题1分,共40分)
1[单选题] 有以下程序(注:字符a的ASCII码值为97):
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721184156.jpg">"%d,%d,%d",&a,&b,&c);
给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是( )。(注:口代表一个空格符)
ABCD参考答案:D
参考解析:scanf()的格式控制串可以使用其他非空白字符,如本题中的逗号,但在输入时必须输入这些字符,以保证匹配。所以逗号必须输入。
6[单选题] 以下四个程序中,完全正确的是( )。
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721242493.jpg">
程序运行后的输出结果是( )。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,1,
D.0,1,2,3,4,5,6,7,8,9,
参考答案:A
参考解析:函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参而不能把形参的值反向地传送给实参。因此在函致调用过程中,形参的值发生改变,而实参中的值不会变化,所以数组C中的元素的值并没有变化,选择A。
9[单选题] 若变量x,y已正确定义并赋值,以下符合C语言语法的表达式是( )。
A.x+1=y
B.++x,y=x- -
C.x=z+10=z+y
D.double(x)/10
参考答案:B
参考解析:A选项中不能将变量Y赋给表达式,C选项中错误与A选项一样,D选项中强制类型转换表达式应写成(double)x/10。
10[单选题] 若有以下函数首部:
则下面针对此函数的函数声明语句中正确的是( )。
"或"类型说明符被调函数名(类型,类型,……);”由于函数首部为int fun(double x[10],int * n),因此B选项正确。
11[单选题] 设有以下语句:
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721253486.jpg">"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721261473.jpg">"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721335393.jpg">"Olympic",选项C的写法:char*s,s={"Olympic"};是错误的。字符数组可以在定义的时候初始化:char s[]={"Olympic"};?或者char s[]="Olympic",都是正确的。但是不可以在定义字符数组后,对数组名赋值。(数组名是常量,代表数组首地址)所以选项B和选项D都是错误的。对于本例,选项B、D中字符数组8的大小至少为8,才能存放下字符串。(字符串的末尾都有结束标识‘\0’)。
19[单选题] 以下关于typedef的叙述错误的是( )。
A.用typedef可以增加新类型
B.typedef只是将已存在的类型用一个新的名字来代替
C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D.用typedef为类型说明一个新名,通常可以增加程序的可读性
参考答案:A
参考解析:typedef并不是增加了新类型,而是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以增强程序的可移植性。所以A选项错误。
20[单选题] 在E-R图中,用来表示实体联系的图形是( )。
A.椭圆形
B.矩形
C.菱形
D.三角形
参考答案:C
参考解析:在E-R图中实体集用矩形,属性用椭圆,联系用菱形。
21[单选题] 有以下程序:
其中关系T由关系R和S通过某种操作得到,该操作为( )。
A.选择
B.投影
C.交
D.并
参考答案:D
参考解析:关系T中包含了关系R与S中的所有元组,所以进行的是并的运算。
28[单选题] 有以下程序:
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721315908.jpg">'\'
D."\007"
参考答案:D
参考解析:A选项中整型常量应表示为1200,不能包含“,”。B选项中E后面的指数必须为整数。C选项中转义字符以“\”开始,若要表示字符“\”,应写为“\\”。
33[单选题] 设有如下函数定义:
若执行调用语句“n=fun(3);”,则函数fun总共被调用的次数是( )。
A.2
B.3
C.4
D.5
参考答案:B
参考解析:首先n=fun(3),3被当作参数传递进去,这就进行了一次调用,3被当作参数传进去后,程序会执行这句else returnfun(k-1)+1;这就调用了第二次,而参数是3-l也就是2。2被当作参数传进去后,程序会执行这句elsereturn fun(k-1)+1;这就调用了第三次,而参数是2-1也就是1。1被当作参数传进去后,程序会执行这句else if(k==1)return 1;不再递归调用,所以最终结果为3次。
34[单选题] 若有定义语句:
char s[10]="1234567\0\0";
则strlen(S)的值是( )。
A.7
B.8
C.9
D.10
参考答案:A
参考解析:strlen()函数在计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中字符串,从第一个字符开始,遇到第一个结束标识‘\0’为止,注意‘\0’不占字符串长度,所以字符串长度为7。因此A选项正确。
35[单选题] C源程序中不能表示的数制是( )。
A.十六进制
B.八进制
C.十进制
D.二进制
参考答案:D
参考解析:在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择D。
36[单选题] 若有以下定义:
则对x数组元素的正确引用是( )。
A.pt+3
B.*&x[10]
C.*(pt+10)
D.*(x+3)
参考答案:D
参考解析:没有A选项的引用形式。*与&放在一起作用抵消,所以B选项错误,最大只能引用到x[9]。*(pt+i)表示引用指针pt所指元素后的第i个元素,所以c选项错误,最大只能为*(pt+9)。因此D选项正确。
37[单选题] 有以下程序:
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721305661.jpg">
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721304137.jpg">
参考解析:【参考答案】 (1)char
(2)eh<='9'
(3)'0'
【考点分析】
本题考查:函数定义,注意函数定义的一般形式以及有参函数和无参函数的区别;if语句条件表达式,本题的条件表达式是判断数字字符;函数返回值,其一般形式为“return表达式;”。
【解题思路】
填空l:函数定义时,类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型,所以此处应该填char。
填空2:通过if条件语句判断字符串中字符是否是数字字符,既大于等于字符‘0’,同时小于等于字符‘9’。
填空3:return语句完成函数返回操作,要实现字符转换,应填入return'9'-(ch-'0')。
【解题宝典】
有参函数定义,其一般形式为:类型标识符函数名(形式参数表列)
{声明部分
语句
在形参表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须在形参列表中给出类型说明。
三、程序修改题(共18分)
42[简答题]
下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入“edcba”,则应输出“abcde”。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721300058.jpg">
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721292677.jpg">"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721291348.jpg">
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721285594.jpg">
"BORDER-TOP-COLOR: ; BORDER-LEFT-COLOR: ; BORDER-BOTTOM-COLOR: ; BORDER-RIGHT-COLOR: " border=0 hspace=0 alt=2018年3月全国计算机二级C语言练习题及答案(4) src="http://www.exam8.com/computer/UploadFiles/201707/2017071721272351.jpg">
"WIDTH: 320px; MARGIN: auto">
微信搜索"考试吧"了解更多考试资讯、下载备考资料