《C语言笔试试题》由会员分享,可在线阅读,更多相关《C语言笔试试题(10页珍藏版)》请在金锄头文库上搜索。
1、四川省计算机二级考试第十九次 C 与 C+语言笔试试卷 共 10 页 第 1 页四川省普通高等学校计算机应用知识和能力第十九次等级考试二级(C 与 C+语言) 笔 试 试 卷时间: 2003 年 10 月 18 日上午 9:0011:00 第一部分第一部分 软件技术基础软件技术基础 (共(共 15 分)分) 一、是非判断题(每小题一、是非判断题(每小题 1 分,共分,共 10 分)分) ( 判断下列各题是否正确判断下列各题是否正确,如正确,在客观答题纸上对应编号选如正确,在客观答题纸上对应编号选 A,否则选,否则选 B ) 1. 在目前,用于保证软件质量的主要手段是进行软件测试。( ) 2.
2、使用 DMA 方式传送数据期间不需要 CPU 干预。( ) 3. 线性顺序队列会产生“假溢出” ,而线性循环队列则不会。( ) 4. 对同一种算法,用高级语言编写的程序比用低级语言编写的程序运行速度快。( ) 5. 在线性表中,数据的存储方式有顺序和链接两种。( ) 6. 进程是由程序块、文件控制块和数据块三部分组成。( ) 7. 在面向对象的程序设计中,派生类只能从一个基类产生。( ) 8. 操作系统是用户和硬件的接口。( ) 9. 个人计算机中可配置的最大内存容量受地址总线位数的限制。 ( ) 10.软件维护中最困难的问题是软件配置不全。( )二、选择题二、选择题(每小题每小题 1 分,共
3、分,共 5 分分) 1. 在排序法中,从未排序序列中依次取出元素,与已排序序列中的元素作比较, 将其放入已排序序列的正确位置称为 ( )。11 (A) 选择排序 (B) 快速排序(C) 插入排序 (D) 冒泡排序 2. 有 X、Y、Z 三个元素依次入栈,不可能的出栈顺序是 ( )。12 (A) Z,Y,X (B) Z,X,Y(C) Y,X,Z (D) X,Y,Z 3. 进程的状态是可以转换的,而以下哪个状态转换是不可能的 ( )。13 (A) 就绪状态 执行状态 (B) 执行状态 就绪状态(C) 阻塞状态 就绪状态 (D) 等待状态 执行状态 4. 线性链表的地址 ( )。14 (A) 必须连
4、续 (B) 部分地址必须连续(C) 一定不连续 (D) 连续与否均可以 5. 在软件测试中,( )主要分析程序的内部结构。15 (A) 白盒法 (B) 黑盒法(C) 因果图法 (D) 错误推测法四川省计算机二级考试第十九次 C 与 C+语言笔试试卷 共 10 页 第 2 页第二部分第二部分 C 与与 C+语言程序设计语言程序设计 (共共 85 分分) 一、单项选择题一、单项选择题 ( 每小题每小题 1 分,共分,共 10 分分 ) 1. 对下列程序段的描述正确的是 ( ) 。 # include int Fun(int x,int y) return x+y; void main() int
5、i=10;cout (B) C+程序必须有 return 语句 (C) C+程序中的变量必须定义在主程序内部 (D) C+程序中所有使用的符号常量可以不进行定义3. 下述程序的输出结果是 ( )。 # include void main() int y=10;while(y-);printf(“y=%d“,y); 18 (A) y=0 (B) y=1 (C) y=随机值 (D)y=-14. 若有以下说明: char *str1=“copy“,str220,*str3=“str“,*str4,*str5=“good“; 则正确的串操作语句是 ( )。 19 (A) strcpy(str4,str
6、1); (B) strcat(str1,str3); (C) str2=“new str“; (D) strcpy(str5,str3);5.下面程序运行后,x,y,z 的值分别为 ( ) 。 # include void main() int x=0,y=0,z=0;+x|+y|+z;printf(“%d%d%dn“,x,y,z); 四川省计算机二级考试第十九次 C 与 C+语言笔试试卷 共 10 页 第 3 页20 (A) 100(B) 000(C) 111(D)001 6. 以下程序运行的结果是 ( )。 # include union myun struct int x,y,z; u;
7、int k; a; void main() a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf(“%d %d %dn“, a.u.x, a.u.y, a.u.z); 21 (A) 4 5 6 (B) 6 5 4(C) 0 5 6 (D) 0 6 57. 关于 C+和 C 语言学关系描述中,错误的是 ( )。 22 (A) C 语言与 C+是兼容的 (B) C+对 C 语言进行了一些改进 (C) C 语言是 C+的一个子集 (D) C+和 C 语言都是面向对象的8. 下列描述中,正确的是 ( )。 23 (A) 子类可以继承其父类的所有属性和操作,但子类不能定义自己特有
8、的属性和操作 (B) 消息传递是类与类之间通信的手段 (C) C+允许函数重载,但不允许运算符重载 (D) C+中可以定义虚函数,通过它来支持动态联编9. 下面程序运行的结果是 ( )。 # define f(x) 1+x+x*x # include void main() int a=2,b=3;printf(“%dn“,f(a+b); 24 (A) 17(B) 31(C) 13(D) 710. 下面局部程序代码是 C+中的 ( ) 特性的表现。 void display(int var) cout int f(int m) static int x3=2,3,4;int i;for(i=0
9、;i int change(char *c,int fg) if( *c= )L1: return 1;else if ( fg return 0; void main() int flag=1;char ch;do ch=getchar();flag=change(putchar(ch);while(ch!=n); 四川省计算机二级考试第十九次 C 与 C+语言笔试试卷 共 10 页 第 5 页(1) 程序的运行结果是( A ) 。 28 (A) THIS IS A BOOK! (B) this Is A Book! (C) This Is A Book! (D) This Is a Boo
10、k! (2) 与 L1:return 1 等效描述的为( D ) 。 29 (A) return 0(B) return 1(C) return 1-1 (D) return !(-1)3. 读下列程序,回答问题。( 28 )。 # include “iostream.h“ int sb(int *s,int y) static int i=3;y=si-;return y; void main() int s =1,2,3,4;int i,x=0;for(i=0;i union bt int a;int b2; void fun(union bt *c) c-a=-7;c-b0=9;c-b1
11、=8; ; void main() union bt c;fun(printf(“%dn“,c.a); (1) 程序的输出结果为( C ) 。 36 (A) 8(B) 9(C) -7 (D) 7 (2) 若将程序中的所有的 union 换成 struct,则程序的输出结果为( C ) 。 37 (A) 8(B) 9(C) -7 (D) 78. 读程序,回答问题。 # include # include void main(int argc,char *argv) FILE *fp;void fun(FILE *fp);int i=1;while(-argc0)if(fp=fopen(argvi
12、+,“r“)=NULL) printf(“Cannot open file!n“);exit(0);else fun(fp); fclose(fp); void fun(FILE *fp) char c;c=fgetc(fp);while(c!=EOF) if(c=A valuereturn(value); void main() char c=13;printf(“%dn“,fun(c,2); 40 (A) 13 (B) 1 (C)3 (D) 0注意:注意: 请把下面请把下面“程序填空程序填空”中各小题答案写在主观题答题纸上中各小题答案写在主观题答题纸上 每一个空只填一个语句或一个语句所缺的
13、部分内容每一个空只填一个语句或一个语句所缺的部分内容三、程序填空三、程序填空 ( 每空每空 2 分,共分,共 30 分分 )1. 下面程序是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数 组各元素之和,并输出结果。函数 Sum 计算数组元素之和。请完成下列程序。 # include int TotalSum(int ,int ); void main() int a5=2,3,6,8,10;int Total;Total= TotalSum(a,5) ;count=0;i-) cinch;if( ch=1 )value+= power(2,i) ;cout void m
14、ain() int num44;int i,j,flag=0;四川省计算机二级考试第十九次 C 与 C+语言笔试试卷 共 10 页 第 10 页printf(“Input array num:n“);for(i=0;i4;i+)for(j=0;j4;j+)scanf(“%d“, for(i=0;i4;i+)for(j=0;j4;j+)if( numij!=numji ) flag=1; break; if( flag=1 ) printf(“Non“);else printf(“Yesn“); 5. 下面程序的功能是从键盘输入一字符串,将该字符串与一文本文件进行比较,打印出也之相 同的行的行号和内容。void comp( )用于文件的比较,文件名用命令行参数提供。请填空。 # include “stdio.h“ # include “string.h“ # include “stdlib.h“ FILE *fp; void comp(char *string) int line=0;char str100; while(!feof(fp) ) fgets(str,100,fp);strstrlen