四川计算机等级考试二级C语言笔试题(第十九次)一_第1页
四川计算机等级考试二级C语言笔试题(第十九次)一_第2页
四川计算机等级考试二级C语言笔试题(第十九次)一_第3页
四川计算机等级考试二级C语言笔试题(第十九次)一_第4页
四川计算机等级考试二级C语言笔试题(第十九次)一_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、四川省计算机等级考试二级C语言笔试题(第十九次)一 2009-03-29 14:44:45 四川省普通高等学校计算机应用知识和能力第十九次等级考试二级(C与C+语言) 笔 试 试 卷时间: 2003年10月18日 上午 9:0011:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 在目前,用于保证软件质量的主要手段是进行软件测试。 (A )2. 使用DMA方式传送数据期间不需要CPU干预。 ( A )3. 线性顺序队列会产生“假溢出”,而线性循环队列则不会。 ( A )4. 对同一种算法,

2、用高级语言编写的程序比用低级语言编写的程序运行速度快。 ( B )5. 在线性表中,数据的存储方式有顺序和链接两种。顺序和链式 ( B )6. 进程是由程序块、文件控制块和数据块三部分组成。(程序、数据、和程序控制块) ( B )7. 在面向对象的程序设计中,派生类只能从一个基类产生。 ( B )8. 操作系统是用户和硬件的接口。 ( A )9. 个人计算机中可配置的最大内存容量受地址总线位数的限制。 ( A )10.软件维护中最困难的问题是软件配置不全。 ( B )二、选择题(每小题1分,共5分)1. 在排序法中,从未排序序列中依次取出元素,与已排序序列中的元素作比较,将其放入已排序序列的正

3、确位置称为 ( C )。 11 (A) 选择排序 (B) 快速排序 (C) 插入排序 (D) 冒泡排序2. 有X、Y、Z三个元素依次入栈,不可能的出栈顺序是 ( B )。 12 (A) Z,Y,X (B) Z,X,Y (C) Y,X,Z (D) X,Y,Z3. 进程的状态是可以转换的,而以下哪个状态转换是不可能的 ( D )。 13 (A) 就绪状态 执行状态 (B) 执行状态 就绪状态 (C) 阻塞状态 就绪状态 (D) 等待状态 执行状态4. 线性链表的地址 ( D )。 14 (A) 必须连续 (B) 部分地址必须连续 (C) 一定不连续 (D) 连续与否均可以5. 在软件测试中,( A

4、 )主要分析程序的内部结构。 15 (A) 白盒法 (B) 黑盒法 (C) 因果图法 (D) 错误推测法第二部分C与C+语言程序设计(共85分)一、单项选择题 ( 每小题1分,共10分 ) 1. 对下列程序段的描述正确的是 ( B )。# include int Fun(int x,int y) return x+y;void main() int i=10; coutFun(i+,i)endl;16 (A) 程序输入结果不确定 (B) 程序输出结果是20(C) 程序输出结果是21 (D) 程序输出是22 2. 下列描述正确的是 ( A )。17 (A) C+程序中cout时需要用到预处理命令

5、 # include (B) C+程序必须有return语句 (C) C+程序中的变量必须定义在主程序内部 (D) C+程序中所有使用的符号常量可以不进行定义 3. 下述程序的输出结果是 ( D )。# include void main() int y=10; while(y-); printf(y=%d,y);18 (A) y=0 (B) y=1 (C) y=随机值 (D)y=-1 4. 若有以下说明: char *str1=copy(定义错误),str220,*str3=str,*str4,*str5=good;则正确的串操作语句是 ( D )。(待看)19 (A) strcpy(str

6、4,str1); (B) strcat(str1,str3);(C) str2=new str; (D) strcpy(str5,str3); 5.下面程序运行后,x,y,z的值分别为 ( A ) 。 # include void main() int x=0,y=0,z=0; +x|+y|+z; /x+1后以为真,后面yz未加1 printf(%d%d%dn,x,y,z);20 (A) 100 (B) 000 (C)111 (D)001 6. 以下程序运行的结果是 ( C )。先是4 5 6后4被0取代就变成0 5 6# include union myun struct int x,y,z

7、; u; 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 5 7. 关于C+和C语言学关系描述中,错误的是 (D )。22 (A) C语言与C+是兼容的(B) C+对C语言进行了一些改进(C) C语言是C+的一个子集 (D) C+和C语言都是面向对象的 8. 下列描述中,正确的是 ( B )。 23 (A) 子类可以继承其父类的所有属性和操作,但子类不能定义自己特有的属性和操作

8、 (B) 消息传递是类与类之间通信的手段(C) C+允许函数重载,但不允许运算符重载(D) C+中可以定义虚函数,通过它来支持动态联编 9. 下面程序运行的结果是 ( A )。# define f(x) 1+x+x*x 1+a+b+a+a*b+b是把a+b替换x# include void main() int a=2,b=3; printf(%dn,f(a+b);24 (A) 17 (B) 31 (C) 13 (D) 7 10. 下面局部程序代码是C+中的 ( B ) 特性的表现。void display(int var) coutvar;void display(char var) cou

9、tvar;void display(int var1,int var2) coutvar1var2;25 (A) 继承 (B) 重载 (C) 多态性 (D) 封装四川省计算机等级考试二级C语言笔试题(第十九次)二 2009-03-29 15:06:15 二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 有下列程序:# include int f(int m) static int x3=2,3,4; int i; for(i=0;i3;i+) xi+=xi-m; for(i=0;i3;i+) printf(%d,xi);printf(n); return(xm);void main()

10、 int y=1; f(f(y); (1)第一次调用f函数的结果是( D )。26 (A) 5,7,9, (B) 1,5,9, (C) 0,1,3, (D) 3,5,7,(2)第二次调用f函数的结果是( B )。27 (A) 3,5,7, (B) 1,5,9, (C) 0,1,3, (D) 5,7,9, 2. 读下列程序,运行时输入:This is a book!# include int change(char *c,int fg) if( *c= )L1: return 1; else if ( fg & *c=a) *c+=A-a; return 0;void main() int fl

11、ag=1; char ch; do ch=getchar(); flag=change(&ch,flag); putchar(ch); while(ch!=n); (1) 程序的运行结果是( C )。28 (A) THIS IS A BOOK! (B) this Is A Book! (C) This Is A Book! (D) This Is a Book!(2) 与L1:return 1等效描述的为( D )。29 (A) return 0 (B) return 1 (C) return 1-1 (D) return !(-1) 3. 读下列程序,回答问题。( 28 )。# includ

12、e iostream.hint 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;i4;i+) x=sb(s,x); coutx,; coutendl; (1) 程序结束后i的值为( A )。30 (A) 4 (B) 0 (C) 2 (D) 1(2) 该程序的输出结果是( D )。31 (A) 1,2,3,4, (B) 2,3,4,1, (C) 3,4,1,2, (D) 4,3,2,1, 4. 读下列程序,回答问题。# include iostream.

13、h关键是有没有breakvoid main() char *s=; int a=0,b=0,c=0,d=0; int k; for(k=0;sk;k+) switch(sk) default : d+; case 1: a+; case 3: c+; case 2: b+; couta=a,b=b,c=c,d=dendl; (1) 该程序运行结束时,k的值是( C )。32 (A) 8 (B) 7 (C) 6 (D) 5(2) 该程序的输出结果是( C )。33 (A) a=4,b=5,c=4,d=1 (B) a=4,b=9,c=3,d=1(C) a=3,b=6,c=4,d=1 (D) a=8

14、,b=8,c=8,d=8 5. 下列程序运行的结果为( B )。(待定)# include stdio.hvoid fun(char *s) char t; if(*s) t=*s+;fun(s); if(t!=0) putchar(t); void main() char *a=1234; fun(a); 34 (A) 1234 (B) 4321 (C) 1324 (D) 4231 6. 读下列程序,回答问题。# include stdio.hvoid sub1(char a,char b) char c; c=a; a=b; b=c;void sub2(char *a,char b) ch

15、ar c; c=*a; *a=b; b=c;void sub3(char *a,char *b) char c; c=*a; *a=*b; *b=c;void main() char a,b; a=A; b=B; sub3(&a,&b); putchar(a); putchar(b); sub2(&a,b); putchar(a); putchar(b); sub1(a,b); putchar(a); putchar(b); (1) 程序中调用完函数sub3后,输出为( C )。35 (A) AB (B) ABBA (C) BA (D) BAAB(2) 该程序的最终输出结果为( D )。(待定

16、)36 (A) ABBBAB (B) ABBBBB (C) BABABA (D) BAAAAA7. 读以下程序,并回答问题。# include union bt int a; int b2;void fun(union bt *c) c-a=-7; c-b0=9; c-b1=8;void main() union bt c; fun(&c); printf(%dn,c.a); (1) 程序的输出结果为( B )。(待定)36 (A) 8 (B) 9 (C) -7 (D) 7(2) 若将程序中的所有的union换成struct,则程序的输出结果为( C )。参考:union 先存储a(-7),然

17、后存储一个数组b【0】、b【1】,b【0】就把a给覆盖了,所以选9而struct不同,先存a,再接着存b,所以第一个就是a了.9的下一个存储位置才是8 (A) 8 (B) 9 (C) -7 (D) 7 8. 读程序,回答问题。# include # include void main(int argc,char *argv) FILE *fp; void fun(FILE *fp); int i=1; while(-argc0) if(fp=fopen(argvi+,r)=NULL) printf(Cannot open file!n); exit(0); else fun(fp); fclo

18、se(fp); void fun(FILE *fp) char c; c=fgetc(fp); while(c!=EOF) if(c=A & c=a & c=z) putchar(c-(a-A); c=fgetc(fp); 上述C程序经编译、连接后生成一个可执行文件,文件名为ex2_8。假设磁盘上有两个文本文件file1.txt和file2.txt,file1.txt的内容为SiChuan,file2.txt的内容为Test。若在DOS提示符下键入:ex2_8 file.txt file2.txt,则程序的运行结果为( B )。39 (A) SICHUAN (B) SICHUANTEST (C

19、) SiChuanTest (D) TEST 9. 下面程序的输出是( D )。(待定)# include stdio.hint fun(char value ,int n) value=n-1; value&=0x01; return(value);void main() char c=13; printf(%dn,fun(c,2); 40 (A) 13 (B) 1 (C)3 (D) 0四川省计算机等级考试二级C语言笔试题(第十九次)三 2009-03-29 15:07:26 注意: 请把下面“程序填空”中各小题答案写在主观题答题纸上 每一个空只填一个语句或一个语句所缺的部分内容三、程序填空

20、 ( 每空2分,共30分 ) 1. 下面程序是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。函数Sum计算数组元素之和。请完成下列程序。# include int TotalSum(int ,int );void main() int a5=2,3,6,8,10; int Total; Total=TotalSum(a,5) ; countAumof array: Total endl;int TotalSum(int array,int len) int sum=0; for(int i=0;ilen;i+) sum+=arrayi ; re

21、turn sum; 2. 输入一个8位二进制数,将其转换为十进制数输出。# include iostream.hdouble power(double x,int n);void main(void) int i; int value=0; char ch; cout=0;i-) cinch; if(ch=1 ) value+=power(2,i) ; coutdecimal value is valueendl;double power(double x,int n) double val=1.0; while(n-) val=val*x ; return(val); 3. 以下程序是判断输

22、入的字符串是否是“回文”(顺读和倒读都一样的字符串叫回文,如level),请填空。# include stdio.h# include string.hvoid main() char s81,*p1,*p2; int n; gets(s); n=strlen(s); p1=s; p2=s+n-1 ;/ while(*p1!= 0 ) if(*p1!=*p2) break; else p1+; p2- ; if(p1p2) printf(Non); else printf(Yesn); 4. 下面程序功能是检查一个4阶矩阵是否对称(即对所有的i,j,都有numij=numji),请填空。# include void main() int num44; int i,j,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论