计算机二级c语言四川省历年试题.docx

上传人:文*** 文档编号:68221991 上传时间:2022-12-27 格式:DOCX 页数:160 大小:523.75KB
返回 下载 相关 举报
计算机二级c语言四川省历年试题.docx_第1页
第1页 / 共160页
计算机二级c语言四川省历年试题.docx_第2页
第2页 / 共160页
点击查看更多>>
资源描述

《计算机二级c语言四川省历年试题.docx》由会员分享,可在线阅读,更多相关《计算机二级c语言四川省历年试题.docx(160页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一部分:历年笔试真题?真题一第十九次等级考试第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1.在目前,用于保证软件质量的主要手段是进行软件测试。(1)2 .使用DMA方式传送数据期间不需要CPU干预。(2)3 .线性顺序队列会产生“假溢出”,而线性循环队列则不会。(3)4 .对同一种算法,用高级语言编写的程序比用低级语言编写的程序运行速度快。(4)5 .在线性表中,数据的存储方式有顺序和链接两种。(5)6 .进程是由程序块、文件控制块和数据块三部分组成。(6)7 .在面向对象的程序设计中,派生类只

2、能从一个基类产生。(7)8 .操作系统是用户和硬件的接口。(8)9 .个人计算机中可配置的最大内存容量受地址总线位数的限制。(9)10 .软件维护中最困难的问题是软件配置不全。(10)二、选择题(每小题1分,共5分)1 .在排序法中,从未排序序列中依次取出元素,与已排序序列中的元素作比较,将其放入已排序序列的正确位置称为(11)。11(A)选择排序(B)快速排序(C)插入排序(D)冒泡排序2 .有X、Y、Z三个元素依次入栈,不可能的出栈顺序是(12).12(A) Z,Y,X(B) Z,X,Y(C) Y,X,Z(D) X,Y,Z3 .进程的状态是可以转换的,而以下哪个状态转换是不可能的(13).

3、13(A)就绪状态?执行状态(B)执行状态?就绪状态(C)阻塞状态?就绪状态(D)等待状态?执行状态4 .线性链表的地址(14)。14(A)必须连续(B)部分地址必须连续(C)一定不连续(D)连续与否均可以5.在软件测试中,(15)主要分析程序的内部结构。15(A)白盒法(B)黑盒法(C)因果图法(D)错误推测法第二部分C与C+语言程序设计(共85分)一、单项选择题(每小题1分,共10分)1 .对下列程序段的描述正确的是(16).# include int Fun(int xjnt y)(return x+y;void main()(int i=10;coutFun(i-H-,i)endl;)

4、16(A)程序输入结果不确定(B)程序输出结果是20(C)程序输出结果是21(D)程序输出是222.下列描述正确的是(17).17(A) C+程序中cout时需要用到预处理命令# include (B) C+程序必须有return语句(C) C+程序中的变量必须定义在主程序内部(D) C+程序中所有使用的符号常量可以不进行定义3.下述程序的输出结果是(18)。# include void main()(int y=10;while(y);printf(,y=%d,y);18(A) y=0(B)y=l(C)y=随机值(D)y=-14 .若有以下说明:char *strl=copy,str220,

5、*str3=str,*str4,*str5=good;则正确的串操作语句是(19)。19(A) strcpy(str4,strl);(B) strcat(strl,str3);(C) str2=*new str;(D) strcpy(str5,str3);5 .下面程序运行后,x,y,z的值分别为(20)。# include void main()(int x=0,y=0,z=0;+xll+yll+z;printf(,%d%d%dn,x,y,z);20(A)100(B)000(C)111(D)0016.以下程序运行的结果是(21)o# include union myun struct int

6、 x,y,z; u;int k;a;void main()(a.u.x=4; a.u.y=5; a.u.z=6;a.k=O;printf(*%d %d %dn a.u.x, a.u.y, a.u.z);121(A)456(B)654(C)056(D)0657.关于C+和C语言学关系描述中,错误的是(22)o22(A) C语言与C+是兼容的(B) C+对C语言进行了些改进(C) C语言是C+的一个子集(D) C+和C语言都是面向对象的8.下列描述中,正确的是(23)。23(A)子类可以继承其父类的所有属性和操作,但子类不能定义自己特有的属性和操作(B)消息传递是类与类之间通信的手段(C) C+允

7、许函数重载,但不允许运算符重载(D) C+中可以定义虚函数,通过它来支持动态联编9.下面程序运行的结果是(24)。# define f(x) l+x+x*x# include void main()int a=2,b=3;printf( H%dnM,f(a+b);1(D)724(A)17(B)31(C)1310.下面局部程序代码是C+中的(25)特性的表现。 void display(int var) coutvar;void display(char var) coutvar;)void display(int varl,int var2)( coutvarl var2;25(A)继承(B)

8、重载(C)多态性(D)封装二、读程序回答问题(每个选择3分,共45分)1.有下列程序:# include int f(int m)(static int x3=2,3,4;int i;for(i=0;iv3;i+)xi+=xi-m;for(i=0;i3;i+)printf(n%d;,xi);printf(*n);return(x|m|);void main() int y=l;f(f(y);(1)第一次调用f函数的结果是(2626(A)5,7,9,(B)1,5,9,(C)0,1,3,(D)3,5,7,(2)第二次调用f函数的结果是(2727(A)3,5,7,(B)1,5,9,(C)0,1,3,

9、(D)5,7,9,2.读下列程序,运行时输入:This isa book!# include int change(char *c,int fg) if(*c=*)L I: return 1;elseif( fg &*c=,a,)*c+=,A-a,;return 0;)void main()(int flag=l;char ch;do ch=getchar();flag=change(&ch,flag);putchar(ch);while(ch!=V);(1)程序的运行结果是(28)28(A) THIS IS A BOOK!(B) this Is A Book!(C) This Is A Bo

10、ok!(2)与LI: return 1等效描述的为(29(A) return 0(B) return -13 .读下列程序,回答问题。(28# include Miostream.hMint sb(int *s,int y) static int i=3;y=si-l;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的值为(30)o30(A)4(B)0(2)该程序的输出结果是(3131(A)1,2,3,4,(B)2,3,41,4 .读下列程序,回答

11、问题。# include iostream.h(D) This Is a Book!29).(C) return 1-1(D) return !(-l)。(C)2(D)1)o(C)3,4,l,2,(D)4,3,2,1,void main() char*s=M213142M;int a=O,b=O,c=O,d=O; int k;for(k=0;sk;k+)switch(sk|) default: d+;case T: a+;case 3: C+;case 2,: b+;cout,a=,a,b=b,c=,c,d=dendl;(1)该程序运行结束时,k的值是(32(A)8(B)7(2)该程序的输出结

12、果是(33)o33(A) a=4,b=5,c=4,d=l(C) a=3,b=6,c=4,d=15.下列程序运行的结果为(3432)o(C)6(D)5(B) a=4,b=9,c=3,d=l(D) a=8,b=8,c=8,d=8# include stdio.hvoid fun(char *s) char t;if(*s) t=*s+; fun(s);if(t!=W)putchar(t);)void main() char *a=1234”;fun(a);)34(A)1234(B)4321(C)1324(D)42316.读下列程序,回答问题。# include 飞tdio.hvoid subl(c

13、har a,char b) char c;c=a; a=b; b=c;)void sub2(char *a,char b) char 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);subl(a,b); putchar(a); putchar(b);)(1)程序中调用完函数sub3后,输出为(35)o35

14、 (A) AB(B) ABBA(C) BA(D) BAAB(2)该程序的最终输出结果为(36)o36 (A) ABBBAB(B) ABBBBB(C) BAB ABA(D) BAAAAA7.读以下程序,并回答问题。# include union btint a;int b2;)void fun(union bt *c)(c-a=-7;c-b0=9;c-bl=8;);void main()(union bt c;fun(&c);printf(,%dn,c.a);(1)程序的输出结果为(36)o36(A)8(B)9(C)-7(D)7若将程序中的所有的union换成struct,则程序的输出结果为(3

15、7)。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=l;while(argc0)if(fp=fopen(argvi+;,r,)=NULL) printf(MCannot open file!n);exit(O);)else fun(fp); fclose(fp);)void fun(FILE *fp)char c;c=fgetc(fp);while(c!=EOF) if(c=*A& c=a& cv=z) putc

16、har(c-(aA);c=fgetc(fp);)上述C程序经编译、连接后生成一个可执行文件,文件名为ex2_8。假设磁盘上有两个文本文件 filel.txt 和包e2.txt, filel.txt 的内容为 SiChuan, file2.txt 的内容为 Test。若在DOS提示符下键入:ex2_8 file.txt file2.txt回车,则程序的运行结果为(39)。39(A) SICHUAN (B) SICHUANTEST (C) SiChuanTest (D)TEST9.下面程序的输出是(40)# include stdio.h,int fun(char value ,int n) va

17、lue=n-1;value&=0x01;return(value);)void main() char c=13;printf(n%dnM,fun(c,2);)40(A)13(B)1(C)3(D)0注意:请把下面“程序填空”中各小题答案写在主观题答题纸上每一个空只填-一个语句或一个语句所缺的部分内容三、程序填空(每空2分,共30分)1.下面程序是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。函数Sum计算数组元素之和。请完成下列程序。# include int TotalSum(int ,int);void main() int a5=2,3,

18、6,8,10;int Total;Total=;countnAumof array:endl;)int Totalsum(int array,int len) int sum=0;fbr(int i=0;i=0;i-) cinch;if()value+=(2);)coutvvdecimal value is valueendl;)double power(double x,int n) double val=1.0;while(n);return(val);)3.以下程序是判断输入的字符串是否是“回文”(顺读和倒读都一样的字符串叫回文,如 level),请填空。# include stdio.

19、h# include string.hMvoid main()char s81,*pl,*p2;int n;gets(s);n=strlen(s);pl=s;p2=;while() if(*pl !=*p2) break;else pl+;;)if(plp2) printf(MNonH);else printf(MYesnM);4.下面程序功能是检查一个4阶矩阵是否对称(即对所有的3,桶.numi|jl=num|ji),请填空。# include void main()int num44;int i,j,flag=O;printf(Input array num:nn);for(i=0;i4;

20、i+)for(j=0;j4;j+)scanf(“d”,);for(i=0;i4;i+)for(j=0;j4;j+)if() flag=l; break;if()printf(Non);else printf(Yesn);)5.下面程序的功能是从键盘输入一字符串,将该字符串与一文本文件进行比较,打印出也之相同的行的行号和内容。void comp()用于文件的比较,文件名用命令行参数提供。请填空。# include stdio.h# include string.h*# include ,stdlib.hFILE *fp;void comp(char *string) int line=O;cha

21、r str100; fgets(str,100,fp);strstrlen(str)-1=0;line+;printf(w%d:%snn,line,str);)void main(int argc,char *argv)(char stringl 100|;if(argc!=2) printf(Error nn);exit(O);)if(fp=(3)=NULL) printf(MCant open file %s!nM,argvl);exit(O);printf(MPiease input the string:nH);gets(string);comp( string);fclose(fp)

22、;?真题二第二十次等级考试第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)1 .数据元素是数据的基本单位,数据项是数据的最小单位。(1)2 .栈是特殊的线性表,须用一组地址连续的存储单元来存储其元素。(2)3 .引入虚拟存储技术后,逻辑内存总容量是由地址总线的位数确定的。(3)4 .编译程序是一种常用的应用软件。(4)5 .顺序文件和链接文件的长度都可以动态变化。(5)6 .在文件系统中彩目录管理文件。(6)7 .允许多用户在其终端上同时交互地使用计算机的操作系统称为实时系统。(7)8 .程序、数据、和程序控制块是构成一个进程的三要素。(8)9 .黑盒测试时,既要考虑程序

23、的内部逻辑结构乂要考虑其外部特性。(9)10 .软件的总体设计和详细设计都要用PAD图形工具。(10)二、单项选择题(每小题1分,共5分)I .允许用户把若干作业提交计算机系统集中处理的操作系统称为(11)oII (A)分时操作系统(B)实时操作系统(C)网络操作系统(D)批处理操作系统2.分配到必要资源并获得了处理机时的进程的状态称为(12).12(A)就绪状态(B)执行状态(C)等待状态(D)阻塞状态3.利用通道技术可以在(13)之间直接交换数据。13(A)内存与CPU (B) CPU与外设(C)内存与外设(D)内存、CPU和外设三者4.以下的准则中哪个不是软件设计的准则(1414(A)编

24、程语言选择准则(B)信息屏蔽准则(C)结构化和模块化准则(D)抽象准则5.有一数列:97657613294958经过一趟排序后得到:65971376294958请问使用的是何种排序方法(15),15(A)简单插入排序(B)冒泡排序(C)2路归并排序(D)快速排序第二部分C与C+语言程序设计(共85分)一、单项选择题(每小题1分,共10分)1 .定义如下枚举类型:enum Day Monday,Tuesday,Wednesday,Thursday,Friday=2;则下列语句正确的是(16)o(B) enum Day day; day=3;(D) enum Day day; day=Monday

25、+10;16(A)表达式 Wednesday=Friday 的值是 true (C) enum Day day; day=Tuesday-3;2 .下列程序片段的输出结果是(17).int m=4;do printf(,%d;,m-=3); while(!(-m);17(A)1(B)1,-3,(C)3,0(D)死循环3 .执行下列程序片段时的输出结果是(18).int x,y;x=3;y=5;printf(%d,x%=(y/=2);18(A)3(B)2(C)1(D)04 .对于下述程序,判断正确的是(19)o# include void f(int *p)*p=10;int *p;void m

26、ain()f(p);printf(,%d,(*p)-H-);)19(A)输出的值是随机值(B)运行时出错(C)输出值为10(D)输出值为115.下列程序运行的结果是(20)o# define FU(y)2.8+y# define PR(a) printf(M%dH,(int)(a)# define PRINT(a) PR(a);# include void main() int x=2;PRINT( FU(5)* x );20(A)12(B)14(C)13(D)156.下列程序运行的结果是(21).# include void main() int a10=9,8,7,6,5,43,2,1,0

27、,*p=a+4;printf(%d,*+p);printf(%d,+*p);)21(A)4,3(B)4,6(C)5,5(D)4,57 .关于对类要领的描述中,错误的是(22).22(A)类就是C语言中的结构类型(B)类是创建对象的样板(C)类是具有共同行为的若干对象的统一描述体(D)类是抽象数据类型的实现8 .已知int a=9,b=4;将a-b的值输出显示到屏幕上,下列各种实现方法中,正确的是(23)o23(A) couta-bendl(B) coutvva-b”vvendl(C) couta-bendl(D) coutn%dnu,a-b9 .下列循环语句会进入死循环的是(24)o24(A)

28、 i=0;do i+;while(i=100);(B) for(i=0;i100;i+=3.14);(C) for(i=0;i+=2);(D) k=l ;do k-; while(k);10.下面程序运行的结果是(25)o# include int fun(char *str)(int n=0;while(*str=*0&*str=,9,) n=n*10+*str-l; str+; return n;void main() printf(,%dn,fun(,567.89H);25(A)89(B)567.89(C)567(D)456二、读程序回答问题(每个选择3分,共45分。1.有下列程序:#

29、include void main() int a,b,c,x;a=b=c=0;for(int i=0;i10;i+) cinx;switch(x%3) case 0: a+=x; break;case 1: b+=x; break;case 2: c+=x; break;)couta,b/cendl;)程序运行时依次输入x的值为:12345678910程序运行的结果是(26)o26(A)3,12,21(B)18,22,15(C)3,4,3(D)9,10,8switch(x%3)与(27)相同。27(A) switch(!(x%3)!=0)(B) switch(x%3=0)(C) switch

30、(x%3!=0)(D)他们都不相同2.有下列程序:# include void main()char *str=One ,Two,Three,Four;char=str;int i;for(i=0;i3;i+)printf(H%sn,(ptr+l)i);为程序中空白处选择填空(28)o28(A)*ptr (B)*ptr (C) ptr(D)&ptr运行结果是(29)e29(A) newohree (B) Two (C) TwoThreeFour (D)指针运行非法,无输出3.读下列程序,回答问题。# include void main( void)int m,n;double x,y;int

31、divide(int m,int n);double divide(int m,double y);double divide(double x,double y);coutnEnter two integer and two real number:1; cinmnxy;LI :coutdivide(m,n)endl;L2:coutdivide(n,x)endl;L3: coutdivede( x,y)e ndl;int divide(int m,int n) return m/n; double divide(int m,double y) return x/y; 输入数据7 2 7.03

32、0 (A) 0(B)1输入数据7 2 7.031 (A) 0(B)1输入数据7 2 7.032 (A) 0(B)1double divide(double x,double y)30 )。31 )。32 )o2.0,语句LI输出结果是(C)3(D)3.52.0,语句L2输出结果是(C)3(D)3.52.0,语句L3输出结果是(C)3(D)3.54 .# include void main()(unsigned int a=0112,x,y,z;x=a3;y=-(-04); z=x&y;printf(n%o %o %onM,x,y,z);printf(n%xnMJ(x&y&z);)该程序中执行第

33、一个printf函数后,输出为(3333(A)111711(B)171117(C)1117该程序中执行第二个printf函数后,输出为(34)。34(A)171(B)0112(C)1(D)5 .以下程序运行的结果为(35),# include void swapl(int a,int b) int temp;temp=a; a=b; b=temp;void swap2(int &a,int &b) int temp;temp=a; a=b; b=temp;)void main() int i=3, j=5;swapl(i,j);printf(M%d %dnij);swap2(ij);print

34、f(M%d %dnH,i,j);35(A)35(B)53(C)533553356.读下列递归程序,回答问题。# include void fiin(char *strp) char *t;if(*strp) t=strp; t+; fun(t); putchar(*strp);)void main()int i,a10=0,1,2,3A5,6,7,8,9);char strl 1;for(i=0;i10;i+)stri=ai+,O,;stri=,O,;fiin(str);)程序中的fun函数被调用(36)次。36(A)9(B)10(C)11程序的输出结果为(37)o17(D) 17 17 11

35、(D) 3553(D) 12(D) 9876537(A)0123456789(B)9876543210(C)0123456789432107 .读下列C程序,若输入字符串Examination ,请选择正确的输出结果。# include void main() char str20;int i=0;static int count2=0;gets(str);doswitch(stri+)case a*: case A:case e*: case E*:case i: case T:case o: case *O:case u: case TJ: count0+;/* break;*/defau

36、lt: count1+;)while(stri!=,0);printf(,count0=%d,countl=%dn,count0,countl);程序的输出结果为(38)o38(A) count0=6,count|1=11(B) count0=6,countl=12(C) count0=5,count1=11(D) count0=5,count1=12若将程序中注释语句的注释标记去掉,则程序的输出结果为(3939(A) count0=6,countl =11(B) count(0=6,count1=5(C) count0=5,countl=l 1(D) count0=6,count1=68 .

37、下面程序输出的结果为(40)。# include int a=5;void main() int a=3;a+;couta:a;程序中的fun函数被调用(36)次。40(A)54(B)45(C)53(D)44注意:请把下面“程序填空”中各小题答案写在主观题答题纸上每一个空只填一个语句或一个语句所缺的部分内容三、程序填空(每空2分,共30分)1.下列程序实现将一个整数字符串转换为一个整数。# include # include int Fun(char *str) int num,digital,len;;len=strlen(str);while(*str!=NULL)(digital=*st

38、r-O;foKint i=0;i+)digital*=10;len;;num+=digital;)return num;)void main() char n80;int number;gets(n);number=Fun(n);printf(%dn,number);)2.寻找并输出11999之间的数m,它满足m, m2, m3均为回文数(所谓回文数是指其各位数字左右对称的整数)。# include void main() int symm(long n);long m;for( m=000;m+)if()coutm=,mm*m=m*mMm*m*m=nm*m*mendl;)int symm(l

39、ong n) long i,m;i=n; m=0;while()(;i=i/10;)return (m=n);3.已知head指向一个单向链表,如下图:主程序中调用add函数能求出链表中所有结点数据域的和sum并返回。struct link int data;struct link *next;int add(struct link *heak) struct link *p;int s=0;p=0;while(p) s+=;;return (s);1void main() struct link *head;/*表示省掉的程序段,创建链表*/sum=add(head);printf(n%dn

40、M,sum);)4.下面程序功能是统计文本data.txt中各种大写字母的个数,将统计结果存放在数组count 中,(字母A的个数存入count0中,字母B的个数存入countl依此类推),输出统计结果,一行输出5个。请填空。# include # include void main() FILE *fp;static int count26=0;int i;char ch;if() printf(Cannot open the file!nn);exit(O);)while(! feof(fp);if(ch=A&ch=Z) count+;)for(i=0;i26;i+)(if(i%5=0) printf(n);printf(,count%d=%

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁