计算机二级C语言考试冲刺模拟(二)
>>计算机二级C语言考试真题答案:计算机二级C语言考试冲刺模拟(二)
21[单选题]某二叉树共有399个结点,其中有199个度为2的结点,则该二叉树中的叶子结点数为()。
A.不存在这样的二叉树
B.200
C.198
D.199
参考答案:B
参考解析:
根据二叉树的基本性质,对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中度为2的结点为199个,则叶子结点为199+1=200。故本题答案为B选项。
22[单选题]有以下程序段:
程序的输出结果是()。
A.a=10b=50c=10
B.a=10b=50c=30
C.a=10b=30c=10
D.a=50b=30c=50
参考答案:A
参考解析:
形式为“if(表达式)语句”的if作用到语句的第一个分号结束,所以本题中jf语句的作用范围为a=b,b=C;。由于if条件为false,所以这两条语句不执行,执行C=a语句,所以程序最终输出结果:10,50,10,答案为A。
23[单选题]有以下程序:
程序运行后的输出结果是()。
A.Zhao,m,85,90
B.Qian,m,85,90
C.Zhao,f,95,92
D.Qian,f,95,92
参考答案:D
参考解析:
本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会生成参数c的一个副本,而不会改变c的值,所以c值维持原值,选项D正确。
24[单选题]有以下程序:
程序运行后的输出结果是()。
A.ab
B.a*b
C.*****a*b
D.a*b****
参考答案:D
参考解析:
在函数fun(char*a,char*b)中,while(*a==‘*’)a++的功能是:如果*a的内容为‘*’,则a指针向后移动,直到遇到非‘*’字符为止,退出循环进入下个while循环,在while(*b=*a){b++;a++;}中,把字符数组a中的字符逐个赋给字符数组b。所以在主函数中,执行fun(s,t)语句后,字符数组t中的内容为“a*b****”。因此D选项正确。
25[单选题]下面不属于需求分析阶段任务的是()。
A.确定软件系统的功能需求
B.确定软件系统的性能需求
C.需求规格说明书评审
D.制定软件集成测试计划
参考答案:D
参考解析:
需求分析阶段的工作有:需求获取;需求分析;编写需求规格说明书;需求评审,所以选择D。
26[单选题]有以下程序:
程序运行后的输出结果是()。
A.10,64
B.10,10
C.64,10
D.64,64
参考答案:A
参考解析:
本题考查宏定义的用法,宏定义只是做个简单的替换,所以本题中执行f(a+1)=a+l*a+1*a+l=3*a+1=10,f((a+1))=(a+1)*(a+1)*(a+1)=64,所以答案为A选项。
27[单选题]定义学生、教师和课程的关系模式S(S#,Sn,Sd,De,SA)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄);C(C#,Cn,P#)(其属性分别为课程号、课程名、先修课);SC(S#,C#,G)(其属性分别为学号、课程号和成绩),则该关系为()。
A.第二范式
B.第一范式
C.第三范式
D.BCNF范式
参考答案:A
参考解析:
范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce—Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。第一范式:主属性(主键)不为空且不重复,字段不可再分(存在非主属性对主属性的部分依赖)。
第二范式:如果关系模式是第一范式,每个非主属性都没有对主键的部分依赖。
第三范式:如果关系模式是第二范式,没有非主属性对主键的传递依赖和部分依赖。
BCNF范式:所有属性都不传递依赖于关系的任何候选键。
题目中关系模式满足第二范式,但在关系模式s中,学生所在系依赖于学号(S#→Sd),但系本身确定了系主任(Sd→Dc),存在传递依赖,不满足第三范式。故本题答案为A选项。
28[单选题]设一棵树的度为4,其中度为4,3,2,1的结点个数分别为2,3,3,0。则该棵树中的叶子结点数为()。
A.16
B.15
C.17
D.不可能有这样的树
参考答案:A
参考解析:
根据题目,树的结点数=4×2+3×3+2×3+1×0+根结点=8+9+6+0+1=24,即总结点数为24,总结点数减去度不为0的结点数即是叶子结点,24-(2+3+3)=16。故本题答案为A选项。
29[单选题]下面结构体的定义语句中,错误的是()。
参考答案:A
参考解析:
定义一个结构体的一般形式为:struct结构名{成员列表};
说明结构变量有3种方法:
1.先定义结构体,再说明结构变量
struet结构名
{成员列表};
struct结构名变量名1、变量名2;
故选项B正确。
2.在定义结构类型的同时说明结构变量
struct结构名
{
成员列表
{变量名列表;
故选项C正确。
3.直接说明结构变量
struct
}
成员列表
}变量名列表;
故选项D正确。
使用方法1定义结构体时,在右括号的后面不能省略分号,故选项A错误。
30[单选题]一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为()。
A.16
B.10
C.6
D.4
参考答案:A
参考解析:
根据二叉树的性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是5-1=4个,所以度为l的结点的个数是25-5-4=16个。
31[单选题]在数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。
A.人工管理阶段
B.文件系统阶段
C.文件系统阶段和数据库阶段
D.人工管理阶段和文件系统阶段
参考答案:A
参考解析:
数据库管理技术的三个阶段是人工管理阶段、文件系统阶段和数据库系统阶段。人工管理阶段没有专门的软件对数据进行管理。故本题答案为A选项。
32[单选题]若变量已正确定义,在if(W)prinff(”%dn”,k);中,以下不可替代w的是()。
A.a<>b+c
B.ch=getchar()
C.a=b+c
D.a++
参考答案:A
参考解析:
if语句中的判断条件是表达式,该表达式通常是逻辑表达式或关系表达式,也可以是算术表达式或赋值表达式,甚至是一个常量或变量,只要是语句合法的表达式即可,选项B是合法的赋值表达式,正确;选项C是关系表达式,正确;选项D都算术表达式,也是合法的表达式,正确;选项A中的符号<>不合法,故答案选A。
33[单选题]以下叙述错误的是()。
A.若用户标识符的命名与预定义标识符相同,命名无效
B.若用户标识符的命名与关键字相同,将产生编译错误
C.若用户标识符的命名与预定义标识符相同,预定义标识符失去原有含义
D.若用户标识符的命名与预定义标识符相同,可能引发运行错误
参考答案:A
参考解析:
标识符分为关键字、预定义标识符、用户标识符,关键字不可以作为用户标识符,故选项B正确;预定义标识符可以作为用户标识符,原来的预定义标识符将会被用户标识符覆盖,预定义标识符的原意失效,故选项A错误,选项C正确;用户标识符与预定义标识符同名时,可能会导致运行错误,故选项D正确,因此答案为A。
34[单选题]有以下程序:
若运行时输入:246<回车>,则输出结果为()。
A.246
B.200
C.240
D.204
参考答案:D
参考解析:
分析程序可知,main函数首先初始化一个3X2的二维数组x,其中每个元素的初值为0,然后通过for循环,为x的行首元素重新赋值(x[i]为每行行首元素的地址),当输入2、4、6后,行首元素x[0][0]、x[1][0]、x[2][0]的值为2、4、6,所以输出为:2、0、4。故答案选D。
35[单选题]有以下程序:
程序运行后的输出结果是()。
A.1,1,2,6,
B.6,2,1,1。
C.6,4,3,2,
D.2,3,4,6,
参考答案:C
参考解析:
首先对二维数组进行赋值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值为1、4、…、6、1。通过for嵌套循环语句和if条件语句,对二维数组对角线元素进行由大到小的排序操作.程序最后通过for语句输出二维数组第1行的4个元素。因此C选项正确。
36[单选题]有以下程序:
程序运行后的输出结果是()。
A.2,3
B.1,3
C.1,4
D.1.2
参考答案:B
参考解析:
在f(int*p,int*q)函数中,执行p=p+11是将p所对应的地址加1,而*q=*q+1是将q所指向的n1的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。
37[单选题]以下结构体类型说明和变量定义中正确的是()。
参考答案:B
参考解析:
本题考查结构体的相关知识,选项A中structREC后面不能有分号,C选项中typedefstructREC的后面也不能有分号,选项D中REC已经是结构体变量,不能当作结构体类型来使用。
38[单选题]有以下程序:
程序运行后的输出结果是()。
A.1
B.2
C.3
D.4
参考答案:B
参考解析:
本题重点考察函数的递归调用;题目中给出的fun()函数直接调用了自身,所以是一个递归函数。其功能是:当参数b为0时,返回参数a的值,否则返回fun(--a,--b)的值。从这里可以看出,当b不断递减时,a也不断递减,直到b为0时返回a的值。那么a递减的总值就是b原来的值。所以整个递归函数的作用就是返回a-b的值。因此B选项正确。
39[单选题]有以下程序段:
当执行上述程序段,并从键盘输入:name=Lilinum=1001<回车>后,name的值为()。
A.name=Lilinum=1001
B.name=Lili
C.Lilinum=
D.Lili
参考答案:D
参考解析:
在输入格式控制“name=%snum=%d”中,普通字符“name=num=”在输入时要原样输入,而格式控制符%s和%d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入“name=Lilinum=1001<回车>”后,将字符串Lili赋给字符数组name,整数1001赋给变量num。因此D选项正确。
40[单选题]有以下程序:
程序运行后的输出结果是()。
A.z
B.0
C.元素ch[5]的地址
D.字符y的地址
参考答案:A
参考解析:
语句pc=ch;使得指针变量指向字符数组ch的首地址,即指向字符‘u’。则pc+5指向的是字符向后移动5位,指向字符‘z’。所以输出的*pc+5的值即为‘z’。因此A选项正确。
对于计算机二级考试C语言考试试题就先介绍到这里,登录坦途网计算机等级考试频道,为你提供更多C语言上机试题,让你能够更加高效的复习。
温馨提示:因考试政策、内容不断变化与调整,坦途网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!