还剩357页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
1994-2009年全国计算机等级考试二级笔试试题全国计算机等级考试二级笔试试题基础知识与C语言程序设计考试时间120分钟,满分100分1994年4月
一、选择题1-30每小题1分,31-45每小题2分,共60分下列各题A,B,C,D四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑答在试卷上不得分1二进制数101110转换为等值的八进制数是【1】【1】A45B56C67D782CPU是由【2】组成的【】【2】A内存储器和控制器B控制器和运算器C内存储器和运算器D内存储器、控制器和运算器3DOS是为IBMPC系列微型计算机及其兼容机所配置的【3】磁盘操作系统【3】A 多用户多任务B单用户单任务C分时D分布式4启动MS-DOS操作系统后,【4】已驻留内存【4】ACOMMAND.COMBDISKCOPY.COMCFORMAT.COMDCCCC.EXE5设驱动器B中软盘上的目录结构如下图所示设当前目录为F2,则把A盘根目录下的PROG.BAS文件复制到B盘F3子目录中的命令是 【5】【5】ACOPYPROG.BASB:BCOPYA:PROG.BASB:\CCOPYA:\PROG.BASB:\F3DCOPYA:PROG.BASB:\F3\6下面四组DOS命令中,意义完全相同的一组是【6】【6】ACOPY和DISKCOPYBCOMP和DISKCOMPCDEL和RDDRENAME和REN7防止软盘感染病毒的有效方法是【7】【7】A不要把软盘和有毒软盘放在一起B在写保护缺口上贴上胶条C保持机房清洁D定期对软盘格式化8双面高密度5英寸软磁盘的容量是 【8】【8】A360KBB720KBC
1.2MBD
1.44MB9在FOXBASE中,可以使用的两类变量是 【9】【9】A内存变量和字段变量B全局变量和局部变量C字段变量和简单变量D内存变量和自动变量10建立一个新子目录的DOS命令是【10】【10】ACREATEBRDCMDDCD11在C语言中,如果下面的变量都是int类型,则输出的结果是【11】sum=pad=5;pAd=sum++pAd++++pAd;printf%d\npad;【11】A7B6C5D412以下程序的输出结果是【12】#includestdio.hmain{inti=010j=10;printf%d%d\n++ij--;}【12】A1110B910C0109D10913已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是【13】#includestdio.hmain{charc1=Ac2=Y;printf%d%d\nc1c2;}【13】A因输出格式不合法,输出错误信息B)65,90C)A,YD)65,8914指针s所指字符串的长度为【14】char*s=\\Name\\Address\n;【14】A19B15C18D说明不合法15设有说明int*ptr[m];其中的标识符ptr是【15】【15】A)M个指向整型变量的指针B)指向M个整型变量的函数指针C)一个指向具有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量16语句while!E;中的条件!E等价于 【16】【16】A)E==0B)E!=1C)E!=0D)~E17以下程序的输出结果是 【17】 #includestdio.hmain{printf%d\nNULL;}【17】A不确定的(因变量无定义)B)0C)-1D)118以下函数调用语句中含有【18】个实参funcexp1exp2exp3exp4exp5;【18】A1B2C4D519设有以下语句chara=3b=6c;c=a^b2;则c的二进制值是【19】【19】A00011011B)00010100C)00011100D)0001100020下面的程序中【20】有错误(每行程序前面的数字是行号)1#includestdio.h2main3{4floata
[3]={00};5inti;6fori=0;i3;i++scanf%da[i];7fori=1;i3;i++a
[0]=a
[0]+a[i];8printf%f\na
[0];9}【20】A没有B)第4行C)第6行D)第8行21设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是 【21】【21】A)3B)0C)9D)-1222以下的for循环【22】forx=0y=0;y!=123x4;x++;【22】A是无限循环B)循环次数不定C)执行4次D)执行3次23设有语句chara=\72;则变量a【23】 【23】A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法24以下程序的输出结果是 【24】#includestdio.h#includemath..hmain{inta=1b=4c=2;floatx=
10..5y=
4.0z;z=a+b/c+sqrtdoubley*
1.2/c+x;pritnf%f\nz;}【24】A
14.000000B
015.400000C
13.700000D
14.90000025sizeofdouble是 【25】【25】A)一种函数调用B)一个双精度型表达式C)一个整型表达式D)一个不合法的表达式26C语言中 【26】【26】A)不能使用do-while语句构成的循环B)do-while语句构成的循环必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环27以下程序的输出结果是【27】#includestdio.h#includestring.hmain{charstr
[12]={string};printf%d\nstrlenstr;}【27】A6B7C11D1228以下程序的输出结果是 【28】#includestdio.hmain{inta=2c=5;printfa=%%db=%%d\nac;}【28】Aa=%2b=%5Ba=2b=5Ca=%%db=%%dDa=%db=%d29以下程序的输出结果是 【29】#includestdio.hmain{intabd=241;a=d/100%9;b=-1-1;printf%d%d\nab;}【29】A61B21C60D2030以下程序的输出结果是 【30】#includestdio.hmain{inti;fori=1;i=5;i++{ifi%2printf*;elsecontinue;printf#;}printf$\n;}【30】A*#*#*#$B#*#*#*$C*#*#$D#*#*$31以下for语句构成的循环执行了【31】次#includestdio.h#defineN2#defineMN+1#defineNUMM+1*M/2main{intin=0;fori=1;i=NUM;i++;{n++;printf%dn;}printf\n;}【31】A5B6C8D932设有以下语句,则 【32】 不是对a数组元素的正确引用,其中0≤i10inta
[10]={0123456789}*p=a;【32】Aa[p-a]B*a[i]Cp[i]D**a+i33有以下程序#includestdio.h#defineN6main{charc[N];inti=0;for;iN;c[i]=getchari++;fori=0;iN;putcharc[i]i++;}输入以下三行,每行输入都是在第一列上开始,CR代表一个回车符:aCRbCRcdefCR程序的输出结果是【33】【33】AabcdefBaCaDabbbccdcdefdef34以下程序调用findmax函数求数组中值最大的元素在数组中的下标请选择填空#includestdio.hfindmaxstkint*st*k;{intp;forp=0*k=p;pt;p++ifs[p]s[*k]_________;}main{inta
[10]ik;fori=0;i10;i++scanf%da[i];findmaxa10k;printf%d%d\nka[k];}【34】Ak=pB*k=p-sCk=p-sD*k=p35有以下程序#includestdio.hunionpw{inti;charch
[2];}a;main{a.ch
[0]=13;a.ch
[1]=0;printf%d\na.i;}程序的输出结果是 【35】(注意ch
[0]在低字节,ch
[1]在高字节)【35】A13B14C208D20936有以下程序#includestdio.hmain{intc;whilec=getchar!=\n{switchc-2{case0:case1:putcharc+4;case2:putcharc+4;break;case3:putcharc+3;case4:putcharc+2;break;}}printf\n;}从第一列开始输入以下数据,CR代表一个回车符2743CR程序的输出结果是 【36】 【36】A668977B668966C6677877D668876637以下程序的输出结果为 【37】main{char*alpha
[6]={ABCDIJKLMNOPQRSTUVWX};char**p;inti;p=alpha;fori=0;i4;i++printf%sp[i];printf\n;}【37】AABCDEFGHIJKLBABCDCABCDEFGHIJKLMNOPDAEIM38以下程序的输出结果是 【38】#includestdio.h#defineFUDGEy
2.84+y#definePRaprintf%dinta#definePRINT1aPRa;putchar\nmain{intx=2;PRINT1FUDGE5*x;}【38】A11B12C13D1539以下程序的输出结果是【39】#includestdio.hmain{inti=1j=3;printf%di++;{inti=0;i+=j*2;printf%d%dij;}printf%d%d\nij;}【39】A16313B16323C16363D1732340以下程序的输出结果是 【40】#includestdio.hmain{intk=4m=1p;p=funckm;printf%dp;p=funckm;printf%d\np;}funcabintab;{staticintm=0i=2;i+=m+1;m=i+a+b;returnm;}【40】A817B816C820D8841设有以下语句charstr
[4]
[12]={aaabbbbcccccdddddd}*strp
[4];inti;fori=0;i4;i++strp[i]=str[i]; 【41】 不是对字符串的正确引用,其中0≤k4【41】AstrpBstr[k]Cstrp[k]D*strp42设有以下语句charstr1[]=stringstr2
[8]*str3*str4=string;则 【42】不是对库函数strcpy的正确调用,此库函数用业复制字符串【42】Astrcpystr1HELLO1;Bstrcpystr2HELLO2;Cstrcpystr3HELLO3;Dstrcpystr4HELLO4;43C语言中形参的缺省存储类别是 【43】 【43】A)自动autoB)静态staticC)寄存器registerD)外部extern44设有以下语句structst{intn;structst*next;};staticstructsta
[3]={5a
[1]7a
[2]9\0}*p;p=a
[0];则表达式 【44】的值是6【44】A)p++-nBp-n++C*p.n++D++p-n45以下四个程序中, 【45】不能对两个整型变量的值进行交换【45】A)#includestdio.hmain{inta=10b=20;swapab;printf%d%d\nab;}swappqint*p*q;{int*t;t=intmallocsizeofint;t=p;*p=*q;*q=*t;}B#includestdio.hmain{inta=10b=20;swapab;printf%d%d\nab;}swappqintpq;{int*t;t=*p;*p=*q;*q=t;}C#includestdio.hmain{int*a*b;*a=10*b=20;swapab;printf%d%d\n*a*b;}swappqint*p*q;{intt;t=*p;*p=*q;*q=t;}D#includestdio.hmain{inta=10b=20;intx=ay=b;swapxy;printf%d%d\nab;}swappqint*p*q;{intt;t=*p;*p=*q;*q=t;}
二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡1-20序号后的横线上,答在试卷上不得分
(1)结构化程序设计所规定的三种基本控制结构是【1】结构.选择结构和循环结构
(2)在七位ASCII码中,除了表示数字、英文大小写字母外,还有【2】个其它符号
(3)把B盘BAS子目录下第三个字符为A,且没有扩展名的全部文件拷贝到C盘ABC子目录下的命令是【3】
(4)微机中ROM的中文意义是【4】存储器
(5)启动MS-DOS系统后,能自动执行的批处理文件是【5】.BAT
(6)设当前盘为C盘,删除B盘FOX子目录中扩展名为.TXT的所有文件的命令是【6】
(7)十进制数53转换为十六进制数为【7】
(8)数据库管理系统常见的数据模型有层次、网状和【8】三种
(9)买来一张新盘后,在存入文件前,必须进行【9】处理
(10)在微机中,字符的比较就是对它们的【10】码进行比较
(11)以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出#includestdio.hmainargcargvintargc;char*argv[];{FILE*f1*f2;charch;ifargc【11】{printfParametersmissing!\n;exit0;}iff1=fopenargv
[1]r==NULL||f2=fopenargv
[2]w==NULL{printfCannotopenfile!\n;exit0;}while【12】fputcfgetcf1f2;fclosef1;fclosef2;}
(12)以下程序中的trap函数是一个用梯形法求定积分的通用函数梯形法求定积分的公式为n-1a-bs=fa+fb/2+∑fa+i*h*hh=|----|i=1n其中,n为积分小区间数以下程序调用trap函数求定积分,被积函数是fx=x*x+3*x+2且n=1000,a=0,b=4#includestdio.h3includemath.hdoubletrapfunabdouble*funab;{doubleth;intin=1000;t=
0.5**funa+*funb;h=fabsa-b/doublen;fori=1;i=n-1;i++t=t+【13】;t=t*h;returnt;}doublemypolyxdoublex;{returnx*x+
3.0*x+
2.0;}main{doubley*pf;pf=【14】;y=trappf
0.
04.0;printf%f\ny;}
(13)以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数素数是只能被1和本身整除且大于1的自然数#includestdio.hmain{intia
[10]*p=asum=0;printfEnter10num:\n;fori=0;i10;i++scanf%da[i];fori=0;i10;i++ifisprime*p+【15】==1{printf%d*a+i;sum+=*a+i;}printf\nThesum=%d\nsum;}isprimexintx;{inti;fori=2;i=x/2;i++ifx%i==0return0;【16】;}
(14)以下程序调用invert函数按逆序重新放置a数组中元素的值a数组中的值在main函数中读入#includestdio.h#defineN10invertsijint*sij;{intt;ifij{t=*s+i;*s+j=s+j;*s+j=t;inverts【17】j-1;}}main{inta[N]i;fori=0;iN;i++scanf%da+【18】;inverta0N-1;fori=0;iN;i++printf%da[i];printf\n;}
(15)以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph-next==NULL.#includestdio.hstructlist{intdata;structlist*next;};【19】creatlist{structlist*p*q*ph;inta;ph=structlist*mallocsizeofstructlist;p=q=ph;printfInputanintegernumberenter–1toend:\n;scanf%da:whilea!=-1{p=structlist*mallocsizeofstructlist;p-data=a;q-next=p;【20】=p;scanf%da;}p-next=\0;returnph;}main{structlist*head;head=creatlist;}[完]1994年全国计算机等级考试二级笔试C语言参考答案选择题
[1]——
[30]每个选项1分,
[31]——
[45]每个选项2分,共60分1B2B3B4A5C6D7B8C9A10C11C12B13D14B15C16A17B18B19A20C21D22C23A24C25C26D27A28D29B30A31C32D33C34D35A36A37C38B39B40A41A42C43A44D45C二`填空题每空2分共40分1顺序2663COPYB\BAS\A*.C:\ABC或COPYB:\BAS\A*.C:\ABC4只读5AUTOEXEC6DELB:\FOX\*.TXT7358关系9格式化或初始化、FORMAT10ASCII11312!feoff1或feoff1==013*funa+i*h14mypoly15I16return1或return117i+118I19structlist*20q全国计算机等级考试二级笔试卷基础知识和C语言程序设计考试时间120分钟,满分100分1995年9月
一、选择题1-40每小题1分,41-50每小题2分,共60分下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分461第一台电子数字计算机ENIAC诞生于A1927年B1936年C1946年D1951年472用FORTRAN语言编制的源程序要变为目标程序,必须经过A汇编B解释C编辑D编译483计算机软件一般包括系统软件和A字处理软件B应用软件C管理软件D科学计算机软件494计算机内使用的数是A二进制数B八进制数C十进制数D十六进制数505目前微型机常用的
5.25寸双面高密度软盘的容量是A360KBB
1.44MBC760KBD
1.2MB516具有多媒体功能的微机系统常用CD-ROM作为外存储器,它是A只读内存储器B只读大容量软盘C只读硬盘D只读光盘说明:527到17题给定的条件如下:微机系统有A和B两个容量相同的软盘驱动器,硬盘C的目录结构为文件AUTOEXEC.BAT的内容为PROMPT$P$GCDF4CD\DOS537微机系统用硬盘C启动后,当前系统提示符是AC:\BC:\DOSCC:\F4DC548在用C盘启动后,把A盘格式化成系统盘的命令为AFORMATA:B\FORMATA:/SC\DOS\FORMATA:/SD\DOS\FORMATA:\S559设当前盘为C盘,C盘当前目录为\DOS把JD
1.FOR和JD
2.FOR连接起来后存入A盘根目录下,命名为JD
3.FOR,应使用命令ACOPYJD
1.FOR+JD
2.FORA:JD
3.FORBCOPY\F4\JD
1.FOR+JD
2.FORA:\JD
3.FORCCOPY\F4\JD
1.FOR+\F4\JD
2.FORA:\JD
3.FORDCOPY\F4\JD
1.FOR+\F4\JD
2.FORJD
3.FOR5610设当前盘为C盘,C盘当前目录为\DOS把FORMAT.COM和DISKCOPY.COM两个命令文件复制到A盘上的命令为ACOPY\DOS\*.*A:BCOPY\*.COMA:CCOPYDOS\*.*A:DCOPYDOS\*.COMA:5711列出硬盘C上所有扩展名为.FOR文件的命令是ADIR\*.FORBDIRC:\F4\*.FORCDIRC:\*.FORDDIRC:\F4\*.*5812把A盘的所有信息复制到B盘上的命令为ACOPYA:*.*B:BCOPYA:*.*B:*.*CC:\DOS\DISKCOPYA:B:DC:\DOS\DISKCOPYB:A:5913设当前盘为C盘删除硬盘C上的两个扩展名为.EXE文件的命令是ADEL\F4\*.EXEBDEL\XD.EXECDEL\F4\*.*DDEL\*.EXE6014设当前盘为C盘C盘当前目录为\DOS在硬盘C的根目录下建立新子目录USER的命令为AMDC:USERBMD\USER\CMD\USERDMDUSER6115设当前盘为C盘,C盘当前目录为根目录在硬盘C上删除子目录F4的命令或命令组为ARDF4BRD\F4CDEL\F4\*.*DDEL\*.*RDF4RDF46216设当前盘为C盘,C盘当前目录为根目录把JD
1.FOR改名为JX
1.FOR的命令为ARENJD
1.FORJX
1.FORBRENJX
1.FORJD
1.FORCRENF4\JD
1.FORJX
1.FORDREN\F4\JX
1.FORJD
1.FOR6317显示C盘根目录下所有.TXT文件内容的命令为ATYPEC:\*.TXTBTYPEC:\*.TXTCONCCOPYC:\*.TXTCONDCOPYC:\*.TXTCON6418按照数据模型分类,FoxBASE和dBASE是属于A层次型B网状型C关系型D混合型6519FoxBASE和dBASE命令文件的扩展名为A.PRGB.DBFC.MEMD.TXT6620“计算机等级考试”这七个汉字作为字符串常量,在FoxBASE和dBASE中,可以表示为A{计算机等级考试}B计算机等级考试C计算机等级考试D“计算机等级考试”6721请选出可用作C语言用户标识符的一组标识符AvoidBa3_b3CForD2adefine_123-abcDOWORDIFCasesizeof6822设inta=12,则执行完语句a+=a-=a*a后,a的值是A552B264C144D-2646923C语言程序的基本单位是A程序行B语句C函数D字符7024请选出合法的C语言赋值语句Aa=b=58Bi++;Ca=58b=58Dk=inta+b;7125执行下面程序片段的结果是intx=23;do{printf%2dx--;}while!x;A打印出321B打印出23C不打印任何内容D陷入死循环7226请选出以下语句的输出结果printf%d\nstrlen\t\\065\xff\n;A5B14C8D输出项不合法,无正常输出7327设有如下的函数gggxfloatx;{printf\n%dx*x;}则函数的类型A与参数x的类型相同B是voidC是intD无法确定7428设有如下枚举类型定义:enumlanguage{Basic=3AssemblyAda=100COBOLFortran};枚举量Fortran的值为A4B7C102D1037529若有以下说明和语句,请选出哪个是对c数组元素的正确引用intc
[4]
[5]*cp
[5];cp=c;Acp+1B*cp+3C*cp+1+3D**cp+27630标准函数fgetssnf的功能是A从文件f中读取长度为n的字符串存入指针s所指的内存B从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C从文件f中读取n个字符串存入指针s所指的内存D从文件f中读取长度为n-1的字符串存入指针s所指的内存7731设有如下一段程序:int*varab;ab=100var=ab;ab=*var+10;执行上面的程序后ab的值为A120B110C100D907832以下程序段给数组所有的元素输入数据,请选择正确答案填入#includestdio.hmain{inta
[10]i=0;whilei10scanf%d________;┇}Aa+i++Ba[i+1]Ca+iDa[++i]7933设有如下的程序段:charstr[]=Hello;char*ptr;ptr=str;执行上面的程序段后,*ptr+5的值为AoB\0C不确定的值Do的地址8034在宏定义#definePI
3.14159中,用宏名PI代替一个A单精度数B双精度数C常量D字符串8135字符char型数据在微机内存中的存储形式是A反码B补码CEBCDIC码DASCII码8236执行下面的程序段intx=35;charz=A;intb;B=x15za;后,B的值为A0B1C2D38337C语言规定,程序中各函数之间A既允许直接递归调用也允许间接递归调用B不允许直接递归调用也不允许间接递归调用C允许直接递归调用不允许间接递归调用D不允许直接递归调用允许间接递归调用8438假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式的表达式是A1/a*b*cB1/a*b*cC1/a/b/floatcD
1.0/a/b/c8539若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是Apb=xBpb=x;C*pb=x;D*pb=*x8640设有staticcharstr[]=Beijing;则执行printf%d\nstrlenstrcpystrChina;后的输出结果为A5B7C12D148741设有如下程序:#includestdio.hmain{int**k*ji=100;j=i;k=j;printf%d\n**k;}上面程序的输出结果是A运行错误B100Ci的地址Dj的地址8842设a=5b=6c=7d=8m=2n=2执行m=abn=cd后n的值为A1B2C3D48943下面函数的功能是sssstchar*s*t;{while*s*t*t++==*s++;return*s-*t;}A求字符串的长度B比较两个字符串的大小C将字符串s复制到字符串t中D将字符串s接续到字符串t中9044请选出以下程序的输出结果#includestdio.hsubxyzintxy*z;{*z=y-x;}main{intabc;sub105a;sub7ab;subabc;printf%d%d%d\nabc;}A523B-5-12-7C-5-12-17D5-2-79145下面程序的输出结果是#includestdio.hmain{inti=2p;p=fii+1;printf%dp;}intfabintab;{intc;ifabc=1;elseifa==bc=0;elsec=-1;returnc;}A-1B0C1D29246请选出以下程序段的输出结果#includestdio.h#defineMINxyxyx:ymain{intijk;i=10;j=15;k=10*MINij;printf%d\nk;}A15B100C10D1509347请选出以下程序段的输出结果#includestdio.hmain{charsl
[10]s2
[10]s3
[10]s4
[10];scanf%s%ss1s2;getss3;getss4;putss1;putss2;putss3;putss4;}输入数据如下:此处CR代表回车符aaaabbbbCRccccddddCRAaaaaBaaaaCaaaaDaaaabbbbbbbbbbbbbbbbccccccccccccddddddddccccddddddddeeee9448请选出以下程序的输出结果#includestdio.hfunsn1n2int*sn1n2;{intijt;i=n1;j=n2;whileij{t=*s+i;*s+i=*s+j;*s+j=t;i++;j--;}}main{inta
[10]={1234567890}i*p=a;funp03;funp49;funp09;fori=0;i10;i++printf%d*a+i;printf\n;}A0987654321B4321098765C5678901234D09876512349549请选出以下程序的输出结果#includestdio.hmain{inta[]={1234}i;intx=0;fori=0;i4;i++{subax;printf%dx;}printf\n;}subsyint*sy;{staticintt=3;y=s[t];t--;}A1234B4321C0000D44449650下面程序的输出结果为structst{intx;int*y;}*p;intdt
[4]={10203040};structstaa
[4]={50dt
[0]60dt
[1]70dt
[2]80dt
[3]};main{p=aa;printf%d\n++p-x;printf%d\n++p-x;printf%d\n++*p-y;}A10B50C51D602060607020212131
二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分971十进制数123用八位二进制表示为【1】98270年代末开始出现16位微处理器,标志着微型计算机进入了第三代;80年代起使用【2】位微处理器,标志微型计算机进入了第四代993通用计算机操作系统的功能和任务是:作业管理、文件管理、外设管理、CPU管理和【3】管理1004PC-DOS的两个隐含文件是:IBMBIO.COM输入输出程序与【4】磁盘操作管理程序1015FoxBASE和dBASE有两种变量:即内存变量和【5】变量1026设有如下程序段:inti=0sum=1;do{sum+=i++;}whilei6;printf%d\nsum;上述程序段的输出结果是【6】1037阅读下列程序:#includestdio.hmain{intijrowcolumnm;staticintarray
[3]
[3]={{100200300}{2872-30}{-85026}};m=array
[0]
[0];fori=0;i3;i++forj=0;j3;i++ifarray[i][j]m{m=array[i][j];row=i;column=j;}printf%d%d%d\nmrowcolumn;}上述程序的输出结果是【7】1048设a、b、c为整型数,且a=
2、b=
3、c=4,则执行完以下语句:a*=16+b++-++c;后,a的值是【8】1059下面程序的输出结果是【9】#includestdio.hmain{inta=3b=2c=1;c-=++b;b*=a+c;{intb=5c=12;c/=b*2;a-=c;printf%d%d%dabc;a+=--c;}printf%d%d%dabc;}10610设有如下程序:#includestdio.hmainargcargvintargc;char*argv[];{while--argc0printf%sargv[argc];printf\n;}假定上述程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROGABCDEFGHIJKLCR,则输出结果为【10】10711阅读下列程序:#includestdio.h#defineMAX_COUNT4voidfun;main{intcount;forcount=1;count=MAX_COUNT;count++fun;}voidfun{staticinti;i+=2;printf%di;}上述程序的输出结果是【11】10812设有下列程序:#includestdio.h#includestrint.hmain{inti;charstr
[10]temp
[10];getstemp;fori=0;i4;i++{getsstr;ifstrcmptempstr0strcpytempstr;}printf%s\ntemp;}上述程序运行后,如果从键盘上输入在此CR代表回车符:C++CRBASICCRQuickCCRAdaCRPascalCR则程序的输出结果是【12】10913设有如下程序:#includestdio.hmainargcargvintargc;char*argv[];{FILE*fp;voidfc;inti=1;while--argc0iffp=fopenargv[i++]r==NULL{printfCannotopenfile!\n;exit1;}else{fcfp;fclosefp;}}voidfcifpFILE*ifp;{charc;whilec=getcifp!=#putcharc-32;}上述程序经编译、连接后生成可执行文件名为cpy.exe假定磁盘上有三个文本文件其文件名和内容分别为:文件名内容aaaaa#bbbbb#ccccc#如果在DOS下键入cpyabcCR则程序输出【13】11014若输入3个整数3,2,1,则下面程序的输出结果是【14】#includestdio.hvoidsubnuuintnuu[];{intt;t=uu[n--];t+=3*uu[n];n=n++;ift=10{uu[n++]=t/10;uu[n]=t%10;}elseuu[n]=t;}main{intinaa
[10]={000000}scanf%d%d%dnaa
[0]aa
[1];fori=1;in;i++subiaa;fori=0;i=n;i++printf%daa[i];printf\n;}11115若有以下定义:doublew
[10];则w数组元素下标的上限为【15】,下限为【16】11216以下程序统计从终端输入的字符中每个大写字母的个数用#号作为输入结束标志,请填空#includestdio.h#includectype.hmain{intnum
[26]i;charc;fori=0;i26;i++num[i]=0;while【17】!=#/*统计从终端输入的大写字母个数*/ifisuppercnum[c-65]+=1;fori=0;i26;i++/*输出大写字母和该字母的个数*/ifnum[i]printf%c:%d\ni【18】num[i];}11317下面的程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,调用outone函数输出此动态存储单元中的数据请填空#includestdio.hgetonesint**s;{*s=int*mallocsizeofint;}assoneaint*a;{scanf%d【19】;}outonebint*b;printf%d\n【20】;}main{int*p;getonep;assonep;outonep;}『完』1995年二级C笔试试卷参考答案一`选择题1~40题每题1分,41~50题每题2分,共60分1C2D3B4A5D6D7B8C9C10A11B12C13A14C15C16C17D18C19A20D21B22D23C24B25B26A27C28C29D30B31B32A33B34D35D36B37A38D39A40A41B42B43B44B45A46A47A48C49C50C二`填空题每空2分,共40分1011110112323内存或存储器或存储4IBMDOS.COM允许用小写字母5字段或字段名6167-850,20若遗漏逗号扣1分82892,5,1,2,3,-2若遗漏逗号扣1分10IJKLEFGHABCD若在字符间嵌入空格扣1分若在字符间嵌入空格扣1分12QuickC若大写字母写成小写字母,或小写字母写成大写字母扣1分13AAAABBBBCCCC若在字符间嵌入空格扣1分若用小写字母扣1分142721或272115916017c=getchar注意,外层括号不得遗漏18+65或+A19a或*a20*b全国计算机等级考试二级笔试卷基础知识和C语言程序设计考试时间120分钟,满分100分1996年4月6日
一、选择题1-40每小题1分,41-50每小题2分,共60分下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分1141一个完整的计算机系统包括A主机、键盘与显示器B计算机与外部设备C硬件系统与软件系统D系统软件与应用软件1152十六进制数1000转换成十进制数是A4096B1024C2048D81921163十进制数269转换成十六进制数是A10EB10DC10CD10B1174如果用八位二进制补码表示带符号的定点整数,则能表示的十进制数的范围是A-127到+127B-128到+128C-127到+128D-128到+1271185下列设备中,既可作为输入设备又可作为输出设备的是A鼠标器B打印机C键盘D磁盘驱动器1196下列各叙述中,正确的是A正数十进制原码的补码是原码本身B所有的十进制小数都能准确地转换为有限位二进制小数C汉字的计算机内码就是国标码D存储器具有记忆能力,其中的信息任何时候都不会丢失1207在下列操作中,能导致DOS系统重新启动但不进行系统自检的是A加电开机B按Ctrl+BreakC按Ctrl+Alt+DelD按RESET按钮1218如果给定一个带有通配符的文件名F*.,则在下列各文件中,它能代表的文件名是AFA.EXEBF.CCEF.CDFABC.COM1229DOS系统启动后,下列文件中常驻内存的是A*.COMBFORMAT.COMCAUTOEXEC.BATDCOMMAND.COM12310设A盘的目录结构为(画方框的为目录)如果当前盘为C盘,A盘的当前目录为\D2,则下列对A盘上文件QR.C的指定中,合法的是A\D2\D4\QR.CBD4\QR.CCA:D4\QR.CDA:D2\D4\QR.C12411为了要将A盘当前目录(不是根目录)中所有扩展名为.C的文件同名复制到A盘的目录\USER中,正确的命令是ACOPYA:*.CUSER\*.CBCOPYA:*.CA:\USERCCOPYA:*.CA:USER\DCOPYA:*.CA:USER\*.C12512为了在屏幕上一次显示当前盘当前目录下的所有扩展名为.TXT的文件内容,下列命令中正确的是ATYPE*.TXTBTYPE*.TXTCONCCOPY*.TXTCONDCOPY*.TXTCON12613设当前盘为A盘,为了将当前盘当前目录下的文件AB
1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是ACOPYC:\XYZ.TXT+AB
1.TXTBCOPYAB
1.TXTC:\XYZ.TXTCTYPEAB
1.TXTC:\XYZ.TXTDCOPYAB
1.TXT+C:\XYZ.TXTC:\XYZ.TXT12714设A盘为启动盘,其目录结构为(画方框的为目录)其中文件AUTOEXEC.BAT的内容为MD\XYZCD\DOS\USER则由A盘启动成功后,A盘的当前目录是A\DOS\USERB\XYZC\D\DOS12815下列DOS命令中为内部命令的是ACOMPBPATHCPRINTDFORMAT12916设当前盘为C盘,所用的所有软盘已格式化且容量相同,则下列DOS命令中错误的是ADISKCOPYA:C:BDISKCOPYA:A:CCOPYA:*.*DCOPYA:*.*C:13017下列DOS命令中,有错误的是ATYPEAAB.FORPRNBTYPEAB.FORCCOPY*.CPRNDCOPYCONPRN13118设当前盘为C盘,在当前目录下有全部的DOS系统文件与批处理命令文件AB.BAT,且该批处理命令文件的内容为FORMATA:/4MD\XYZCD\XYZRD\XYZMD\XYZ如果在
1.2软盘驱动器A中插入一张360K容量的软盘片,执行批自理命令文件AB.BAT后,结果A盘的目录结构是A根目录B根目录----子目录XYZ----子目录XYZC根目录─┬─子目录XYZ└─子目录XYZD根目录----子目录XYZ13219下列带有通配符的文件名,能代表文件ABC.FOR的是A*BC.BA.*CBC.*D.13320设当前盘为C盘,且C盘上含有子目录\DOS,A盘为只有根目录的启动盘(根目录下只有三个DOS系统文件与扩展名为.C的文件)下列命令组中的两个命令从效果上可以认为等价的是ADEL\DOS与RD\DOSBFORMATA:与DELA:*.*CFORMATA:/S与DELA:*.DCOPYA:F1F2与RENA:F1F213421设a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是AabBa=bCa||b+cb-cD!ab!c||113522请读程序片段inti=65536;printf%d\ni;上面程序片段的输出结果是A65536B0C有语法错误,无输出结果D-113623设ch是char型变量,其值为A,且有下面的表达式ch=ch=Ach=Zch+32:ch上面表达式的值是AABaCZDz13724若x和y都是int型变量,x=100,y=200,且有下面的程序片段printf%dxy;上面程序片段的输出结果是A200B100C100200D输出格式符不够,输出不确定的值13825下面各语句行中,能正确进行赋字符串操作的语句行是Acharst
[4]
[5]={ABCDE};Bchars
[5]={ABCDE};Cchar*s;s=ABCDE;Dchar*s;scanf%ss;13926若k是int型变量,且有下面的程序片段k=-3ifk=0printf####elseprintf;上面程序片段的输出结果是A####BC####D有语法错误,无输出结果14027若x是int型变量,且有下面的程序片段forx=3;x6;x++printfx%2**%d:##%d\nx;上面程序片段的输出结果是A**3B##3C##3D**3##4##4**4**4##5**5**5##514128请读程序#includestdio.hfchar*s{char*p=s;while*p!=\0p++;returnp-s;}main{printf%d\nfABCDEF;}上面程序的输出结果是A3B6C8D014229请读程序#includestdio.hmain{inta;floatbc;scanf%2d%3f%4fabc;printf\na=%db=%fc=%f\nabc;}若运行时从键盘上输入9876543210CRCR表示回车,则上面程序的输出结果是Aa=98b=765c=4321Ba=10b=432c=8765Ca=98b=
765.000000c=
4321.000000Da=98b=
765.0c=
4321.014330请读程序#includestdio.hmain{intn
[2]ijk;fori=0;i2;i++n[i]=0;k=2fori=0;ik;i++forj=0;jk;j++n[j]=n[j]+1;printf%d\nn[k];}上面程序的输出结果是A不确定的值B3C2D114431请读程序片段charstr[]=ABCD*p=str;printf%d\n*p+4;上面程序的输出结果是A68B0C字符D的地址D不确定的值14532请读程序片段#includestdio.hmain{intab;fora=1;b=1;a=100;a++{ifb=20break;ifb%3==1{b+=3;continue;}b-=5;}printf%d\na;}上面程序的输出结果是A7B8C9D1014633若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元int*p;p=__________mallocsizeofint;则应填入AintBinst*C*intDint*14734请读程序片段字符串内没有空格:printf%d\nstrlenATS\n012\1\\;上面程序片段的输出结果是A11B10C9D814835请读程序:#includestdio.h#includestring.hmain{char*s1=AbCdEf*s2=aB;s1++;s2++;printf%d\nstrcmps1s2;}上面程序的输出结果是A正数B负数C零D不确定的值14936请读程序:#includestdio.hfuncintaintb{intc;c=a+b;returnc;}main{intx=6y=7z=8r;r=funcx--y==x+yz--;printf%d\nr;}上面程序的输出结果是A11B20C21D3115037请读程序:#includestdio.hinta[]={2468};main{inti;int*p=a;fori=0;i4;i++a[i]=*p++;printf%d\na
[2];}上面程序的输出结果是A6B8C4D215138请读程序:#includestdio.hcharfunchar*c{if*c=Z*c=A*c-=A-a;return*c;}main{chars
[81]*p=s;getss;while*p{*p=funp;putchar*p;p++;}putchar\n;}若运行时从键盘上输入OPENTHEDOORCRCR表示回车,则上面程序的输出结果是AoPENtHEdoorBopenthedoorCOPENTHEDOORDOpenTheDoor15239请读程序:#includestdio.hvoidfunint*s{staticintj=0;dos[j]+=s[j+1];while++j2;}main{intka
[10]={12345};fork=1;k3;k++funa;fork=0;k5;k++printf%da[k];}上面程序的输出结果是A34756B23445C35743D1234515340请读程序:#includestdio.h#defineSUBXYX*Ymain{inta=3b=4;printf%dSUBa++b++;}上面程序的输出结果是A12B15C16D2015441请读程序:#includestdio.hmain{intmun=0;whilenum=2{num++;printf%d\nnum;}}上面程序的输出结果是A1B1C1D122233415542请读程序:#includestdio.hmain{floatxy;scan%fx;ifx
0.0y=
0.0elseifx
5.0x!=
2.0y=
1.0/x+
2.0;elseifx
10.0y=
1.0/x;elsey=
10.0;printf%f\ny;}若运行时从键盘上输入
2.0CRCR表示回车,则上面程序的输出结果是A
0.000000B
0.250000C
0.500000D
1.00000015643请读程序:#includestdio.hmain{intx=1y=0a=0b=0;switchx{case1:switchy{case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printfa=%db=%d\nab;}上面程序的输出结果是Aa=2b=1Ba=1b=1Ca=1b=0Da=2b=215744若有下面的程序片段:inta
[12]={0}*p
[3]**ppi;fori=0;i3;i++p[i]=a[i*4];pp=p;则对数组元素的错误引用是App
[0]
[1]Ba
[10]Cp
[3]
[1]D**p+2+215845请读程序:#includemath.h#includestdio.hmain{floatxyz;scan%f%fxy;z=x/y;while1{iffabsz
1.0{x=y;y=z;z=x/y;}elsebreak}printf%f\ny;}若运行时从键盘上输入
3.
62.4CRCR表示回车,则输出的结果是A
1.500000B
1.600000C
2.000000D
2.40000015946请读程序:#includestdio.hfinb[]intn{intir;r=1;fori=0;i=n;i++r=r*b[i];returnr;}main{intxa[]={23456789};x=fa3;printf%d\nx;}上面程序的输出结果是A720B120C24D616047请读程序:#includestdio.h#includestring.hvoidfunchar*s{chara
[10];strcpyaSTRING;s=a;}main{char*p;funp;x=fa3;printf%s\np;}上面程序的输出结果是└┘表示空格ASTRING└┘└┘└┘└┘BSTRINGCSTRING└┘└┘└┘D不确定的值16148若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是As-next=NULL;p=p-next;p-next=s;Bp=p-next;s-next=p-next;p-next=s;Cp=p-next;s-next=p;p-next=s;Dp=*p.next;*s.next=*p.next;*p.next=s;16249请读程序:#includestdio.hvoidfunfloat*plfloat*p2float*s{s=float*calloc1sizeoffloat;*s=*p1+*p2++;}main{floata
[2]={
1.
12.2}b
[2]={
10.
020.0}*s=a;funabsprintf%f\n*s;}上面程序的输出结果是A
11.100000B
12.100000C
21.100000D
1.10000016350请读程序:#includestdio.h#includestring.hvoidfunchar*wintm{chars*p1*p2;p1=w;p2=w+m-1;whilep1p2{s=*p1++;*p1=*p2--;*p2=s;}}main{chara[]=ABCDEFG;funastrlena;putsa;}上面程序的输出结果是AGFEDCBABAGADAGACAGAAGAGDGAGGAGA
二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上【1】-【20】序号后的横线上,答在试卷上不得分1641DOS命令分为内部命令与外部命令,XCOPY命令是【1】命令1652为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该用命令【2】1663设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C在当前目录下的子目录W中现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如需指定A盘上该文件应写成【3】1674用十六进制给存储器中的字节地址进行编号,其地址编号是从0000到FFFF,则该存储器的容量是【4】KB1685设有两个八位二进制数00010101与01000111相加,其结果的十进制表示为【5】1696数学式子写成C语言表达式是【6】1707下面程序的输出结果是【7】#includestdio.hmain{staticcharb[]=Goodbye;char*chp=b
[7];while--chp=b
[0]putchar*chp;putchar\n;}1718下面程序的输出结果是【8】#includestdio.hvoidasintxintyint*cpint*dp{*cp=x+y;*dp=x-y;}main{inta=4b=3cd;asabcd;printf%d%d\ncd;}1729请读程序:#includestdio.hmainintargcchar*argv[]{inti;printf%d\nargc;fori=0;i=argc+1;i++printf%sargv[i];printf\n;}若上面的程序编译、连接后生成可执行文件ABC.EXE,则输入以下命令行abcfile1file2CRCR表示回车程序执行后的输出结果是【9】17310条件“20x30或x-100”的C语言表达式是【10】17411设二进制数a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,则二进制数b应是【11】17512若有以下说明和定义语句,则变量w在内存中所占的字节数是【12】unionaa{floatxy;charc
[6];};structst{unionaav;floatw
[5];doubleave;}w;17613下面程序的输出结果是【13】#includestdio.h#defineN5funchar*scharaintn{intj;*s=a;j=n;whilees[j]j--;returnj;}main{chars[N+1];intkp;fork=1;k=N;k++s[k]=A+k+1;printf%d\nfunsEN;}17714下面程序的输出结果是【14】#includestdio.hvoidfunchar*a1char*a2intn{intk;fork=0;kn;k++a2[k]=a1[k]-A-3+26%26+A;a2[n]=\0;}main{chars1
[5]=ABCDs2
[5];funs1s24;putss2;}17815下面的findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空findmaxints[]intt{intkp;forp=0k=p;pt;p++ifs[p]s[k]【15】returnk;}17916下面程序的输出结果是【16】#includestdio.hfunintx{intp;ifx==0||x==1return3;p=x-funx-2;returnp;}main{printf%d\nfun9;}18017下面程序的输出结果是【17】#includestdio.hfunaintaintb{returna+b;}funbintaintb{returna-b;}subint*tintxinty{return*txy;}main{intx*p;p=funa;x=subp93;x+=subfunb83;printf%d\nx;}18118下面程序的输出结果是【18】#includestdio.hmain{char*p[]={BOOLOPKHSP};inti;fori=3;i=0;i--i--printf%c*p[i];printf\n;}18219为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是向结点的指针域),请填空datanextstructlink{chardata;【19】}node;18320下面的程序用来统计文件中字符的个数,请填空#includestdio.hmain{FILE*fp;longnum=0;iffp=fopenfname.datr==NULL{printfCantopenfile!\n;exit0;}while【20】{fgetcfp;num++;}printfnum=%d\nnum;fclosefp;}『完』1996年4月二级C语言笔试试卷参考答案一`选择题1~40题每题1分,41~50题每题2分,共60分1C2A3B4D5D6A7C8B9D10C11B12D13A14C15B16A17B18A19C20C21D22B23B24A25C26D27D28B29C30A31B32B33D34C35A36C37A38B39C40A41C42C43A44C45B46B47D48C49D50C二`填空题每空2分,共40分第2`3空允许小写或大小写混合使用,其它空均须与答案一样1外部2DIRC*.*3A:\X\Y\W\QR.C4645926powsinx2*a+b/a-b或sitx*sitx*a+b/a-b7eybdooG87193abc.exefile1file2注:两个答案每个1分1020xx30||x-100或20xx30||x-1001111110000123413314XYZA15k=p167171718SO19structlink*next20!feoffp或feoffp==0全国计算机等级考试二级笔试卷基础知识和C语言程序设计考试时间120分钟,满分100分1996年9月21日
1、选择题1-40每小题1分,41-50每小题2分,共60分下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分1841电子数字计算机最主要的工作特点是A高速度B高精度C存储程序与自动控制D记忆力强1852在微机的性能指标中,用户可用的内存储器容量通常是指AROM的容量BRAM的容量CROM和RAM的容量总和DCD-ROM的容量1863将十六制数176转换成十进制数是A366B268C374D2701874800个24×24点阵汉字字型库所需要的存储容量是A
7.04KBB
56.25KBC7200KBD450KB1885下列说法中正确的是A计算机体积越大,其功能就越强B在微机性能指标中,CPU的主频越高,其运算速度越快C两个显示器屏幕大小相同,则它们的分辨率必定相同D点阵打印机的针数越多,则能打印的汉字字体就越多1896某片软盘上已染有病毒,为防止该病毒传染计算机系统,正确的措施是A删除该软盘上所有程序B给该软盘加上写保护C将该软盘放一段时间后再用D将该软盘重新格式化1907下列设备中,只能作为输出设备的是ACONBNULCPRND鼠标器1918假设DOS系统文件与所有外部命令文件都在C盘根目录中,下列DOS命令中能正确执行的是ADELIBMBIO.COMBDISKCOPYC:A:CRDC:\DCOPYCOMMAND.COMA:1929若当前盘为C盘,在A盘目录\MY中只有文本文件FN.DAT,A盘当前目录为根目录,则查看该文件的内容可使用的命令是ATYPEMY\FN.DATBTYPEA:\MY\*.*CTYPE\MY\FN.DATDTYPEA:\MY\FN.DAT19310设所有的外部命令文件在C盘目录\DOS下.若当前盘为B盘,则要在容量为
1.2MB的驱动器A上格式化一张容量为360KB的软盘,正确的命令是AFORMATA:\360BC:\DOS\FORMATA:/4CFORMATA:\4DC:\DOS\FORMATA:\419411有一张DOS启动软盘,在根目录下用DIR命令显示出文件总数为20个,若用COPY命令把该软盘根目录下的文件复制到另一张软盘上,则最多能复制的文件个数是A18B19C20D2219512为列出A盘当前目录中文件标识符不超过三个字符、扩展名为任意的文件清单,可选用的命令是ADIR*.*BDIRA:.*CDIRA:*.DDIRA:\*.*19613为了将A盘当前目录\USER\AA中所有扩展名为.DAT的文件以同名复制到A盘目录\USER中,若当前盘为C盘,则可选用的命令是ACOPYA:\USER\AA*.DATBCOPYA:\USER\AA*.DATA:USERCCOPYA:\USER\AA*.DATA:DCOPYA:\USER\AA*.DATA:\USER19714对计算机软件正确的态度是A计算机软件不需要维护B计算机软件只要能复制得到就不必购买C受法律保护的计算机软件不能随便复制D计算机软件不必有备份19815下列DOS命令中,正确的是ATYPEA:\*.FORBCOPYA:\*.FORPRNCTYPEA:\*.FORPRNDCOPYA:\*.FORPRN19916下列四组DOS命令中,互相等价的一组是ACOPYA:*.*B:与DISKCOPYA:B:BCOPYABC.TXT+XYZ.TXT与TYPEXYZ.TXTABC.TXTCCOPYABC.TXT+XYZ.TXTXYZ.TXT与COPYXYZ.TXT+ABC.TXTDTYPE*.FORCON与COPY*.FORCON20017在计算机内部,一切信息存取、处理和传送的形式是AASCII码BBCD码C二进制D十六进制20118计算机的软件系统一般分为A系统软件、应用软件与各种字处理软件B操作系统、用户软件与管理软件C系统系统与应用软件D操作系统、实时系统与分时系统20219与二进制数
101.01011等值的十六制数为AA.BB
5.51CA.51D
5.5820320如果按字长来划分,微机可以分为8位机、16位机、32位机和64位机所谓32位机是指该计算机所用的CPUA同时能处理32位二进制数B具有32位的寄存器C只能处理32位二进制定点数D有32个寄存器20421下列语句中符合C语言语法的赋值语句是Aa=7+b+c=a+7;Ba=7+b++=a+7;Ca=7+bb++a+7Da=7+bc=a+7;20522在C语言中,要求运算数必须是整型的运算符是A%B/CD!20623已知字母A的ASCII码为十进制的65,下面程序的输出是A67DBBCCCDD不确定的值main{charch1ch2;ch1=A+5-3;ch2=A+6-3;printf%d%c\nch1ch2;}20724下面程序的输出是A0B1C3D不确定的值main{intx=10y=3;printf%d\ny=x/y;}20825若执行下面的程序时从键盘上输入3和4,则输出是A14B16C18D20main{intabs;scanf%d%dab;s=a;ifabs=b;s=s*s;printf%d\ns;}20926下面的程序A有语法错误不能通过编译B输出****C可以通过编译,但是不能通过连接,因而不能运行D输出####main{intx=3y=0z=0;ifx=y+zprintf****;elseprintf####;}21027下面的程序A输出的是1B输出的是1和-2C输出的是3和0D是死循环main{intx=3;do{printf%d\nX-=2;}while!--x;}21128下面程序的输出是A17B18C23D24main{intx=023;printf%d\n--x;}21229若执行下面的程序时从键盘上输入5,则输出是A7B6C5D4main{intx;scanf%dx;ifx++5printf%d\nx;elseprintf%d\nx--;}21330下面程序的输出是A3B4C1D2main{inta
[10]={12345678910}*p=a;printf%d\n*p+2;}21431执行下面程序中的输出语句,a的值是A65B20C15D10main{inta;printf%d\na=3*5a*4a+5;}21532下面程序的输出是A0123B04010C04515D14515main{enumteam{myyour=4hisher=his+10};printf%d%d%d%d\nmyyourhisher;}21633下面程序的输出是A003B012C103D112main{inta=-1b=4k;k=a++=0!b--=0;printf%d%d%d\nkab;}21734下面的程序片段所表示的数学函数关系是上面程序片段的输出结果是┌-1x0┌1x0││Ay=┤0x=0By=┤-1x=0││└1x0└0x0┌0x0┌-1x0││Cy=┤-1x=0Dy=┤1x=0││└1x0└0x0y=-1;ifx!=0ifx0y=1;elsey=021835下面函数的功能是A求字符串的长度B比较两个字符串的大小C将字符串x复制到字符串yD将字符串x连接到字符串y后面intfunlchar*x{char*y=x;while*y++;returny-x-1;}21936若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feoffp的返回值是AEOFB-1C非零值DNULL22037根据下面的定义,能打印出字母M的语句是Aprintf%c\nclass
[3].name;Dprintf%c\nclass
[2].name
[0];Bprintf%c\nclass
[3].name
[1];Cprintf%c\nclass
[2].name
[1];structperson{charname
[9];intage;};structpersonclass
[10]={John17Paul19Mary18Adam16};22138下面程序的输出是A-1B0C1D不确定的值main{intx=100a=10b=20ok1=5ok2=0;ifabifb!=15if!ok1x=1;elseifok2x=10;x=-1;printf%d\nx;}22239下面程序的输出是AxyzabcABCBzabcABCCyzabcABCDxyabcABC#includestdio.h#includestring.hmain{char*p1=abc*p2=ABCstr
[50]=xyz;strcpystr+2strcatp1p2;printf%s\nstr;}22340下面程序的输出是A741B852C963D875421main{inty=9;for;y0;y--{ify%3==0{printf%d--y;continue;}}.}22441下面程序的输出是A100B160C120D64main{charx=040;printf%d\nx=x1;}22542下面程序的输出是A0B1C3D6main{structcmplx{intx;inty;}cnum
[2]={1327};printf%d\ncnum
[0].y/cnum
[0].x*cnum
[1].x;}22643下面程序的输出是A23B26C33D36intaa
[3]
[3]={{2}{4}{6}};main{inti*p=aa
[0]
[0];fori=0;i2;i++{ifi==0aa[i][i+1]=*p+1;else++p;printf%d*p;}}22744下面程序的输出是A23B24C25D26voidprtvint*xprintf%d\n++*x;}main{inta=25;prtva;}22845下面程序的输出是A3B4C6D9fun3intxstaticinta=3;a+=x;returna;}main{intk=2m=1n;n=fun3k;n=fun3m;printf%d\nn;}22946已知字符0的ASCII码为十六进制的30,下面程序的输出是A6B9C0D3main{union{unsignedcharc;unsignedinti
[4];}z;z.i
[0]=0x39;z.i
[1]=0x36;printf%c\nz.c;}23047下面程序的输出是A60B68C99D108main{inta
[3]
[4]={1357911131517192123};int*p
[4]=aijk=0;fori=0;i3;i++forj=0;j2;j++k=k+**p+i+j;printf%d\nk;}23148下面程序的输出是A1B2C7D10intm=13;intfun2intxinty{intm=3;returnx*y-m;}main{inta=7b=5;printf%d\nfun2ab/m;}23249下面程序的输出是A32B16C8D24typedefunion{longx
[2];inty
[4];charz
[8];}MYTYPE;MYTYPEthem;main{printf%d\nsizeofthem;}23350下面程序的输出是AABCDBACDDABCDBCDBCABCCDCBABDDAAchars[]=ABCD;main{char*p;forp=s;ps+4;p++printf%s\np;}
二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上【1】-【20】序号后的横线上,答在试卷上不得分23418位无符号二进制数能表示的最大十进制数【1】2352将原码表示的有符号二进制数11001101转换成十进制数是【2】2363DOS系统的命令处理程序是【3】2374若当前盘为A盘,要显示C盘的当前目录又不改变当前盘,使用的命令是【4】2385硬盘C的目录结构示意图如下其中AUTOEXEC.BAT的内容为PROMPT$p$gCDD1现用C盘启动后,系统提示符为【5】2396下面程序的输出是【6】main{intx=2;whilex--;printf%d\nx;}2407下面程序的输出是【7】main{inta[]={246}*prt=a
[0]x=8yz;fory=0;y3;y++z=*prt+yx*ptr+y:x;printf%d\nz;}2418下面程序的输出是【8】main{intarr
[10]ik=0;fori=0;i10;i++arr[i]=i;fori=1;i4;i++k+=arr[i]=i;printf%d\nk;}2429已知函数isalphach的功能是判断自变量ch是否是字母,若是,函数值为1,否则为0下面程序的输出是【9】#includextype.h#includestring.hvoidfun4charstr[]{intij;fori=0j=0;str[i];i++ifisalphastr[i]str[j++]=str[i];str[j]=\0;}main{charss
[80]=Itis!;fun4ss;printf%s\nss;}24310下面程序的输出是【10】#definePRarprintf%darmain{intja[]={13579111315}*p=a+5;forj=3;j;j--{switchj{case1:case2:PR*p++;break;case3:PR*--p;}}}24411下面程序的输出是【11】unsignedfun6unsignednum{unsignedk=1;do{k*=num%10;num/=10;}whilenum;returnk;}main{unsignedn=26;printf%d\nfun6n;}24512下面程序的输出是【12】longfun5intn{longs;ifn==1||n==2s=2;elses=n+fun5n-1;returns;}main{longx;x=fun54;printf%ld\nx;}24613下面invert函数的功能是将一个字符串str的内容颠倒过来请填空#includestring.hvoidinvertcharstr[]{intij【13】;fori=0j=strlenstr【14】;ij;i++j--{k=str[i];str[i]=str[j];str[j]=k;}}24714下面min3函数的功能是计算单向循环链表first中每3个相邻结点数据域中值的和,返回其中最小的值请填空structnode{intdata;structnode*link;};intmin3structnode*first{structnode*p=first;intmm3=p-data+p-link-data+p-link-link-data;forp=p-link;p!=first;p=【15】intmm3=p-data+p-link-data+p-link-link-data;{m=p-data+p-link-data+p-link-link-data;if【16】m3=m;}returnm3;}24815下面h函数的功能是计算如下数学函数H的值请填空doublefghdouble*fdoubleadouble*gdoublebdoublexdoubley{return【17】;}doublehdoubleadoublebreturnfghsincosab*fgh【18】];}24916下面pi函数的功能是根据以下的公式,返回满足精度ε要求的π值请填空doublepidoubleeps{doubles=
0.0t=
1.0;intn;for【19】;teps;n++{s+=t;t=n*t/2*n+1;}return
2.0*【20】;}『完』1996年9月二级C语言笔试试卷参考答案一选择题1~40题每题1分,41~50题每题2分,共60分1C2B3C4B5B6D7C8D9D10B11C12B13D14C15D16B17C18C19D20A21D22A23A24C25B26D27B28B29B30A31C32C33C34C35A36D37D38A39D40B41D42D43A44D45C46B47A48B49C50A
二、填空题每空2分,共40分1【1】2252【2】-773【3】COMMAND.COM4【4】CDC:5【5】C:\D16【6】-17【7】68【8】129【9】Itis10【10】991111【11】1212【12】913【13】k14-114【15】p-link【16】mm或m=m3或m3=m15【17】fxy/gy-x或*fx+y/gy-x或fx+y/*gy_x或*f或*fx+y/*gy-x【18】cossinab16【19】n=1【20】s全国计算机等级考试二级笔试卷基础知识和C语言程序设计考试时间120分钟满分100分1997年4月
2、选择题1-40每小题1分41-50每小题2分共60分下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分2501下列设备中只能作为输入设备的是A磁盘驱动器B鼠标器C存储器D显示器2512下列DOS组合控制键中,能使标准输出同时送到屏幕与打印机的是ACtrl+BreakBCtrl+PCCtrl+CDCtrl+H2523通常所说的386机是A8位机B16位机C32位机D64位机2534二进制数01100100转换成十六进制数是A64B63C100D1442545十六进制数100转换成十进制数是A1024B512C256D1282556对于存有重要数据的
5.25英寸软盘,防止计算机病毒感染的方法是A不要与有病毒的软盘放在一起B在写保护口贴上胶条C保持软盘清洁D定期对软盘格式化2567在启动DOS系统时,启动盘的根录下必须包含的文件是ASTART.COMBCOMMAND.COMCFORMAT.COMDBOOT.COM2578DOS系统启动后,下列文件中常驻内存的是ADOS.COMBCOMMAND.COMCDISKCOPY.COMDSYS.COM2589下列名字中,不能作为DOS磁盘文件名的是AJTUB93GZ.PRGCCONDATTT.BAS25910下列命令中属于内部命令的是ASYSBCOMPCDIRDDISKCOMP26011下列文件名中,能与ABC.匹配的是AAB
12.CBABCD.FORCABC.TXTDABCD.C26112要列出当前盘当前目录中第三个字符为B的所有文件的清单,可使用的命令为ADIR**B*.*BDIRB*.CDIRB.*DDIRB*.*26213设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1,若要进入子目录D2,可使用的命令为ACDD2BCDD2\CCD\D2DCDD1\D226314设当前盘为C盘,A盘当前目录为根目录为了删除A盘目录\WS下扩展名为.TXT的所有文件,可用的命令为ADELWS\*.TXTBDEL\WS\*.TXTCDELA:\WS\.TXTDDELA:WS\*.TXT26415设当前盘为C盘,C盘当前目录为\AAA\BBB\A\B\X下列命令中能正确执行的是AMD\AAA\BBB\ABMDXCMD\DMD\AAA\BBB\A\B\X26516在下列各组的两个命令中,根据给定的条件,执行效果互相等价的是ADEL\DOS与RD\DOS当前盘上有目录\DOSBFORMATA:与DELA:*.*A盘为启动盘CDISKCOPYA:B:与COPYA:*.*B:A盘为启动盘DCOPYF1F2与TYPEF1F2当前盘当前目录下有文件F126617为了在
1.2MB的高密驱动器A中格式化一张360KB的启动盘,可用的命令为AFORMATA:BFORMATA:/S/1CFORMATA:/S/4DFORMATA:/S26718要在打印机上输出当前盘当前目录下扩展名为.TXT的所有文件内容,正确的命令为ACOPY*.TXTPRNBCOPY*.TXTPRNCTYPE*.TXTPRNDTYPE*.TXTPRN26819设B盘目录结构如下:设B盘的当前目录为\F2,要将A盘当前目录下的文件P.BAS复制到B盘的F3子目录中,可用的命令为ACOPYP.BASB:BCOPYA:P.BASB:\CCOPYA:P.BASB:\F3DCOPYA:P.BASB:F3\26920设当前盘为A盘,要将B盘当前目录下的两个文件A.TXT与X.TXT连接后以文件名Y.TXT存放到A盘的当前目录中,可用的命令为ACOPYA.TXT+X.TXTA:Y.TXTBCOPYB:A.TXT+X.TXTA:Y.TXTCCOPYB:A.TXT+B:X.TXTY.TXTDCOPYB:A.TXT+B:X.TXTY.TXT27021C语言中最简单的数据类型包括A整型、实型、逻辑型B整型、实型、字符型C整型、字符型、逻辑型D整型、实型、逻辑型、字符型27122C语言中运乍对象必须是整型数的运算符是A%B\C%和\D**27223为表示关系x≥y≥z应使用C语言表达式Ax=yy=zBx=yANDy=zCx=y=zDx=yy=z27324下述对C语言字符数组的描术中错误的是A字符数组可以存放字符串B字符数组中的字符串可以整体输入、输出C可以在赋值语句中通过赋值运算符=对字符数组整体赋值D不可以用关系运算符对字符数组中的字符串进行比较27425设有如下定义:intx=10y=3z;则语句printf%d\nz=x%yx/y;的输出结果是A1B0C4D327526以下程序的输出结果是main{intx=10y=10;printf%d%d\nx----y;}A1010B99C910D10927627定义如下变题和数组:inti;intx
[3]
[3]={123456789};则下面语句的输出结果是fori=0;i3;i++printf%dx[i][2-1];A159B147C357D36927728若要求在if后一对圆括号中表示a不等于0的关系则能正确表示这一关系的表达式为Aa0B!aCa=0Da27829阅读程序:#includestdio.hmain{inta
[10]={1234567890}*p;p=a;printf%x\np;printf%x\np+9;}该程序有两个printf语句如果第一个printf语句输出的是194则第二个printf语句的输出结果是A203B204C1a4D1a627930设有如下函数定义:intfchar*s{char*p=s;while*p!=\0p++;returnp-s;}如果在主程序中用下面的语句调用上述函数则输出结果为printf%d\nfgoodbey!;A3B6C8D028031以下说法中正确的是AC语言程序总是从第一个的函数开始执行B在C语言程序中要调用的函数必须在main函数中定义CC语言程序总是从main函数开始执行DC语言程序中的main函数必须放在程序的开始部分28132执行下面的程序后a的值为main{intab;fora=1b=1;a=100;a++{ifb=20break;ifb%3==1{b+=3;continue;}b-=5;}}A7B8C9D1033以下程序段的输出结果是intx=3;do{printf%3dx-=2;}while!--x;A1B30C1-2D死循环28234定义如下变量:intn=10;则下列循环的输出结果是whilen7{n--;printf%d\nn;}A10B9C10D9989887877628335两次运行下面的程序如果从键盘上分别输入6和4则输出结果是main{intx;scanf%dx;ifx++5printf%dx;elseprintf%d\nx--;}A7和5B6和3C7和4D6和428436设有如下定义:char*aa
[2]={abcdABCD};则以下就法中正确的是Aaa数组成元素的值分别是abcd和ABCDBaa是指针变量它指向含有两个数组元素的字符型一维数组Caa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址Daa数组的两个元素中各自存放了字符a和A的地址28537以下程序的输出结果是main{inta=-1b=4k;k=++a〈0!b--〈=0;printf%d%d%d\nkab;}A104B103C003D00428638设有以下定义:inta
[4]
[3]={123456789101112};int*prt
[3]=a*p=a
[0];则下列能够正确表示数组元素a
[1]
[2]的表达式是A**prt+1
[2]B**p+5C*prt+1+2D**a+1+228739下列程序的输出结果是main{char*p1*p2str
[50]=xyz;p1=abcd;p2=ABCD;strcpystr+2strcatp1+2p2+1;printf%sstr;}AxyabcABBabcABzCABabczDxycdBCD28840执行下面的程序后a的值是#defineSQRXX*Xmain{inta=10k=2m=1;a/=SQRk+m/SQRk+m;printf%d\na;}A10B1C9D028941下列程序执行后输出的结果是#includestdio.hfinta{intb=0;staticc=3:a=c++b++;returna;}main{inta=2ik;fori=0;i〈2;i=++〉k=fa++;printf%d\nk;}A3B0C5D429042下列程序的输出结果是main{inta
[5]={246810}*P**k;p=a;k=p;printf%d*p++;printf%d\n**k;}A44B22C24D4629143阅读下列程序:main{intn
[3]ijk;fori=0;i〈3;i++〉n[i]=0;k=2;fori=0;i〈k;i++〉forj=0;j〈k;j++〉n[j]=n[i]+1;printf%d\nn
[1];}下述程序运行后输出结果是A2B1C0D329244字符0的ASCII码的十进制数为48且数组的第0个元素在低位则以下程序的输出结果是#includestdio.hmain{union{inti
[2];longk;charc
[4];}r*s=r;s-i
[0]=0x39;s-i
[1]=0x38;printf%c\ns-c
[0]}A39B9C38D829345设有以下定义:typedefunion{longi;intk
[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;则下列语句的执行结果是printf%dsizeofstructdate+sizeofmax;A25B30C18D829446执行以下程序后y的值是main{inta[]={246810};inty=1x*p;p=a
[1];forx=0;x3;x++y+=*p+x;printf%d\ny;}A17B18C19D2029547下列程序执行后输出的结果是intd=1;funintq{intd=5;d+=p++;printf%d.d;}main{inta=3;funa;d+=a++;printf%d\nd;}A84B96C94D8529648下列程序的输出结果是main{charch
[2]
[5]={69348254}*p
[2];intijs=0;fori=0;i2;i++p[i]=ch[i];fori=0;i2;i++forj=0;p[i][j]\0p[i][j]=9;j+=2s=10*s+p[i][j]-0;printf%d\ns;A6385B69825C63825D69382529749以下程序的输出结果是futint**sintp
[2]
[3]{**s=p
[1]
[1];}main{inta
[2]
[3]={1357911}*p;p=int*mallocsizeofint;futpa;primtf%d\n*p;}A1B7C9D1129850以下程序的输出结果是#includectype.hspacechar*str{intit;charts
[81];fori=0t=0;str[i]!=\0;i+=2if!isspace*str+i*str+i!=ats[t++]=toupperstr[i];ts[t]=\0;strcpystrts;}mian{chars
[81]={abcdefg};spaces;putss;}AabcdegBbcdeCABCDEDBCDE
二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分2991十进制数
112.375转换成十六进制数为【1】3002存储200个32×32点阵的汉字信息需【2】KB3013数字符号0的ASCII码十进制表示为48,数字符号9的ASCII码十进制表示为【3】3024DOS命令分为内部命令与外部命令,TREE命令属于【4】命令3035自动批处理文件的文件名为【5】3046表示条件:10x100或者说x0的C语言表达式是【6】3057下列程序的输出结果是【7】main{charb[]=ABCDEFG;char*chp=b
[7];while--chpb
[0]putchar*chp;putchar\n;}3068下列程序的输出结果是【8】intastintxintyint*cpint*dp{*cp=x+y;*dp=x-y;}main{intabcd;a=4;b=3;astabcd;printf%d%d/ncd;}3079以下程序的功能是:人键盘上输入若干个学生的成绩统计并输出最高成绩和最低成绩当输入负数时结束输入.请填空.main{floatxamaxamin;scanf%fx;amax=x;amin=x;while【9】{ifxamaxamax=x;if【10】amin=x;scanf%fx;}printf\namax=%f\namin=%f\namaxamin;}30810下面程序通过函数average计算数组中各元素的平均值请填空.floataverageint*paintn{inti;floatavg=
0.0;fori=0;in;i++avg=avg+【11】;avg=【12】;returnavg;}main{intia
[5]={246810};floatmean;mean=averagea5;printfmean=%f\nmean;}30911阅读程序:#includestring.h#includestdio.hstrlechara[]charb[]{intnum=0n=0;while*a+num!=\0num++;whileb[n]{*a+num=b[n];num++;n++;}returnnum;}main{charstr1
[81]str2
[81]*p1=str1*p2=str2;getsp1;getsp2;printf%d\nstrlep1p2;}运行上面程序如果从键盘上输入字符串qwerty和字符串abcd则程序的输出结果是【13】31012以下程序的输出结果是【14】funintnint*s{intf1f2;ifn==1||n==2*s=1;else{funn-1f1;funn-2f2;*s=f1+f2;}}main{intx;fun6x;printf%d\nx;}31113阅读程序:main{charstr1[]=howdoyoudostr2
[10];char*p1=str1*p2=str2;scanf%sp2;printf%sp2;printf%s\np1;}运行上面的程序输入字符串HOWDOYOUDO则程序的输出结果是【15】31214以下程序由终端输入一个文件名然后把从终端键盘输入的字符依次存放到该文件中用#作为结束输入的标志.请填空.#includestdio.hmain{FILE*fp;charchfname
[10];printflnputthenameoffile\n;getsfname;iffp=【16】==NULL{printfCannotopen\n;exit0;}printfEnterdata\n;whilech=getchar!=#fputc【17】fp;fclosefp;}31315以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾单向链表的头指针作为函数值返回.请填空:#includestdio.hstructlist{chardata;structlist*next;};structlist*creat{structlist*h*p*q;charch;h=【18】mallocsizeofstructlist;p=q=h;ch=getchar;whilech!={p=【19】mallocsizeofstructlist;p-data=ch;p-next=p;q=p;ch=getchar;}p-next=\0;【20】}〖完〗1997年4月二级C笔试试卷参考答案一选择题1~40题每题1分41~50题每题2分共60分1B2B3C4A5C6B7B8B9C10C11D12D13C14D15B16D17C18A19C20D21B22A23A24C25D26D27C28D29D30C31C32B33C34B35A36D37D38D39D40B41D42C43D44B45B46C47A48A49C50D二填空题每空2分共40分1至5题中所有字母都允许大`小写或大小写混合1【1】
70.62【2】25答25KB不扣分3【3】574【4】外部答外部命令不扣分5【5】AUTOEXEC.BAT答AUTOEXEC扣1分6【6】x10x100││x0或1010x100或0x││10x100并且括号有无都可以7【7】GFEDCB8【8】719【9】x=
0.0或!x0或!x
0.0或
0.0=x或!
0.0x或!0x10【10】xx或amin=x【11】*pa+i或pa[i]【12】avg/n或avg/floatn或avg/doublen11【13】1012【14】813【15】HOWhowdoyoudo说明:HOW和how之间有无空格均可14【16】fopenfnamew说明:w开头的字符串均可【17】ch15【18】structlist*【19】structlist*【20】returnh;或returnh;全国计算机等级考试二级笔试题基础知识和C语言程序设计(考试时间120分钟,满分100分)1997年9月21日
一、选择题(1-40每小题1分,41-50每小题2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分11应用软件是指A所有能够使用的软件B能被各应用单位共同使用的某种软件C所有微机上都应使用的基本软件D专门为某一应用目的而编制的软件22下列述叙中错误的是A计算机要经常使用不要长期闲置不用B为了延长计算机的寿命,应避免频繁开关计算机C在计算机附近应避免磁场干扰D计算机用几小时后,应关机一会儿再用33下列字符中,ASCII码值最小的是AABaCZDx44用晶体管作为电子器件制成的计算机属于A第一代B第二代C第三代D第四代55下列各不同进制的四个无符号数中,最小的数是A110110012B378C7510D2A1666二进制数
1110111.11转换成十六进制数是A
77.CB
77.3CE
7.CDE
7.377下列各无符号十进制数中,能用八位二进制表示的是A296B333C256D19988计算机的软件系统可分类为A程序与数据B系统软件与应用软件D操作系统与语言处理程序D程序、数据与文档99486机中的CPU同时能处理的二进制位数为A8B16C32D641010在使用计算机的过程中,需要重新启动DOS,则要A按Ctrl+Break键B按^C键C按Ctrl+Alt+Del键D按^H键1111现要从软盘启动DOS软盘中已存有DOS系统,设有如下一些操作:
①打开计算机电源;
②将该软盘插入A驱动器;
③关好A驱动器门则冷启动的操作顺序应为A
①→
②→
③B
③→
②→
①C
②→
①→
③D
②→
③→
①1212设当前盘中某一文件路径为\A\C\B\ABC.C,当前目录为\A下列命令中错误的是ACD..BRD\A\C\BCTYPE\A\C\B\ABC.CDTYPEC\B\ABC.C1313设当前盘中的根目录下有一子目录AB,在子目录AB下有一文件PQ.BAS现要查看文件PQ.BAS的内容,应使用命令ATYPE\ABPQ.BASBTYPE\AB\PQ.BASCTYPE\PQ.BASDDIR\AB\PQ.BAS1414自动批处理文件必须放在AC盘根目录中BA盘根目录中C启动盘的任一个目录中D启动盘的根目录中1515设当前盘当前目录为C:\USER\XY\P,且当前盘当前目录为空,则下列命令中能正确执行的是ARDC:\USER\XY\PBRDUSER\XY\PCMD\USER\XY\P\USERDMD\USER\XY\P\X\Y1616下列DOS命令中,合法的是ADISKCOMPA.CB.CBTYPEA.CB.CCCOMPA:B:DCOMPA:A:1717设当前盘为C盘,所用的所有软盘已格式化,且容量相同,则下列DOS命令中错误的是ADISKCOPYA:A:BCOPYA:*.*CCOPY*.*DCOPYA:*.*C:1818下列DOS命令中错误的是ATYPEA.TXTPRNBTYPEA.TXTPRNCCOPY*.TXTPRNDCOPYCONPRN1919下列四组DOS命令中,互相等价的一组是ACOPYA:*.*B:与DISKCOPYA:B:BCOPYABC.TXT+XYZ.TXT与TYPEXYZ.TXTABC.TXTCCOPYABC.TXT+XYZ.TXTXYZ.TXT与COPYXYZ.TXT+ABC.TXTDTYPE*.FORCON与COPY*.FORCON2020设C盘目录结构如下:且C盘根目录下文件AUTOEXEC.BAT的内容为CDFORTRANCD\TC如果在A驱动器中插入一张根目录中只有扩展名为.C的若干文件即A盘中无DOS系统文件的软盘片,则由C盘启动DOS系统后,第一次键入下列命令中,正确的是ACOPYA:\*.CBCOPYA:\*.CTCCCOPYA:\*.CFORTRANDCDUSER2121C语言提供的合法的数据类型关键字是ADoubleBshortCintegerDChar2222在C语言中,合法的长整型常数是A0LB4962710C
0.054838743D
2.1869e102323表达式:10!=9的值是AtrueB非零值C0D12424合法的C语言中,合法的长整型常数是A\tBAC65DA2525若有说明和语句:inta=5;a++;此处表达式a++的值是A7B6C5D42626在下列选项中,不正确的赋值语句是A++t;Bn1=n2=n3=0;Ck=i==j;Da=b+c=1;2727若有说明:inti,j=7,*p=i;,则与i=j;等价的语句是AI=*P;B*P=*J;Ci=j;Di=**p;2828不能把字符串:Hello!赋给数组b的语句是Acharb
[10]={Hello!};Bcharb
[10];b=Hello!;Ccharb
[10];strcpybHello!;Dcharb
[10]=Hello!;2929若有以下说明:inta
[12]={123456789101112};charc=adg;则数值为4的表达式是Aa[g-c]Ba
[4]Ca[d-c]Da[d-c]3030若有以下说明:inta
[10]={12345678910}*p=a;则数值为6的表达式是A*p+6B*p+6C*p+=5Dp+53131若有以下说明:intw
[3]
[4]o={{01}{24}{58}};int*p
[4]=w;则数值为4的表达式是A*w
[1]+1Bp++*p+1Cw
[2]
[2]Dp
[1]
[1]3232若程序中有下面的说明和定义structabc{intx;chary;}structabcs1s2;则会发生的情况是A编译进错B程序将顺利编译`连接`执行C能顺利通过编译`连接`但不能执行D能顺利通过编译`但连接出错3333能正确表示a≥10或a≤0的关系表达式是Aa=10ora=0Ba=10│a=0Ca=10││a=0Da=10││a=03434下面程序的输出是main{intx=3y=6a=0;whilex++!=y+=o1{a+o=1;ify#includemain{charss
[10]=12345;strcatss6789;getsss;printf%s\nss;}AABCBABC9C123456ABCDABC4567893535下面程序的输出是main{char*a=12134211;intv1=0v2=0v3=0v4=0k;fork=0;s[k];k++switchs[k]{default:v4++;case1:v1++;case3:v3++;case2:v2++;}printfv1=%dv2=%dv3=%dv4=%d\nv1v2v3v4;}Av1=4v2=2v3=1v4=1Bv1=4v2=9v3=3v4=1Cv1=5v2=8v3=6v4=1Dv1=8v2=8v3=8v4=83636下面程序的输出是main{intk=11;printfk=%dk=%ok=%x\nkkk;}Ak=11k=12k=11Bk=11k=13k=13Ck=11k=013k=0xbDk=11k=13k=b3737若有以下程序段w和k都是整型变量:┆w=k;LB:ifw==0gotoLE;w--;printf*;gotoLB;LE:┆则不能与上面程序段等价的循环语句是Aforw=k;w!=0;w--printf*;Bforw=k;w;--wprintf*;Cw=k;Dw=k;whilew--!=0printf*;w++;do{w--;printf*;}whilew!=0;3838若有说明,double*pa;则能通过scanf语句正确给输入项读入数据的程序段是A)*p=a;scanf%lfp;Bp=double*malloc8;scanf%fp;Cp=a;scanf%lfa;Dp=a;scanf%lep;3939当执行下面程序且输入ABC时,输出的结果是#includestdio.h#includestring.hmain{charss
[10]=12345;getsss;printf%s\nss;}AABCBABC9C123456ABCDABC4567894040若有以下的说明和语句:main{intt
[3]
[2]*pt
[3]k;fprk=o;k3;k++pt[k]=t[k];}则以一选项中能正确表示t数组元素地址的表达式是At
[3]
[2]B*pt
[0]C*pt+1Dpt
[2]4141下面程序输出数组中的最大值,由s指针指向该元素.main{inta
[10]={67291105843}*p*s;flrp=as=a;p-a10;p++if------s=p;printfThemax:%d*s:}则在if语句中的判断表达式应该是ApsB*p*sCa[p]a[s]Dp-ap-s4242下面程序的输出是#includestring.hmain{char*a=abcdefgh;funa;putsa;}funchar*s{intx=0y;charc;fory=strlens-1;xy;x++y--{c=s[x];s[x]=s[y];s[y]=c;}}AabcdefghBhgfdecbaCdcbahgfeDhgfedcba4343若有以下函数调用语句funa+bxyfunn+kdab;在此函数调用语句中实参的个数是A)3B)4C)5D)64444下面程序的输出是main{intt=1;funfunt;}funinth{staticinta
[3]={123};intk;fork=0;k3;k++a[k]+=a[k]-h;fork=1;k3;k++printf%da[k];printf\n;returna[h];}A123B135C135D135159135048-1374545C语言中,函数的隐含存储类别是A)autoBstaticCexternD无存储类别4646下面程序的输出是intw=3;main{intw=10;printf%d\nfun5*w;}funintk{ifk==0returnw;returnfunk-1*k;}A360B3600C1080D12004747要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果能正确招待此功能的函数是A)funaint*xint*yBfunbintxinty{int*p;{intt;*p=*x;*x=*y;*y=*p;}t=x;x=y;y=t;}Cfuncint*xint*yDfundintxinty{*x=*y;*y=*x;}{*x=*x+*y;*y=*x-*y;*x=*x-*y;}4848要求函数的功能是在一维数组中查找值;若找到则返回所在的下标值,否则返回0;数列放在到中不能正确执行的函数是A)funaint*aintnintxBfunbint*aintnintx{*a=x;{intk;whilea[n]!=xn--;fork=1;k=n;k++returnn;ifa[k]==xreturnk;}return0;}Cfuncinta[]intnintxDfundinta[]intnintx{int*k;{intk=0;a
[0]=x;k=a+n;dowhile*k!=xk--;k++;returnk-n;whilekn+1a[k]!=x;}ifa[k]==xreturnk;elsereturn0;}4949若有下面的说明和定义,则sizeofstructaa的值是structaa{intr1;doubler2;floatr3;unionuu{charu1
[5];longu2
[2];}ua;}mya;A30B29C24D225050用十进制数表示表达式12/012的运算结果是A)1B)0C)14D)12
二、填空题每空2分,共40分请将每空的正确答案写在答题卡【1】-【20】序号的横线上,答在试卷上不得分511与八进制小数
0.1等值的十六进制小数为【1】522DOS命令分为内部命令和外部命令,SYS命令属于【2】533要打印输出当前盘当前目录下的所有扩展名为.DAT的文件内容,应使用的DOS命令为【3】544设当前系统提示符为C:\USER,执行命令PROMPT$p后,系统提示符变为【4】555要建立当前盘当前目录下的全部文件与下一级子目录的目录信息文件MYDIR,应使用的DOS命令为【5】566若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是【6】intab;scanfa=%bb=%dab;577函数mycmpchar*schat*t的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCOII码的差值,即当st时返回正值,当s等于t时返回0否则返回s和t的第一个不同字符的ASCOII码的差值即当st时返回正值当st时返回负值,请填空mycmpchar*schar*t{while*s==*t{if*s==\0return0;++s;++t;}return【7】;}588下面程序的输出是【8】#defineMAX5inta[MAX]k;main{fun1;fun3;fun2;fun3;printf\n;}fun1{fork=0;kMAX;k++a[k]=k+k;}fun2{inta[MAX]k;fork=0;k5;k++a[k]=k;}fun3{intk;fork=0;kMAX;k++printf%d*a+k:}599若有以下定义和语句,则使指针p指向值为36的数组元素的表达式是【9】inta
[10]={1923441737284936}*p;p=a;6010下面程序的输出是【10】main{enumem{em1=3em2=1em3};char*aa[]={AABBCCDD};printf%s%s%s\naa[em1]aa[em2]aa[em3];}6111下面函数要求用来求出两个整数之和,并通过形参传回两数相加之和值,请填空intaddintxinty【11】z{【12】=x+y;}6212有以下说明定义和语句,可用a.day引用结构体成员day请写出引用结构体成员a.day的其它两种形式【13】、【14】struct{intday;charmouth;intyear;}a*b;b=a;6313下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推请填空funintxintb[]{intk=0r;do{r=x%【15】;b[k++]=r;x/=【16】;}whilex;}6414现有如图所示的存储结构,每个结点含两个域,data是指向字符串的指针域,next是指向结点的指针域请填空完成此结构的类型定义和说明structlink{【17】;【18】;}*head;6515下面程序把从终端读入的文本用@作为文本结束标志)复制到一个名为bi.dat的新文件中,请填空66#includestdio.hFILE*fp;main{charch;iffp=fopen【19】==NULLexit0;whilech=getchar!=@fputcchfp;【20】〖完〗1997年9月基础知识和C语言程序设计答案及评分标准一.选择题1~40题每题1分,41~50题每题2分共60分1D2D3A4B5B6A7D8B9C10C11D12B13B14D15C16B17C18B19B20A21B22A23D24A25C26D27B28B29D30C31D32A33D34D35C36D37C38D39A40C41B42D43A44D45C46B47D48C49D50C二.填空题每空2分,共40分1至5题中所有字母都允许大、小写或大小写混合
110.2或
0.21622外部命令答外部不扣分33COPY*.DATPRN44C:\USER55DIRMYDIR66a=1b=277*s=*t88o24680246899p=p+7或p+=71010DDBBCC1111int*12*z1213*b.day14b-day说明:答案
[13]和
[14]可以互换131521621417char*data18structlink*next说明:答案
[17]和
[18]可以互换1519bi.datw说明:w内以w开头的字符串都可以20fclosefp全国计算机等级考试二级笔试题基础知识和C语言程序设计(考试时间120分钟,满分100分)1998年4月
一、选择题(1-40每小题1分,41-50每小题2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分671所谓“裸机”是指A单片机B单板机C不装备任何软件的计算机D只装备操作系统的计算机682下列存储器中,存取速度最快的是A软盘B硬盘C光盘D内存693系统软件中最重要的是A操作系统B语言处理程序C工具软件D数据库管理系统704CPU处理的数据基本单位为字,一个字的字长A为8个二进制位B为16个二进制位C为32个二进制位D与CPU芯片的型号有关715打印当前屏幕内容应使用的控制键是AScroll-LockBNum-LockCPgDnDPrtScPrintScreen726能将高级语言源程序转换成目标程序的是A调试程序B解释程序C编译程序D编辑程序737二进制数
1110111.11转换成十进制数是A
119.375B
119.75C
119.125D
119.3748十六进制数FF.1转换成十进制数是A
255.0625B
255.125C
127.0625D
127.
1257593.5英寸软盘片的一个角上有一个滑动块,如果移动该滑块露出一个小孔,则该软盘A不能读但能写B不能读也不能写C只能读不能写D能读写7610控制键^C的功能为A终止当前操作B系统复位C暂停标准输出设备的输出D结束命令行7711COMMAND.COM为命令处理程序,DOS系统启动后,它A驻留在外存,需要时再装入内存B常驻内存,包含所有内部命令C不能处理外部命令D不能处理后缀为.EXE的可执行文件7812为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令AREN*.PAS*.ASBRENPASPCREN*.PAS*.PDREN*.PAS*.P7913设当前盘中文件XY.C的路径为\A\B\XU,当前目录为\A\B为了查看文件XY.C的内容,应使用命令ATYPEXU\XY.CBTYPE\XU\XY.CCDIRXU\XY.CDDIR\A\B\XU\XY.C8014要将提示符改成当前盘当前目录后加一个大于号,应使用命令APROMPTBPROMPT$p$gCPROMPT$$DPROMPTC\8115设C盘根目录中有一个批处理文件A.BAT,当前盘为A盘为了执行该批处理文件,下列命令中一定正确的是AC:\ABC:A.BATCA.BATD\A.BAT8216设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令ATYPEA:\ABBDIRABCDIRA:\ABDDIR\AB8317可执行文件ABC.EXE所需要的输入数据已经按格式存放在文件XYZ中,要求将执行结果在打印机上打印输出下列命令中正确的是AABCXYZBABCPRNXYZCABCXYZPRNDABCXYZPRN8418在当前盘当前目录下有一个文件A.BAT,其内容为CD\MD\XYZ\AB\B\CCDXYZ\AB\B在正确执行上述文件后,接着执行下列命令时,不会发生错误的是AMDCBRD\XYZCRDCDRDB8519下列命令组中两个命令互相等价的是ATYPEAB.TXT与DIRAB.TXTBDISKCOMPA:B:与COMPA:*.*B:*.*CTYPEAB.TXTXY.TXT与COPYAB.TXTXY.TXTDTYPEAB.TXTXY.TXT与COPYAB.TXTXY.TXT8620设A盘为启动盘,其目录结构为其中文件AUTOEXEC.BAT的内容如下:MD\XYZCD\DOS\USER则由A盘启动成功后,A盘的当前目录是A\DOS\USERB\XYZC根目录D\DOS8721在C语言提供的合法的关键字是AswicthBcherCCaseDdefault8822在C语言中,合法的字符常量是A‘\084B‘\x43C‘abD“\0”8923若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是A1B2C
2.0D
2.59024合法的数组定义是Ainta[]=string;Binta
[5]={012345};Cvhsts=string;Dchara[]={012345};9125设a为整型变量,不能正确表达数学关系:1010a15D!a=10!a=159226若t为double类型,表达式t=1,t5,t++的值是A1B
6.0C
2.0D
1.09327若有定义和语句:chars
[10]:s=abcd;printf%s\ns;则结果是以下u代表空格A输出abcdB输出aC输出abcduuuuuD编译不通过9428若有定义和语句:int**pp*pa=10b=20;pp=p;p=a;p=b;printf%d\n*p**pp;则输出结果是:A1020B1010C2010D20209529若有以下定义和语句:intu=010v=0x10w=10;printf%d%d%d\nuvw;则输出结果是:A81610B101010C8810D810109630若有以下定义和语句charc1=bc2=e;printf%d%c\nc2-c1c2-a+A;则输出结果是:A2MB3EC2ED输出项与对应的格式控制不一致,输出结果不确定9731若有以下定义:chars
[20]=programming*ps=s;则不能代表字符o的表达式是Aps+2Bs
[2]Cps
[2]Dps+=2*ps9832若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是fori=5;i;i--forj=0;j4;j++{...}A20B25C24D309933若有以下定义和语句:char*s1=12345*s2=1234;printf%d\nstrlenstrcpys1s2;则输出结果是A4B5C9D1010034若有以下定义和语句:inta
[10]={12345678910}*p=a;则不能表示a数组元素的表达式是A*pBa
[10]C*aDa[p-a]10135下面程序的输出是main{char*s=121;intk=0a=0b=0;do{k++;ifk%2==0{a=a+s[k]-0;continue;}b=b+s[k]-0;a=a+s[k]-0;}whiles[k+1];printfk=%da=%db=%d\nkab;Ak=3a=2b=3Bk=3a=3b=2Ck=2a=3b=2Dk=2a=2b=310236下面程序的输出是main{unsigneda=32768;printfa=%d\na;}Aa=32768Ba=32767Ca=-32767Da=-110337若有以下定义:floatx;intab;则正确的switch语句是AswitchxBswitchx{case
1.0:printf*\n;{case12:printf*\n;case
2.0:printf**\n;case3:printf**\n;}}Cswitcha+bDswitcha+b;{case1:printf\n;{case1:printf.*\n;case1+2:printf**\n;case2:printf**\n;}}10438若有定义:intxy;charabc;并有以下输入数据此处CR代表换行符,/u代表空格:1u2AuBuC则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是Ascanfx=%dy+%dxy;a=getchar;b=getchar;c=getchar;Bscanf%d%dxy;a=getchar;b=getchar;c=getchar;Cscanf%d%d%c%c%cxyabc;Dscanf%d%d%c%c%c%c%c%c:xyaabbcc;10539以下程序输出的结果是#include#includemain{charw[]
[10]={ABCDEFGHIJKLMNOP}K;fork=1;k3;k++printf%s\nw[k][k];}AABCDBABCDFGHEFGKLIJMCEFGDFGHJKKLO10640若有以下的定义:inta[]={123456788910}*p=a;则值为3的表式是Ap+=2*p++Bp+=2*++pCp+=3*kp++Dp+=2++*p10741假定所有变量均已正确说明,下列程序段运行后x的值是a=b=c=0;x=35;if!ax--;elseifb;ifcx=3;elsex=4;A34B4C35D310842在以下一组运算符中,优先级最高的运算符是A=B=C%D10943若有以下定义和语句:intw
[2]
[3]*pw
[3];pw=w;则对w数组元素非法引用是A*w
[0]+2B*pw+1
[2]Cpw
[0]
[0]D*pw
[1]+211044若有以下程序片段:charstr[]=ab\n\012\\\;printf%ddstrlenstr;上面程序片段的输出结果是A3B4C6D1211145函数调用:strcatstrcpystr1str2str3的功能是A将串str1复制到串str2中后再连接到串str3之后B将串str1连接到串str2之后再复制到串str3之后C将串str2复制到串str1中后再将串str3连接到串str1之后D将串str2连接到串str1之后再将串str1复制到串str3中11246以下对C语言函数的有关描述中,正确的是A在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参BC函数既可以嵌套定义又可以递归调用C函数必须有返回值,否则不能使用函数DC程序中有调用关系的所有函数必须放在同一个源程序文件中11347以下叙述中不正确的是A在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值B在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容C在C中,外部变量的隐含类别是自动存储类别D在C中,函数形参可以说明为register变量11448以下程序的输出结果是#includesublcharacharb{charc;c=a;a=b;b=c;}sub2char*acharb{charc;c=*a;*a=b;b=c;}sub3char*achar*b{charc;c=*a;*a=*b;*b=c;}{charab;a=A;b=B;sub3ab;putchara;putcharb;a=A;b=B;sub2ab;putchara;prtcharb;a=A;b=B;sub1ab;putchara;putcharb;}ABABBABBABBBBACBABABADBAABBA11549设有如下定义:structsk{inta;floatb;}data*p;若有p=data;,则对data中的a域的正确引用是A*p.data.aB*p.aCp-data.aDp.data.a11650以下对枚举类型名的定义中正确的是Aenuma={onetwothree};Benuma{one=9two=-1three};Cenuma={onetwothree};Denuma{onetwothree};
二、填空题每空2分,共40分请将每空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分1171与十进制数101等值的二进制数为【1】1182DOS命令分为内部命令和外部命令,XCOPY命令属于【2】1193设当前盘为A盘,当前系统提示符为,在不改变当前盘的情况下,显示C盘的当前目录的路径,应使用命令【3】1204自动批处理文件名必须是【4】1215设当前盘当前目录下有两个文件W.TXT,现要将文件P.TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为【5】1226请写出以下数学式的C语言表达式6──.a───b.c1237若已知a=10,b=20,则表达式!abprintf****y%d\ny;elseprintf####x=%\nx;12411在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是11函数.──12512若函数fun的类型void,且有以下定义和调用语句:#defineM50main{inta[M];...funa;...}定义fun函数首部可以用三种不同的形式,请写出这三种形式:
12.
13.14───注意:
①形参的名字请用q,
②使用同一种风格.13若给fun函数的形参s传送字符串:uuuu6354abc,则函数的返回值是15126─.logfunchars[]{longn;intsign;for;isspace*s;s++;sign+*s==--1:1;if*s==+‖*s==-s++;forn=0;isdigit*s;s++n=10*n+*s-0;returnsign*n;12714以下函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n所指存储单元中存放数组中数据的个数.插入后数组中的数仍有序.请填空.voidfunchar*wcharxint*n{intip;p=0;w[*n]=x;whilexw[p]16──;fori=*n;ip;i--w[i]=17─;w[p]=x;++*n;}12815fun1函数的调用语句为:fun1abc;它将三个整数按由大到小的顺序调整后依次放入a,b,c,三个变量中,a中放量大数.请填空.voidfun2int*xint*y{intt;t=*x;*x=*y;*y=t;}voidfun1int*paint*pbint*pc{if*pc*pbfun218───;if*pa*pcfun219──;if*pa*pbfun220──;}〖完〗1998年4月全国计算机等级考试二级笔试C试卷答案
一、选择题1--40题每题1分,41--50题每题2分,共60分1C2D3A4D5D6C7B8A9C10A11B12C13A14B15A16C17D18C19D20C21D22B23C24D25A26D27D28D29A30B31A32A33A34B35C36C37C38D39D40A41B42C43B44C45C46A47C48A49B50B
二、填空题每空2分,共40分11100101或110010122外部命令答外部不扣分3cdc:cd与C中间至少要有一个空格4AUTOEXEC.BAT5COPYW.TXT+P.TXT或copyw.txt+p.txtw.txt6a/b*c或a/a*b或a/b/c或a/c/b718###a=26b=13c=199*p+5或p
[5]10ifa=b{x=1;printf####x=%d\nx;}else{y=2;printf****y=%d\ny;}或ifab{y=2;printf****y=%d\ny;}else{x=1;printf####x=%d\nx;}或ifa=bprintf####x=%d\nx=1;elseprintf****y=%d\ny=2;或ifabprintf****y=%d\ny=2;elseprintf####x=%d\nx=1;11rewind或fseek121314voidfunint*q;或voidfunqint*q;voidfunintq[];voidfunqintq[];voidfunintq[M];voidfunqintq[M];说明以上两组答案中A三个答案可以任意次序B标识符q可以用字母或下划线开头以字母、数字和下划线组成的名字代替C两种风格可以混用15635416p++或++p或p=p+1或p+=1或p=1+p17w[i-1]或*w+i-118pcpb或pbpc19pcpa或papc20pbpa或papb全国计算机等级考试二级笔试卷基础知识和C语言程序设计(考试时间120分钟满分100分)1998年9月
一、选择题(1-40每小题1分41-50每小题2分共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分1291通常所说的主机主要包括ACPUBCPU和内存CCPU、内存与外存DCPU、内存与硬盘1302在微机系统中最基本的输入输出模块BIOS存放在ARAM中BROM中C硬盘中D寄存器中1313一个24*24点阵的汉字字形信息所占的字节数为A2B24C32D721324bit的意思是A字B字长C字节D二进制位1335某学校的工资管理程序属于A系统程序B应用程序C工具软件D文字处理软件1346与十六进制数BB等值的十进制数是A187B188C185D1861357设一张软盘已染上病毒,能清除病毒的措施是A删除该软盘上的所有文件B格式化该软盘C删除该软盘上的所有可执行文件C删除该软盘上的所有批处理文件1368一张
3.5英寸双面高密度软盘片的容量为A360KBB720KBC
1.44MBD
1.2MB1379与二进制小数
0.1等值的十六进制小数为A
0.1B
0.2C
0.4D
0.813810DOS系统的热启动与冷启动的不同之处为热启动时A不检测键盘、处设接口与内存B不提示用户输入日期与时间C不用装入COMMAND.COM文件D不能从软盘启动13911为了将磁盘上的文件K1K2K3依次连接在文件K4的后面应使用命令ACOPYK1+K2+K3K4BCOPYK1+K2+K3+K4CCOPYK1+K2+K3+K4K4DCOPYK4+K1+K2+K314012下列文件名中可以作为批处理文件名的是AAUTOEXC.CBAUTOEXECCATX.BATDAUTO.TXT14113要打印输出当前盘的根目录下所有文件与子目录清单应使用命令ADIR\PRNBTYPE\PRNCDIRPRNCTYPEPRNCDIRPRNDTYPEPRN14214设可执行文件ABC.EXE所需要的本该由键盘输入的数据已经按格式存放在文件XYZ中并要求执行结果放在XYZ中输入数据的后面下列命令中正确的是AABCXYZXYZBABCXYZXYZCABCXYZXYZDABCXYZ14315设当前盘中某一目录路径为\A\B\C当前目录为\A下列命令中肯定出错的是AMD\A\CBCD..CMD\A\B\ADMD\A\B14416设A盘的目录结构如下:根目录│┌────┬────┬──┴───┬─────┬────┐││││││ABCD1子目录DX.CQ.DATD2子目录A.FOR││┌────┬┴──┬───┐┌─────┼────┐│││││││B.PASD3子目录Y.BASA.CA
1.CD4子目录XYZ.C│┌───┬──┴─┬───┐││││QR.CNA.CA.TXTB.C如果当前盘为C盘A盘的当前目录为\D2则下列对A盘上文件QR.C的指定中合法的是A\D2\D4\QR.CBD4\QR.CCA:D4\QR.CDA:D2\D4\QR.C14517下列DOS命令中有错误的是ATYPEAAB.FORCONBTYPEAB.FORCCOPY*.CCONDCOPYCONPRN14618设当前盘为A盘为了将当前盘当前目录下的文件AB
1.TXT连接在C盘根目录下的文件XYZ.TXT的后面正确的命令是ACOPYC:\XYZ.TXT+AB
1.TXTBCOPYAB
1.TXTC:\XYZ.TXTCTYPEAB
1.TXTC:\XYZ.TXTDAB
1.TXT+C:\XYZ.TXTC:\XYZ.TXT14719下列命令中合法的是ADISKCOPYA:A:BDISKCOPYA:C:CDISKCOPYC:A:DDISKCOPYC:D:14820设当前盘中某一目录路径为\A\B\C\D\XU当前目录为\A要将根目录下扩展名为.C的所有文件复制到当前目录下并将扩展名改为.FOR应使用命令ACOPY\*.C*.FORBCOPY*.C\A\*.FORCCOPY*.FOR\*.CDCOPY\A\*.C*.FOR14921下列不正确的转义字符是A\\B\C074D\015022若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为AfloatBintCcharDdouble15123表示关系x=y=z的c语言表达式为AX=YY=ZBX=YANDY=ZCX=Y=ZDX=YY=Z15224设a=1b=2c=3d=4则表达式:A
765.12回车Bi=100f=
765.12回车C100回车
765.12回车Dx=100回车y=
765.12回车15329设x和y均为int型变量则执行下的循环后y值为fory=1x=1;y=50;y++{ifx=10break;ifx%2==1{x+=5;continue;}x-=3;}A2B4C6D815430给出以下定义:charx[]=abcdefg;chary[]={abcdefg};则正确的叙述为A数组X和数组Y等价B数组x和数组Y的长度相同C数组X的长度大于数组Y的长度D数组X的长度小于数组Y的长度15531以下叙述中不正确的是A在不同的函数中可以使用相同名字的变量B函数中的形式参数是局部变量C在一个函数内定义的变量只在本函数范围内有效D在一个函数内的复合语句中定义的变量在本函数范围内有效15632假定a和b为int型变量则执行以下语句后b的值为a=1;b=10;do{b-=a;a++;}whileb--0;A9B-2C-1D815733设j为int型变量则下面for循环语句的执行结果是forj=10;j3;j--{ifj%3j--;--j;--j;printf%dj;}A63B74C62D7315834设有以下宏定义:#defineN3#defineYnN+1*n则执行语句:z=2*N+Y5+1;后z的值为A出错B42C48D5435设P1和P2是指向同一个int型一维数组的指针变量k为int型变量则不能正确执行的语句是Ak=*P1+*P2;Bp2=k;CP1=P2;DK=*P1**P2;15936设有如下定义:intarr[]={678910};int*ptr;则下列程序段的输出结果为ptr=arr;*ptr+2+=2;printf%d%d\n*ptr*ptr+2;A810B68C79D61016037以下程序的输出结果是main{intika
[10]p
[3]:K=5;fori=0;i10;i++a[i]=i;fori=0;i3;i++p[i]=a[i*i+1];fori=0;i3;i++k+=p[i]*2;printf%d\nk;}A20B21C22D2316138执行以下程序段后m的值为inta
[2]
[3]={{123}{456}};intm*p;p=a
[0]
[0];m=*p**p+2**p+4;A15B14C13D1216239有以下程序段chararr[]=ABCDE;char*ptr;forptr=arr;ptrmain{union{intk;chari
[2];}*sa;s=a;s-i
[0]=0x39;s-i
[1]=0x38;printf%x\ns-k;}输出结果是A3839B3938C380039D39003816342有以下程序#includemain{intabc=246;a=c/100%9;b=-1-1;printf%d%d\nab;}输出结果是A21B32C43D2-116443设有如下定义:int*ptr*;则以下叙述中正确的是Aptr是指向一维组数的指针变量Bptr是指向int型数据的指针变量Cptr是指向函数的指针该函数返回一个int型数据Dptr是一个函数名该函数的返回值是指向int型数据的指针16544有以下程序#includestructstu{intnum;charname
[10];intage;};voidfunstructstu*p{printf%s\n*p.name;}main{structstustudents
[3]={{9801Zhang20}{9802Wang19}{9803Zhao18}};funstudents+2;}输出结果是AZhangBZhaoCWangD1816645设有以下说明和定义:typedefunion{longi;intk
[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;则下列语句的执行结果是printf%dsizeofstructdate+sizeofmax;A26B30C18D816746有以下程序main{chara[]=programmingb[]=language;char*p1*p2;inti;p1=a;p2=b;fori=0;i7;i++if*p1+i==*p2+iprintf%c*p1+i;}输出结果是AgmBrgCorDga16847有以下程序viodfunintaintbintc{a=456;b=567;c=678;}main{intx=10y=20z=30;funxyz;printf%d/%d\ncd;}输出结果是A302010B102030C456567678D67856745616948有以下程序intfunintxintyint*cpint*dp{*cp=x+y;*dp=x-y;}main{intabcd;a=30;b=50;funabcd;printf%d%d\ncd;}输出结果是A5030B30J50C80-20D802017049有以下程序main{intij;forj=10;j11;j++{fori=9;i=j-1printf%dj;}}输出结果是A11B10C9D101117150有以下程序#includeatdio.hintabcintuintv;main{inta=24b=16c;c=abcab;printf%d\nc;}ntabcintuintv{intw;whilev{w=u%v;u=v;v=w}returnu;}输出结果是A6B7C8D9
二、填空题每空2分,共40分请将每空的正确答案写在答题卡【1】-【20】序号的横线上答在试卷上不得分.1721自动批自理文件名为【1】1732DOS命令分为内部命令与外部命令COMP命令属于【2】命令1743设当前为C盘现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为.DAT的文件内容这一条DOS命令应为【3】4要将当前盘当前目录下的子目录XYZ中所有扩展名为.BAK的文件名改成扩展名为.FOR应使用的DOS命令为【4】5设DOS外部命令文件所在的路径均已用PATH命令打通现要将当前盘当前目录下的文件WST.TXT设置为只读属性应使用的DOS命令为【5】6设x和y均为int型变量且x=1y=2则以下表达式的值为【6】
1.0+x/y7设ijk均为int型变量则执行完下面的for循环后k的值为【7】fori=0j=10;i=j;i++j--k=i+j;1758设有以下定义的语句:inta
[3]
[2]={102030405060}*p
[2];p=a;则**p+2+1值为【8】1769以下程序的输出结果是【9】#includeintfunintxinty{staticintm=0i=2;i+=m+1;m=i+x+y;returnm}main{intj=4m=1k;k=funjm;printf%dk;k=funjm;printf%d\nk;}17710函数fun的功能是:使一个字符串按逆序存放请填空voidfuncharstr[]{charm;intij;fori=0j=strlenstr;i【10】;i++j--{m=str[i];str[i]=【11】;str[j-1]=m;}printf%s\nstr;}17811以下程序的功能是:从键盘上输入一行字符存入一个字符数组中然后输出该字符串请填空#includectype.h#includestdio.hmain{charstr
[81]*sptr;inti;fori=0;i80;i++{str[i]=getchar;ifstr[i]==\nbreak;}str[i]=【12】;sptr=str;while*sptrputchar*sptr【13】;}17912以下程序用来对从键盘上输入的两个字符串进行比较然后输出两个字符串中第一个不相同字符的ASCII码之差例如:输入的两个字符串分别为abcdef和abceef则输出为-1请填空#includemain{charstr
[100]str2
[100]c;intis;printf\ninputstring1:\n;geststr1;printf\ninputstring2:\n;geststr2;i=0;whilestrl[i]==str2[i]str1[i]!=【14】i++;s=【15】;printf%d\ns;}18013以下程序的功能是:从键盘上输入一个字符串把该字符串中的小写字母转换为大写字母输出到文件test.txt中然后从该文件读出字符串并显示出来请填空#includemain{FILE*fp;charstr
[100];inti=0;iffp=fopentext.txt【16】==NULL{printfcantopenthisfile.\n;exit0;}printfinputastring:\n;geststr;whilestr[i]{ifstr[i]=astr[i]=zstr[i]=【17】;fputcstr[i]fp;i++;}fclosefp;fp=fopentest.txt【18】;fgetsstr100fp;printf%s\nstr;fclosefp;}14以下程序可以把从键盘上输入的十进制数long型以二到十六进制形式输出请填空#include.main{charb
[16]={0123456789ABCDEF};intc
[64]di=0base;longn;printfenteranumber:\n;scanf%ldn;printfenternewbase:\n;scanf%dbase;do{c[i]=【19】;i++;n=n/base;}whilen!=0;printftransmitenewbase:\n;for--i;i=0;--i{d=c[i];printf%cb【20】;}}〖完〗1998年9月基础知识和C语言程序设计答案及评分标准
一、选择题1-40题每题1分;41-50题每题2分1B2B3D4D5B6A7B8C9D10A11D12C13A14B15D16C17B18A19A20A21C22D23A24D25B26C27C28B29C30C31D32D33B34C35B36D37B38A39D40D41A42A43C44B45B46D47A48C49B50C
二、填空题每空2分共4分1至5题中所有字母都允许大小写或大小写混合1【1】AUTOEXEC.BAT2【2】外部答外部命令不扣分3【3】COPYA:*.DATPRN在COPY后面与A:*.DAT后面都至少要有一个空格4【4】RENXYZ\*.BAK*.FOR或RENAMEXYZ\*.BAK*.FOR在REN或RENAME后面与XYZ\*.BAK后面都至少要有一个空格5【5】ATTRIB+RWST.TXT在ATTRIB后面与+R后面都至少有一个空格或ATTRIBWST.TXT+R在ATTRIB后面与WST.TXT后面都至少要有一个空格6【6】
1.0或17【7】108【8】609【9】81710【10】strlenstr/2或strlenstr/
2.0或
0.5*strlenstr或j或j-1【11】str[j-1]或*str+j-111【12】\0或0【13】++12【14】\0或0【15】strl[i]-str2[i]13【16】w或w+或wt或w+t或wt+【17】str[i]-32或str[i]-a-A或str[i]-a+A【18】r或r+或r+t或rt+14【19】n%base【20】[d]全国计算机等级考试二级笔试卷基础知识和C语言程序设计(考试时间120分钟满分100分)1999年4月
一、选择题(1-40每小题1分41-50每小题2分共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分1811微型计算机的性能主要取决于A内存B中央处理器C硬盘D显示卡1822有一个数值152它与十六进制数6A相等那么该数值是A二进制数B八进制数C十进制数D四进制数1833使用超大规模集成电路制造的计算机应该归属于A第一代B第二代C第三代D第四代1844已知英文字母a的ASCII代码值是十六进制数61H那么字母d的ASCII代码值是A34HB54HC24HD64H1855一片存储容量是
1.44MB的软磁盘可以存储大约140万个AASCII字符B中文字符C磁盘文件D子目录1866在MS-DOS环境中同时按下[Ctrl]和[Break]两个键其作用是A终止当前操作B暂停当前操作C关机D热启动1877将二进制数10000001转换为十进制数应该是A127B129C126D1281888磁盘处于写保护状态那么磁盘中的数据A不能读出不能删改也不能写入新数据B可以读出不能删改也不能写入新数据C可以读出可以删改但不能写入新数据D可以读出不能删改但可以写入新数据1899微型机启动后DOS提示符是C:\现提示符变为C:\USER则说明刚执行过命令APROMPTBPROMPTUSERCPROMPTSP$GDCDUSER19010MS-DOS文件系统目录的组织形式属于A关系型结构B网络型结构C树型结构D直线型结构19111应用软件系统TH的总容量大约1MB其主要程序文件存放在C:\TH目录中而数据文件存放在C:\TH\DATA目录中如果将它们完整地复制到A盘应该使用的命令是AXCOPYC:\THA:\BXCOPYC:\THA:\/SCXCOPYC:\THA:\/MDXCOPYC:\THA:\/P19212执行COPYA.TXT+B.TXT这个DOS命令后得到的磁盘文件是AA.TXTBB.TXTCAB.TXTDA+B.TXT19313在WINDOWS中将一个应用程序窗口最小化之后得到的磁盘文件是A仍在后台运行B暂时停止运行C完全停止运行D出错19414CD-ROM属于A感觉媒体B表示媒体C表现媒体D存储媒体19515在因特网Internet中电子公告板的缩写是AFTPBWWWCBBSDE-mail19616设x、y、z和k都是int型变量则执行表达式:x=y=4z=16k=32后x的值为A4B16C32D5219717设有如下的变量定义:inti=8kab;unsignedlongw=5;doublex=142y=
5.2;则以下符合C语言语法的表达式是Aa+=a-=b=4*a=3Bx%-3;Ca=a*3=2Dy=floati19818假定有以下变量定义:intk=7x=12;则能使值为3的表达式是Ax%=k%=5Bx%=k-k%5Cx%=k-k%5Dx%=k-k%=519919以下叙述中正确的是A输入项可以是一个实型常量如:scakf%f
3.5;B只有格式控制没有输入项也能正确输入数据到内存例如:scakfa=%db=%d;C当输入一个实型数据时格式控制部分可以规定小数点后的位数例如:scakf%
4.2ff;D当输入数据时必须指明变量地址例如:scakf%ff;20020设x和y均为int型变量则以下语句:x+=yy=x-y;x-=y;的功能是A把x和y按从大到小排列B把x和y按从小到大排列C无确定结果D交换x和y中的值20121以下程序的输出结果是A1010B1212C1110D1113main{inta=12b=12;printf%d%d\n--a++b;}20222以下程序运行后输出结果是AcdeB字符c的ASCII码值C字符c的地址D出错main{char*s=abcde;s+=2;printf%ld\ns;}20323以下程序输出结果是A7B6C5D4main{intm=5;ifm++5printf%d\nm;esleprintf%d\nm--;}20424当a=1b=3c=5d=5时执行下面一段程序后x的值为A1B2C3D6ifabifcdx=1;elseifacifbdx=2;elsex=3;elsex=6;elsex=7;20525在执行以下程序时如果从键盘上输入ABCdef回车则输出为AABCdefBabcDEFCabcDDEF#includestdiohmain{charch;whilech=getchar!=\n{ifch=Ach=Zch=ch+32;elseifch=ach=zch=ch-32;printf%cch;}printf\n;}20626下面能正确进行字符串赋值操作的语句是Achars
[5]={ABCDE};Bchars
[5]={ABCDE};Cchar*s;s=ABCDEF;Dchar*s;scanf%ss;20727执行以下程序段时A循环体将执行一次B循环体将执行两次C循环体将执行无限次D系统将提示有语法错误X=-1;do{x=x*x;}while!x;20828执行以下程序后输出的结果是A-1B1C8D0main{inty=10;do{y--;}while--y;printf%d\ny--;}20929在下列选项中没有构成死循环的程序段是Ainti=100Bfor;;;while1{i=i%100+1;ifi100break;}Cintk=1000;Dints=36;do{++k;}whilek=10000;whiles;--s;21030执行语句:fori=l:i++4:;后变量i的值是A3B4C5D不定21131以下程序运行后如果从键盘上输入ABCDE回车则输出结果为A8B7C6D5#includestdio.h#includestring.hfunccharstr[]{intnum=0;while*str+num!=\0num++;returnnum;}main{charstr
[10]*p=str;getsp;printf%d\nfuncp;}21232运行以下程序后如果从键盘上输入china#回车则输出结果为A20B50C55D25#includestdiohmair{intv1=0v2=0;charch;whilech=getchar!=#switchch{casea;caseh;default;v1++;case0;v2++;}printf%d%d\nv1v2;}21333若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;FILELCHINABEIJINGSHANGHAI程序的输出结果是ACHINABEIJINGSHANGHAIBFILELCHINABEIJINGCCBSDFCBmainintargcchar*argv[]{whilearge--0{++argv;printf%s*argv;}}21434下面程序运行的结果是A2ba56B6521C6D62main{charch
[7]={65ab21};intis=0fori=0;ch[i]=0ch[i]=9;i+=2s=10*s+ch[i]-0;printf%d\ns;}21535运行下面的程序如果从键盘上输入:ab回车c回车def回车则输出结果为AaBaCabDabcdefbbcccdddef#includestdioh#defineN6main{charc[N];inti=0;for;iN;c[i]=getchari++;fori=0;iN;i++putcharc[i];printf\n;}21636以下程序运行后输出结果是A8B7C6D5#includestdiohsschar*s{char*p=s;while*pp++;returnp-s;}main{char*a=abded;inti;i=ssa;printf%d\ni;}21737以下程序运行后输出结果是A815B816C817D88funcintaintb{staticintm=0i=2;i+=m+1;m=i+a+b;returnm;}main{intk=4m=1p;p=funckm;printf%dp;p=funckm;printf%d\np;}21838以下程序运行后输出结果是A
49.5B
9.5C
22.0D
45.0#includestdioh#definePT
5.5#defineSxPT*x*xmain{inta=1b=2;printf%
4.1f\nSa+b;}21939以下程序运行后输出结果是AABCDEFGBCDGCabcdefghDabCDefGhmain{staticchara[]=ABCDEFGHb[]=abCDefGh;char*p1*p2;intk;p1=a;p2=b;fork=0;k=7;k++if*p1+k==*p2+kprintf%c*p1+k;printf\n;22040以下程序运行后a的值是A4B1C0D运行时出错a无定值main{intak=4m=6*p1=k*p2=m;a=p1==m;printf%d\na;}22141以下程序运行后输出结果是A84B99C95D44intd=1;funintp{intd=5;d+=p++;printf%dd;}main{inta=3;funa;d+=a++;printf%d\nd;}22242以下程序运行后输出结果是A6385B22C33D693825main{charch
[2]
[5]={693825}*p
[2];intijs=0;fori=0;i2;i++p[i]=ch[i];fori=0;i2;i++forj=0;p[i][j]=0p[i][j]=9;j+=2s=10*s+p[i][j]-0;printf%d\ns;}22343以下程序运行后输出结果是A1B7C9D11futint**sintp
[2]
[3]{**s=p
[1]
[1];}main{inta
[2]
[3]={1357911}*p;p=int*mallocsizeofint;futpa;printf%d\n*P;}22444设有如下定义:inta=1b=2c=3d=4m=2n=2:则执行表达式:m=abn=cd后n的值为A1B2C3D022545在执行以下程序时为了使输出结果为:t=4则给a和b输入的值应满足的条件是AabBab0C0abD0abmain{intstab;scanf%d%dab;s=1;t=1;ifa0s=s+1;ifabt=s+t;elseifa==bt=5;elset=2*s;printft=%d\nt;}22646以下程序的输出结果是Ax=4Bx=8Cx=6Dx=12main{intijx=0;fori=0;i2;i++{x++;forj=0;j=3;j++{ifj%2continue;x++;}x++;}printfx=%d\nx;}22747以下程序运行后输出结果是A1234567B7654321C1711717D7177171#inchudestdioh#inchudestringhfunchar*wintn{chart*s1*s2;s1=w:s2=w+n-1;whiles1s2{t=*s1++;*s1=*s2--;*s2=t;}}main{char*p;p=1234567;funpstrlenp;putsp;}22848运行以下程序后如果从键盘上输入6514回车则输出结果为:Am=3Bm=2Cm=1Dm=1main{intmn;printfEntermn;;scanf%d%dmn:whilem!=n{whilemnm-=n;whilenmn-=m;}printfm=%d\nm;}22949以下程序运行后如果从键盘上输入:book回车book空格回车则输出的结果是A*8B#9C#6D*9#includestringhmain{chara1
[80]a2
[80]*s1=a1*s2=a2;getss1;getss2;if!strcmps1s2printf*;esleprintf#;printf%d/nstrlenstrcats1s2;}23050以下程序运行后输出结果是A10000B10010C00110D10100main{inty=18i=0ja
[8];do{a[i]=y%2;i++y=y/2;}whiley=1forj=i-1;j=0;j--printf%da[j];printf\n;}
二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上【1】-【20】序号上,答在试卷上不得分2311DOS中的自动批处理文件的全名是【1】2322在DOS启动盘中除COMMAND.COM外还有两个必备的系统文件它们是MSDOS.SYS或IBMDOS.COM与【2】2333在DOS下要将当前目录中AB.TXT文件设置为只读属性应该使用的完整命令行是【3】2344在DOS下要查看当前目录中所有批处理文件的总字节数应该使用的完整命令行是【4】2355计算机病毒除有破坏性、潜伏性和激发性外还有一个最明显的特性是【5】2366若想通过以下输入语句使a中存放字符串1234b中存放字符5则输入数据的形式应该是【6】:.chara
[10]b;scanfa=%sb=%cab;:.2377下面程序的输出结果是【7】charb[]=ABCD;main{char*chp;forchp=b;*chp:chp+=2printf%schp;printf\n;2388下面程序输出的结果是【8】#defineMAX3inta[MAX];main{fun1;fun2a;printf\n;}fun1{intkt=0;fork=0;kMAX;K++t++a[k]=t+t;}fun2intb[]{intk;fork=0;kNAX;k++printf%d*b+K;}2399以下程序输出的是【9】main{inta
[10]={1923441737284936}*p;p=a;printf%d\np+=3
[3];}24010以下程序输出的是【10】main{inti=3j=2;char*a=DCBA;printf%c%c\na[i]a[j];}24111以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换请填空exchangeint*xint*y{intt;t=*y;*y=【11】;*x=【12】;}24212若以下定义和语句则sizeofa的值是【13】而sizeofb的值是【14】struct{intday;charmouth;intyear;}a*b;b=a;24313以下fun函数的功能是:累加数组元数中的值.n为数组中元素的个数累加的和值放入x所指的存储单元中请填空.funintb[]intnint*x{intkr=0;fork=0;kn;k++r=【15】【16】=r;}24414变量root有如图所示有存储结构其中sp是指向字符串的指针域next是指向该结构的指针域data用以存放整型数.请填空完成此结构的类型说明和变量root的定义structlist{char*sp;【17】;【18】;}root;24515下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中请填空.#includestdiohFILE*fp;main{intij;iffp=fopen【19】wb==NULLexit0;fori=0;i10;i++{scanf%dj;fwritejsizeofint1【20】;}fclosefp;}〖完〗1999年4月基础知识知识和C语言程序设计答案及评分标准一.选择1~40题每题1分41~50题每题2分共60分1B2B3D4D5A6A7B8B9D10C11B12A13A14D15C16C17A18D19D20D21D22C23B24B25B26C27A28D29C30C31D32C33A34C35C36D37C38B39B40C41A42A43C44B45C46B47C48C49B50B二.填空题每空2分共40分1【1】AUTOEXEC.BAT2【2】IO.SYS或IBMBIO.COM3【3】ATTRIBAB.TXT+RAB.TXT4【4】DIR*.BAT或DIR*.BAT\P或DIR*.BAT/W或DIR*.BAT/W/P或*.BAT/P/W5【5】传染性或传播性6【6】a=1234b=5A或a=1234b=57【7】ABCDCD8【8】0249【9】4910【10】AB11【11】*X1112T12【13】51214213【15】r+b[k]或b[k]或*b+k+r13【16】*x14【17】structlist*next14【18】intdata说明:以上两个答案17和18次序可以颠倒.15【19】bi.dat15【20】fp全国计算机等级考试二级笔试试卷基础部分和C语言程序设计考试时间120分钟,满分100分1999年9月
一、选择题1-40每个选项1分,41-50每个选项2分,共60分下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应的位置上,答在试卷上不得分2461十进制数1385转换成十六进制数为A 568B 569C D85D D552472下列叙述中正确的是A 计算机病毒只能传染给可执行文件B 计算机软件是指存储在软盘中的程序C 计算机每次启动的过程之所以相同,是因为RAM中的所有信息在关机后不会丢失D 硬盘虽然装在主机箱内,但它属于外存2483一个字长的二进制位数是A 8B 16C 32D 随计算机系统而不同的2494CPU主要由运算器与控制器组成,下列说法中正确的是A 运算器主要负责分析指令,并根据指令要求作相应的运算B 控制器主要完成对数据的运算,包括算术运算和逻辑运算C 控制器主要负责分析指令,并根据指令要求作相应的运算D 控制器直接控制计算机系统的输入与输出操作2505下列叙述中正确的是A 将数字信号变换成便于在模拟通信线路中传输的信号称为调制B 以原封不动的形式将来自终端的信息送入通信线路称为调制解调C 在计算机网络中,一种传输介质不能传送多路信号D 在计算机局域网中,只能共享软件资源,而不能共享硬件资源2516各种网络传输介质A 具有相同的传输速率和相同的传输距离B 具有不同的传输速率和不同的传输距离C 具有相同的传输速率和不同的传输距离D 具有不同的传输速率和相同的传输距离2527多媒体计算机系统的两大组成部分是A 多媒体功能卡和多媒体主机B 多媒体通信软件和多媒体开发工具C 多媒体输入设备和多媒体输出设备D 多媒体计算机硬件系统和多媒体计算机软件系统2538按通信距离划分,计算机网络可以分为局域网和广域网下列网络中属于局域网的是A InternetB CERNETC NovellD CHINANET2549在Windows中,启动应用程序的正确方法是A 用鼠标双击该应用程序图标B 将该应用程序窗口最小化成图标C 将该应用程序窗口还原D 将鼠标指向该应用程序图标25510在Windows中,终止应用程序执行的正确方法是A 用鼠标双击应用程序窗口左上角的控制菜单框B 将应用程序窗口最小化成图标C 用鼠标双击应用程序窗口右上角的还原按钮D 用鼠标双击应用程序窗口中的标题栏25611DOS控制键Ctrl+Alt+Del的功能为A 删除一个字符并退格B 暂停标准输出设备的输出C 热启动D 终止当前操作25712设当前盘为C盘,为了将A盘当前目录中所有扩展名为.PAS的文件改成扩展名为.P,应使用的DOS命令为A RENA:*.PASA:*.PB RENA:*.PAS*.PB RENA:.PASA:.PD RENA:.PAS.P25813设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1,若要进入子目录D2,正确的DOS命令为A CDD2B CDD2\C CD\D2D CDD1\D225914设当前盘为A盘,要将B盘当前目录下的两个文件A.TXT与X.TXT连接后以文件名Y.TXT存放到A盘的当前目录中,正确的DOS命令为A COPYA.TXT+X.TXTA:Y.TXTB COPYB:A.TXT+X.TXTA:Y.TXTB COPYB:A.TXT+B:X.TXTY.TXTD COPYB:A.TXT+B:X.TXTY.TXT26015下列DOS命令中正确的是A REN\USER\A.TXT\B.TXTB CD\C TYPE*.TXTD MD\26116以下选项中属于C语言的数据类型是A 复数型B 逻辑型C 双精度型D 集合型26217在C语言中,不正确的int类型的常数是A 32768B 0C 037D 0xAF26318语句:printf%d,a=2b=-2;的输出结果是A 无输出B 结果不确定C -1D 126419下列描述中不正确的是A 字符型数组中可以存放字符串B 可以对字符型数组进行整体输入、输出C 可以对整型数组进行整体输入、输出D 不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值26520设有如下定义intx=l,y=-1;,则语句printf%d\n,x--++y;的输出结果是A 1B 0C -1D 226621当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是A c=b=a;B a=c ‖b=c ;C a=c b=c;C a=c=b;26722以下程序的输出结果是A 10192B 9876C 10990D 101091main{intx=10,y=10,I;fori=0;x8;y=++iprintf%d,%d,x--,y;}26823以下程序的输出结果是A 52B 51C 53D 97main{inti,x
[3]
[3]={9,8,7,6,5,4,3,2,1},*p=x
[1]
[1];fori=0;i4;i+=2printf%d,p[i];}26924以下程序的输出结果是A6B 6789C 6D 789main{chara
[10]={1,2,3,4,5,6,7,8,9,0},*p;inti;i=8;p=a+I;printf%s\n,p-3;}27025以下程序的运行结果是A 运行后报错B 66C 612D 55#includestdio.hmain{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,};int*p=a+5,*q=NULL;*q=*p+5;printf%d%d\n,*p,*q;}27126以下说法中正确的是A #define和printf都是C语句B #define是C语句,而printf不是C printf是C语句,但#define不是D #define和printf都不是C语句27227语句:printf%d\n,12012;的输出结果是A 12B 8C 6D 01227328能正确表示a和b同时为正或同时为负的逻辑表达式是A a=0‖b=0a0‖b0B a=0b=0a0b0C a+b0a+b=0D a*b027429以下程序的输出结果是A 20B 31C 321D 210main{intn=4;whilen--printf%d,--n;}27530若已定义inta
[9],*p=a;并在以后的语句中未改变p的值,不能表示a
[1]地址的表达式是A p+1B a+1C a++D ++p27631以下程序的输出结果是A 17,021,0x11B 17,17,17B 17,0x11,021D 17,21,11main{intk=17;printf%d,%o,%x\n,k,k,k;}27732以下程序的输出结果是A -11B 01C 10D 00main{inta=-1,b=1,k;if++a0!b--=0printf%d%d\n,a,b;elseprintf%d%d\n,b,a;}27833若有说明long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是A *p=a;scanf%ld,p;B p=long*malloc8;scanf%ld,p;C scanf%ld,p=a;D scanf%ld,a;27934以下选项中,能定义s为合法的结构体变量的是A typedefstructabcB struct{doublea;{doublea;charb
[10];charb
[10];}s;}s;C structABCD typedefABC{doublea;{doublea;charb
[10];charb
[10];}}ABCs;ABCs;28035若有以下的说明和语句,则在执行for语句后,**pt+l+2表示的数组元素是A t
[2]
[0]B t
[2]
[2]C t[l]
[2]D t
[2][l]intt
[3]
[3],*pt
[3],k;fork=0;k3;k++pt[k]=t[k]
[0];28136下面程序把数组元素中的最大值放入a
[0]中则在if语句中的条件表达式应该是A paB *pa
[0]C *p*a
[0]D *p
[0]*a
[0]main{inta
[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;fori=o;i10;i++,p++if________*a=*p;printf%d,*a;}28237以下程序的输出结果是A ihgfedcbaB abcdefghiC abcdedebaD ihgfefghi#includemain{char*a=abcdefghi;intk;funa;putsa;}funchar*s{intx,y;charc;forx=0,y=strlens-1;x0funk-1;printf%d,k;}28342以下程序的输出结果是A 699B 669C 61515D 6615intd=1;funintp{staticintd=5;d+=p;printf%d,d;returnd;}main{inta=3;printf%d\n,funa+fund;}28443以下程序的输出结果是A 123456780B 123456780C 12345678D 147main{charch
[3]
[4]={123,456,78},*p
[3];inti;fori=0;i3;i++p[i]=ch[i];fori=0;i3;i++printf%s,p[i];}28544以下程序的输出结果是A 1B 4C 7D 5#includeinta
[3]
[3]={1,2,3,4,5,6,7,8,9,},*p;main{p=int*mallocsizeofint;fp,a;printf%d\n,*p;}fint*s,intp[]
[3]{*s=p
[1]
[1];}28645以下程序的输出结果是A 9B 6C 36D 18#definefxx*xmain{inta=6,b=2,c;c=fa/fb;printf%d\n,c;}28746以下程序的输出结果是A4211B 0008C 4678D 8888main{char*s=12134211;intv
[4]={0,0,0,0},k,i;fork=0;s[k];k++{switchs[k]{case1i=0;case2i=1;case3i=2;case4i=3;}v[i]++;}fork=0;k4;k++printf%d,v[k];}28847以下程序的输出结果是A AfghdEFGB AbfhdC AfghdD Afgd#includemain{char*p1,*p2,str
[50]=ABCDEFG;p1=abcd;p2=efgh;strcpystr+1,p2+1;strcpystr+3,p1+3;printf%s,str;}28948以下程序的输出结果是A #*#*#B #####C *****D *#*#*main{inti;fori=1;i6;i++{ifi%2{printf#;continue;}printf*;}printf\n;}29049若有以下定义和语句doubler=99,*p=r;*p=r;则以下正确的叙述是A 以下两处的*p含义相同,都说明给指针变量p赋值B 在doubler=99,*p=r;中,把r的地址赋值给了p所指的存储单元C 语句*p=r;把变量r的值赋给指针变量pD 语句*p=r;取变量r的值放回r中29150以下程序的输出结果是A 编译不通过,无输出B acegC acegiD abcdefghimain{inti;fori=A;iI;i++,i++printf%c,i+32;printf\n;}
二、填空题每空2分,共40分请将每空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分2921DOS命令分为内部命令与外部命令,PATH命令是【1】 命令2932设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C在当前目录下的子目录W中现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如果需指定A盘上的该文件应写成【2】 2943为了得到XCOPY命令的在线帮助,可使用的DOS命令文件一为 【3】 2954在DOS系统下,代表键盘与显示器的设备文件名为 【4】 2965在DOS系统下,可以直接执行的文件的扩展名除.FXE外,还有两个是 【5】 6若想通过以下输入语句使a=
5.0,b=4,c=3,则输入数据的形式应该是【6】 intb,c;floata;scanf%f,%d,c=%d,a,b,c;...7下列程序的输出结果是 【7】 #includemain{charb
[30],*chp;strcpyb
[0],CH;strcpyb
[1],DEF;strcpyb
[2],ABC;printf%s\n,b;}8下列程序的输出结果是 【8】 inttintx,inty,intcp,intdp{cp=x*x+y*y;dp=x*x-y*y;}main{inta=4,b=3,c=5,d=6;ta,b,c,d;printf%d%d\n,c,d;}9下列程序中字符串中各单词之间有一个空格,则程序的输出结果是 【9】 #includemain{charstrl[]=Howdoyoudo,*p1=strl;strcpystrl+strlenstrl/2,esshe;printf%s\n,pl;}29710以下程序的功能是从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入请填空main{floatx
[1000],sum=
0.0,ave,a;intn=0,i;printfEntermark\n;scanf%f,a;whilea=
0.0n1000{sum+ 【10】 ;x[n]= 【11】 ;n++;scanf%f,a;}ave= 【12】 ;printfOutput\n;printfave=%f\n,ave;forI=0;In;I++if 【13】 printf“%f\n”x[I];}29811有以下定义和语句,则sizeofa的值是 【14】 而sizeofa.share的值是 【15】 structdate{intday;intmonth;intyear;union{intshare1floatshare2;}share;}a;29912以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空#includestdio.hmain{FILE*fp;charch,fname
[32];intcount=0;printfInputthefilename;scanf%s,fname;iffp=fopen 【16】 ,w+==NULL{printfCantopenfile%s\n,fname;exit0;}printfEnterdata\n;whilech=getchar!=#{fputcch,fp;count++;}fprintf 【17】 ,\n%d\n,count;fclosefp;}30013以下函数creatlist用来建立一个带头节点的单链表,链表的结构如下图所示,新的结点总是插入在链表的末尾链表的头指针作为函数值返回,链表最后一个节点的next域放入NULL,作为链表结束标志data为字符型数据域,next为指针域读入时字符以#表示输入结束#不存入链表请填空structnode{chardata;structnode*next;};... 【18】 creatlist{structnode*h,*s,*r;charch;h=structnode*mallocsizeofstructnode;r=h;ch=getchar;{s=structnode*mallocsizeofstructnode;s-data= 【19】 ;r-next=s;r=s;ch=getchar;}r-next= 【20】 ;returnh;}1999年9月全国计算机等级考试二级笔试答案C语言
一、选择题1--40题每题1分,41--50题每题2分,共60分1B2D3D4D5A6B7D8C9A10A11C12B13C14D15B16C17A18D19C20B21C22D23C24B25A26D27B28D29A30C31D32C33A34B35C36B373839404142C43C44D45C46B47D48A49D50B
二、填空题每空2分,共40分1内部2A:\X\Y\W\OR.C3XCOPY/或XCOPY/H4CON5COM和.BAT
65.04c=37CDABC8569Howdesshe10=a11a12sum/n13x[i]ave141516fname17fp18structnode*19ch20NULL全国计算机等级考试二级笔试试卷基础部分和C语言程序设计(考试时间120分钟,满分100分)2000年4月
一、选择题(1--40每小题1分41--50每小题2分共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分3011下列述叙中正确的是A显示器和打印机都是输出设备B显示器只能显示字符C通常的彩色显示器都有7种颜色D打印机只能打印字符和表格3022微型计算机中运算器的主要功能是进行A算术运算B逻辑运算C算术和逻辑运算D初等函数运算3033COMMANDCOM是DOS系统的最外层模块,通常称之为A引导程序B输入输出系统C命令处理系统D文件管理系统3044电子邮件是A网络信息检索服务B通过Web网页发布的公告信息C通过网络实时交互的信息传递方式D一种利用网络交换信息的非交互式服务3055和十进制数225相等的二进制数是A11101110B11111110C10000000D111111113066下列叙述中正确的是A指令由操作数和操作码两部分组成B常用参数xxMB表示计算机的速度C计算机的一个字长总是等于两个字节D计算机语言是完成某一任务的指令集3077计算机的内存储器比外存储器A价格便宜B存储容量大C读写速度快D读写速度慢3088设当前盘为C盘,执行DOS命令COPYB:\A.TXTPRN之后,结果是AB盘上的A.TXT文件被复制到C盘的PRN文件B屏幕上显示B盘上的A.TXT文件内容CB盘上的A.TXT文件内容在打印机上输出DB盘上的A.TXT文件被复制到B盘上的PRN文件3099要将当前盘当前目录下的两个文件X
1.TXT和B
1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT无论B盘当前目录是什么,完成这件任务可以使用的命令是ACOPYA:X
1.TXT+C:B
1.TXTZ.TXTBCOPYX
1.TXT+C:\WS\B
1.TXTB:\Z.TXTCCOPYA:X
1.TXT+C:\WS\B
1.TXTDCOPYX
1.TXT+B
1.TXTB:Z.TXT31010下列四组DOS命令中,功能等价的一组是ACOPYA:*.*B:与DISKCOPYA:B:BCOPYABC.TXT+XYZ.TXT与TYPEXYZ.TXTABC.TXTCCOPYABC.TXT+XYZ.TXT与COPYXYZ.TXT+ABC.TXTDTYPE*.FORCON与COPY*.FORCON31111设当前目录为D:\BB现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令ADELA*.TXTBDEL\AA\A.TXTCDEL\AA\A*.TXTDDEL\AA\A.TXT31212在Windows中,启动应用程序的正确方法是A用鼠标指向该应用程序图标B将该应用程序窗口最小化成图标B将该应用程序窗口还原D用鼠标双击该应用程序图标31313在Windows中,终止应用程序执行的正确方法是A将该应用程序窗口最小化成图标B用鼠标双击应用程序窗口右上角的还原按钮C用鼠标双击应用程序窗口中的标题栏D用鼠标双击应用程序窗口左上角的控制菜单框31414在微机系统中,对输入输出设备进行管理的基本程序模块BIOS存放在ARAM中BROM中C硬盘中D寄存器中31515使计算机病毒传播范围最广的媒介是A硬磁盘B软磁盘C内部存储器D互联网31616设有intx=11;则表达式x++*1/3的值是A3B4C11D1231717下列程序的输出结果是A3B
3.2C0D
3.07main{doubled=
3.2;intxy;x=
1.2;y=x+
3.8/
5.0;printf%d\nd*y;}31818下列程序执行后的输出结果是小数点后只写一位A
666.
06.0B
666.
76.7C
666.
06.7D
666.
76.0main{doubled;floatf;lingl;inti;i=f=1=d=20/3;printf%d%ld%f%f\nilfd;}31919下列变量定义中合法的是Ashort_a=1-.le-1;Bdoubleb=1+5e
2.5;Clongdo=0xfdaL;Dfloat2_and=1-e-3;32020设intx=1y=1;表达式!x||y--的值是A0B1C2D-132121与y=x01:x0-1:0;的功能相同的if语句是Aifx0y=1;Bifxelseifx0y=-1;ifx0y=1;elsey=0;elseifx0y=-1;elsey=0;Cy=-1Dy=0;ifxifx=0ifx0y=1;ifx0y=1;elseifx==0y=0;elsey=-1;elsey=-1;32222以下循环体的执行次数是A3B2C1D0main{intij;fori=0j=1;i=j+1;i+=2j--printf%d\ni;}32323以下叙述正确的是Ado-while语句构成的循环不能用其它语句构成的循环来代替Bdo-while语句构成的循环只能用break语句退出C用do-while语句构成的循环在while后的表达式为非零时结束循环D用do-while语句构成的循环在while后的表达式为零时结束循环32424下列程序执行后的输出结果是AGBHCIDJmain{intx=f;printf%c\nA+x-a+1;}32525执行下面的程序段后变量k中的值为A不定值B33C30D10intk=3s
[2];s
[0]=k;k=s
[1]*10;32626若已定义:inta[]={0123456789]*p=ai;其中0≤i≤9则对a数组元素不正确的引用上Aa[p-a]B*a[i]Cp[i]Da
[10]32727下列程序执行后的输出结果是A6B7C8D9voidfuncint*aintb[]{b
[0]=*a+6;}main{intab
[5];a=0;b
[0]=3;funcab;printf%d\nb
[0];}32828下列程序的运行结果是Aa=%2b=%5Ba=2b=5Ca=db=dDa=%db=%d#includestdio.hmain{inta=2c=5;printfa=%db=%d\nac;}32929下列程序执行后的输出结果是A3B6C9D随机数main{inta
[3]
[3]*pi;p=a
[0]
[0];fori=p;i9;i++p[i]=i+1;printf%d\na
[1]
[2];}33030设有数组定义:chararray[]=China;则数组array所占的空间为A4个字节B5个字节C6个字节D7个字节33131下列程序的输出结果是A4B6C8D10intb=2;intfuncint*a{b+=*a;returnb;}main{inta=2res=2;res+=funca;printf%d\nres;}33232在以下四组中,每组有两个分别运算的函数,运算结果相同的是A4B2C2D0main{intijm=0n=0;fori=p;i2;i++forj=0;j2;j++ifj=im=1;n++;printf%d\nn;}33333下列程序的输出结果是A5B6C7D8structabc{intabc;};main{structabcs
[2]={{123}{456}};intt;t=s
[0]a+s
[1]b;printf%d\nt;}33434设intb=2;表达式b2/b1的值是A0B2C4D833535在C程序中可把整型数以二进制形式存放到文件中的函数是Afprintf函数Bfread函数Cfwrite函数Dfputc函数33636下列程序执行后的输出结果是A-32767BFFFEC-1D-32768main{charx=0xFFFF;printf%d\nx--;}33737若有定义:floatw;intab;则合法的switch语句是AswitchwBswitcha;{case
1.0:printf*\n;{case1printf*\n;case
2.0:printf**\n;case2printf**\n;}}CswitchbDswitcha+b;{case1:printf*\n;{case1:printf*\n;default:printf\n;case2:printf**\n;case1+2:printf**\n;default:printf\n;}}33838以下程序段的执行结果是Aa=12y=12Ba=12y=12a=14y=16a=16y=28a=16y=20a=18y=24Ca=12y=12Da=12y=12a=14y=26a=14y=44intay;a=10;y=0;do{a+=2;y+=a;printfa=%dy=%d\nay;ify20break;{whilea=14;...33939若有以下调用语句则不正确的fun函数的首部是Avoidfunintmintx[]Bvoidfunintsinth
[41]Cvoidfunintpint*sDvoidfunintnintamain{…inta
[50]n;…funna
[9];…}34040语句printfa\bre\hi\y\\\bou\n;的输出结果是Aa\bre\hi\y\\\bouBa\bre\hi\y\bouCrehiyouDabrehiy\bou说明:\b是退格符34141请选出正确的程序段Aint*p;Bint*sk;scanf%dp;*s=100;……Cint*sk;Dint*sk;char*pc;char*pe;s=k;s=k;p=c;p=c;*p=a;s=p;…*s=1;…34242已知指针p的指向如下图所示则执行语句*--p;后*p的值是A30B20C19D29a
[0]a
[1]a
[2]a
[3]a
[4]102030405034343设已有定义:char*st=howareyou;下列程序段中正确的是Achara
[11]*p;strcpyp=a+1st
[4];Bchara
[11];strcpy++ast;Cchara
[11];strcpyast;Dchara[]*p;strcpyp=a
[1]st+2;34444下列程序执行后的输出结果是AyouneByouCmeDerrmai{chararr
[2]
[4];strcpyarryou;strcpyarr
[1]me;arr
[0]
[3]=;printf%s\narr;}34545下列程序执行后的输出结果是AhelloBhelChloDhlmvoidfunc1inti;voidfunc2inti;charst[]=hellofriend!;voidfunc1inti{printf%cst[i];ifi3{i+=2;func2i;}}voidfunc2inti{printf%cst[i];ifi3{i+=2;func1i;}}main{inti=0;func1i;printf\n;}34646假定下列程序的可执行文件名为prg.exe则在该程序所在的子目录下输入命令行:prghellogood回车后程序的输出结果是AhellogoodBhgChelDhellogoodmainintargcchar*argv[]{inti;ifargc-0return;fori=1;iargc;i++printf%c*argv[i];}34747下列程序执行后的输出结果是A6B8C10D12#defineMAxx*x-1main{inta=1b=2;printf%d\nMA1+a+b;}34848有以下结构体说明和变量的定义且如下图所示指针p指向变量a指针q指向变量b则不能把结点b连接到结点a之后的语句是Aa.next=q;Bp.next=b;Cp-next=b;D*p.next=q;structnode{chardata;structnode*next;{ab*p=a*q=b;datanextdatanext34949变量a所占内存字节数是A4B5C6D8unionU{charst
[4];inti;longl;};structA{intc;unionUu;}a;35050执行下列程序时输入:123空格456空格789回车输出结果是A123456789B1456789C123456789D123456main{chars
[100];intci;scanf%cc;scanf%di;scanf%ss;printf%c%d%s\ncis;}
二、填空题每空2分,共40分请将每空的正确答案写在答题卡上
[1] ̄
[20]序号的横线上,答在试卷上不得分3511计算机网络按通信距离来划分可分为局域网和广域网因特网属于
[1]3522当前盘是C确保在D盘的根目录下建立一个子目录USER的一条DOS命令是
[2]3533要将当前盘当前目录中所有扩展名为.TXT的文件内容显示在屏幕上的DOS命令是
[3]3544DOS命令分为内部命令和外部命令CHKDSK命令是
[4]命令3555在Windows中为了终止一个应用程序的运行首先单击该应用程序窗口中的控制菜单框然后在控制菜单中单击
[5]命令3566设有以下变量定义并已赋确定的值charw;intx;floaty;doublez;则表达式:w*x+z-y所求得的数据类型为
[6]3577若x为int类型请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式
[7]3588若有如下图所示五个连续的int类型的存储单元并赋值如下图a
[0]的地址小于a
[4]的地址p和s是基类型为int的指针变量请对以下问题进行填空a
[0]a
[1]a
[2]a
[3]a
[4]22334455661若p已指向存储单元a
[1]通过指针p给s赋值使s指向最后一个存储单元a
[4]的语句是
[8]2若指针s指向存储单元a
[2]p指向存储单元a
[0]表达式s-p的值是
[9]3599下面函数用来求出两个整数之和并通过形参传回两数相加之和值请填空intaddintxinty
[10]z{
[11]=x+y;}36010下面程序的功能是:计算1到10之间奇数之和及偶数之和请填空#includestdio.hmain{intabci;a=c=0;fori=0;i10;i+=2{a+=i;
[12];c+=b;}printf偶数之和=%d\na;printf奇数之和=%d\nc-11;}36111下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数请填空#includestdio.hmain{intij;fori=0;
[13];i++{j=i*10+6;if
[14]continue;printf%dj;}}36212下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列其它元素不变请填空#includestdio.h#includestring.hmain{chara[]=clanguaget;intijk;k=strlena;fori=0;i=k-2;i+=2forj=i+2;j=k;
[15]if
[16]{t=a[i];a[i]=a[j];a[j]=t;}putsa;printf\n;}36313以下程序的运行结果是
[17]#includestdio.hmain{intk=4m=1p;p=funckm;printf%dp;p=funckm;printf%d\np;}funcintaintb{staticintm=0i=2;i+=m+1;m=i+a+b;returnm;}36414以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数例如输入的字符串为:556则输出十进制整数366请填空#includestdio.hmain{char*ps
[6];intn;p=s;getsp;n=*p-0;while
[18]!=\0n=n*8+*p-0;printf%d\nn;}36515函数voidfunfloat*snintn的功能是:根据以下公式计算S计算结果通过形参指针sn传回;n通过形参传入n的值大于等于0请填空voidfunfloat*snintn{floats=
0.0wf=-
1.0;inti=0;fori=0;i=n;i++{f=
[19]*f;w=f/2*i+1;s+=w;}
[20]=s;}「完」全国计算机等级考试二级笔试试卷参考答案2000年4月C语言
一、选择题1--40题每题1分,41--50题每题2分,共60分1A2C3C4D5D6A7C8C9D10B11C12D13D14B15D16A17C18A19A20B21A22C23D24A25A26D27A28B29B30C31B32A33B34D35A36C37D38B39C40C41C42B43A44A45C46B47B48B49C50D
二、填空题每空2分,共40分1广域网2MDD:\USER3COPY*.TXTCON4外部5退出或关闭6double7x==0||x==18s=p+39210int*11*z12b=i+113i1014i%3!=015j+=216a[i]a[j]1781718*++p19–120*sn全国计算机等级考试二级笔试试卷基础部分和C语言程序设计考试时间120分钟,满分100分2000年9月
一、选择题1--40每小题1分41--50每小题2分共60分下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分3661下列电子邮件地址中正确的是其中□表示空格AMalinns.cnc.ac.cnBmalin@ns.cac.ac.cnCLin□Mans.cnc.ac.cnDLin□Ma@ns.cnc.ac.cn3672下列说法中正确的是A为了使用Novell网提供的服务,必须采用FTP协议B为了使用Internet网提供的服务,必须采用TELNET协议C为了使用Novell网提供的服务,必须采用TCP/IP协议D为了使用Internet网提供的服务,必须采用TCP/IP协议3683下列说法中不正确的是A调制解调器Modem是局域网络设备B集线器Hub是局域网络设备C网卡NIC是局域网络设备D中继器Repeater是局域网络设备3694十进制数397的十六进制值为A18DB18EC277D3613705下列说法中不正确的是ACD-ROM是一种只读存储器但不是内存储器BCD-ROM驱动器是多媒体计算机的基本部分C只有存放在CD-ROM盘上的数据才称为多媒体信息DCD-ROM盘上最多能够存储大约650兆字节的信息3716Windows应用环境中鼠标的拖动操作不能完成的是A当窗口不是最大时,可以移动窗口的位置B当窗口最大时,可以将窗口缩小成图标C当窗口有滚动条时可以实现窗口内容的滚动D可以将一个文件移动或复制到另一个目录中去3727从Windows中启动MS-DOS方式进入了DOS状态,如果想回到Windos状态,在DOS提示符下,应键入的命令为AEXITBQUITCWINDDOS-U3738要在WINDOWS标准窗口的下拉菜单中选择命令,下列操作错误的是A用鼠标单击该命令选项B用键盘上的上下方向键将高亮度条移至该命令选项后再按回车键C同时按下ALT键与该命令选项后括号中带有下划线的字母键D直接按该命令选项后面括号中带有下划线的字母键3749ASCLL码含扩展可以用一个字节表示,则可以表示的ASCLL码值个数为A1024B256C128D8O37510字长为32位的计算机是指A该计算机能够处理的最大数不超过232B该计算机中的CPU可以同时处理32位的二进制信息C该计算机的内存量为32MBD该计算机每秒钟所能执行的指令条数为32MIPS37611在DOS系统中,下列文件名中非法的是AABCDEFG1BABCDEFG
1.234CABCD_EFGDABCD\EFG37712DOS系统启动后,下列文件中驻留内存的是ACONFIG.SYSBCOMMAND.COMCAUTOEXEC.BATDMEM.EXE37813DOS下的“DIR*2”命令将列出当前目录下的A所有名字末尾为字符2的非隐含文件和目录B所有名字末尾为字符2的非隐含文件C所有非隐含文件D所有非隐含文件和目录37914软驱的盘符为A,A盘上只有一个目录\XYZ而\XYZ下有若干子目录和文件,若想把A盘的所有内容复制到C盘根目录下,应使用的命令为ACOPYA:\*.*C:BCOPYA:\*.*C:\*.*CXCOPYA:\*.*C:\/SDDISKCOPYA:C:38015若要将当前盘目录下的文件A.TXT连接在文件B.TXT后面,应使用的命令为ACOPYA.TXTB.TXTBMOVEA.TXTB.TXTCPATHA.TXTB.TXTDTYPEA.TXTB.TXT38116若变量已正确定义并赋值,下面符合C语言语法的表达式是Aa:=b+1Ba=b=c+2Cint
18.5%3Da=a+7=c+b38217C语言中运算对象必须是整型的运算符是A%=B/C=D〈=38318若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是A1B2C
2.0D
2.538419若变量a、iI已正确定义,且i已正确赋值,合法的语句是Aa==1B++i;Ca=a++=5;Da=inti;38520若有以下程序段,intc1=1c2=2c3;c3=
1.0/c2*c1;则执行后,c3中的值是A0B
0.5C1D238621有如下程序main0{inty=3x=3z=1;printf“%d%d\n”++xy++z+2;}运行该程序的输出结果是A34B42C43D3338722能正确表示逻辑关系“a≥=10或a≤0”的C语言表达式是Aa=10ora=0Ba=0|a=10Ca=10a=0Da=10‖a=038823有如下程序main0{intx=1a=0b=0;switchx{case0:b++;case1:a++case2:a++;b++}printf“a=%db=%d\n”ab;}该程序的输出结果是Aa=2b=1Ba=1b=1Ca=1b=0Da=2b=238924有如下程序main0{floatx=
2.0y;ifx
0.0y=
0.0;elseifx
10.0y=
1.0/x;elsey=
1.0;printf“%f\n”y;}该程序的输出结果是A
0.000000B
0.250000C
0.500000D
1.00000039025有如下程序main0{inta=2b=-1c=2;ifabifb0c=0;elsec++printf“%d\n”c;}该程序的输出结果是A0B1C2D339126有如下程序main0{intisum;fori=1;i=3;sum++sum+=i;printf“%d\n”sum;}该程序的执行结果是A6B3C死循环D039227有如下程序main0{intx=23;do{printf“%d”x--;}while!x;}该程序的执行结果是A321B23C不输出任何内容D陷入死循环39328有如下程序main0{intn=9;whilen6{n--;printf“%d”n;}}该程序段的输出结果是A987B876C8765D987639429设有说明语句chara=’\72’;则变量aA包含1个字符B包含2个字符C包含3个字符D说明不合法39530有如下函数调用语句funcrec1rec2+rec3rec4rec5;该函数调用语句中,含有的实参个数是A3B4C5D有语法错39631有如下程序intruncintaintb{returna+b;}main0{intx=2y=5z=8r;r=funcfuncxyz;printf“%\d\n”r;}该程序的输出的结果是A12B13C14D1539732有如下程序段int*pa=10b=1p=a;a=*p+b;执行该程序段后,a的值为A12B11C10D编译出错39833对于基类型相同的两个指针变量之间,不能进行的运算是AB=C+D-39934以下函数返回a所指数组中最小的值所在的下标值funint*aintn{intij=0p;p=j;fori=j;in;i++ifa[i]a[p]__________;returnp;}在下划线处应填入的是Ai=pBa[p]=a[i]Cp=jDp=i40035有如下程序longfibintn{ifn2returnfibn-1+fibn-2;elsereturn2;}main0{printf“%d\n”fib3;该程序的输出结果是A2B4C6D840136在C语言中,函数的隐含存储类别是AautoBstaticCexternD无存储类别40237有如下程序#defineN2#defineMN+1#defineNUM2*M+1#main{inti;fori=1;i=NUM;i++printf“%d\n”i;}该程序中的for循环执行的次数是A5B6C7D840338有以下函数charfunchar*p{returnp;}该函数的返回值是A无确切的值B形参p中存放的地址值B一个临时存储单元的地址D形参p自身的地址值40439有如下程序段inta=14b=15x;charc=’A’;x=abc’B’;执行该程序段后,x的值为AtureBfalseC0D140540若fp是指向某文件的指针,且已读到此文件末尾,则库函数feoffp的返回值是AEOFB0C非零值DNULL40641若有以下说明和定义funint*c{}main{int*a=fun*bw
[10]c;┆}在必要的赋值之后,对fun函数的正确调用语句是Aa=aw;B*ac;Cb=*bw;Dfunb;40742有如下说明inta
[10]={12345678910}*p=a;则数值为9的表达式是A*P+9B*P+8C*P+=9DP+840843有如下程序main0{intn
[5]={000}ik=2;fori=0;ik;i++n[i]=n[i]+1;printf“%d\n”n[k];}该程序的输出结果是A不确定的值B2C1D040944若有以下的定义intt
[3]
[2];能正确表示t数组元素地址的表达式是At
[3]
[2]Bt
[3]Ct
[1]Dt
[2]41045有如下程序main0{inta
[3]
[3]={{12}{34}{56}}ijs=0;fori=1;i3;i++forj=0;ji;j++s+=a[i][j]printf“%d\n”s;}该程序的输出结果是A18B19C20D2141146有如下定义structperson{charname
[9];intage;};strictpersonclass
[10]={“Johu”17“Paul”19“Mary”18“Adam16};根据上述定义,能输出字母M的语句是Aprinft“%c\n”class
[3].mane;Bpfintf“%c\n”class
[3].name
[1];Cprinft“%c\n”class
[2].name
[1];Dprintf“%^c\n”class
[2].name
[0];41247以下对结构体类型变量的定义中,不正确的是AtypedefstructaaB#defineAAstructaa{intn;AA{intn;floatm;floatm;}AA;}td1;AAtd1;CstructDstruct{intn;{intn;floatm;floatm;}aa;}td1;stuctaatd1;41348若已建立如下图所示的单向链表结构,Pdatanext在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是Ap=p-next;s-next=p;p-next=s;Bp=p-next;s-next=p-next;p-next=s;Cs-next=NULL;p=p-next;p-next=s;Dp=*p.next;*s.next=*p.next;*p.next=s;41449有如下程序main{chars[]=”ABCD”*P;forp=s+l;ps+4;p++printf“%s\n”p;}该程序的输出结果是AABCDBACBDBCDBCDBCCDCDCDDDD41550有如下程序main{charch
[2]
[5]={“6937””8254”}*p
[2];intijs=0;fori=0;i2;i++p[i]=ch[i];fori=0;i2;i++forj=0;p[i][j]’\0’;j+=2s=10*s+p[i][j]-‘0’;printf“%d\n”s;}该程序的输出结果是A69825B63825C6385D693825
二、填空题每空2分,共40分请将每空的正确答案写在答题卡上
[1]至
[20]序号的横线上,答在试卷上不得分1在DOS状态下当执行当前盘目录中的程序A.EXE时为了将本该在屏幕上显示的运行结果输出到文件A.DAT中应使用的DOS命令为
[1]2在XCOPY、PATH、TREE三个DOS命令中,属于内部命令的是令是
[2]3设当前盘为C盘,为了将当前盘当前目录中第三个字符为X的所有文件同名复制到A盘的当前目录中,应使用的DOS命令为
[3]4要将当前盘的目录A\B\C设置为当前目录应使用的DOS命令为
[4]5计算机网络按通信距离划分为局域网与广域网Novell网属于
[5]6以下程序的输出结果是
[6]main{unsignedshorta=65536;intb;printf“%d\n”b=a;}7若有定义inta=10b=9c=8;接着顺序执行下列语句后,变量b中的值是
[7]c=a-=b-5;c=a%11+b=3;8表示“整数x的绝对值大于5”时值为“真”的C语言表达式是
[8]9要使以下程序段输出10个整数,请填入一个整数fori=0;i=
[9];printf“%d\n”i+=2;41610函数pi的功能是根据以下近似公式求π值π*π/6=1+1/2*2+1/3*3+..+1/n*n现在请你在下面的函数中填空,完成求π的功能#include“math.h”doublepilongn{doubles=
0.0;longi;fori=1;i=n;i++s=s+
[10];returnsqrt6*s;}41711若输入字符串abcde回车则以下while循环体将执行
[11]次Whilech=getchar==’e’printf“*”;41812以下函数用来求出两整数之和,并通过形参将结果传回,请填空voidfuncintxinty
[12]z{*z=x+y;}41913若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是
[13]intw
[10]={235410334798728061}*p=w;42014设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部
[14]要求形参名为bmain{doubles
[10]
[22];intn;┆┆funs;┆}42115以下程序的输出结果是
[15]voidfun{staticinta=0;a+=2;printf“%d”a;}main{intcc;forcc=1;cc4;cc++funprintf“\n”;}42216以下程序的输出结果是
[16]#defineMAXxyxyx:ymain{inta=5b=2c=3d=3t;t=MAXa+bc+d*10;printf“%d\n”t;}42317若要使指针p指向一个double类型的动态存储单元,请填空p=
[17]mallocsizeofdouble;42418设有以下结构类型说明和变量定义,则变量a在内存所占字节数是
[18]Structstud{charnum
[6];ints
[4];doubleave;}a*p;42519以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度请填空Strcenchara[]charb[]{intnum=0n=0;while*a+num!=
[19]num++;whileb[n]{*a+num=b[n];num++;
[20];}returnnum;}2000年9月全国计算机等级考试二级笔试试卷答案
一、选择题1B2D3A4A5C6B7A8C9B10B11D12B13D14C15D16B17A18C19B20A21D22D23A24C25C26C27B28B29A30A31D32B33C34D35B36C37B38B39D40c41B42B43D44D45A46D47C48A49D50C
二、填空题
[1]A.EXEA.DAT或AA.DAT
[2]PATH
[3]COPYX*.*A:
[4]CDA\B\C
[5]局域网
[6]0
[7]3
[8]x5||x-5
[9]18
[10]
1.0/i*i
[11]0
[12]int*
[13]P
[5]或*p+5
[14]voidfundoubleb[]
[22]或voidfundoubleb
[0]
[22]或voidfundouble*b
[22]
[15]246
[16]7
[17]double*
[18]22
[19]\0或0
[20]n++或n+=1或n=n+1全国计算机等级考试二级笔试试卷基础部分和C语言程序设计(考试时间120分钟,满分100分)2001年4月
一、选择题(1-40题每题1分41-50题每题2分共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分4261计算机的存储器完整的应包括A软盘、硬盘B磁盘、磁带、光盘C内存储器、外存储器DRAM、ROM4272计算机中运算器的作用是A控制数据的输入/输出B控制主存与辅存间的数据交换C完成各种算术运算和逻辑运算D协调和指挥整个计算机系统的操作4283软磁盘处于写保护状态时,其中记录的信息A绝对不会丢失B不能被擦除,但能追加新信息C不能通过写磁盘操作被更新D不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除4294光盘根据基制造材料和记录信息的方式不同,一般可分为ACD、VCDBCD、VCD、DVD、MP3C只读光盘、可一次性写入光盘、可擦写光盘D数据盘、音频信息盘、视频信息盘4305在计算机系统中,可执行程序是A源代码B汇编语言代码C机器语言代码DASCII码4316计算机软件系统包括A操作系统、网络软件B系统软件、应用软件C客户端应用软件、服务器端系统软件D操作系统、应用软件和网络软件4327目前,一台计算机要连入Internet,必须安装的硬件是A调制解调器或网卡B网络操作系统C网络查询工具DWWW浏览器4338在多媒体计算机系统中,不能存储多媒体信息的是A光盘B磁盘C磁带D光缆4349要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是ATYPEa*.*BTYPEabc.exeCTYPEpro.cPRNDTYPEabc.txt43510下列更改文件名的命令中正确的是ARENA:file1C:F1BRENAMEA:A:file1C:F1CRENA:file1F1DRENA:file1\SUB\F143611已知A盘为DOS系统启动盘,只有A:\DOS下有自动批处理文件,其中内容为CD\DOSMDUSERCDUSER由A盘启动DOS系统后,A盘的当前目录是A\DOSB\DOS\USERC\D\USER43712MS-DOS是A分时操作系统B分布式操作系统C单用户、单任务操作系统D单用户、多任务操作系统43813在Windows操作系统中,不同文档之间互相复制信息需要借助于A剪切板B记事本C写字板D磁盘缓冲器43914在Windows操作系统中A同一时刻可以有多个活动窗口B同一时刻可以有多个应用程序在运行,但只有一个活动窗口C同一时刻只能有一个打开的窗口DDOS应用程序窗口与Windows应用程序窗口不能同时打开着44015下列叙述中正确的是A所有DOS应用程序都可以在Windows操作系统中正确运行B所有DOS应用程序都不能在Windows操作系统中正确运行C大部分DOS应用程序可以在Windows操作系统中正确运行D为DOS
5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行44116下列叙述中正确的是AC语言编译时不检查语法BC语言的子程序有过程和函数两种CC语言的函数可以嵌套定义DC语言所有函数都是外部函数44217以下所列的C语言常量中,错误的是A0xFFB
1.2e
0.5C2LD‘\72’44318下列选项中,合法的C语言关键字是AVARBcherCintegerDdefault44419以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是Ax/y*zBx*1/y*zCx/y*1/zDx/y/z44520若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是A-3B9C-12D644621设x、y、t均为int型变量,则执行语句x=y=3;t=++x||++y;后,y的值为A不定值B4C3D144722若变量已正确说明为float类型,要通过语句scanf“%f%f%f”abc;给a赋于
10.0,b赋予
22.0,c赋予
33.0,不正确的输入形式是A10回车B
10.
022.
033.0回车22回车33回车C
10.0回车D1022回车
22.
033.0回车33回车44823若执行以下程序时从键盘上输入9,则输出结果是A11B10C9D8Main0{intn;scanf“%d”n;ifn++10printf“%d\n”n;elseprintf“%d\n”n--;}44924若a、b、c
1、c
2、x、y、均是整型变量,正确的switch语句是Aswicha+b;Bswitcha*a+b*b{case1:y=a+b;break;{case3:case0:y=a-b;break;case1:y=a+b;break;}case3:y=b-abreak;}CswitchaDswitcha-b{casec1:y=a-b;break{default:y=a*b;breakcasec2:x=a*d;breakcase3:case4:x=a+b;breakdefault:x=a+b;case10:case11:y=a-b;break;}}45025有以下程序段intk=0whilek=1k++;while循环执行的次数是A无限次B有语法错,不能执行C一次也不执行D执行1次45126以下程序执行后sum的值是A15B14C不确定D)0min{intisum;fori=1;i6;i++sum+=i;printf“%d\n”sum;}45227有以下程序段intx=3do{printf“%d”x-=2;}while!--x;其输出结果是A1B30C1-2D死循环45328若变量c为char类型,能正确判断出c为小写字母的表达式是A‘a’=c=‘z’Bc=‘a’||c=‘z’C‘a’=cand‘z’=cDc=‘a’c=‘z’45429以下所列的各函数首部中,正确的是Avoidplayvar:Integervarb:IntegerBvoidplayintabCvoidplayintaintbDSubplayaasintegerbasinteger45530以下程序的输出结果是A0B29C31D无定值funintxintyintz{z=x*x+y*y;}main{inta=31;fun52a;printf“%d”a;}45631下列程序段的输出结果是A2143B1212C1234D2112voidfunint*xint*y{printf“%d%d”*x*y;*x=3;*y=4;}main{intx=1y=2;funyx;printf“%d%d”xy;}45732下列程序的输出结果是A非法B)a
[4]的地址C)5D)3main{chara
[10]={9876543210}*p=a+5;printf“%d”*--p;}45833下列程序的运行结果是A63B36C编译出错D00voidfunint*aint*b{int*k;k=a;a=b;b=k;}main{inta=3b=6*x=a*y=b;funxy;printf“%d%d”ab;}45934下面程序的输出结果是A0B1C10D9main{inta[]={1234567890}*p;p=a;printf“%d\n”*p+9;}46035当调用函数时,实参是一个数组名,则向函数传送的是A数组的长度B数组的首地址C数组每一个元素的地址D数组每个元素中的值46136设有以下说明语句structex{intx;floaty;charz;}example;则下面的叙述中不正确的是Astruct结构体类型的关键字Bexample是结构体类型名Cxyz都是结构体成员名Dstructex是结构体类型46237以下只有在使用时才为该类型变量分配内存的存储类说明是Aauto和staticBauto和registerCregister和staticDextern和register46338若fp是指向某文件的指针,且已读到文件末尾,则库函数feoffp的返回值是AEOFB-1C非零值DNULL46439以下程序的输出结果是A20B21C22D)23main{intika
[10]p
[3];k=5;fori=0;i10;i++a[i]=i;fori=0;i3;i++p[i]=a[i*i+1];fori=0;i3;i++k+=p[i]*2;printf“%d\n”k;}46540以下程序的输出结果是A159B147C357D)369main{intix
[3]
[3]={123456789};fori=0;i3;i++printf“%d”x[i][2-i];}46641以下程序的输出结果是A18B19C20D)21main{inta
[3]
[3]={{12}{34}{56}}ijs=0;fori=1;i3;i++forj=0;j=i;j++s+=a[i][j];printf“%dn”s;}46742以下程序的输出结果是AABCDBABCDCEFGDEFGHFGHEFGJKIJKLKLIJOMmain{charw[]
[10]={“ABCD””EFGH””IJKL””MNOP”}k;fork=1;k3;k++printf“%s\n”w[k];}46843当执行下面的程序时,如果输入ABC,则输出结果是AABC6789BABC67C12345ABC6DABC456789#include“stdio.h”#include“string.h”main{charss
[10]=“12345”;getsss;strcatss“6789”;printf“%s\n”ss;}46944假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入PROGABCDEFGHIJKL回车,则输出结果为AABCDEFGBIJHLCABCDEFGHIJKLDIJKLABCDEFGHmainintargcchar*argv[]{while--argc0printf“%s”argv[argc];printf“\n”;}47045以下程序的输出结果是A1B2C3D4longfunintn{longs;ifn==1||n==2s=2;elses=n-funn-1;returns;}main{printf“%ld\n”fun3;}47146以下程序的输出结果是A16B2C9D1#defineSQRXX*Xmain{inta=16k=2m=1;a/=SQRk+m/SQRk+m;printf“d\n”a;}47247若定义了以下函数voidf……{……*p=double*malloc10*sizeofdouble;……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是Adouble*pBfloat**pCdouble**pDfloat*p47348以下程序的输出是A10B11C51D60structst{intx;int*y;}*p;intdt
[4]={10203040};structstaa
[4]={50dt
[0]60dt
[0]60dt
[0]60dt
[0]};main{p=aa;printf“%d\n”++p-x;}47449假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是Afreeq;p-next=q-next;B*p.next=*q.next;freeq;Cq=*q.next;*p.next=q;freeq;Dq=q-next;p-next=q;p=p-next;freep;47550以下程序的输出结果是A0B1C2D3main{intx=
0.5;charz=’a’;printf“%d\n”x1z’z’;}二填空题每空2分,共40分请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分1计算机机领域中,通常用英文单词“Byte”表示【1】2在DOS环境下,自动批处理的文件名为【2】3要将当前盘当前目录下所有扩展名为.TXT的文件内容在打印机上打印输出,应使用的单条DOS内部命令为【3】4在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【4】操作实现窗口的移动5在Windows环境下,可以将窗口最小化为【5】6以下程序的输出结果是【6】main{inta=1b=2;a=a+b;b=a-b;a=a-b;printf“%d%d\n”ab;}7下列程序的输出结果是
16.00,请填空main{inta=9b=2;floatx=【7】y=
1.1z;z=a/2+b*x/y+1/2;printf“%
5.2f\n”z;}8用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空st=char*【8】;9下列程序段的输出结果是【9】main{charb[]=”Helloyou”;b
[5]=0;printf“%s\n”b;}10下列程序段的输出结果是【10】intn=’c’;switchn++{default:printf“error”;break;case‘a’:case‘A’:case‘b’:case‘B’:printf“good”;break;case‘c’:case‘C’:printf“pass”;case‘d’:case‘D’:printf“warn”;}11以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句voidfunint*xint*y{……}main{inta=10b=20;【11】;/定义变p*/p=fun;pab;……}12下列程序的输出结果是【12】voidfunint*n{while*n--;printf“%d”++*n;}main{inta=100;funa;}13以下程序的输出结果是【13】main{intarr[]={30252015105}*p=arr;p++;printf“%d\n”*p+3;}14以下程序用来输出结构体变量ex所占存储单元的字节数,请填空structst{charname
[20];doublescore;};main{structstex;printf“exsize:%d\n”sizeof【14】;}15下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中请填空#include“stdio.h”FILE*fp;{charch;iffp=fopen【15】==NULLexit0;whilech=getchar!=’@’fputcchfp;fclosefp;}16若变量n中的值为24,则prnt函数共输出【16】行,最后一行有【17】个数voidprntintnintaa[]{inti;fori=1;i=n;i++{printf“%6d”aa[i];if!i%5printf“\n”;}printf“\n”;}17以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值请填空#defineN3#defineM4voidLineMaxintx[N][M]{intijp;fori=0;iN;i++{p=0;forj=1;jM;j++ifx[i][p]x[i][j]【18】;printf“Themaxvalueinline%dis%d\n”i【19】;}}main{intx[N][M]={157426438231};【20】}2001年4月全国计算机等级考试二级笔试答案C语言
1、选择题1--40题每题1分,41--50题每题2分,共60分1C2C3C4C5C6B7A8D9D10C11C12C13A14B15C16D17B18D19A20C21C22B23B24D25A26C27C28D29C30C31A32C33B34C35B36B37B38C39B40C41A42D43A44D45A46B47C48C49B50B
二、填空题每空2分,共40分1字节2AUTOEXECBAT3COPY*TXTPRN4拖动5图标或按钮
62.
176.68Malloc11或mallocsizeofchar*119Hello10passwarm11void*p或void*pint*int*120131014structst或ex15“bi.dat”“w”或“bi.dat”“wt”或“bi.dat”“w+t”16517418sp=j19cx[i][p]20LineMaxx全国计算机等级考试二级笔试试卷基础部分和C语言程序设计考试时间120分钟,满分100分2001年9月
一、选择题1-40题每题1分41-50题每题2分共60分下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分476l在计算机系统中,一个字节的二进制位数为A16B8C4D由CPU的型号决定4772存储16×16点阵的一个汉字信息,需要的字节数为A32B64C128D2564783英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为A43HB84HC74HD62H4794下列计算机语言中,CPU能直接识别的是A自然语言B高级语言C汇编语言D机器语言4805在计算机领域中,所谓“裸机”是指A单片机B单板机C不安装任何软件的计算机D只安装操作系统的计算机4816下列带有通配符的文件名中,能代表文件ABCDEF.DAT的是AA*.*BF.*C*.?DAB.*4827下列DOS命令中,执行时不会发生错误的是ATYPE*.TXTBDIR*.TXTCRENA.TXTA:b.TXTDCOPY*.TXTCON4838设当前盘为C盘,C盘的当前目录为\A\B\C下列DOS命令中能正确执行的是AMD\BMDA:\CMD\A\BDCDC:4849为了将C:USER中的文件FILE.TXT同名复制到A盘根目录下,下列DOS命令中能正确执行的是ATYPEC:\USER\FILE.TXTA:\FILE.TXTBTYPEC:\USER\FILE.TXTA:\FILE.TXTCCOPYC:\USER\FILE.TXTA:\FILE.TXTDCOPYC:\USER\FILE.TXT48510在Windows下,当一个应用程序窗口被最小化后,该应用程序A终止运行B暂停运行C继续在后台运行D继续在前台运行48611在Windows环境下,下列操作中与剪贴板无关的是A剪切B复制C粘贴D删除48712在Windows环境下,实现窗口移动的操作是A用鼠标拖动窗口中的标题栏B用鼠标拖动窗口中的控制按钮C用鼠标拖动窗口中的边框D用鼠标拖动窗口中的任何部位48813一台计算机连入计算机网络后,该计算机A运行速度会加快B可以共享网络中的资源C内存容量变大D运行精度会提高48914不能作为计算机网络中传输介质的是A微波B光纤C光盘D双绞线49015下列各项中,不属于多媒体硬件的是A声卡B光盘驱动器C显示器D多媒体制作工具49116在C语言中,合法的长整型常数是AOLB4962710C324562D216D49217以下有4组用户标识符,其中合法的一组是AForB4dCf2_G3DWORD-subDOIFvoidCaseSizeabcdefine49318以下选项中合法的字符常量是A“B”B‘\010’C68DD49419假定x和y为double型,则表达式x=2y=x+3/2的值是A
3.500000B3C
2.000000D
3.00000049520以下合法的赋值语句是Ax=y=100Bd--;Cx+y;Dc=inta+b;49621设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是pprintf”%d%d\n”x----y;A103B
9.3C
9.2D
10.249722x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是AINPUTx、y、z;Bscanf“%d%d%d”xyz;Cscanf“%d%d%d”xyz;Dread“%d%d%d”xyz;49823以下程序的输出结果是main{inta=3;printf“%d\n”a+a-=a*a;}A–6B12C0D-1249924设a、b、C、d、m、n均为int型变量,且a=
5、b=
6、c=
7、d=
8、m=
2、n=2,则逻辑表达式m=abn=cd运算后,n的值位为A0B1C2D350025阅读以下程序main{intx;scanf“%d”x;ifx--5printf“%d”’x;elseprintf“%d”’x++;}程序运行后,如果从键盘上输人5,则输出结果是A3B4C5D650126假定w、x、y、z、m均为int型变量,有如下程序段w=1;x=2;y=3;z=4;m=wxw;x;m=mym;y;m=mzm;z;则该程序运行后,m的值是itA4B3C2D250227t为int类型,进人下面的循环之前,t的值为0whilet=l{……}则以下叙述中正确的是A循环控制表达式的值为0B循环控制表达式的值为1C循环控制表达式不合法D以上说法都不对50328以下程序的输出结果是main{intnum=0;whilenum=2{num++;printf“%d\n”num;}A1B1C1Dl22233450429以下各选项企图说明一种新的类型名,其中正确的是Atypedefv1int;Btypedefv2=int;Ctypedefv1intv3;Dtypedefv4:int;50530在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A地址传递B单向值传递C由实参传给形参,再由形参传回实参D传递方式由用户指定50631以下函数值的类型是funfloatx{floaty;y=3*x-4;returny;}AintB不确定CvoidDfloat50732设有以下函数finta{intb=0;staticintc=3;b++;c++;returna+b+c;}如果在下面的程序中调用该函数,则输出结果是main{inta=2i;fori=0;i3;i++printf“%d\n”fa;}A7B7C7D78910791113750833以下程序的输出结果是main{charc=’z’;printf“%c”c-25;}AaBZCz-25Dy50934以下选项中,非法的字符常量是A‘\t’B‘\17’C)“n”D‘\xaa’51035若有说明intij=2,*p=i;,则能完成i=j赋值功能的语句是Ai=*p;Bp*=*j;Ci=j;Di=**p;51136以下定义语句中,错误的是Ainta[]={12};Bchar*a
[3];Cchars
[10]=”test”;Dintn=5a[n];51237假定int类型变量占用两个字节,其有定义intx
[10]={024};,则数组x在内存中所占字节数是A3B6C10D2051338以下程序的输出结果是main{intia
[10];fori=9;i=0;i--a[i]=10-i;printf“%d%d%d”a
[2]a
[5]a
[8];}A258B741C852D36951439以下数组定义中不正确的是Ainta
[2]
[3];Bintb[]
[3]={0123};Cintc
[100]
[100]={0};Dintd
[3][]={{12}{123}{1234}};51540以下程序的输出结果是main{inta
[4]
[4]={{135}{246}{357}};printf“%d%d%d%d\n”a
[0]
[3]a
[1]
[2]a
[2]
[1]a
[3]
[0];}A0650B1470C5430D输出值不定51641以下程序的输出结果是main{charst
[20]=“hello\0\t\\\”;printf%d%d\n”strlenstsizeofst;}A99B520C1320D202051742以下选项中,不能正确赋值的是Achars1
[10];s1=“Ctest”;Bchars2[]={‘C’‘t’‘e’‘s’‘t’};Cchars3
[20]=“Ctest”;Dchar*s4=“Ctest\n”51843以下程序的输出结果是amovepintpinta
[3]intn{intij;fori=0;i;i++forj=0;jn;j++{*p=a[i][j];p++;}}main{int*pa
[3]
[3]={{135}{246}};p=int*malloc100;amoveppa3;printf“%d%d\n”p
[2]p
[5];freep;}A56B25C34D程序错误51944以下程序的输出结果是structHAR{intxy;structHAR*p;}h
[2];main{h
[0]x=1;h
[0];y=2;h
[1]x=3;h
[1];y=4;h
[0]p=h
[1]p=h;printf“%d%d\n”h
[0]p-xh
[1]p-y;}A12B23C14D3252045以下程序的输出结果是main{intab;fora=1b=1;a=100;a++{ifb=10break;ifb%3==1{b+=3;continue;}}printf“%d\n”a;}A101B6C5D452146以下程序的输出结果是unionmyun{struct{intxyz;}u;intk;}a;main{a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf%d\n”a.u.x;}A4B5C6D052247以下程序的输出结果是intab;voidfun{a=100;b=200;}main{inta=5b=7;fun;printf“%d%d\n”ab;}A100200B57C200100D7552348以下程序的输出结果是#defineMxyzx*y+zmain{inta=1b=2c=3;printf“%d\n”Ma+bb+cc+a;}A19B17C15D1252449整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是Ax||yBx|yCxyDx^y52550下面的程序执行后,文件testt.t中的内容是#includestdio.hvoidfunchar*fname.char*st{FILE*myf;inti;myf=fopenfname“w”;fori=0;istrlenst;i++fputcst[i]myf;fclosemyf;}main{fun“test”“newworld”;fun“test”“hello”0;A)hello,B)newworldhello,C)newworldD)hellorld
二、填空题每空2分,共40分请将每一个空的正确答案写在答题卡【l】至【20】序号的横线上,答在试卷上不得分526(l)为了将当前盘当前目录中的所有文本文件(扩展名为.TXT)的内容打印输出,正确的单条DOS命令为【l】527
(2)设当前盘为C盘为了在A盘的当前自录\USER下建立一个新的子目录X,正确的DOS命令为【2】528
(3)在XCOPY、COPY、TIME三个DOS命令中,属于外部命令的是【3】529
(4)在32位的计算机中,一个字长等于【4】个字节530
(5)计算机网络分为局域网和广域网,因特网属于【5】531
(6)语句x++;、++x;x=x+1;、x=l+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【6】532
(7)设y是int型变量,请写出判断y为奇效的关系表达【7】533
(8)以下程序运行后的输出结果是【8】main{inti=10j=0;do{j=j+i;i-;whilei2;printf“%d\n”j;}5349设有以下程序:main{intn1n2;scanf“%d”n2;whilen2!=0{n1=n2%10;n2=n2/10;printf“%d”n1;}}程序运行后,如果从键盘上输入1298;则输出结果为【9】53510以下程序输出的最后一个值是【10】intffintn{staticintf=l;f=f*n;returnf;}main{inti;forI=1;I=5;I++printf“%d\n”ffi;}53611以下函数的功能是求x的y次方,请填空doublefundoublexinty{inti;doublez;fori=1z=x;iy;i++z=z*【11】;returnz;}53712设有以下程序main{intabk=4m=6*p1=k*p2=m;a=pl==m;b=*p1/*p2+7;printf“a=%d\n”a;printf“b=%d\n”b;}执行该程序后,a的值为【12】,b的值为【13】53813若已定义inta
[10]i;,以下fun函数的功能是在第一个循环中给前10个数组元素依次赋
1、
2、
3、
4、
5、
6、
7、
8、
9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成
1、
2、
3、
4、
5、
5、
4、
3、
2、1请填空funinta[]{inti;fori=1;i=10;i++【14】=i;fori=0;i5;i++【15】=a[i];}53914以下程序运行后的输出结果是【16】main{chars[]=“9876”*p;forp=s;ps+2;p++printf“%s\n”p;}54015若有定义语句chars
[100]d
[100];intj=0i=0;,且s中已赋字符串,请填空以实现字符串拷贝(注不得使用逗号表达式)while[i]{d[j]=【17】;j++;}d[j]=0;54116以下程序段用于构成一个简单的单向链表,请填空structSTRU{intxy;floatrate;【18】p;}ab;a.x=0;a.y=0;a.rate=0;a.p=b;b.x=0;b.y=0;b.rate=0;b.p=NULL;542l7若有如下结构体说明structSTRU{intab;charc;doubled:structSTRUp1p2;};请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型【19】t
[20];54318以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空FILE*myf;lingf1;myf=【20】“test.t”“rb”;fseekmyf0SEEK_END;f1=ftelmyf;fclosemyf;printf“%d\n”f1;〖完〗二级笔试试卷基础知识和C程序设计评分标准和参考答案2001年9月
一、选择题(1~40每小题1分,41~50每小题2分,共60分)BADDCABDACDABCDACBDBDBDCBDBBCBAAACBDDCDABAADDDBDDA
二、填空题每空2分共20分1【1】COPY*.TXTPRN或XCOPY*.TXTPRN2【2】MDA:\USER\X或MDA:X3【3】XCOPY4【4】45【5】广域网6【6】x+=1;7【7】y%2!==1或y%2或y%2!=0或…8【8】529【9】892110【10】12011【11】X12【12】0【13】713【14】a[i-1]【15】a[9-i]14【16】987687615【17】s[i++]16【18】StructSTRU*17【19】StructSTRU18【20】fopen全国计算机等级考试二级笔试试卷基础部分和C语言程序设计考试时间120分钟,满分100分2002年4月
一、选择题(
(1)—
(40)题每小题1分,
(41)—
(50)题每小题2分,共和60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分5441在计算机中一个字长的二进制位数是A8B16C32D随CPU的型号而定5452计算机网络的突出优点是A速度快B资源共享C精度高D容量大5463计算机网络能传送的信息是:A所有的多媒体信息B只有文本信息C除声音外的所有信息D文本和图像信息5474切断计算机电源后下列存储器中的信息会丢失的是:ARAMBROMC软盘D硬盘5485十进制数127转换成二进制数是A11111111B01111111C10000000D111111105496要想打印存放在当前盘当前目录上所有扩展名为.TXT的文件内容应该使用的DOS命令为ADIR*.TXTPRNBTYPE*.TXTPRNCCOPY*.TXTPRNDCOPY*.TXTPRN5507将当前盘当前目录及其子目录中的全部文件总量不足
1.2MB复制到一张空的A盘的根目录下应该使用的DOS命令为AXCOPY*.*A:\/MBXCOPY*.*A:\/SCXCOPY*.*A:\/PDXCOPY*.*A:\/A5518在C盘根目录下执行PROMPT$p$g命令之后DOS的提示符变为AC:BC:\CCDC:\5529DOS命令COPYCONDISP中的CON代表A子目录B磁盘文件C键盘D显示器55310结构化程序设计所规定的三种基本控制结构是A输入、处理、输出B树形、网形、环形C顺序、选择、循环D主程序、子程序、函数55411要把高级语言编写的源程序转换为目标程序需要使用A编辑程序B驱动程序C诊断程序D编译程序55512英文小写字母d的ASCII码为100英文大写字母D的ASCII码为A50B66C52D6855613Windows环境下PrintScreen键的作用是A复制当前窗口到剪贴板B打印当前窗口的内容C复制屏幕到剪贴板D打印屏幕内容55714在Windows环境下为了终止应用程序的运行应A关闭该应用程序窗口B最小化该应用程序窗口C双击该应用程序窗口的标题栏D将该应用程序窗口移出屏幕55815下列各带有通配符的文件名中能代表文件XYZ.TXT的是A*Z.BX*.*CZTXTD.55916若有定义inta=8,b=5,C;,执行语句C=a/b+
0.4;后,c的值为A
1.4B1C
2.0D256017若变量a是int类型,并执行了语句a=‘A+
1.6;,则正确的叙述是Aa的值是字符CBa的值是浮点型C不允许字符型和浮点型相加Da的值是字符‘A’的ASCII值加上156118以下程序段的输出结果是inta=1234;printf%2d\na;A12B34C1234D提示出错、无结果56219以下选项中不属于C语言的类型的是AsignedshortimtBunsignedlongintCunsignedintDlongshort56320若有说明语句intabc*d=c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是Ascanf%d%d%dabd;Bscanf%d%d%dabd;Cscanf%d%d%dabd;Dscanf%d%d%dab*d;56421在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是Aa=20000+20000;Ba=4000*10;Ca=30000+10000;Da=4000L*10L;56522以下叙述正确的是A可以把define和if定义为用户标识符B可以把define定义为用户标识符,但不能把if定义为用户标识符C可以把if定义为用户标识符,但不能把define定义为用户标识符Ddefine和if都不能定义为用户标识符56623若定义inta=511*b=a;则printf%d\n*b;的输出结果为A无确定值Ba的地址C512D51156724以下程序的输出结果是main{inta=5b=4c=6d;printf%d\nd=abaca:c:b;}A5B4C6D不确定56825以下程序中,while循环的循环次数是main{inti=0;whilei10{ifi1continue;ifI==5break;i++;}......}A1B10C6D死循环,不能确定次数56926以下程序的输出结果是main{inta=0i;fori=;i5;i++{switchi{case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf%d\na;}A31B13C10D2057027以下程序的输出结果是main{inta=4b=5c=0d;d=!a!b||!c;printf%d\nd;}A1B0C非0的数D-157128以下程序的输出结果是#includestdio.hmain{inti=0a=0;whilei20{for;;{ifi%10==0break;elsei--;}i+=11;a+=i;}printh%d\na;}A21B32C33D1157229以下程序的输出结果是charccharcharch{ifch=‘A’ch=‘Zch=ch-‘A+‘a;returnch;}main{chars[]=ABC+abc=defDEF*p=s;while*p{*p=cchar*p;p++;}printf%s\ns;}Aabc+ABC=DEFdefBabc+abc=defdefCabcaABCDEFdefDabcabcdefdef57330以下程序的输出结果是intf{staticinti=0;ints=1;s+=i;i++;returns;}main{intia=0;fori=0;i5;i++a+=f;printf%d\na;}A20B24C25D1557431以下程序段的输出结果是chars[]=\\141\141abc\t;printf%d\nstrlens;A9B12C13D1457532若有以下程序#includestdio.hvoidfintn;main{voidfintn;f5;}voidfintn{printf%d\nn;}则以下叙述中不正确的是A若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC对于以上程序,编译时系统会提示出错信息提示对对f函数重复说明D函数f无返回值,所以可用void将其类型定义为无值型57633以下程序调用findmax函数返回数组中的最大值findmaxint*aintn{int*p*s;forp=as=a;p-an;p++ifs=p;return*s;}main{intx
[5]={122113618};printf%d\nfindmaxx5;}在下划线处应填入的是ApsB*p*sCa[p]a[s]Dp-ap-s57734以下程序的输出结果是main{charcf
[3]
[5]={AAAABBBCC};printf\%s\\nch
[1];}AAAAABBBBCBBBCCDCC57835在C语言中,形参的缺省存储类是AautoBregisterCstaticDextern57936若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是Ap=2*int*mallocsizeofint;Bp=int*malloc2*sizeofint;Cp=int*malloc2*2;Dp=int*calloc2sizeofint;58037以下程序的输出结果是main{charx=040;printf%0\nx1;}A100B80C64D3258138若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是AfopenA:\user\abc.txtrBfopenA:\\user\\abc.txtr+CfopenA:\user\abc.txtrbCfopenA:\\user\\abc.txtw58239以下不能正确进行字符串赋初值的语句是Acharstr
[5]=good!;Bcharstr[]=good!;Cchar*str=good!;Dcharstr
[5]={‘g‘o‘o‘d};58340若有下面的说明和定义structtest{intml;charm2;floatm3;unionuu{charul
[5];intu2
[2];}ua;}myaa;则sizeofstructtest的值是A12B16C14D958441若有定义intaa
[8];则以下表达式中不能代表数组元aa
[1]的地址的是Aaa
[0]+1Baa
[1]Caa
[0]++Daa+158542以下程序的输出结果是fintb[]intmintn{intis=0;fori=m;in;i=i+2s=s+b[i];returns;}main{intxa[]={123456789};x=fa37;printf%d\nx;}A10B18C8D1558643若有以下定义和语句:ints
[4]
[5]*ps
[5];ps=s;则对s数组元素的正确引用形式是Aps+1B*ps+3Cps
[0]
[2]D*ps+1+358744以下程序的输出结果是main{intb
[3]
[3]={012012012}ijt=1;fori=0;i3;i++forj=i;j=i;j++t=t+b[i][b[j][j]];printf%d\nt;}A3B4C1D958845以下程序的输出结果是#includestdio.h#includestring.hmain{charb1
[8]=abcdefgb2
[8]*pb=b1+3;while--pb=b1strcpyb2pb;printf%d\nstrlenb2;}A8B3C1D758946在说明语句int*f;中标识符f代表的是A一个用于指向整型数据的指针变量B一个用于指向一维数组的行指针C一个用于指向函数的指针变量D一个返回值为指针型的函数名59047不合法的main函数命令行参数表示形式是Amainintachar*c[]Bmainintarcchar**arvCmainintargcchar*argvDmainintargvchar*argc[]59148以下程序的输出的结果是intx=3;main{inti;fori=1;ix;i++incre;}ncre{staicintx=1;x*=x+1;printf%dx;}A33B22C26D2559249若以下定义:structlink{intdata;strucklink*next;}abc*p*q;且变量a和b之间已有如下图所示的链表结构:abdatanextdatanext┌──┬──┐┌──┬──┐│5│┼──→│9│\0│└──┴──┘└──┴──┘↑pcdatanext┌──┬──┐│7││└──┴──┘↑q指针p指向变量aq指向变量c则能够把c插入到a和b之间并形成新的链表的语句组是:Aa.next=c;c.next=b;Bp.next=q;q.next=p.next;Cp-next=c;q-next=p-next;D*p.next=q;*q.next=b;59350设有以下说明语句typedefstruct{intn;charch
[8];}PER;则下面叙述中正确的是APER是结构体变量名BPER是结构体类型名Ctypedefstruct是结构体类型Dstruct是结构体类型名
二、填空题每空2分,共40分请将每一个空的正确答案写在答案卡上,答在试卷上不得分5941为了要将当前盘目录中的可执行程序ABC.EXE的输出结果存放到当前盘当前目录中的文件OUT.TXT中则应使用的DOS命令为【1】5952计算机网络分为广域网和局域网因特网属于【2】5963要想在当前目录下方便地执行C盘\UCDOS目录中的程序就应该先执行预设搜索路径的命令该DOS命令为【3】5974要查看当前目录中扩展名为.DAT的所有文件目录应该使用的DOS命令为【4】5985在Windows环境下当进行复制操作时其复制的内容将存放在【5】中5996若从键盘输入58则以下程序输出的结果是【6】main{inta;scanf%da;ifa50printf%da;ifa40printf%da;ifa30printf%da;}6007以下程序的输出结果是【7】main{inta=177;printf%o\na;}6018以下程序的输出结果是【8】main{inta=0a+=a=8;printf%d\na;}6029以下程序输出的结果是【9】main{inta=5b=4c=3d;d=abc;printf%d\nd;}60310以下定义的结构体类型拟包含两个成员其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整structnode{intinfo;【10】link;}60411以下程序的输出结果是【11】main{intsi;fors=0i=1;i3;i++s+=i;printf%d\ns;}60512以下程序的输出结果是【12】main{char*p=abcdefgh*r;long*q;q=long*p;q++;r=char*q;printf%s\nr;}60613以下程序的输出结果是【13】main{chars[]=abcdef;s
[3]=‘\0;printf%s\ns;}60714以下程序的输出结果是【14】main{intx=0;subx81;printf%d\nx;}subint*aintnintk{ifk=nsuban/22*k;*a+=k;}60815设有如下宏定义#defineMYSWAPzxy{z=x;x=y;y=z;}以下程序段通过宏调用实现变量a、b内容交换请填空floata=5b=16c;MYSWAP【15】ab;60916以下程序用来统计文件中字符个数请填空#includestdio.hmain{FILE*fp;longnum=0L;iffp=fopenfname.datr==NULL{pirntfOpenerror\n;exit0;}while【16】{fgetcfp;num++;}printfnum=%1d\nnum-1;fclosefp;}61017以下程序中select函数的功能是在N行M列的二维数组中选出一个最大值作为函数值返回并通过形参传回此最大值所在的行下标请填空#defineN3#defineM3selectinta[N][M]int*n{intijrow=1colum=1;fori=0;iN;i++forj=0;jM;j++ifa[i][j]a[row][colum]{row=i;colum=j;}*n=【17】;return【18】;}main{inta[N][M]={91123611591720}maxn;max=selectan;printfmax=%dline=%d\nmaxn;}61118mystrlen函数的功能是计算str所指字符串的长度并作为函数值返回请填空intmystrlenchar*str{inti;fori=0;【19】!=‘\0;i++;return【20】;}基础部分和C语言程序设计试题参考答案及评分标准
一、选择题(⑴-40题每题1分,41-50题每题2分,其60分)DBAABCBBCCDDCABBDCDADBDCDAABBDACBBAAABAACACBDDCCCB
二、填空题答案(每空2分,共40分)1【1】ABCOUT.TXT或者ABC.EXEOUT.TXT2【2】广域网3【3】PATHC:\UCDOS或其它等效命令4【4】DIR*.DAT或DIR*.DAT/P或DIR*.DAT/W或带其它参数也可5【5】剪贴板6【6】5858587【7】2618【8】169【9】010【10】structnode*11【11】512【12】efgh13【13】abc14【14】715【15】c16【16】!feoffp17【17】row18【18】a[row][colum]19【19】*str+istr[i]20【20】i〖完〗全国计算机等级考试二级C语言笔试试题(含参考答案)2002年9月
一、选择题(
(1)—
(40)每题1分,
(41)—
(50)每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分1在32位计算机中,一个字长所占的字节数为A1 B2 C4 D82与十进制数511等值的十六进制数为A1FF B2FF C1FE D2FE3能将高级语言编写的源程序转换成目标程序的是A编程程序 B编译程序 C解释程序 D链接程序4在计算机系统中,存储一个汉字的国标码所需要的字节数为A1 B2 C3 D45下列带有通配符的文件名中,能表示文件ABC.TXT的是A*BC. BA.* CBC.* D.6在多媒体计算机系统中,不能用以存储多媒体信息的是A光缆 B软盘 C硬盘 D光盘7DOS命令“COPY/?”的功能是A将当前盘当前目录中的所有文件复制到当前盘的根目录下B将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下C以提示方式复制文件D显示COPY命令的帮助信息8在Windows环境下,若要将当前活动窗口存入剪贴板,则可以按ACtrl+PrintScreen键 BCtrl+PrintScreen键CShift+PrintScreen键 DPrintScreen键9在Windows环境下,单击当前应用程序窗口中的“关闭”按钮,其功能是A将当前应用程序转为后台运行 B退出Windows后再关机C退出Windows后重新启动计算机 D终止当前应用程序的运行10在Windows环境中,粘贴按钮是A B C D11以下叙述中正确的是A构成C程序的基本单位是函数B可以在一个函数中定义另一个函数Cmain函数必须放在其它函数之前D所有被调用的函数一定要在调用之前进行定义12以下选项中合法的实型常数是A5E
2.0 BE-3 C.2E0 D
1.3E13以下选项中合法的用户标识符是Along B_2Test C3Dmax DA.dat14已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是A字符A B)字符a C)字符e D)非法的常量15以下非法的赋值语句是An=i=2++i; Bj++; C++i+1; Dx=j0;16设a和b均为double型变量,且a=
5.
5、b=
2.5,则表达式(int)a+b/b的值是A)
6.500000 B)6 C
5.500000 D
6.00000017已知i、j、k为int型变量,若从键盘输入1,2,3回车,使i的值为
1、j的值为
2、k的值为3,以下选项中正确的输入语句是Ascanf“%2d%2d%2d”ijk;Bscanf“%d%d%d”ijk;Cscanf“%d%d%d”ijk;Dscanf“i=%dj=%dk=%d”ijk;18与数学式子对应的C语言表达式是A3*x^n2*x-1 B3*x**n2*x-1C3*powxn*1/2*x-1 D3*pownx/2*x-119设有定义longx=-123456L;,则以下能够正确输出变量x值的语句是A)printf“x=%d\n”x; Bprintf“x=%1d\n”x;C)printf“x=%8dL\n”x; D)printf“x=%LD\n”x;20若有以下程序main{intk=2i=2m;m=k+=i*=k;printf“%d%d\n”mi;}执行后的输出结果是A8,6 B8,3 C6,4 D7,421已有定义:intx=3y=4z=5;,则表达式!x+y+z-1y+z/2的值是A6 B0 C2 D122有一函数,以下程序段中不能根据x值正确计算出y值的是Aifx0y=1;By=0;elseifx==0y=0;ifx0y=1;elsey=-1;elseifx0y=-1;C)y=0;D)ifx=0ifx=0;ifx0y=1;ifx0y=1;elsey=0;elsey=-1;elsey=-1;23以下选项中,与k=n++完全等价的表达式是Ak=nn=n+1 Bn=n+1k=n Ck=++n Dk+=n+124以下程序的功能是按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下main{intnk;floatscoresumave;sum=
0.0;forn=1;n=10;n++{fork=1;k=4;k++{scanf“%f”score;sum+=score;}ave=sum/
4.0;printf“NO%d:%f\n”nave;}}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确这条语句是Asum=
0.0; Bsum+=score;Cave=sun/
4.0; Dprintf“NO%d:%f\n”nave;25有以下程序段intn=0p;do{scanf“%d”p;n++;}whilep!=12345n3;此处do—while循环的结束条件是AP的值不等于12345并且n的值小于3BP的值等于12345并且n的值大于等于3CP的值不等于12345或者n的值小于3DP的值等于12345或者n的值大于等于326有以下程序main{inta=15b=21m=0;switcha%3{case0:m++;break;case1:m++;switchb%2{default:m++;case0:m++;break;}}printf“%d\n”m;}程序运行后的输出结果是A1 B2 C3 D427C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是Avoid Bint Cfloat Ddouble28若有说明intn=2*p=n*q=p;,则以下非法的赋值语句是Ap=q; B*p=*q; Cn=*q; Dp=n;29有以下程序floatfunintxinty{returnx+y;}main{inta=2b=5c=8;printf“%
3.0f\n”funintfuna+cba-c;}程序运行后的输出结果是A编译出错 B9 C21 D
9.030有以下程序voidfunchar*cintd{*c=*c+1;d=d+1;printf“%c%c”*cd;}main{chara=’A’b=’a’;funba;printf“%c%c\n”ab;}程序运行后的输出结果是A)BaBa BaBaB CAbAb DbBAb31以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序voidsortinta[]intn{intijt;fori=0;iN-1;I++forj=i+1jN;J++ifa[i]}main{intaa
[10]={12345678910}i;sortaa
[3]5;fori=o;i10;i++print“%d”aa[i];printf‘\n”;}程序运行后的输出结果是A)12345678910 B10987654321C
12387.
6.
5.
4.910 D1210987654332有以下程序intfintn{ifn==1return1;elsereturnfn-1+1;}main{intij=0;fori=i;i3;i++j+=fi;printf“%d\n”j;}程序运行后的输出结果是A4 B3 C2 D133有以下程序main{chara[]={‘a’‘b’‘c’‘d’‘e’‘f’‘g’‘h’‘\0’};intij;i=sizeofa;j=strlena;printf“%d%d\b”ij;}程序运行后的输出结果是A)9,9 B)8,9 C)1,8 D)9,834以下程序中函数reverse的功能是将a所指数组中的内容进行逆置voidreverseinta[]intn{intit;fori=0;i{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main{intb
[10]={12345678910};intis=0;reverseb8;fori=6;i10;i++s+=b[i];printf“%d\n”s;}程序运行后的输出结果是A22 B10 C34 D3035有以下程序main{intaa
[4]
[4]={{1234}{5678}{39102}{4296}};intis=0fori=0;i4;i++s+=aa[i]
[1];printf“%d\n”s;}程序运行后的输出结果是A11 B19 C13 D2036有以下程序#includemain{char*p=“abcde\Ofghjik\0”;printf“%d\n”strlenp;}程序运行后的输出结果是A12 B15 C6 D537程序中头文件typel.h的内容是#defineN5#defineM1N*3程序如下#define“type
1.h”#defineM2N*2main{inti;i=M1+M2;printf“%d\n”i;}程序编译后运行的输出结果是A10 B20 C25 D3038有以下程序#includemain{FILE*fp;inti=20j=30kn;fp=fopen(“d
1.dat”“w”);fprintffp“%d\n”i;fprintffp“%d\n”j;fclosefp;fp=fopen“d
1.dat”“r”;fp=fscanffp“%d%d”,kn;printf“%d%d\n”kn;fclosefp;}程序运行后的输出结果是A2030 B2050 C3050 D302039以下叙述中错误的是A二进制文件打开后可以先读文件的末尾,而顺序文件不可以B在程序结束时,应当用fclose函数关闭已打开的文件C在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D不可以用FILE定义指向二进制文件的文件指针40有以下程序#includemainintargcchar*argv[]{intilen=0;fori=1;iprintf“%d\n”len;}程序编译连接后生成的可执行文件是ex
1.exe,若运行时输入带参数的命令行是ex1abcdefg10回车则运行的结果是A22 B17 C12 D941有以下程序intfaintx{returnx*x;}intfbintx{returnx*x*x;}intfint*f1int*f2intx{returnf2x-f1x;}main{inti;i=ffafb2;printf“%d\n”i;}程序运行后的输出结果是A-4 B1 C4 D842有以下程序inta=3;main{ints=0;{inta=5;s+=a++;}s+=a++;printf“%d\n”s;}程序运行后的输出结果是A8 B10 C7 D1143有以下程序voidsschar*schart{while*s{if*s==t*s=t-‘a’+’A’;s++;}}main{charstr1
[100]=“abcddfefdbd”c=’d’;ssstr1c;printf“%s\n”str1;}程序运行后的输出结果是AABCDDEFEDBD BabcDDfefDbDCabcAAfefAbA DAbcddfefdbd44有以下程序structSTU{charnum
[10];floatscore
[3];};main{structstus
[3]={{“20021”909585}{“20022”958075}{“20023”1009590}}*p=s;inti;floatsum=0;fori=0;i3i++sum=sum+p-score[i];printf“%
6.2f\n”sum;}程序运行后的输出结果是A
260.00 B
270.00 C
280.00 D
285.0045设有如下定义strucksk{inta;floatb;}data;int*p;若要使P指向data中的a域,正确的赋值语句是Ap=a; Bp=data.a; Cp=data.a; D*p=data.a;46有以下程序#includestructNODE{intnum;structNODE*next;};main{structNODE*p*Q*R;p=structNODE*mallocsizeofstructNODE;q=structNODE*mallocsizeofstructNODE;r=structNODE*mallocsizeofstructNODE;p-num=10;q-num=20;r-num=30;p-next=q;q-next=r;printf“%d\n”p-num+q-next-num;}程序运行后的输出结果是A10 B20 C30 D4047若有以下说明和定义typedefint*INTEGER;INTEGERp*q;以下叙述正确的是AP是int型变量 Bp是基类型为int的指针变量Cq是基类型为int的指针变量 D程序中可用INTEGER代替int类型名48有以下程序main{unsignedcharabc;a=0x3;b=a|0x8;c=b1;printf“%d%d\n”bc;}程序运行后的输出结果是A–1112 B–6–13 C1224 D112249有以下程序#includemain{char*p*q;p=char*mallocsizeofchar*20;q=p;scanf“%s%s”pq;printf“%s%s\n”pq;}若从键盘输入abcdef回车,则输出结果是Adefdef Babcdef Cabcd Ddd50以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序#includevoidfcharp[]
[10]intn{chart
[20];intij;fori=0;iN-1;I++forj=i+1;jN;J++ifstrcmpp[i]p[j]0{strcpytp[i];strcpyp[i]p[j];strcpyp[j]t;}}main{charp[]
[10]={“abc”“aabdfg”“abbd”“dcdbe”“cd”};inti;fp5;printf“%d\n”strlenp
[0];}程序运行后的输出结果是A6 B4 C5 D3
二、填空题(每空2分,共40分)请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分
1、计算机软件分为系统软件和应用软件,操作系统属于
[1]
2、在DOS环境下,代表键盘和显示器的设备文件名为
[2]
3、支持Internet基本服务的协议是
[3]
4、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为
[4]
5、某微型机的运算速度为2MIPS,则该微型机每秒执行
[5]条指令
6、设有定义intn*k=n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整scanf“%d”
[6];printf“%d\n”
[7];
7、以下程序运行后的输出结果是
[8]main{intx=10y=20t=0;ifx==yt=x;x=y;y=t;printf“%d%d\n”xy;}
8、以下程序运行后的输出结果是
[9]main{intx=15;whilex10x50{x++;ifx/3{x++;break;}elsecontinue;}printf“%d\n”x;}
9、有以下程序#includemain{charc;whilec=getchar!=’’putchar--c;}程序运行时,如果从键盘输入Y?N?回车,则输出结果为
[10]
10、以下程序运行后的输出结果是
[11]voidfunintxinty{x=x+y;y=x-y;x=x-y;printf“%d%d”xy;}main{intx=2y=3;funxy;printf“%d%d\n”xy;}
11、以下函数的功能是计算s=1+++……+,请填空doublefunintn{doubles=
0.0fac=
1.0;inti;fori=1i=n;i++{fac=fac
[12];s=s+fac;}returns;}12fun函数的功能是首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回请填空#include#defineN100intfunint*a[N]{introwcolmaxmin;forrow=0;rowN;ROW++{formax=a[row]
[0]col=1;colN;COL++if
[13]max=a[row][col];ifrow==0min=max;elseif
[14]min=max;}returnmin;}
13、函数sstrcmp的功能是对两个字符串进行比较当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp)请填空#includeintsstrcmpchar*schar*t{while*s*t*s==
[15]{s++;t++;}return
[16];}
14、下面程序的运行结果是
[17]#defineN10#definesxx*x#definefxx*xmain{inti1i2;i1=1000/sN;i2=1000/fN;printf“%d%d\n”i1i2;}
15、下面程序的运行结果是
[18]voidswapint*aint*b{int*t;t=a;a=b;b=t;}main{intx=3y=5*p=x*q=y;swappq;printf“%d%d\n”*p*q;}
16、下面程序的运行结果是
[19]typedefunionstudent{charname
[10];longsno;charsex;floatscore
[4];}STU;main{STUa
[5];printf“%d\n”sizeofa;}
17、若fp已正确定义为一个文件指针,d
1.dat为二进制文件,请填空,以便为“读”而打开此文件fp=fopen
[20]; 2002年9月全国计算机等级考试二级C语言试卷答案
一、选择题(⑴-40题每题1分,41-50题每题2分,其60分)1 C2 A3 B4 B5 C6 A7 D8 D9 D10D11A12D13B14A15C16D17C18C19B20C21D22C23A24A25D26A27B28D29B30D31C32B33D34A35B36D37C38A39D40D41C42A43B44B45C46D47B48D49A50C
二、填空题答案(每空2分,共40分)1 【1】系统软件2 【2】CON或CON:3 【3】TCP/IP或者传输控制协议/网际协议4 【4】EXIT或者exit5 【5】二百万或者两百万或者2百万或者200万或者2000000或者20000006 【6】2007 【7】178 【8】X9 【9】322310【10】/i或者*
1.0/i或者*1/i或者*
1.0/i或者/doublei11【11】10001012【12】3513【13】8014【14】d
1.datrb#d
1.datr+b#d
1.datrb+15【15】k16【16】*k17【17】max=a[row][col]max或者a[row][col]=max18【18】max=minminmax或者min=max19【19】*t或者t
[0]20【20】*s-*t或者*s-t
[0]或者s
[0]-*t或者s
[0]-t
[0]全国计算机等级考试二级C语言笔试试题(含参考答案) 2003年4月
一、选择题(1~40每小题1分,41~55每小题2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分1用8位无符号二进制数能表示的最大十进制数为A127 B128 C255 D2562在64位高档微机中,一个字长所占的二进制位数为A8 B16 C32 D643在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住AAlt键 B)Esc键 C)Shift键 DCtrl键4在Windows菜单中,暗淡(灰色)的命令项表示该命令A暂时不能用 B正在执行 C包含下一层菜单 D包含对话框5在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为ATYPE BTYPE/H CTYPE/* DTYPE/6下列选项中,能作为合法DOS文件名的是AANP/A.DAT BABCCOM CECD.BASIC DXY+Z.TXT7下列叙述中正确的是A在Windows环境下,最大化的窗口是不能移动的B在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C在Windows环境下,只有最小化的窗口才能关闭D在Windows环境下,不能关闭最大化的窗口8在Windows环境下,工具栏中的复制按钮是A打印机图标 B剪刀标志 C复制标志 D粘贴标志9在Windows98环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按ACtrl+PrintScreen键 BAlt+PrintScree键CShift+PrintScreen键 DPrintScreen键10目前,计算机病毒扩散最快的途径是A通过软件复制 B通过网络传播C通过磁盘考贝 D运行游戏软件11以下叙述中正确的是AC语言比其他语言高级BC语言可以不用编译就能被计算机识别执行CC语言以接近英语国家的自然语言和数学语言作为语言的表达形式DC语言出现的最晚,具有其他语言的一切优点12C语言中用于结构化程序设计的三种基本结构是A顺序结构、选择结构、循环结构 Bif、switch、breakCfor、while、do-while Dif、for、continue13在一个C程序中Amain函数必须出现在所有函数之前 Bmain函数可以在任何地方出现Cmain函数必须出现在所有函数之后 Dmain函数必须出现在固定位置14下列叙述中正确的是AC语言中既有逻辑类型也有集合类型BC语言中没有逻辑类型但有集合类型CC语言中有逻辑类型但没有集合类型DC语言中既没有逻辑类型也没有集合类型15下列关于C语言用户标识符的叙述中正确的是A 用户标识符中可以出现在下划线和中划线(减号)B 用户标识符中不可以出现中划线,但可以出现下划线C 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D 用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头16若有以下程序段(n所赋的是八进制数)intm=32767n=032767printf%d%o/nmn;执行后输出结果是A32767,32767 B32767,032767C32767,77777 D32767,07777717下列关于单目运算符++、--的叙述中正确的是A它们的运算对象可以是任何变量和常量B它们的运算对象可以是char型变量和int型变量,但不能是float型变量C它们的运算对象可以是int型变量,但不能是double型变量和float型变量D它们的运算对象可以是char型变量、int型变量和float型变量18若有以下程序段intm=0xabcn=0xabc;m-=n;printf%X\nm;执行后输出结果是A0X0 B0x0 C0 D0XABC19有以下程序段intm=0n=0;charc=a;scanf%d%c%dmcn;printf%d%c%d\nmcn;若从键盘上输入10A10回车,则输出结果是A10A10 B10a10 C10a0 D10A020有以下程序main{inti;fori=0;i3;i++switchi{case1:printf%di;case2:printf%di;default:printf%di;}}执行后输出结果是A011122 B012 C012020 D12021有以下程序main{inti=1j=1k=2;ifj++‖k++i++printf%d%d%d\nijk;}执行后输出结果是A1,1,2 B2,2,1 C2,2,2 D2,2,322有以下程序main{inta=5b=4c=3d=2;ifabcprintf%d\nd;elseifc-1=d==1printf%d\nd+1;elseprintf%d\nd+2}执行后输出结果是A2 B3 C4 D编译时有错,无结果23有以下程序main{intp
[7]={11131415161718}i=0k=0;whilei7p[i]%2{k=k+p[i];i++;}printf%d\nk;}执行后输出结果是A58 B56 C45 D2424有以下程序main{inti=0s=0;do{ifi%2{i++;continue;}i++;s+=i;}whilei7;printf%d\ns;}执行后输出结果是A16 B12 C28 D2125有以下程序main{inti=10j=1;printf%d%d\ni--++j;}执行后输出结果是A92 B102 C91 D10126有以下程序main{charabc*d;a=\;b=\xbc;c=\0xab;d=\017;print%c%c%c\nabc*d;}编译时出现错误,以下叙述中正确的是A程序中只有a=\;语句不正确 Bb=\xbc;语句不正确Cd=\0127;语句不正确 Da=\;和c=\0xab;语句都不正确27有以下程序intflintxinty{returnxyx:y;}intf2intxinty{returnxyy:x;}main{inta=4b=3c=5def;d=f1ab;d=f1dc;e=f2ab;e=f2ec;f=a+b+c-d-e;printf%d%d%d\ndfe;}执行后输出结果是A345 B534 C543 D35428有如下程序voidfintxinty{intt;ifxy{t=xx=y;}}main{inta=4b=3c=5;fab;fac;fbc;printf%d%d%d\nabc;}执行后输出结果是A345 B534 C543 D43529若有以下定义和语句#includeinta=4b=3*p*q*w;p=a;q=b;w=q;q=NULL;则以下选项中错误的语句是A*q=0; Bw=p; C*p=a; D*p=*w;30有以下程序int*fint*xint*y{if*x*yreturnx;elsereturny;}main{inta=7b=8*p*q*r};}执行后输出结果是A788 B787 C877 D87831有以下程序main{char*s[]={onetwothree}*p;p=s
[1];printf%c%s\n*p+1s
[0];}执行后输出结果是Antwo Btone Cwone Dotwo32有以下程序main{intx
[8]={876500}*s;s=x+3printf%d\ns
[2];}执行后输出结果是A随机值 B0 C5 D633以下能正确定义数组并正确赋初值的语句是AintN=5b[N][N]; Binta
[1]
[2]={{1}{3}};Cintc
[2][]={{12}{34}}; Dintd
[3]
[2]={{12}{34}};34有以下程序main{intm[]
[3]={147258369};intijk=2;fori=0;i3;i++{printf%dm[k][i];}}执行后输出结果是A456 B258 C369 D78935以下函数的功能是通过键盘输入数据,为数组中的所有元素赋值#defineN10voidarrinintx[N]{inti=0;whileiNscanf%d;}在下划线处应填入的是Ax+i B)x[i+1] C)x+i++ D)x[++i]36有以下程序main{chars[]=\n123\\;printf%d%d\nstrlenssizeofs;}执行后输出结果是A赋初值的字符串有错 B67 C56 D6637阅读以下函数funchar*s1char*s2{inti=0;whiles1[i]==s2[i]s2[i]!=\0i++;returns1[i]==s2{i}!==\0;}此函数的功能是A将s2所指字符串赋给s1B比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0C比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0D比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为038以下叙述中正确的是A全局变量的作用域一定比局部变量的作用域范围大B)静态(static)类别变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值39设有如下说明typedefstruct{intn;charc;doublex;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是ASTDtt
[2]={{1A62}{2B75}};BSTDtt
[2]={1A62}2B75};Cstructtt
[2]={{1A}{2B}};Dstructtt
[2]={{1A
62.5}{2B
75.0}};40有以下程序main{union{unsignedintn;unsignedcharc;}u1;ul.c=`A`;printf%c\nu
1.n;}执行后输出结果是A产生语法错 B随机值 CA D6541有以下程序main{charstr[]=xyz*ps=str;while*psps++;forps--;ps-str=0;ps--putsps;}执行后的输出结果是Ayz Bz Cz Dxxyz yz yz xyxyz xyz42有以下程序main{inta[]
[3]={{123}{450}}{*pa}
[3]i;pa=a;fori=0;i3;i++ifi2pa
[1][i]=pa
[1][i]-1;elsepa
[1][i]=1;printf%d\na
[0]
[1]+a
[1]
[1]+a
[1]
[2];}执行后输出结果是A7 B6 C8 D无确定值43有以下程序voidfunint*aintiintj{intt;ifiJ{t=a[i];a[i]=a[j];a[j]=t;funa++i--j;}}main{inta[]={123456}i;funa05fori=0;i6;i++printf%da[i];}执行后的输出结果是A654321 B432156 C456123 D12345644有以下程序mainintargechar*argv[]{intni=0;whilearv
[1][i]!=\0{n=fun;i++;}printf%d\nn*argc;intfun{staticints=0;s+=1;returns;}假设程序经编译、连接后生成可执行文件exam.exe若键入以下命令行exam123回车则运行结果为A}6 B)8 C)3 D)445以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是Amain Bmain{int*p; {int*p;funp; funp;} }intfunint*p intfunint**p{ints;p=s;} {ints;*p=s;}C#include D#includemain main{int*p; {int*p;funp; funp;} }intfunint**p intfunint*p{*p=int*malloc2;} {p=int*mallocsizeoint;}46若要说明一个类型名STP,使得定义语句STPs等价于char*s,以下选项中正确的是AtypedefSTPchar*s; Btypedef*charSTP;Ctypedefstp*char; Dtypedefchar*STP;47设有如下定义structss{charname
[10];intage;charsex;}std
[3]*p=std;下面各输入语句中错误的是Ascanf%d*p.age; Bscanf%sstd.name;Cscanf%cstd
[0].sex Dscanf%cp-sex;48设char型变量x中的值为10100111,则表达式(2+x)^~3的值是A10101001 B10101000 C11111101 D0101010149以下叙述中不正确的是A)C语言中的文本文件以ASCⅡ码形式存储数据B)C语言中对二进制文件的访问速度比文本文件快C)C语言中,随机读写方式不适用于文本文件D)C语言中,顺序读写方式不适用于二进制文件50以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错#includemain{FILE*fout;charch;fout=fopenabc.txtw;ch=fgetcstdin;whilech!=#{fputcchfout;ch=fgetcstdin;}fclosefout;}出错的原因是A函数fopen调用形式错误 B输入文件没有关闭C函数fgetc调用形式错误 D文件指针stdin没有定义
二、填空题每空2分共20分请将每空的正确答案写在答题卡上【1】-【20】序号的横线上答在试卷上不得分1用十六进制绘存储器中的字节地址进行编号,若地址编号从000到FFFF,则该存诸器的容量为【1】KB2假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面若使用COPY命令,则完整的命令为【2】3E-mail地址由用户和域名两部分组成,这两部分的分隔符为【3】4假设在当前盘当前目录下有一个可执行程序USER.EXE现要执行该程序,并要求在执行过程中将显示输出的结果信息存入当前盘当前目录的文件OUT.DAT中,则完整的DOS命令为【4】5在DOS环境下,表示打印机的设备文件名为【5】6若有语句inti=-19j=i%4;printf%d\nj;则输出结果是 【6】 7若有程序main{intij;scanfi=%dj=%d;ij;printfi=%dj=%d\nij;}要求给i赋10,给j赋20,则应该从键盘输入 【7】 8若有以下程序main{intpa=5;ifp=a!=0printf%d\np;elseprintf%d\np+2;}执行后输出结果是 【8】 9若有以下程序main{inta=4b=3c=5t=0;ifaifaprintf%d%d%d\nabc;}执行后输出结果是【9】10若有以下程序main{inta
[4]
[4]={{12-3-4}{0-12-1314}{-21230-24}{-3132-330}};intijs=0;fori=0;i4;i++{forj=0;j4;j++{ifa[i][j]0continue;ifa[i][j]==0break;s+=a[i][j];}}printf%d\ns;}执行后输出的结果是 【10】 11若有以下程序main{chara;a=H-A+0;print%c\na;}执行后的输出结果是【11】12若有以下程序intfintxinty{returny-x*x;}main{inta=3b=4c=5d;d=ff34f35;printf%d\nd;}执行后输出的结果是【12】13函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下111121133114641其构成规律是第0列元素和主对角线无素均为1其余元素为其左上方和正上方元素之和数据的个数每行递增1请将程序补充完整#defintN6voidYangHuiint*[N][N]{intij;x
[0]
[0]=1fori=1;iN;I++{x[i]
[0]=【13】=1;forj=1;jI;J++x[i][j]=【14】;}}14以下函数的功能是删除字符串s中的所有数字字符请填空voiddelechar*s{intn=0i;fori=0s[i];i++if【15】s[n++]=s[i];s[n]=【16】;}15设函数findbig已定义为求3个数中的最大值以下程序将利用函数指针调用findbig函数请填空main{intfindbigintintint;int*fxyzzbig;f=【17】;scanf%d%d%dxyz;big=*fxyz;printfbing=%d\nbig;}16以下程序的输出结果是【18】#defintMCRAm2*m#defineMCRBnm2*MCRAn+mmain{inti=2j=3;printf%d\nMCRBjMCRAi;}17设有以下定义structss{intinfo;structss*link;}xyz;且已建立如下图所示链表结构□□→□□→□□XYZ请写出删除点y的赋值语句【19】18已有文本文件test.txt,其中的内容为Helloeveryone!以下程序中,文件test.txt已正确为读而打开,由文件指针fr指向该文件,则程序的输出结果是【20】#includemain{FILE*fr;charstr
[40];……fgetsstr5fr;printf%s\nstr;fclosefr;} 2003年4月全国计算机等级考试二级C笔试答案
一、选择题1-5 CDDAD6-10 BACDB11-15CABDB16-20ADCAA21-25CBDAB26-30DCDAB31-35CBDCC36-40CCBAC41-45CAAAC46-50DBDDA
二、填空题1 642 COPYA.TXT+B.TXTA.TXT3 @4 USEROUT.DAT5 PRN或LPT1或LPT26 -37 i=10j=208 19 503105811712913x[i][i]和x[i-1][j-1]+x[i-1][j]14!s[i]=0s[i]=9和\015findbig161617x.link=y.link;18Hell2003年9月全国计算机等级考试二级C语言笔试试题(含参考答案) 2003年9月
一、选择题(
(1)~
(40)每题1分,
(41)~
(50)每题2分,共60分)
(1)在计算机中,一个字节所包含二进制位的个数是A)2 B)4 C)8 D)16
(2)在多媒体计算机中,CD-ROM属于A)存储媒体 B)传输媒体 C)表现媒体 D)表示媒体
(3)在DOS系统中,带有通配符的文件名*.*表示A)硬盘上的全部文件 B)当前盘当前目录中的全部文件C)当前盘上的全部文件 D)根目录中的全部文件
(4)十六进制数100转换为十进制数为A)256 B)512 C)1024 D)64
(5)能将高级语言编写的源程序转换为目标程序的软件是A)汇编程序 B)编辑程序 C)解释程序 D)编译程序
(6)在Internet中,用于在计算机之间传输文件的协议是A)TELNET B)BBS C)FTP D)WWW
(7)在Windows环境下,资源管理器左窗口中的某文件夹左边标有+标记表示A)该文件夹为空 B)该文件夹中含有子文件夹C)该文件夹中只包含有可执行文件 D)该文件夹中包含系统文件
(8)在Windows环境下,下列叙述中正确的是A)在开始菜单中可以增加项目,也可以删除项目B)在开始菜单中不能增加项目,也不能删除项目C)在开始菜单中可以增加项目,但不能删除项目D)在开始菜单中不能增加项目,但可以删除项目
(9)从Windows环境进入DOS方式后,返回Windows环境的命令为A)QUIT B)WIN C)EXIT D)ESC
(10)下列叙述中正确的是A)计算机病毒只感染可执行文件B)计算机病毒只感染文本文件C)计算机病毒只能通过软件复制的方式进行传播D)计算机病毒可以通过读写磁盘或网络等方式进行传播
(11)以下叙述中正确的是A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号{和}只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分
(12)以下选项中可作为C语言合法整数的是A)10110B B)0386 C)0Xffa D)x2a2
(13)以下不能定义为用户标识符的是A)scanf B)Void C)_3com_ D)int
(14)有以下程序main{inta;charc=10;floatf=
100.0;doublex;a=f/=c*=x=
6.5;printf%d%d%
3.1f%
3.1f\nacfx;}程序运行后的输出结果是A)
16516.5 B)
1651.
56.5C)
1651.
06.5 D)
2651.
56.5
(15)以下选项中非法的表达式是A)0=x100 B)i=j==0C)char65+3 D)x+1=x+1
(16)有以下程序main{inta=1b=2m=0n=0k;k=n=ba||m=aB;printf%d%d\nkm;}程序运行后的输出结果是A)00 B)01 C)10 D)11
(17)有定义语句intxy;,若要通过scanf%d%dxy;语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A)1112回车 B)1112回车C)1112回车 D)11回车12回车
(18)设有如下程序段intx=2002y=2003;printf%d\nxy;则以下叙述中正确的是A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002 D)输出值为2003
(19)设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A)x=x*100+
0.5/
100.0; B)x=x*100+
0.5/
100.0;C)x=intx*100+
0.5/
100.0; D)x=x/100+
0.5*
100.0;
(21)有以下程序main{ints=0a=1n;scanf%dn;do{s+=1;a=a-2;}whilea!=n;printf%d\ns;}若要使程序的输出值为2,则应该从键盘给n输入的值是A)-1 B)-3 C)-5 D)0
(22)若有如下程序段,其中s、a、b、c均已定义为整型变量且a、c均已赋值(c大于0)s=a;forb=1;b=c;b++s=s+1;则与上述程序段功能等价的赋值语句是A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;
(23)有以下程序main{intk=4n=0;for;n{n++;ifn%3!=0continue;k--;}printf%d%d\nkn;}程序运行后的输出结果是A)11 B)22 C)33 D)44
(24)要求以下程序的功能是计算s=1+1/2+1/3+……+1/10(资料来源东方教育网http://www.eastedu.com.cnmain{intn;floats;s=
1.0;forn=10;n1;n--s=s+1/n;printf%
6.4f\ns;}程序运行后输出结果错误,导致错误结果的程序行是A)s=
1.0; B)forn=10;n1;n--C)s=s+1/n; D)printf%
6.4f\ns;
(25)已定义ch为字符型变量,以下赋值语句中错误的是A)ch=\; B)ch=62+3; C)ch=NULL; D)ch=\xaa;
(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参
(27)有以下函数定义voidfunintndoublex{……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A)funintydoublem; B)k=fun
1012.5;C)funxn; D)voidfunnx;
(28)有以下程序voidfunchar*achar*b{a=b;*a++;}main{charc1=Ac2=a*p1*p2;p1=c1;p2=c2;funp1p2;printf%c%c\nc1c2;}程序运行后的输出结果是A)Ab B)aa C)Aa D)Bb
(29)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是A)int*i=NULL; B)float*f=NULL; scanf%di; *f=
10.5;C)chart=m*c=t; D)long*L; *c=t; L=\0;
(30)有以下程序#includemain{printf%d\nNULL;}程序运行后的输出结果是A)0 B)1 C)-1 D)NULL没定义,出错
(31)已定义c为字符型变量,则下列语句中正确的是A)c=97; B)c=97; C)c=97; D)c=a;
(32)以下不能正确定义二维数组的选项是A)inta
[2]
[2]={{1}{2}}; B)inta[]
[2]={1234};C)inta
[2]
[2]={{1}23}; D)inta
[2][]={{12}{34}};
(33)以下选项中不能正确把cl定义成结构体变量的是A)typedefstruct B)structcolorcl {intred; {intred; intgreen; intgreen; intblue; intblue; }COLOR; };COLORcl;C)structcolor D)struct {intred; {intred; intgreen; intgreen; intblue; intblue; }cl; }cl;
(34)以下能正确定义一维数组的选项是A)intnum[]; B)#defineN100intnum[N];C)intnum[
0..100]; D)intN=100;intnum[N];
(35)下列选项中正确的语句组是A)chars
[8];s={Beijing}; B)char*s;s={Beijing};C)chars
[8];s=Beijing; D)char*s;s=Beijing;
(36)已定义以下函数funint*p{return*p;}该函数的返回值是A)不确定的值 B)形参p中存放的值C)形参p所指存储单元中的值 D)形参p的地址值
(37)下列函数定义中,会出现编译错误的是A)maxintxintyint*zB)intmaxintxy{*z=xyx:y;}{intz;z=xyx:y;returnz;}C)maxintxintyD)intmaxintxinty{intz;{returnxyx:y;}z=xyx:y;returnz;}
(38)有以下程序#include#defineFXYX*Ymain{inta=3b=4;printf%d\nFa++b++;}程序运行后的输出结果是A)12 B)15 C)16 D)20
(39)有以下程序funintaintb{ifabreturna;elsereturnb;}main{intx=3y=8z=6r;r=funfunxy2*z;printf%d\nr;}程序运行后的输出结果是A)3 B)6 C)8 D)12
(40)若有定义int*p
[3];,则以下叙述中正确的是A)定义了一个基类型为int的指针变量p,该变量具有三个指针B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C)定义了一个名为*p的整型数组,该数组含有三个int类型元素D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
(41)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址#include#includechar*scmpchar*s1char*s2{ifstrcmps1s20returns1;elsereturns2;}main{inti;charstring
[20]str
[3]
[20];fori=0;i3;i++getsstr[i];strcpystringscmpstr
[0]str
[1];/*库函数strcpy对字符串进行复制*/strcpystringscmpstringstr
[2];printf%s\nstring;}若运行时依次输入abcd、abba和abc三个字符串,则输出结果为A)abcd B)abba C)abc D)abca
(42)有以下程序structs{intxy;}data
[2]={1010020200};main{structs*p=data;printf%d\n++p-x;}程序运行后的输出结果是A)10 B)11 C)20 D)21
(43)有以下程序段main{inta=5*b**c;c=b;b=a;……}程序在执行了c=b;b=a;语句后,表达式**c的值是A)变量a的地址B)变量b中的值C)变量a中的值D)变量b的地址
(44)有以下程序#includemain{charstr[]
[20]={HelloBeijing}*p=str;printf%d\nstrlenp+20;}程序运行后的输出结果是A)0 B)5 C)7 D)20
(45)已定义以下函数funchar*p2char*p1{while*p2=*p1!=\0{p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有\0
(46)有以下程序main{intx=3y=2z=1;printf%d\nx/y~z;}程序运行后的输出结果是A)3 B)2 C)1 D)0
(47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feoffp的值为A)0 B)1 C)-1 D)一个非0值
(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
(49)有以下程序main{inta
[3]
[3]*pi;p=a
[0]
[0];fori=0;i9;i++p[i]=i+1;printf%d\na
[1]
[2];}程序运行后的输出结果是A)3 B)6 C)9 D)2
(50)有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点structnode{intdata;structnode*next;}*p*q*r;_______________________________|datanextdatanextdatanext||→□□→□□→□□→|| ↑p↑q↑r||______________________________|现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是A)r-next=q;q-next=r-next;p-next=r;B)q-next=r-next;p-next=r;r-next=q;C)p-next=r;q-next=r-next;r-next=q;D)q-next=r-next;r-next=q;p-next=r;
二、填空题(每空2分,共40分)
(1)计算机软件分为系统软件与应用软件,UNIX属于〖1〗
(2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面若使用TYPE命令,则完整的命令为〖2〗
(3)Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于〖3〗
(4)在Windows环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件与文件夹移动到〖4〗文件夹中
(5)在Windows环境下,为了进行添加/删除程序操作,首先打开〖5〗,然后双击其中的相应图标
(6)以下程序运行后的输出结果是〖6〗main{intp=30;printf%d\np/30p/10:p%3;}
(7)以下程序运行后的输出结果是〖7〗main{charm;m=B+32;printf%c\nm;}
(8)以下程序运行后的输出结果是〖8〗main{inta=1b=3c=5;ifc=a+bprintfyes\n;elseprintfno\n;}
(9)以下程序运行后的输出结果是〖9〗main{intim=0n=0k=0;fori=9;i=11;i++switchi/10{case0:m++;n++;break;case10:n++;break;default:k++;n++;}printf%d%d%d\nmnk;}
(10)执行以下程序后,输出#号的个数是〖10〗#includemain{intij;fori=1;i5;i++forj=2;j=i;j++putchar#;}
(11)以下程序的功能是调用函数fun计算m=1-2+3-4+…+9-10,并输出结果请填空intfunintn{intm=0f=1i;fori=1;i=n;i++{m+=i*f;f=〖11〗;}returnm;}main{printfm=%d\n〖12〗;}
(12)以下程序运行后的输出结果是〖13〗main{intin[]={00000};fori=1;i=4;i++{n[i]=n[i-1]*2+1;printf%dn[i];}}
(13)以下程序运行后的输出结果是〖14〗main{intija[]
[3]={123456789};fori=0;i3;i++forj=i+1;j3;j++a[j][i]=0;fori=0;i3;i++{forj=0;j3;j++printf%da[i][j];printf\n;}}
(14)以下程序运行后的输出结果是〖15〗inta=5;funintb{staticinta=10;a+=b++;printf%da;}main{intc=20;func;a+=c++;printf%d\na;}
(15)请在以下程序第一行的下划线处填写适当内容,使程序能正确运行〖16〗doubledouble;main{doublexy;scanf%lf%lfxy;printf%lf\nmaxxy;}doublemaxdoubleadoubleb{returnaba:b;}
(16)以下程序运行后输入3abcde回车,则输出结果是〖17〗#includemovechar*strintn{chartemp;inti;temp=str[n-1];fori=n-1;i0;i--str[i]=str[i-1];str
[0]=temp;}main{chars
[50];intniz;scanf%d%sns;z=strlens;fori=1;i=n;i++movesz;(资料来源东方教育网http://www.eastedu.com.cnprintf%s\ns;}
(17)以下程序运行后的输出结果是〖18〗funintx{ifx/20funx/2;printf%dx;}main{fun6;}
(18)已有定义如下structnode{intdata;structnode*next;}*p;以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间请填空p=structnode*malloc〖19〗;
(19)以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串例如,输入字符串abc123edf456gh,执行程序后输出123456请填空#include#includemain{chars
[80]d
[80];intij;getss;fori=j=0;s[i]!=\0;i++if〖20〗{d[j]=s[i];j++;}d[j]=\0;putsd;} 2003年9月全国计算机等级考试二级C语言笔试试卷参考答案
一、选择题
(1)C
(2)A
(3)B
(4)A
(5)D
(6)C
(7)B
(8)A
(9)C
(10)D
(11)A
(12)C
(13)D
(14)B
(15)D
(16)C
(17)A
(18)D
(19)C
(20)C
(21)B
(22)B
(23)C
(24)C
(25)A
(26)D
(27)C
(28)A
(29)D
(30)A
(31)C
(32)D
(33)B
(34)B
(35)D
(36)C
(37)B
(38)A
(39)D
(40)B
(41)B
(42)B
(43)C
(44)C
(45)A
(46)D
(47)A
(48)D
(49)B
(50)A
二、填空题
(1) 〖1〗系统软件
(2) 〖2〗TYPEB.TXTA.TXT
(3) 〖3〗基本服务
(4) 〖4〗回收站
(5) 〖5〗控制面板
(6) 〖6〗3
(7) 〖7〗b
(8) 〖8〗yes
(9) 〖9〗132
(10)〖10〗6
(11)〖11〗-f
(12) 〖12〗fun10
(13)〖13〗13715 056 009
(14)〖14〗123
(15)〖15〗3025
(16) 〖16〗doublemax
(17)〖17〗cdeab
(18)〖18〗136
(19)〖19〗sizeofstructnode
(20)〖20〗s[i]=0s[i]=92004年4月全国计算机等级考试二级C语言笔试试题(含参考答案) 2004年4月
一、选择题,(1-40)每题1分,(41-50)每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分11MB等于A1000字节 B1024字节C1000×1000字节 D1024×1024字节2与十六进制数200等值的十进制数为A256 B512 C1024 D20483所谓“裸机”是指A单片机 B单板机C不装备任何软件的计算机 D只装备操作系统的计算机4能将高级语言编写的源程序转换成目标程序的是A链接程序 B解释程序 C编译程序 D编辑程序5在64位计算机中,一个字长所占的字节数为A64 B8 C4 D16在Windows环境下,当一个应用程序窗口被最小化后,该应用程序A继续在后台运行 B继续在前台运行C终止运行 D暂停运行7在Windows环境下,能实现窗口移动的操作是A用鼠标拖动窗口中的任何部位 B用鼠标拖动窗口的边框C用鼠标拖动窗口的控制按钮 D用鼠标拖动窗口的标题栏8在Windows环境下,PrintScreen键的作用是A打印当前窗口的内容 B打印屏幕内容C复制屏幕到剪贴板 D复制当前窗口到剪贴板9Internet的通信协议是ATCP/IPBBBSCWWWDFTP10下列叙述中正确的是A计算机病毒只感染可执行文件B计算机病毒只感染文本文件C计算机病毒只能通过软件复制的方式进行传播D计算机病毒可以通过网络或读写磁盘等方式进行传播11一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是A有零个或多个输入 B有零个或多个输出C有穷性 D可行性12以下叙述中正确的是AC语言的源程序不必通过编译就可以直接运行BC语言中的每条可执行语句最终都将被转换成二进制的机器指令CC源程序经编译形成的二进制代码可以直接运行DC语言中的函数不可以单独进行编译13以下符合C语言语法的实型常量是A
1.2E
0.5 B
3.
14.159E C.5E-3 DE1514以下4组用户定义标识符中,全部合法的一组是A_main BIf Ctxt Dintenclude -max REAL k_2sin turbo 3COM_ 00115若以下选项中的变量已正确定义,则正确的赋值语句是Ax1=
26.8%3 B1+2=x2 Cx3=0x12 Dx4=1+2=3;16设有以下定义inta=0;doubleb=
1.25;charc=’A’;#defined2则下面语句中错误的是Aa++; Bb++ Cc++; Dd++;17设有定义floata=2b=4h=3;以下C语言表达式与代数式计算结果不相符的是Aa+B*h/2 B1/2*a+B*hCa+B*h*1/2 Dh/2*a+B18有以下程序main{intx=102,y=012;printf“%2d%2d\n”xy;}执行后输出结果是A1001 B0212 C10210 D021019以下4个选项中,不能看作一条语句的是A{;} Ba=0b=0c=0; Cifa0; Difb==0m=1;n=2;20设有定义inta*pa=a;以下scanf语句中能正确为变量a读入数据的是Ascanf“%d”pA; Bscanf“%d”A;Cscanf“%d”pA; Dscanf“%d”*pA;21以下程序段中与语句k=abbc1:0:0;功能等价的是AifaBbCk=1; BifaB||bCk=1elsek=0;Cifa=Bk=0; DifaBk=1;elseifb=Ck=1; elseifbCk=1;elsek=0;22有以下程序main{chark;intI;fori=1;i3;i++{scanf“%c”k;switchk{case‘0’:printf“another\n”;case‘1’:printf“number\n”;}}}程序运行时,从键盘输入01回车,程序执行后的输出结果是Aanother Banother Canother Dnumbernumbernumbernumbernumberanothernumber23有以下程序main{intx=0y=5z=3;whilez--0++x5y=y-1;printf“%d%d%d\n”xyz;}程序执行后的输出结果是A320 B32-1 C43-1 D5-2-524有以下程序main{intis=0;fori=1;i10;i+=2s+=i+1;printf“%d\n”s;}程序执行后的输出结果是A自然数1~9的累加和 B自然数1~10的累加和C自然数1~9中的奇数之和 D自然数1~10中的偶数之和25有以下程序main{intin=0;fori=2;i5;i++{do{ifi%3continue;n++;}while!i;n++;}printf“n=%d\n”n;}程序执行后的输出结果是An=5 Bn=2 Cn=3 Dn=426若程序中定义了以下函数doublemyadddoubleadoubleB{returna+B;}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是AdoublemyadddoubleaB;Bdoublemyadddoubledouble;CdoublemyadddoublebdoubleA;Ddoublemyadddoublexdoubley;27有以下程序charfuncharxchary{ifxreturny;}main{inta=’9’b=’8’c=’7’;printf“%c\n”funfunaBfunbC;}程序的执行结果是A函数调用出错 B)8 C)9 D)728设有定义intn=0*p=n**q=p;则以下选项中,正确的赋值语句是Ap=1; B*q=2; Cq=p; D*p=5;29有以下程序voidfintvintw{intt;t=v;v=w;w=t;}main{intx=1y=3z=2;ifxyfxy;elseifyzfyz;elsefxz;printf“%d%d%d\n”xyz;}执行后输出结果是A123 B312 C132 D23130有以下程序段inta
[10]={12345678910}*p=a
[3]b;b=p
[5];b中的值是A5 B6 C8 D9
3131、有以下程序main{chara[]=”abcdefg”b
[10]=”abcdefg”;printf“%d%d\n”sizeofAsizeofB;}执行后输出结果是A77 B88 C810 D101032有以下程序voidswap1intc[]{intt;t=c
[0];c
[0]=c
[1];c
[1]=t;}voidswap2intc0intc1{intt;t=c0;c0=c1;c1=t;}main{inta
[2]={35}b
[2]={35};swap1A;swap2b
[0]b
[1];printf“%d%d%d%d\n”a
[0]a
[1]b
[0]b
[1];}其输出结果是A5353 B5335 C3535 D355333有以下程序voidsumint*A{a
[0]=a
[1];}main{intaa
[10]={12345678910}i;fori=2;i=0;i--nbsp;sumaa[i];printf“%d\n”aa
[0];}执行后的输出结果是A4 B3 C2 D1
3434、有以下程序intfintb[]
[4]{intijs=0;forj=0;j4;j++{i=j;ifi2i=3-j;s+=b[i][j];}returns;}main{inta
[4]
[4]={{1234}{0245}{36912}{3210}};printf“%d\n”fA;}执行后的输出结果是A12 B11 C18 D1635有以下定义#includechara
[10]*b=a;不能给数组a输入字符串的语句是AgetsA Bgetsa
[0] Cgetsa
[0]; DgetsB;36有以下程序main{char*p
[10]={“abc””aabdfg””dcdbe””abbd””cd”};printf“%d\n”strlenp
[4];}执行后输出结果是A2 B3 C4 D537有以下程序inta=2;intfint*A{return*A++;}main{ints=0;{inta=5;s+=fA;}s+=fA;printf“%d\n”s;}执行后输出结果是A10 B9 C7 D838有以下程序#definefxx*xmain{inti;i=f4+4/f2+2;printf“%d\n”i;}执行后输出结果是A28 B22 C16 D439设有以下语句typedefstructS{intg;charh;}T;则下面叙述中正确的是A可用S定义结构体变量 B)可以用T定义结构体变量C)S是struct类型的变量 D)T是structS类型的变量40有以下程序strucSTU{charname
[10];intnum;};voidf1structSTUC{structSTUb={“LiSiGuo”2042};c=b;}voidf2structSTU*C{structSTUb={“SunDan”2044};*c=b;}main{structSTUa={“YangSan”2041}b={“WangYin”2043};f1A;f2B;printf“%d%d\n”a.numb.num;}执行后的输出结果是A)20412044 B)20412043 C)20422044 D)2042204341有以下程序main{unsignedcharab;a=4|3;b=43;printf“%d%d\n”ab;}执行后输出结果是A70 B07 C11 D43042下面程序的功能是输出以下形式的金字塔图案是****************main{intij;fori=1;i=4;i++{forj=1;j=4-i;j++printf““;forj=1;j=_______;j++printf“*”;printf“\n”;}}在下划线处应填入的是Ai B2*i-1 C2*i+1 Di+243有以下程序voidsortinta[]intn{intijt;fori=0;iforj=i+2;jifa[i]}main{intaa
[10]={12345678910}i;sortaa10;fori=0;i10;i++printf“%d”aa[i];printf“\n”;}其输出结果是A12345678910 B10987654321C92745638110 D1103856749244以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是Achars
[10]=”abcdefg”; Bchart[]=”abcdefg”*s=t;Cchars
[10];s=”abcdefg”; Dchars
[10];strcpys”abcdefg”;45有以下程序#includemainintargcchar*argv[]{intilen=0;fori=1;iprintf“5d\n”len;}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后输出结果是A14 B12 C8 D646有以下程序voidfinta[]intiintj{intt;ifiJ{t=a[i];a[i]=a[j];a[j]=t;fai+1j-1;}}main{intiaa
[5]={12345};faa04;fori=0;i5;i++printf“%d”aa[i];printf“\n”;}执行后输出结果是A54321 B52341 C12345 D1234547有以下程序structSTU{charname
[10];intnum;intScore;};main{structSTUs
[5]={{“YangSan”20041703}{“LiSiGuo”20042580}{“wangYin”20043680}{“SunDan”20044550}{“Penghua”20045537}}*p
[5]*t;intij;fori=0;i5;i++p[i]=s[i];fori=0;i4;i++forj=i+1;j5;j++ifp[i]-Scorep[j]-Score{t=p[i];p[i]=p[j];p[j]=t;}printf“5d%d\n”s
[1].Scorep
[1]-Score;}执行后输出结果是A550550 B680680 C580550 D58068048有以下程序#includestructNODE{intnum;structNODE*next;};main{structNODE*p*q*r;intsum=0;p=structNODE*mallocsizeofstructNODE;q=structNODE*mallocsizeofstructNODE;r=structNODE*mallocsizeofstructNODE;p-num=1;q-num=2;r-num=3;p-next=q;q-next=r;r-next=NULL;sum+=q-next-num;sum+=p-num;printf“%d\n”sum;}执行后的输出结果是A3 B4 C5 D649有以下程序#includemain{FILE*fp;intik=0n=0;fp=fopen“d
1.dat””w”;fori=1;i4;i++fprintffp”%d”i;fclosefp;fp=fopen“d
1.dat””r”;fscanffp”%d%d”kn;printf“%d%d\n”kn;fclosefp;}执行后输出结果是A12 B1230 C123 D0050有以下程序(提示程序中fseekfp-2L*sizeofintSEEK_END;语句的作用是使位置指针从文件尾向前移2*sizeofint字节)#includemain{FILE*fp;intia
[4]={1234}b;fp=fopendata.datwb;fori=0;i4;i++fwritea[i]sizeofint1fp;fclosefp;fp=fopendata.datrb;fseekfp-2L*sizeofint.SEEK_END;freadbsizeofint1fp;/*从文件中读取sizeofint字节的数据到变量b中*/fclosefp;printf%d\nB;}执行后输出结果是A2 B1 C4 D3
二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上答在试卷上不得分.1E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】2计算机网络分为广域网和局域网,因特网属于【2】3从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为【3】4在Windows环境下,只要在“开始”菜单中单击【4】选项,就可以查阅最近打开过的文档清单5计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行【5】条指令6已知字符A的ACSII码值为65,以下语句的输出结果是【6】charch=’B’;printf“%c%d\n”chch;7有以下语句段intn1=10n2=20;printf“【7】”n
1.n2;要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空n1=10n2=208有以下程序main{intt=1i=5;for;i=0;i--t*=i;printf“%d\n”t;}执行后输出结果是【8】9有以下程序main{intn=0m=1x=2;if!nx-=1;ifmx-=2;ifxx-=3;printf“%d\n”x;}执行后输出结果是【9】10有以下程序#includemain{charch1ch2;intn1n2;ch1=getchar;ch2=getchar;n1=ch1-‘0’;n2=n1*10+ch2-‘0’;printf“%d\n”n2;}程序运行时输入12回车,执行后输出结果是【10】11有以下程序voidfintyint*x{y=y+*x;*x=*x+y;}main{intx=2y=4;fyx;printf“%d%d\n”xy;}执行后输出的结果是【11】12函数fun的功能是计算xndoublefundoublexintn{inti;doubley=1;fori=1;i=n;i++y=y*x;returny;}主函数中已经正确定义mab变量并赋值,并调用fun函数计算m=a4+b4-a+B3实现这一计算的函数调用语句为【12】13下面rotate函数的功能是将n行n列的矩阵A转置为A’,例如1234159135678261014当A=9101112则A’=37111513141516481216请填空#defineN4voidrotateinta[][N]{intijt;fori=0;iN;I++forj=0;【13】;j++{t=a[i][j];【14】;a[j][i]=t;}}14以下sstrcpy函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s请填空voidsstrcpychar*schar*t{while*s++=【15】;}main{charstr1
[100]str2[]=”abcdefgh”;sstrcpystr1str2;printf“%s\n”str1;}15下列程序的运行结果是【16】#includechar*sschar*s{returns+strlens/2;}main{char*p*str=”abcdefgh”;p=ssstr;printf“%s\n”p;}16下面程序的运行结果是【17】intfinta[]intn{ifn1returna
[0]+fa
[1]n-1;elsereturna
[0];}main{intaa
[3]={123}s;s=faa
[0]3;printf“%d\n”s;}17以下程序中给指针p分配三个double型动态内存单元,请填空#includemain{double*p;p=double*malloc【18】;p
[0]=
1.5;p
[1]=
2.5;p
[2]=
3.5;printf“%f%f%f\n”p
[0]p
[1]p
[2];}18以下程序的运行结果是【19】#includetypedefstructstudent{charname
1、@
2、广域网
3、EXIT或exit
4、文档
5、百万条或一百万条或1000000条
6、B66
7、n1=%d\nn2=%d
8、0
9、-4
10、12
11、84
12、funa4+funb4-funa+b3;
13、j=i
14、a[i][j]=a[j][i]
15、*t++
16、6
17、efgh
18、3*sizeofdouble
19、2002Shangxian
20、a=
1.0;b=
1.0;s=
1.0;2004年9月全国计算机等级考试二级C语言笔试试题(含参考答案) 2004年9月
一、选择题(1~40每小题1分,41~55每小题2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分
1.与十进制数200等值的十六进制数为AA8 BA4 CC8 DC4
2.DOS文件系统的组织结构属于A星形结构 B网形结构 C环形结构 D树形结构
3.对存储器按字节进行编址,若某存储器芯片共有10根地址线,则该存储器芯片的存储容量为A1KB B2KB C4KB D8KB
4.在DOS环境下,代表键盘和显示器的设备文件名为APRN BCON CNUL DLPT
5.计算机网络的主要特点是A运算速度快 B运算精度高 C资源共享 D人机交互
6.磁盘处于写保护状态时其中的数据A不能读出,不能删改 B可以读出,不能删改C不能读出,可以删改 D可以读出,可以删改
7.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为AEXIT BQUIT CRET DMSDO
8.在Windows环境下,若资源管理器左宣传品中的某文件夹左边标有“+”标记,则表示A该文件夹为空 B该文件夹中含有子文件夹C该文件夹中只包含有可执行文件 D该文件夹中包含系统文件
9.在Windows菜单中,暗淡的命令名项目表示该命令A暂时不能用 B正在执行C包含下一层菜单 D包含对话框
10.在Windows环境下,单击当前窗口中的按钮“×”(右上角的关闭按钮),其功能是A将当前应用程序转为后台运行 B退出Windows后再关机C终止当前应用程序的运行 D退出Windows后重新启动计算机
11.用C语言编写的代码程序A可立即执行 B是一个源程序C经过编译即可执行 D经过编译解释才能执行
12.结构化程序由三种基本结构组成,三种基本结构组成的算法A可以完成任何复杂的任务 B只能完成部分复杂的任务C只能完成符合结构化的任务 D只能完成一些简单的任务
13.以下定义语句中正确的是Achara=Ab=B; Bfloata=b=
10.0;Cinta=10*b=a; Dfloat*ab=a;
14.下列选项中,不能用作标识符的是A_1234_ B_1_2 Cint_2_ D2_int_
15.有以下定义语句doubleab;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是Aa=a+b=b++ Bw%inta+bCc+w%inta Dw=a==b;
16.有以下程序main{intm=3n=4x;x=-m++;x=x+8/++n;printf%d\nx;}程序运行后的输出结果是A3 B5 C-1 D-2
17.有以下程序main{chara=ab;print%c++a;printf%c\nb=a++;}程序运行后的输出结果是Abb Bbc Cab Dac
18.有以下程序main{intm=0256n=256;printf%o%o\nmnn;}程序运行后的输出结果是A02560400 B0256256 C256400 D400400
19.有以下程序main{inta=666b=888;printf%d\nab;}程序运行后的输出结果是A错误信息 B666 C888 D666888
20.有以下程序main{inti;fori=0;i3;i++switchi{case0:printf%di;case2:printf%di;default:printf%di;}}程序运行后的输出结果是A022111 B021021 C000122 D012
21.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是资料来源东方教育网全国计算机等级考试频道Http://www.eastedu.com.cnAabsx-y10 Bx-y-10x-y10C@x-y-10||!y-x10 Dx-y*x-y100
22.有以下程序main{inta=3b=4c=5d=2;ifabifbcprintf%dd+++1;elseprintf%d++d+1;printf%d\nd;}程序运行后的输出结果是A2 B3 C43 D44
23.下列条件语句中,功能与其他语句不同的是Aifaprintf%d\nx;elseprintf%d\ny;Bifa==0printf%d\ny;elseprintf%d\nx;Cifa!=0printf%d\nx;elseprintf%d\ny;Difa==0printf%d\nx;elseprintf%d\ny;
24.有以下程序main{inti=0x=0;for;;{ifi==3||i==5continue;ifi==6break;i++;s+=i;};printf%d\ns;}程序运行后的输出结果是A10 B13 C21 D程序进入死循环
25.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是BAfori=1p=1;i=5;i++p*=i;Bfori=1;i=5;i++{p=1;p*=i;}Ci=1;p=1;whilei=5{p*=i;i++;}Di=1;p=1;do{p*=i;i++;}whilei=5;
26.有以下程序main{charabcd;scanf%c%c%d%dabcd;printfc%c%c%c\nabcd;}若运行时从键盘上输入656566回车则输出结果是A65AB B656566 C6565 D656627以下能正确定义二维数组的是Ainta[]
[3]; Binta[]
[3]=2{2*3};Cinta[]
[3]={}; Dinta
[2]
[3]={{1}{2}{34}};
28.有以下程序intfinta{returna%2;}main{ints
[8]={135246}id=0;fori=0;fs;i++d+=s;printf%d\nd;}程序运行后的输出结果是A9 B11 C19 D21
29.若有以下说明和语句,intc
[4]
[5]*p
[5];p=c;能正确引用c数组元素的是Ap+1 B*p+3C*p+1+3 D*p
[0]+2]
30.有以下程序main{inta=7b=8*p*q*r;p=a;q=b;r=p;p=q;q=r;printf%d%d%d%d\n*pqab;}程序运行后的输出结果是A8787 B7878 C8778 D7887
31.s12和s2已正确定义并分别指向两个字符串若要求当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是Aifs1s2S; Bifstrcmps1s2S;Cifstrcmps2s10S; Difstrcmps1s20S;
32.设有定义语句intx
[6]={246857}*p=xi;要求依次输出x数组6个元素中的值,不能完成此操作的语句是Afori=0;i6;i++printf%2d*p++;Bfori=0;i6;i++printf%2d*p+i;Cfori=0;i6;i++printf%2d*p++;Dfori=0;i6;i++printf%2d*p++;
33.有以下程序#includemain{inta[]={123456789101112}*p=a+5*q=NULL;*q=*p+5;printf%d%d\n*p*1;}程序运行后的输出结果是A运行后报错 B66 C611 D51034有以下定义和语句inta
[3]
[2]={123456}*p
[3];p
[0]=a
[1];则*p
[0]+1所代表的数组元素是Aa
[0]
[1] Ba
[1]
[0] Ca
[1]
[1] Da
[1]
[2]
35.有以下程序main{charstr[]
[10]={ChinaBeijing}*p=str;printf%s\np+10;}程序运行后的输出结果是AChina BBejing Cng Ding
36.有以下程序main{chars[]=ABCD*p;forp=s+1;pS+4;P++PRINTF%S\NP;}程序运行后的输出结果是AABCD BA CB DBCD BCD B C CD CD C D D D D
37.在函数调用过程中,如果函数funA调用了函数funB函数funB又调用了函数funA,则A称为函数的直接递归调用 B称为函数的间接递归调用C称为函数的循环调用 DC语言中不允许这样的递归调用
38.已有定义intia
[10]*p;则合法的赋值语句是Ap=100; Bp=a
[5]; Cp=a
[2]+2; Dp=a+2;
39.以下叙述中正确的是A局部变量说明为static存储数,其生存期将得到延长B全局变量说明为static存储类,其作用域将被扩大C任何存储类的变量在未赋初值时,其值都是不确定的D形参可以使用的存储类说明符与局部变量完全相同
40.设有定义语句charc1=92c2=92;则以下表达式中值为零的是Ac1^c2Bc1c2C~c2Dc1|c2
41.程序中对fun函数有如下说明void*fun;此说明的含义是Afun了数无返回值Bfun函数的返回值可以是任意的数据类型Cfun函数的返回值是无值型的指针类型D指针fun指向一个函数,该函数无返回值
42.有以下程序main{chars[]Yes\n/No*ps=s;putsps+4;*ps+4=0;putss;}程序运行后的输出结果是An/No B/No Cn/NODYesYesYes/No/No/NoYes
43.有以下程序main{unsignedinta;intb=-1;a=b;printf%ua;}程序运行后的输出结果是A-1 B65535 C32767 D-32768
44.有以下程序voidfunint*aintiintj{intt;ifiJ{t=a;a=a[j];a[j]=t;i++;j--;funaij;}}main{intx[]={2618}i;funx03;fori=0;i4;i++printf%2dx;printf\n;}程序运行后的输出结果是A1268 B8621 C8162 D8612
45.有以下说明和定义语句structstudent{intage;charnum
[8];};structstudentstu
[3]={{20200401}{21200402}{10\9200403}};structstudent*p=stu;以下选项中引用结构体变量成员的表达式错误的是Ap++-num Bp-num C*p.num Dstu
[3].age
46.有以下程序mina{intx[]={13572460}ijk;fori=0;i3;i++forj=2;j=i;j--ifx[j+1]x[j]{k=x[j];x[j]=x[j+1];x[j+1]=k;}fori=0;i3;i++forj=4;j7-i;j++ifx[j+1]x[j]{k=x[j];x[j]=x[j+1];x[j+1]=k;}fori=0;i3;i++forj=4;j7-i;j++ifx[j]x[j+1]{k=x[j];x[j]=x[j+1];x[j+1]=k;}fori=0;i8;i++printf%dx;printf\n;}程序运行后的输出结果是A75310246 B01234567 C76310462 D13570246
47.有如下程序#includemain{FILE*fp1;fp1=fopenf
1.txtw;fprintffp1abc;fclosefp1;}若文本文件f
1.txt中原有内容为good,则运行以上程序后文件f
1.txt中的内容为Agoodabc Babcd Cabc Dabcgood48~
50.以下程序的功能是建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项#includestuctnode{chardata;structnode*next;};48CreatListchar*s{structnode*h*p*q;h=structnode*mallocsizeofstructnode;p=q=h;while*s!=\0{p=structnode*mallocsizeofstructnode;p-data=49;q-next=p;q=50;s++;}p-next=\0;returnh;}main{charstr[]=linklist;structnode*head;head=CreatListstr;...}48Achar* Bstructnode Cstructnode* Dchar49A*s Bs C*s++ D*s++50Ap-nextBp Cs Ds-next
二、填空题(每空2分,共40分)
1.在64位高档微机中,CPU能同时处理_____个字节的二进制数据
2.E-mail地址由域名和用户名两部分组成,它们之间用@分隔,其中在@后面的部分是_______
3.Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成为了移动窗口,则要用鼠标拖动_____
4.计算机软件分为系统软件和应用软件,UNIX系统属于________
5.在Windows环境下,为了将屏幕内容存入剪贴板,应按________键
6.以下程序段的输出结果是_____inti=9;printf%o\ni;
7.以下程序运行后的输出结果是_______main{intabc;a=25;b=025;c=0x25;printf%d%d%d\nabc;}
8.以下程序运行后的输出结果是______main{intp
[7]={11131415161718};inti=0j=0;whilei7p%2==1j+=p[i++];printf%d\nj;}
9.以下程序运行后的输出结果是_______main{intx=1y=0a=0b=0;switchx{case1:switchy{case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf%d%d\nab;}
10.以下程序运行后的输出结果是_______main{inta
[4]
[4]={{1234}{5678}{11121314}{15161718}};inti=0j=0s=0;whilei++4{ifi==2||i==4continue;j=0;do{s+=a[j];j++;}whilej4;}printf%d\ns;}
11.以下程序运行后的输出结果是_____main{chara[]=Languageb[]=Programe;char*p1*p2;intk;p1=a;p2=b;fork=0;k=7;k++if*p1+k==*p2+kprintf%c*p1+k;}
12.以下程序运行后的输出结果是_______main{chara[]=123456789*p;inti=0;p=a;while*p{ifi%2==0*p=*;p++;i++;}putsa;}
13.以下程序中,for循环体执行的次数是_____#defineN2#defineMN+1#defineKM+1*M/2main{inti;fori=1;iK;I++{...]...}
14、通过函数求fx的累加和,其中f(x)=x2+1main{printfThesum=%d\nSunFun10;}SunFunintn{intxs=0;forx=0;x=n;x++s+=F(________);returns;}Fintx{return____________;}
15.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和请填空main{intia
[20]suncount;suum=count=0;fori=0;i20;i++scanf%d_____;froi=0;i20;i++{ifa0{count++;sum+=______;}}printfsum=%dcount=%d\nsumcount;}
16.以下程序中,函数sumColumM的功能是求出M行N列二维数组每列元素中的最小值,并计算它们的和值和值通过形参传回主函数输出请填空#defineM2#defineN4voidSumColumMininta[M][N]int*sum{intijks=0;fori=0;iN;I++{k=0;forj=1;jM;J++ifa[k]a[j]k=j;s+=_______;}[*sum]=s;}main{intx[M][N]={32514183}s;SumColumMin_______;printf%d\ns;} 2004年9月二级C笔试答案选择题1-5 CDABC6-10 BABAC11-15BCCDC16-20DACBC21-25CADDB26-30ACADC31-35DDACB36-40DBDAA41-45CBBCD46-50ACCAB填空题
1.8
2.域名
3.标题栏
4.系统软件
5.PEINTSCREEN
6.11
7.252137
8.24
9.21
10.92
11.gae
12.1*3*5*7*9
13.4
14.xx*x+1
15.a[i]a[i]
16.a[k][i]*sumxs2005年4月全国计算机等级考试二级C语言笔试试题(含参考答案) 2005年4月
一、选择题(
(1)~
(10)每小题2分,
(11)~
(50)每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分
(1)数据的存储结构是指______A)存储在外存中的数据 B)数据所占的存储空间量C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示
(2)下列关于栈的描述中错误的是______A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是______A)冒泡排序为n/2B)冒泡排序为nC)快速排序为nD)快速排序为nn-1/2
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______A)log2n B)n/2 C)n D)n+1
(5)下列对于线性链表的描述中正确的是______A)存储空间不一定是连续,且各元素的存储顺序是任意的B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面C)存储空间必须连续,且前件元素一定存储在后件元素的前面D)存储空间必须连续,且各元素的存储顺序是任意的
(6)下列对于软件测试的描述中正确的是______A)软件测试的目的是证明程序是否正确B)软件测试的目的是使程序运行结果正确C)软件测试的目的是尽可能多地发现程序中的错误D)软件测试的目的是使程序符合结构化原则
(7)为了使模块尽可能独立,要求______A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
(8)下列描述中正确的是______A)程序就是软件B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合
(9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指______A)数据与程序独立存放B)不同的数据被存放在不同的文件中C)不同的数据只能被对应的应用程序所使用D)以上三种说法都不对
(10)用树形结构表示实体之间联系的模型是______A)关系模型 B)网状模型 C)层次模型 D)以上三个都是
(11)算法具有五个特性,以下选项中不属于算法特性的是______A)有穷性 B)简洁性 C)可行性 D)确定性
(12)以下选项中可作为C语言合法常量的是______A)-
80. B)-080 C)-8e
1.0 D)-
80.0e
(13)以下叙述中正确的是______A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出
(14)以下不能定义为用户标识符的是______A)Main B)_0 C)_int D)sizeof
(15)以下选项中不能作为合法常量的是______A)
1.234e04 B)
1.234e
0.4 C)
1.234e+4 D)
1.234e0
(16)数字字符0的ASCII值为48,若有以下程序main{chara=1b=2;printf%cb++;printf%d\nb-a;}程序运行后的输出结果是______A)32 B)502 C)22 D)250
(17)有以下程序main{intm=12n=34;printf%d%dm++++n;printf%d%d\nn++++m;}程序运行后的输出结果是______A)12353514 B)12353513 C)12343514 D)12343513
(18)有定义语句intb;charc
[10];则正确的输入语句是______A)scanf%d%sbc; B)scanf%d%sbc;C)scanf%d%sbc; D)scanf%d%sbc;
(19)有以下程序main{intmnp;scanfm=%dn=%dp=%dmnp;printf%d%d%d\nmnp;}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______A)m=123n=456p=789 B)m=123n=456p=789C)m=123n=456p=789 D)123456789
(20)有以下程序main{intabd=25;a=d/10%9;b=a-1;printf%d%d\nab;}程序运行后的输出结果是______A)61B)21C)60D)20
(21)有以下程序main{inti=1j=2k=3;ifi++==1++j==3||k++==3printf%d%d%d\nijk;}程序运行后的输出结果是______A)123 B)234 C)223 D)233
(22)若整型变量a、b、c、d中的值依次为
1、
4、
3、2则条件表达式a A)1 B)2 C)3 D)4
(23)有以下程序main{intp
[8]={1112131415161718}i=0j=0;whilei++7ifp[i]%2j+=p[i];printf%d\nj;}程序运行后的输出结果是______A)42 B)45 C)56 D)60
(24)有以下程序main{chara
[7]=a0\0a0\0;intij;i=sizeofa;j=strlena;printf%d%d\nij;}程序运行后的输出结果是______A)22 B)76 C)72 D)62
(25)以下能正确定义一维数组的选项是______A)inta
[5]={012345};B)chara[]={012345};C)chara={ABC}; D)inta
[5]=0123;
(26)有以下程序intf1intxinty{returnxyx:y;}intf2intxinty{returnxyy:x;}main{inta=4b=3c=5d=2efg;e=f2f1abf1cd;f=f1f2abf2cd;g=a+b+c+d-e-f;printf%d%d%d\nefg;}程序运行后的输出结果是______A)437 B)347 C)527 D)257
(27)已有定义chara[]=xyzb[]={xyz};,以下叙述中正确的是______A)数组a和b的长度相同 B)a数组长度小于b数组长度C)a数组长度大于b数组长度 D)上述说法都不对
(28)有以下程序voidfint*xint*y{intt;t=*x;*x=*y;*y=t;}main{inta
[8]={12345678}i*p*q;p=a;q=a
[7];whilep{fpq;p++;q--;}fori=0;i8;i++printf%da[i];}程序运行后的输出结果是______A)82345671 B)56781234C)12345678 D)87654321
(29)有以下程序main{inta
[3]
[3]*pi;p=a
[0]
[0];fori=0;i9;i++p[i]=i;fori=0;i3;i++printf%da
[1][i];}程序运行后的输出结果是______A)012 B)123 C)234 D)345
(30)以下叙述中错误的是______A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数
(31)有以下程序#defineN20funinta[]intnintm{intij;fori=m;i=n;i--a[i+1]=a[i];}main{intia[N]={12345678910};funa29;fori=0;i5;i++printf%da[i];}程序运行后的输出结果是______A)10234 B)12344 C)12334 D)12234
(32)有以下程序main{inta
[3]
[2]={0}*ptr
[2]ij;fori=0;i2;i++{ptr=a+i;scanf%dptr;ptr++;}fori=0;i3;i++{forj=0;j2;j++printf%2da[i][j];printf\n;}}若运行时输入123回车,则输出结果是______A)产生错误信息 B)10 C)12 D)10 20 30 20 00 00 30
(33)有以下程序prtint*mintn{inti;fori=0;i}main{inta[]={12345}i;prta5;fori=0;i5;i++printf%da[i];}程序运行后的输出结果是______A)12345 B)23456 C)34567 D)23451
(34)有以下程序main{inta[]={1234567890}*p;forp=a;p}程序运行后的输出结果是______A)1234567890 B)23456789101C)0123456789 D)1111111111
(35)有以下程序#defineP3voidFintx{returnP*x*x;}main{printf%d\nF3+5;}程序运行后的输出结果是______A)192 B)29 C)25 D)编译出错
(36)有以下程序main{intc=35;printf%d\ncc;}程序运行后的输出结果是______A)0 B)70 C)35 D)1
(37)以下叙述中正确的是______A)预处理命令行必须位于源文件的开头B)在源文件的一行上可以有多条预处理命令C)宏名必须用大写字母表示D)宏替换不占用程序的运行时间
(38)若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是______A)data的每个成员起始地址都相同B)变量data所占的内存字节数与成员c所占字节数相等C)程序段data.a=5;printf%f\ndata.c;输出结果为
5.000000D)data可以作为函数的实参
(39)以下语句或语句组中能正确进行字符串赋值的是______A)char*sp;*sp=right!;B)chars
[10];s=right!;C)chars
[10];*s=right!;D)char*sp=right!;
(40)设有如下说明typedefstructST{longa;intb;charc
[2];}NEW;则下面叙述中正确的是______A)以上的说明形式非法 B)ST是一个结构体类型C)NEW是一个结构体类型 D)NEW是一个结构体变量
(41)有以下程序main{inta=1b;forb=1;b=10;b++{ifa=8break;ifa%2==1{a+=5;continue;}a-=3;}printf%d\nb;}程序运行后的输出结果是______A)3 B)4 C)5 D)6
(42)有以下程序main{chars[]=159*p;p=s;printf%c*p++;printf%c*p++;}程序运行后的输出结果是______A)15 B)16 C)12 D)59
(43)有以下函数funchar*achar*b{while*a!=\0*b!=\0*a==*b{a++;b++;}return*a-*b;}该函数的功能是______A)计算a和b所指字符串的长度之差B)将b所指字符串连接到a所指字符串中C)将b所指字符串连接到a所指字符串后面D)比较a和b所指字符串的大小
(44)有以下程序main{intnum
[4]
[4]={{1234}{5678}{9101112}{13141516}}ij;fori=0;i4;i++{forj=0;j=i;j++printf%4c;forj=_____;j4;j++printf%4dnum[i][j];printf\n;}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是______A)i-1 B)i C)i+1 D)4-i
(45)有以下程序pointchar*p{p+=3;}main{charb
[4]={abcd}*p=b;pointp;printf%c\n*p;}程序运行后的输出结果是______A)a B)b C)c D)d
(46)程序中若有如下说明和定义语句charfunchar*;main{char*s=onea
[5]={0}*f1=funch;......}以下选项中对函数fun的正确调用语句是______A)*f1a; B)*f1*s; C)funa; D)ch=*f1s;
(47)有以下结构体说明和变量定义,如图所示structnode{intdata;structnode*next;}*p*q*r;datanextdatanextdatanextpqr现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是______A)P-next=q-next; B)p-next=p-next-next;C)p-next=r; D)p=q-next;
(48)以下对结构体类型变量td的定义中,错误的是______A)typedefstructaaB)structaa{intn;{intn;floatm;floatm;}AA;}td;AAtd;structaatd;C)structD)struct{intn;{intn;floatm;floatm;}aa;}td;structaatd;
(49)以下与函数fseekfp0LSEEK_SET有相同作用的是______A)feoffp B)ftellfp C)fgetcfp D)rewindfp
(50)有以下程序#includevoidWriteStrchar*fnchar*str{FILE*fp;fp=fopenfnw;fputsstrfp;fclosefp;}main{WriteStrt
1.datstart;WriteStrt
1.datend;}程序运行后文件t
1.dat中的内容是______A)start B)end C)startend D)endrt
二、填空题(每空2分,共40分请将每空的正确答案写在【1】至【20】序号的横线上,答在试卷上不得分
(1)某二叉树中度为2的结点有18个,则该二叉树中有【1】个叶子结点
(2)在面向对象方法中,类的实例称为【2】
(3)诊断和改正程序中错误的工作通常称为【3】
(4)在关系数据库中,把数据表示成二维表,每一个二维表称为【4】
(5)问题处理方案的正确而完整的描述称为【5】
(6)以下程序运行时,若从键盘输入102030回车,输出的结果是【6】#includemain{inti=0j=0k=0;scanf%d%*d%dijk;printf%d%d%d\nijk;}
(7)以下程序运行后的输出结果是【7】#defineSx4*x*x+1main{inti=6j=8;printf%d\nSi+j;}
(8)以下程序运行后的输出结果是【8】main{inta=3b=4c=5t=99;ifbifaprintf%d%d%d\nabc;}
(9)以下程序运行后的输出结果是【9】main{intabc;a=10;b=20;c=a%b1||a/b1;printf%d%d%d\nabc;}
(10)以下程序运行后的输出结果是【10】main{charc1c2;forc1=0c2=9;c1printf\n;}
(11)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入B33回车,则输出结果是【11】#includemain{charab;a=getchar;scanf%db;a=a-A+0;b=b*2;printf%c%c\nab;}
(12)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值请填空voidfunintintint*
[4]int*;main{inta
[3]
[4]={{12413628}{19331527}{327191}}b
[3]i;fun34ab;fori=0;i3;i++printf%4db[i];printf\n;}voidfunintmintnintar[]
[4]int*br{intijx;fori=0;i{x=ar[i]
[0];forj=0;j【12】=x;}}
(13)以下程序运行后的输出结果是【13】voidswapintxinty{intt;t=x;x=y;y=t;printf%d%dxy;}main{inta=3b=4;swapab;printf%d%dab;}
(14)以下程序运行后的输出结果是【14】#includevoidfunchar*sintpintk{inti;fori=p;i}main{chars[]=abcdefg;funs3strlens;putss;}
(15)以下程序运行后的输出结果是【15】#includemain{charch[]=abcx
[3]
[4];inti;fori=0;i3;i++strcpyx[i]ch;fori=0;i3;i++printf%sx[i][i];printf\n;}
(16)以下程序运行后的输出结果是【16】funinta{intb=0;staticintc=3;b++;c++;returna+b+c;}main{intia=5;fori=0;i3;i++printf%d%difuna;printf\n;}
(17)以下程序运行后的输出结果是【17】structNODE{intk;structNODE*link;};main{structNODEm
[5]*p=m*q=m+4;inti=0;whilep!=q{p-k=++i;p++;q-k=i++;q--;}q-k=i;fori=0;i5;i++printf%dm[i].k;printf\n;}
(18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串yes!,否则函数返回字符串no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如adgda请填空#includechar*huiwenchar*str{char*p1*p2;intit=0;p1=str;p2=【18】;fori=0;i=strlenstr/2;i++if*p1++!=*p2--{t=1;break;}if【19】returnyes!;elsereturnno!;}main{charstr
[50];printfInput:;scanf%sstr;printf%s\n【20】; 2005年4月笔试试卷参考答案
一、选择题1-5 DBDCA6-10 CBDDC11-15BACDB16-20CABAB21-25DABCB26-30ACDDC31-35CBBAD36-40CDCDC41-45BADBA46-50ADCDB
二、填空题1 【1】192 【2】对象3 【3】程序调试4 【4】关系5 【5】算法6 【6】103007 【7】818 【8】45999 【9】1020010【10】091827364511【11】1B12【12】br[i]13【13】433414【14】abcfg15【15】abcbcc16【16】01011121217【17】1343118【18】str+strlenstr-1【19】t==0或!t【20】huiwenstr全国计算机等级考试二级C语言笔试试题(含参考答案)2005年9月
一、选择题(
(1)—
(10)每题2分,
(11)—
(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上答在试 卷上不得分
(1)下列叙述中正确的是A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试
(2)下列数据结构中,能用二分法进行查找的是A)顺序存储的有序线性表 B)线性链表C)二叉链表 D)有序线性链表
(3)下列关于栈的描述正确的是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
(4)下列叙述中正确的是A)一个逻辑数据结构只能有一种存储结构B)数据的逻辑结构属于线性结构,存储结构属于非线性结构C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
(5)下列描述中正确的是A)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题
(6)在软件设计中,不属于过程设计工具的是A)PDL过程设计语言 B)PAD图 C)N-S图 D)DFD图
(7)下列叙述中正确的是A)软件交付使用后还需要进行维护B)软件一旦交付使用就不需要再进行维护C)软件交付使用后其生命周期就结束D)软件维护是指修复程序中被破坏的指令
(8)数据库设计的根本目标是要解决A)数据共享问题 B)数据安全问题C)大量数据存储问题 D)简化数据维护
(9)设有如下关系表:RSTABCABCABC112313112223223313则下列操作中正确的是A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S
(10)数据库系统的核心是A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员
(11)以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识
(12)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句
(13)以下叙述中正确的是A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
(14)以下关于函数的叙述中正确的是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数
(15)若有语句char*line
[5];,以下叙述中正确的是A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针
(16)有以下程序段typedefstructNODE{intnum;structNODE*next;}OLD; 以下叙述中正确的是A)以上的说明形式非法 B)NODE是一个结构体类型C)OLD是一个结构体类型 D)OLD是一个结构体变量
(17)以下叙述中错误的是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句FILEfp;定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据
(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)k%2!=0 D)!k%2==1
(19)以下不能正确计算代数式值的C语言表达式是A)1/3*sin1/2*sin1/2 B)sin
0.5*sin
0.5/3C)powsin
0.52/3 D)1/
3.0*powsin
1.0/22
(20)以下能正确定义且赋初值的语句是A)intn1=n2=10; B)charc=32;C)floatf=f+
1.1; D)doublex=
12.3E
2.5;
(21)以下程序的功能是给r输入数据后计算半径为r的圆面积s程序在编译时出错main/*Beginning*/{intr;floats;scanf%dr;s=*p*r*r;printfs=%f\ns;}出错的原因是A)注释语句书写位置错误 B)存放圆半径的变量r不应该定义为整型C)输出语句中格式描述符非法 D)计算圆面积的赋值语句中使用了非法变量
(22)设有定义intk=1m=2;floatf=7;,则以下选项中错误的表达式是A)k=k=k B)-k++ C)k%intf D)k=f=m
(23)设有定义inta=2b=3c=4;,则以下选项中值为0的表达式是A)!a==1!b==0 B)a C)ab D)a||b+bc-a
(24)有以下程序段intk=0a=1b=2c=3;k=acc:k; 执行该程序段后,k的值是A)3 B)2 C)1 D)0
(25)设变量a、b、c、d和y都已正确定义并赋值若有以下if语句ifaifc==dy=0;elsey=1; 该语句所表示的含义是A) B)C) D)
(26)有以下程序段intnt=1s=0;scanf%dn;do{s=s+t;t=t-2;}whilet!=n; 为使此程序段不陷入死循环,从键盘输入的数据应该是A)任意正奇数 B)任意负偶数 C)任意正偶数 D)任意负奇数
(27)设变量已正确定义,则以下能正确计算f=n!的程序段是A)f=0;B)f=1;fori=1;i=n;i++f*=i;fori=1;iC)f=1;D)f=1;fori=n;i1;i++f*=i;fori=n;i=2;i--f*=i;
(28)设有定义intn1=0n2*p=n2*q=n1;,以下赋值语句中与n2=n1;语句等价的是A)*p=*q; B)p=q; C)*p=n1; D)p=*q;
(29)若有定义intx=0*p=x;,则语句printf%d\n*p;的输出结果是A)随机值 B)0 C)x的地址 D)p的地址
(30)设函数fun的定义形式为voidfuncharchfloatx{…}则以下对函数fun的调用语句中,正确的是A)funabc
3.0; B)t=funD
16.5;C)fun
652.8; D)fun3232;
(31)有以下程序main{inta
[10]={12345678910}*p=a
[3]*q=p+2;printf%d\n*p+*q;}程序运行后的输出结果是A)16 B)10 C)8 D)6
(32)有以下程序main{charp[]={abc}q[]=abc;printf%d%d\nsizeofpsizeofq;};程序运行后的输出结果是A)44 B)33 C)34 D)43
(33)有以下程序#definefxx*xmain{inti1i2;i1=f8/f4;i2=f4+4/f2+2;printf%d%d\ni1i2;}程序运行后的输出结果是A)6428B)44C)43D)6464
(34)有以下程序main{chara1=Ma2=m;printf%c\na1a2;}以下叙述中正确的是A)程序输出大写字母M B)程序输出小写字母mC)格式说明符不足,编译出错 D)程序运行时产生出错信息
(35)有以下程序#includemain{charc1=1c2=2;c1=getchar;c2=getchar;putcharc1;putcharc2;}当运行时输入a回车后,以下叙述正确的是A)变量c1被赋予字符a,c2被赋予回车符B)程序将等待用户输入第2个字符C)变量c1被赋予字符a,c2中仍是原有字符2D)变量c1被赋予字符a,c2中将无确定值
(36)有以下程序main{intk=5n=0;whilek0{switchk{default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf%d\nn;}程序运行后的输出结果是A)0 B)4 C)6 D)7
(37)有以下程序main{inta[]={246810}y=0x*p;p=a
[1];forx=1;x3;x++y+=p[x];printf%d\ny;}程序运行后的输出结果是A)10 B)11 C)14 D)15
(38)有以下程序voidsortinta[]intn{intijt;fori=0;iforj=i+1;jifa[i]}main{intaa
[10]={12345678910}i;sortaa+25;fori=0;i10;i++printf%daa[i];printf\n;}程序运行后的输出结果是A)12345678910 B)12763458910C)12765438910 D)12987654310
(39)有以下程序voidsuminta[]{a
[0]=a[-1]+a
[1];}main{inta
[10]={12345678910};suma
[2];printf%d\na
[2];}程序运行后的输出结果是A)6 B)7 C)5 D)8
(40)有以下程序voidswap1intc0[]intc1[]{intt;t=c0
[0];c0
[0]=c1
[0];c1
[0]=t;}voidswap2int*c0int*c1{intt;t=*c0;*c0=*c1;*c1=t;}main{inta
[2]={35}b
[2]={35};swap1aa+1;swap2b
[0]b
[1];printf%d%d%d%d\na
[0]a
[1]b
[0]b
[1];}程序运行后的输出结果是A)3553 B)5335 C)3535 D)5353
(41)有以下程序#includemain{charp[]={abc}q
[10]={abc};printf%d%d\nstrlenpstrlenq;}以下叙述中正确的是A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3D)由于p和q数组中都没有字符串结束符,故长度都不能确定
(42)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序#includevoidfchar*p[]intn{char*t;intij;fori=0;iforj=i+1;jifstrcmpp[i]p[j]0{t=p[i];p[i]=p[j];p[j]=t;}}main{char*p
[5]={abcaabdfgabbddcdbecd};fp5;printf%d\nstrlenp
[1];}程序运行后的输出结果是A)2 B)3 C)6 D)4
(43)有以下程序#includevoidfchar*schar*t{chark;k=*s;*s=*t;*t=k;s++;t--;if*sfst;}main{charstr
[10]=abcdefg*p;p=str+strlenstr/2+1;fpp-2;printf%s\nstr;}程序运行后的输出结果是A)abcdefg B)gfedcba C)gbcdefa D)abedcfg
(44)有以下程序floatf1floatn{returnn*n;}floatf2floatn{return2*n;}main{float*p1float*p2float*tfloaty1y2;p1=f1;p2=f2;y1=p2p
12.0;t=p1;p1=p2;p2=t;y2=p2p
12.0;printf%
3.0f%
3.0f\ny1y2;}程序运行后的输出结果是A)816 B)88 C)1616 D)48
(45)有以下程序inta=2;intfintn{staticinta=3;intt=0;ifn%2{staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main{ints=ai;fori=0;i3;i++s+=fi;printf%d\ns;}程序运行后的输出结果是A)26 B)28 C)29 D)24
(46)有以下程序#includestructSTU{intnum;floatTotalScore;};voidfstructSTUp{structSTUs
[2]={{20044550}{20045537}};p.num=s
[1].num;p.TotalScore=s
[1].TotalScore;}main{structSTUs
[2]={{20041703}{20042580}};fs
[0];printf%d%
3.0f\ns
[0].nums
[0].TotalScore;}程序运行后的输出结果是A)20045537 B)20044550 C)20042580 D)20041703
(47)有以下程序#includestructSTU{charname
[10];intnum;};voidfchar*nameintnum{structSTUs
[2]={{SunDan20044}{Penghua20045}};num=s
[0].num;strcpynames
[0].name;}main{structSTUs
[2]={{YangSan20041}{LiSiGuo20042}}*p;p=s
[1];fp-namep-num;printf%s%d\np-namep-num;}程序运行后的输出结果是A)SunDan20042 B)SunDan20044C)LiSiGuo20042 D)YangSan20041
(48)有以下程序structSTU{charname
[10];intnum;floatTotalScore;};voidfstructSTU*p{structSTUs
[2]={{SunDan20044550}{Penghua20045537}}*q=s;++p;++q;*p=*q;}main{structSTUs
[3]={{YangSan20041703}{LiSiGuo20042580}};fs;printf%s%d%
3.0f\ns
[1].names
[1].nums
[1].TotalScore;}程序运行后的输出结果是A)SunDan20044550 B)Penghua20045537C)LiSiGuo20042580 D)SunDan20041703
(49)以下程序的功能是进行位运算main{unsignedcharab;a=7^3;b=~43;printf%d%d\nab;}程序运行后的输出结果是A)43 B)73 C)70 D)40
(50)有以下程序#includemain{FILE*fp;intikn;fp=fopendata.datw+;fori=1;i6;i++{fprintffp%di;ifi%3==0fprintffp\n;}rewindfp;fscanffp%d%dkn;printf%d%d\nkn;fclosefp;}程序运行后的输出结果是A)00 B)12345 C)14 D)12
二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分
(1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【1】
(2)算法复杂度主要包括时间复杂度和【2】复杂度
(3)在进行模块测试时,要为每个被测试的模块另外设计两类模块驱动模块和承接模块(桩模块)其中【3】 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果
(4)一棵二叉树第六层(根结点为第一层)的结点数最多为【4】个
(5)数据结构分为逻辑结构和存储结构,循环队列属于【5】结构
(6)以下程序运行后的输出结果是【6】main{intx=0210;printf%X\nx;}
(7)以下程序运行后的输出结果是【7】main{inta=1b=2c=3;ifc=aprintf%d\nc;elseprintf%d\nb;}
(8)已有定义double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元【8】
(9)以下程序运行后的输出结果是【9】main{charc;intn=100;floatf=10;doublex;x=f*=n/=c=50;printf%d%f\nnx;}
(10)以下程序的功能是计算s=1+12+123+1234+12345请填空main{intt=0s=0i;fori=1;i=5;i++{t=i+【10】;s=s+t;}printfs=%d\ns;}
(11)已知字母A的ASCII码为65以下程序运行后的输出结果是【11】main{charab;a=A+5-3;b=a+6-2;printf%d%c\nab;}
(12)有以下程序intsubintn{returnn/10+n%10;}main{intxy;scanf%dx;y=subsubsubx;printf%d\ny;} 若运行时输入1234回车,程序的输出结果是【12】
(13)以下函数sstrcat的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部例如s所指字 符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh请填空#includevoidsstrcatchar*schar*t{intn;n=strlens;while*s+n=【13】{s++;t++;}}
(14)以下程序运行后的输出结果是【14】#includechar*sschar*s{char*pt;p=s+1;t=*s;while*p{*p-1=*p;p++;}*p-1=t;returns;}main{char*pstr
[10]=abcdefgh;p=ssstr;printf%s\np;}
(15)以下程序运行后的输出结果是【15】intfinta[]intn{ifn=1returnfan-1+a[n-1];elsereturn0;}main{intaa
[5]={12345}s;s=faa5;printf%d\ns;}
(16)以下程序运行后的输出结果是【16】structNODE{intnum;structNODE*next;};main{structNODEs
[3]={{1\0}{2\0}{3\0}}*p*q*r;intsum=0;s
[0].next=s+1;s
[1].next=s+2;s
[2].next=s;p=s;q=p-next;r=q-next;sum+=q-next-num;sum+=r-next-next-num;printf%d\nsum;}
(17)以下程序的功能是输出如下形式的方阵13141516910111256781234请填空main{intijx;forj=4;j【17】;j--{fori=1;i=4;i++{x=j-1*4+【18】;printf%4dx;}printf\n;}}
(18)以下函数rotate的功能是将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二 维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变#defineN4voidrotateinta[][N]intb[][N]{intij;fori=0;i{b[i][N-1]=【19】;【20】=a[N-1][i];}} 2005年9月C语言笔试参考答案
一、题答案
(1)—
(10)CACDC DAABB
(11)—
(20)ACBBA CCDAB
(21)—
(30)DCABC DDABD
(31)—
(40)BCCAA DCCAA
(41)—
(50)BCBAC DABAD
二、填空题
(1)数据库系统
(2)空间
(3)驱动模块
(4)32
(5)存储结构
(6)88
(7)1
(8)p=double*mallocsizeofdouble
(9)220
(10)t*10
(11)67G
(12)10
(13)*t
(14)bcdefgha
(15)15
(16)5
(17)0
(18)6
(19)a
[0][i]
(20)b[i]
[0]全国计算机等级考试二级C语言笔试试题(含参考答案) 2006年4月一选择题(
(1)-
(10)每题2分,
(11)-
(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分 1)下列选项中不属于结构化程序设计方法的是 A自顶向下 B)逐步求精 C)模块化 D)可复用 2)两个或两个以上模块之间关联的紧密程度称为 A)耦合度 B)内聚度 C)复杂度 D)数据传输特性 3)下列叙述中正确的是 A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上三种说法都不对 4)按照“后进先出”原则组织数据的数据结构是 A)队列 B)栈 C)双向链表 D)二叉树 5)下列叙述中正确的是 A)线性链表是线性表的链式存储结构 B)栈与队列是非线性结构 C)双向链表是非线性结构 D)只有根结点的二叉树是线性结构 6)对如下二叉树 进行后序遍历的结果为 AABCDEF BDBEAFC CABDECF DDEBFCA 7)在深度为7的满二叉树中,叶子结点的个数为 A)32 B)31 C)64 D)63 8)“商品”与“顾客”两个实体集之间的联系一般是 A)一对一 B)一对多 C)多对一 D)多对多 9)在E-R图中,用来表示实体的图形是 A)矩形 B)椭圆形 C)菱形 D)三角形 10)数据库DB,数据库系统DBS,数据库管理系统DBMS之间的关系是 A)DB包含DBS和DBMS B)DBMS包含DB和DBS C)DBS包含DB和DBMS D)没有任何关系 11)以下不合法的用户标识符是 A)j2_KEY B)Double C4d D_8_ 12以下不合法的数值常量是 A)011 B)lel C
8.0E
0.5 D0xabcd 13以下不合法的字符常量是 A)\018 B\” C\\ D‘\xcc 14)表达式
3.6-5/2+
1.2+5%2的值是 A)
4.3 B
4.8 C
3.3 D
3.8 15)以下能正确定义字符串的语句是 A)charstr[]={‘\064}; Bcharstr=”\x43”; Ccharstr=”; Dcharstr[]=”\0”; 16以下数组定义中错误的是 Aintx[]
[3]={0}; Bintx
[2]
[3]={{12}{34}{56}}; Cntx[]
[3]={{123}{456}}; Dintx
[2]
[3]={123456}; 17若要求从键盘读入含有空格字符的字符串,应使用函数 A)getc Bgets Cgetchar Dscanf 18下四个程序中,完全正确的是 A)#includeB#include main;main {/*programming*/{/*/programming/*/ printf“programming!\n”;}printf“programming!\n”;} C#includeDinclude mainmain {/*/*programming*/*/{/*programming*/ printf“programming!\n”;}printf“programming!\n”;} 19)若有定义floatx=
1.5;inta=1b=3c=2;则正确的switch语句是 A)switchxBswitchintx; {case
1.0:printf“*\n”;{case1:printf“*\n”; Case
2.0:printf“**\n”;}case2:printf“**\n”;} Cswitcha+bDswitcha+b {case1:printf“*\n”;{case1:printf*\n”; case2+1:printf“**\n”;}casec:printf“**\n”;} 20若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是 A)mainBfloatfunintaintb{……} {……x=fun210;……}main floatfunintaintb{……}{……x=funij;……} Cfloatfunintint;Dmain main{floatfunintiintj; {……x=fun210;……}……x=funij;……} floatfunintaintb{……}floatfunintaintb{……} 21在以下给出的表达式中,与whileE中的(E)不等价的表达式是 A)(!E=0)BE0||E0CE==0DE!=0 22要求通过while循环不断读入字符,当读入字母N时结束循环若变量已正确定义,以下正确的程序段是 A)whilech=getchar!=Nprintf“%c”ch; B)whilech=getchar!=Nprintf“%c”ch; C)whilech=getchar==Nprintf“%c”ch; D)whilech=getchar==Nprintf“%c”ch; 23已定义以下函数 intfunint*p {return*p;} fun函数返回值是 A不确定的值B)一个整数C)形参p中存放的值D)形参p的地址值 24)若有说明语句double*pa;则能通过scanf语句正确给输入项读入数据的程序段是 A)*p=a;scanf“%lf”p;B*p=a;scanf“%f”p; Cp=a;scanf“%lf”*p;Dp=a;scanf“%lf”p; 25现有以下结构体说明和变量定义,如图所示,指针pqr分别指向一个链表中连续的三个结点 structnode { chardata; structnode*next; }*p*q*r; 现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是 A)q-next=r-next;p-next=r;r-next=q; Bp-next=r;q-next=r-next;r-.next=q; Cq-next=r-next;r-next=q;p-next=r; Dr-next=q;p-next=r;q-next=r-next; 26有以下程序段 structst {intx;int*y;}*pt: inta[]={12},b[]={34}; structstc
[2]={10a20b}; pt=c; 以下选项中表达式的值为11的是 A*pt-y Bpt-x C++pt-x Dpt++-x 27设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为 A)EOF B)非0值 C0 D)NULL 28)设有以下语句 inta=1b=2c; c=a^b2; 执行后,c的值为 A)6 B)7 C)8 D)9 29)有以下程序 #include main { charc1c2c3c4c5c6; scanf“%c%c%c%c”c1c2c3c4; c5=getchar;c6=getchar; putcharc1;putcharc2; printf“%c%c\n”c5c6; } 程序运行后,若从键盘输入(从第1列开始) 123回车 45678回车 则输出结果是 A)1267 B)1256 C)1278 D)1245 30)若有以下程序 main {inty=10; whiley--;printf“y=%d\n”y; } 程序运行后的输出结果是 Ay=0By=-1Cy=1Dwhile构成无限循环 31)有以下程序 main { inta=0b=0c=0d=0; ifa=1b=1;c=2; elsed=3; printf“%d%d%d%d\n”abcd; } 程序输出 A)0120 B0003 C1120 D编译有错 32)有以下程序 main { intijx=0; fori=0;i2;i++ V{x++; forj=0;j=3;j++ { ifj%2continue; x++; } x++; } printf“x=%d\n”x; } 程序执行后的输出结果是 A)x=4 Bx=8 Cx=6 Dx=12 33有以下程序 intfun1doublea{returna*=a;} intfun2doublexdoubley { doublea=0b=0; a=fun1x;b=fun1y;returninta+b; } main {doublew;w=fun
21.
12.0;……} 程序执行后变量w中的值是 A)
5.21 B5 C
5.0 D
0.0 34有以下程序 main { intit[]
[3]={987654321}; fori=0;i3;i++printf“%d”t[2-i][i]; } 程序的执行后的输出结果是 A)753 B)357 C)369 D)751 35)有以下程序 funcharp[]
[10] {intn=0i; fori=0;i7;i++ ifp[i]
[0]==Tn++; returnn; } main { charstr[]
[10]={“Mon”“Tue”“Wed”“Thu””Fri””Sat””Sun”}; printf“%d\n”funstr; } 程序执行后的输出结果是 A)1N B)2 C)3 D)0 36有以下程序 main { intis=0t[]={123456789}; fori=0;i9;i+=2s+=*t+i; printf“%d\n”s; } 程序执行后的输出结果是 A)45 B)20 C)25 D)36 37)有以下程序 voidfun1char*p { char*q; q=p; while*q!=\0 {*q++;q++;} } main {chara[]={“Program”}*p; p=a
[3];fun1p;printf“%s\n”a; } 程序执行后的输出结果是 A)Prohsbn BPrphsbn CProgsbn DProgram 38有以下程序 voidswapchar*xchar*y { chart; t=*x;*x=*y;*y=t; } main { char*s1=”abc”*s2=”123”; swaps1s2;printf“%s%s\n”s1s2; } 程序执行后的输出结果是 A)123,abc Babc123 C1bca23 D321cba 39)有以下程序 intfunintn { ifn==1return1; else returnn+funn-1; } main {intx; scanf“%d”x;x=funx;printf“%d\n”x; } 程序执行时,给变量x输入10,程序的输出结果是 A)55 B54 C65 D45 40有以下程序 intfunintx[]intn {staticintsum=0i; fori=0;isum+=x[i]; returnsum; } main {inta[]={12345}b[]={6789}s=0; s=funa5+funb4;printf“%d\n”s; } 程序执行后的输出结果是 A)45 B)50 C)60 D)55 41)有以下程序 main { union{ charch
[2]; intd; }s; s.d=0x4321; printf“%x%x\n”s.ch
[0]s.ch
[1]; } 在16位编译系统上,程序执行后的输出结果是 A)21,43 B)43,21 C)43,00 D)21,00 42)有以下程序 main { char*p[]={“3697””2584”}; intij;longnum=0; fori=0;i2;i++ {j=0; whilep[i][j]!=\0 {ifp[i][j]-‘0%2num=10*num+p[i][j]-‘0; j+=2; }} printf“%d\n”num; } 程序执行后的输出结果是 A)35 B)37 C)39 D)3975 43)执行以下程序后,test.txt文件的内容是(若文件能正常打开) #include main {FILE*fp; char*s1=”Fortran”*s2=”Basic”; iffp=fopen“test.txt””wb”==NULL {printf“Cantopentest.txtfile\n”;exit1;} fwrites171fp;/*把从地址s1开始的7个字符写到fp所指文件中*/ fseekfp0LSEEK_SET;/*文件位置指针移到文件开头*/ fwrites251fp; fclosefp; } ABasicanBBasicFortranCBasicDFortranBasic 44以下叙述中错误的是 A)C语言源程序经编译后生成后缀为.obj的目标程序 B)C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 45)以下叙述中错误的是 A)算法正确的程序最终一定会结束 B)算法正确的程序可以有零个输出 C)算法正确的程序可以有零个输入 D)算法正确的程序对于相同的输入一定有相同的结果 46)以下叙述中错误的是 A)C程序必须由一个或一个以上的函数组成 B)函数调用可以作为一个独立的语句存在 C)若函数有返回值,必须通过return语句返回 D)函数形参的值也可以传回对应的实参 47)设有以下定义和语句 charstr
[20]=”Program”*p; p=str; 则以下叙述中正确的是 A)*p与str
[0]中的值相等 B)str与p的类型完全相同 C)str数组长度和p所指向的字符串长度相等 D)数组str中存放的内容和指针变量p中存放的内容相同 48)以下叙述中错误的是 A)C程序中的#include和#define行均不是C语句 B)除逗号运算符外,赋值运算符的优先级最低 C)C程序中,j++;是赋值语句 D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算 49)以下叙述中正确的是 A)预处理命令行必须位于C源程序的起始位置 B)在C语言中,预处理命令行都以“#”开头 C)每个C程序必须在开头包括预处理命令行#include DC语言的预处理不能实现宏定义和条件编译的功能 50)以下叙述中错误的是 A)可以通过typedef增加新的类型 B)可以用typedef将已存在的类型用一个新的名字来代表 C)用typedef定义新的类型名后,原有类型名仍有效 D)用typedef可以为各种类型起别名,但不能为变量起别名二填空题(每空2分,共40分) 请将每一个空的正确答案写在答题卡
[1]至
[20]序号的横线上,答在试卷上不得分 1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为_______
[1]________ 2)在面向对象方法中,_____
[2]______描述的是具有相似属性与操作的一组对象 3)在关系模型中,把数据看成是二维表,每一个二维表称为一个___
[3]_____ 4)程序测试分为静态分析和动态测试,其中__
[4]______是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误 5)数据独立性分为逻辑独立性与物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为_
[5]______ 6)若变量ab已定义为int类型并赋值21和55,要求用printf函数以a=21b=55的形式输出,请写出完整的输出语句__
[6]____ 7)以下程序用于判断abc能否构成三角形,若能输出YES,若不能输出NO当abc输入三角形三条边长时,确定abc能构成三角形的条件是需要同时满足三条件a+bca+cbb+ca请填空 main { floatabc; scanf“%f%f%f”abc; if__
[7]__printf“YES\n”;/*abc能构成三角形*/ elseprintf“NO\n”;/*abc不能构成三角形*/ } 8)以下程序的输出结果是__
[8]_____ main {inta
[3]
[3]={{129}{348}{567}}is=0; fori=0;i3;i++s+=a[i][i]+a[i][3-i-1]; printf“%d\n”s; } 9当运行以下程序时,输入abcd,程序的输出结果是_
[9]____ insertcharstr[] {inti; i=strlenstr; whilei0 {str[2*i]=str[i];str[2*i-1]=*;i--;} printf“%s\n”str; } main {charstr
[40]; scanf“%s”str;insertstr; } 10以下程序的运行结果是__
[10]____ funintt[]intn {intim; ifn==1returnt
[0]; else ifn=2{m=funtn-1;returnm;} } main { inta[]={11463823592}; printf“%d\n”funa10; } 11现有两个C程序文件T
18.c和myfun.c同时在TC系统目录(文件夹)下,其中T
18.c文件如下 #include #include”myfun.c” main {fun;printf“\n”;} myfun.c文件如下 voidfun {chars
[80]c;intn=0; whilec=getchar!=\ns[n++]=c; n--; whilen=0printf“%c”s[n--]; } 当编译连接通过后,运行程序T18时,输入Thank!则输出的结果是___
[11] 12以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如str所指字符串为Hello!c中的字符为e,则函数返回字符串ello!的首地址若str所指字符串为空串或不包含c中的字符,则函数返回NULL请填空 char*funchar*strcharc {intn=0;char*p=str; ifp!=NULL whilep[n]!=cp[n]!=\0n++; ifp[n]==\0returnNULL; return_
[12]_; } 13以下程序的功能是输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空 main {intij; fori=0;__
[13]__;i++ {j=i*10+6; if_
[14]____continue; printf“%d”j; }} 14以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1否则返回0,请填空 intisprimeinta {inti; fori=2;i=a/2;i++ ifa%i==0__
[15]___; __
[16]___; } 15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形,例如,输入整数5时(注意n不得大于10),程序运行结果如下 ABCDE FGHI JKL MN O 请填空完成该程序 main {intijn;charch=A; scanf“%d”n; ifn11 { fori=1;i=n;i++ {forj=1;j=n-i+1;j++ {printf“%2c”ch; ___
[17]____; } 【18】 } } elseprintf“nistoolarge!\n”; printf“\n”; } 16以下程序中函数fun的功能是构成一个如图所示的带头结点的单向链表,在结点数据域中放入了具有两个字符的字符串函数disp的功能是显示输出该单链表中所有结点中的字符串请填空完成函数disp #include typedefstructnode/*链表结点结构*/ {charsub
[3]; Structnode*next; }Node; Nodefunchars/*建立链表*/ {……} voiddispNode*h { Node*p; p=h-next; While【19】 { printf“%s\n”p-sub;p=【20】;} } main { Node*hd; hd=fun;disphd;printf“\n”;} 2006年4月全国计算机等级考试二级C语言笔试试题参考答案
一、选择题 1-10:DADBADCDAC11-20:CCADDBBBCA21-30:CABDDCDDDB31-40:DBCBBCACAC41-50:ACADBDCDBA
二、填空题
1、
452、类
3、关系
4、静态分析
5、物理独立性
6、printfa=%db=%dab
7、a+bca+cbb+ca
8、
309、a*b*c*d*
10、
1111、ahT
12、p+n或str+n
13、i=9或i
1014、j%3!=
015、return0
16、return
117、ch=ch+
118、printf\n
19、p!=NULL
20、p-next二级C语言笔试试题2006年9月(考试时间120分钟,满分100分)
一、选择题(
(1)~
(10)每题2分,
(11)~
(50)每题1分,共60分) 下列各题 A)、B)、 C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分
(1)下列选项中不符合良好程序设计风格的是________ A)源程序要文档化 B)数据说明的次序要规范化 C)避免滥用goto语句 D)模块设计要保证高耦合、高内聚
(2)从工程管理角度,软件设计一般分为两步完成,它们是________ A)概要设计与详细设计 B)数据设计与接口设计 C)软件结构设计与数据设计 D)过程设计与数据设计
(3)下列选项中不属于软件生命周期开发阶段任务的是________ A)软件测试 B)概要设计 C)软件维护 D)详细设计
(4)在数据库系统中,用户所见的数据模式为________ A)概念模式 B)外模式 C)内模式 D)物理模式
(5)数据库设计的四个阶段是需求分析、概念设计、逻辑设计和________ A)编码设计 B)测试阶段 C)运行阶段 D)物理设计
(7)下列叙述中正确的是________ A)一个算法的空间复杂度大,则其时间复杂度也必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对
(8)在长度为64的有序线性表中进行顺序查找,最环境情况下需要比较的次数为________ A)63 B)64 C)6 D)7
(9)数据库技术的根本目标是要解决数据的________ A)存储问题 B)共享问题 C)安全问题 D)保护问题
(11)下列叙述中错误的是________ A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成 C)C程序可以由一个或多个函数组成 D)一个C函数可以单独作为一个C程序文件存在
(12)下列叙述中正确的是________ A)每个C程序文件中都必须有一个main函数 B)在C程序中main函数的位置是固定的 C)C程序可以由一个或多个函数组成 D)在C程序的函数中不能定义另一个函数
(13)下列定义变量的语句中错误的是________ A)int_int; B)doubleint_; C)charFor; D)floatUSS(14若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是________ A)++xy=x-- B)x+1=y C)x=x+10=x+y D)doublex/10(15以下关于逻辑运算符两侧运算对象的叙述中正确的是________ A)只能是整数0或1 B)只能是整数0或非0的整数 C)可以是结构体类型的数据 D)可是任意合法的表达式
(16)若有定义intxy;并已正确给变量赋值,则以下选项中与表达式(x-y)x++:y++中的条件表达式(x-y)等价的是________ A)(x-y0) B)x-y0 C)x-y║x-y0 D)x-y==0(17有以下程序 main {intxyz; x=y=1; z=x++y++++y; printf%d%d%d\nxyz; } 程序运行后的输出结果是________ A)233 B)232 C)231 D)221(18设有定义inta;floatb;执行scanf%2d%fab;语句时,若从键盘输入
876543.0回车,a和b的值分别是________ A)876和
543.000000 B)87和
6.000000 C)87和
543.000000 D)76和
543.000000
(19)有以下程序 main {inta=0b=0; a=10;/*给a赋值 b=20;给b赋值*/ printfa+b=%d\na+b;/*输出计算结果*/ } 程序运行后输出结果是________ A)a+b=0 B)a+b=30 C)30 D)出错
(20)在嵌套使用if语句时,C语言规定else总是________ A)和之前与其具有相同缩进位置的if配对 B)和之前与其最近的if配对 C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对
(21)下列叙述中正确的是________ A)break语句只能用于switch语句 B)在switch语句中必须使用default C)break语句必须与switch语句中的case配对使用 D)在switch语句中,不一定使用break语句
(22)有以下程序 mian0 {intk=5; while-kprintf%dk-=3; printf\n } 执行后的输出结果是________ A)1 B)2 C)4 D)死循环
(23)有以下程序 main {inti; forI=1;I=40;I++ {ifI++%5=0 if++I%8=0printf%di } printf\n } 执行后的输出结果是________ A)5 B)24 C)32 D)40
(24)以下选项中,值为1的表达式________ A)1-0 B)1-\0 C)1-0 D)\0-0
(25)有以下程序 funintxinty{returnx+y;} main {inta=1b=2c=3sum; sum=funa++b++ba+bc++; printf%d\nsum; } 执行后的输出结果是________ A)6 B)7 C)8 D)9
(26)有以下程序 main {chars[]=abcde; s+=2; printf%d\n,s
[0]; } 执行后的结果是________ A)输出字符a的ASCII码 B)输出字符c的ASCII码 C)输出字符c D)程序出错
(27)有以下程序 funintxinty {staticintm=0I=2; I+=m+1;m=I+x+y;returnm; } main {intj=1m=Ik; k=funjm;printf%dk; k=funjm;printf%d\nk } 执行后的输出结果是________ A)55 B)511 C)1111 D)115(28有以下程序 funintx {intp; ifx==0║x==1return3; p=x-funx=2; retump; }main {prinf%d\nfun7;} 执行后的输出结果是________ A)7 B)3 C)3 D)0
(29)在16位编译系统上,右有定义inta[]={102030}*p=a;当执行p++;后,下列说法错误的是________ A)p向高地址移了一个字节 B)p抽高地址移了一个存储单元 C)p向高地址移了两个字节 D)p与a+1等价
(30)有以下程序 main {inta=1b=3c=5; int*p1=a*p2=b*p=c; *p=*p1**p2; printf%d\nc; } 执行后的输出结果是 A)1 B)2 C)3 D)4
(31)若有定义intw
[3]
[5];,则以下不能正确表示该数组元素的表达式是________ A)*(*w+3) B)*w+1
[4] C)**w+1 D)*w
[0]
[0]+1(32若有以下函数首部 intfundoublex
[10]int*n 则下面针对此函数声母语句中正确的是________ A)intfundoublexint*n; B)intfundoubleint; C)intfundouble*xintn; D)intfundouble*int*;(33若有定义语句intk
[2]
[3]*pk
[3];,则以下语句中正确的是________ A)pk=k; B)pk
[0]=k
[1]
[2]; C)pk=k
[0]; D)pk
[1]=k;(34有以下程序 voidchangeintk[]{k
[0]=k
[5];} main {intx
[10]={12345678910}n=0 whilen=4{changex[n];n++;} forn=0;n5;n++printf%dx[n]; printf\n; } 程序运行后输出的结果是________ A)678910 B)13579 C)12345 D)62345
(35)若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是 A)#defineN10Inta[N] B)#definen5Inta[2*n] C)inta[5+5] D)intn=10a[n](36有以下程序 main {intx
[3]
[2]={0}I; forI=0;I3;I++scanf%dx[i]; printf%3d%3d%3d\nx
[0]
[0]x
[0]
[1]x
[1]
[0]; } 若运行时输入246回车,则输出结果为________ A)200 B)204 C)240 D)246
(37)有以下程序 main {chars[]={aeiou}*ps; ps=s;printf%c\n*ps+4; } 程序运行后的输出结果是________ A)a B)e C)u D)元素s
[4]的地址
(38)以下语句中存在语法错误的是________ A)charss
[6]
[20];ss
[1]=right; B)charss[]
[20]={right}; C)char*ss
[6];ss
[1]=right; D)char*ss[]={right};
(39)若有定义char*x=“abcdefghi”;以下选项中正确运用了strepy函数的是________ A)chary
[10];strcpyyx
[4]; B)chary
[10];strcpy++yx
[1]; C)chary
[10]*s;strcpys=y+5x; D)chary
[10]*s;strcpys=y+1x+1;
(40)有以下程序 intaddintaintb{return+b};} main {intk*fa=5b=10; f=add; … } 则以下函数调用语句错误的是________ A)k=*fab; B)k=addab; C)k=*fab; D)k=fab;
(41)有以下程序 #includestring.h mainintargcchar*argv[] {inti=1n=0; whileiarge{n=n+strlenargv[i];i++;} printf“%d\n”n; } 该程序生成的可执行文件名为proc.exe若运行时输入命令行 proc1234567 则程序的输出结果是________ A)3 B)5 C)7 D)11
(42)有以下程序 voidfun2characharb{printi“%b%c”ab;} chara=‘A’b=‘B’; voidfun1{a=‘C’lb=‘D’;} main {fun1 printf“%c%c”ab; fun2‘E’‘F’; } 程序的运行结果是________ A)CDEF B)ABEF C)ABCD D)CDAB
(43)有以下程序 #includestdio.h #defineN5 #defineMN+1 #definefxx*M main {inti1i2; i1=f2; i2=f1+1; printf“%d%d\n”i1i2; } 程序的运行结果是________ A)1212 B)117 C)1111 D)127
(44)设有以下语句 typedefstructTT {charc;inta
[4];}CIN; 则下面叙述中正确的是________ A)可以用TT定义结构体变量 B)TT是struct类型的变量 C)可以用CIN定义结构体变量 D)CIN是structTT类型的变量
(45)有以下结构体说明、变量定义和赋值语句 structSTD {charname
[10]; intage; charsex; }s
[5]*ps; ps=s
[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是________ A)scanf“%s”s
[0].name; B)scanf“%d”s
[0].age; C)scanf“%c”pssex; D)scanf“%d”psage;
(46)若有以下定义和语句 uniondata {inti;charc;floatf;}x; inty; 则以下语句正确的是________ A)x=
10.5; B)x.c=101; C)y=x; D)printf“%d\n”x;
(47)程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点 datanext a b cNULL 若有以下程序段 q=s;s=snext;p=s; whilep-nextp=p-next; p-next=q;q-next=NULL; 该程序段实现的功能是________ A)首结点成为尾结点 B)尾结点成为首结点 C)删除首结点 D)删除尾结点
(48)若变量已正确定义,则以下语句的输出结果是________ s=32;s^=32;printf“%d”s; A)-1 B)0 C)1 D)32
(49)以下叙述中正确的是________ A)C语言中的文件是流式文件,因此只能顺序存取数据 B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据 D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
(50)有以下程序 #includestdio.h main {FILE*fp;inti; charch[]=”abcd”t; fp=fopen“abc.dat””wb+”; fori=0;i4;i++fwriterch[]11fp; fseekfp-2LSEEK_END; freadt11fp; fclosefp; printf“%c\n”t; } 程序执行后的输出结果是________ A)d B)c C)b D)a参考答案06年9月二级c答案
一、选择题 01—05 DACBD 06—10 CDBBA 11—15 ADDAD 16—20 CCBBC 21—25 DACBC 26—30 ABCDC 31—35 ADBAD 36—40 BBADC 41—45 CBBCD 46—50 BABDC
二、填空题
1、3
2、调试
3、元组
4、栈
5、线性
6、
12346.
07、10 11
8、1
9、 7 4
10、n=n/10
11、x+8
12、sinx
13、0
14、i%2==0
15、s--
16、*s++
17、18
18、16 11
19、-data
20、”rb”全国计算机等级考试二级C语言笔试试卷(含参考答案) 2007年4月
一、选择题
(1)—
(10)每小题2分,
(11)—
(50)每题1分,共60分 下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上 答在试卷上不得分 1下列叙述中正确的是B A算法的效率只与问题的规模有关,而与数据的存储结构无关 B算法的时间复杂度是指执行算法所需要的计算工作量 C数据的逻辑结构与存储结构是一一对应的 D算法的时间复杂度与空间复杂度一定相关 2在结构化程序设计中,模块划分的原则是D A各模块应包括尽量多的功能 B各模块的规模应尽量大 C各模块之间的联系应尽量紧密 D模块内具有高内聚度、模块间具有低耦合度 3下列叙述中正确的是A A软件测试的主要目的是发现程序中的错误 B软件测试的主要目的是确定程序中错误的位置 C为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 D软件测试是证明软件没有错误 4下面选项中不属于面向对象程序设计特征的是C A继承性 B多态性 C类比性 D封装性 5下列对队列的叙述正确的是D A队列属于非线性表 B队列按“先进后出”原则组织数据 C队列在队尾删除数据 D队列按“先进先出”原则组织数据 6对下列二叉树 A BC DEFX YZ 进行前序遍历的结果为C ADYBEAFCZX BYDEBFZXCA CABDYECFXZ DABCDEFXYZ 7某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为A An+1 Bn-1 C2n Dn/2 8在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是B A并 B交 C投影 D笛卡儿乘积 9在E-R图中,用来表示实体之间联系的图形是C A矩形 B椭圆形 C菱形 D平行四边形 10下列叙述中错误的是A A在数据库系统中,数据的物理结构必须与逻辑结构一致 B数据库技术的根本目标是要解决数据的共享问题 C数据库设计是指在已有数据库管理系统的基础上建立数据库 D数据库系统需要操作系统的支持
(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的C A)正当性 B)可行性 C)确定性 D)有穷性
(12)下列叙述中错误的是D A)计算机不能直接执行用C语言编写的源程序 B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件 C后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行
(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是B A)大写字母 B)连接符 C)数字字符 D)下划线
(14)以下叙述中错误的是C A)C语言是一种结构化程序设计语言 B)结构化程序有顺序、分支、循环三种基本结构组成 C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计提倡模块化的设计方法
(15)对于一个正常运行的C程序,以下叙述中正确的是A A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 16设变量均已正确定义,若要通过scanf“%d%c%d%c”a1c1a2c2;语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y以下所示的输入形式中正确的是(注□代表空格字符)D A)10□X□20□Y〈回车〉 B)10□X20□Y〈回车〉 C)10□X〈回车〉 D)10X〈回车〉 20□Y〈回车〉 20Y〈回车〉
(17)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是C Asqrtabsn^x+e^x Bsqrtfabspownx+powxe Csqrtfabspownx+expx Dsqrtfabspowxn+expx 18设有定义intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是A A)k++ Bk+=1 C++k Dk+1
(19)有以下程序,其中%u表示按无符号整数输出B main {unsignedintx=0xFFFF;/*x的初值为十六进制数*/ printf“%u\n”x; }程序运行后的输出结果是 A)-1 B)65535 C)32767 D)0xFFFF
(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是C Aifx++; Bifxyy!=0; Cifxyx-- Dify0{;} elsey++; elsex++; 21以下选项中,当x为大于1的奇数时,值为0的表达式D Ax%2==1 Bx/2 Cx%2!=0 Dx%2==0
(22)以下叙述中正确的是C A)break语句只能用于switch语句体中 Bcontinue语句的作用是使程序的执行流程跳出包含它的所有循环 Cbreak语句只能用在循环体内和switch语句体内 D)在循环体内使用break语句和continue语句的作用相同 23有以下程序A main {intk=5n=0; do {switchk {case1:case3:n+=1;break; default;n=0;k--; case2:case4:n+=2;k--;break; } printf“%d”n; }whilek0n5; } 程序运行后的输出结果是 A)235 B)0235 C)02356 D)2356
(24)有以下程序 mian {intij; fori=1;i4;i++ {forj=i;j4;j++printf“%d*%d=%d“iji*j; printf“\n”; } } 程序运行后的输出结果是B A1*1=11*2=21*3=3 B1*1=11*2=21*3=3 2*1=22*2=4 2*2=42*3=6 3*1=33*3=9 C1*1=1 D1*1=1 1*2=22*2=4 2*1=22*2=4 1*3=32*3=63*3=9 3*1=33*2=63*3=9
(25)以下合法的字符型常量是A A”\x13”B”\018”C”65”D”\n”
(26)在C语言中,函数返回值的类型最终取决于A A函数定义时在函数首部所说明的函数类型 Breturn语句中表达式值的类型 C调用函数时主函数所传递的实参类型 D函数定义时形参的类型
(27)已知大写字母A的ASCII码是65,小写字母aASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是D Ac=c-A%26+’a’ Bc=c+32 Cc=c-‘A’+’a’ Dc=‘A’+c%26-‘a’ 28有以下函数 intfunchar*s {char*t=s; while*t++; returnt-s; } 该函数的功能是B A比较两个字符的大小 B计算s所指字符串占用内存字节的个数 C计算s所指字符串的长度 D将s所指字符串复制到字符串t中
(29)设已有定义floatx;则以下对指针变量p进行定义且赋初值的语句中正确的是D Afloat*p=1024; Bint*p=floatx; Cfloatp=x; Dfloat*P=x;
(30)有以下程序 #includestdio.h main {intn*p=NULL; *p=n; printf“Inputn:”;scanf“%d”p;printf“outputn:”;printf“%d\n”p; } 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是A A)intn*p=NULL; B*p=n; Cscanf“%d”p Dprintf“%d\n”p; 31以下程序中函数f的功能是当flag为1时,进行有由小到大排序;当flag为0时,进行由大到小排序 voidfintb[]intnintflag {intijt; fori=0;in-1;i++ forj=i+1;jn;j++ ifflagb[i]b[j]:b[i]b[j]{t=b[i];b[i]=b[j];b[j]=t;} } main {inta
[10]={54321678910}i; fa
[2]50;fa51; fori=0;i10;i++printf“%d”a[i]; } 程序运行后的输出结果是B A)1,2,3,4,5,6,7,8,9,10, B)3,4,5,6,7,2,1,8,9,10, C)5,4,3,2,1,6,7,8,9,10, D)10,9,8,7,6,5,4,3,2,1,
(32)有以下程序 voidfintb[] {inti; fori=2;i6;i++b[i]*=2; } main {inta
[10]={12345678910}i; fa; fori=0;i10;i++printf“%d”a[i]; } 程序运行后的输出结果是B A)1,2,3,4,5,6,7,8,9,10, B)1,2,6,8,10,12,7,8,910 C)1,2,3,4,10,12,14,16,9,10, D)1,2,6,8,10,12,14,16,9,10,
(33)有以下程序 typedefstruct{intbp;}A; voidfAc/*注意c是结构变量名*/ {intj; c.b+=1;c.p+=2; } main {inti; Aa={12}; fa; printf“%d%d\n”a.ba.p; } 程序运行后的输出结果是D A)2,3 B)2,4 C)1,4 D)1,2
(34)有以下程序 main {inta
[4]
[4]={{1432}{8657}{3725}{4861}}ijkt; fori=0;i4;i++ forj=0;j3;j++ fork=j+1;k4;k++ ifa[j][i]a[k][i]{t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/ fori=0;i4;i++printf“%d”a[i][j]; } 程序运行后的输出结果是A A1657 B8731 C4752 D1621 35有以下程序 main {inta
[4]
[4]={{1432}{8657}{3725}{4861}}ikt; fori=0;i3;i++ fork=i+i;k4;k++ifa[i][i]a[k][k]{t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;} fori=0;i4;i++printf“%d”a
[0][i]; } 程序运行后的输出结果是B A6211 B6432 C1126 D2346 36有以下程序 voidfint*q {inti=0; for;i5;i++*q++; } main {inta
[5]={12345}i; fa; fori=0;i5;i++printf“%d”a[i]; } 程序运行后的输出结果是B A22345 B62345 C12345 D23456 37有以下程序 #includestring.h main {charp
[20]={‘a’’b’’c’’d’}q[]=”abc”r[]=”abcde”; strcpyp+strlenqr;strcatpq; printf“%d%d\n”sizeofpstrlenp; } 程序运行后的输出结果是C A209 B99 C2011 D1111 38有以下程序 #includestring.h main {charp
[20]={‘a’’b’’c’’d’}q[]=”abc”r[]=”abcde” strcatpr;Strcpyp+strlenqq; Printf“%d\n”sizeofp; } 程序运行后的输出结果是B A9 B6 C11 D7 39有以下程序 #includestring.h main voidfcharp[]
[10]intn/*字符串从小到大排序*/ {chart
[10];intij; fori=0;in-1;i++ forj=i+1;jn;j++ ifstrcmpp[i]p[j]0{strcpytp[i];strcpyp[i]p[j];strcpyp[i]t;} } main {charp
[5]
[10]={“abc””aabdfg””abbd””dcdbe””cd”}; fp5; printf“%d\n”strlenp
[0]; } 程序运行后的输出结果是C A2 B4 C6 D3 40有以下程序 voidfintnint*r {intr1=0; ifn%3==0r1=n/3; elseifn%5==0r1=n/5; elsef--nr1; *r=r1; } main {intm=7r; fmr;printf“%d\nr”; } 程序运行后的输出结果是A A2 B1 C 3 D0 41有以下程序 mainintargcchar*argv[] {intn=0i; fori=1;iargc;i++n=n*10+*argv[i]-‘0’; printf“%d\n”n; } 编译连接后生成可执行文件tt.exe,若运行时输入以下命令行 tt12345678 程序运行后的输出结果是D A12 B12345 C12345678 D136 42有以下程序 inta=4; intfintn {intt=0;staticinta=5; ifn%2{inta=6;t+=a++;} else{inta=7;t+=a++;} returnt+a++; } main() {ints=a,i=0; for(;i〈2;i++)s+=fi; printf“%d\n”s; } 程序运行后的输出结果是B A24 B28 C32 D36 43有一个名为init.txt的文件,内容如下 #defineHDYABA/B #definePRINTYPrintf“y=%d\n.Y 有以下程序 #include“init.txt” main {inta=1b=2c=3d=4k; K=HDY(a+c,b+d); PRINT(K); } 下面针对该程序的叙述正确的是D A)编译有错 B)运行出错 C)运行结果为y=0 D运行结果为y=6 44有以下程序 main {charch[]=“uvwxyz”*pc; Pc=ch;printf“%c\n”*pc+5; } 程序运行后的输出结果是A Az B0 C元素ch
[5]的地址 D字符y的地址 45有以下程序 structS{intn;inta
[20];}; voidfstructS*P {intijt; fori=0;ip-n-1;i++ forj=i+1;jp-n;j++ ifp-a[i]p-a[j]{t=p-a[i];p-a[i]=p-a[j];p-a[j]=t;} } main {inti;structSs={10{23168754109}}; fs; fori=0;is.n;i++printf“%d”s.a[i]; } 程序运行后的输出结果是A A)12345678910 B)10987654321 C)23168754109 D)10987612345 46有以下程序 structS{intn;inta
[20];}; voidfint*aintn {inti; fori=0;in-1;i++a[i]+=i; } main {inti;structSs={10{23168754109}}; fs.as.n; fori=0;is.n;i++printf“%d”s.a[i]; } 程序运行后的输出结果是A A)243912121111189 B)342798651110 C)23168754109 D)12368754109 47有以下程序段 typedefstructnode{intdata;structnode*next;}*NODE; NODEp; 以下叙述正确的是C A)p是指向structnode结构变量的指针的指针 B)NODEp;语句出错 C)p是指向structnode结构变量的指针 D)p是structnode结构变量
(48)有以下程序 main {unsignedchara=2b=4c=5d; d=a|b;d=c;printf“%d\n”d;} 程序运行后的输出结果是B A)3 B)4 C)5 D)6
(49)有以下程序 #includestdio.h main {FILE*fp;intkna
[6]={123456}; fp=fopen“d
2.dat””w”; fprintffp”%d%d\n”a
[0]a
[1]a
[2];fprintffp“%d%d%d\n”a
[3]a
[4]a
[5]; fclosefp; fp=fopen“d
2.dat””r”; fscanffp“%d%d”kn;printf“%d%d\n”kn; fclosefp; } 程序运行后的输出结果是D A12 B14 C1234 D123456 50有以下程序 #includestdio.h main {FILE*fp;intia
[6]={123456k}; fp=fopen“d
3.dat””w+b”; fwriteasizeofint6fp; fseekfpsizeofint*3SEEK_SET;/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/ freadasizeofint3fp;fclosefp; fori=0;i6;i++printf“%d”a[i]; } 程序运行后的输出结果是A A456456 B123456 C456123 D654321二.填空题(每空2分,共40分) 请将每一个空的正确答案写在答题卡
[1]至
[20]序号的横线上,答在试卷上不得分 注意以命令关键字填空的必须写完整
(1)在深度为7的满二叉树中,度为2的结点个数为___63____
(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于__黑箱(或黑盒)测试
(3)在数据库系统中,实现各种数据管理功能的核心软件称为__数据库管理系统__
(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段编码和测试属于开发_____阶段
(5)在结构化分析使用的数据流图(DFD)中,利用数据字典对其中的图形元素进行确切解释
(6)执行以下程序后的输出结果是a=14 main {inta=10; a=3*5a+4;printf“a=%d\n”a; } 7当执行以下程序时,输入1234567890回车,则其中while循环体将执行 0次 #includestdio.h main {charch; Whilech=getchar==’0’printf“#”; } 8以下程序的运行结果是m=4k=4i=5k=5 intk=0; voidfunintm {m+=k;k+=m;printf“m=%d\nk=%d”mk++;} main {inti=4; funi++;printf“i=%dk=%d\n”ik; } 9以下程序的运行结果是# main {inta=2b=7c=5; switcha0 {case1:switchb0 {case1:switch“@”;break; Case2:printf“!”;break; } case0:switchc==5 {case0:printf“*”;break; case1:printf“#”;break; case2:printf“$”;break; } default:printf“”; } printf“\n”; } 10以下程序的输出结果是9 #includestring.h main {printf“%d\n”strlen“IBM\n012\1\\”; } 11已定义charch=”$”;inti=1j;执行j=!chi++以后,i的值为1
(12)以下程序的输出结果是54 #includestring.h main {chara[]={‘\1’’\2’’\3’’\4’’\0’}; printf“%d%d\n”sizeofasrelena; } 13设有定义语句inta[]
[3]={{0}{1}{2}};则数组元素a
[1]
[2]的值为0
(14)以下程序的功能是求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出请填空 main {intx
[10]a
[9]I; fori=0;i10;i++ scanf“%d”x[i]; fori=1;i10;i++ a[i-1]=x[i]+x[i-1]; fori=0;i9;i++ printf“%d”a[i]; printf“\n”; 15以下程序的功能是利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空 main {intxyzmax*px*py*pz*pmax; scanf“%d%d%d”xyz; px=x; py=y; pz=z; pmax=max; *pmax=*px(或*pmax=x); if*pmax*py*pmax=*py; if*pmax*pz*pmax=*pz; printf“max=%d\n”max; } 16以下程序的输出结果是10 intfunint*xintn {ifn==0 returnx
[0]elsereturnx
[0]+funx+1n-1; } main {inta[]={1234567}; printf“%d\n”funa3; } 17以下程序的输出结果是35 #includestdlib.h main {char*s1*s2m; s1=s2=char*mallocsizeofchar; *s1=15; *s2=20; m=*s1+*s2; printf“%d\n”m; } 18设有说明 structDATE{intyear;intmonth;intday;}; 请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day依次赋初值
2006、
10、1structDATAd={2006101};
(19)设有定义FILE*fw;请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容 fw=fopen“readme.txt”a 参考答案
一、选择题 1-5 24134 6-10 31321 11-1534231 16-2043113 21-2543421 26-3014241 31-3522412 36-4023232 41-4542411 46-5013241
二、填空题
1. 63 2, 墨盒
3. DBNS 4 开发 5, 数据字典 6, a-14 7, 0 8, 无答案 9, #与号 10,9 11,1 12 5_4 13 130 14 i=1 15 X[i-1] 16 无答案 17,10 18,40 19,无答案 20 20a2007年9月2008年4月全国计算机等级考试二级笔试试卷C语言程序设计如果您还需要更多的资料,欢迎到混在校园论坛来做客!(考试时间90分钟,满分100分)
一、选择题(共70分)下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分
(1)程序流程图中指有箭头的线段表示的是A)图元关系B)数据流C)控制流D)调用关系
(2)结构化程序设计的基本原则不包括A)多态性B)自顶向下C)模块化D)逐步求精
(3)软件设计中模块划分应遵循的准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合
(4)在软件开发中,需求分析阶段产生的主要文档是A)可行性分析报告B)软件需求规格说明书C)概要设计说明书D)集成测试计划
(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用
(6)对长度为n的线性表排序,在最坏情况下,比较次数不是nn-1/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序
(7)下列关于栈的叙述正确的是A)栈按“先进先出”组织数据B栈按“先进后出”组织数据C)只能在栈底插入数据D)不能删除数据
(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C]A)需求分析阶段B)概念设计阶段C)逻辑设计阶段D)物理设计阶段
(9)有三个关系R、S和T如下TBCDa0k1RSBCDa0k1b1n1BCDf3h2a0k1n2x1有关系R和S通过运算得到关系T,则所使用的运算为A并B自然连接C笛卡尔积D交
(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为A课号,成绩B学号,成绩C学号,课号D学号,姓名,成绩
(11)以下叙述中正确的是AC程序中的注释只能出现在程序的开始位置和语句的后面BC程序书写格式严格,要求一行内只能写一个语句CC程序书写格式自由,一个语句可以写在多行上D用C语言编写的程序只能放在一个程序文件中
(12)以下选项中不合法的标识符是AprintBFORCaD_0013以下选项中不属于字符常量的是ACBCC\xCC0D\07214设变量已正确定义并赋值,以下正确的表达式是Ax=y*5=x+zBint
15.8%5Cx=y+z+5++yDx=25%
5.015以下定义语句中正确的是Ainta=b=0;BcharA=65+1b=b;Cfloata=1*b=a*c=b;Ddoublea=
0.0b=
1.1;16有以下程序段charch;intk;ch=a;k=12;printf%c%dchchk;printfk=%d\nk;已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是A因变量类型与格式描述符的类型不匹配输出无定值B输出项与格式描述符个数不符,输出为零值或不定值Ca9712k=12Da97k=1217已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是Akk=Akk=ZB!kk=A‖kk=ZCkk+32=akk+32=zDisalphakkkk9118当变量c的值不为
2、
4、6时,值也为“真”的表达式是Ac==2‖c==4‖c==6Bc=2c=6‖c!=3‖c!=5Cc=2c=6!c%2Dc=2c=6c%2!=119若变量已正确定义,有以下程序段inta=3b=5c=7;ifaba=b;c=a;ifc!=ac=b;printf%d%d%d\nabc;其输出结果是A程序段有语法错B3,5,3C3,5,5D3,5,7
(20)有以下程序#includestdio.hmain{intx=1y=0a=0b=0;switchx{case1:switchy{case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf“a=%db=%d\n”ab;}程序的运行结果是A)a=1,b=0B)a=2b=2C)a=1b=1D)a=2b=1
(21)有以下程序#includestdio.hmain{intx=8;for;x0;x--{ifx%3{printf“%d”x--;continue;}printf“%d”--x;}}程序的运行结果是A)7,4,2B)8,7,5,2C)9,7,6,4D)8,5,4,2
(22)以下不构成无限循环的语句或者语句组是A)n=0;B)n=0;do{++n;}whilen=0;while1{n++;}Cn=10;Dforn=0i=1;;i++n+=i;whilen;{n--;}
(23)有以下程序#includestdio.hmain{inta[]={1234}y*p=a
[3];--p;y=*p;printf“y=%d\n”y;}程序的运行结果是A)y=0B)y=1C)y=2D)y=3
(24)以下错误的定义语句是A)intx[]
[3]={{0}{1}{123}};B)intx
[4]
[3]={{123}{123}{123}{123}};C)intx
[4][]={{123}{123}{123}{123}};D)intx[]
[3]={1234};
(25)设有如下程序段chars
[20]=“Bejing”*p;p=s;则执行p=s;语句后,以下叙述正确的是A)可以用*p表示s
[0]B)s数组中元素的个数和p所指字符串长度相等C)s和p都是指针变量D数组s中的内容和指针变量p中的内容相等
(26)若有定义inta
[2]
[3];,以下选项中对a数组元素正确引用的是A)a
[2][!1]B)a
[2]
[3]C)a
[0]
[3]D)a
[12][!1]
(27)有定义语句chars
[10];,若要从终端给s输入5个字符,错误的输入语句是A)getss
[0];B)scanf“%s”s+1;C)getss;D)scanf“%s”s
[1];
(28)以下叙述中错误的是A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#defineMAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的
(29)以下结构体类型说明和变量定义中正确的是A)typedefstructB)structREC;{intn;charc;}REC;{intn;charc;};RECt1t2;RECt1t2;C)typedefstructREC;D)struct{intn=0;charc=’A’;}t1t2;{intn;charc;}RECt1t2;
(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符Cfputs函数用于把字符串输出到文件Dfwrite函数用于以二进制形式输出数据到文件31有以下程序#includestdio.hmain{ints
[12]={123443211123}c
[5]={0}i;fori=0;i12;i++c[s[i]]++;fori=1;i5;i++printf“%d”c[i];printf“\n”;}程序的运行结果是A1234B2344C4332D112332有以下程序#includestdio.hvoidfunint*sintnlintn2{intijt;i=nl;j=n2;whileij{t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main{inta
[10]={1234567890}k;funa03;funa49;funa09;fork=0;k10;k++printf“%d”a[k];printf“\n”;}程序运行的结果是A0987654321B4321098765C5678901234D098765123433有以下程序#includestdio.h#includestring.hvoidfunchar*s[]intn{char*t;intij;fori=0;in-1;i++forj=i+1;jn;j++ifstrlens[i]strlens[j]{t=s[i];s[i]=s[j];s[j]=t;}}main{char*ss[]={“bcc””bbcc””xy””aaaacc””aabcc”};funss5;printf“%s,%s\n”ss
[0]ss
[4];}程序的运行结果是AxyaaaaccBaaaaccxyCbccaabccDaabccbcc34有以下程序#includestdio.hintfintx{inty;ifx==0||x==1return3;y=x*x-fx-2;returny;}main{intz;z=f3;printf“%d\n”z;}程序的运行结果是A0B9C6D835有以下程序#includestdio.hvoidfunchar*achar*b{while*a==’*’a++;while*b=*a{b++;a++;}}main{char*s=”****a*b****”t
[80];funst;putst;}程序的运行结果是A*****a*bBa*bCa*b****Dab36有以程序#includestdio.h#includestring.htypedefstruct{charname
[9];charsex;floatscore
[2];}STU;voidfSTUa{STUb={“Zhao”’m’
85.
090.0};inti;strcpya.nameb.name;a.sex=b.sex;fori=0;i2;i++a.score[i]=b.score[i];}main{STUc={“Qian”’p’
95.
092.0};fc;printf“%s%c%
2.0f%
2.0f\n”c.namec.sexc.score
[0]c.score
[1];}程序的运行结果是AQianf9592BQianm8590CZhaof9592DZhaom859037有以下程序#includestdio.hmain{FILE*fp;inta
[10]={123}in;fp=fopen“dl.dat””w”;fori=0;i3;i++fprintffp”%d”a[i];fprintffp”\n”;fclosefp;fp=fopen“dl.dat””r”;fscanffp”%d”n;fclosefp;printf“%d\n”n;}程序的运行结果是A12300B123C1D32138变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000若要求将a的高4位取反,低4位不变,所要执行的运算是Aa^bBa|bCabDa439在C语言中,只有在使用时才占用内存单元的变量,其存储类型是Aauto和registerBextern和registerCauto和staticDstatic和register40设有定义语句int*fint;则以下叙述正确的是Af是基类型为int的指针变量Bf是指向函数的指针变量,该函数具有一个int类型的形参Cf是指向int类型一维数组的指针变量Df是函数名,该函数的返回值是基类型为int类型的地址
二、填空题(每空2分,共30分)请将每一个空的正确答案些在答题卡【1】至【15】序号的横线上,答在试卷上不得分
(1)测试用例包括输入值集和【1】值集
(2)深度为5的满二叉树有【2】个叶子结点
(3)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【3】个元素
(4)在关系数据库中,用来表示实体之间联系的是【4】
(5)在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【5】负责数据的模式定义与数据的物理存取构建
(6)已有定义charc=’‘;inta=1b;此处c的初值为空格字符,执行b=!ca;后b的值为【6】
(7)设变量已正确定义为整型,则表达式n=i=2++ii++的值为【7】
(8)若有定义intk;,以下程序段的输出结果是【8】fork=2;k6;k++k++printf“##%d”k;9以下程序段的定义语句中,x
[1]的初值是【9】,程序运行后输出的内容是【10】#includestdio.hmain{intx[]={12345678910111213141516}*p
[4]i;fori=0;i4;i++{p[i]=x[2*i+1];printf“%d”p[i]
[0];}printf“\n”;}10以下程序的输出结果是【11】#includestdio.hvoidswapint*aint*b{int*t;t=a;a=b;b=t;}main{inti=3j=5*p=i*q=j;swappq;printf“%d%d\n”*p*q;}11以下程序的输出结果是【12】#includestdio.hmain{inta
[5]={246810}*p;p=a;p++;printf“%d”*p;}12以下程序的输出结果是【13】#includestdio.hvoidfunintx{ifx/20funx/2;printf“%d”x;}main{fun3;printf“\n”;}
(13)以下程序中函数fun的功能是统计person所指结构体数组中所有性别sex为M的记录的个数,存入变量n中,并做为函数值返回请填空#includestdio.h#defineN3typedefstruct{intnum;charnam
[10];charsex;}SS;intfunSSperson[]{intin=0;fori=0;iN;i++if【14】==’M’n++;returnn;}main{SSW[N]={{1,”AA”’F’}{2”BB”’M’}{3”CC”’M’}};intn;n=funW;printf“n=%d\n”n;}14以下程序从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上请填空#includestdio.hmain{FILE*fp;charch;fp=fopen【15】;ch=fgetcfp;whlie!feoffp{putcharch;ch=fgetcfp;}putchar‘\n’;fclosefp;}参考答案
一、选择题1-10:CABBADBCDC11-20:CCBCBDBBBD21-30:DADCADDDAB31-40:CCACCABAAB
二、填空题
1、输出
2、
163、
244、关系
5、数据定义语言
6、
07、
38、##2##
49、
210、
246811、
3512、
413、
1314、person[i].sex
15、“filea.dat””r”2008年9月全国计算机等级考试二级C笔试试卷
一、选择题
1、一个栈的初始状态为空现将元素
1、
2、
3、
4、
5、A、B、C、D、E依次入栈,然后在依次出栈,则元素出栈的顺序是A)12345ABCDEB)EDCBA54321C)ABCDE12345D)54321EDCBA
2、下列叙述正确的是A)循环队列有队头和队尾两个指针,因此,循环队列是非线形结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定
3、在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A)O(n)BOn2COlog2nDOlog2n
4、下列叙述中正确的是A)顺序结构存储的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间
5、数据流图中带有箭头的线段表示的是A)控制流B)事件驱动C)模块调用D)数据流
6、在软件开发中,需求分析阶段可以使用的工具是A)N—S图BDFD图CPAD图D程序流程图
7、在面向对象的方法中,不属于〞对象〞基本特点的是A)一致性B)分类性C)多态性D)标识唯一性
8、一间宿舍可住多个学生,则实体宿舍和学生之间的联系是A)一对一B)一对多C)多对一D)多对多
9、在数据管理技术发展的三个阶段中,数据共享最好的是A)人工管理阶段B)文件系统阶段C)数据库系统阶段D)三个阶段相同
10、有三个关系R、S和T如下RSTABm1n2BC1335ABCm13由关系R和S通过运算得到关系T,则所使用的运算为A)笛卡尔积B)交C)并D)自然连接
11、以下叙述中正确的是A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完
12、计算机能直接执行的程序是A)源程序B)目标程序C)汇编程序D)可执行程序
13、以下选项中不能作为C语言合法常量的是A)´cd´B
0.1c+6C〞\a〞D´\011´
14、以下选项中正确的定义语句是A)doublea;b;Bdoublea=b=7Cdoublea=7b=7;Ddoubleab;
15、以下不能正确表示代数式2ab/cd的C语言表达式是A)2*a*b/c/dBa*b/c/d*2Ca/c/d*b*2D2*a*b/c*d
16、C源程序中不能表示的数制是A)二进制B)八进制C)十进制D)十六进制
17、若有表达式w-x:++y则其中与w等价的表达式是A)w==1B)w==0Cw!=1Dw!=
018、执行以下程序段后,w的值为intw=´A´x=14y=15;W=x||yw´a´;A-1BNULLC1D
019、若变量已正确定义为int型,要通过语句scanf〞%d%d%d〞abc;给a赋值
1、给b赋值
2、给c赋值3,以下输入形式中错误的是(u代表一个空格符)Auuu123回车B1u2u3回车C1uuu2uuu3回车D123回车
20、有以下程序段intabc;a=10;b=50;c=30;ifaba=bb=cc=a;printf〞a=%db=%dc=%d\n〞abc;程序的输出结果是Aa=10b=50c=10Ba=10b=50c=30Ca=10b=30c=10Da=50b=30c=
5021、若有以下定义语句intm[]={54321}i=4;则下面对m数组元素的引用中错误的是Am[-i]Bm[2*2]Cm[m
[0]]Dm[m[i]]
22、下面的函数调用语句中func函数的实参个数是funcf2v1v2v3v4v5v6maxv7v8;A3B4C5D
823、若有定义语句doublex
[5]={
1.
02.
03.
04.
05.0}*p=x;则错误引用x数组元素的是A*pBx
[5]C*p+1D*x
24、若有定义语句chars
[10]=〞1234567\0\0〞;则strlens的值是A7B8C9D
1025、以下叙述中错误的是A用户自定义的函数中可以没有return语句B用户自定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C用户自定义的函数中若没有return语句,则应当定义函数为void类型D函数的return语句中可以没有表达式
26、以下关于宏的叙述中正确的是A宏名必须用大写字母表示B)宏定义必须位于源程序中所有语句之前C宏替换没有数据类型限制D宏调用比函数调用耗费时间
27、有以下程序#includestdio.hmain{intij;fori=3;i=1;i--{forj=1;j=2;j++printf〞%d〞i+j;pintf〞\n〞;}}程序运行的结果是A234B432C23D
453455433434452328、有以下程序#includestdio.hmain{intx=1y=2z=3;ifxyifyzprintf〞%d〞++z;elseprintf〞%d〞++y;printf〞%d\n〞x++;}程序运行的结果是A331B41C2D
129、有以下程序#includestdio.hmain{inti=5;do{ifi%3==1ifi%5==2{printf〞%d〞i;break;}i++;}whilei!=0;printf〞\n〞;}程序运行的结果是A*7B*3*5C*5D*2*
630、有以下程序#includestdio.hintfunintaintb{ifb==0returna;elsereturnfun-a-b;}main{printf〞%d\n〞fun42;}程序运行的结果是A1B2C3D
431、有以下程序#includestdio.h#includestdio.h{int*p;p=int*mallocsizeofint;*p=n;return*p;}main{inta;a=fun10;printf〞%d\n〞a+fun10;}程序运行的结果是A0B10C20D出错
32、有以下程序#includestdio.hvoidfunintaintb{intt;t=a;a=b;b=t;}main{intc
[10]={1234567890}i;fori=0;i10;i+=2func[i]c[i+1];fori=0;i10;i++printf〞%d〞c[i];printf〞\n〞;}程序运行的结果是A1234567890B2143658709C0987654321D
012345678933、有以下程序#includestdio.hstructst{intxy;}data
[2]={110220};main{structst*p=data;printf〞%d〞p-y;printf〞%d\n〞++p-x;}程序运行的结果是A101B201C102D
20234、有以下程序#includestdio.hvoidfuninta[]intn{intit;fori=1;in/2;i++{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main{intk
[10]={12345678910}i;funk5;fori=2;i8;i++printf〞%d〞k[i];printf〞\n〞;}程序运行的结果是A345678B876543C1098765D
32167835、有以下程序#includestdio.h#defineN4voidfuninta[][N]intb[]{inti;fori=0;iN;i++b[i]=a[i][i];}main{intx[][N]={{123}{4}{5678}{910}}y[N]i;funxy;fori=0;iN;i++printf〞%d〞y[i];printf〞\n〞;}程序运行的结果是A1234B1070C1459D
3481036、有以下程序#includestdio.hintfunint*s
[4]intnintk{intmi;m=s
[0][k];fori=1;in;i++ifs[i][k]mm=s[i][k];returnm;}main{inta
[4]
[4]={{1234}{11121314}{21222324}{31323334}};printf〞%d\n〞funa40;}程序运行的结果是A4B34C31D
3237、有以下程序#includestdio.hmain{structSTU{charname
[9];charsex;doublescore
[2];};structSTUa={〞Zhao〞´m´
85.
090.0}b={〞Qian〞´f´
95.
092.0};b=a;printf〞%s%c%
2.0f%
2.0f\n〞b.nameb.sexb.score
[0]b.score
[1];}程序运行的结果是AQianf9592BQianm8590CZhaof9592DZhaom
859038、假定已建立以下链表结构,且指针p和q已指向如图所示的结点则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是A*p.next=*q.next;freep;Bp=q-next;freeq;Cp=q;freeq;Dp-next=q-next;freeq;
39、有以下程序#includestdio.hmain{chara=4;printf〞%d\na=a1〞;}程序的运行结果是A40B16C8D
440、有以下程序#includestdio.hmain{FILE*pf;char*s1=〞China〞*s2=〞Beijing〞;pf=fopen〞abc.dat〞〞wb+〞;fwrites271pf;rewindpf;fwrites151pf;fclosepf;}以下程序执行后abc.dat文件的内容是AChinaBChinangCChinaBeijingDBeijingChina
二、填空题
1、对下列二叉树进行中序遍历的结果是.
2、按照软件测试的一般步骤,集成测试应在()测试之后进行
3、软件工程三要素包括方法、工具和过程,其中,()支持软件开发的各个环节的控制和管理
4、数据库设计、()和物理设计
5、在二维表中,元组的()不能再分成更小的数据项
6、设变量a和b已正确定义并赋初值请写出与a-=a+b等价的赋值表达式()
7、若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值a=7b=9请完成输出语句〞printf〞___________________〞ab;
8、以下程序的输出结果是()#includestdio.hmain{intijsum;fori=3;i=1;i--{sum=0;forj=1;j=i;j++sum+=i*j;}printf〞%d\n〞sum;}
9、以下程序的输出结果是()#includestdio.hmain{intja[]={13579111315}*p=a+5;forj=3;j;j--{switchj{case1:case2:printf〞%d〞*p++;break;case3:printf〞%d〞*--p;}}}
10、以下程序的输出结果是()#includestdio.h#defineN5intfunint*sintaintn{intj;*s=a;j=n;whilea!=s[j]j--;returnj;}main{ints[N+1];intk;fork=1;k=N;k++s[k]=k+1;printf〞%d\n〞funs4N;}11以下程序的输出结果是_________#includestdio.hintfunintx{staticintt=0;returnt+=x;}main{intsi;fori=1;i=5;i++s=funi;printf〃%d\n〃s;}12以下程序按下面指定的数据给x数组的下三角置数并按如下形式输出请填空43726915810#includestdio.hmain{intx
[4]
[4]n=0ij;forj=0;j4j++fori=3;i=j;___________{n++;x[i][j]=____________;}fori=0;i4;i++{forj=0;j=i;j++printf〃%3d〃x[i][j];print〃\n〃;}}13以下程序的功能是通过函数func输入字符并统计字符的个数输入时用字符@作为输入结束标志请填空#includestdio.hlong_______________;/*函数说明语句*/main{longn;n=func;printf〃n=%ld\n〃n;}longfunc{longm;form=0;getchar!=′@′;___________________;returnm;}参考答案
一、选择题1-5: BDCAD6-10:BABCD11-15:CDACD16-20:ADCBA21-25:CABAB26-30:CDDAB31-35:CACDB36-40:CDDCB
二、填空题(按空填)
1、DBXEAYFZC
2、单元
3、过程
4、逻辑设计
5、分量
6、a=-b
7、a=%d\nb=%d\n
8、
19、
991110、
311、
1512、i--
13、n
14、func
15、m++2009年4月
一、选择题1~5 DACDC6~10ABABC11~15CBDDA16~20CDBCD21~25CDABA26~30BACBC31~35ADBCC36~40DBDAC
二、填空题
1、
202、白盒测试
3、顺序结构
4、数据库管理系统
5、菱形
6、
47、x/y=%d
8、不能
9、s=
010、1AbCeDf2dF
11、
777765432112、maxintint或者填maxintaintb
13、NULL
14、1001ChangRong
1098.
015、p=p-nextB:\根目录F22子目录F1子目录F2子目录F3子目录F21子目录F11子目录FA.TXTFB.BASFC.TXTC:\根目录AUTOEXEC.BATCOMMAND.COMDOSDISKCOPY.COMFORMAT.COMABC.TXTXY.TXTF4XD
2.EXEXD
1.EXEJD
2.FORJD
1.FORD1\D2ABCA.FORDX.CQ.DAT根目录B.PASY.BASA.CD3A
1.CD4XYZ.CQR.CNA.CA.TXTB.CCOMMAND.COM\根目录AUTOEXEC.BATDOSUSERFNULLEdatanextheadpGsD2C:\D1M.BATAUTOEXEC.BATDOS系统文件M.EXEM.COMdatalinkdatalinkdatalink…F11子目录B:\根目录F1子目录FA.TXTF21子目录FC.TXTF2子目录F22子目录FB.BASF3子目录AUTOEXEC.BATC:\根目录DOS子目录TC子目录TC.EXEFORTRAN子目录USER子目录datanextdatanextdatanext…根目录DOS子目录COMMAND.COMUSER子目录AUTOEXEC.BATspnextdata┌─┬─┬─┐root││││└─┴─┴─┘5↑pa↑qb9oGF\0Eheads834…………headdatanext↑p↑q。