《C语言【33次】试题及答案》由会员分享,可在线阅读,更多相关《C语言【33次】试题及答案(11页珍藏版)》请在金锄头文库上搜索。
1、四川省普通高等学校计算机应用知识和能力第三十三次等级考试二级(C与C+语言) 笔 试 试 卷时间: 2010年10月 23 日 上午 9:0011:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 栈是一种先进先出的线性表,只能采用顺序存储结构。( 1 )2. 从循环链表中任意一个结点出发都能访问到整个链表。( 2 )3. 为了便于对单链表实现结点的插入、删除操作,通常增设一个表头结点。( 3 )4. 队列在操作系统的各种资源请求排队及数据缓冲区管理中广泛使用。( 4 )5. 死锁产生的根本
2、原因是操作系统能够提供的资源比请求该资源的进程数少。( 5 )6. 虚拟设备技术能将独占设备转换为可共享的设备,提高资源利用率。( 6 )7. 进程控制块是进程存在的唯一标志。( 7 )8. 软件维护是长期的过程,交付使用的软件仍然需要排错、修改和扩充。( 8 )9. 墨盒测试要求测试人员根据程序内部逻辑结构设计或选择测试用例。( 9 )10.软件设计时,应力求增加模块的内聚,减少模块间的耦合。( 10 )二、选择题(每小题1分,共5分)1. 如果进栈序列为1、2、3、4,则可能的出栈序列是( 11 ) 。 11 (A) 3、1、4、2(B) 2、4、3、1(C) 3、4、1、2(D) 任意顺
3、序2. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,则它的前序遍历序列是( 12 )。 12 (A) acbed(B) decab(C) deabc(D) cedba3. 下列的进程状态变化中,( 13 )变化是不可能发生的。 13 (A) 运行就绪(B) 运行等待(C) 等待运行(D) 等待就绪4. 很好地解决了碎片问题的存储管理方法是( 14 )。 14 (A) 页式存储管理(B) 段式存储管理(C) 可变分区管理(D) 多重分区管理5. 在软件生命周期中,所花费用最多的阶段是( 15 )。 15 (A) 详细设计 (B) 软件编码 (C) 软件测试(D) 软件维护第
4、二部分C与C+语言程序设计(共85分)一、单项选择题 ( 每小题1分,共10分 ) 1. 已知int i=10; 表达式5=i=10的值是( 16 ) 。(考点:关系运算表达式)16 (A) 0(B) 1(C) 10(D) 没有正确答案 2. 求取满足式12+22+32+n21000的n,正确的语句是( 17 )。(考点:循环结构)17 (A) for(i=1,s=0;(s=s+i*i)=1000;n=i+);(B) for(i=1,s=0;(s=s+i*i)=1000;n=+i);(C) for(i=1,s=0;(s=s+i*+i)=1000;n=i);(D) for(i=1,s=0;(s=
5、s+i*i+)=1000;n=i); 3. 以下叙述中正确的是( 18 )。(考点:循环语法)18 (A) C语言中所有的循环语句都是先判断条件再执行循环体(B) break语句只能中断循环(C) continue 语句可以结束所有的循环(D)C语言中,任意表达式都可作为循环条件,只要能做出0和非0的判断即可 4. 设有以下定义:struct node int data; struct node *next;*p;则以下的语句中正确的是( 19 )。(考点:结构体指针、动态分配存储空间函数)19 (A) p=malloc(sizeof(struct node)(B) p=(struct nod
6、e *)malloc(sizeof(struct node)(C) *p=(struct node *)malloc(4)(D) p=(struct node )malloc(sizeof(struct node) 5. 运行以下程序的输出结果为( 20 )。(考点:枚举类型)# include void main() enum color Black=1,Red,Blue,Green; enum color c1,c2; c1=Red; c2=Blue; printf(%d,%dn,c1,c2);20 (A) 2,3(B) 1,2(C) 1,1(D) 0,-1 6. 若变量x和y都为int类
7、型,x=100,y=200,下面程序段的输出结果是( 21 )。(考点:逗号运算)printf(%d,(x,y);21 (A) 200(B) 100(C) 100 200(D) 输出不确定的值 7. 以下程序的输出结果是( 22 )。(考点:带参数的宏)# include # define f(x) x*xvoid main() int a=6,b=2,c; c=f(a+b)/f(a-b); printf(%dn,c);22 (A) -2.5(B) -2(C) 64(D) 4 8. C语言中fscanf函数的正确调用形式是(考点:文件)23 (A) fscanf(文件指针,格式字符串,输出列表
8、);(B) fscanf(格式字符串,输出列表,文件指针);(C) fscanf(格式字符串,文件指针,输入列表);(D) fscanf(文件指针,格式字符串,输入列表); 9. 设有定义:int a=1,b=2,c=3; ,以下语句中执行效果与其它三个不同的是( 24 )。(考点:if语句)24 (A) if(ab) c=a,a=b,b=c;(B) if(ab) c=a,a=b,b=c; (C) if(ab) c=a;a=b;b=c;(D) if(ab) c=a;a=b;b=c; 10. 以下选项中与if(a=1)a=b; else a+; 语句功能不同的switch语句是 ( 25 ) 。
9、(考点:switch语句)25 (A) switch(a) (B) switch(a=1) case 1: a=b;break; case 0: a=b;break; default:a+; case 1:a+;(C) switch(a)(D) switch(a=1) default:a+;break; case 1:a=b;break; case 1: a=b; case 0:a+; 二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 有如下程序:(考点:函数、变量的作用域)# include int k=1;void fun(int m) m+=k; k+=m; char k=D;
10、printf(n%d,k-C); /* */ void main() int i=4; fun(i); printf(n%d,%d,i,k); /* */ 处输出结果为( 26 )。26 (A) 2 (B) 1(C) 3(D) A、B、C参考答案都不对 处输出结果为( 27 )。27 (A) 4,1(B) 5,6(C) 4,6(D) A、B、C参考答案都不对 2. 有如下程序(考点:函数、字符数组)# include void fun(char *s) int i;char c; c=s0; for(i=1;si!=0;i+) si-1=si; si-1=c;void main() char
11、s10=abcdefg; int i; for(i=1;i=3;i+) fun(s); puts(s); 函数fun的功能是( 28 )。28 (A) 左移一个字符,并将第一个字符放到字符串末尾(B) 右移一个字符,并将最后一个字符放到字符串开头(C) 删除第一个字符(D) 删除最后一个字符程序的运行结果是( 29 )。29 (A) bcdefga(B) defgabc(C) efgabcd(D) bcdefg 3. 有下列程序(考点:递归函数)# include void fun(int n) int m; m=n/10; if(m!=0) fun(m); putchar(n%10+0);v
12、oid main() int n; scanf(%d,&n); if(n0) putchar(-); n=-n; fun(n);若输入整数-1234,请回答下面两个问题:函数fun的调用次数为( 30 )。30 (A) 5(B) 4(C) 3(D) 2程序的输出结果为( 31 )。31 (A) 4321 (B) 1234(C) -4321(D) -1234 4. 有下列程序(考点:函数(地址参数)、指针运算)# include void fun1(int *x,int *y) int *z; z=x; x=y; y=z;void fun2(int *x,int *y) int z; z=*x;
13、 *x=*y; *y=z; (*x)+; (*y)+;void main() int a=5,b=9; fun1(&a,&b); printf(a=%d,b=%dn,a,b); fun2(&a,&b); printf(a=%d,b=%dn,a,b);main函数中第一个printf输出结果为( 32 )。32 (A) a=9,b=5(B) a=5,b=9(C) a=10,b=6(D) a=6,b=10main函数中第二个printf输出结果为( 33 )。33 (A) a=9,b=5(B) a=5,b=9(C) a=10,b=6(D) a=6,b=10 5. 有如下程序(设其文件名为2-5.c)(考点:命令行参数)# include void main(int argc,char