点击查看:2018年3月全国计算机二级C语言考试强化模拟题汇总
1、以下不构成无限循环的语句或语句组是( )。
A.n=0:
do{++n;}while(n<=0);
B.n=0;
while(1){n++;}
C.n=10;
while(n);{n--;}
D.for(n=0,i=1;;i++)n+=i;
参考答案:A
参考解析: 选项A中do后面的语句只执行了一次便结束了循环;B选项中条件while(1)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以wilile(n)永远为真,进入死循环;D选项中for语句第二个表达式为空,所以没有判别条件,进入死循环。
2、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。
A.1
B.0
C.2
D.不知道a的值,不能确定
参考答案:A
参考解析: 逻辑或”||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1。
3、程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。
若有以下程序段:
该程序段实现的功能是( )。
A.删除尾结点
B.尾结点成为首结点
C.删除首结点
D.首结点成为尾结点
参考答案:D
参考解析: 本题考查链表的操作,本题中首先是s指向了它的下个结点,题目中说明了s总是指向链表的第一个结点,然后while循环找到链表的最后一个元素,然后最后一个元素指向了之前链表的头结点,之前头结点指向了空结点,所以本题实现的功能是使首结点成为尾结点。选项D正确。
4、下列选项中不属于结构化程序设计原则的是( )。
A.可封装
B.自顶向下
C.模块化
D.逐步求精
参考答案:A
参考解析: 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
5、支持子程序调用的数据结构是( )。
A.栈
B.树
C.队列
D.二叉树
参考答案:A
参考解析: 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。
6、有以下程序:
以上程序执行后abc.dat文件的内容是( )。
A.China
B.Chinang
C.ChinaBeijing
D.BeijingChina
参考答案:B
参考解析: 本题考查文件操作函数,fwrite和rewind函数,题目中先是将a2字符串写入adc.dat中,然后将写指针回到文件开头,然后写入sl字符串,那么s1字符串就将前5个字符覆盖,所以最终结果为Chinang,选项B正确。
7、设有定义:
struct complex
{ int real,unreal;}data1={1,8},data2;
则以下赋值语句中错误的是( )。
A.data2=(2,6);
B.data2=data1;
C.data2.real=data1.real;
D.data2.real=data1.unreal;
参考答案:A
参考解析: A选项中可以在声明变量的同事为data2赋值,但是data2=(2,6);应写作data2={2,6}。所以选择A。
1、某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3
B.4
C.6
D.7
参考答案:D
参考解析: 根据二叉树的基本性质3:在任意一棵二叉树中,多为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。
2、有以下程序:
程序运行后的输出结果是( )。
A.t1=9 t2=4
B.t1=4 t2=9
C.t1=9 t2=9
D.t1=1 t2=4
参考答案:A
参考解析: 由程序可知,main函数的for循环中i的取值为1、2、3、4。T1初值为10,t2初值为0,当i-1时,传人函数m1参数为:1、10,因为1<10,所以函数m1的返回值为2×1+1=3;传人函数m2的参数为1、0,因为1>0,所以返回值为1;即第一轮循环后,t1=3,t2=1。当i=2时,传人函数m1的参数为2、3,因为2<3,所以函数返回值为2×2+1=5;传人函数m2的参数为2、1,因为2>1,所以函数返回值为2;即第二轮循环后,t1=5,t2=2;当i=3时,传人函数m1的参数为3、5,因为3<5,所以返回值为2×3+1=7;传人函数m2的参数为3、2,因为3>2,所以返回值为3;即第三轮循环后,t1=7,t2=3;当i-4时,传人函数m1的参数为4、7,因为4<7,所以函数返回值为2x4+1=9,传人函数m2的参数为4、3,因为4>3,所以函数返回值为4,即第四轮循环后,t1=9,t2=4。故答案选A(仔细分析可以发现,对于m1函数,由于第一次1<10,导致后面每次参数x都是i,而参数y都是2×i-1,返回值都是2×i+1;同理,对于m2函数,由于第一次1>0,导致后面每次参数x都是i,而y都是i-1,返回值都是i,所以最终结果为t1=2x4+1,t2=4)。
3、以下程序拟读取一个姓氏,查找其对应的年龄并输出:
程序有语法错误,出错的是( )。
参考答案:A
参考解析: 语句gets(&p- >name)中,gets的参数应该是成员变量name数组的首地址。而&p->name是首先获取数组name的首地址,然后再对首地址取地址符,所以这是错误的,正确参数应该是:gets(p->name);,故答案选A。
4、设有以下函数:
则下面对函数指针的定义和赋值均正确的是( )。
参考答案:D
参考解析: 函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的入口地址,指向函数的指针应该定义为void(* pf)()。如果定义为void*pf(),则表示函数pf返回值为一个基类型为void的指针。因此D选项正确。
5、以下选项中正确的定义语句是( )。
A.double,a,b;
B.double a=b=7;
C.double a;b;
D.double a=7,b=7;
参考答案:D
参考解析: A选项中变量类型符double后面不能有逗号。B选项中变量b不能先使用再定义,应该写成选项D中的格式。C选项中变量a后面应该是逗号而不是分号。
6、负责数据库中查询操作的数据库语言是( )。
A.数据定义语言
B.数据管理语言
C.数据操纵语言
D.数据控制语言
参考答案:C
参考解析: 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
7、有以下程序:
程序运行后的输出结果是( )。
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
参考答案:D
参考解析: 本题考查文件操作函数,两次fwrite后,fp文件中已经写入1,2,3,0,0,l,2,3,0,0然后将文件fp中的内容重新写入数组a中,最后输出a为l,2,3,0,0,1,2,3,0,0,所以选项D正确。
8、以下选项中,合法的c语言实数是( )。
A..4eO
B.4.3e0.2
C.FA.8
D.0.29E
参考答案:A
参考解析: C语言中,实数有两种形式:十进制小数形式和指数形式。由4个选项可知,本题考查的是实数的指数形式,指数形式一般为:aEn,其中a为十进制数,n为十进制整数,表示的值为:a ×10n;B、C选项错在阶码必须是整数,D选项错在无阶码,故答案为A,A的值为:0.4×100=0.4。
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: