2023年山东省泰安市全国计算机等级考试C语言程序设计模拟考试(含答案).docx
《2023年山东省泰安市全国计算机等级考试C语言程序设计模拟考试(含答案).docx》由会员分享,可在线阅读,更多相关《2023年山东省泰安市全国计算机等级考试C语言程序设计模拟考试(含答案).docx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年山东省泰安市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1.有以下程序:# include main() int a口=1,234,5,6,7,8,9,10,2,12, *p=a+5, *q=NULL;*q=*(p+5);printf(d%drT,*p,*q);程序运行后的输出结果是【】。2 .设丫是int型变量,请写出判断Y为奇数的关系表达式【】。3 .对长度为10的线性表进行冒泡排序,对坏情况下需要比较的次数为4 .下程序的输出是【】。main()(char strl=nHow do you do*pl=strl;strcpy
2、(strl+strlen(strl)/2/es shen);printf(u%snpl);)5 .汉字系统中,字库中的汉字是以【】码存在。26.请编写一个函数proc,它的功能是:求出1m(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为70,则程序输出:7 11 14 21 22 28 33 35 42 44 49 55 56 63 66 70注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。试题程序:#include#include#include#define N 100void
3、 proc(int m, int*a, int*n)()void main(int arrN, n, k;system(nCLSn);proc(70, arr, &n);for(k=0; kn; k+)if(k+1) % 20=0) / / 每行输出 20 个数 printf(%4d, arrk);printf(nnn);else printf(%4d, arrk);printf(n); )27.使用VC+2010打开考生文件夹析下progl中的解决方案。此解决 方案的项目中包含一个源程序文件progl.c。在此程序中,编写程序, 实现矩阵(3行、3歹U)的转置(即行列互换)。例如,若输入下面
4、的矩阵:100 200 300400 500 600700 800 900则程序输出:100 400 700200 500 800300 600 900注意:部分源程序在文件progl.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花 括号中填入你编写的若干语句。试题程序:11 #include 2 #include 3 #include 4 void fun (int array3 3)5678 void main ()9(10 FILE * wf;11 int i, j;12 int array 3 3 = 100,200,300, 400,500,600,
5、700,800,900;13 system(nCLSn);14 for (i=0;i3;i+)15for(j=0;j3; j+)16 printf (n% 7d n,arrayij);17printf(nn n);18 )19 fun(array);20 printf (nConverted array: n n);21 for (i=0;i3;i+)22for(j=0;j3;j+)23 printf(%7d , arrayij);24 printf(!n n);25 )26 /*/27 wf = fopen(nout.datn/wn);28 for (i=0;i3;i+)29for(j=0;
6、j3;j+)30 fprintf (wf/% 7d n, arrayij);31 fprintf(wf,nnM);32 33 fclose(wf);34/* und*/35 28.使用VC+2010打开考生文件夹下progl中的解决方案。此解决方 案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数 fun(),它的功能是求出能整除x且不是偶数的整数,并将这些整数按从 小到大的顺序放在PP所指的数组中,总个数通过形参n返回。如x中 的值为30,则有4个数符合要求,它们是1、3、5、15。注意:部分源 程序在文件progl.c中。请勿改动主函数main()和其他函数中的任何内 容,
7、仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include |2 #include 3: #include h 4 void fun (int xF int ppi r int n) 骞6.8 void main ()9 ;适 FILE wf;漏 int xr aa 1000, nz i ;O system(WCLSM);jl printf (r,nPlease enter an integer number : n );14scant (t,%dn/ &x);翼fun (x, aa, &n);16| for (i =0 ; i n ; i+)17 printf (n%d ”
8、,aa i);IS;printf (Mn M);W /found */2G wf = fopen (out.datMrMwM);fun (30, aa, 6n);漆 for (i=0;itdKK hls include raid procir 10U|00) sprntfc*nf( * % b* *tr) 1 proc( wif ti pnniH -ftThe result utHn * t) t30 .假定输入的字符串中只包含字母和*号。请编写函数proc (),它的功能 是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如, 若字符串中的内容为*a*bc*def*g*,删除后,字
9、符串中的内容则 应当是a*bc*def*g*。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc ()的花括号中填入 所编写的若干语句。试题程序:3 rAcludcS Micludr Vconto. h) void procchar Mr)end fiMiinC)rhr wirttI Ji pntith Enter ge4a proc i pnntf( * The R(nn MIO . !1 1 ;四、2.程序修改题(10题)31 .下列给定的程序中,函数fun()的功能是:计算并输出k以内最大 的6个能被7或11整除的自然数之和。K的值由主函数传入,若
10、k的 值为500,则函数的值为2925。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:#include #include int fun(int k) int m=0, mc=0, j ;/kL*。1kL* *1/不不不不不不不不不不不不不tminri不不不不不不不不不不不不不/while(k =2)&(mc 6)/kL* vL*1 *1* vL vl* vL* kL*kL* /不不不不不不不不不不不不不tciinri不不不不不不不不不不不不不/ if(k%7=0)|(k%ll=0)m二k ;mc+ ; ) k-; ) r
11、eturn m ; ) main() clrscr();printf(%dn, fun(500); )32 .给定程序M0D11 . C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!include #define M 53456789/founder ,/int fun(int n, int xx) int i, j 9 sumO;printf(MnThe %d x %d matrix:nHrM, M);for(i - 0; i M; i+) for
12、(j 0; j M; j+)10111213141516 !)printf(w%f , xx(ij); printf(n);)for(1 - 0 ; i n ; i+)sum xxii*xxi(n-i-1; return(sum);181920 int aaM(4,3,2,1,0,6,7,8,9,0,(9,8,7,6,5),3,4,5,6,7;printf (wnThe sum of all elements on 2 diagnals is %d.fun(Mr aa);33.下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之和。请改
13、正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include int fun()int a3 3,sum; int ij;/ 7,7,7,7,7,7,7,。 1 7 7 7 7,7,7,7,7” 7, 7,/ /不小不不小不不不不小小小小tcii nd不小小不不不不不不不小不不不/sum=l;for (i=0;i 3;i+) for(j=0;j kJk!/不不不不不不不不不不不不不tci inri不不不不不不不不不不不不,、不/ scanf(%d,aij);for(i=0;i 3;i+) sum=sum+aii;p
14、rintf(n Sum=%dnn, sum);)main()(fun();34 .给定程序MOD11 . c中函数fun的功能是;由形参给定n个实数, 输出平均值,并统计在平均值以上(含平均值)的实数个数。例如,n=8 时,输入:193 .199, 195 .673, 195 .757, 196 .051, 196 .092, 196 . 596, 196 . 579, 196 . 763所得平均值为:195 . 838745,在平均值以上的实数个数应为:5请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!34568910111213
15、1415161718/*t* found return c;finclude int fun(double x(, int n)int jr c,0, double xa-0.0;for (j0; jn;xa , x(j J/n;printf(wave %fnw#xa);for (j-0; j xa)C+;main ()(double x( 100) - (193.199,195 673, 195.757,196.051,196,092,196596r 196.579r196.763);printf(w%dnHr fun (x, 8);35 . N个有序整数数列已放在一维数组中,给定下列程序中
16、,函数fun() 的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则 返回其下标值:反之,则返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和 high(low high,查找结束。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:6.以下程序的运行结果是【】。main() int a=2,b=7,c=5;switch(a 0)(case 1:switch (b 0) case l:printf(nn); break;case 2:pnntf(H!H); break;)case 0:swit
17、ch (c=5) case 0:pnntf(*); break;case l:printf(n#n); break;case 2:printf(n$n); break;)default: printf(H&H);)printf(unn);)7 . mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。int mystden(char *str) int i ;fo. (i=0;【】! =0 ; i+);return(i);8 .数据的【】结构在计算机存储空间中的存放形式称为数据的存储结 构或物理结构。#include #define N 10/ *J *1 k1k1
18、 J J *1=1 *1 J sf *1k! kk1 j /不个不不不不不不不不不不不ci me不不不不不不不不不不不不不不不不不不不不不/void fun(int a,int m) int low0,high=N-l,mid;while (low =high) mid=(low+high)/2; if(m vL*1 vl* L* vL* v* k1* vl* kL* vl* vl* * k* kL* *1* kL* k* k(*1* /不不不不不不不不不不不不不tciind不不不不不不不不不不不不不不不不不不不不不/else if(m =a mid)low=mid+l;else return
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 山东省 泰安市 全国 计算机等级考试 语言程序设计 模拟考试 答案
限制150内