《2021年内蒙古自治区通辽市全国计算机等级考试C语言程序设计测试卷(含答案).docx》由会员分享,可在线阅读,更多相关《2021年内蒙古自治区通辽市全国计算机等级考试C语言程序设计测试卷(含答案).docx(43页珍藏版)》请在第壹文秘上搜索。
1、2021年内蒙古自治区通辽市全国计算机等级考试C语言程序设计测试卷(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1 .下列程序的运行结果是O#includelongfunc(intx)longp;if(x=0Ilx=1)return(l);p=x*func(x-l);return(p);)main()printf(%dn,func(4);2 .以下程序的输出结果是【#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%dN,*p,*q)3 .有
2、以下程序intf(intn)if(n=l)return1;elsereturnf(n-l)+l;main()inti,j=0;for(i=l;i3;i+)j+=f(i);printf(,%dn,j);)程序运行后的输出结果是O4 .有以下程序,其功能是:以二进制“写”方式打开文件dl.dat,写入1100这100个整数后关闭文件。再以二进制“读”方式打开文件dl.dat,将这100个整数读入到另一个数组b中,并打印输出。请填空。#includemain()FILE*fp;inti,a100,b100;fp=fopen(dl.dat,nwb);for(i=0;i100;i+)ai=i+l;fwr
3、ite(a,sizeof(int),1OO,fp);fclose(fp);fp=fopen(dl.dat,);fread(b,sizeof(int),100,fp);fclose(fp);for(i=0;ic,a+cb,b+ca。请填空。main()floata,b,c;scanf(%f%f%,&a,&b,&C);if()printf(lYESn,);*axb、C能构成三角形*/elseprintf(NOn,)*axb、C不能构成三角形*/)6 .函数fun的功能是计算xnodoublefun(doublex,intn)inti;doubley=l;fbr(i=l;i=n;i+)y=y*x;r
4、eturny;)主函数中已正确定义m、a、b变量并赋值,并调用fun函数计算m=a4+b4-(ab)3o实现这一计算的函数调用语句为【】。7 .以下程序的功能是计算:s=l+12+123+1234+123450请填空。#includemain()intt=O.s=0,i:fbr(i=l;ib)t=a;b=t;)printf(,%5.2f,%5.2n,a,b);)9 .函数Pi的功能是根据以下公式近似求得的:pi*pi6=l+l(2*2)+l(3*3)+.+l(n*n)请在下面的函数中填空,完成求Pi的功能。#includedoublepi(longn)doubles=0.0,longi;for
5、(i=l;i=n;i+)s=s+oretum(sqrt(6*s);)10.mystrlen函数的功能是计算Str所指字符串的长度,并作为函数值返回。请填空。intmystden(char*str)i11ti;fo,(i=0;!=,0,;i+);return(i);二、单选题(10题)11 .需求分析的主要任务是()。A.确定软件系统的功能B.确定软件开发方法C.确定软件开发工具D.确定软件开发入员12 .以下关于C语言的叙述中正确的是()。A.C语言中的注释不可以夹在变量名或关键字的中间B.C语言中的变量可以在使用之前的任何位置进行定义C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须
6、一致D.C语言的数值常量中夹带空格不影响常量值的正确表示13 .以下叙述中正确的是()。A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序存储结构C.循环队列中的队尾指针一定大于队头指针D.循环队列中的队尾指针一定小于队头指针14.在n个结点的顺序表中,算法的时间复杂度是O(I)的操作是()。A.访问第i个结点(l=i=n)和求第i个结点的直接前驱(2=i=n)B.在第i个结点之后插入一个新结点(l=iv=n)C.删除第i个结点(l=i=n)D.将n个结点从小到大排序15 .关于排序算法的以下说法,错误的是()A.归并排序的平均时间复杂度O(Mogn),最坏时间复杂度O(M2)B
7、.堆排序平均时间复杂度O(Mogn),最坏时间复杂度O(nlogn)C.冒泡排序平均时间复杂度0(22),最坏时间复杂度0(n2)D.快速排序的平均时间复杂度O(Mogn),最坏时间复杂度0(n2)16 .(34)已知Chal*s,下面正确的语句是(A)S=oABCDEFm;B)*s=ABCDEFm;C)*s=ABCDEF;D)s=,A,;17 .对序线性表23,29,34,55,60,70,78用二分法查找值为60的元素时,需要比较次数为()A.lB.2C.3D.418 .有以下程序:#includetypedefstructintnum;charname10;intscore;PER;vo
8、idfun(PERx)i11tt;if(xO.scorex1.score)t=xO.score;x0.score=xl.score;xl.score=t;)main()PERs2=1001,zhang,621,1002,“Wang”,585;inti;fun(s);for(i=0;i2;i+)printf(t%d,%s,%d,si.num,si.name,si.score);程序的运行结果是OOA. 1001,zhang,585,1002,wang,621,B. 1001,zhang,621,1002,wang,585,C.l002,wang,585,1001,zhang,621,D.l002
9、,wang,621,1001,zhang,585,19.某二叉树结点的中序序列为A、B、C、D、E、FsGj后序序列为B、D、C、A、F、G、E,该二叉树对应的层次遍历序列为()A.E、G、FsA、CsD、BB.E、A、CsB、DxGsFC.ExA、G、C、FsB、DD.EsG、A、C、D、F、B20 .二维数组A的元素都是6个字符组成的串,行下标i的范围从0到8,列下标j的范圈从1到10,则存放A至少需要()个字节。A.90B.180C.240D.270三、程序设计题(10题)21 .请编写函数Pn)C(),其功能是:将Str所指字符串中除了下标为奇数、同时ASCn值为偶数的字符外,其余的全
10、部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若StI所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCH码值为奇数,因此应当删除;其中字符B的ASCn码值为偶数,但在数组中的下标为偶数,因此也应当删除;而字符2的ASCn码值为偶数,所在数组中的下标为奇数,因此不应当删除。依此类推,最后t所指的数组中的内容应是d24。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数ProC()的花括号中填入所编写的若干语句。试题程序:tncldc*mcldr9includemcludevoidprocipnnt(aproc(r.hrt(EUhHt22
11、 .编写函数proc,它的功能是:计算和输出下列级数的和。S=I/(12)+1/(23)+.+1/(n(n+l)例如,当n=20时,函数值为0.952381。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:sndudt*ttfIndUdeSndudNd)LhCkMIblprodinfn)vodmatn()QViUreiLCLS*)1PrmMLn*proc(0)彳23 .编写函数fun()1其功能是:求出11000中能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些
12、数的个数。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:Sinclude,mcludcidfuninamtwoidmain()tntal00.ky*tcm(unfor(*Ok(kDMIO-0)(pntf(*H”*卜Ipff(f个flleUeprwM(aSSdaCk)pnntf24 .使用vc+2010打开文件夹下PrOgl中的解决方案。此解决方案的项目中包含一个源程序文件PrOgI.c在此程序中,请编写函数fm(),其功能是在一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回该值。函数形参
13、a指向存放得分的数组,形参n中存放得分个数(n2)例如,若输入9.98.57.68.59.39.58.97.88.68.4共10个得分,则输出结果为8.687500。注意:部分源程序存放在文件prog1.c,请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:1 1include2 voidNONOO;3 doublefun(doublea,intn)IBI56 7 mainO8 doubleblrr;inti;9 Printf(输入10个分数放入b数组中:10 for(i三0;i10;i+)Ilscanf(n%lf,bi);Bprintf(”榆入的10个分数是:;13 for(i三0;i10