全国计算机等级考试《二级C语言程序设计》历年真题精选及详解
一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,
按照题目上的内容进行答题。作答选择题时键盘被封锁,使用键盘无效,考生须
使用鼠标答题。选择题部分只能进入一次,退出后不能再次进入。选择题部分不
单独计时。)
1.下列叙述中正确的是()。
A.所有数据结构必须有根结点
B.所有数据结构必须有终端结点(即叶子结点)
C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构
D.没有根结点或没有叶子结点的数据结构一定是非线性结构
【答案】
D
【解析】
D项正确,线性结构的特点是:①集合中必存在“第一个元素”且惟一;②集合
中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟
一的“后继”;④除第一个元素外,其他数据元素均有惟一的“前驱”。所以没
有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所
有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不
满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项。
2.以下叙述中错误的是()。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言源程序经编译后生成后缀为.obj的目标程序
【答案】
A
【解析】
A项错误,注释语句不会被翻译成二进制的机器指令。C源程序经过C编译程序
编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执
行文件。答案选择A选项。
3.C语言主要是借助以下()功能来实现程序模块化的。
A.定义函数
B.定义常量和外部变量
C.三种基本结构语句
D.丰富的数据类型
【答案】
A
【解析】
C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。
4.有以下程序段:
char ch;
int k;
ch='a';
k=12;
printf("%c,%d,",ch,ch,k);
printf("k=%d\n",k);
已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是()。
A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12
【答案】
D
【解析】
字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。“ch='a'”,%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出“k=”,然后以十进制代码输出k的值,为12。答案选择D选项。
5.下列叙述中正确的是()。
A.栈是“先进先出”的线性表
B.队列是“先进后出”的线性表
C.循环队列是非线性结构
D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
【答案】
D
【解析】
有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出”的线性表;B项错误,队列是“先进先出”的线性表;C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。答案选择D选项。
6.若要实现total=1+2+3+4+5求和,以下程序段错误的是()。
A.
int i=1,total=1;
while(i<5)
{
total+=i;
i+=1;
}
B.
int i=1,total=0;
while(i<=5)
{
total+=i;
i+=1;
}
C.
int i=0,total=0;
while(i<5)
{
i+=1;
total+=i;
}
D.
int i=0,total=0;
程序设计c语言
while(i<=5)
{
total+=i;
i+=1;
}
【答案】
A
【解析】
A项执行过程为:i=1,total=1,判断while循环条件1<5成立,total=1+1,i=2;判断循环条件执行函数体,直到i=4,total=1+1+2+3+4,i=5;i=5循环条件不成立,退出循环,A项不能实现题目要求,错误。B项执行过程:i=1,total=0,1<=5成立,total=0+1=1,i=2;直到i=5,total=1+2+3+4+5,i=6;i=6条件不成立,退出循环,程序正确。C项执行过程:i=0,total=0,0<5成立,i=1,total=1;直到i=5,total
=1+2+3+4+5;i=5条件不成立,退出循环,程序正确。D项执行过程:i=0,total=0,0<=5成立,total=0,i=1;直到i=5,total=1+2+3+4+5,i=6;i=6条件不成立,退出循环,程序正确。答案选择A选项。
7.下列不属于软件工程3个要素的是()。
A.工具
B.过程
C.方法
D.环境
【答案】
D
【解析】
软件工程是指用工程化的原则和方法来构建和维护软件,其要素包括:①方法,用于完成软件工程项目
的技术手段;②工具,用于支持软件的开发、管理、文档生成;③过程,用于支持软件开发的各个环节的控制、管理。答案选择D选项。
8.下面不属于黑盒测试方法的是()。
A.边界值分析法
B.基本路径测试
C.等价类划分法
D.错误推测法
【答案】
B
【解析】
常见的黑盒测试方法有:等价类划分法、边界值分析法、错误推测法以及因果图等;常见的白盒测试方法有:逻辑覆盖测试和基本路径测试。答案选择B选项。
9.有三个关系R、S和T如下:
则下列操作中正确的是()。
A.T=R∩S
B.T=R∪S
C.T=R×S
D.T=R-S
【答案】
D
【解析】
图中关系R比关系S多一行T中的元组,故由关系R和S得到关系T的操作是差。答案选择D选项。
10.下列选项中,不属于数据管理员(DBA)职责的是()。
A.数据库维护
B.数据库设计
C.改善系统性能,提高系统效率
D.数据类型转换
【答案】
D
【解析】
数据库管理员对数据库进行规划、设计、维护、监视等,其主要工作有:①数据库设计,主要是对数据模式进行设计;②数据库维护,对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;③改善系统性能,不断调整内部结构,提高系统效率。答案选择D选项。
11.有以下程序
#include<stdio.h>
main()
{
int a=0,b=0;
/*给a赋值a=10;
给b赋值b=20*/
printf("a+b=%d\n",a+b);/*输出计算结果*/
}
程序运行后的输出结果是()。
A.a+b=0
B.a+b=30
C.a+b=10
D.出错
【答案】
A
【解析】
注释/*和*/之间的代码不参与编译,所以a、b的值仍为0。答案选择A选项。
12.有以下程序段
#include<stdio.h>
main()
{
int a,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
}
程序的输出结果是()。
A.a=10b=50c=30
B.a=10b=50c=10
C.a=10b=30c=10
D.a=50b=30c=50
【答案】
B
【解析】
C语言中使用分号来作为语句的结束,所以a=b,b=c;是一条含有逗号运算符的语句,是if语句的执行体。因为题中a<b,if条件不满足,直接执行c=a。答案选择B选项。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论