国家二级C语言机试(选择题)模拟试卷330
选择题
1.设有栈S和队列Q,初始状态均为空。首先依次将A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为( )。(B)
A. DEFXYZABC
B. FEDZYXCBA
C. FEDXYZCBA
D. DEFZYXABC
解析:栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。队列是指允许在一端进行插入,而在另一端进行删除的线性表。将A,B,C,D,E,F入栈后,栈中元素为ABCDEF,退出三个元素入队,队列元素为FED,将X,Y,Z入栈后栈中元素为ABCXYZ,退栈全部入队后,队列元素为FEDZYXCBA。
2.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是(B)
A. 一条C语句可能会被转换成多条机器指令
B. 一条C语句对应转换成一条机器指令
C. 一条C语句可能会被转换成零条机器指令
D. 某种类型和格式的C语句被转换成机器指令的条数是固定的
解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语苦的语句条数和机器指令的条数不是一对一的关系。
3.下面4个关于C语言的结论中错误的是( )。(D)
A. 可以用do…while语句实现的循环一定可以用while语句实现
B. 可以用for语句实现的循环一定可以用while语句实现
C. 可以用while语句实现的循环一定可以用for语句实现
D. do…while语句与while语句的区别仅是关键字“while”出现的位置不同
解析:本题考查几个循环语句的关系。①do…while语句、while语句、for语句所实现的循环可以相互替代;②do…while语句和while语句的区别是do…while语句至少执行一次,再判断循环条件,while语句是先判断条件再执行。
4.以下选项中不能作为C语言合法常量的是(A)
A. ’cd’
B. 0.1e+6
C. \a
D. ’\011’
解析:常量指的是在程序的运行过程中,其值不能被改变的量。在C语言中,包括整型常量、实型常量、字符常量和字符串常量等类型。选项B0.1e+6是用指数形式表示的实型常量。在C语言中,用以“e”或“E”后一个整数来表示以10为底的幂数。以用这种形式表示实型常量时要注意C语言的语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数,并且在字母e或E的前后以及数字之间不得插入空格。选项C中用双引号括起米表示的字符串\a。选项D中’\011’表示用单引号括起来的转义字符八制进数011。选项A表示的字符常量是非法的,在用单引号表示的字符常量中,只能包含一个字符,而选项A中包含两个字符。
5.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(C)
A. 编译程序
B. 操作系统
C. 教务管理系统
D. 汇编程序
解析:编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件。
6.设有定义: int x=2;以下表达式中,值不为6的是(A)
A. 2*x.x+=2
B. x++,2*x
C. x*=(1+x)
D. x*=x+l
解析:本题考查逗号表达式。逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值,因此,选项A中值为4:选项B中,值为6。选项C中x*=x+1等价于x=x*(x+1),所以等于6;选项D与选项C等价,结果也为6。
7.下面程序执行后的输出结果是( )。
main()
{ int array[3][3],*p,i;
p=&array[0][0];
for(i=p;i<9;i++)
p[i]=i+1;
printf(\\(B)
A. 3
B. 6
C. 9
D. 随机数
解析:本题中,指针变量p指向数组array,输出array[1][2]相等于输出p所指向的数组的第6个元素(下标为5),即p[5]。
8.在关系数据库设计中,关系模式设计属于( )。(D)
A. 物理设计
B. 需求分析
C. 概念设计
D. 逻辑设计
解析:关系数据库设计有需求分析、概念设计、逻辑设计、物理设计、编码、测试、运行、进一步修改等几个阶段。在需求分析阶段形成需求说明书,概念设计阶段形成概念数据模型(E-R模型,作为进一步设计数据库的依据),逻辑设计阶段形成逻辑数据模型(从E-R图向关系模式转换、关系视图设计、模式规范化),物理设计阶段形成数据库内部模型(此时涉及具体软件硬件环境)。
9.下列叙述中正确的是( )。(A)
A. 程序执行的效率与数据的存储结构密切相关
B. 程序执行的效率只取决于程序的控制结构
C. 程序执行的效率只取决于所处理的数据量
D. 以上说法均错误
解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构以及所处理的数据量等有关。
10.下面对对象概念描述正确的是(A)
A. 对象间的通信靠消息传递
B. 对象是名字和方法的封装体
C. 任何对象必须有继承性
D. 对象的多态性是指一个对象有多个操作
解析:对象是面向对象方法中最基本的概念。操作描述了对象执行的功能,通过消息传递,还可以为其他对象使用。操作过程是被封装在对象中,用户看不到,称之为对象的封装性。对象的多态性是指同一个操作可以是不同对象的行为。不是所有的对象都必须有继承性。
11.以下选项中不能用作C程序合法常量的是( )。(C)
A. 123
B. ’\123’
C. 1,234
D. \x7D
解析:C选项中不能含有逗号,所以“1,234”不能用作C程序的合法常量。B选项表示的是八进制的常量,D选项表示的是十六进制的常量。
12.已知:int c[3][4];,则对数组元素引用正确的是 ( )。(C)
A. c[1][4]
B. c[1.5][0]
C. c[1+0][0]
D. 以上表达都错误
解析:此题考查的是数组元素的引用。对于已定义的数组a[M][N],数组元素的正确引用必须满足行下标小于M,列下标小于N,且为正整数。因此,选项A中列下标溢出;选项B中行下标出现小数;选项C满足要求。
13.设变量已正确定义并赋值,下列表达式中正确的是( )。(A)
A. x=y+z+5,++y
B. iut(15.8%5)
C. x=y*5=x+z
D. x=25%5.0
解析:B选项与D选项中取模运算符%的左右两个操作数均应为整数,所以错误。C选项中不能将x+y的值赋给表达式y*5,所以C选项错误。
14.以下不能将s所指字符串正确复制到t所指存储空间的是( )。
A
解析:“do{*t++=
本文档预览:3600字符,共11876字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载