国家二级C语言机试(选择题)模拟试卷350
选择题
1.某系统总体结构图如下图所示:
(C)
A. 7
B. 6
C. 3
D. 2
解析:这个系统总体结构图是一棵树结构,在树结构中,根结点在第1层,同一层上所有子结点都在下一层,由系统总体结构图可知。这棵树共3层。在树结构中,树的最大层次称为树的深度。所以这棵树的深度为3。
2.表达式3.6.5/2+1.2+5%2的值是(C)
A. 4.8
B. 3.3
C. 3.8
D. 4.3
解析:表达式的计算过程为:3.6-5/2+1.2+5%2=3.6—2+1.2+1=3.8。此题要注意5/2的结果是2,而不2.5.因为除法运算符两边的数值类型均为整型,故运算结果的数值类型也被认定为整型。
3.面向对象方法中,继承是指(D)
A. 一组对象所具有的相似性质
B. 一个对象具有另一个对象的性质
C. 各对象之间的共同性质
D. 类之间共享属性和操作的机制
解析:面向对象方法中,继承是使用已有的类定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
4.设变量已正确定义并赋值,下列表达式中正确的是( )。(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选项错误。
5.设有定义:int k=0;,以下选项的4个表达式中与其他3个表达式的值不相同的是( )。(C)
A. ++k
B. k+=1
C. k++
D. k+1
解析:++k,先使得k的值自增1后再使用,k++是先取得k的值再将k的值自增1,所以C选项中表达式的值为O,而其他3个表达式的值均为1,所以选择C选项。
6.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是( )。(B)
A. 顺序内聚
B. 偶然内聚
C. 时间内聚
D. 逻辑内聚
解析:内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚有如下种类,它们之间的内聚度由弱到强排列:
偶然内聚一一模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块为巧合强度模块。
逻辑内聚一一这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的参数来确定该模块应完成那一种功能。
时间内聚一一这种模块顺序完成一类相关功能,比如初始化模块,它顺序地为变量置初值。
过程内聚一一如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。
通信内聚一一这种模块除了具有过程内聚的特点外,还有另外一种关系,即它的所有功能都通过使用公用数据而发生关系。
顺序内聚一一如果一个模块内各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,处理元素的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。
功能内聚一一如果一个模块包括为完成某一具体任务所必需的所有成分,或者说模块中所有成分结合起来是为了完成一个具体的任务,此模块则为功能内聚模块。
7.若变量已正确定义,有以下程序段:i=0;do prinff(\\(A)
A. 0,1
B. 0,0
C. 1,1
D. 程序进入无限循环
解析:第一次首先执行循环体,打印i的值0,然后判断while的条件i++,先用后自增,所以判断时条件为假,跳出循环,但是仍执行了i的自增操作,i的值为1,在接下来的打印语句中进行打印。
8.有以下程序:
#include
main()
{
int a[]={2,4,6,8},*P=a,i;
for(i=0;i<4;i++)
a[i]=*P++;
printf(“%d\n”,a[2]);
}
程序运行后的输出结果是( )。(D)
A. 2
B. 8
C. 4
D. 6
解析:本题通过语句“*p=a”将一维数组a的首地址的值赋值给变量p,即p的值为2。执行for循环,a[i]=*p++,表示将p的值赋给a[i]后,再进行++操作。因此4次循环后a[2]的值为6。故D选项正确。
9.在满足实体完整性约束的条件下(A)
A. 一个关系中应该有一个或多个候选关键字
B. 一个关系中只能有一个候选关键字
C. 一个关系中必须有多个候选关键字
D. 一个关系中可以没有候选关键字
解析:在关系数据库中,实体完整性的概念是主属性不能为空。在满足实体完整性的前提下,必须在关系中存在主属性,也就是在关系中应该有候选关键字。一个关系中可以有一个或者多个候选关键字。
10.有以下程序
#}include<string-h>
main( )
{charp[20]:{’a’,’b’,’C’,’d’),q[]=’’abc’’,r[]=’’abcde’’;
strcat(p,r);strcpy(p+strlen(q),q);
printf(’’%d\\
’’,strlen(p));
}
程序运行后的输出结果是(C)
A. 9
B. 11
C. 6
D. 7
解析:字符串连接函数scrcat(*p,r)的功能是把字符数组p[]和r[]连接起来,此时字符数组p[]的有效字符长度为9,冉执行strcpy(p+strlen(q),q)字符串复制函数,把字符数组q[]复制到字符数组p[]从p[3]开始到p[5]数组位置中,由于字符数组q[]中的内容为字符串”abc”复制时把字符串结束标志’\\
ull也复制到字符数组p[]中,这时字符函数strlen(p)返同字符数组p[]的有效字符长度为6。
11.关于return语句的叙述中错误的是( )。(C)
A. 用户定义的函数中可以没有return语句
B. 用户定义的函数中若没有return语句,则应当定义函数为void类型
C. 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
D. 函数的return语句中可以没有表达式
解析:C语言return语句返回,return语句的形式如下:return表达式;当程序执行到return语句时,程序的流程就返回到调用该函数的地方,并带回函数值。在同一函数内,可以根据需要,在多处出现return语句,在函数体的不同部位退出函数。无论函数体中有多少个return语句,return语句只可能执行一次,返回一个函数值。return语句中也可以不含有表达式,这时必须定义函数为。void类型,它的作用只是使流程返回到调用函数。并没有确定的函数值。函数体内可以没有return语句,这时也必须定义函数为void类型,程序的流程就一直执行
本文档预览:3600字符,共12291字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载