2021年陕西省榆林市全国计算机等级考试C语言程序设计真题(含答案).docx

上传人:太** 文档编号:95177232 上传时间:2023-08-19 格式:DOCX 页数:39 大小:72.93KB
返回 下载 相关 举报
2021年陕西省榆林市全国计算机等级考试C语言程序设计真题(含答案).docx_第1页
第1页 / 共39页
2021年陕西省榆林市全国计算机等级考试C语言程序设计真题(含答案).docx_第2页
第2页 / 共39页
点击查看更多>>
资源描述

《2021年陕西省榆林市全国计算机等级考试C语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《2021年陕西省榆林市全国计算机等级考试C语言程序设计真题(含答案).docx(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2021年陕西省榆林市全国计算机等级考试 C语言程序设计真题(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1 .若先后输入county、side,以下程序的运行结果为【】。main() char s 1 40, s220 ; int i=0, j=0 ;scanf(%s, si);scanf(%s, s2);while(s li!=0) i+ ;while(s2j!=0) sli+=s2j+;sli=0;printf(n%s, si);)2 .已知字符A的ASCII码为65,以下程序运行后的输出结果是【】。#include main() char a,b;a=A+5-3; b=a+

2、6-2;printf(n% d% cnH, a, b);3 .数据库三级模式体系结构的划分,有利于保持数据库的【】。文件progl.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include 2,void NONO ();int fun (char s) (.main ()8 char *s = ,f2def35adh25 3kjsdf鳖 7/kj8655xM;printf (1% sn”,s);9k printf (% dnM/fun (s);O NONO ();12 )13:void NONO ()14/本函数用于打

3、开文件、输入数据、调用函数、输出数据及关闭文件0 */ 酒 FILE fp, wf ;char s256;嘉 fp = fopen;wf = fopen(out.dat,w);yK for (i -0 ; i 10 ; i+) fgets (s, 255, fp);22fprintf(wffM%dnr fun (s); )241 fclose (fp);Sb fclose(wf);fl 26 .使用VC+2010打开考生文件夹下progl中的解决方案。此解决方 案的项目中包含一个源程序文件progl.c。在此程序中,请编写一个函 数fun(),该函数的功能是将大于整数m且紧靠m的k个素数存入所

4、 指的数组中。例如,若输入17、5,则应输出19、23、29、31、37。注34567891011121314151617181920意:部分源程序在文件progl.c中。请勿改动主函数main。和其他函数中 的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题 程序:include include #include void fun (int m, int k, int xx) ()void main () ( FILE wf; .int m,n,zz1000;system(CLSW);printf (nPlease enter two integers :M);scanf(M

5、%d%dMr &m,&n);fun (m, n, zz);for (m =0 ;m n;m +4 )printf (f,%dprintf(Mn ”);/*率* / wf - fopen(out.datMrnwM);fun (17,5,zz);for (m =0;m 5;m + ) ,fprintf (wf rH%d zzm);fclose(wf);/年,*率*京察* / .21-222324空2627 .请编写函数。fun能是:判断形参n中的正整数是几位数(输入数 据的位数不超过4位),并将结果通过函数值返回。例如:若输入的数 据为123,则输出结果为:输入的数字是3位。注意:部分源程序存在数

6、fun的花括号中填入所缩写的若干语句。试题程finclude void NONO (); int fun (int n) (I main () int n, place ; doprintf请输入一个4位以内的正整数:,); scanfId”, 4n);)while (n9999); place = fun(n);printf ( 希入的数字是td 位place ); NONO();)void NONO ()”本函数用于打开文件,输入数据.调用函数,输出数树,关闭文件.,/ FILE fp, wf ; int i, n, place ;fp fopen(wc: test in.dat,r);w

7、f fopen (*c: test Vut .datH,;for ( 1 -0; i 10; i -H-)(fscanf (fp/ 0. 4n);place = fun (n);fprintf(wf#place);fclose (fp); fclose (wf);序:)28 .编写函数fun,其功能是:将s所指字符串中除了下标为奇数,同时ASCH码值也为奇数自q字符之外。其余所有字符全部删除,串中剩余字符所形成的一个新串放在所指的数 组中。例如,若s所指字符串的内容为“ABCDEFG12345”,其中字符A的ASCII 码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值

8、为奇数,所在数组 中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指数组中的内容应为135 0注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括 号中填入你编写的若干语句。试题程序:# nclude#i ncludev“id fun(char*s,char t D()main()(char s(100,t100;printf(nnPIease enter string s:rt);printf(nn11ie result i3:%snt);I某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩 已在主函数中给出。请编写proc ()函

9、数,它的功能是:求出该学生的 平均分并放在记录的ave成员中。请自己定义正确的形参。例如,若 学生的成绩是 65 . 5, 75, 88, 90, 90 . 5, 66, 64 , 5, 89 . 5,则他的 平均分应当是78 . 625。注意:部分源程序给出如下。请勿改动main0函数和其他函数中的任何内容,仅在函数proc ()的花括号中填入 所编写的若干语句。试题程序:g xnclude V.ujg. b * defiitr M 8 lypedef wtructchar mitn 10, double ! M double SWY4STkiXivoid proc STREC p) roi

10、d maiaC (STKEU I GAOOS ,5$.7S.MO9O.5 “.S4SN.5h int ii proc(& au) *Tlbe %. studefit dhia八i9ttt Mmi 由学号 for(i,。,YMi,) pri.W%,/由各科直嫌 prim” iuire- 乂 7. 3l. Mu. ave) t /由单均分请编写函数proc (),它的功能是计算下列级数和,和值由函数值返回。 sum=l-x+x2 / 2 !-x3 / 3 1+.+ (-l*x) n / n!例如,当 n=23, x=0 .3 时, 函数值为。.740818。注意:部分源程序给出如下。请勿改动mai

11、n () 函数和其他函数中的任何内容,仅在函数proc ()的花括号中填人所编 写的若干语句。试题程序:* include M inclMcir Vcomo hM iadwW 丹 include Vm411k h doubk peoc( dcxiblr mi )Bid mam()*013-) pnntf*Kf *pw0.3.23)|四、2程序修改题(10题)31.给定程序MODH . C中函数fun的功能是:求出以下分数序列的前 n项之和。和值通过函数值返回到main函数。2 3 5 8 13 211 2 3 5 8 13例如,若n = 5,则应输出:8 . 391667O请改正程序中的错误,

12、使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!2345678910111213141516include / found/void fun (int n) int a, b, c9 k; double s;s = 0.0; a 2; b w 1;for (k - 1; k - n; k+)( / found /s , s (Double)a / b; c a; a = a + b; b w c;) return s;main() (int n 5;printf (wnThe value of function is: %lfnMr fun (n);3

13、2.给定程序中函数fun的功能是:从低位开始取出长整型变量s中偶 数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低 位。例如,当s中的数为:7654321时,t中的数为:642。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题源程序#include / 7。1 7” 7,7,7 7,7,7 7,/不不不不不不不不不不不不小不小不不不不小个不不小小/void fun(long s, long t)long sl=10 ;s/=10 ;*t=s%10 ;/ /*4*while(s 0) s=s/100 ;*t=s%10*s

14、l+ *t ;sl=sl*10 ;) mein()(long s, t ;printf(nPlease enter s:);scanf(%ld, &s);fun(s, &t);printf(The result is : %ldn, t);)33 .下列给定程序中函数fun()的功能是:将长整型数中每一位上为偶数 的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如当s中的数为25846513时,t中的数为6482。请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include

15、void fun(long S, long *t) int d ;long sl=l, i=l ;*t=0 ;while(s/i 0)i=i*10 ;i=i/10 ;while(s 0) d=s/i/ *J* *J vl* kL* vt* *J kL* *J *1* k!。*1 vl* kL* si* k! *1 kJ k! k! k! kJ *J /不不不不不不不不不不不不不tciinrl不不不不不不不不不不不不不/if(d%2!=0)/ 1*1*1 *1*1*1/年下不不、不不不、不下不不tci inri不不不下不不不、不不不不(、/t=d*sl+t ;sl*=10 ;)S二S%i ;i=

16、i/10 ;) main()long S, t ;clrscr();printf(nnPlease enter S :n); scanf(n%ldn, &s);fun(S, &t);printf(nThe result is : %ldnn, t);34 .下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数 的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。 例如当s中的数为87653142例t中的数为753lo 请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:#include #inc

17、lude void fun (long s, long *t) int d ;long sl=l ;/kL*kT*14/kT*/不不不不不不不不不不不不不tciind不不不不不不不不不不不不、不/t=0 ;while(s 0) d=s%10 ;/k1*K.t 7,f*1sl/不不不不不不不不不不不不小tciind不不不不不不不不不不不不不不/if(d%2=0)*t=d*sl+*t ;sl*=10 ;)s/=10 ;4 .下列程序的输出结果是【】。#include main() char b=nHello you” ;b5 =0 ;printf(%sn, b);)5 .以下程序的输出结果是12.

18、00,请将空白处填写完整。main() int a=9,b=2;float x= ,y=l.l,z;z=a/2+b*x/y+1 *2;printf(u%52fnn,z);)6.由25人围坐成圆先从任意一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1、2、3.),凡报5的倍数者出圈,剩下者 继续报数,求出最后出圈者的编号。# include int a26, j, n, count ;for(j = 1 ; j =25; j + +)aj=j ;j = 1 ; count = 0 ; n =do if (a J! =0)main() long s, t;clrscr();print

19、f(nnPlease enter s :) ; scanf(n%ldn, &s);fun(s, &t);printf(The result is : %ldn, t); )35.给定程序MODH . C中函数fun的功能是:根据整型形参m,计算如下公式的值。,1 1 1 1 y = 1 + + + +2.2 33 44mm例如,若m中的值为:5,则应输出:1 . 46361 lo请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!2345678910111213tinclude double fun (int m) double y -

20、1.0 ;int i;for(i - 2 ; i m ; i+) / found / y 1 / (i * i);return(y);)main () int n 5 ; printf(wnThe result is %lfnwf fun (n);234567891011121314151617181920212236.给定程序MODU . C中函数fun的功能是:首先将大写字母转换为 对应小写字母;若小写字母为au,则将其转换为其后的第5个字母; 若小写字母为vz,使其值减21。转换后的小写字母作为函数值返回。 例如,若形参是字母A,则转换为小写字母f若形参是字母W,则转换 为小写字母b。请

21、改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!include tinclude char fun(char c) if(o-1 “ c1 a &g /found*c-c-5;else if(c*v* z9) c,c-21; return c;main () char clrc2; printf(wnEnter a letter(A-Z): ;cl-getchar();if(isupper(cl) (c2-fun(cl);printf (wnnThe letter f%c, change tocl,c2);else pri

22、ntf(RnEnter (A-Z)!nn); )37.下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前叫mglO)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include #include #include #include #define N 10typedef struct sschar num10;int s; STU;STU *funSTU a, int m) STU bN ,*t;

23、int i,j,k;/ 1 /不不不不不不不个不不不不小ci个个不不不不不个不不个个个个/*t=calloc (m, slzeof (STU);for(i=0;i N;i+) bi=ai;for(k=0; k m; k+) for (i=j=0;i N;i+)/*1 *1* kL*J/不不不不不不不不不不不不个Tc inc不个不不不不不个不个个个个个/tk.num=b j.num;tk.s=b0 s;bj.S=O;)return t;)outresult(STU a,FILE *pf) int i;for (i=0; i 10) printf(nlnGive the number of the

24、 students who have better score:); scanf(n%d %m);pOrder=fun (a,m);printf(”* THE RESULT*kn); printf(nThe top :nn);for (i=0; i m; i+)printf(n%s %dnn,pOrderi.num, pOrder i. s);free (pOrder);38 .下列给定程序中,函数fun()的功能是:求k!(k13),所有阶乘的值作为函数值返回。例如:若k=10,则应输出3628800。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不

25、得更改程序的结构。试题程序:#include #include long fun(int k)/7,7,7,。17,7,7,7,7,7,*17 /个不小不不不不小不不不小小tciind不不不不不小不不不不小不不不/ifk0 return (k* fun (k-1);/ kL* kJ 1* kL* kA* kL*。*1 kJ kJ* si kL*kL* /不不不不不不不不不不不不不tminrl不不不不不不不不不不不不不不/else if (k=0)return 1;)main ()int k=10;clrscr ();print, (u%d!=%ldn t k, fun (k);)39 .下列给

26、定的程序中,fun()函数的功能是:将p所指字符串中每个单 词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。 例如,若输入:I am a student to take the examination则应输出:I aM A studenT tO take thE examinatioN请改正程序中的错误,使它能得出正确的结果。注童:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include void fun(char *p) (int k=0 ;for (; *p ; p+) if(k)/7,7,7,7,7,。1

27、7,7,7,7,7,7,*17 /个不小不不不不小不不不小小tciind不不不不不小不不不不小不不不/if (P=n) k=0 ;/7,7,7,7,7,。1 kJ k! 7,7,7,7,7,7,*1 k!/不不小不不不不小不不不小小tm n不不不不不不不不不不小不不不/*p=toupper(*(p-l);else k=l; main() char chrstr64; int d;clrscr();printf(nnPlease enter an English sentence within 63 letters :);gets(chrstr);d=strlen(chrstr);chrstrd

28、=f;chrstrd+l=O ;printf(nnBofore changing : n %sn, chrstr);fun(chrstr);printf(nnAfter changing : n%sn, chrstr);40 .下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。例如:若high的值为100,则函数的返回值为1060o请改正程序中的错误,使它能得到正确结果。注意不要改动main函数,不得增行或删行,也不得更改程序的结构。试题源程序#include #include #include int fun(int high)(in

29、t sum=0, n=0, j, yes;while(high =2) yes=l;for(j=2 ; j k9k*1 *1 k! kk1 *1 k| k11 *.t *.t *11* k| 1 *1 k!k| *1 *1 k| k| k1 /rj* rj* rj*ryw丁/*】f / j *T*rj*rj*/ifhigh%j=O yes=0; break;/1si*/rr* rj.】IrT* rr/if(yes=0) sum+=high; n+;) high-;return sum; )main() (clrscr();printf(n%dn fun(lOO); )五、程序改错题(2题)41

30、 .下列给定程序中函数fun ()的功能是:用递归算法计算斐波拉契数列 中第n项的值。从第1项起,斐波拉契数列为:1, 1, 2, 3, 5, 8, 13, 21,.例如,若给n输入7,则该项的斐波拉契数值为13。请改正程 序中的错误,使它能得出正确结果。注意:不要改动main ()函数, 不得增行或删行,也不得更改程序的结构!试题程序: ihcludr icax Ot rviurn 0 a / c”c 1 icase 21 return 1 rvtum (fun(g I) A fun)imd rawin () long fibiml tii imntf (elnput fijh fl) |

31、pnntfC*n - %dnw (ibA(un(n)t priniftafib . Mdnnefib) 42 .下列给定程序中,函数proc()的功能是:从3个红球,5个白球,6 个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑 球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数 应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表 黑球数。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结 构。试题程序:S mcludr V.idid bmi proet intO|prifitK fiTh.inn )

32、 / (Mind for id fVMimC)mt ucnimie proct |pnntfC *sum=- %4dnn六、操作题(2题)43 .请编写一个函数int fun (int *s, int t, int *k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:234 345 753 134 436 458 100 321 135 760则输出结果为6, 100。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include #include int fun(int

33、*s, int t, int *k)() main()(int a10=234, 345, 753, 134, 436, 458,100, 321,135, 760), k ;clrscr();fun(a, 10, &k); printf(%dr %dn, k, ak); n + + ;if (n% 5 = =0);if (count = =24)printf(%dn, j);count + + ;)j + + ;if(j25)j = l ;)while();7 .以下程序运行后的输出结果是【】。main() char m;m=B+32; printf(n%cnn,m);8 .对软件是否能达到

34、用户所期望的要求的测试称为【】。9 .以下程序运行后的输出结果是omain ()(int x=10,y=20, t=0if(x=y) t=x;x=y;y=t;printf(n%d,%d /n:x,y);10 .下列程序的输出结果是 44.某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的 成绩已在主函数中给出。请编写fun()函数,它的功能是:求出该学生的 平均分放在记录的ave成员中。请自己定义正确的形参。例如,若学生的成绩是 85.5, 76, 69.5, 85, 91, 72, 64.5, 87.5,则他的平均分应当是78.875。注意:部分源程序给出如下。请勿改动主函数main

35、和其他函数中的任何内容,仅在函数fun的花括 号中填入所编写的若干语句。试题程序:#include #define N 8 typedef struct char num 10;double sN;double ave ;STREC ; void fun() () main() (STREC s=GA005, 85.5, 76, 69.5, 85, 91,72, 64.5, 87.5);int i;fun (&s);printf(The %ss student data : n, s.num)/ /*输出学号*/for(i=0 ; i N; i+)printf(%4.1fn, s.si);/*

36、输出各科成绩*/printf(nnave=%7.3fnn, s.ave);/*输出平均分*/参考答案1 .countryside1 .67G67G 解析:由于5732,所以 a=A+5-3=C,按%才格式 输出VCV的 ASCII 码为 67 ;同理的,6-2=4, b=a+V6-2V=C+4=C, 按:格式输出为G3 .数据独立性数据独立性 解析 数据库的三级模式体系结构把数据的组 织管理工作进行了划分,把数据的具体组织留给DBMS管理,使用户能 逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式 与存储方式,保证了数据的独立性。4 .HelloHello解析:语句b5=0 ;相

37、当于语句b5=0;且WX为字符串 结束标志,输出时遇到。就停止输出。解析:a/2=9/2=4, 1/2=0,于是根据输出结果就有下列等式: z=4+2*x/1.1=12.0,化简后,为 x/l.l=4, x=4.4o6 .main() 0 aj= 0 count 257 .bb解析:在ASCII码表中,至少有3个值考生得记住:,0,的ASCII 码为48rA,的ASCII码为65 ; 3的ASCII码为970因为记住这3个 后,其他字母和数字的ASCII码就可以很容易推出来了。本题中,“B” 的ASCII码为4+1=66 ,所以,字符类型m的ASCII为 66+32=98=97+1=匕+1,所

38、以最后输出的结果为字符b。8 .有效性测试有效性测试9.20020, 0解析:本题考查的知识点是if语句的基本概念。在主函数中 首先定义了三个整型变量x、y, t,并分别给它们赋初值为10, 20, 0, 接着执行if语句,在if后面括号内的条件表达式中,条件“x=y即 10=20”不成立,则不执行其后的语句“t=x”,然后退出if语句,顺序执 行语句X=y ;y=t ;o执行完这两条语句后x的值变为20, y的值变为0, 所以最后输出x, y的值为20和0。10.11解析:if else语句的功能:若表达式的值为真,执行语句1,并跳 过其他语句,执行if else语句的下一条语句,若表达式的

39、值为假,跳过 语句1,执行语句2,依次往下判断。题中,x = 3,y = 2,第一个if语句 的控制条件xy就不满足,又没有与之配对的else语句,所以直接执 行printf语句,在整个过程中变量z的值都没发生变化。11 .D本题考查对软件生命周期的理解,软件生命周期整体上可分为定义 阶段、开发阶段和维护阶段。其中定义阶段包括可行性研究与计划制订 和需求分析;开发阶段包括概要设计、详细设计、开发和测试;维护阶 段是一个单独阶段,不包含在开发阶段内,它是所花费用最多的一个阶 段。12 .c解析:在c语言中,字符串以(r作为结束符,因此数组x的长度 为7+1=8,而数组y的长度等于7。13.B14

40、.B解析 数据库管理系统是数据库系统的核心,是负责数据库的建立、 使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据 库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行, 最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据 库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完 整性和安全性。15 .A将函数内的局部变量说明为static存储类,第1次调用该函数时才 对其初始化,后续调用时使用上一次调用结束后的值;函数体内的局部 变量无论是否声明为statxlfic,外部编译单位都不能引用,选项A错 误,其他选项正确。本题答案为A选项。16 .A需求分析是软件开发之前必须要做的准备工作之一。需求是指用户 对目标软件系统在功能、行为、性能、设计约束等方面的期望。故需求 分析的主要任务是确定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁