机密★启用前 |
2012年3月全国计算机等级考试二级笔试试题 |
C语言程序设计 |
(考试时间90分钟,满分100分) |
|
一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
|
(1)下列叙述中正确的是 |
A)循环队列是队列的一种链式存储结构 |
B)循环队列是一种逻辑结构 |
C)循环队列是非线性结构 |
D)循环队列是队列的一种顺序存储结构 |
|
|
|
|
(2)下列叙述中正确的是 |
A)栈是一种先进先出的线性表 |
B)队列是一种后进先出的线性表 |
C)栈和队列都是非线性结构 |
D)以上三种说法都不对 |
|
|
|
|
(3)一棵二叉树共有25个节点,其中5个是叶子结点,则度为1的节点数为 |
|
|
|
|
|
(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是 |
|
|
|
|
|
(5)在满足实体完整性约束的条件下 |
A)一个关系中必须有多个候选关键字 |
B)一个关系中只能有一个候选关键字 |
C)一个关系中应该有一个或多个候选关键字 |
D)一个关系中可以没有候选关键字 |
|
|
|
|
(6)有三个关系R、S和T如下: |
|
则由关系R和S得到关系T的操作是 |
|
|
|
|
|
(7)软件生命周期中的活动不包括 |
A)需求分析 | B)市场调研 |
C)软件测试 | D)软件维护 |
|
|
|
|
|
(8)下面不属于需求分析阶段任务的是 |
A)确定软件系统的功能需求 | B)制定软件集成测试计划 |
C)确定软件系统的性能需求 | D)需求规格说明书评审 |
|
|
|
|
|
(9)在黑盒测试方法中,设计测试用例的主要根据是 |
A)程序内部逻辑 | B)程序流程图 |
C)程序数据结构 | D)程序外部功能 |
|
|
|
|
|
(10)在软件设计中不使用的工具是 |
A)数据流图(DFD图) | B)PAD图 |
C)系统结构图 | D)程序流程图 |
|
|
|
|
|
(11)针对简单程序设计,以下叙述的实施步骤顺序正确的是 |
A)确定算法和数据结构、编码、调试、整理文档 |
B)编码、确定算法和数据结构、调试、整理文档 |
C)整理文档、确定算法和数据结构、编码、调试 |
D)确定算法和数据结构、调试、编码、整理文档 |
|
|
|
|
(12)关于C语言中数的表示,以下叙述中正确的是 |
A)只有整型数在允许范围内能精确无误的表示,实型数会有误差 |
B)只要在允许范围内整型数和实型数都能精确的表示 |
C)只有实型数在允许范围内能精确无误的表示,整型数会有误差 |
D)只有用八进制表示的数才不会有误差 |
|
|
|
|
(13)以下关于算法的叙述中错误的是 |
A)算法可以用伪代码、流程图等多种形式来描述 |
B)一个正确的算法必须有输入 |
C)一个正确的算法必须有输出 |
D)用流程图描述的算法可以用任何一种计算机高级语言编写成程序代码 |
|
|
|
|
(14)以下叙述中错误的是 |
A)一个C程序中可以包含多个不同名的函数 |
B)一个C程序只能有一个主函数 |
C)C程序在书写时,有严格的缩进要求,否则不能编译通过 |
D)C程序的主函数必须用main作为函数名 |
|
|
|
|
(15)设有以下语句 |
char ch1,ch2; scanf("%c%c",&ch1,&ch2); |
若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是 |
A)A和B之间用逗号间隔 | B)A和B之间不能有任何间隔符 |
C)A和B之间可以用回车间隔 | D)A和B之间用空格间隔 |
|
|
|
|
|
(16)以下选项中非法的字符常量是 |
A)'\101' | B)'\65' |
C)'\xff' | D)'\019' |
|
|
|
|
|
(17)有以下程序 |
|
程序运行后的输出结果是 |
A)0,4,5 | B)4,4,5 |
C)4,4,4 | D)0,0,0 |
|
|
|
|
|
(18)设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是 |
A)x++; printf("%d\n",x); | B)n=++x; printf("%d\n",n); |
C)++x; printf("%d\n",x); | D)n=x++; printf("%d\n",n); |
|
|
|
|
|
(19)以下选项中,能表示逻辑值“假”的是 |
|
|
|
|
|
(20)有以下程序 |
|
程序运行时从键盘输入9<回车>,则输出结果是 |
|
|
|
|
|
(21)有以下程序 |
|
程序运行后的输出结果是 |
A)1,2,4, | B)1,3,6, |
C)3,10,14, | D)3,6,10, |
|
|
|
|
|
(22)若k是int类型变量,且有以下for语句 |
for(k=-1;k<0;k++) printf("****\n"); |
下面关于语句执行情况的叙述中正确的是 |
A)循环体执行一次 | B)循环体执行两次 |
C)循环体一次也不执行 | D)构成无限循环 |
|
|
|
|
|
(23)有以下程序 |
|
程序运行后的输出结果是 |
A)1B3D5F | B)ABCDEF |
C)A2C4E6 | D)123456 |
|
|
|
|
|
(24)设有如下定义语句 |
int m[]={2,4,6,8,10},*k=m; |
以下选项中,表达式的值为6的是 |
A)*(k+2) | B)k+2 |
C)*k+2 | D)*k+=2 |
|
|
|
|
|
(25)fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是 |
|
A)&x[++m] | B)&x[m+1] |
C)x+(m++) | D)x+m |
|
|
|
|
|
(26)若有函数 |
void fun(double a[],int *n) |
{ …… } |
以下叙述正确的是 |
A)调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传递 |
B)形参a和n都是指针变量 |
C)形参a是一个数组名,n是指针变量 |
D)调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组 |
|
|
|
|
(27)有以下程序 |
|
编译时编译器提示错误信息,你认为出错的语句是 |
A)a=/*p1-m; | B)b=*p1+*p2+6; |
C)k=1,m=8; | D)p1=&k,p2=&m; |
|
|
|
|
|
(28)以下选项中有语法错误的是 |
A)char *str[]={"guest"}; | B)char str[][10]={"guest"}; |
C)char *str[3];str[1]="guest"; | D)char str[3][10];str[1]="guest"; |
|
|
|
|
|
(29)avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是 |
A)int avg(int *a,int n); | B)int avg(int a[10],int n); |
C)int avg(int a,int n); | D)int avg(int a[],int n); |
|
|
|
|
|
(30)有以下程序 |
|
程序运行后的输出结果是 |
|
|
|
|
|
(31)有以下程序 |
|
程序运行时从第一列开始输入: |
This is a cat!<回车> |
则输出结果是 |
A)Thisisacat! | B)Thisis a |
C)Thisis a cat! | D)Thisisa cat! |
|
|
|
|
|
(32)有以下程序 |
|
程序运行后的输出结果是 |
|
|
|
|
|
(33)有以下程序 |
|
程序运行后的输出结果是 |
A)****#????***# | B)***#????****# |
C)**#????*****# | D)****#????*****# |
|
|
|
|
|
(34)有以下程序 |
|
程序运行后的输出结果是 |
A)12345 | B)23445 |
C)34756 | D)35745 |
|
|
|
|
|
(35)有以下程序 |
|
程序运行后的输出结果是 |
A)98,18 | B)39,11 |
C)39,18 | D)98,11 |
|
|
|
|
|
(36)有以下程序 |
|
程序运行后输出的结果是 |
A)2 4 6 8 10 | B)1 3 5 7 9 |
C)1 2 3 4 5 | D)6 7 8 9 10 |
|
|
|
|
|
(37)设有以下程序段 |
|
若要引用结构体变量std中的color成员,写法错误的是 |
A)std.color | B)ptr->color |
C)std->color | D)(*ptr).color |
|
|
|
|
|
(38)有以下程序 |
|
程序运行后的输出结果是 |
|
|
|
|
|
(39)以下程序 |
|
程序运行后的输出结果是 |
|
|
|
|
|
(40)以下函数不能用于向文件中写入数据的是 |
A)ftell | B)fwrite |
C)fputc | D)fprintf |
|
|
|
|
|
二、填空题(每个小题2分,共30分)
请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
|
(1)在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为 【1】 。 |
|
|
|
|
(2)设循环队列的存储空间为Q(1:30),初始状态为front=rear=30,现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有 【2】 个元素。 |
|
|
|
|
(3)数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是 【3】 。 |
|
|
|
|
(4)在将E-R图转换到关系模式时,实体和联系都可以表示成 【4】 。 |
|
|
|
|
(5)常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于 【5】 。 |
|
|
|
|
(6)设变量a和b已定义为int类型,若要通过scanf(“a=%d,b=%d”,&a,&d);语句分别给a和b输入1和2,则正确的数据输入内容是 【6】 。 |
|
|
|
|
(7)以下程序的输出结果是 【7】 。 |
|
|
|
|
|
(8)设a、b、c都是整型变量,如果a的值为1,b的值为2,则执行 c = a++ || b++;语句后,变量b的值是 【8】 。 |
|
|
|
|
(9)有以下程序段 |
|
请填空,使以下程序段的功能与上面的程序段完全相同。 |
|
|
|
|
|
(10)以下程序的输出结果是 【10】 。 |
|
|
|
|
|
(11)以下程序的输出结果是 【11】 。 |
|
|
|
|
|
(12)有以下程序 |
|
若在程序运行时输入整数10<回车>,则输出结果为 【12】 。 |
|
|
|
|
(13)以下程序的功能是输出a数组中所有字符串,请填空 |
|
|
|
|
|
(14)以下程序的输出结果是 【14】 。 |
|
|
|
|
|
(15)设文件test.txt中原已写入字符串Begin,执行以下程序后,文件中的内容为 【15】 。 |
|
|
|
|
|
|
|
|
|
|