- 相关推荐
2017年9月计算机二级C语言程序设计习题及答案
2017年计算机二级考试马上就要开始了,你准备好了吗?下面是小编为大家带来的计算机二级C语言程序设计习题,欢迎阅读。
习题一:
1[单选题] 设有定义:int x,Y,z;,且各变量已赋正整数值,则以下能正确表示代数式‘
的C语言表达式是( )。
A.…1.…0/x。/y,/zB.1/x * Y * zC.1/(x * Y * z)D.1/x/y/(double)z
参考答案:A
参考解析:代数表达式1/(X·Y·z)是小数,转为cf语言的表达式必须是小数。A选项由于l.0为浮点数,计算结1果自动转换为浮点数,故A选项正确。选项B,C,D的表达式均为0。答案为A选项。
2[单选题] 以下叙述中正确的是( )
A.用户自己定义的函数只能调用库函数
B.实用的C语言源程序总是由一个或多个函数组成
C.不同函数的形式参数不能使用相同名称的标识符
D.在C语言的函数内部,可以定义局部嵌套函数
参考答案:B
参考解析:A选项中,”用户自己定义的函数只能调用库函数”描述是不正确的,也可以调用自定义函数;C选项中,对于不同函数的形式参数可以使用相同名称的标识符;D选项中,关于函数的定义不可以嵌套,但函数的调用可以嵌套。因此B选项正确。
3[单选题] 以下关于C语言数据类型使用的叙述中错误的是( )。
A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
B.若要保存带有多位小数的数据,可使用双精度类型
C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
D.整数类型表示的自然数是准确无误差的
参考答案:C
参考解析:C语言中没有逻辑类型,所以c错误。若要保存带有多位小数的数据,可以用单精度类型也可以用双精度类型。处理包含不同类型的相关数据可以定义为结构体类型。整数类型可以无误差的表示自然数。
4[单选题] 下面选项中关于编译预处理的叙述正确的是
A.预处理命令行必须使用分号结尾
B.凡是以#号开头的行,都被称为编译预处理命令行
C.预处理命令行不能出现在程序的最后一行
D.预处理命令行的作用域是到最近的函数结束处
参考答案:B
参考解析:本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A选项错误,预处理命令行可以出现在程序的最后一行,预处理命令行作用域是整个文件。
5[单选题] 有以下程序
2016年计算机二级《C语言》基础练习题及答案(10)
程序的输出结果是
A.0B.1C.9D.10
参考答案:B
参考解析:本题考查宏定义,宏定义只是做个简单的替换。执行SQR(k+m)/SQR(k+m)=k+m*k+m/k+m}k+m=15/2,a/=SQR(k+m)/SQR(k+1TI)的结果为1,选项B正确。
6[单选题] 设--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为( )。
A.71B.70C.69D.不可能有这样的二叉树
参考答案:D
参考解析:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。如果有一棵二叉树,结点总数为l50,假设度为0的结点个数为n,则有n+10+n一1=150,n=70.5,由于结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择D选项。
7[单选题] 有以下程序:
程序运行后的输出结果是( )。
A.2.3B.1,3C.1,4D.1,2
参考答案:B
参考解析:在f(int+P,int 4 q)函数中,执行P=P+1是将P所对应的地址加1,而0 q=+q+1是将q所指向的n的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。
8[单选题] 以下选项中,能用作用户标识符的是( )。
A.-0-B.8-;8C.voidD.unsigned
参考答案:A
参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。8中以数字8开头,所以错误。c与D中用的是关键字void与unsigned,所以错误。
9[单选题] 以下叙述正确的是( )。
A.表达式sizeof(FILE*)==sizeof(int*)的值为真
B.文件指针的值是一个整数,它的值一定小于文件字节数
C.文件指针的值是所指文件的当前读取位置
D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符
参考答案:A
参考解析:
slzeof(FILE})=4,因为file·为指针,指针的大小4,sizeof(int·)=4,理由同前面。文件指针的值是地址,是一个16进制的数,它的值不一定小于文件字节数,因此选项8错误。文件指针是所指文件的当前读取位置,而不是文件指针的值因此选项C错误。mgscanf(FILE-stream,constchar}format,[argument…]fmanf函数可以向任意类型的文件,写入任意数量不能超过系统的缓冲区,写文件先写入缓冲区,最后一起写入文件,因此选项D错误。答案为A选项。
10[简答题]下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。
例如,若输入“Ab,cD”,则输出“AB,CD”。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
习题二:
1[单选题] 有以下程序:
2016年计算机二级《C语言》基础练习题及答案(11)
以上程序执行后abc.dat文件的内容是( )。
A.China
B.Chinang
C.ChinaBeijing
D.BeijingChina
参考答案:B
参考解析:本题考查文件操作函数,fwrite和rewind函数,题目中先是将s2字符串写入adc.dat中,然后将写指针回到文件开头,然后写入sl字符串,那么sl字符串就将前5个字符覆盖,所以最终结果为Chinan9,选项B正确。
2[单选题] 如果定义
float a[10],x;
则以下叙述中正确的是
A.语句a=&x;是非法的B.表达式a+1是非法的C.三个表达式a[1]、*(a+1)、*&a[1]表示的意思完全不同D.表达式,&a[1]是非法的,应该写成+(&(a[1]))
参考答案:A
参考解析:B选项中,表达式a+1不是非法的;C选项中,*(a+1)即指a[1];D选项中,*&a[1]不是非法的。因此A选项正确。
3[单选题] 有以下程序(strcpy为字符串复制函数,streat为字符串连接函数)
2016年计算机二级《C语言》基础练习题及答案(11)
程序运行后的输出结果是
A.a12xyzB.bc2yzC.a2yzD.12yz
参考答案:C
参考解析:本题考查字符串处理函数strcpy和streat,执行完strcpy(a+1,b+2);后,a变为a2,执行完strcat(a,c+1)后,a变为a2yz,所以答案为C选项。第3题 笔记记录我的笔记(0) | 精选笔记(3)选择笔记标签:试题内容(2)答案解析(1)
4[单选题] 以下叙述中正确的是( )
A.'