国家二级(C语言)机试模拟试卷140
选择题
1.关于栈的叙述中正确的是( )。(C)
A. 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B. 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C. 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D. 以上说法都不正确
解析:栈的存取原则是先进后出,所以,栈底指针不变,栈中元素随栈顶指针的变化而动态变化。
2.关于栈的叙述中正确的是( )。(D)
A. 栈底元素最先能被删除
B. 栈顶元素最后才能被删除
C. 栈顶元素永远不能被删除
D. 栈顶元素最先被删除
解析:栈的存取原则是先进后出,所以最后进入的栈顶元素将最先被删除。
3.某二叉树共有5个节点,其中叶子节点只有1个,则该二叉树的深度为(假设根节点在第1层)( )。(C)
A. 3
B. 4
C. 5
D. 7
解析:二叉树中度为0的节点(叶子节点),总是比度为2节点多1个,所以此题中,度为2的节点是1一1=0个,因此,本题中的其他节点均为度为1的节点,该二叉树只有一个分支,且深度为5。
4.计算机软件可分为应用软件、系统软件和支撑软件。下面属于应用软件的是( )(A)
A. Office文字处理系统
B. C语言编译程序
C. UNIX操作系统
D. 数据库管理系统
解析:操作系统、编译程序和数据库管理系统都属于系统软件。
5.不属于结构化程序基本结构的是( )。(D)
A. 顺序结构
B. 重复(循环)结构
C. 选择(分支)结构
D. GOTO跳转
解析:结构化程序基本结构包括顺序结构、重复(循环)结构和选择(分支)结构。
6.关于软件设计的叙述中不正确的是( )。(A)
A. 系统总体结构图支持软件系统的详细设计
B. 软件设计是将软件需求转换为软件表示的过程
C. 数据结构与数据库设计是软件设计的任务之一
D. PAD图是软件详细设计的表示工具
解析:软件设计是将软件需求转换为软件表示的过程,设计过程中PAD图是软件详细设计的表示工具。但系统总体结构图主要是确定算法和数据结构,而非详细设计。
7.数据库查询语言是( )。(D)
A. 数据定义语言
B. 数据管理语言
C. 数据控制语言
D. 数据操纵语言
解析:数据操纵语言是指对数据的增、删、改、查;数据控制语言负责数据的完整性、安全性的定义与检查等,数据定义与数据管理语言也不涉及查询。
8.一个学生可选多门课程,一门课程也可由多个学生来选。则学生和课程间的联系是( )。(D)
A. 1:1联系
B. 1:m联系
C. m:1联系
D. m:n联系
解析:一个学生可选多门课程,一门课程也可由多个学生来选,所以他们之间是多对多的关系。
9.有三个关系R、S和T如下:
(D)
A. 自然连接
B. 并
C. 除
D. 差
解析:S+T=R,所以T=S—R。
10.在C语言中可以作为无符号整数类实例化值的是( )。
B
解析:选项A是负数,选项C是小数,选项D是数组,所以只有选项B正确。
11.关于C语言语句的叙述中正确的是( )。(D)
A. C语言的数值常量中夹带空格不影响常量值的正确表示
B. C语言中的变量可以在使用之前的任何位置进行定义
C. 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D. C语言中的注释不可以夹在变量名或关键字的中间
解析:C语言的常量中不能夹带空格,C语言的变量必须是先定义才能使用,C语言的表达式两边可以是不同的类型,在运算时会进行强制转换成数度较高的类型。
12.关于C程序运行的叙述中错误的是( )。(A)
A. C程序在运行过程中所有计算都以十六进制方式进行
B. C程序在运行过程中所有计算都以二进制方式进行
C. 所有C程序都需要编译链接无误后才能运行
D. C程序中字符变量存放的是字符的ASCⅡ码值
解析:C程序在运行过程中所有计算都以二进制方式进行,所以A项错误,其他选项均正确。
13.以下不合法的字符常量是( )。(C)
A. ’\n’
B. ’\’
C. ’\083’
D. ’\xcc’
解析:AB两项是转义字符,选项D是十六进制,选项C是八进制,但其中不能包含8,C项错误。
14.以下合法的定义语句是( )。(D)
A. float,a,b;
B. float a=b=7;
C. floata:b;
D. float a=7,b=7;
解析:选项A的关键字与变量名之间应该用空格而不是逗号,选项B不能对没有定义的变量(a)赋值,选项C中间的冒号使用错误。
15.若int a=3,b=2,c=1;则赋值表达式有误的是( )。(A)
A. a=(b+4)=1;
B. a=b=c+3;
C. a=(b=2)+c
D. a=2+(b=c=3);
解析:不能给表达式赋值。
16.与while(E)中的(E)不等价的表达式是( )。(B)
A. (E>0‖E<0)
B. (E==0)
C. (!E==0)
D. (E!=0)
解析:while(E)中的E是指不为0的值,A项与D项正确,选项C与选项D等价,选项B不等价。
17.已知A和a的ASCⅡ码值分别是65和97,以下不能将变量c中的大写字母转换为对应小写字母的语句是( )。(A)
A. c=(c一’A’)%32+’a’
B. c=c+32
C. c=c-’A’+’a’
D. c=(c一’A’)%26+’a’
解析:选项B和C是最常用的方法,因为C与’A’之间的差值是小于26的,所以D选项与C选项等值,唯有选项A有误。
18.若对于int x,y;能通过scanf(’’%d;%d’’,&x,&y);将整数1赋给变量x,2赋给变量y的输入数据是( )。(C)
A. 1 2
B. 1,2
C. 1;2
D. 12
解析:scanf是严格按照格式获取数据的,因此在输入时需要以分号进行分隔。
19.k=a>b?(b>c?1:0):0的功能是( )。(B)
A. if((a>b)‖(b>c))k=1;
else k=0;
B. if((a>b)&&(b>c))k=1;
else k=0;
C. if(a<=b)k=0;
else if(b<=c)k=1;
D. if(a>b)k=1;
else if(b>c)k=1;
else k=0;
本文档预览:3600字符,共14526字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载