2022年辽宁省铁岭市全国计算机等级考试C语言程序设计真题(含答案).docx

上传人:太** 文档编号:97971880 上传时间:2024-07-08 格式:DOCX 页数:38 大小:66.69KB
返回 下载 相关 举报
2022年辽宁省铁岭市全国计算机等级考试C语言程序设计真题(含答案).docx_第1页
第1页 / 共38页
2022年辽宁省铁岭市全国计算机等级考试C语言程序设计真题(含答案).docx_第2页
第2页 / 共38页
点击查看更多>>
资源描述

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

1、2022年辽宁省铁岭市全国计算机等级考试C语言程序设计真题(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1 .算法的复杂度主要包括时间复杂度和复杂度。2 .有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变 量b,则不能把结点b连接到结点a之后的语句是。struct node char data;struct node *next; a,b3 .是数据库设计的核心。4 .函数调用语句:“fgets(buf,n,中);”从中指向的文件中读入n个字符放到 buf字符数组中,函数返回值为 o5 .设y为int型变量,请写出描述“y是偶数”的表达式。6 .用以下程序计算1到10

2、0的整数的累加和。请填空。main()inti, sum=;26 .请编写fun函数,其功能是:计算并输出3m所有素数的平方根 之和。例如,若主函数从键盘给m输入50后,则输出为s= 68. 66579U请勿改动main函数与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:m的值要大于2但不大于100。部分源程序给出如下。试题程序:#include#includedouble fun(int m)()void main(int m;double s;FILE*out:printf(n n nlnput m: );scanf(%d, &m);s=fun(m);print

3、f( n ns= %f n n, s);ut=fopen(noutfile. datn, nwn);for(m=0; m10; m+)felose(out);27 .请编写一个函数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#defin

4、e N 100void proc(int m, int*a, int*n)()void main(int arrN, n, k;system(CLS);proc(70, arr, &n);for(k=0 ; kn; k+)if(k+l)%20=0) / / 每行输出 20 个数 printf(n%4d% arrk);printf(n);elseprintf(%4d, arrk);printf( n); )28 .请编一个函数fun(ohlr*str),该函数的功能是把字符串中的内容逆置。 例如,字符串中原有的字符串为asdf9,则调用该函数后,串中的内容为 9fdsa0请勿改动main函数和其

5、他函数中的任何内容,仅在函数proc的花括号 中填入所编写的若干语句。试题程序:#include#include#include#define N 100void fun(char * str) ()void main(char aN;FILE*out :printf(nEnter a string :);gets(a);printf(nThe origir al string is :);puts(a);fun(a):printf(nThe string after modified :);puts(a);strcpy(a, Welcome!);fun(a);ut=fopen(outfile

6、 . dat, w);fprintf(out, n%sn . a);fclose(out); )29 .规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是: 将字符串尾部的。号全部删除,前面和中间的*号不动。例如,字符中中的内容为 A BC DEF C 2*除后,字符串中的内容应当 是广 ABCDEFC在编写函数时.不利使用C语言提供的字符串函数。注意:部分源程序在文件PR0G1.C中。.请勿改动主函数main和犬他函数中的任何内容.仅在函数fun的花括号中填入你编写的若干语句。tinclude void fun( char * a ) main()I char s81;id NO

7、NO();printf( M Enter a string: nH ) ;get(s);fim(,);printf( M 11e Hiring after deleted:nN ) ;puU(s);NONO();Ivoid NONO()1/本函数用于打开文件,输入数据,利用函数.输出数据,关闭文件。*/FILE in, oul ;ini i ; char s 81 ;in = fopen(Bin. dat-/r);out = fopen( Mout. dalH .* w*);for(i a 0 ; i 10 ; i )Ifecanf( in. %s . s); fiin(s);fpnntf(o

8、utvb);Ifcke( in);fcke(out);K I30 .函数fun的功能是:将S所指字符串中除下标为偶数同时ASCII码值也 为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放 在t所指的数组中。例如,若s所指字符串中的内容为“ABCDEFG123456”,其中字符A的 ASCII码值为奇数,因此应当删除;字符8的ASCII码值为偶数,但在 数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数, 在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所 指的数组中的内容应是“246”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内

9、容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include #indude void fun(char *s, char )void main()( char sl00ht100;printf(0nPlease enter string S:r,);s-anf(o%ss);printf(MnThe result四、2.程序修改题(10题)31.给定程序M0D11 . C中函数fun的功能是:根据整型形参m的值, 计算如下公式的值。.1112*2 3*3m*m例如,若m中的值为:5,则应输出:0 . 5363890请改正程序中的错误,使它能得出正确的结果。1 23 456789

10、1011121314include double fun (int m) (double y 1.0 ;int ,i ;for(i - 2 ; i m ; i+)y 1 /(i i);return(y);main () int n 5 ;printf(nnThe result is %lfnwr fun (n);32.下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按 从高到低的顺序找出前叫m勺0)名学生来,并将这些学生数据存放在一 个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也

11、不得更改程序的结构. 试题程序:#include #include #include #include #dcfinc N 10typedef struct sschar num10;int s; STU;STU * fun STU a, int m) STU bN ,*t;int i, j,k;/vL*kL*1 kL* vl vL* kL*vL* *1k kL* /不不不不不不不不不不不不不tciinrl不不不不不不不不不不不不不不/*t=calloc (m, slzeof (STU);for(i=0;i N;i+) bi=ai;for(k=0; k m; k+) for (i=j=0;i

12、bj.s)j=i;/ vt*vt* 7,.1* 7” .!* !* 7, /不不不不不不不不不不不不不Tci inri不不不不不不不不不不不不不不/tk.num=b j.num;tk.s=bj s;bj.S=O;)return t;)outresult(STU a,FILE *pf) int i;for (i=0; i 10) printf(nlnGive the number of the students who have better score:);scanf(H%d%m);pOrder=fun (a,m);printf。* THE RESULT*kn);printf(nThe top

13、 :nn);for (i=0; i m; i+)printf(%s %dn,pOrderi.num, pOrder i. s);free (pOrder); )33.给定程序M0D11 . C中函数fun的功能是:先将s所指字符串中的 字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连 接到t所指串的后面。例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为: “EDCBAABCDE”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!2345678 finclude ! *include i void fun

14、(char *sr char *t) *i (| /*found*91011121314151617int i;si strlen(s);for (i-0; isl; i+) *found* ti s(sl-i;for (i0; i0?l: x0?-l:0)”;的功能相同的if语句是()。12345678910111213141516171819include h int fun(int *b) int k,al,a2,i-0;for(k10; k55; k+) /found,*a2-k/10;alk*a2*10;if (k%3-0 & a2-5)| (k%3-0 & al,=5) b(ik;

15、 if)/return k;)main () int a(100)9 krm;mfun(a);printf(wThe result is :nw);for(k0; k0x=0 或 x=2x0请改正程序中的错误,使它能得山正确的结果。例如,当n为5时,函数值应为10.407143。f(x)函数定义如下:注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include f (double x)if (x=0.0x=2.0) return 0.0;else if (x 0.0) return (x-1) / (x-2);elseretu

16、rn (x+1) / (x-2);)double fun(int n)(int i; double s=0.0,y;for (i=-n; i =n; i+) y=f(1.0*i); s+=y;/vt* vL*1vT* 1* kL*1* /不不不不不不不不不不不不不不tciind不不不不不不不不不不不不不不/return s main() clrscr();printf(u%fnfun (5);36 .下列给定程序中,函数fun()的功能是:将长整型数中每一位上为偶 数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。 例如,当s中的数为87653142时,t中的数为8642。请改正

17、程序中的错误,使它能得出正确的结果。注意:不要改动main,数,不得增行或删行,也不得更改程序的结构。 试题程序:#include #include void fun(long sjong *t)/ 7,*.t *.t k| k k kk kJ k?k1 k k k、 k|*1 *.t/,j、.、q. 、,j.,j. r7 、j、-j. j.,j.,j. q.,1. 一,1.,j.j.q. q. q.,!. 一,j、,j.、j、-j. q,,j./ int d; long sl=l;*t=0;while(s 0) d=s%10;/ kkIk,1 kI k1 k1 kI 7,7 7 TkT 7,

18、k/ .卜.卜 q、q. q. q. .、q. q. q. 卜 q、q. q. .卜,、q. q. .、q. q.卜 、q.q./if(d%2=0)*t=d*sl+*t;sl*=10)/ kJ vt k!k1vf kI k1k1kIvt# kI k!/,J、,J、r7 rj. -J、J、,J、q、,J、,J、J、.、J、.卜 、-J. -J.,J、-J、/J、-J、-J、,!、/s=10;main () long s,t;clrscr();printf(nnPlease enter s: ); scanf(n%ld&s);fun(s,&t);printf(nThe result is :%ld

19、n,t);)37 .给定程序MOD11 . C中函数fun的功能是:将s所指字符串的正序 和反序进行连接,形成一个新串放在t所指的数组中。例如,当s所指字符串为:“ABCD”时,贝h所指字符串中的内容应为:“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!23456tinclude linclude /found* void fun (char s, char t) (int ir d;78910d strlen(s);for (i = 0; id; i+) t i s i;for (i 0; ii /found1

20、11213t2*d-l - f0f )main ()14 I (1516171819char s 100, t 100;printf (wnPlease enter string S:R);scanf(R%sR/ s);fun(sf t);printf(nnThe result is:%snwrt);38.给定程序M0D11 . C中fun函数的功能是:分别统计字符串中大写 字母和小写字母的个数。例如,给字符串s输入:AAaaBBbl23CCccccd,则应输出结果:upper二6, lower = 8o请改正程序中的错误,使它能计算出正确的结果。23 45 678;#include ! /w

21、*found*/i void fun (char *sr int a, int b)i (;while (*s)! if (*s - A1 & *s = a & *s = z1) *found*/*b-b+l;s+;)1415161718& upper, slower);main () char s 100; int upper - 0r lower-0 ;printf(nnPlease a string :); gets (s);19 j printf(wn upper %d lower a! %dnMr upper, lower);20 i )39.下列给定程序中函数fun()的功能是:将

22、长整型数中每一位上为偶数 的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。 例如当s中的数为25846513时,t中的数为6482。 请改正函数fun() 中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include 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/7 7 7 71 7 7, 7,7* .1* 7, .!* 7,!*/不不不不不不不不不不不不不ci inc不不不不不不不不不不不不不/

23、if(d%2!=0)/7,01kJ k! *1/不不不不不不不小不不不小小tm n不不不不不不不不不不不不不/t=d*sl+t ;sl*=10 ;)S二S%i ;i=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);40.下列给定程序中,函数fun()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也

24、不得更改程序的结构.试题程序:#include #include #define MAXLINE 20/7,1kJ/不不不不不不不小不不不小小tm 不不不不不不不不不不不不不不/fun(char *pstr6) int i, j;char *p;for(i=0;i 5;i+) for(j=i+l;j 0) p=*(pstr+i);/kL*kL*i kL# kL*kL* vr* /不不不不不不不不不不不不不tciind不不不不不不不不不不不不、不/* (pstr+i) -pstr+j;* (pstr+j)=p;) main () int i;char *pstr6 ,str6 MAXLINE;c

25、lrscr();for(i=0;i 6;i+) pstri=stri;printf(nnEnter 6 string( 1 string at each line):n n);for(i=0;i 6;i+) scanf(%s,pstri);fun(pstr);printf(uThe strings after sorting:n );for(i=0;i 6;i+) printf(%sn ,pstri); )五、程序改错题(2题)41.下列给定程序中,函数proc()的功能是:将字符串str中的所有字符 复制到字符串b中,要求在每复制3个字符之后插入1个空格。例 如,在调用proc()函数之前给

26、字符串str输入abcdefghijk,调用函数之后,字符串b中的内容则为abc def ghijko请修改程序中的错误,使它能得出正确的结果。注意:不要改动main。函数,不得增行或删行,也不得更改程序的结 构。试题程序:& include void proc(char strchar * b) (ini i. k - Oi whilel jitr) / found (I a / found * while(i3| | str) (bLk= sin k + + s*tr+ + gi + + gI i( str) /* found * * bk=) bk- Vi ) void main() (

27、char str8Otb8O3printf-Enter a string: ); gclstMr): printK *The original string: *); puts(str) iproc(sir.b) s printf( MnThe string after insertspace:w) i puts( b) 1 printf( nn *) 142.下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素 数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回 主函数。请修改函数proc()中的错误,使它能得出正确的结果。注意:不要改动main。函数,不得增行或删行,

28、也不得更改程序的结 构。试题程序:include include void proc(int num* int b. int c)int ijdysfor (i=3siV-num/2iiHi + 2) /* found y=0/for j = 21j =* sqrt(double)i ) tj+ + )if (i%j= =0) y-0iif (尸 1)/ found * * * *( d=i-num;for ( 2 j b=ii cdi)void main()int numbcs doprintfC Hnlnput num:M) i scanf( %d &.num) iwhile( num%2

29、), proc(num& b,&c) iprintf(Mnn%d %d+ %dvT.numbc)i六、操作题(2题)43 .当 m=l, n=2, a=3, b=2, c=4 时,执行 d=(m=a!=B)&(n=b C)后, m的值为()。44 .以下函数的功能是删除字符串s中的所有数字字符。请填空。 void dele (char *s)A.A.if(xO)y=l ; else if(xO)y=l ; else if(xO)y=l ; else if(x=-O)y=O ; else y=-l ;D.y=O ; if(x=0) if(x=O)y=l ; else y=-1 ;12 .设n、m

30、为一棵二叉树上的两个结点,在中序遍历时,n在m之前的条件是0A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孙13 .下列程序的输出结果是()。#include main() struct st int y,x,z; ; union long i; int j; char k; un; printf(n%d,%dnn,sizeof(struct st),sizeof(un); A.6,2B.6,4C.8,4D.8,614 .若有定义语句“chars10=123456700;,则 Strlen(s)的值是()o A.7B.8 C.9 D.1015 .已知a,b均被定义为double型,则

31、表达式:b=l,a=b+5/2的值为()。16 .若有下列定义(设int类型变量占2个字节):int i=8;则下列语句:printf(i=%O8d,i);输出的结果是()。A.A.i=8 B.i=00000008 C.i=08 D.8int n=O,i;for(i=0, si; i+)if( 1 )sn+=si; sn=; )参考答案1 .空间空间解析:算法的复杂度主要包括时间复杂度和空间复杂度。所 谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的 空间复杂度,一般是指执行这个算法所需要的内存空间。2 .a.next=aba.next=ab解析:选项A)中,指针变量q保存的就是

32、变量b的 地址,选项B)中的p是指针变量,应该是p-next=&b;在选项D)中,用*运 算符取出结构体变量,并且保存的就是b的地址。3 .数据模型数据模型4 .buf的首地址buf的首地址 解析:考查fsets()函数的功能,f8ets()函数 用来从文件中读入字符串。调用格式为:f8ets(buf, n, fp)o此处,fp是 文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函 数fsets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标 志,并以buf作为函数值返回。5 .(y%2)=0(y%2)=0解析:因符合偶数的条件是对2取余为0,所以要 描述y是偶数

33、的表达式是(y%2)=0。6.0 i = 100 ;sum 7.n/2n/2解析:删除一个元素,平均移动的元素个数为什1+11- 2+.+0)/n=(n-l)/2 ;插入一个元素,平均移动元素个数为(n+n-l+n-2+. +l)/n=(n+l)/2 ;所以总体平均移动元素个数为n/2o8.How does sheHow does she 解析:strcpy(strl, si);字符串拷贝函数, 作用是将字符串si拷贝到字符数组strl中去。strlen(str):测试字符串str 的长度,函数的值为字符串中实际长度,不包括0在内。本题中 strlen(strl)的值为 13 ,则 strcp

34、y(strl+strlen(strl)/2,es she);相当于 strcpy(strl+6,es she);,因此可得答案为 How does she 9.2810.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息 沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信 息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软 件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或 多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事 务。11.By=(x=)07 1 :x07 1: (x0?-l : 0),故选择8选项。12.C13.B解析:本

35、题主要考查结构体和联合内存使用的区别:结构中不同 的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构 中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合 所占用的内存空间为最长的成员所占用的空间。14 .Astrlen函数计算字符串长度时,遇到结束标识为止,且长度不包括 结束标识。本题中的字符串从第1个字符开始,遇到第1个结束标识O 为止,注意不占字符串长度,所以字符串长度为7。故本题答案为A选 项。15 .D16.B解析:本题考查printf函数的格式。“08”格式符中的“0”表示在指定 数据输出宽度的同时,在数据前面的多余空格处加表示指定数 据的输出宽度为8位。17

36、 .C根据二叉树的性质及定义,一棵深度为k且有2k-1个结点的二叉 树为满二叉树。满二叉树的叶子结点为最后一层的结点数,又根据满二 叉树的性质,在满二叉树的第i层上至多有2i-l个结点。因此深度为5 的满二叉树的叶子结点数为25-1=16个。18 .D19 .C解析:本题中第一行代码对指针P进行了初始化,其指向数组a的第6 个元素,在其后的操作中p的值也没有改变过,所以最后输出 *p=*u3000u3000(p+0)u3000u3000=au30005u3000=6,而第二行代 码中对q指向的值进行赋值,等价于*q=a10=ll,所以输出结果*q为 llo20.B由题可知,fun(&a3)是将

37、&a作为参数,而fun(int*p)后执行的语句 为p5,由数组a可知输出的为6。int fun(char*ss,char c) inti=O ;for(; *ss!= O; ss+)if(ss=ci+/ *求出*所指字符串中指定字符的个数* /return i ;【考点分析】本题考查:for循环语句遍历字符串,并通过if条件语句,判断字符串 是否结束。【解题思路】从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍 历字符串,循环条件为字符串没有结束,即当前字符不是0,判断 语句用来判断当前字符是否为指定字符。最后返回指定字符的个数。【解析】题目中要求将字符串中的前导*号全部删除,首先将

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

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

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

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