国家二级C语言机试(选择题)模拟试卷387
选择题
1.算法的有穷性是指(A)
A. 算法程序的运行时间是有限的
B. 算法程序所处理的数据量是有限的
C. 算法程序的长度是有限的
D. 算法只能被有限的用户使用
解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
2.设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=R×S,则T的元组的个数为( )。(C)
A. 6
B. 8
C. 9
D. 12
解析:R为n元关系,有p个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。
3.以下选项中合法的标识符是(C)
A. 1.1
B. 11
C. 11
D. 1
解析:本题考查标识符定义。合法标识符的要求是由下划线、英文大小写字母利数字组成的字符串,且第一个字符必须是字母或下划线。
4.冒泡排序在最坏情况下的比较次数是(C)
A. n(n+1)/2
B. nlog2n
C. n(n-1)/2
D. n/2
解析:对n个结点的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和rd2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
5.在黑盒测试方法中,设计测试用例的根据是( )。(D)
A. 数据结构
B. 模块间的逻辑关系
C. 程序调用规则
D. 软件要完成的功能
解析:黑盒测试方法也称功能测试或数据驱动测试。黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。它完全不考虑程序内部的逻辑结构和内部特征,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能要求。
6.如果定义float a[10],x;,则以下叙述中正确的是( )。(A)
A. 语句a=&x;是非法的
B. 表达式a+1是非法的
C. 三个表达式a[1]、*(a+1)、*&a[1]表示的意思完全不同
D. 表达式*&a[1]是非法的,应该写成*(&(a[1]))
解析:数组名表示该数组的首地址,是一个地址常量,不能对它重新赋值,选项A正确。但是可以把数组名看作一个指针常量,则表达式a+1表示的是数组中第二个元素的地址,选项B错误。表达式a[1]、*(a+1)、*&a[1]都指的是数组a中第二个元素的值,选项C错误。[]运算符的优先级高于*、&,取值*和取址&运算符优先级相等,是同一优先级的运算符,运算次序由结合方向所决定,*&a[1]在运算符优先级和结合性上没有问题,并且取值*和取址&运算符互逆,*&a[1]和a[1]等价,相当于求得数组a第二个元素的值,选项D错误。故正确答案为A。
7.以下叙述中正确的是(A)
A. 由&&构成的逻辑表达式与由‖构成的逻辑表达式都有“短路”现象
B. C语言的关系表达式:0<x
C. 逻辑“非”(即运算符!)的运算级别是最低的
D. 逻辑“或”(即运算符‖)的运算级别比算术运算要高
解析:逻辑表达式的运算比较复杂,有短路现象,也就是首先计算“逻辑与”或者“逻辑或”运算的第一个运算量的值,根据表达式的值决定是否进行第二个量的值的计算。“逻辑与”和“逻辑或”运算低于关系运算和算术运算。但是“逻辑非”运算却高于算术运算。
8.表达式a+=a一=a=9的值是( )。(C)
A. 18
B. 一9
C. 0
D. 9
解析:首先计算a=9,然后计算a一=9,即a=a一9,结果为0,然后计算a+=0,即a=a+0,所以最终结果为0。
9.某带链队列初始状态为front=rear=NULL。经过一系列正常入队与退队操作后,front=10,rear=5。该队列中的元素个数为(A)
A. 不确定
B. 5
C. 4
D. 6
解析:循环队列用数组A[0:m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列的元素个数是(rear-front+m)%m=(5-10+m)%m=(m-5)%m。因为本题中的m值不确定,所以(m-5)%m的值不能确定。所以选项A正确。
10.若变量已正确定义,以下选项中非法的表达式是(C)
A. a!=4‖’b’
B. ’a’%4
C. ’a’=1/2*(x=y=20,x*3)
D. ’A’+32
解析:赋值表达式左边应为变量,选项C中左边为字符常量,因此非法,其余表达式均为合法的表达式。
11.以下选项中,没有编译错误的是( )。
A
解析:B选项中,不能直接将字符数组名直接赋值给另一个字符数组名。C选项赋值错误,不能将一个字符串常量赋值给一个字符指针。D选项定义str4时需要定义其长度。故A选项正确。
12.有以下程序#include main(){int x;scanf(\\(D)
A. 不等于10的整数
B. 大于3或等于10的整数
C. 小于3的整数
D. 大于3且不等10的整数
解析:题目中,虽然else和第二个if不在同一行上,但等价于在同一行上,因此,程序的意思是当x大十3且不等于10时打印出来。
13.在E-R图中,用来表示实体的图形是(A)
A. 矩形
B. 椭圆形
C. 菱形
D. 三角形
解析:在E一R图中,用矩形表示实体集,在矩形内写上该实体集的名字;用椭圆形表示属性;用菱形(内部写上联系名)表示联系。
14.下列说法不正确的是( )。(D)
A. int *ptr;//指针指向整形数据
B. char *ptr;//指针的类型是字符型指针
C. int **ptr;//指针的类型是双重指针
D. int(*ptr)[3];//是一个指针数组,数组共有三个元素,而三个元素是int型指针
解析:int(*ptr)[3]是一个数组指针,指针指向一个有3个int型变量的数组。
15.若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是( )。(D)
A. ++i;
B. nl=(n2/(n3=2));
C. k=i=j;
D. a=b+c=2;
解析:本题考查赋值表达式。赋值表达式的一般形式是:变量名=表达式。C语言规定,不能给变量表达式赋值。
16.数据流图(DFD)中的有向箭头(→)表示(A)
A. 数据流
B. 控制流
C. 输入流
D. 输出流
解析:数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。数据流程图中有以下几种主要元素:
→:数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成;□:数据源或宿(“宿”表示数据的终点)。代表系统之外的实体;○:对数据的加工(处理)。加工是对数据进行
本文档预览:3600字符,共10451字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载