二级C语言笔试-423
(总分:99.00,做题时间:90分钟)
一、选择题(总题数:40,分数:63.00)
1.下列叙述中正确的是
A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C) 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D) 上述3种说法都不对
(分数:2.00)
A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C) 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D) 上述3种说法都不对
(分数:2.00)
A.
B. √
C.
D.
解析:[解析] 本题考查线性表的存储结构。顺序存储结构只存储结点数据,而链式存储结构不仅要存储结点数据,还要存储指向下一个结点的指针,所以线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构。选项B正确。
2.下列选项中,不是一个算法的基本特征的是( )。
A) 完整性 B) 可行性 C) 有穷性 D) 拥有足够的情报
(分数:2.00)
A) 完整性 B) 可行性 C) 有穷性 D) 拥有足够的情报
(分数:2.00)
A. √
B.
C.
printf函数和scanf函数的格式说明都使用什么字符开始 D.
解析:[解析] 作为一个算法,一般应该具有下列4个特征:①可行性,即考虑到实际的条件能够达到一个满意的结果;②确定性,算法中的第一个步骤都必须是有明确定义的;③有穷性,一个算法必须在有限的时间内做完;④拥有足够的情报。
3.一颗二叉树中共有70个叶子结点与80个度为1的结点,则二叉树的总结点数为______。
(A) 219
(B) 221
(C) 229
(D) 231
(分数:2.00)
(A) 219
(B) 221
(C) 229
(D) 231
(分数:2.00)
A. √
B.
C.
D.
解析:
4.源程序的文档化不包括( )。
A) 符号名的命名要有实际意义 B) 正确的文档形式
C) 良好的视觉组织 D) 正确的程序注释
(分数:2.00)
A) 符号名的命名要有实际意义 B) 正确的文档形式
C) 良好的视觉组织 D) 正确的程序注释
(分数:2.00)
A.
B. √
C.
D.
解析:[解析] 源程序的文档化主要包括3点:①符号名应具有一定实际的含义,便于理解程序功能;②正确的程序注释;③良好的视觉组织(利用空格、空行、缩进等技巧使程序层次清晰)。
5.关于结构化程序设计原则和方法描述错误的是( )。
A) 选用的结构只准许有一个入口和一个出口
B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C) 不允许使用GOTO语句
D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟
(分数:2.00)
A) 选用的结构只准许有一个入口和一个出口
B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C) 不允许使用GOTO语句
D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟
(分数:2.00)
A.
B.
C. √
D.
解析:[解析] 限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他3项为结构化程序设计的原则。
6.为了使模块尽可能独立,要求______。
A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
(分数:1.00)
A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
(分数:1.00)
A.
B. √
C.
D.
解析:[解析] 衡量模块的独立程度使用耦合性和内聚性两个定性的度量标准。内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。内聚性是从功能角度来度量模块内的联系。模块内聚的程度越高,越独立。耦合性是模块间互相连接的紧密程度的度量。耦合程度越低,越独立。
7.能将高级语言程序转换成目标语言程序的是______。
A) 调试程序 B) 解释程序 C) 编译程序 D) 编辑程序
(分数:1.00)
A) 调试程序 B) 解释程序 C) 编译程序 D) 编辑程序
(分数:1.00)
A.
B.
C. √
D.
解析:[评析] 用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由O和1组成的二进指令,所以高级语言必须先用—种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。
8.C语言规定,在一个源程序中,main函数的位置
A) 必须在最开始 B) 必须在系统调用的库函数的后面
C) 可以任意 D) 必须在最后
(分数:1.00)
A) 必须在最开始 B) 必须在系统调用的库函数的后面
C) 可以任意 D) 必须在最后
(分数:1.00)
A.
B.
C. √
D.
解析:[解析] C程序总是从main函数开始执行,但main函数在程序中的位置可以是任意的。
9.下列不合法的用户标识符是( )。
A) j2_KEY B) Double C) 4d D) _8_
(分数:1.00)
A) j2_KEY B) Double C) 4d D) _8_
(分数:1.00)
A.
B.
C. √
D.
解析:[解析] 在C语言程序中,合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字符必须是字母或下划线。
10.下列选项可以正确表示字符型常量的是
A) '/r' B) "a" C) "/897" D) 296
(分数:1.00)
A) '/r' B) "a" C) "/897" D) 296
(分数:1.00)
A. √
B.
C.
D.
解析:[解析] C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的的范围是0~127。由于字符常量用单引号括起来,所以选项B),C)错误,选项D)超过了字符常量的表示范围。
11.以下程序的功能是进行位运算:
main()
unsigned chara,b;
a=7^3;b= ~4&3;
printf("%d %d/n",a,b);
程序运行后的输出结果是 ______。
A) 4 3 B) 7 3 C) 7 0 D) 4 0
(分数:1.00)
main()
unsigned chara,b;
a=7^3;b= ~4&3;
printf("%d %d/n",a,b);
程序运行后的输出结果是 ______。
A) 4 3 B) 7 3 C) 7 0 D) 4 0
(分数:1.00)
A. √
B.
C.
D.
解析:[解析]
a=7^3=00000111^00000011=00000100=4;
b=~4&3=~00000100&00000011=11111011&00000011=00000011=3
a=7^3=00000111^00000011=00000100=4;
b=~4&3=~00000100&00000011=11111011&00000011=00000011=3
12.当变量c的值不为2、4、6时,值也为“真”的表达式是
A) (c==2)||(c==4)||(c==6)
B) (c>=2&&c<=6)||(c!=3)||(c!=5)
C) (c>=2&&c<=6)&&! (c%2)
D) (c>=2&&c<=6)&&(c%2!=1)
(分数:1.00)
A) (c==2)||(c==4)||(c==6)
B) (c>=2&&c<=6)||(c!=3)||(c!=5)
C) (c>=2&&c<=6)&&! (c%2)
D) (c>=2&&c<=6)&&(c%2!=1)
(分数:1.00)
A.
B. √
C.
D.
解析:[解析] 满足表达13式(c>=2&&c<=6)的整型变量c的值是2,3,4,5,6。当变量c的值不为2,4,6时,其值只能为3或5,所以表达式c!=3和c!=5中至少有一个为真,即不论c为何值,表达式B)都为"真"。
13.以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是( )、
A.switch(a)
case 1:a=b;break;
default:a++;
B.switch(a==1)
A.switch(a)
case 1:a=b;break;
default:a++;
B.switch(a==1)
case 0:a=b; break;
case 1:a++;
C.switch(a)
default:a++;break;
case 1:a=b;
D.switch(a==1)
case 1:a=b;break;
case 0:a++;
(分数:1.00)
case 1:a++;
C.switch(a)
default:a++;break;
case 1:a=b;
D.switch(a==1)
case 1:a=b;break;
case 0:a++;
(分数:1.00)
A.
B. √
C.
D.
解析:[解析] 题中当a的值为1时,关系表达式a==1的值为真.即1,因此程序将跳转到case1执行a++操作,与题干程序刚好相反。
14.若有代数式[*],(其中P仅代表自然对数的底数,不是变量),则下列能够正确表示该代数式的C语言表达式是( )。
A) sqrt(abs(n^x+e^x)) B) sqrt(fabs(pow(n,x)+pow(x,e)))
C) sqrt(fabs(pow(n,x)+exp(x))) D) sqrt(fabs(pow(x,n)+exp(x)))
(分数:1.00)
A) sqrt(abs(n^x+e^x)) B) sqrt(fabs(pow(n,x)+pow(x,e)))
C) sqrt(fabs(pow(n,x)+exp(x))) D) sqrt(fabs(pow(x,n)+exp(x)))
(分数:1.00)
A.
B.
C. √
D.
解析:[解析] n和e的x幂次方,要分别调用C语言的数学库函数double pow(n,x)和double exp(x),因为这两个函数的返回值都为double型,对两者的和计算绝对值,调用库函数doublefabs(pow(n,x)+exp(x)),求出和的绝对值,再调用开平方函数doublesqrt(fabs(pow(n,x)+exp(x))),这样计算出的结果就是题干中表达式的值。
15.以下程序运行后的输出结果是
#include<stdio.h>
main()
int y=10;
while(y--);
printf("y=%d/n", y);
#include<stdio.h>
main()
int y=10;
while(y--);
printf("y=%d/n", y);
A) y=0 B) y=-1
C) y=1 D) while构成无限循环
(分数:2.00)
A.
B. √
C.
D.
解析:[解析] 程序中while循环的条件是“y--”,循环体是一条空语句。条件中,“--”后置,所以先取出y的值进行条件判断,然后再对y进行减1的操作,因此当y的值等于0时,循环条件为假先终止循环,再对y进行减1的操作,所以y的值变为了-1。
16.下列程序的输出结果是( )。
main()
int i=1,j=2,k=3;
if(i++= =1&&(++j= =3‖k++ = =3)) printf("%d %d %d/n",i,j,k);
A) 1 2 3 B) 2 3 4
C) 2 2 3 D) 2 3 3
(分数:2.00)
main()
int i=1,j=2,k=3;
if(i++= =1&&(++j= =3‖k++ = =3)) printf("%d %d %d/n",i,j,k);
A) 1 2 3 B) 2 3 4
C) 2 2 3 D) 2 3 3
(分数:2.00)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论