2023年四川省泸州市全国计算机等级考试C语言程序设计真题(含答案).docx
《2023年四川省泸州市全国计算机等级考试C语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《2023年四川省泸州市全国计算机等级考试C语言程序设计真题(含答案).docx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年四川省泸州市全国计算机等级考试 C语言程序设计真题(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1 .算法复杂度主要包括时间复杂度和【】复杂度。2 .若有说明 char sl=That girl, s2=is beautiful;则使用函数 strcmp(s 1 ,s2)后,结果是。3 .若fp已正确定义为一个文件指针,dl.dd为二进制文件,请填空, 以便为“读”而打开此文件:fp=fopen() ;o4 .汉字系统中,字库中的汉字是以【】码存在。5 .以下程序的输出结果是【】。#define MCRA(m) 2*m#define MCRB(n,m) 2*MCRA(n)
2、+m main() (int i=2, j=3;printf(n %dn MCRB (j ,MCRA(i); )6 .以下程序运行后的输出结果是omain()=dt fine N 4 s mcludr uii ptocC Ei _ N,) mid fMm( )int an*:,N: * “37.ll553.2.4Z. - B2.9.81 -3S3.“,i63-9)i phntf( wruh* %dn*proeArT)s25.使用VC +2010打开考生文件夹下progl中的解决方案。此解决方 案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数其功 能是移动一维数组中的内容,若数
3、组中有n个整数,要求把下标为。P(含P,P小于等于n- 1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为1、2、3、4、5、6、7、8、9、10;P 的值为3。移动后,一维数组中的内容应为5、6、7、8、9、10、1、2、 3、 4o注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的内容,仅在函数fun()的花括号 中填入你编写的若干语句。试题程序:#include #define N 80void fun (int *w, int p, int n) () main () int aN= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);i
4、nt i,p, n=15;printf (The original data :n);for(i=0; iprintf C%3d9ai);printf (nnEnter pscanf (d”, &p);fun(a,p,n);printf (nThe data after moving:n);for(i=0; iprintf C%3d5ai);printf (nn);26 .假定输入的字符串中只包含字母和*号。请编写函数proc (),它的功能 是:使字符串中前部的*号不得多余m个;若多余m个,则删除多余的 *号;若少于或等于m个,则什么也不做,字符串中间和尾部的*号不删 除。例如,字符串中的内
5、容为*A*BC*DEF*G*,若m的值为2, 删除后,字符串中的内容则应当是*A*BC*DEF*G* ;若m的值为 4,则字符串中的内容仍为*A*BC*DEF*G*n的值在主函数中输 入。在编写函数时,不得使用c语言提供的字符串函数。注意:部分源 程序给出如下。请勿改动main ()函数和其他函数中的任何内容,仅在函数proc ()的花括号中填入所编写的若干语句。试题程序:indode V tdiou & mclude void procm( )HwirmipciAtfC *Enier MnrMtinM)igrt*(iitr)ipnnd(*Enter m( *)tcatfCHd*.6 m)i
6、proc(prinlfC - Th ifui. After delrti :d* ) s tMitw( *tr) i27 .学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构 体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所 指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低 的学生人数:注意:部分源程序在文件PR0G1 . C中。请勿改动主函数main和其他函数中的任何内容,仅在函数flm的花括 号中填入你编写的若干语句。的indude iMefine N 16typodef atractchar huid 10 :int ;i STREC;int f
7、un( STREC at STREC b ) main()(STREC s(N芸 H-GA05- f85| J-CA03Ht76| ,|”GA0T ,69| J-GA04f-GAOr.911 JHCA07-t72|.rGA0864| J-CA06w ,87| .I GA015-,85|tr GA013-t91|J CA012 t64|t| CA014 t911, I-CA011-t91|.| wGA017.64| JwCA01864| f | wCA01672| | ; STREC hN; im tn;FILE out ; n = fun( s.h );printf( *De %d lowes
8、t score nHtn);fbr(i s0;i n; i )printf(%B %4dn th i. nuin.hfi. );printf (-Vn);out = fopen(out da/ Jw* );fprintf(outt %dnf,fn);fbr(i *0;i n; i + )fprintf(out9 *%4dnwthi. );fcloee(out);128.使用VC+2010打开考生文件夹下progl中的解决方案。此解决方 案的项目中包含一个源程序文件progl.c。在此程序中,已知学生的记 录由学号和学习成绩构成,N名学生的记录已存入a结构体数组中。 请编写函数fun(),该函数
9、的功能是找出成绩最高的学生记录,通过形 参将其返回主函数(规定只有一个最高分)。已给出函数的首部,请 完成该函数。注意:部分源程序给出如下。请勿改动主函数main。和其他函数中的任何内容,仅在函数fun()的花 括号中填入你编写的若干语句。试题程序:#include #include #include #include #define N 10typedef struct ss / *定义结构体*/char num10;int s; STU;fun (STU a口, STU *s)()void main ()(STU aN=“A01”,81, “A02”,89,“A03”,66, “A04”,
10、87,“A05”,7, “A06”,90 , “A0779,“A08”,61,广A09180, “A 10”,71 ,m;int i;system(“CLS”);printf (“*The original data*);for (i=0; i N; i+)printf (uNo=%s Mark=%dn, ai.num,ai-s); fun (a, &m);printf (*THE RESULT*n);printf (The top:%s5 %dn m.num,m.s);)29.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程 的成绩已在主函数中给出,请编写函数,其功能是:求出该学
11、生的平均 分,并放入记录的ave成员中。例如,学生的成绩是:85 .5, 76, 69 .5, 85, 91, 72, 64 .5, 87 .5,则他的平均分应为78 . 875。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。试题程序:#include#define N 8typedef struct(char num 10;double sN;double ave ;STREC ;void fun(STREC*a)()void mainSTRECs=GA005, 85 . 5, 76, 69 . 5, 85, 91, 72,
12、64.5, 87.5;int i ;fun(&s);printf(nThe%ss student data : nn, s.num);for(i=0 ; iN ; i+)printf(%4 . Ifkn, s . si);printf(Hnknave=%7 . 3fknn, s.aVe);printf(nnn);30.请编写一个函数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注意:部分源程序给出如下。请勿改动
13、main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。试题程序:#include#include#include#define N 100void 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+l)%20=0) / /每行输出20个数 printf(n%4d% arrk);printf(nnn);)elseprintf(M%4d arrk);printf(Hnn);四、2.程序修改题(10题)31.给
14、定程序MODH . C中函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!12 345 6789;linclude ! long fun(int xr int y,long *p); int i;j long tl;I /*found*/i for(i-1; iy; i+)j!*p-t;I /found/101112131415t-t/1000;return t;main () long tf r; int xr y;
15、printf (Mnlnput x and y:H);161718scanf (w%ld%ldn/&y);tfun(xryr &r);printf(Mnnx%dr y-%dr r%ld, last%ldnnwrxr yr rr t);32.下列给定程序中,函数fun()的功能是/计算函数F(x, y ,z)=(x+y)/(x- y)+(z+y)/(z-y)的值。其中x和y不相等,z和y不等。例如,当x的值为9, y的值为11, 2的值为15时,函数值为-3.50。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#includ
16、e #include / 7,7 7,7,7,7 7 7 7 7 7,7, 1 7” 7” 7/ 7,7 7 7 7,7 7 7, 7,7,7,7 7 7 / /不小小个小个不小不小个不不不tci nd小小个小不小不不公不不不不不不不不不/#define FU(m, n) (m/n)float fun(float a, float b, float c) float value;value=FU(a+ b, a-b)+FU(c+ b, c-b);/vl/不可不不不不不不不不不可不ci me不不不不不不不不不不不不不不不不不不/return( Value);main() float x, y,
17、z, sum;printf (Input x y z: );scanf(n%f%f%f&x, &y, &z);printf(nx=%f, y=%f, z=%fn ”,x, y, z);if (x二二y | | y=z) printf (Data error! n n);exit (0); )sum=fun (x, y, z);printf(nThe result is:%5. 2fn tsum);33.给定程序MODII . C中fun函数的功能是:根据整型形参m,计算 如下公式的值。例如,若主函数中输入5,则应输出-0.283333。请改正函数fun中的错误或在横线处填上适当的内容并把横线删
18、除,使 它能计算出正确的结果。3 456 7891011121314151617181 tinclude 2 i double fun(int m)double t = 1.0;int 1;for(i * 2; i * m; i+)/foundt 1.0-1 /i;/*found*/ main ()(int m ;printf(MnPlease enter 1 integer numbers:nM);scanf(H%dnr &m);printf (MnnThe result is fun(m);34.给定程序中函数fun的功能是:将一个由八进制数字字符组成的字 符串转换为与其值相等的十进制整数
19、。规定输入的字符串最多只能包含 5位八进制数字字符。例如,若输入:77777,则输出将是:32767。请改正程序中的错误,使它能得到正确结果。注意不要改动main函数,不得增行或删行,也不得更改程序的结构。试题源程序#include #include #include intp7= 11,13,14,15,16,17,18;int i=0, j=0 ;while(i 5) printf(nError: String too longer!nnn); exit(O);for(i=0; si; i+)if(si 7) printf(HError: %c not is ocatal digits!n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 四川省 泸州市 全国 计算机等级考试 语言程序设计 答案
限制150内