计算机二级C语言程序设计考前测试题及答案
1[单选题] 有以下程序:
以上程序执行后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为字符串连接函数)
程序运行后的输出结果是
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.'\0'表示字符O
B."a"表示一个字符常量
C.表达式:'a'>'b'的结果是”假”
D.'\"'是非法的
参考答案:C
参考解析:A选项中,'\0'表示结束;B选项中,字符常量是用单引号括起来的一个字符;D选项中,'\"'是双引号符。因此C选项正确。
5[单选题] 有以下程序
程序运行后的输出结果是
A.34756B.5745C.5795D.35745
参考答案:B
参考解析:本题主要考查do…while语句,执行fun函数后,a数组里面的元素变为35745,输出后四个字符,所以结果为5745。选项B正确。
6[单选题]若有以下程序
则程序的输出结果是
A.abedB.ABEJC.abejD.ABCD
参考答案:C
参考解析:若有以下程序
该题目首先初始化变量a和b,通过for循环语句使a取值为0、1、2、3,f函数的功能是将a*a+'a'的值返回给b,即b为a…b e j。最后通过字符输出函数putchar()将b输出。因此C选项正确。
7[单选题] 下列关于数据库设计的叙述中,正确的是( )。
A.在需求分析阶段建立数据字典
B.在概念设计阶段建立数据字典
C.在逻辑设计阶段建立数据字典
D.在物理设计阶段建立数据字典
参考答案:A
参考解析:数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。
8[单选题] 软件设计中划分模块的一个准则是( )。
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦台
参考答案:B
参考解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
9[单选题] 有以下程序:
程序运行后的输出结果是( )。
A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,92
参考答案:D
参考解析:本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会生成参数C的一个副本,而不会改变c的值,所以c值维持原值,选项D正确。
10[单选题] 在一个C源程序文件中所定义的全局变量,其作用域为( )。
A.由具体定义位置和extem说明来决定范围
B.所在程序的全部范围
C.所在函数的全部范围
D.所在文件的全部范围
参考答案:A
参考解析:全局变量的作用域是从声明处到文件的结束。所以选择A)。
11[单选题] 有以下程序:
参考答案:B
参考解析:第一次执行外循环,i的值为3,第一次执行内循环j的值为1,j<=2条件成立,打印i+j的值,即4;第二次执行内循环J的值为2,j<=2条件成立,打印i+j的值,即5;再判断条件不成立,打印回车换行符,跳出内循环。第二次执行外循环,i的值为2,内循环的执行同第一次一样,所以打印3和4,打印回车换行,结束内循环。第三次执行外循环i的值为1,同理内循环中打印2和3,打印回车换行符,结束内循环。
12[单选题] 有以下程序段:
程序运行后的输出结果是( )。
A.a=10 b=50 C=30
B.a=10 b=50 c=10
C.a=10 b=30 c=10
D.a=50 b=30 c:50
参考答案:B
参考解析:本题中a>b的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即c的值勾10。
13[单选题] 若有C语言表达式2+3*4+7/3,以下选项中叙述正确的执行顺序是
A.先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16
B.先执行3*4得12,再执行7/3得2.5,最后执行2+12+2.5得16.5
C.先执行7/3得2,再执行3*4得12,再执行12+2得l4,最后执行2+14得l6
D.先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3得9
参考答案:A
参考解析:首先,在c语言中,乘除法优先级要高于加减法,其次,除法运算符"/"两边参加运算对象都是整数,运算结果要取整,故排除B,D选项;C语言中。因为“*”和“/”都满足从左到右的运算规则,故应先计算3*4=12。因此c排除,答案为A选项。
14[单选题]
程序运行后的输出结果是( )。
A.7B.0C.3D.8
参考答案:C
参考解析:题意统计字符s中阿拉伯数字的个数。char s[]=’012xy\08s34f4w2’;元素是字符型。~0=48;而’\0’=0;因此可以计算出’、0’之前阿拉伯数字的个数,由字符串s可知,有3个阿拉伯数字。答案为C选项。
15[单选题] 以下叙述中正确的是( )。
A.c语言规定必须用main作为主函数名,程序将从此开始执行
B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C.c语言程序将从源程序中第一个函数开始执行、
D.main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等
参考答案:A
参考解析:C语言中的主函数只能是main()函数,不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D选项错误。
16[单选题] 设变量已正确定义并赋值,以下正确的表达式是( )。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
参考答案:A
参考解析:B与D选项中取模运算符%的左右两个操作数均应为整数,所以B、D错误。c选项中不能将X+Y的值赋给表达式Y*5,所以c错误。
17[单选题] 设文件指针fp已定义,执行语句fp=fopen(”61e”,”W”);后,以下针对文本文件file操作叙述的选项中正确的是( )。
A.只能写不能读
B.写操作结束后可以从头开始读
C.可以在原有内容后追加写
D.可以随意读和写
参考答案:A
参考解析:考查文件操作函数fopen的基础知识, 以”W”方式打开文件,只能写不能读。选项A正确。
18[单选题] 有以下程序:
程序执行后的输出结果是( )。
A.y=OS)y=一1B.0C.y=1D.while构成无限循环
参考答案:B
参考解析:执行Y一一直到值为0,由于Y一一是先用再减,所以退出循环时,y的值为一l。
19[单选题] 设Z.X树中共有31个结点,其中的结点值互不相同。如果该二叉树的后序序列与中序序列相同,该二叉树的深度为( )。
A.31B.16C.17D.5
参考答案:A
参考解析:二叉树遍历可以分为3种:黄序遍历(访问根结点在访问左子树和访问右子树之前)、中序童历(访问根结点在访问左子树和访问右子树两者之问)、后序童历(访问根结点在访问左子树和访问右子树之后)。由结点售互不相同而后序序列与中序序列相同,可知该二叉树所有的结点都没有右子树,所以31个结点的二叉树深度为31:故选A选项。
20[简答题]学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数:
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数flm的花括号中填入你编写的若干语句。
参考解析:
【考点分析】
本题考查:查找结构体数组中的最小数据,需要通过for循环语句和if条件语句来完成。
【解题思路】
本题中第一个循环语句的作用是遍历数组求出最低分数,第二个循环语句的作用是将数组中的元素与最低分比较,查找是否存在与最低分相等的成绩。
2018年全国计算机等级考试调整方案
[考试动态]2017年11月20日全国计算机等级考试计算机基础及Photoshop应用试题答案汇总(6套)
[Photoshop应用]2017年2月3日全国计算机等级考试四级数据库系统工程师试题及答案汇总(22套)
[数据库工程师]2017年2月2日全国计算机一级考试模拟试题及答案300题
[WPS Office应用]2017年1月22日2017年3月全国计算机等级考试报名时间及报名入口汇总
[考试动态]2017年1月3日