1994-2010全国计算机等级考试二级c语言笔试试题(含参考答案)_第1页
1994-2010全国计算机等级考试二级c语言笔试试题(含参考答案)_第2页
1994-2010全国计算机等级考试二级c语言笔试试题(含参考答案)_第3页
1994-2010全国计算机等级考试二级c语言笔试试题(含参考答案)_第4页
1994-2010全国计算机等级考试二级c语言笔试试题(含参考答案)_第5页
已阅读5页,还剩386页未读 继续免费阅读

下载本文档

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

文档简介

94-10年全国计算机等级考试二级笔试试题附赠答案

全国计算机等级考试二级笔试试题根底知识与C语言程序设计(考试时间120分钟,总分值100分)1994年4月一、选择题(1-30每题1分,31-45每题2分,共60分)以下各题A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。答在试卷上不得分。二进制数101110转换为等值的八进制数是【1】。【1】A)45 B)56 C)67 D)78CPU是由【2】组成的。【】【2】 A)内存储器和控制器 B)控制器和运算器 C)内存储器和运算器 D)内存储器、控制器和运算器DOS是为IBMPC系列微型计算机及其兼容机所配置的【3】磁盘操作系统。【3】 A)多用户多任务 B)单用户单任务 C)分时 D)分布式启动MS-DOS操作系统后,【4】已驻留内存。【4】 A)COMMAND B)DISKCOPYC)FORMATD)CCCC.EXE设驱动器B中软盘上的目录结构如以下图所示。B:\B:\根目录F22子目录F1子目录F2子目录F3子目录F21子目录F11子目录FA.TXTFB.BASFC.TXT设当前目录为F2,那么把A盘根目录下的PROG.BAS文件复制到B盘F3子目录中的命令是【5】。【5】 A)COPYPROG.BASB: B)COPYA:PROG.BASB:\ C)COPYA:\PROG.BASB:\F3 D)COPYA:PROG.BASB:\F3\下面四组DOS命令中,意义完全相同的一组是【6】。【6】 A)COPY和DISKCOPY B)COMP和DISKCOMP C)DEL和RD D)RENAME和REN防止软盘感染病毒的有效方法是【7】。【7】 A)不要把软盘和有毒软盘放在一起B)在写保护缺口上贴上胶条 C)保持机房清洁D)定期对软盘格式化双面高密度5英寸软磁盘的容量是【8】。【8】 A)360KB B)720KB C)1.2MB D)1.44MB在FOXBASE中,可以使用的两类变量是【9】。【9】 A)内存变量和字段变量 B)全局变量和局部变量 C)字段变量和简单变量 D)内存变量和自动变量建立一个新子目录的DOS命令是【10】。【10】 A)CREATE B)RD C)MD D)CD在C语言中,如果下面的变量都是int类型,那么输出的结果是【11】。sum=pad=5;pAd=sum++,pAd++,++pAd;printf("%d\n",pad);【11】 A)7 B)6 C)5 D)4以下程序的输出结果是【12】。#include<stdio.h>main(){inti=010,j=10;printf("%d,%d\n",++i,j--);}【12】 A)11,10 B)9,10 C)010,9 D)10,9在ASCII代码中,字母A的序号为65,以下程序的输出的结果是【13】。#include<stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);}【13】A)因输出格式不合法,输出错误信息B〕65,90C〕A,YD〕65,89指针s所指字符串的长度为【14】。char*s="\\"Name\\Address\n";【14】 A)19 B)15 C)18 D) 说明不合法设有说明int(*ptr)[m];其中的标识符ptr是【15】。【15】 A〕M个指向整型变量的指针 B〕指向M个整型变量的函数指针 C〕一个指向具有M个整型元素的一维数组的指针 D〕具有M个指针元素的一维指针数组,每个元素都只能指向整型量语句while(!E);中的条件!E等价于【16】。【16】 A〕E==0B〕E!=1C〕E!=0D〕~E以下程序的输出结果是【17】。#include<stdio.h>main(){printf("%d\n",NULL);}【17】 A)不确定的〔因变量无定义〕B〕0C〕-1D〕1以下函数调用语句中含有【18】个实参。func((exp1,exp2),(exp3,exp4,exp5));【18】 A)1 B)2 C)4 D)5设有以下语句:chara=3,b=6,c;c=a^b<<2;那么c的二进制值是【19】。【19】 A)00011011B〕00010100C〕00011100D〕00011000下面的程序中【20】有错误〔每行程序前面的数字是行号〕。1#include<stdio.h>2main()3{4floata[3]={0,0};5inti;6for(i=0;i<3;i++)scanf("%d",&a[i]);7for(i=1;i<3;i++)a[0]=a[0]+a[i];8printf("%f\n",a[0]);9}【20】 A)没有 B〕第4行C〕第6行D〕第8行设有语句inta=3;那么执行了语句a+=a-=a*a;后,变量a的值是【21】。【21】 A〕3 B〕0 C〕9 D〕-12以下的for循环【22】。for(x=0,y=0;(y!=123)&&(x<4);x++);【22】A)是无限循环B〕循环次数不定C〕执行4次D〕执行3次设有语句chara='\72';那么变量a【23】。【23】A〕包含1个字符B〕包含2个字符C〕包含3个字符D〕说明不合法以下程序的输出结果是【24】。#include<stdio.h>#include<math..h>main(){inta=1,b=4,c=2;floatx=10..5,y=4.0,z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;pritnf("%f\n",z);}【24】A)14.000000B)015.400000C)13.700000D)14.900000sizeof(double)是【25】。【25】 A〕一种函数调用 B〕一个双精度型表达式 C〕一个整型表达式 D〕一个不合法的表达式C语言中【26】。【26】 A〕不能使用do-while语句构成的循环 B〕do-while语句构成的循环必须用break语句才能退出 C〕do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D〕do-while语句构成的循环,当while语句中的表达式值为零时结束循环以下程序的输出结果是【27】。#include<stdio.h>#include<string.h>main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}【27】 A)6 B)7 C)11 D)12以下程序的输出结果是【28】。#include<stdio.h>main(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}【28】A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%d以下程序的输出结果是【29】。#include<stdio.h>main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}【29】 A)6,1 B)2,1 C)6,0 D)2,0以下程序的输出结果是【30】。#include<stdio.h>main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elsecontinue;printf("#");}printf("$\n");}【30】 A)*#*#*#$ B)#*#*#*$C)*#*#$ D)#*#*$以下for语句构成的循环执行了【31】次。#include<stdio.h>#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){inti,n=0;for(i=1;i<=NUM;i++);{n++;printf("%d",n);}printf("\n");}【31】 A)5 B)6 C)8 D)9设有以下语句,那么【32】不是对a数组元素的正确引用,其中0≤i<10。inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;【32】 A)a[p-a]B)*(&a[i]) C)p[i] D)*(*(a+i))有以下程序:#include<stdio.h>#defineN6main(){charc[N];inti=0;for(;i<N;c[i]=getchar(),i++);for(i=0;i<N;putchar(c[i]),i++);}输入以下三行,每行输入都是在第一列上开始,<CR>代表一个回车符:a<CR>b<CR>cdef<CR>程序的输出结果是【33】。【33】 A)abcdef B)aC)aD)abbbccdcdefdef以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。#include<stdio.h>findmax(s,t,k)int*s,t,*k;{intp;for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])_________;}main(){inta[10],i,k;for(i=0;i<10;i++)scanf("%d",&a[i]);findmax(a,10,&k);printf("%d,%d\n",k,a[k]);}【34】 A)k=p B)*k=p-sC)k=p-sD)*k=p有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的输出结果是【35】。〔注意:ch[0]在低字节,ch[1]在高字节。〕【35】 A)13 B)14C)208 D)209有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+2);break;}}printf("\n");}从第一列开始输入以下数据,<CR>代表一个回车符。2743<CR>程序的输出结果是【36】。【36】 A)668977B)668966C)6677877D)6688766以下程序的输出结果为【37】。main(){char*alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);printf("\n");}【37】A)ABCDEFGHIJKLB)ABCDC)ABCDEFGHIJKLMNOPD)AEIM以下程序的输出结果是【38】。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}【38】 A)11 B)12 C)13 D)15以下程序的输出结果是【39】。#include<stdio.h>main(){inti=1,j=3;printf("%d",i++);{inti=0;i+=j*2;printf("%d,%d",i,j);}printf("%d,%d\n",i,j);}【39】 A)1,6,3,1,3B)1,6,3,2,3C)1,6,3,6,3D)1,7,3,2,3以下程序的输出结果是【40】。#include<stdio.h>main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(a,b)inta,b;{staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}【40】 A)8,17 B)8,16 C)8,20 D)8,8设有以下语句:charstr[4][12]={"aaa","bbbb","ccccc","dddddd"},*strp[4];inti;for(i=0;i<4;i++)strp[i]=str[i];【41】不是对字符串的正确引用,其中0≤k<4。【41】 A)strp B)str[k] C)strp[k] D)*strp设有以下语句:charstr1[]="string",str2[8],*str3,*str4="string";那么【42】不是对库函数strcpy的正确调用,此库函数用业复制字符串。【42】 A)strcpy(str1,"HELLO1");B)strcpy(str2,"HELLO2"); C)strcpy(str3,"HELLO3");D)strcpy(str4,"HELLO4");C语言中形参的缺省存储类别是【43】。【43】A〕自动(auto)B〕静态(static)C〕存放器(register)D〕外部(extern)设有以下语句:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];那么表达式【44】的值是6。【44】 A〕p++->nB)p->n++C)(*p).n++D)++p->n以下四个程序中,【45】不能对两个整型变量的值进行交换。【45】A〕#include<stdio.h>main(){inta=10,b=20;swap(&a,&b);printf("%d%d\n",a,b);}swap(p,q)int*p,*q;{int*t;t=(int)malloc(sizeof(int));t=p;*p=*q;*q=*t;}B)#include<stdio.h>main(){inta=10,b=20;swap(&a,&b);printf("%d%d\n",a,b);}swap(p,q)intp,q;{int*t;t=*p;*p=*q;*q=t;}C)#include<stdio.h>main(){int*a,*b;*a=10,*b=20;swap(a,b);printf("%d%d\n",*a,*b);}swap(p,q)int*p,*q;{intt;t=*p;*p=*q;*q=t;}D)#include<stdio.h>main(){inta=10,b=20;intx=&a,y=&b;swap(x,y);printf("%d%d\n",a,b);}swap(p,q)int*p,*q;{intt;t=*p;*p=*q;*q=t;}二、填空题〔每空2分,共40分〕请将每空的正确答案写在答题卡1-20序号后的横线上,答在试卷上不得分。结构化程序设计所规定的三种根本控制结构是【1】结构.选择结构和循环结构。在七位ASCII码中,除了表示数字、英文大小写字母外,还有【2】个其它符号。把B盘BAS子目录下第三个字符为A,且没有扩展名的全部文件拷贝到C盘ABC子目录下的命令是【3】。微机中ROM的中文意义是【4】存储器。启动MS-DOS系统后,能自动执行的批处理文件是【5】.BAT。设当前盘为C盘,删除B盘FOX子目录中扩展名为.TXT的所有文件的命令是【6】。十进制数53转换为十六进制数为【7】。数据库管理系统常见的数据模型有层次、网状和【8】三种。买来一张新盘后,在存入文件前,必须进行【9】处理。在微机中,字符的比拟就是对它们的【10】码进行比拟。以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。#include<stdio.h>main(argc,argv)intargc;char*argv[];{FILE*f1,*f2;charch;if(argc<【11】){printf("Parametersmissing!\n");exit(0);}if(((f1=fopen(argv[1],"r"))==NULL)||((f2=fopen(argv[2],"w"))==NULL)){printf("Cannotopenfile!\n");exit(0);}while(【12】)fputc(fgetc(f1),f2);fclose(f1);fclose(f2);}以下程序中的trap函数是一个用梯形法求定积分的通用函数。梯形法求定积分的公式为:n-1a-bs=((f(a)+f(b))/2+∑f(a+i*h))*h,h=|----|i=1n其中,n为积分小区间数。以下程序调用trap函数求定积分,被积函数是:f(x)=x*x+3*x+2,且n=1000,a=0,b=4。#include<stdio.h>3include<math.h>doubletrap(fun,a,b)double(*fun)(),a,b;{doublet,h;inti,n=1000;t=0.5*((*fun)(a)+(*fun)(b));h=fabs(a-b)/(double)(n);for(i=1;i<=n-1;i++)t=t+【13】;t=t*h;return(t);}doublemypoly(x)doublex;{return(x*x+3.0*x+2.0);}main(){doubley,(*pf)();pf=【14】;y=trap(pf,0.0,4.0);printf("%f\n",y);}以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。#include<stdio.h>main(){inti,a[10],*p=a,sum=0;printf("Enter10num:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if(isprime(*(p+【15】))==1){printf("%d",*(a+i));sum+=*(a+i);}printf("\nThesum=%d\n",sum);}isprime(x)intx;{inti;for(i=2;i<=x/2;i++)if(x%i==0)return(0);【16】;}以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。#include<stdio.h>#defineN10invert(s,i,j)int*s,i,j;{intt;if(i<j){t=*(s+i);*(s+j)=(s+j);*(s+j)=t;invert(s,【17】,j-1);}}main(){inta[N],i;for(i=0;i<N;i++)scanf("%d",a+【18】);invert(a,0,N-1);for(i=0;i<N;i++)printf("%d",a[i]);printf("\n");}以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束〔链表头结点的data域不放数据,表空的条件是ph->next==NULL).#include<stdio.h>structlist{intdata;structlist*next;};【19】creatlist(){structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));p=q=ph;printf("Inputanintegernumber,enter–1toend:\n");scanf("%d",&a):while(a!=-1){p=(structlist*)malloc(sizeof(structlist));p->data=a;q->next=p;【20】=p;scanf("%d",&a);}p->next='\0';return(ph);}main(){structlist*head;head=creatlist();}[完]1994年全国计算机等级考试二级笔试C语言参考答案选择题([1]——[30]每个选项1分,[31]——[45]每个选项2分,共60分)(1)B(2)B(3)B(4)A(5)C(6)D(7)B(8)C(9)A(10)C(11)C(12)B(13)D(14)B(15)C(16)A(17)B(18)B(19)A(20)C(21)D(22)C(23)A(24)C(25)C(26)D(27)A(28)D(29)B(30)A(31)C(32)D(33)C(34)D(35)A(36)A(37)C(38)B(39)B(40)A(41)A(42)C(43)A(44)D(45)C二`填空题(每空2分,共40分)(1)顺序(2)66(3)COPYB:\BAS\??A*.C:\ABC(或COPYB:\BAS\??A*.,C:\ABC)(4)只读(5)AUTOEXEC(6)DELB:\FOX\*.TXT(7)35(8)关系(9)格式化(或初始化、FORMAT)(10)ASCII(11)3(12)!feof(f1)或feof(f1)==0(13)(*fun)(a+i*h)(14)mypoly(15)I(16)return1或return(1)(17)i+1(18)I(19)structlist*(20)q

全国计算机等级考试二级笔试卷根底知识和C语言程序设计(考试时间120分钟,总分值100分)1995年9月一、选择题((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)360KB B)1.44MB C)760KB D)1.2MB(6)具有多媒体功能的微机系统常用CD-ROM作为外存储器,它是A)只读内存储器B)只读大容量软盘 C)只读硬盘 D)只读光盘说明:(7)到(17)题给定的条件如下:微机系统有A和B两个容量相同的软盘驱动器,硬盘C的目录结构为C:\C:\根目录AUTOEXEC.BATCOMMANDDOSDISKCOPYFORMATABC.TXTXY.TXTF4XD2.EXEXD1.EXEJD2.FORJD1.FOR文件AUTOEXEC.BAT的内容为PROMPT$P$GCDF4CD\DOS(7)微机系统用硬盘C启动后,当前系统提示符是A)C:\> B)C:\DOS> C)C:\F4> D)C>(8)在用C盘启动后,把A盘格式化成系统盘的命令为A)FORMATA: B)\FORMATA:/SC)\DOS\FORMATA:/S D)\DOS\FORMATA:\S(9)设当前盘为C盘,C盘当前目录为\DOS。把JD1.FOR和JD2.FOR连接起来后存入A盘根目录下,命名为JD3.FOR,应使用命令A)COPYJD1.FOR+JD2.FORA:JD3.FORB)COPY\F4\JD1.FOR+JD2.FORA:\JD3.FORC)COPY\F4\JD1.FOR+\F4\JD2.FORA:\JD3.FORD)COPY\F4\JD1.FOR+\F4\JD2.FORJD3.FOR(10)设当前盘为C盘,C盘当前目录为\DOS。把FORMAT和DISKCOPY两个命令文件复制到A盘上的命令为A)COPY\DOS\*.*A: B)COPY\*A:C)COPYDOS\*.*A: D)COPYDOS\*A:(11)列出硬盘C上所有扩展名为.FOR文件的命令是A)DIR\*.FOR B)DIRC:\F4\*.FOR C)DIRC:\*.FOR D)DIRC:\F4\*.*(12)把A盘的所有信息复制到B盘上的命令为A)COPYA:*.*B: B)COPYA:*.*B:*.*C)C:\DOS\DISKCOPYA:B: D)C:\DOS\DISKCOPYB:A:(13)设当前盘为C盘。删除硬盘C上的两个扩展名为.EXE文件的命令是A)DEL\F4\*.EXE B)DEL\XD?.EXE C)DEL\F4\*.* D)DEL\*.EXE(14)设当前盘为C盘。C盘当前目录为\DOS。在硬盘C的根目录下建立新子目录USER的命令为A)MDC:USER B)MD\USER\ C)MD\USER D)MDUSER(15)设当前盘为C盘,C盘当前目录为根目录。在硬盘C上删除子目录F4的命令或命令组为A)RDF4 B)RD\F4 C)DEL\F4\*.* D)DEL\*.*RDF4(16)设当前盘为C盘,C盘当前目录为根目录。把JD1.FOR改名为JX1.FOR的命令为A)RENJD1.FORJX1.FOR B)RENJX1.FORJD1.FORC)RENF4\JD1.FORJX1.FOR D)REN\F4\JX1.FORJD1.FOR(17)显示C盘根目录下所有.TXT文件内容的命令为A)TYPEC:\*.TXT B)TYPEC:\*.TXT>CONC)COPYC:\*.TXT>CON D)COPYC:\*.TXTCON(18)按照数据模型分类,FoxBASE和dBASE是属于A)层次型 B)网状型 C)关系型 D)混合型(19)FoxBASE和dBASE命令文件的扩展名为A).PRG B).DBF C).MEM D).TXT(20)“计算机等级考试〞这七个汉字作为字符串常量,在FoxBASE和dBASE中,可以表示为A){计算机等级考试} B)(计算机等级考试)C)计算机等级考试 D)“计算机等级考试〞(21)请选出可用作C语言用户标识符的一组标识符A)void B)a3_b3 C)For D)2adefine_123-abcDOWORDIFCasesizeof(22)设inta=12,那么执行完语句a+=a-=a*a后,a的值是A)552 B)264 C)144 D)-264(23)C语言程序的根本单位是A)程序行 B)语句 C)函数 D)字符(24)请选出合法的C语言赋值语句A)a=b=58 B)i++; C)a=58,b=58 D)k=int(a+b);(25)执行下面程序片段的结果是intx=23;do{printf("%2d",x--);}while(!x);A)打印出321 B)打印出23 C)不打印任何内容D)陷入死循环(26)请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A)5 B)14 C)8D)输出项不合法,无正常输出(27)设有如下的函数ggg(x)floatx;{printf("\n%d",x*x);}那么函数的类型A)与参数x的类型相同 B)是void C)是int D)无法确定(28)设有如下枚举类型定义:enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};枚举量Fortran的值为A)4 B)7 C)102 D)103(29)假设有以下说明和语句,请选出哪个是对c数组元素的正确引用intc[4][5],(*cp)[5];cp=c;A)cp+1 B)*(cp+3) C)*(cp+1)+3 D)*(*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;ab=*var+10;执行上面的程序后,ab的值为A)120 B)110 C)100 D)90(32)以下程序段给数组所有的元素输入数据,请选择正确答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",________);┇}A)a+(i++) B)&a[i+1] C)a+i D)&a[++i](33)设有如下的程序段:charstr[]="Hello";char*ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为A)'o' B)'\0' 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)0 B)1 C)2 D)3(37)C语言规定,程序中各函数之间A)既允许直接递归调用也允许间接递归调用B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用不允许间接递归调用D)不允许直接递归调用允许间接递归调用(38)假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,那么以下能正确表示代数式的表达式是A)1/a*b*c B)1/(a*b*c) C)1/a/b/(float)c D)1.0/a/b/c(39)假设x是整型变量,pb是基类型为整型的指针变量,那么正确的赋值表达式是A)pb=&x B)pb=x; C)*pb=&x; D)*pb=*x(40)设有staticcharstr[]="Beijing";那么执行printf("%d\n",strlen(strcpy(str,"China")));后的输出结果为A)5 B)7 C)12 D)14(41)设有如下程序:#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}上面程序的输出结果是A)运行错误 B)100 C)i的地址 D)j的地址(42)设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为A)1 B)2 C)3 D)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)请选出以下程序的输出结果#include<stdio.h>sub(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,%d\n",a,b,c);}A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7(45)下面程序的输出结果是#include<stdio.h>main(){inti=2,p;p=f(i,i+1);printf("%d",p);}intf(a,b)inta,b;{intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}A)-1 B)0 C)1 D)2(46)请选出以下程序段的输出结果#include<stdio.h>#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf("%d\n",k);}A)15 B)100 C)10 D)150(47)请选出以下程序段的输出结果#include<stdio.h>main(){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);}输入数据如下:(此处<CR>代表回车符)aaaabbbb<CR>ccccdddd<CR>A)aaaa B)aaaa C)aaaa D)aaaabbbbbbbbbbbbbbbbccccccccccccddddddddccccddddddddeeee(48)请选出以下程序的输出结果#include<stdio.h>fun(s,n1,n2)int*s,n1,n2;{inti,j,t;i=n1;j=n2;while(i<j){t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;fun(p,0,3);fun(p,4,9);fun(p,0,9);for(i=0;i<10;i++)printf("%d",*(a+i));printf("\n");}A)0987654321 B)4321098765C)5678901234 D)0987651234(49)请选出以下程序的输出结果#include<stdio.h>main(){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)1234 B)4321 C)0000 D)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("%d\n",++p->x);printf("%d\n",(++p)->x);printf("%d\n",++(*p->y));}A)10 B)50 C)51 D)602060607020212131二、填空题〔每空2分,共40分〕

请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。(1)十进制数123用八位二进制表示为【1】。(2)70年代末开始出现16位微处理器,标志着微型计算机进入了第三代;80年代起使用【2】位微处理器,标志微型计算机进入了第四代。(3)通用计算机操作系统的功能和任务是:作业管理、文件管理、外设管理、CPU管理和【3】管理。(4)PC-DOS的两个隐含文件是:IBMBIO(输入输出程序)与【4】(磁盘操作管理程序)。(5)FoxBASE和dBASE有两种变量:即内存变量和【5】变量。(6)设有如下程序段:inti=0,sum=1;do{sum+=i++;}while(i<6);printf("%d\n",sum);上述程序段的输出结果是【6】。(7)阅读以下程序:#include<stdio.h>main(){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]<m){m=array[i][j];row=i;column=j;}printf("%d,%d,%d\n",m,row,column);}上述程序的输出结果是【7】。(8)设a、b、c为整型数,且a=2、b=3、c=4,那么执行完以下语句:a*=16+(b++)-(++c);后,a的值是【8】。(9)下面程序的输出结果是【9】。#include<stdio.h>main(){inta=3,b=2,c=1;c-=++b;b*=a+c;{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)设有如下程序:#include<stdio.h>main(argc,argv)intargc;char*argv[];{while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定上述程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROGABCDEFGHIJKL<CR>,那么输出结果为【10】。(11)阅读以下程序:#include<stdio.h>#defineMAX_COUNT4voidfun();main(){intcount;for(count=1;count<=MAX_COUNT;count++)fun();}voidfun(){staticinti;i+=2;printf("%d",i);}上述程序的输出结果是【11】。(12)设有以下程序:#include<stdio.h>#include<strint.h>main(){inti;charstr[10],temp[10];gets(temp);for(i=0;i<4;i++){gets(str);if(strcmp(temp,str)<0)strcpy(temp,str);}printf("%s\n",temp);}上述程序运行后,如果从键盘上输入(在此<CR>代表回车符):C++<CR>BASIC<CR>QuickC<CR>Ada<CR>Pascal<CR>那么程序的输出结果是【12】。(13)设有如下程序:#include<stdio.h>main(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<CR>那么程序输出【13】。(14)假设输入3个整数3,2,1,那么下面程序的输出结果是【14】。#include<stdio.h>voidsub(n,uu)intn,uu[];{intt;t=uu[n--];t+=3*uu[n];n=n++;if(t>=10){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<n;i++)sub(i,aa);for(i=0;i<=n;i++)printf("%d",aa[i]);printf("\n");}(15)假设有以下定义:doublew[10];那么w数组元素下标的上限为【15】,下限为【16】。(16)以下程序统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志,请填空。#include<stdio.h>#include<ctype.h>main(){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:%d\n,i【18】,num[i]);}(17)下面的程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,调用outone函数输出此动态存储单元中的数据。请填空。#include<stdio.h>getone(s)int**s;{*s=(int*)malloc(sizeof(int));}assone(a)int*a;{scanf("%d",【19】);}outone(b)int*b;printf("%d\n",【20】);}main(){int*p;getone(&p);assone(p);outone(p);}『完』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允许用小写字母(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

全国计算机等级考试二级笔试卷根底知识和C语言程序设计(考试时间120分钟,总分值100分)1996年4月6日一、选择题((1)-(40)每题1分,(41)-(50)每题2分,共60分)

以下各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)一个完整的计算机系统包括A)主机、键盘与显示器 B)计算机与外部设备C)硬件系统与软件系统 D)系统软件与应用软件(2)十六进制数1000转换成十进制数是A)4096 B)1024 C)2048 D)8192(3)十进制数269转换成十六进制数是A)10E B)10D C)10C D)10B(4)如果用八位二进制补码表示带符号的定点整数,那么能表示的十进制数的范围是A)-127到+127 B)-128到+128 C)-127到+128 D)-128到+127(5)以下设备中,既可作为输入设备又可作为输出设备的是A)鼠标器 B)打印机 C)键盘 D)磁盘驱动器(6)以下各表达中,正确的选项是A)正数十进制原码的补码是原码本身B)所有的十进制小数都能准确地转换为有限位二进制小数C)汉字的计算机内码就是国标码D)存储器具有记忆能力,其中的信息任何时候都不会丧失(7)在以下操作中,能导致DOS系统重新启动但不进行系统自检的是A)加电开机 B)按<Ctrl>+<Break>C)按<Ctrl>+<Alt>+<Del> D)按RESET按钮(8)如果给定一个带有通配符的文件名F*.?,那么在以下各文件中,它能代表的文件名是A)FA.EXE B)F.C C)EF.C D)FABC(9)DOS系统启动后,以下文件中常驻内存的是A)* B)FORMATC)AUTOEXEC.BAT D)COMMAND(10)设A盘的目录结构为〔画方框的为目录〕D1D1\D2ABCA.FORDX.CQ.DAT根目录B.PASY.BASA.CD3A1.CD4XYZ.CQR.CNA.CA.TXTB.C如果当前盘为C盘,A盘的当前目录为\D2,那么以下对A盘上文件QR.C的指定中,合法的是A)\D2\D4\QR.C B)D4\QR.C C)A:D4\QR.C D)A:D2\D4\QR.C(11)为了要将A盘当前目录〔不是根目录〕中所有扩展名为.C的文件同名复制到A盘的目录\USER中,正确的命令是A)COPYA:*.CUSER\*.C B)COPYA:*.CA:\USERC)COPYA:*.CA:USER\ D)COPYA:*.CA:USER\*.C(12)为了在屏幕上一次显示当前盘当前目录下的所有扩展名为.TXT的文件内容,以下命令中正确的选项是A)TYPE*.TXT B)TYPE*.TXTCONC)COPY*.TXT>CON D)COPY*.TXTCON(13)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是A)COPYC:\XYZ.TXT+AB1.TXT B)COPYAB1.TXT>>C:\XYZ.TXTC)TYPEAB1.TXT>C:\XYZ.TXT D)COPYAB1.TXT+C:\XYZ.TXT>C:\XYZ.TXT(14)设A盘为启动盘,其目录结构为〔画方框的为目录〕COMMAND\COMMAND\根目录AUTOEXEC.BATDOSUSER其中文件AUTOEXEC.BAT的内容为MD\XYZCD\DOS\USER那么由A盘启动成功后,A盘的当前目录是A)\DOS\USER B)\XYZ C)\ D)\DOS(15)以下DOS命令中为内部命令的是A)COMP B)PATH C)PRINT D)FORMAT(16)设当前盘为C盘,所用的所有软盘已格式化且容量相同,那么以下DOS命令中错误的选项是A)DISKCOPYA:C: B)DISKCOPYA:A: C)COPYA:*.* D)COPYA:*.*C:(17)以下DOS命令中,有错误的选项是A)TYPEAAB.FOR>PRN B)TYPE?AB.FORC)COPY*.CPRN D)COPYCONPRN(18)设当前盘为C盘,在当前目录下有全部的DOS系统文件与批处理命令文件AB.BAT,且该批处理命令文件的内容为FORMATA:/4MD\XYZCD\XYZRD\XYZMD\XYZ如果在1.2软盘驱动器A中插入一张360K容量的软盘片,执行批自理命令文件AB.BAT后,结果A盘的目录结构是A)根目录B)根目录----子目录XYZ----子目录XYZC)根目录─┬─子目录XYZ└─子目录XYZD)根目录----子目录XYZ(19)以下带有通配符的文件名,能代表文件ABC.FOR的是A)*BC.? B)A?.* C)?BC.* D)?.?(20)设当前盘为C盘,且C盘上含有子目录\DOS,A盘为只有根目录的启动盘〔根目录下只有三个DOS系统文件与扩展名为.C的文件〕。以下命令组中的两个命令从效果上可以认为等价的是A)DEL\DOS与RD\DOS B)FORMATA:与DELA:*.*C)FORMATA:/S与DELA:*.? D)COPYA:F1F2与RENA:F1F2(21)设a、b和c都是int型变量,且a=3,b=4,c=5,那么下面的表达式中,值为0的表达式是A)'a'&&'b' B)a<=b C)a||b+c&&b-c D)!((a<b)&&!c||1)(22)请读程序片段:inti=65536;printf("%d\n",i);上面程序片段的输出结果是A)65536 B)0 C)有语法错误,无输出结果 D)-1(23)设ch是char型变量,其值为A,且有下面的表达式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch上面表达式的值是A)A B)a C)Z D)z(24)假设x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是A)200 B)100 C)100200 D)输出格式符不够,输出不确定的值(25)下面各语句行中,能正确进行赋字符串操作的语句行是A)charst[4][5]={"ABCDE"}; B)chars[5]={'A','B','C','D','E'};C)char*s;s="ABCDE"; D)char*s;scanf("%s",s);(26)假设k是int型变量,且有下面的程序片段:k=-3if(k<=0)printf("####")elseprintf("&&&&");上面程序片段的输出结果是A)#### B)&&&& C)####&&&& D)有语法错误,无输出结果(27)假设x是int型变量,且有下面的程序片段:for(x=3;x<6;x++)printf((x%2)?("**%d"):("##%d\n"),x);上面程序片段的输出结果是A)**3 B)##3 C)##3 D)**3##4##4**4**4##5**5**5#

温馨提示

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

评论

0/150

提交评论