2013年9月全国计算机等级《二级C语言程序设计》终极押密卷(3)(整理版)
- 格式:doc
- 大小:127.50 KB
- 文档页数:12
2013年9月全国计算机等级《二级C语言程序设计》终极押密卷(3)
1以下叙述中错误的是( C )。
A. C语言编写的函数源程序,其文件名后缀可以是C
B. C语言编写的函数都可以作为一个独立的源程序文件
C. C语言编写的每个函数都可以进行独立的编译并执行
D. 一个C语言程序只能有一个主函数
解析:函数是指预先定义功能块,其目的是提高程序的重用性。在C语言中函数的源程序,后缀名可以为C。C语言所编写的函数都可以是一个独立的源文件。一个C语言程序只能有一个主函数。C语言中编写的函数不是每个都可以独立地编译和执行的,因为C语言中程序的开始为主函数,如果程序中没有主函数则无法进行编译和执行。
2设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(B )。
A. 20 B.0或35 C. 15 D. 16
解析:Q(1:35)则队列的存储空间为35;对空条件:front=rear(初始化时:front=rear),队满时:(rear+1)%n= =front,n为队列长度(所用数组大小),因此当执行一系列的出队与入队操作,front=rear.则队列要么为空,要么为满。
3有以下程序:
#include
main( )
{int a[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;
for(i=o;i<5;i++)s=s+a[b[i]];
printf(”%d\n”,s);
}
程序运行后的输出结果是( C )。
A. 6 B. 10 C. 11 D. 15
解析:本题考查数组的使用。本题定义了两个数组,注意数组的下标是从0开始的,进行第1次for循环:当i=0时,b[0]为数组b中第l个元素,结果为0,那么a[0]也是数组a中第l个元素,结果为1,所以S的值为1。第2次循环:i此时自加为l,b[1]为数组的第2个元素,值为2,所以可求出a[2](数组中的第3个元素)的值为3,s=s+3,所以S的值为4。进入第3次for循环,依此类推,第3次for循环结束时s的值为6。第4次for循环,s的值变为l0。第5次for循环时,此时i的值为4,s的值变为ll,i=5不符合题意,所以跳出循环,输出结果,所以本题答案为C。
4下列叙述中正确的是( D )。
A. 算法就是程序 B. 设计算法时只需要考虑数据结构的设计
C. 设计算法时只需要考虑结果的可靠性 D. 以上3种说法都不对 解析:程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。设计算法时要考虑到数据结构的设计,但是不仅仅是要考虑到数据结构的设计,还要考虑到其他的程序结构的问题。设计算法时不能只考虑结果的正确性和可靠性,还需要考虑到程序的时间冗余度等方面。所以答案选择D。
5若有定义语句:“int a=3,b=2,c=1;”,以下选项中错误的赋值表达式是( A )。
A. a=(b=4)=3; B. a=b=c+1: C. a=(b=4)+C; D. a=1+(b=c一4);
解析:由等式的规则可知,A选项错误。先对括号的b进行等式运算,得出b=4,然后计算得出a=4=3,所以会导致错误。答案选择A。
6有3个关系R、S和T如下.
则由关系R和S得到关系T的操作是(B )。
A. 自然连接 B. 差 C. 交 D. 并
解析:关系之间的操作分为自然连接、投影、交、并、差等,由图可知此操作为差操作
7有以下程序:
#include
main( )
{ int a=7;
while(a--);
print[("%d\n",a);
}
程序运行后的输出结果是(A )。
A. -l B. 0 C. 1 D. 7
解析:此题考查a--和--a之间的区别,当while(a--)为真循环执行,a--是执行再减1,所以答案选择A。
8有以下程序:
#include
int f(int x):
main()
{int n=1,m;
m=f(f(f(n)));printf("%d\n",m);
}
int f(int x)
{return x*2;)
程序运行后的输出结果是( D )。 A. 1 B. 2 C.4 D. 8
解析:本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8
9软件详细设计产生的图如图所示。该图是(C )。
A. N—S图 B. PAD图 C. 程序流程图 D. E—R图
解析:N-S图(也被称为盒图或CHAPIN图)、PAD(问题分析图)及PFD(程序流程图)是详细设计阶段的常用工具。E—R图即实体一联系图,是数据库设计的常用工具。从题中图可以看出该图属于程序流程图。
10有以下程序:
#include
main( )
{ int a=-2,b=0;
while(a++&&++b);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是( D )。
A. 1,3 B. 0,2 C. 0,3 D. 1,2
统解析:输出的结果是:-1,1 0,2 1,2
11若有定义语句:“char S[3][10],(*k)[3],*p;”,则以下赋值语句正确的是( C )。
A. p=S; B. p=k; C. p=s[0]; D. k=s;
解析:答案C的意思是*P指向数组的第一个值
12一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为(A )。
A. 16 B. 10 C. 6 D. 4
解析:根据二叉树的性质,n=n0+n1+n2(n表示总结点数,n0表示叶子结点数,nl表示度数为1的结点数,n2表示度数为2的结点数),而叶子结点数总是比度数为2的结点数多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
13冒泡排序在最坏情况下的比较次数是(C )。
A. n(n+1)/2 B. nlog2n C. n(n-1)/2 D. n/2 解析:
对n个结点的线性表采用冒泡排序,在最坏情况下,需要经过n/2次的从前往后的扫描和 n/2次的从后往前的扫描,需要的比较次数为n(n-1)/2 a
14程序调试的任务是( D )。
A. 设计测试用例 B. 验证程序的正确性
C. 发现程序中的错误 D. 诊断和改正程序中的错误
解析:程序调试的主要任务是改正程序中的错误,而软件测试是发现错误。
15在关系数据库中,用来表示实体间联系的是(D )。
A. 网状结构 B. 树状结构 C. 属性 D. 二维表
解析:单一的数据结构——关系,现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构——二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。
16下列条件语句中,输出结果与其他语句不同的是( D )。
A. if(a)printf("%d n",x); else print[("%d\n",y)
B. if(a=0)pritf("%d n",y); else print[("%d\n",x)
C. if(a!一0)printf("%d n",x); else print[("%a\n",y)
D. if(a=O)print[("%d n",x); else printf("%d\n",y)
解析:主要考查if判断语句,A选项if(a),如果a为真,则输出X,否则输出Y。B选项if(a=
=0),如果a恒等于0,则输出 Y,否则输出 X。C选项a(!=o),如果a不等于0,则输出X,否则输出y 。 D选项if(a= =0),如果a恒等于0,则输出X,否则输出y。由以上结论可知,输出结果不同的为D选项。
17C语言中char类型数据占字节数为(C )。
A. 3 B. 4 C. 1 D. 2
解析:Char类型数据占1个字节。
18层次型、网状型和关系型数据库划分原则是( D )。
A. 记录长度 B. 文件的大小
C. 联系的复杂程度 D. 数据之间的联系方式
解析:层次型、网状型和关系型数据库划分的原则是数据之河的联系方式。
19下面不属于需求分析阶段任务的是(C )。
A. 确定软件系统的功能需求 B. 确定软件系统的性能需求
C. 制定软件集成测试计划 D. 需求规格说明书评审
解析:需求分析阶段是确定软件的功能和性能的要求,最后产生一个需求规格说明书,在同时制定系统测试计划。其中集成测试计划不是在需求分析阶段,所以答案选择C。
20以下程序的输出结果是( B )。
main( )
{ char st[20]="hell0\O\t\\\”;
printf("%d%d\n",strlen(st),sizeof(st));
} A. 9 9 B. 5 20 C. 13 20 D. 20 20
解析:从题目中可知,'\O'、'\t'、'\\'分别为一个字符,而sizeof是求字节个数的函数,其中包括'\O'占的字节,strlen函数是求数组长度的函数;其以'\0'结束,因此strlen的值为5,sizeof的值为20。
21软件设计中划分模块的一个准则是( B )。
A. 低内聚低耦合 B. 高内聚低耦合 C. 低内聚高耦合 D. 高内聚高耦合
解析:耦合性和内聚性是模块独立性的两个定性标准,是互相关联的。在软件设计中,各模块间的内聚性越强,则耦合性越弱。一般优秀的软件设计,应尽量做到高内聚,低耦合,有利于提高模块的独立性。
22有以下程序:
#include
#define S(x)4*(x)*x+1
main( )
{int k=5,j=2;
printf("%d\n",S(k+j));
}
程序运行后的输出结果是(B )。
A. 197 B. 143 C. 33 D. 28
解析:此程序考查带参数的宏定义,S(k+j)展开后即4*(k+j)*k+j+1,所以结果为l43
23有以下程序:
#include
main( )
{ int a[]={10,20,30,40},*p=a,j;
for(i=0;i<=3;i++){a[i]=*P;p++;}
printf("oAd\n",a[2]);
}
程序运行后的输出结果是(A )。
A. 30 B. 40 C. 10 D. 20
解析:For循环结束后,数组a的值并没有变化,由于数组是由0开始,所以a[2]的值是30。
24有以下程序:
#include
main()
{ int a=1,b=2;
while(a<6){b+=a;a4+=2;b%=10;)
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是( B )。
A. 5,11 B. 7,1 C. 7,11 D. 6,1