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