《2021年辽宁省抚顺市全国计算机等级考试C语言程序设计预测试题(含答案).docx》由会员分享,可在线阅读,更多相关《2021年辽宁省抚顺市全国计算机等级考试C语言程序设计预测试题(含答案).docx(28页珍藏版)》请在优知文库上搜索。
1、2021年辽宁省抚顺市全国计算机等级考试C语言程序设计预测试题(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1 .若有下列定义和语句:char*sl=,12345,*s2=,1234;printf(%dn,strlen(strcpy(sl,s2);则输出结果为O2 .实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只属于一个学校,则实体集学校与实体集学生之间的联系属于【】的联系。3 .为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该使用命令【4 .有以下程序:intf(intn)if(n=l)retur1;els
2、ereturnf(-l)+l;)main()inti,j=0;for(i=l;i0)(case1:switch(b0)casel:printf();break;case2:pnntf(!);break;)case0:switch(c=5)caseO:pnntf(*);break;casel:printf(#);break;case2:printf($);break;)default:printf(&);)printf(,n);)6 .下列程序运行时输入1234567t则输出结果是0#includemain()inta=ltb;scanf(%2d%2d,&a,&b);printf(%d%dnta
3、,b);)7 .以下程序的输出结果是【】。#includevoidswap(int*a,int*b)int*t;t=a;a=b;b=t;)main()inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf(%d%dNt*p,*q)8 .某二叉树中度为2的结点有18个,则该二叉树中有】个叶子结点。9 .有以下程序:#includemain()charc;While(C=getChar()!=?)PUtChar(-c);)程序运行时,如果从键盘输入:Y?N?,则输出结果为【】。10 .测试的目的是暴露错误,评价程序的可靠性;而的目的是发现错误的位置并改正错误。二、单选题(1
4、0题)IL下列语句中,()是错误的。A.x=x+1;B.x=x+y;C,x+y=x;D.x=4;(12)以下叙述中正确的是()A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行12 C)C语言以接近英语国家的自然语齐和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点13 .有以下程序:ftincludemain()inti,j,m=l;for(i=l;i0;j-)if(i*j3)break;m*=i+j;printf(m=%dn”,m);)程序运行后的输出结果是()。A.m=6B.m=2C.m=4D.m=314 .数据结构若采用链式存储结构,要求内存中
5、可用存储单元的地址()。A必须是连续的B.部分地址必须是连续的C一定是不连续的D.连续不连续都可以15 .下面关于数据库系统中叙述正确的是()oA数据库系统减少了数据冗余B.数据库系统避免了一切冗余C数据库系统中数据的一致性是指数据类型的一致D.数据库系统比文件系统能管理更多的数据(36)以下说法正确的是()A)宏定义是C语句,要在行末加分号B)可以使用#undefine提前结束宏名的使用O在进行宏定义时,宏定义不能嵌套D)双引号中出现的宏名也要进行替换17.(7)设有如下关系表:C) TRS则下列操作正确的是()。A) T=RISB) T=RXSD) T=RUS18.下列字符数组初始化语句中
6、,不正确的是()。A.A.charc=,goodmorning,;B.charc20=goodmorning;C.charc=,a,b,c,1,d);D.charc=ffgoodmorning;19 .用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为()。A.第i行非0元素的个数之和B.第i列非0元素的个数之和C.第i行O元素的个数之和D.第i列O元素的个数之和20 .以下程序的输出结果是()main()staticchara10=Chinese);printf(%d,strlen(a);A.7B.2C.9D.10三、程序设计题(10题)21 .请编写一个函数,用来删除字符串中的
7、所有空格。例如,输入abcdefgh,则输出为abcdefgh0注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数ProC()的花括号中填入所编写的若干语句。试题程序:tmcl3rnmcludktludrVetkiokbMualtMirvoidprocdmabtrtn(*Inputrmtt)gsputnrr)prmtfn。例如:m=12,n=8时,运行结果为495.000000。注意:部分源程序在文件ProgLC中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1 iinclude2 floatfu
8、n(intmzintn)3 45 16 main()/*主函数/7 (voidNONO();8 printf(,P-%fn”,funQ2,8);9 NONO();io11 voidNONO()12 /本函数用于打开文件、输入数据、调用函数、输出数据及关闭文件*/13 FILE*fp,wf;14 intirm,n;15 floats;16 fp=fopen(win.daf,nrn);17 wf=fopen(nout.dat,w);18 for(i=0;i10;i+)19 fscanf(fprm%d,为d,&n);20 s=fun(m,n);21 fprintf(wfr,%fn,s);复23 fc
9、lose(fp);24 fclose(wf);25 )23 .规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:*ABCDEFGo注意:部分源程序在文件PRoGlC中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。Mincludeslvoidfun(char)main()ChArs81):voidNONO();Prin4(Enterastring:n);get(
10、);(un()trintf(Thesuingafterdeleted;n)puU(*);NONO():voidNONO()本语数用于打开文件,输入数据,调用函数,帕出数据,关闭文件。/FJLEin,out;i11ti;chars81;in三fopen(in.hl.r*);out=focn(out.dat.hw,t);for(i0ti);fun();fprintf(out.*%tn.)fcloe(in);IHOee(OUI);24 .使用VC+2010打开考生文件夹析下progl中的解决方案。此解决方案的项目中包含一个源程序文件ProgLc。在此程序中,编写程序,实现矩阵(3行、3列)的转置(即
11、行列互换)。例如,若输入下面的矩阵:100200300400500600700800900则程序输出:100400700200500800300600900注意:部分源程序在文件ProgLC中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:11 #include2 #include3 #include4 voidfun(intarray33)567 )8 voidmain()9 10 FILE*wf;11 inti,j;12 intarray33=100,200,300,400,500,600,700,800,900;13 SyS
12、teil(“CLS);14 for(i=0;i3;i+)15 for(j=0;j3;j+)16 printf(%7d,arrayij);17 printf(n);18 )19 fun(array);20 printf(,Convertedarray:n);21 for(i=0;i3;i+)22 for(j=0;j3;j+)23 printf(zz%7d”,arrayij);24 printf(z,n);25 )26 /*found*/27 wf=fopen(out.datn,w);28 for(i=0;i3;i+)29 for(j=0;j3;j+)30 fprintf(wf,7dn,arrayij);31 fprintf(wf,z*nz,);32 )33 fclose(wf);34 /*found*/35 )25 .使用VC+2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件PrOgLc。在此程序中,学生的记录由学号和成绩组成,N名学生的记录已放入主函数的结构体数组S中。请编写函数fun(),其功能是把指定分数范围内的学生记录存放在b所指的数组中,分数范围内的学生人数由函数值返回。如输入的分数是60、69,