二级C语言笔试真题及答案 (28)
二级C语言笔试真题及答案(考试时间120分钟,满分100分)一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)第一台电子数字计算机ENIAC诞生于A)1927年B)1936年C)1946年D)1951年(2)用FORTRAN语言编制的源程序要变为目标程序,必须经过A)汇编B)解释C)编辑D)编译(3)计算机软件一般包括系统软件和A)字处理软件B)应用软件C)管理软件D)科学计算机软件(4)计算机内使用的数是A)二进制数B)八进制数C)十进制数D)十六进制数(5)目前微型机常用的5.25寸双面高密度软盘的容量是A)360KBB)1.44MBC)760KBD)1.2MB(6)具有多媒体功能的微机系统常用CD-ROM作为外存储器,它是A)只读内存储器B)只读大容量软盘C)只读硬盘D)只读光盘说明:(7)到(17)题给定的条件如下:微机系统有A和B两个容量相同的软盘驱动器,硬盘C的目录结构为C:根目录AUTOEXEC.BATCOMMAND.COMDOSDISKCOPY.COMFORMAT.COMABC.TXTXY.TXTF4XD2.EXEXD1.EXEJD2.FORJD1.FOR文件AUTOEXEC.BAT的内容为PROMPT$P$GCDF4CDDOS(7)微机系统用硬盘C启动后,当前系统提示符是A)C:>B)C:DOS>C)C:F4>D)C>(8)在用C盘启动后,把A盘格式化成系统盘的命令为A)FORMATA:B)FORMATA:/SnC)DOSFORMATA:/SD)DOSFORMATA:S(9)设当前盘为C盘,C盘当前目录为DOS。把JD1.FOR和JD2.FOR连接起来后存入A盘根目录下,命名为JD3.FOR,应使用命令A)COPYJD1.FOR+JD2.FORA:JD3.FORB)COPYF4JD1.FOR+JD2.FORA:JD3.FORC)COPYF4JD1.FOR+F4JD2.FORA:JD3.FORD)COPYF4JD1.FOR+F4JD2.FORJD3.FOR(10)设当前盘为C盘,C盘当前目录为DOS。把FORMAT.COM和DISKCOPY.COM两个命令文件复制到A盘上的命令为A)COPYDOS*.*A:B)COPY*.COMA:C)COPYDOS*.*A:D)COPYDOS*.COMA:(11)列出硬盘C上所有扩展名为.FOR文件的命令是A)DIR*.FORB)DIRC:F4*.FORC)DIRC:*.FORD)DIRC:F4*.*(12)把A盘的所有信息复制到B盘上的命令为A)COPYA:*.*B:B)COPYA:*.*B:*.*C)C:DOSDISKCOPYA:B:D)C:DOSDISKCOPYB:A:(13)设当前盘为C盘。删除硬盘C上的两个扩展名为.EXE文件的命令是A)DELF4*.EXEB)DELXD?.EXEC)DELF4*.*D)DEL*.EXE(14)设当前盘为C盘。C盘当前目录为DOS。在硬盘C的根目录下建立新子目录USER的命令为A)MDC:USERB)MDUSERC)MDUSERD)MDUSER(15)设当前盘为C盘,C盘当前目录为根目录。在硬盘C上删除子目录F4的命令或命令组为A)RDF4B)RDF4C)DELF4*.*D)DEL*.*RDF4RDF4(16)设当前盘为C盘,C盘当前目录为根目录。把JD1.FOR改名为JX1.FOR的命令为A)RENJD1.FORJX1.FORB)RENJX1.FORJD1.FORC)RENF4JD1.FORJX1.FORD)RENF4JX1.FORJD1.FOR(17)显示C盘根目录下所有.TXT文件内容的命令为A)TYPEC:*.TXTB)TYPEC:*.TXT>CONC)COPYC:*.TXT>COND)COPYC:*.TXTCON(18)按照数据模型分类,FoxBASE和dBASE是属于A)层次型B)网状型C)关系型D)混合型(19)FoxBASE和dBASE命令文件的扩展名为A).PRGB).DBFC).MEMD).TXT(20)“计算机等级考试”这七个汉字作为字符串常量,在FoxBASE和dBASE中,可以表示为A){计算机等级考试}B)(计算机等级考试)C)计算机等级考试D)“计算机等级考试”(21)请选出可用作C语言用户标识符的一组标识符A)voidB)a3_b3C)ForD)2andefine_123-abcDOWORDIFCasesizeof(22)设inta=12,则执行完语句a+=a-=a*a后,a的值是A)552B)264C)144D)-264(23)C语言程序的基本单位是A)程序行B)语句C)函数D)字符(24)请选出合法的C语言赋值语句A)a=b=58B)i++;C)a=58,b=58D)k=int(a+b);(25)执行下面程序片段的结果是intx=23;do{printf("%2d",x--);}while(!x);A)打印出321B)打印出23C)不打印任何内容D)陷入死循环(26)请选出以下语句的输出结果printf("%dn",strlen("t" 65xffn"));A)5B)14C)8D)输出项不合法,无正常输出(27)设有如下的函数ggg(x)floatx;{printf("n%d",x*x);}则函数的类型A)与参数x的类型相同B)是voidC)是intD)无法确定(28)设有如下枚举类型定义:enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};枚举量Fortran的值为A)4B)7C)102D)103(29)若有以下说明和语句,请选出哪个是对c数组元素的正确引用intc[4][5],(*cp)[5];cp=c;A)cp+1B)*(cp+3)C)*(cp+1)+3D)*(*cp+2)(30)标准函数fgets(s,n,f)的功能是A)从文件f中读取长度为n的字符串存入指针s所指的内存B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C)从文件f中读取n个字符串存入指针s所指的内存D)从文件f中读取长度为n-1的字符串存入指针s所指的内存(31)设有如下一段程序:int*var,ab;ab=100var=&ab;nab=*var+10;执行上面的程序后,ab的值为A)120B)110C)100D)90(32)以下程序段给数组所有的元素输入数据,请选择正确答案填入。#include
main(){inta[10],i=0;while(i<10)scanf("%d",________);┇}A)a+(i++)B)&a[i+1]C)a+iD)&a[++i](33)设有如下的程序段:charstr[]="Hello";char*ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为A)'o'B)' 'C)不确定的值D)'o'的地址(34)在宏定义#definePI3.14159中,用宏名PI代替一个A)单精度数B)双精度数C)常量D)字符串(35)字符(char)型数据在微机内存中的存储形式是A)反码B)补码C)EBCDIC码D)ASCII码(36)执行下面的程序段intx=35;charz='A';intb;B=((x&15)&&(z<'a'));后,B的值为A)0B)1C)2D)3(37)C语言规定,程序中各函数之间A)既允许直接递归调用也允许间接递归调用B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用不允许间接递归调用D)不允许直接递归调用允许间接递归调用(38)假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式的表达式是A)1/a*b*cB)1/(a*b*c)C)1/a/b/(float)cD)1.0/a/b/c(39)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是A)pb=&xB)pb=x;C)*pb=&x;D)*pb=*x(40)设有staticcharstr[]="Beijing";n则执行printf("%dn",strlen(strcpy(str,"China")));后的输出结果为A)5B)7C)12D)14(41)设有如下程序:#includemain(){int**k,*j,i=100;j=&i;k=&j;printf("%dn",**k);}上面程序的输出结果是A)运行错误B)100C)i的地址D)j的地址(42)设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为A)1B)2C)3D)4(43)下面函数的功能是sss(s,t)char*s,*t;{while((*s)&&(*t)&&(*t++==*s++));return(*s-*t);}A)求字符串的长度B)比较两个字符串的大小C)将字符串s复制到字符串t中D)将字符串s接续到字符串t中(44)请选出以下程序的输出结果#includesub(x,y,z)intx,y,*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%dn",a,b,c);}A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7(45)下面程序的输出结果是#includemain(){inti=2,p;p=f(i,i+1);printf("%d",p);n}intf(a,b)inta,b;{intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}A)-1B)0C)1D)2(46)请选出以下程序段的输出结果#include#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf("%dn",k);}A)15B)100C)10D)150(47)请选出以下程序段的输出结果#includemain(){charsl[10],s2[10],s3[10],s4[10];scanf("%s%s",s1,s2);gets(s3);gets(s4);puts(s1);puts(s2);puts(s3);puts(s4);}输入数据如下:(此处代表回车符)aaaabbbbccccddddA)aaaaB)aaaaC)aaaaD)aaaabbbbbbbbbbbbbbbbccccccccccccddddddddccccddddddddeeee(48)请选出以下程序的输出结果#includefun(s,n1,n2)int*s,n1,n2;{inti,j,t;i=n1;j=n2;while(imain(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("n");}sub(s,y)int*s,y;{staticintt=3;y=s[t];t--;}A)1234B)4321C)0000D)4444(50)下面程序的输出结果为structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};main(){p=aa;printf("%dn",++p->x);printf("%dn",(++p)->x);printf("%dn",++(*p->y));}A)10B)50C)51D)602060607020212131n二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。(1)十进制数123用八位二进制表示为【1】。(2)70年代末开始出现16位微处理器,标志着微型计算机进入了第三代;80年代起使用【2】位微处理器,标志微型计算机进入了第四代。(3)通用计算机操作系统的功能和任务是:作业管理、文件管理、外设管理、CPU管理和【3】管理。(4)PC-DOS的两个隐含文件是:IBMBIO.COM(输入输出程序)与【4】(磁盘操作管理程序)。(5)FoxBASE和dBASE有两种变量:即内存变量和【5】变量。(6)设有如下程序段:inti=0,sum=1;do{sum+=i++;}while(i<6);printf("%dn",sum);上述程序段的输出结果是【6】。(7)阅读下列程序:#includemain(){inti,j,row,column,m;staticintarray[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};m=array[0][0];for(i=0;i<3;i++)for(j=0;j<3;i++)if(array[i][j]main(){inta=3,b=2,c=1;c-=++b;b*=a+c;n{intb=5,c=12;c/=b*2;a-=c;printf('%d,%d,%d,",a,b,c);a+=--c;}printf('%d,%d,%d,",a,b,c);}(10)设有如下程序:#includemain(argc,argv)intargc;char*argv[];{while(--argc>0)printf("%s",argv[argc]);printf("n");}假定上述程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROGABCDEFGHIJKL,则输出结果为【10】。(11)阅读下列程序:#include#defineMAX_COUNT4voidfun();main(){intcount;for(count=1;count<=MAX_COUNT;count++)fun();}voidfun(){staticinti;i+=2;printf("%d",i);}上述程序的输出结果是【11】。(12)设有下列程序:#include#includemain(){inti;charstr[10],temp[10];gets(temp);for(i=0;i<4;i++){gets(str);if(strcmp(temp,str)<0)strcpy(temp,str);}printf("%sn",temp);}n上述程序运行后,如果从键盘上输入(在此代表回车符):C++BASICQuickCAdaPascal则程序的输出结果是【12】。(13)设有如下程序:#includemain(argc,argv)intargc;char*argv[];{FILE*fp;voidfc();inti=1;while(--argc>0)if((fp=fopen(argv[i++],"r"))==NULL){printf("Cannotopenfile!n");exit(1);}else{fc(fp);fclose(fp);}}voidfc(ifp)FILE*ifp;{charc;while((c=getc(ifp))!='#')putchar(c-32);}上述程序经编译、连接后生成可执行文件名为cpy.exe。假定磁盘上有三个文本文件,其文件名和内容分别为:文件名内容aaaaa#bbbbb#ccccc#如果在DOS下键入cpyabc则程序输出【13】。(14)若输入3个整数3,2,1,则下面程序的输出结果是【14】。#includevoidsub(n,uu)intn,uu[];{intt;t=uu[n--];t+=3*uu[n];n=n++;if(t>=10)n{uu[n++]=t/10;uu[n]=t%10;}elseuu[n]=t;}main(){inti,n,aa[10]={0,0,0,0,0,0}scanf("%d%d%d",&n,&aa[0],&aa[1]);for(i=1;i#includemain(){intnum[26],i;charc;for(i=0;i<26;i++)num[i]=0;while(【17】!='#')/*统计从终端输入的大写字母个数*/if(isupper(c))num[c-65]+=1;for(i=0;i<26;i++)/*输出大写字母和该字母的个数*/if(num[i])printf("%c:%dn,i【18】,num[i]);}(17)下面的程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,调用outone函数输出此动态存储单元中的数据。请填空。#includegetone(s)int**s;{*s=(int*)malloc(sizeof(int));}assone(a)int*a;{scanf("%d",【19】);}outone(b)int*b;printf("%dn",【20】);}main(){int*p;getone(&p);assone(p);outone(p);}n『完』1995年二级C笔试试卷参考答案一`选择题((1)~(40)题每题1分,(41)~(50)题每题2分,共60分)(1)C(2)D(3)B(4)A(5)D(6)D(7)B(8)C(9)C(10)A(11)B(12)C(13)A(14)C(15)C(16)C(17)D(18)C(19)A(20)D(21)B(22)D(23)C(24)B(25)B(26)A(27)C(28)C(29)D(30)B(31)B(32)A(33)B(34)D(35)D(36)B(37)A(38)D(39)A(40)A(41)B(42)B(43)B(44)B(45)A(46)A(47)A(48)C(49)C(50)C二`填空题(每空2分,共40分)(1)01111011(2)32(3)内存或存储器或存储(4)IBMDOS.COM允许用小写字母(5)字段或字段名(6)16(7)-850,2,0若遗漏逗号扣1分(8)28(9)2,5,1,2,3,-2若遗漏逗号扣1分(10)IJKLEFGHABCD若在字符间嵌入空格扣1分若在字符间嵌入空格扣1分(12)QuickC若大写字母写成小写字母,或小写字母写成大写字母扣1分(13)AAAABBBBCCCC若在字符间嵌入空格扣1分若用小写字母扣1分(14)2721或2721(15)9(16)0(17)(c=getchar())注意,外层括号不得遗漏(18)+65或+'A'(19)a或&*a(20)*b