二级C语言考试习题集(五)

发布于 2018-01-23 19:25  编辑:盘子
0
计算机等级考试题库 扫码微信刷题

2786001_191026181001_2.jpg


1. 对于while(!E)s;,若要执行循环体s,则E的取值应为:

A.E等于1B.E不等于0C.E不等于1D.E等于0

参考答案:D

参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。


2. 在软件设计中不使用的工具是( )。

A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图

参考答案:C

参考解析:系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。


3. 若有定义语句:char a='\82';则变量a(  )

A.说明不合法B.包含1个字符C.包含2个字符D.包含3个字符

参考答案:B

参考解析:char a='\82',定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为'2'。因此B选项正确。


4. 若fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是

A.EOFB.非0C.-1D.0

参考答案:D

参考解析:本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项D正确。


5. 以下叙述中正确的是

A.只要适当地修改代码,就可以将do-while与while相互转换

B.对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环

C.对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句

D.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句

参考答案:A

参考解析:B选项中,for语句中需要先求解先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。


6. 设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的人栈与退栈操作后,top=50,则栈中的元素个数为(  )。

A.1

B.0

C.50

D.49

参考答案:A

参考解析:栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插人一个新元素,退栈运算即取出栈顶元素赋予指定变量。栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。初始状态为top=51,当top=50时,则栈中S(50:51)存储着元素,51-50=1.元素个数为l。故本题答案为A选项。


7. 以下不能使指针s所指存储单元的值增1的选项是(  )。

A.(*s)++;

B.*s=*s+1;

C.*s++;

D.++*s;

参考答案:C

参考解析:选项A首先获取s指向的存储单元的值,使用完该值后,将该值自增1,正确;选项B首先获取s指向的存储单元的值,并将该值加1后重新赋给该存储单元,正确;选项D首先获取s指向的存储单元的值,然后将该值自增1,再使用加1后的新值,正确;选项C中,*s++的含义是首先获取s指向的存储单元的值,然后再将指针s向后移动一位,所以答案为C。


8. 以下选项中关于程序模块化的叙述错误的是(  )。

A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

C.把程序分成若干相对独立的模块,可便于编码和调试

D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

参考答案:A

参考解析:程序模块化思想中,可以采用自顶向下、逐步细化的方法。所以选项A中“自底向上”的说法是错误的。


9. 以下选项中,当X为大于1的奇数时,值为0的表达式是(  ):

A.x%2==0

B.x/2

C.x%2!=0

D.x%2==1

参考答案:A

参考解析:算术运算符的优先级高于关系运算符的优先级,所以当X为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。D选项的值为真,即1。


10. 若有定义语句:

int a[2][3],*p[3];

则以下语句中正确的是( )。

A.p=a;

B.p[0]=8;

C.p[0]=&a[1][2];

D.p[1]=&a;

参考答案:C

参考解析:A选项错误,因为p是指向一个指针数组,作为数组名,不能指向别的地方。B选项错误,因为p[0]是一个int指针,也就是int*;而a是一个指向指针的指针int**。C选项正确,因为p[0]是一个int*a[1][2]是int,&a[1][2]是int*,类型吻合。D选项错误,因为a作为数组名,不能取地址。即使能取,P[1]是int*,&a是int***,类型不对。因此C选项正确。




考无忧小编推荐:

更多计算机等级考试真题及答案>>>点击查看

想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看


本文网址:http://www.k51.com.cn/info/jsjdjks/1801/2323115.html
选择分享到: