国家二级(C语言)机试模拟试卷463
选择题
1.有如下语句:
k=a>b?(b>c?1:0):0;,
以下程序段中,与上述语句功能相同的是( )。(A)
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;
解析:三元运算符表达式的形式为:表达式1?表达式2:表达式3,当表达式1的值为真时,结果为表达式2的值;当表达式1的值为假时,结果为表达式3的值。首先判断a、b的关系:①如果a>b,那么就执行“:”前面的语句(b>c?1:0);判断b、c的关系,如果b>c,k=1,否则k=0;②如果a<=b,则k=0。综上所述:当a>b且b>c时,k=1,否则k=0,与A项语句功能相同。
2.需求分析阶段的任务是( )。(D)
A. 软件开发方法
B. 软件开发工具
C. 软件开发费用
D. 软件系统功能
解析:需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调企现实世界要处理的对象,充分了篇原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
3.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课sC(学号,课号,成绩),则表SC的关键字(键或码)为( )。(C)
A. 课号,成绩
B. 学号,成绩
C. 学号,课号
D. 学号,姓名,成绩
解析:学号是学生表s的主键,课号是课程表c的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C。
4.以下程序中C的二进制值是( )。
char a=2,b=4,c;
c=a^b>>2(A)
A. 00000011
B. 00010100
C. 00011100
D. 00011000
解析:本题主要考查按位异或和右移运算。b=4的二进制为00000100,b>>2后为00000001,a=2的二进制为00000010,两者异或为00000011。
5.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(C)
A. O(n)
B. O(n2)
C. O(log2n)
D. O(nlog2n)
解析:当有序线性表为顺序存储时才能用二分法查找。通过证明,对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n次,而顺序查找需要比较n次。
6.为了使模块尽可能独立,要求( )。(B)
A. 内聚程度要尽量高,耦合程度要尽量强
B. 内聚程度要尽量高,耦合程度要尽量弱
C. 内聚程度要尽量低,耦合程度要尽量弱
D. 内聚程度要尽量低,耦合程度要尽量强
解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
7.若变量已正确定义并赋值,则以下符合C语言语法的表达式是( )。(B)
A. a=a+7;
B. a=7+b+c,a++
C. int(12.3%4)
D. a=a+7=c+b
解析:选项A)是一个C语句,不是表达式;选项B)是利用一个逗号表达式给a赋值;选项C)中的“%”求余运算符要求两个运算对象都必须是整型;选项D)中,不能用表达式给表达式赋值,但是变量可以给自身赋值,例如:a=a+l。
8.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是( )。(A)
A. a=(b=4)=3;
B. a=b=c+1;
C. a=(b=4)+c;
D. a=1+(b=c=4);
解析:这道题目主要考察赋值表达式,对于赋值表达式来说,赋值号“= ”的左边一定为变量名,右边为一个C语言合法的表达式。
9.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是( )。(B )
A. 顺序内聚
B. 偶然内聚
C. 时间内聚
D. 逻辑内聚
解析:内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚有如下种类,它们之间的内聚度由弱到强排列:
偶然内聚一一模块中的代码无法定义其不同同功能的调用。但它使该模块能执行不同的功能,这种模块为巧合强度模块。
逻辑内聚——这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的参数来确定该模块应完成哪一种功能。
时间内聚——这种模块顺序完成一类相关功能,比如初始化模块,它顺序地为变量置初值。
过程内聚——如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。
通信内聚——这种模块除了具有过程内聚的特点外,还有另外一种关系,即它的所有功能都通过使用公用数据而发生关系。
顺序内聚一一如果一个模块内各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,处理元素的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。
功能内聚——如果一个模块包括为完成某一具体任务所必需的所有成分,或者说模块中所有成分结合起来是为了完成一个具体的任务,此模块则为功能内聚模块。
10.下列方法中,属于白盒法设计测试用例的方法的是( )。(C)
A. 错误推测
B. 因果图
C. 基本路径测试
D. 边界值分析
解析:白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。
11.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为( )。(A)
A. 并运算
B. 交运算
C. 差运算
D. 积运算
解析:关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,新关系中包含两个关系中的所有元组。
12.C源程序中不能表示的数制是( )。(D)
A. 十六进制
B. 八进制
C. 十进制
D. 二进制
解析:在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择D。
13.以下叙述中正确的是( )。(A)
A. 实用的C语言源程序总是由一个或多个函数组成
B. 用户自己定义的函数只能调用库函数
C. 不同函数的形式参数不能使用相同名称的标识符
D. 在C语言的函数内部,可以定义局部嵌套函数
解析:一个C程序可以有一个或多个程序文件
本文档预览:3600字符,共15052字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载