国家二级C语言机试(选择题)模拟试卷348
选择题
1.以下叙述正确的是( )。(B)
A. 可以把define和if定义为用户标识符
B. 可以把define定义为用户标识符,但不能把if定义为用户标识符
C. 可以把if定义为用户标识符,但不能把define定义为用户标识符
D. define和if都不能被定义为用户标识符
解析:在C语言中,define是编译预处理命令动词,通常用来定义符号常数,但它不是保留字,可以被定义为用户标识符,而if是保留字,不能被定义为用户标识符。
2.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面属于定义阶段任务的是( )。(C)
A. 软件设计
B. 软件测试
C. 可行性研究
D. 数据库设计
解析:软件生命周期可分为定义阶段、开发阶段和维护阶段。
软件定义阶段的任务是:确定软件开发工作必须完成的目标;确定工程的可行性。
软件开发阶段的任务是:具体完成设计和实现定义阶段所定义的软件,通常包括总体设计、详细设计、编码和测试。其中总体设计和详细设计又称为系统设计,编码和测试又称为系统实现。
软件维护阶段的任务是:使软件在运行中持久地满足用户的需要。
3.对长度为n的线性表作快速排序,在最坏情况下,比较次数为(D)
A. n
B. n-1
C. n(n-1)
D. n(n-1)/2
解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。
4.以下说法正确的是( )。(B)
A. 宏定义是C语句,要在行末加分号
B. 可以使用#undefine提前结束宏名的使用
C. 在进行宏定义时,宏定义不能嵌套
D. 双引号中出现的宏名也要进行替换
解析:本题考查宏的使用规则:①字符替换格式:#define标识符字符串,行末不加分号;②双引号中出现的宏名不替换;③如果提前结束宏名的使用,程序中可以使用#undefine;④在进行宏定义时,宏定义能层层置换,能够嵌套。
5.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。(D)
A. 大写字母
B. 下划线
C. 数字字符
D. 连接符
解析:C语言中的标识符由字母、下划线、数字组成,且开头必须是字母或下划线,所以D选项中的连接符不合法。
6.某图书集团数据库中有关系模式R(书店编号,书籍编号,库存数量,部门编号,部门负责人),其中要求
(1)每个书店的每种书籍只在该书店的一个部门销售;
(2)每个书店的每个部门只有一个负责人;
(3)每个书店的每种书籍只有一个库存数量。则关系模式R最高是( )。(B)
A. 1NF
B. 2NF
C. 3NF
D. BCNF
解析:由题可知关系模式R有三个函数依赖:
(书店编号,书籍编号)→部门编号
(书店编号,部门编号)→负责人
(书店编号,书籍编号)→库存数量
由此可知,(书店编号,书籍编号)可以唯一标识关系模式R中的每个元组,因此属于关系模式的主键。在此关系模式中,每个属性都是不可再分的,R属于1NF,且“书店编号”和“书籍编号”单独之一都不能决定其他非主属性,所以R属于2NF;但(书店编号,书籍编号)可以决定“部门编号”,“部门编号”又可决定“部门负责人”,存在传递依赖,所以不属于3NF,更不是BCNF。
7.下面关于算法的叙述中,正确的是( )。(B)
A. 算法的执行效率与数据的存储结构无关
B. 算法的有穷性是指算法必须能在执行有限个步骤之后终止
C. 算法的空间复杂度是指算法程序中指令(或语句)的条数
D. 以上三种描述都正确
解析:算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限的步骤后结束。
8.在软件开发中,需求分析阶段产牛的主要文档是(D)
A. 软件集成测试汁划
B. 软件详细设计说明书
C. 用户手册
D. 软件需求规格说明书
解析:在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。
9.以下选项中不能作为C语言合法常量的是( )。(B)
A. 0.1e+6
B. ’cd’
C. \a
D. ’\011’
解析:要想表示字符串常量,应该用双引号表示,即\\
10.设变量已正确定义并赋值,下列表达式中正确的是( )。(A)
A. x=y+z+5,++y
B. int(15.8%5)
C. x=y*5=x+z
D. x=25%5.0
解析:B选项与D选项中取模运算符%的左右两个操作数均应为整数,所以错误。C选项中不能将x+y的值赋给表达式y*5,所以C选项错误。
11.将E-R图转换为关系模式时,实体和联系都可以表示为(C)
A. 属性
B. 键
C. 关系
D. 域
解析:将E-R图转换为关系模式时,实体和联系都可以表示为关系。
12.有三个关系R、S和T如下:
(C)
A. 自然连接
B. 交
C. 除
D. 并
解析:从关系R、S和T的结构可以得出关系T是由关系R、S经过除运算后得到的。
13.以下选项中可用作C程序合法实数的是(C)
A. 3.0e0.2
B. E9
C. .1e0
D. 9.12E
解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要注意的是字母e或E之前必须要有数字,且字母e或E后面的指数必须为褴数。
14.有三个关系R、S和T如下:
(B)
A. 选择
B. 差
C. 交
D. 并
解析:由关系T中的数据可以看出,其数据由属于关系R但是不属于关系S的数据组成。所以关系T是由关系R和S通过差运算得到的。
15.有以下程序:
#include<stdio.h>
main( )
{
int a=1,b=3,c=5;
int*p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf(\\(C)
A. 1
B. 2
C. 3
D. 4
解析:该程序中int*p1=&a,*p2=&b,*p=&c;指定义3个指针变量,并赋值,即使p1指向a;p2指向b;p指向c。*p=*p1*(*
本文档预览:3600字符,共10640字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载