四川省计算机二级考试历年笔试真题C语言_第1页
四川省计算机二级考试历年笔试真题C语言_第2页
四川省计算机二级考试历年笔试真题C语言_第3页
四川省计算机二级考试历年笔试真题C语言_第4页
四川省计算机二级考试历年笔试真题C语言_第5页
已阅读5页,还剩158页未读 继续免费阅读

下载本文档

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

文档简介

12345678910))))))))))2.3.12345678910)))))))))).11(A)选择排序(C)插入排序(B)快速排序(D)冒泡排序有X、丫、Z三个元素依次入栈,不可能的出栈顺序是(12 )。12(A)Z,Y,X(C)Y,X,Z(B)Z,X,Y(D)X,Y,Z进程的状态是可以转换的,而以下哪个状态转换是不可能的(13 )。13(A)就绪状态T(C)阻塞状态->线性链表的地址(14(A)必须连续(C)一定不连续执行状态 (B)执行状态->就绪状态就绪状态 (D)等待状态今执行状态14在软件测试中,(15(A)白盒法(C)因果图法15(B)部分地址必须连续(D)连续与否均可以)主要分析程序的内部结构。(B)黑盒法(D)错误推测法次第一部分:历年笔试真题第十九次等级考试第一部分

软件技术基础

(共15分)一、是非判断题(每小题I分,共10分)判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B)在目前,用于保证软件质量的主要手段是进行软件测试。使用DMA方式传送数据期间不需要CPU干预。线性顺序队列会产生“假溢出”,而线性循环队列则不会。对同一种算法,用高级语言编写的程序比用低级语言编写的程序运行速度快。在线性表中,数据的存储方式有顺序和链接两种。进程是由程序块、文件控制块和数据块三部分组成。在面向对象的程序设计中,派生类只能从一个基类产生。操作系统是用户和硬件的接口。个人计算机中可配置的最大内存容量受地址总线位数的限制。10.软件维护中最困难的问题是软件配置不全。二、选择题(每小题1分,共5分).在排序法中,从未排序序列中依次取出元素,与已排序序列中的元素作比较,将其放入已排序序列的正确位置称为(11 )。第二部分C与C++语言程序设计

供85分)一、单项选择题(每小题1分,共10分)0.对下列程序段的描述正确的是(16#include<iostream.h>intFun(intx,inty)returnx+y;voidmain()

四川省普通高校第33次计算机二级考试辅导资料(C程序设计)inti=10;cout«Fun(i++,i)«endl;}16(A)程序输入结果不确定 (B)程序输出结果是20(C)程序输出结果是21 (D)程序输出是22目.下列描述正确的是(17)。17(A)C++程序中cout时需要用到预处理命令#include<iostream.h>C++程序必须有return语句C++程序中的变量必须定义在主程序内部C++程序中所有使用的符号常量可以不进行定义.下述程序的输出结果是(18)。#include<stdio.h>voidmain(){inty=10;while(y—);printf("y=%d",y);}(B)y=l(C)y=随机值(B)y=l(C)y=随机值 (D)y=-1.若有以下说明:char*strl=ncopy,,,str2[20],*str3=,'str",*str4,*str5=,'good,';则正确的串操作语句是(19)»19(A)strcpy(str4,strl);(C)str2="newstr";5,下面程序运行后,x,y,z的值分别为(20)。#include<stdio.h>voidmain()(intx=0,y=0,z=0;++xll++yll++z;printf(',%d%d%d\n",x,y,z);)20(A)100 (B)0006.以下程序运行的结果是(21)o#include<stdio.h>unionmyun{struct{intx,y,z;}u;intk;}a;voidmain(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(n%d%d%d\n",a.u.x,a.u.y,a.u.z);}21(A)456 (B)654关于C++和C语言学关系描述中,错误的是((B)strcat(strl,str3);(D)strcpy(str5,str3);(C)111 (D)001(C)056 (D)06522)(B)strcat(strl,str3);(D)strcpy(str5,str3);(C)111 (D)001(C)056 (D)06522)o(B)C++对C语言进行了一些改进(C)C语言是C++的一个子集 (D)C++和C语言都是面向对象的姓下列描述中,正确的是(23)。23(A)子类可以继承其父类的所有属性和操作,但子类不能定义自己特有的属性和操作(B)消息传递是类与类之间通信的手段C++允许函数重载,但不允许运算符重载C++中可以定义虚函数,通过它来支持动态联编9.下面程序运行的结果是(24)。definef(x)l+x+x*xinclude<stdio.h>voidmain()(inta=2,b=3;printf("%d\n”,f(a+b));}24(A)17 (B)31 (C)13 (D)7园.下面局部程序代码是C++中的(25)特性的表现。voiddisplay(intvar){cout«var;}voiddisplay(charvar){cout«var;|voiddisplay(intvariantvar2){cout«var1«var2;)25(A)继承 (B)重载 (C)多态性(D)封装二、读程序回答问题(每个选择3分,共45分).有下列程序:#include<stdio.h>intf(intm){staticintx[3]={2,3,4};inti;for(i=0;i<3;i++)x[i]+=x[ij-m;for(i=0;i<3;i++)printf(“%d,",x[i]);printf(n\n");return(x[m]);|voidmain(){inty=l;f(f(y));(1)第一次调用f函数的结果是(26)«26(A)5,7,9, (B)1,5,9,(C)0,1,3,(D)3,5,7,(2)第二次调用f函数的结果是(27).27(A)3,5,7, (B)1,5,9,(C)0,1,3,(D)5,7,9,2.读下列程序,运行时输入:Thisisabook!#include<stdio.h>四川省普通高校第33次计算机二级考试辅导资料(C程序设计)intchange(char*c,intfg){if(*c==r')LI:return1;elseif(fg&&*c<=fz'&&*c>=,a,)*c+=,A'-,a,;return0;)voidmain(){intflag=l;charch;do{ch=getchar();flag=change(&ch,flag);putchar(ch);}while(ch!='\n');}(1)程序的运行结果是(28)e28(A)THISISABOOK! (B)thisIsABook!(C)ThisIsABook! (D)ThisIsaBook!(2)与LI:return1等效描述的为(29)。29(A)return0 (B)return-1 (C)return1-1 (D)return!(-l)目.读下列程序,回答问题。(28)。include"iostream.h"intsb(int*s,inty){staticinti=3;y=s[i-];returny;)voidmain(){ints[]={1,2,3,4);inti,x=0;for(i=0;i<4;i++){x=sb(s,x);cout«x«V;}cout«endl;(1)程序结束后i的值为(3030(A)4 (B)0(C)2 (D)1⑵该程序的输出结果是(3131(A)1,2,3,4, (B)2,3,4,1, (C)3,4,1,2, (D)4,3,2,1,0.读下列程序,回答问题。include"iostream.h"voidmain(){char*s="213142”;inta=0,b=0,c=0,d=0;intk;

for(k=0;s[k];k++)switch(s[k]){default:d++;caseT:a++;case3:C++;case2:b++;cout«',a=,,«a«n,b=,,«b«M,c=",«c«,,,d=,,«d«endl;(1)该程序运行结束时,k的值是(32)o(D)5(B)a=4,b=9,c=3,d=l(D)a=8,b=8,c=8,d=832(A)8(D)5(B)a=4,b=9,c=3,d=l(D)a=8,b=8,c=8,d=8(2)该程序的输出结果是(33)o33(A)a=4,b=5,c=4,d=l(C)a=3,b=6,c=4,d=l.下列程序运行的结果为(34)0#include"stdio.h"voidfun(char*s){chart;if(*s){t=*s++;fun(s);if(t!=A0')putchar(t);}}voidmain(){char*a=u1234n;fun(a);)34(A)1234 (B)4321 (C)1324 (D)4231.读下列程序,回答问题。#include"sldio.h"voidsub1(chara,charb){charc;c=a;a=b;b=c;)voidsub2(char*a,charb){charc;c=*a;*a=b;b=c;)voidsub3(char*a,char*b){charc;c=*a;*a=*b;*b=c;)voidmain(){chara,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),35(A)AB (B)ABBA(C)BA (D)BAAB⑵该程序的最终输出结果为(36)»36(A)ABBBAB (B)ABBBBB(C)BABABA(D)BAAAAA.读以下程序,并回答问题。#include<stdio.h>unionbt(inta;intb[2];}voidfun(unionbt*c){c->a=-7;c->b[0]=9;c->b[l]=8;};voidmain(){unionbtc;fun(&c);printf(',%d\n,,,c.a);}(1)程序的输出结果为(36).36(A)8 (B)9 (C)-7 (D)7(2)若将程序中的所有的union换成struct,则程序的输出结果为(37).37(A)8 (B)9 (C)-7 (D)7.读程序,回答问题。include<stdio.h>include<stdlib.h>voidmain(intargc,char*argv[]){FILE*fp;voidfun(HLE*fp);inti=l;while(—argc>0)if((fp=fopen(argv[i++],"rM))==NULL){printf(nCannotopenfile!\nM);exit(O);}else{fun(fp);fclose(fp);}}voidfun(FILE*fp){charc;c=fgetc(fp);while((c!=EOF)){if(c>='A'&&c<='Z*)putchar(c);elseif(c>=a*&&c<='z,)putchar(c・('a'-'A'));c=fgetc(fp);}}上述C程序经编译、连接后生成一个可执行文件,文件名为ex2_8。假设磁盘上有两个文本文件filel.txt和file2.txt,filel.txt的内容为SiChuan,file2.txt的内容为Test。若在DOS提示符下键入:ex2_8file.txtfile2.txt<回车〉,则程序的运行结果为(39).39(A)SICHUAN(B)SICHUANTEST(C)SiChuanTest(D)TEST.F面程序的输出是(40)«include"stdio.h"intfun(charvalue,intn){value»=n-l;value&=0x01;return(value);}voidmain(){charc=13;printf(n%d\n'\fun(c,2));)40(A)13 (B)1 (C)3 (D)0注意:①请把下面“程序填空”中各小题答案写在主观题答题纸上②每一个空只填一个语句或一个语句所缺的部分内容三、程序填空(每空2分,共30分)0.下面程序是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。函数Sum计算数组元素之和。请完成下列程序。include<iostream.h>intTotalSum(int[],int);voidmain(){inta[5]={2,3,6,8,10};intTotal;Total=Q);count«MAumofarray:“②«endl;}intTotalSum(intarray[],intlen){intsum=0;for(inti=0;i<len;i++)returnsum;)目.输入一个8位二进制数,将其转换为十进制数输出。include"iostream.h"doublepower(doublex,intn);voidmain(void){inti;intvalue=0;charch;cout«"Enteran8bitbinarynumberfor(i=7;i>=0;i-){cin»ch;if(H) )value+=^;~Tcout«"decimalvalueis"«value«endl;}doublepower(doublex,intn){doubleval=1.0;while(n-)③;retum(val);}.以下程序是判断输入的字符串是否是“回文”(顺读和倒读都一样的字符串叫回文,inlevel),请填空。#include"stdio.h"#includenstring.hHvoidmain(){chars[81],*pl,*p2;intn;gets(s);n=strlen(s);pl=s;TOC\o"1-5"\h\zp2=ffi ;while(② ){if(*pl!=*p2)break;else{pl++; ;})if(pl<p2)printf(”No\n");elseprintf(nYes\nH);}.下面程序功能是检查一个4阶矩阵是否对称(即对所有的i,j,都有num[i][j]=numU][i]),请填空。#include<stdio.h>voidmain()(intnum[4][4];intij,flag=O;printf("Inputarraynum:\nu);for(i=0;i<4;i++)forQ=0y<4;j++)scanfC-d".①for(i=0;i<4;i++)for(j=0;j<4;j++)if(^){flag=1;break;}if(③)printf("No\n");elseprintf(”Yes\n");}5.下面程序的功能是从键盘输入一字符串,将该字符串与一文本文件进行比较,打印出也之相同的行的行号和内容。voidcomp()用于文件的比较,文件名用命令行参数提供。请填空。include"stdio.h"include"string.h"include"stdlib.h"FILE*fp;voidcomp(char*string){intline=0;charstr[100];©{fgets(str,100,fp);str[strlen(str)-l]=W,;line++;②printf("%d:%s\n"Jine,str);}}voidmain(inlargc,char**argv){charstring1100];if(argc!=2){printf(uError\nn);exit(0);}if(fp=©)==NULL){printf(℃an,topenfile%s!\nH,argv[l]);exit(O);}printf(uPleaseinputthestring:\n");gets(string);comp(string);fclose(fp);第二十次等级考试第一部分

软件技术基础

(共15分)一、是非判断题(每小题1分,共io分)TOC\o"1-5"\h\z.数据元素是数据的基本单位,数据项是数据的最小单位。 (1).栈是特殊的线性表,须用一组地址连续的存储单元来存储其元素。 (2).引入虚拟存储技术后,逻辑内存总容量是由地址总线的位数确定的。 (3).编译程序是一种常用的应用软件。 (4).顺序文件和链接文件的长度都可以动态变化。 (5).在文件系统中彩目录管理文件。 (6).允许多用户在其终端上同时交互地使用计算机的操作系统称为实时系统。 (7).程序、数据、和程序控制块是构成一个进程的三要素。 (8).黑盒测试时,既要考虑程序的内部逻辑结构又要考虑其外部特性。 (9).软件的总体设计和详细设计都要用PAD图形工具。 (10)二、单项选择题(每小题1分,共5分)允许用户把若干作业提交计算机系统集中处理的操作系统称为(11)o(A)分时操作系统 (B)实时操作系统(C)网络操作系统(D)批处理操作系统.分配到必要资源并获得了处理机时的进程的状态称为(12 )。12(A)就绪状态(B)执行状态(C)等待状态 (D)阻塞状态.利用通道技术可以在(13 )之间直接交换数据。13(A)内存与CPU(B)CPU与外设(C)内存与外设(D)内存、CPU和外设三者.以下的准则中哪个不是软件设计的准则(14 ).14(A)编程语言选择准则 (B)信息屏蔽准则(C)结构化和模块化准则 (D)抽象准则5.有一数列:97657613294958经过一趟排序后得到:65971376294958请问使用的是何种排序方法(15 ).15(A)简单插入排序(B)冒泡排序(C)2路归并排序(D)快速排序第二部分C与C++语言程序设计

(共85分)一、单项选择题(每小题1分,共10分).定义如下枚举类型:enumDay{Monday,Tuesday,Wednesday,Thursday,Friday=2};则下列语句正确的是(16)o(B)enumDayday;day=3;(D)enumDayday;day=Monday+10;16(A)表达式Wednesday==Friday的值是(B)enumDayday;day=3;(D)enumDayday;day=Monday+10;.下列程序片段的输出结果是(17)ointm=4;do{printf(',%d;;m-=3);}while(!(—m));17(A)1 (B)1,-3, (C)3,0 (D)死循环.执行下列程序片段时的输出结果是(18)eintx,y;x=3;y=5;prinlf("%d”,x%=(y/=2));18(A)3 (B)2 (C)1 (D)0.对于下述程序,判断正确的是(19)o#include<stdio.h>voidf(int*p){*p=10;}int*p;voidmain(){f(p);printf("%d",(*p)++);}19(A)输出的值是随机值(B)运行时出错(C)输出值为10 (D)输出值为11.下列程序运行的结果是(20)。defineFU(y)2.8+ydefinePR(a)printf(',%d,,,(int)(a))definePRINT(a)PR(a);include<stdio.h>voidmain(){intx=2;PRINT(FU(5)*x);}20(A)12 (B)14 (C)13 (D)15.下列程序运行的结果是(21)o#include<stdio.h>voidmain(){inta[10]={9,8,7,6,5,43,2,1,0),*p=a-M;printf(',%d,,,*++p);printf(',%d,,,++*p);}21(A)4,3 (B)4,6 (C)5,5 (D)4,5.关于对类要领的描述中,错误的是(22)o22(A)类就是C语言中的结构类型 (B)类是创建对象的样板(C)类是具有共同行为的若干对象的统一描述体 (D)类是抽象数据类型的实现恸.已知inta=9,b=4;将a-b的值输出显示到屏幕上,下列各种实现方法中,正确的是(23)。(B)cout«"a-b"«endl(D)cout«n%d\n'\a-b24)o(B)cout«"a-b"«endl(D)cout«n%d\n'\a-b24)o.下列循环语句会进入死循环的是((B)for(i=0;i<100;i+=3.14);(D)k=l;do{k—;}while(k);(C)567 (D)456(B)for(i=0;i<100;i+=3.14);(D)k=l;do{k—;}while(k);(C)567 (D)456.下面程序运行的结果是(25)o#include<stdio.h>intfun(char*str){intn=0;while(*str>='0,&&*str<=,9'){n=n*10+*strjr;str++;}returnn;)voidmain(){printf(H%d\nM,fiin(H567.89n));}25(A)89 (B)567.89二、读程序回答问题(每个选择3分,共45分)。0.有下列程序:#include<iostream.h>voidmain(){inta,b,c,x;a=b=c=0;for(inti=0;i<10;i++){cin»x;switch(x%3){case0:a+=x;break;b+=x;break;c+=x;break;})cout«a«7«b«,,,«c«endl;1程序运行时依次输入x的值为:12345678910①程序运行的结果是(26)。26(A)3,12,21 (B)18,22,15 (C)3,4,3 (D)9,10,8②switch(x%3)与(27)相同。27(A)switch(!(x%3)!=0)(B)switch(x%3=0)(C)switch(x%3!=0)(D)他们都不相同2.有下列程序:include<stdio.h>voidmain(){char*str[]={,,OneM;'TwoM;,Three,,,TourM);char=str;inti;for(i=0;i<3;i++)printf(H%sM,(ptr+l)[i]);}①为程序中空白处选择填空(28).28(A)**ptr(B)*ptr(C)ptr[](D)&ptr②运行结果是(29)o29(A)newohree(B)Two(C)TwoThreeFour(D)指针运行非法,无输出目.读下列程序,回答问题。include<iostream.h>voidmain(void){intm,n;doublex,y;intdivide(intmjntn);doubledivide(intm,doubley);doubledivide(doublex,doubley);cout«"Entertwointegerandtworealnumber:1';cin»m»n»x»y;LI:cout«divide(m,n)«endl;L2:cout«divide(n,x)«endl;L3:cout«divede(x,y)«endl;}intdivide(intm,intn){returnm/n;}doubledivide(intm,doubley){returnm/(int)y;}doubledivide(doublex,doubley){returnx/y;}①输入数据727.02.0,语句L1输出结果是(30)030(A)0(B)l(C)3 (D)3.5②输入数据727.02.0,语句L2输出结果是(3131(A)0(B)l(C)3 (D)3.5③输入数据727.02.0,语句L3输出结果是(3232(A)0(B)l(C)3 (D)3.54. #include<stdio.h>voidmain(){unsignedinta=0112,xty,z;x=a»3;y=~(~0«4);z=x&y;printf(n%o%o%o\nM,x,y,z);printf(,,%x\n,,,!(x&&y&&z));}该程序中执行第一个printf函数后,输出为(3333(A)!!1711 (B)171117 (C)111717 (D)171711该程序中执行第二个printf函数后,输出为(3434(A)171 (B)0112 (C)I (D)0.以下程序运行的结果为(35)o#include<stdio.h>voidswap1(inta,intb){inttemp;temp=a;a=b;b=temp;)voidswap2(int&ajnt&b){inttemp;temp=a;a=b;b=temp;}voidmain(){inti=3,j=5;swapl(i,j);printf("%d%d\n",i,j);swap2(i,j);printf(n%d%d\nn,i,j);)(C)53(D)35355335(A)35 (B)5335 53.读下列递归程序,回答问题。#include<stdio.h>voidfun(char*strp){char*t;if(*strp){t=strp;t++;fun(t);putchar(*strp);}}voidmain(){inti,a[10]={0」,2,3,4,5,6,7,8,9};charstr[l1J;for(i=0;i<10;i++)四川省普通高校第33次计算机二级考试辅导资料(C程序设计)str[i]=a[i]+,O';str[i]=,\O';fun(str);)程序中的fun函数被调用(36)次。36(A)9(B)10(C)11(D)12程序的输出结果为(37)o37(A)0123456789(B)9876543210(00123456789(D)9876543210.读下列C程序,若输入字符串Examination,请选择正确的输出结果。#include<stdio.h>voidmain(){charstr[20];inti=0;staticintcount[2]={0};gets(str);do(switch(str[i++]){case'a':case'A':case'e':caseE:case'i':caseT:case'o':case'O':case*u':caseU:count[0]++;/*break;*/default:countfl]++;}}while(str[i]!='\O');printf(',count[0]=%d,count[1]=%d\n'\count[0],count[l]);)程序的输出结果为(38)o38(A)count[0]=6,count[1]=11 (B)count[0]=6,count[1]=12(C)count[0]=5,count[1]=11 (D)count[0]=5,count[1]=12若将程序中注释语句的注释标记去掉,则程序的输出结果为(39)(.39(A)count[0]=6,count[l]=l1(C)count[0]=5,count[1]=11(B)countlOJ=6,countl1]=5(D)count[0]=6,count[l]=6下面程序输出的结果为(40)o#include<iostream.h>inta=5;voidmain(){inta=3;a++;cout«a«::a;)程序中的fun函数被调用(3640(A)54 (B)45)次。(C)53(D)44注意:①请把下面“程序填空”中各小题答案写在主观题答题纸上②每一个空只填一个语句或一个语句所缺的部分内容三、程序填空(每空2分,共30分).下列程序实现将一个整数字符串转换为一个整数。include<string.h>include<stdio.h>intFun(char*str){intnum,digitalJen;;len=strlen(str);while(*str!=NULL){digital=*str-'O,;for(inti=0;^;i++)digital*=10;len—;num+=digital;)returnnum;}voidmain(){charn[80];intnumber;gets(n);number=Fun(n);printf("%d\n",number);)目.寻找并输出11〜999之间的数m,它满足m,m2,n?均为回文数(所谓回文数是指其各位数字左右对称的整数)。include<iostream.h>voidmain(){intsymm(longn);longm;for(m=1l;m<l000;m++)if®)cout«,,m="«m«,'m*m=,'«m:|im«,'m*m*m=,,«m*m*m«endl;)intsymm(longn){longi,m;i=n;m=0;while(②){© ;i=i/10;}return(m==n);}3.已知head指向一个单向链表,如下图:主程序中调用add函数能求出链表中所有结点数据域的和sum并返回。structlink{intdata;structlink*next;)intadd(structlink*heak){structlink*p;ints=0;.二①while(p){s+@}return(s);voidmain(){structlink*head;…… /*表示省掉的程序段,创建链表*/sum=add(head);printf(,,%d\nH,sum);}4.下面程序功能是统计文本data.txt中各种大写字母的个数,将统计结果存放在数组count中,(字母A的个数存入count⑼中,字母B的个数存入count"] 依此类推),输出统计结果,一行输出5个。请填空。#include<stdio.h>#include<stdlib.h>voidmain(){FILE*fp;staticintcount[26]={0};inti;charch;if(①){printf(uCannotopenthefile!\nu);exit(O);)while(!feof(fp)){;if(ch>='A'&&ch<='Z')count[③ 1++:}for(i=0;i<26;i++){if(i%5==0)printf("\n");printf("count[%d]=%-5d",count[i]);}fclose(fp);}5.下面程序的功能是输入两个字符串a和b和一个标志flag,当flag=O时,将b连在a后;当flag=l时,将a连在b后;否则返回空指针。请填空。#include<stdio.h>#include<string.h>char*stradd(char*s,char*t,intf){char*p;if(f==O){P=s;s+=strlen(s);①)elseif(f==l){p=t;while(*t+4-);t-;while(*s)*t++=*s++;②;returnp;}voidmain(){chara[100],bl1OO],*str;intn;printf(nInputstringaandb:\nH);gets(a);gets(b);printf(uInputflag:*');scanf(H%dM,flag);str=stradd(a,b,n);printf(nOutput:%s\nn,str);第二H■一次等级考试第一部分

软件技术基础

(共15分)

一、是非判断题(每小题1分,共io分)1.应用程序在执行过程中,需要通过打印输出数据时,一般先形成一个打印作业,将其存放在硬盘中的一个指定队列中。当打印空闲时,就会按先来后服务的方式从中取出待打印的作业进行打印。(1)

四川省普通高校第33次计算机二级考试辅导资料(C程序设计)2.若无进程牌运行状态,则就绪队列和等待队列均为空。(2)3.多道程序设计是指在一台处理匕进发运行多个程序逻辑。(3)4.黑盒法是软件测试方法中的静态测试方法之一。(4)5.软件的详细设计就是要编写出具体的程序。(5)6.软件生命周期中花费最多的阶段是软件维扩,。(6)7.Windows是单用户多任务操作系统,UNIX是多用户多任务操作系统。(7)8.进程把程序作为它的运行实体,没有程序也就没有进程。(8)9.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表和判定树。(9)10.作业调度程序从后备队列中选•个作业装入主存后,决定能否占用处理机的是设备调度程序。(10)二、单项选择题(1分/小题,共5分)1.交换技术是在(11 )之间交换程序和数据。11(A)主内存与CPU (B)CPU与外设(C)主内存与外存 (D)外存与CPU2.以下的工具中哪个不是软件详细设计中使用的工具(12)o12(A)数据流图(C)PDA图(B)N-S图(D)PDL语言3.任何两个并发进程之间(13)o13(A)一定存在互斥关系(B)一定存在同步关系(C)一定彼此独立无关(D)可能存在同步或互斥关系4.进程从运行状态进入就绪状态的原因可能是(14)o14(A)被选中占有处理机(B)等待某一事件(C)等待的事件已发生(D)时间片用完5.算法指的是(15 ).15(A)计算机程序(B)解决问题的有限运算序列(C)排序算法(D)解决问题的计算方法C与C,第二部分++语言程序设计(共85分)一、单项选择题(每小题1分,共10分)1.以下程序运行后,输出结果是(16).main(){inta=1,b=2,1X1=0,n=0,k;k=(n=b>a)ll(m=a<b);printf("%d,%d\n”,k,m);)(D)1,1(D)416(A)0,0(D)1,1(D)4.以下程序输出的结果是(17),.main(){intm=5;if(m++>5)printf("%d”,m++);elseprintf("%d'',m—);)17(A)7 (B)6 (C)5.下列程序运行的结果是(18)。

main(){inta=10,b=ll,c=42;printf(t4%d\n,;a>c?a:c?(d=a>b):b);10 (D)1210 (D)12,(19)是正确的。(B)switch(a+b)(a++;b++;)switch(a/10+b)(casea+b:++a;break;casea-b:-b;)f2.c组成。.4知」inta,b;下列switch语19(A)switch(a)(casea:a++;break;caseb:b++;bre<)(C)switch(a*b){case1,2:a+b;case3,4:a-b;15.下列程序由两个件fl.c和fl.C文件的内容:#include<stdio.h>#include<f2.c>#defineN3main(){inti;fbr(i=l;i<=N;i++)printf(4t%d;\sum(i));)f2.c文件的内容:sum(intn){intt;staticints=O;fbr(t=l;t<=n;t++)s+=t*t;20)o(B)1,2,3, (C)1,6,20, (D)1,4,9,20)o(B)1,2,3, (C)1,6,20, (D)1,4,9,a,b;若要从键盘输入变量a,b的值,则正确的输入语句是(21)。(B)cin«a«b;(C)cout»a»b;(D)cout«a«b;22)o20(A)1,5,14,同.C++中,有以下定义:int21(A)cin»a»b;.下列程序运行的结果是(#include<stdio.h>#defineswap(x,y){xA=y;yA=x;xA=y;}main(){inta=010,b=l;swap(a,b);printf(t4%d,%d\n'\a,b);}22(A)1,8 (B)8,1 (C)10,1 (D)1,10.以下scanf函数调用中对结构体变量成员的错误引用是(23)。structstudent{charname[20];intage;intsex;}stud[5],*p;p=stud;23 (A) scanf("%s'',stud[O].name); (B)scanf(44%d,,,&stud[0].age);(C) scanf(4t%d,\p->age); (D)scanf(tt%d,\&(p->sex));9.在以下关于构造函数的描述中,错误的是(24)o(A)构造函数可以重载 (B)构造函数可以带缺省形参值(C)构造函数名必须与类同名 (D)构造函数可以带回返回值回.下面对C++函数重载的描述中,错误的是(25)(A)函数名相同 (B)函数参数个数或参数类型至少有一个不同(C)函数参数不可以用缺省值 (D)函数返回值必须不同二、读程序回答问题(每个选择3分,共45分)。.下列程序运行的结果为(26)。#include<stdio.h>voidfun(char*c,intd){*c=*c+l;d=d+1;printf(H%c,%c,H,*c,d);)main(){chara='A\b='a';fun(&b,a);printf(H%c,%c\n';a,b);}26(A)B,a,B,a(B)a,B,a,B(C)A,b,A,b(D)b,B,A,b.下面程序的输出是(27)«include<stdio.h>voidtest(int*u,int*v)int*w;w=u;u=v;v=w;}main()intm=3,n=6,*x=&m,*y=&n;test(x,y);printf(M%d%dn,m,n);)27(A)3 6 (B)6 3 (C)0 0 (D)编译出错.以下程序的输出结果是(28).#include<stdio.h>main(){intx,y;for(x=l,y=1;x<=15;x++){if(y>=20)break;if(y%3==l){y+=3;continue;y-=10;printf("%d,%d\n”,x,y);)28(A)8,22 (B)7,20 (C)6,22 (D)5,204.fun(char*tl,char*t2){intij;while(*t2!=0){for(i=0,j=0;tl[i];i++)if(tl[i]!=*t2)tl[j++]=tl[i];l2++;))main(){chara[]="abcdeH,b[]="aeM;fun(a,b);puts(a);)该程序的输出结果为(29)o29(A)abcde(B)bed(C)abedeae(D)ae.以下程序的输出结果是(30)oinclude<stdio.h>defineFUN(y)2.84+ydefinePR(a)printf(n%dn,(int)(a))definePRINT(a)PR(a);putcharC\n')main(){intx=2;PRINT(FUN(5)*x);}30(A)11 (B)12 (C)14 (D)15.读下列程序,回答问题。#include<stdio.h>voidsort(inta[]){inti,j,t;for(i=0;i<4;i++)for(j=0;j<4-i;j++)if(a[j]>a[j+l]){t=a[j];a[j]=a|j+l];a|j+l]=t;})main(){inta[5]={5,10,-7,3,7),Uj;sort(a);for(i=0;i<=4;i++)printf("%d\nH,a[i]);)关于程序的说法正确的是(3131(A)用选择法对数据按从小到大排列(B)用选择法对数据按从大到小排列

(C)用冒泡法对数据按从小到大排列(D)用冒泡法对数据按从大到小排列7.执行下面程序时输入“Iwillpasstheexam!”,其输出结果是(32)«如果将程序中的scanf("%s”,s)改为gets(s);同样输入“Iwillpasstheexan!”,则程序的输出结果是(33)。include<stdio.h>intfun(chars[]){inti=0;while(s[i]!=^r)i++;returni;)voidmain(){chars[81];printf("Pleaseinputastring:\nn);scanf(n%sn,s);printf(M%d\nn,fun(s));132(A)5 (B)21 (C)1 (D)1733(A)5 (B)21 (C)1 (D)17园.以下是一个C++程序include<iostream.h>classSample{intx,y;public:Sample(){x=y=O;}Sample(inta,intb){x=a;y=b;}voiddisp(){cout«Hx=,,«x«,,y=,,«y«endl;}}voidmain(){Samplesl,s2(2,3);sl.dispO;s2.disp();)⑴该程序主函数中sl.disp。的输出为(34),34(A)x=0y=0(B)x=2y=3(C)x=3y=2(D)x=ly=l(2)该程序主函数中s2.disp()的输出为(35)。35(A)x=0y=0(B)x=2y=3(C)x=3y=2(D)x=ly=l.读下列程序并回答问题。#include<stdio.h>voidfun(int*p,inti,intj){intt;if(ivj){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;fun(p,++i,-j);))main(){inta[]={1,2,345,6}上;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);)(1)程序中的fun函数被调用(36)次。36(A)6 (B)5 (C)4 (D)3(2)程序的运行结果是(37)。37(A)123456 (B)456123 (C)135246 (D)654321.读程序,回答问题。#include<stdio.h>main(intargc,char*argv[]){FILE*fp;intfun(FILE*);intnum,i=l;while("argc>0)if((fp=fopen(argv[i++];'rH))==NULL){printf(HCannotopenfile!\n");exit(O);)else{num=fun(fp);fclose(fp);}printf("num=%d\nn,num);)intfun(FILE*fp){staticintcount=0;charc;c=fgetc(fp);while(c!=EOF){if(c>=,0,&&c<='9,)count++;c=fgetc(fp);)retum(count);}上述C程序经编译、连接后生成一个名为2_3.exe的可执行文件,假设盘上有两个文本文件filel.dal和file2.dat,filel.dat的内容为123abc,file2.dat的内容为xyzABC987。(1)若在DOS提示符下键入:2_3gel.datfile2.datv回车〉,则程序的运行结果为(38)。38(A)num=3(B)num=4(C)num=5(D)num=6(2)若将fun函数中对count的定义staticintcount=0;改为intcount=0;其余条件不变,则在DOS提示符下键入:2_3filel.datfile2.day回车>,则程序的运行结果为(3939(A)num=3(B)num=4(C)num=5(D)num=6(3)若将fun函数中对count的定义staticintcount=0;改为intcount;其余条件不变,则在DOS提示符下键入:2_3filel.datfile2.datv回车>,则程序的运行结果为(4040(A)num=4(B)num=5(C)num=6(D)随机值注意:①请把下面“程序填空”中各小题答案写在主观题答题纸上②每一个空只填一个语句或一个语句所缺的部分内容三、程序填空(每空2分,共30分).以下程序能创建一张包含有4名学生信息的单向链表并输出。include<stdio.h>include<malloc.h>defineLENsizeof(structstudent)structstudent{intdata;© ;};intnum=l;structstudent*creat(){structstudent*head,*pl,*p2;head=p1=p2=(structstudent*)malloc(LEN);scanf(”%d”,&pl->data);while(num<4){pl=(structstudent*)malloc(LEN);scanf(n%dn,&pl->data);② ;p2=pl;num++;)p2->next=NULL;return(head);)main(){structstudent*head,*p;head=creat();p=head;if(head!=NULL)do{printf(M%d0,p->data);© ;}while(p!=NULL);}2.下面程序功能是在一个字符串中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序移动,如:cbyab变成ycbab。include<stdio.h>include<string.h>main(){charstr[80],*p=str,*q,max;gets(p);max=*(p++);while(*p!=O){if(max<*p){max=*p;① ;)P++;)p=q;while(②){*p=*(p-l);p-;}© ;puts(p);)3.以下程序能统计低于平均成绩的人数,并将低于平均成绩的分数存放到below数组中。#include<stdio.h>intfun(intscore[],intm,intbelowf]){inti,k=O,aver=O;fbr(i=O;i<m;i++)© ;aver/=m;for(i=0;i<m;i++)if(score[i]<aver){6 ;k++;}return(k);)main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90);n=^;printf(n%d\nM,n);printf(nBelowtheaveragescoerare:\nH);fbr(i=0;i<n;i++)printf(u%dn,below[i]);)4.下面程序的功能是求出数组a的两条对角线上的元素之和。#include<stdio.h>main(){inta[3][3]={13,6,7,9,11,14,15,17);intsuml=0,sum2=0,ij;for(i=0;i<3;i++)for(j=0;j<3;j++)if@)suml+=a[i][j];for(i=0;i<3;i++)for@;③;j-)if(i+j==2)sum2+=a[i皿;printf(Msuml=%d,sum2=%d\nn,sum1,sum2);)5.将三个职工的数据(编号,姓名,年龄)从键盘输入,存放到一个新建的二进制文件employee中去。#include<stdio.h>main(){FILE*fp;structemployee{longcode;charname[20];intage;Jem;intk;if((fp=fopen("employee”,①))==NULL){printf("error\rT);exit(O);)for(k=0;kv3;k++)四川省普通高校第33次计算机二级考试辅导资料(C程序设计){scanf("%ld%s%d",&em.code,,&em.age);fwrite((2),sizeof(structemployee),®,fp);)fclose(fp);return(l);第二十二次等级考试第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B)TOC\o"1-5"\h\z目C++语言中所定义的类实际上也是一种数据类型。 (1).数据结构的表示包括数据逻辑结构和存储结构两方面的表示。 (2).冒泡排序算法是一种只能实现升序排序,而不能实现降序排序的排序算法。 (3).线性表采用链式存储时,结点的存储地址必须是连续的。 (4)5,栈顶的位置是随着进栈和退栈操作而变化的。 (5).在软件生存期内,软件必须进行维护,维护不会产生副作用。 (6).采用动态重定位进行地址转换,允许程序在执行过程中在内在中移动。而静态重定位则不可以。26PTOC\o"1-5"\h\z(7 ).在软件的需要分析阶段,要直接面向用户,主要考虑用户的经济承受能力和费用的支付问题。(8 ).需求分析阶段的主要任务应由系统分析员主持完成。 (9 ).操作系统是最重要的系统软件。 (10)二、选择题(每小题1分,共5分)以下特征中哪个不是算法的特征(II)o(A)可行性(B)确定性(C)有穷性 (D)唯一性2.在多道程序设计系统中,处于后备状态的作业要经过(12)调度后才能真正执行。12(A)作业调度 (B)作业调度和进程调度(C)进程调度 (D)作业调度和设备调度3.为解决CPU和I/O设备之间速度匹配问题,常采用“缓冲区”方法。“缓冲区”的结构多为(13).13(A)顺序栈(B)链栈(C)顺序队列 (D)循环队列4.对象实现了数据和操作的结合,使数据和操作(14)于对象的统一体中。14(A)结合 (B)程序的效率(C)封装 (D)抽象5.结构化程序设计主要强调的是(15)o15(A)程序易读性 (B)程序的效率(C)程序设计语言的先进性 (D)程序的规模第二部分C与C++语言程序设计

供85分)一、单项选择题(每小题1分,共10分).下列程序运行的结果是(16)#include<stdio.h>voidswap(intx,inty){xA=y;yA=x;xA=y;}main(){inta=010,b=l;swap(a,b);primf("%d,%d\n”,a,b);}16(A)10,1 (B)8,1 (C)1,8 (D)1,10.有以下程序include<malloc.h>include<stdio.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf(n%s%s",p,q);printf(H%s,%sH,p,q);)若输入:abcdef〈回车〉,则输出为(17)。17(A)def,def (B)abc,def (C)abc,d (D)d,d司.下列程序的输出是(18)。#include<iostream.h>voidmain(){inta=-l,b=4,k;

四川省普通高校笫33次计算机二级考试辅导资料(C程序设计)k=(a++<=0)&&(!(b-<=0));cout«k«a«b«endl;18(A)003 (B)103 (C)112 (D)0124.关于类概念的描述中,(19)是错误的。19(A)类就是C19(A)类就是C语言中的结构体类型(C)类是具有共同行为的若干对象的25.下列程序的运行结果是(20)。#include<stdio.h>main(){voidfu();fu();fu();)voidfu(){staticinta=0;printf(Ma=%d,M,!a?1:8);)20(A)a=8,a=8, (B)a=l,a=86.以下程序中,输出值是(21)。include<stdio.h>defineM3defineNM+1defineNNN*N/2main(){printf(M%d\n'\NN);)21(A)3 (B)47.若有语句:charsl[]="stringl",s2[8],*s3,*i(B)类是创建对象的样板(D)类是抽象数据类型的实现(C)a=8,a=1, (D)a=1,a=1,(C)6 (D)8tring2M;则(22)是对库函数strcpy的错误调用。22(A)strcpy(sl,Mstring2H); (B)strcpy(s4,''stringln);(C)strcpy(s3,Mstringl"); (D)strcpy(Hstring2",s2);8.以下(23)为不正确的if语句。23(A)if(x>y); (B)if(x=y)x+=y;(C)if(x!=y)x=x*xelsex+=1; (D)if(x<y){x++;y++;}目.关于C++函数参数的描述中,错误的是(24)。24(A)实参个数与形参个数可以不同 (B)缺省参数必须放在形参表的最右端(C)用引用变量作形参可以实现地址传递(C)用引用变量作形参可以实现地址传递(D)前载函数可以有缺省参数10.若有如下定义:structnode{intdata;structnode"next;)且已建立下面的链表结构,指针p,q分别指向图中所示结点,则不能将q所指结点插入链表末尾的一组语句是(25)。

headq4625(A)q->next=NULL;p=p->next;p->next=q;p=p->next;q->next=p;p->next=q;(B)p=p->next;q->next=p->next;p->next=q;p=(*p).next;(*q).next=(*p).next;(*p).next=q;二、读程序回答问题(每个选择3分,共45分).下列程序运行的结果为(26)«include<stdio.h>include<string.h>voidfun(char*s,intm){chart,*pl,*p2;pl=s;p2=s+m-1;while(pl<p2){t=*pl++;*pl=*p2—;*p2=t;})main(){chara[]=,,ABCDEFG";fun(a,strlen(a));puts(a);}(C)GAGGAGA(D)AGAAGAG26(A)GFEDCBA(B)AGADAGA2.读下列C程序,选择正确的输出结果。(C)GAGGAGA(D)AGAAGAGinclude<stdio.h>include<string.h>voidfun(charstr[][10],intn){chart[20];inti,j;fbr(i=0;i<n-1;i++)for(j=i+l;jvn;j++)if(strlen(str[i])<strlen(str[j]))(strcpy(t,str[i]);strcpy(str[i],str[j]);strcpy(str|j],t);})main(){charstr[][10]={,,abc,';,aabcdn,,,abed,,,,,a,,,,'acdefgn};inti;fun(str,5);for(i=0;i<5;i++)printf("%2d",strlen(str[i]));printf(M\nM);for(i=0;i<5;i++)puts(str[i]);)(1)main函数中,第一个for循环的输出结果为:(27)°27(A)65431(B)13456 (C)76542(D)24567(2)main函数中,第二个for循环的输出结果为:(2828(A)abc(B)a (C)acdefg(D)aaabcdabc aabcdabcabedabed abedaabcdaaabcd abcabedacdefgacdefg aaabcd四川省普通高校第33次计算机二级考试辅导资料(C程序设计)性以下是一个C++程序,读程序并回答问题。#include<iostream.h>intfun(intu,intv){inttemp;while(v!=O){temp=u%v;v=temp;)returnu;)voidmain(){intu,v;intt;cout«nInputtwointegers:n;cin»u»v;t=fun(u,v);cout«t«endl;cout«u*v/t«endl;)若从键盘中输入1015;回答下列两个问题:(1)第一条输出语句的输出结果为(29)o29(A)5 (B)10 (C)15 (D)30(2)第二条输出语句的输出结果为(3030(A)5 (B)10 (C)15 (D)30.以下程序的运行结果是(31).#include<stdio.h>chang(char*c,intfg){if(*c=='*)return1;elseif(fg&&*c<=*z,&&*c>=a')*c+=A'-'a';return0;)main(){intflag=l;charch;do{ch=getchar();flag=chang(&ch,flag);putchar(ch);}while(ch!=,\n,);)程序运行时,从第一列开始输入以下字符,<CR>代表换行符。Thisisabook!<CR>31(A)tHISISABOOK!(B)thisIsABook!(C)ThisIsABook!(D)ThisIsaBook!.以F程序的运行结果是(32):#include<stdio.h>main(){inta=l,b=2,c=3;a++;c+=b;{intb=4,c;c=2*b;a+=c;printf("%d,%d,%d;',a,b,c);)printf(M%d,%d,%d\n';a,b,c);132(A)10,4,8,10,2,5 (B)62,4,6,2,4 (C)10,4,8,10,2,8 (D)94,8,2,2,5.以下程序的输出是(33)(>#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;)case2:a++;b++;break;case3:a++;b++;)printf("a=%d,b=%d\nn,a,b);}33(A)a=l,b=0 (B)a=2,b=l (C)a=l,b=l (D)a=2,b=27.若有以下程序段:inta[]={4,0,2,3,l),k,j,t;for(j=l;j<5;j++){t=a[j];k寸1;while(k>=0&&t>a[k]){a[k+l]=a[k];k-;)a[k+l]=t;)则该程序段的功能是(34)。34 (A)对数组a进行插入排序(升序) (B)对数组a进行插入排序(降序)(C)对数组a进行选择排序(升序) (D)对数组a进行选择排序(降序).选择下面程序运行的结果。#include<stdio.h>intm[3][3]={{l},{2},{3});intn[3][3]={1,2,3);main(){printf(M%d\n,,,m[l][0]+n[0][0]);printf(M%d\nn,m[0][l]+n[l][0]);)第1条printf语句行输出的结果是(35)«35(A)0 (B)1 (C)2 (D)3第2条primf语句行输出的结果是(36)o36(A)0 (B)1 (C)2 (D)3.选择下面程序运行的结果(设int占2个字节)#include<stdio.h>main(){structdate{intyear,month,day;}today;union{longi;intk;charc;}mix;printf(Mdate=%d\nn,sizeof(structdate));printf("mix=%d\n,\sizeof(mix));)第1条printf语句行输出的结果为(37)«(D)前3个答案都是错误的(D)(D)前3个答案都是错误的(D)前3个答案都是错误的第2条printf语句行输出的结果为(38).38(A)mix=2 (B)mix=4 (C)mix=6.读下面程序,程序的命名为MyCopy.c。/* MyCopy.c */#include<stdio.h>main(intargc,char*argv[]){if(argc!=3)printf("\nFormat:MyCopy<source_file><(lesine_file>\nM);else{FILE*source,*desine;source=fopen(argv[1],"rb");desine=fopen(argv⑵Jwb");if(source=NULL)printf(,,ERROR:Can'topensourcefile%s!\n'\argv[l]);elseif(desine==NULL)printf("ERROR:Can,topensourcefile%s!\nM,argv[2]);else{while(!feof(source))fputc(fgetc(source),desine);}fclose(source);fclose(desine);})(1)程序的功能是(39),40(A)将磁盘文件的信息显示在屏幕上 (B)将一个磁盘文件复制到另一个磁盘文件中(C)将两个磁盘文件合并 (D)以上答案都不对(2)当编译、连接后,在命令行键入:MyCopyFILElFILE2〈回车〉,则程序将实现(40)»41(A)将FILE1的信息显示在屏幕上 (B)将HLE1和FILE2合并(C)将一个FILE2复制到FILE1中 (D)将一个FILE1复

温馨提示

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

评论

0/150

提交评论