logo资料库

2008年9月全国计算机二级C语言考试真题及答案.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
2008 年 9 月全国计算机二级 C 语言考试真题及答案 (考试时间 90 分钟,满分 100 分) 一、选择题 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题 卡相应位置上,答在试卷上不得分。 (1)一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再 依次出栈,则元素出栈的顺序是 A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA (2)下列叙述中正确的是 A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B)在循环队列中,只需要队头指针就能反应队列中元素的动态变化情况 C)在循环队列中,只需要队尾指针就能反应队列中元素的动态变化情况 D)循环队列中元素的个数是由队头和队尾指针共同决定 (3)在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是 A)O(N) B)O(n2) C)O(log2n) D)O(n log2n) (4)下列叙述中正确的是 A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间 (5)数据流图中带有箭头的线段表示的是 A)控制流 B)事件驱动 C)模块调用 D)数据流 (6)在软件开发中,需求分析阶段可以使用的工具是 A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图 (7)在面向对象方法中,不属于“对象”基本特点的是 A)一致性 B)分类性 C)多态性 D)标识唯一性 (8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是 1
A)一对一 B)一对多 C)多对一 D)多对多 (9)在数据管理技术发展的三个阶段中,数据共享最好的是 A)人工管理阶段 B)文件系统阶段 C)数据库系统阶段 D)三个阶段相同 (10)有三个关系 R、S 和 T 如下: C 3 T A m R A m n B 1 3 B 1 S B 1 2 C 3 5 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为 A)笛卡尔积 B)交 C)并 D)自然连接 (11)以下叙述中正确的是 A)C 程序的基本组成单位是语句 B)C 程序中每一行只能写一条语句 C)简单 C 语句必须以分号结束 D)C 语句必须在一行内写完 (12)计算机能直接执行的程序是 A)源程序 B)目标程序 C)汇编程序 D)可执行程序 (13)以下选项中不能作为 C 语言合法常量的是 A)’cd’ B)0.1e+6 C)”\a” D)”\011” (14)以下选项中正确的定义语句是 A)double a;b; B)double a=b=7; C)double a=7,b=7; D)double ,a,b; (15) 以下不能正确表示代数式 的 C 语言表达式是 A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d (16)C 源程序中不能表示的数制是 A)二进制 B) 八进制 C) 十进制 D) 十六进制 (17) 若有表达式(w)?(--x):(++y),则其中与 w 等价的表达式是 2
A) w= =1 B) w= =0 C)w!=1 D) w!=0 (18) 执行以下程序段后,w 的值为 int w=’A’,x=14,y=15; w=((x||y)&&(w<’a’)); A)-1 B)NULL C)1 D) 0 (19)若变量已正确定义为 int 型,要通过语句 scanf(“%d,%d,%d ”,&a,&b,&c);给 a 赋 值 1,给 b 赋值 2, 给 c 赋值 3, 以下输入形式中错误的是(u 代表一个空格符) A)uuu1,2,3<回车> B)1u2u3<回车> C)1,uuu2, uuu3<回车> D)1,2,3<回车> (20) 有以下程序段 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=10 b=50 c=10 B) a=10 b=50 c=30 C) a=10 b=30 c=10 D) a=50 b=30 c=50 (21) 若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对 m 数组元素的引用中错误 的是 A) m[--i] B)m[2*2] C)m[m[0]] D)m[m] (22)下面的函数调用语句中 func 函数的实参个数是 func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8))); A)3 B) 4 C)5 D)8 (23)若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用 x 数组元 素的是 A)*p B)x[5] C)*(p+1) D)*x (24) 若有定义语句:char s[10]= “1234567\0\0 ”;,则 strlen(s)的值是 A)7 B)8 C)9 D)10 (25)以下叙述中错误的是 A) 用户定义的函数中可以没有 return 语句 3
B)用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值 C)用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型 D)函数的 return 语句中可以没有表达式 (26)以下关于宏的叙述中正确的是 A)宏名必须用大写字母表示 B)宏定义必须位于源程序中所有语句之前 C)宏替换没有数据类型限制 D)宏调用比函数调用耗费时间 (27)有以下程序 #include main() { int i,j; for(i=3;i>=1;i--) { for(j=1;j<=2;j++) printf("%d",i+j); printf("\n ") } } 程序的运行结果是 A) 2 3 4 B) 4 3 2 C) 2 3 D) 4 5 3 4 5 5 4 3 3 4 3 4 4 5 2 3 (28) 有以下程序 #include main() { } int x=1,y=2,z=3; if(x>y) if(y
程序的运行结果是 A)331 B)41 C)2 D)1 (29)有以下程序 #include main() { int i=5; do { if(i%3==1) if(i%5==2) { printf(“*%d”,i); break; } i++; } while(i!=0); printf(“\n”); } 程序的运行结果是 A) *7 B)*3*5 C)*5 D)*2*6 (30)有以下程序 #include int fun(int a,int b) { if(b==0) return a; else return(fun(--a,--b)); } main() { printf("%d\n", fun(4,2));} 程序的运行结果是 A) 1 B)2 C)3 D)4 (31) 有以下程序 #include #include int fun(int n) 5
{ int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } main() int a; a = fun(10); printf("%d\n",a+fun(10)); { } 程序的运行结果是 A)0 B)10 C)20 D)出错 (32)有以下程序 #include void fun( int a, int b) int t; t=a; a=b; b=t; { } main() { int c[10]={1,2,3,4,5,6,7,8,9,0}, i; for(i=0;i<10;i+=2) fun(c, c[i+1]); for(i=0;i<10;i++) printf("%d," ,c); printf("\n"); } 程序的运行结果是 A)1,2,3,4,5,6,7,8,9,0 B)2,1,4,3,6,5,8,7,0,9 C)0,9,8,7,6,5,4,3,2,1 D)0,1,2,3,4,5,6,7,8,9 (33) 有以下程序 #include struct st { int x, y;} data[2]={1,10,2,20}; main() 6
struct st *p=data; printf("%d,",p->y); printf("%d\n",(++p)->x); { } 程序的运行结果是 A)10,1 B)20,1 C)10,2 D)20,2 (34) 有以下程序 #include void fun(int a[], int n) int i,t; for(i=0;i #define N 4 void fun(int a[][N], int b[]) int i; for(i=0;i
printf("\n"); } 程序的运行结果是 A)1,2,3,4, B)1,0,7,0, C)1,4,5,9, D)3,4,8,10, (36) 有以下程序 #include int fun(int (*s)[4],int n, int k) { int m,i; m=s[0][k]; for(i=1;im)m= s[k]; return m; } main() { int a[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}}; printf("%d\n",fun(a,4,0)); } 程序的运行结果是 A)4 B)34 C)31 D)32 (37) 有以下程序 #include main() { } struct STU { char name[9]; char sex; double score[2];}; struct STU a={"Zhao",'m',85.0,90.0},b={"Qian",'f',95.0,92.0}; b=a; printf("%s,%c,%2.0f,%2.0f\n", b.name, b.sex, b.score[0], b.score[1]); 程序的运行结果是 A) Qian,f,95,92 B) Qian,m,85,90 C) Zhao,f,95,92 D) Zhao,m,85,90 (38) 假定已建立以下链表结构,且指针 p 和 q 已指向如图所示的结点: 8
分享到:
收藏