2011年9月全国计算机二级C语言笔试试卷及参考答案
- 格式:doc
- 大小:115.50 KB
- 文档页数:12
1 2011年 9月全国计算机等级考试二级笔试试卷 C语言程序设计 (考试时间90 分钟,满分100分) 一、选择题(每小题2分,共70分) 1.下列叙述中正确的是 。 A.算法就是程序 B.设计算法时只需要考虑数据结构的设计 C.设计算法时只需要考虑结果的可靠性 D.以上三种说法都不对
2.下列关于线性链表的叙述中,正确的是 A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致 B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续 C.进行插入与删除时,不需要移动表中的元素 D.以上三种说法都不对
3.下列关于二叉树的叙述中,正确的是 A.叶子结点总是比度为2的结点少一个 B.叶子结点总是比度为2的结点多一个 C.叶子结点数是度为2的结点数的两倍 D.度为2的结点数是度为1的结点数的两倍
4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的 是 A.学生成绩管理系统 B.C语言编译程序 C.UNIX操作系统 D.数据库管理系统
5.某系统总体结构图如下图所示: XY系统
功能2 功能3 功能1 功能2.2 功能2.3 功能2.1 该系统总体结构图的深度是 A.7 B.6 C.3 D.2
6.程序调试的任务是 A.设计测试用例 B.验证程序的正确性 C.发现程序中的错误 D.诊断和改正程序中的错误
7.下列关于数据库设计的叙述中,正确的是 A.在需求分析阶段建立数据字典 B.在概念设计阶段建立数据字典 2
C.在逻辑设计阶段建立数据字典 D.在物理设计阶段建立数据字典 8.数据库系统的三级模式不包括 A.概念模式 B.内模式 C.外模式 D.数据模式
9.有三个关系R、S和T如下: R S T A B C A B C A B C a 1 2 a 1 2 c 3 1 b 2 1 b 2 1 c 3 1 则由关系R和S得到关系T的操作是 A.自然连接 B.差 C.交 D.并
10.下列选项中属于面向对象设计方法主要特征的是 A.继承 B.自顶向下 C.模块化 D.逐步求精
11.以下叙述中错误的是 A.C语言编写的函数源程序,其文件名后缀可以是C B.C语言编写的函数都可以作为一个独立的源程序文件 C.C语言编写的每个函数都可以进行独立的编译并执行 D.一个C语言程序只能有一个主函数
12.以下选项中关于程序模块化得叙述错误的是 A.把程序分成若干相对独立的模块可便于编码和调试 B.把程序分成若干相对独立,功能单一的模块,可便于重复使用这些模块 C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
13.以下选项中关于C语言常量的叙述错误的是: A.所谓常量,是指在程序运行过程中,其值不能被改变的量 B.常量分为整型常量、实型常量、字符常量和字符串常量 C.常量可分为数值型常量和非数值型常量 D.经常被使用的变量可定义成常量
14.若有定义语句:int a=10;double b=3.14;,则表达式‘A’+a+b值得类型是 A.char B.int C.double D.float
15.如有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y,则z的值为 A.1.9 B.1 C.2 D.2.4 3
16.若有定义:int a,b;,通过语句scanf(‚%d;%d‛,&a,&b);,能把整数3赋给变量a,5付给变量b的输入数据是 A.3 5 B.3,5 C.3;5 D.35
17.若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为 A. 0和1 B.0和20 C.10和1 D. 10和20
18.有以下程序 #include Main() { int a=1,b=0; If(--a) b++; Else if(a==0) b+=2; Elseb+=3; Printf(‚%d\n‛,b); } 程序运行后的输出结果是 A.0 B.1 C.2 D.3
19.下列条件语句中输出结果与其他语句不同的是 A.if(a) printf(‚%d\n‛,x); else printf(‚%d\n‛,y); B.if(a==0) printf(‚%d\n‛,y); else printf(‚%d\n‛,x); C.if(a!=0) printf(‚%d\n‛,x); else printf(‚%d\n‛,y); D.if(a==0) printf(‚%d\n‛,x); else printf(‚%d\n‛,y);
20.有以下程序: #include Main() { int a=7; While(a--); Printf(‚%d\n‛,a); } 程序运行后的输出结果是 A.- 1 B.0 C.1 D.7
21.以下不能输出字符A的语句是 (注:字符A的ASCII码值为65,字符a的ASCII码值为97) A.printf(‚%c\n‛,’A’-32); B.printf(‚%d\n‛,’A’); C.printf(‚%c\n‛,65); D.printf(‚%c\n‛,’B’-1); 4
22.有以下程序(注:字符a的ASCII码值为97) #include Main() { char *s={‚abc‛}; Do {printf(‚%d‛,*s%10);++s;} While(*s); } 程序运行后的输出结果是 A.abc B.789 C.7890 D.979898
23.若有定义语句:double a,*p&a;以下叙述中错误的是 A.定义语句中的*号是一个地址运算符 B.定义语句中的*号只是一个说明符 C.定义语句中的p只能存放double类型变量的地址 D.定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p
24.有以下程序: #include Double f(double x); Main() { double a=0; int I; For(i=0;i<30;i+=10) a+=f((double)i); Printf(‚%5.0f\n‛,a); } Double f(double x) {return x*x+1;} 程序运行后的输出结果是 A.503 B.401 C.500 D.1404
25.若定义语句:int year=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是 A.*p+=1; B.(*p)++; C.++(*p); D.*p++;
26.以下定义数组的语句中错误的是 A.int num[]={1,2,3,4,5,6}; B.int num[][3]={{1,2},3,4,5,6}; C.int num[2][4]={{1,2},{3,4},{5,6}}; D.int num[][4]={1,2,3,4,5,6};
27.有以下程序 #include Void fun(int *p) 5
{printf(‚%d\n‛,p[5]);} Main() {int a[10]={1,2,3,4,5,6,7,8,9,10}; Fun(&a[3]); } 程序运行后的输出结果是 A.5 B.6 C.8 D.9
28. 有以下程序 #include #define N 4 Void fun(int a[][N],int b[]) { int i; For(i=0;i} Main() { int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i; Fun(x,y); For(i=0;i程序运行后的输出结果是 A.-12,-3,0,0, B.-3,-1,1,3, C.,0,1,2,3, D.-3,-3,-3,-3,
29.有以下函数 Int fun(char *x,char *y) ( int n=0; While((*x=*y)&&*x!=’\0’){x++;y++;n++;} Return n; } 函数的功能是 A.查找x和y所指字符串中是否有‘\0‘ B.统计x和y所指字符串中最前面连续相同的字符个数 C.将y所指字符串赋给x所值存储空间 D.统计x和y所指字符串中相同的字符个数
30.若有定义语句:char *s1=‛OK‛;*s2=‛ok‛;,以下选项中,能够输出‚OK‛的语句是 A.if(stremp(s1,s2)==0) puts(s1); B.if(stremp(s1,s2)!=0) puts(s2); C.if(stremp(s1,s2)==1) puts(s1); D.if(stremp(s1,s2)!=0) puts(s1);