2023年四川省南充市全国计算机等级考试C语言程序设计真题(含答案).docx

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

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

1、2023年四川省南充市全国计算机等级考试C语言程序设计真题(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1 .对于图书管理数据库,将图书表中”人民邮电出版社”的图书的单价涨 价5%。请对下面的SQL语句填空:UPDATE图书【】WHERE出版单 位二”人民邮电出版社”2 .以下程序运行后的输出结果是 fun(int x) if(x/2 0) fun(x/2);printf(n%d ”,x);)main() fun(6); )3 .以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数 据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域 不放数据,表空的条

2、件是ph-next=NULL),请填空。#includestruct list int data; struct list *next;struct list*creatlist() struct list *p,*q,*ph;int a;ph=(struct list *)malloc (sizcof(struct list);p=q=ph;printf(nInput an integer number; entre-1 to end:nH); scanf(n%dn,&a);while(a!=-l) p=(struct list*)malloc(sizeof(struct list);=a;

3、q-next=p; =p;scanf(n%dn,&a);改动main ()函数和其他函数中的任何内容,仅在函数proc ()的花括号中填入所编写的若干语句。试题程序:8 Kucludth - include 9 mdude Vcomcx. b n inriudc prtx*( chjr Mr)void )cbar vtfSlipnnif(*lnput a Mnngi *i grt*( utr) ipuiM Mr) t proc( ir) i pnntfC * a Mrs26 .编写函数fun,其功能是:将所有大于1小于整数m的非素数存人 XX所指数组中,非素数的个数通过k返回。例如,若输入17

4、,则应输出:4689 10 12 14 15 16。注意:部分源程序 在文件PROG1 . C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括 号中填入你编写的若干语句。tindude void fiin( int me int k. int xx口 )main()int m. n9 zz: 100; void NONO();printf( nPl”se enter an integer number between 10 and 100:);acanf( w%d &n );fiin( n, Am. a );printf( M nnlliere are %d non -

5、prime numbers less than %d J . m, n ); for ( n = 0; n m;n+ + )printf( * n %4d t n(n); NONO();void NONO()I/请在此函数内打开文件,It人测试数据.谒用fun函数. 输出数据,关闭文件。/int m. n. zzi 100;FIUE - rf, ewf ;rf = fopen(Min. dat *r* );wf = fopen( wout. datM );fecanf( rf. %d-t&n );fun( nt &m, u );fprintf(wft -%dn%dnHt m9 n );for

6、( n s 0; n 4* )fprintf(wftH%dn% zzn);fclose(rf);fcloaeCwf);27 .使用VC+2010打开考生文件夹下progl中的解决方案。此解决方案 的项目中包含一个源程序文件progl. c0此程序定义了 NxN的二维数 组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角 元素中的值乘以no例如,若n的值为3,a数组中的值为1 972 38456则返回主程序后,H数组中的值应为3 97698121518注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

7、#include #include #include #define N 5void fun (int a N , int n)() main ()(int aNN,n,i,j;printf (*The array*rT);for(i=0;in;i+) p=nnx/n;i+)(for(j=0;j(aij=rand ()% 10;printf(“4d”,ai 皿);printf (“rT);)n=rand( )%4;printf (“n=%4dxlT,n);fun(a,n);printf (*The Result*n);for(i=0;i(forf p=printf(u%4d5;aij);pri

8、ntf (n”);) )28 .三个整数a、b、c,由键盘输入,输出其中最大的一个数。29 .假定输入的字符串中只包含字母和*号。请编写函数proc,它的功 能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为*a*bc*def*g* *,删除后,字符串中的内容则应当是a*bc*def*g* *。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include#includewoid proc(char*st r)()void mainchar str81;printf(nEnter

9、 a string: nn);gets(str);proc(str):printf(nThe string after deleted: nn);puts(str); 30 .使用VC +2010打开考生文件夹下progl中的解决方案。此解决方 案的项目中包含一个源程序文件progl.c。在此程序中,规定输入的字符 串中只包含字母和*号。编写函数fun(),其功能是删除字符串中所有的 *号。编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为“*A*BC*DEF*G*,删除后,字符 串中的内容应当是“ABCDEFG” o注意:部分源程序给出如下。请勿改动主函数main()和其他函

10、数中的任何内容,仅在函数fun()的花 括号中填入你编写的若干语句。试题程序:#include #include void fun(char *a)()void main ()(char s81;printffEnter a string:rT);gets(s);fun(s);printf (The string after deleted:n);puts (s);四、2.程序修改题(10题)31 .下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按 从低到高的顺序找出前m(m01O)名学生来,并将这些学生数据存放在一 个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请

11、改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:#include #include #include #include #define N 10typedef struct SS (charnum10;int s ;)STU ;STU *fun(STU a, int m)(STUbN, *t ;inti, k ;/1,/不不不不不不不不不不不不不tciinri不不不不不,*t=calloc(m, sizeof(STU);for(i=0 ; i N ; i+)bi=ai;for(k=0 ; k m ; k+) for(i=j=0

12、 ; i N ; j+)/* found* *I tk.s=bj . s ;bj.s=100 ;)return t ;)outresult(STU a, FILE *pf) (int i ;for(i=0 ; i 10) (printf(“nGive the number of the students who have lower score:);scanf(%d”, &m); porder=fun(a, m);print(*THE RESULT*n);printf(t4The low : rT);for(i=0 ; i m ; i+)printf(s %dn,porderi . num,p

13、orderi . s);free(porder); )32.下列给定程序中函数fun()的功能是:将长整型数中每一位上为偶数 的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如当S中的数为25846513时,t中的数为6482o请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:#include #include 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)

14、 d=s/i/7, 1,/不不不不不不不不不不不不不Tc iinrl不不不不不不不个不不个不不/ if(d%2!=0)/ kL*kL*cI *1*1* vl* *1* kL* *1* /不不不不不不不不不不不不不tci inI不不不不不不不不不不不不小/t=d*sl+t ;sl*=10 ;)S=S%i ;i=i/10 ;) main() (longS, t;clrscr();printf(nnPlease enter ST);scanf(%ld, &s);fun(S, &t);printf(nThe result is : %ldnn, t); )33.下列给定程序中,函数fun()的功能是:

15、从n个学生的成绩中统计出 高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所 指的存储单元中。例如输入8名学生的成绩:85 65.5 69 95.5 87 55 62.5 75则高于平均分的学生人数为4(平均分为74.312500)。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #dcfinc N 20int fun(float *S, int n, float *aver)(/I/不不不不不可不不不不可不不tci不不不可不不不不不不不不不/p-next=O;return(

16、ph);main()struct list * head; head=creatlist();4 .若按功能划分,软件测试的方法通常分为白盒测试方法和测试方法。5 .以下函数的功能是删除字符串s中的所有数字字符。请填空。void dele (char *s) (int n=0,i;for(i=0, si; i+)if()sn+=si;sn=;)6 .下列程序段的运行结果是ochar str=ABCD*p=str;printf(dn*(p+3);7 .若有如下程序:void sub()static int x = 6 ;x/ =2 ; printf(%d, x) ; main()int m ;f

17、or(m=0 ; m =2 ; m+) sub() ; 则程序运行后的输出结果是【】。int count=0, k, i ;for(k=0 ; k n ; k+)t+=sk;ave=t/n ;for(i=0 ; i KL KL* k1 KL KE* /个不个个不不小、个不不个个ci】nc个个不不不小不小不个个不小不不/if(si ave)count+ ;aver=ave ;return count ;)main() (float S30, aver ;int m, i ;clrscr();printf(nnPlease enter m :n);scanf(n%dn, &m);printf(nn

18、Please enter%d mark : nn, m);for(i=0 ; i m ; i+)scanf(%f, s+i);printf(nnThe number of students : %dnn, fun(S, m, &aver);printffAVe=%frT, aver);34 .下列给定程序中,函数fun()的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为8642。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main,数,不得增行或删行,也不得更改程序的结构。试题程序:#

19、include #include void fun(long sjong *t) /*1*1* kI*4* *1* kL*/rTwrywrT*ryw/ int d;long sl=l;*t=0;while(s 0) d=s%10;/1* 1 vi Kt* / /、q. 、rj,,rj、rT 、/if(d%2=0)*t = d*sl+*t;sl*=10)/! 1* kL*k1/ 、rj、ri 、rj, ,、,rj、rj、*T rj、rT* 、/s=10;)main () long s,t;clrscr();printf(nnPlease enter s: ); scanfC%kT,&s);fun

20、(s,&t);printf(HThe result is :%ldnft);)35 .下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都 改为对应的大写字母,其他字符不变。例如,若输入“edS, dAd,则输 出“EDS, DAD”。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include / 7,*1k!7,01kJ k! *1/小小小不不不小不不不不小小tciind不不不不不不不不不不不不不/ char fun(char tt) int i ;for(i=0 ;

21、tti ; i+)/ %*kL* vi* kL*kL*/不不不不不不不不不不不不不tciinrl不不不不不不不不不不不不不/if(tti =A)&(注i =2) tti-=32 ;)return(tt);) main() int i ;char tt81;clrscr();printf(nPlease enter a string :);gets(tt);printf(nThe result string iS : /n%s, fun(tt);36 .下列给定程序中,函数fun()的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许79。请改正函数fun(

22、)中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序;#include #include #include / /不不不不不不不不不不不不不不不不不Tei inc不不不可不不不不不不不不不不不/ void fun(char s, int n) char a80, *p ;int i;/1/不不不不不不不不不不不不不不不不不tciind不不不不不不不不不不不不不不不/S=p;for(i=0; i k1 k1 K/ .i+; while(*p);ai=O ;strcpy(s,a);)main() int n;char s80;clrscr()

23、;printf(nnEnter a string:n);gets(s);printf(nnThe string%snn,s);printf(nnEnter n(number of*):n);scanf (n%dn, &n);fun(s,n);printf(nnThe string after inster: %snn,s);37.以下程序可把输入的十进制数以十六进制数的形式输出。请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序;main () char b17=n0123456789ABCDEF”;intc6

24、4 ,dj=0,base=16;long n;printf(nEnter a number:nn);scanf(n%ldn, &n);do /vL*vL* /不不不(、可不不不不不不不不、不下tci不不、下不不不不、下不不不不不不/ci=;i+; n=n/basc;)while (n!=0);printf(HTransmite new base:nn);for(-i;i =0;-i)/ kL*vl1* vL* *1/不不不不不不不不不不不不不不不tciind不不不不不不不不不不不不不不不不不不不/ d=ci;printf(n%cn,b); printf(nnn);38.已知一个数列从第。项开始

25、的前三项分别为0, 0, 1,以后的各项 都是其相邻的前三项之和。给定程序MODH . C中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。例如,当n = 10时,程序的输出结果应为:23 . 197745。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!234567891011121314include *include / round / fun (int n) double sum, s0r si, s2, s; int k; sum , 1.0;if (n - 2) sum 0.0;sO u 0.

26、0; si = 00; s2 = 1.0; for (k = 4; k - n; k+) s = sO + si + s2;sum +- sqrt(s);sO si; si = s2; s2 = s;/found*/1516171819202122return sum) main () int n;printf(wInput N-H); scanf&n);printf(n%fnnr fun(n);39.给定程序MOD11 . C中fun函数的功能是:求出以下分数序列的前n项之和。2 3 5 8 13 21 r 2f 3 5 8 13和值通过函数值返回main函数。例如,若n = 5,则应输出:

27、8 . 391667。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!include found育fun (int n) int a = 2, b - double s0.0 ;for (k 1; k n; k+) s - s + 1.0 * a / b ; found.10111213141516c * a; a = b; b c;return (s);|main () int n 5 ;printf (nnThe value of function is: %lfnwr fun (n);40 .下列给定程序中,函数fun()的功能

28、是:将m(lWmSO)个字符串连接 起来,组成一个新串,放入pt所指字符串中,例如:把3个串abc, CD, EF串联起来,结果是abcCDEF。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:#include #include #include int fun(char str 10,int m, char *pt) int k,q,i,j=O;for(k=0;k m;k+) q=strlen(strk);j十二 q;for(i=0;i q;i+)pti=strk,i;pt+=q;ptO =0;)Pf)main () i

29、nt m, h;chars10 10,p120;clrscr ();printf(nnPlease enter m:);scanf(n%dn,&m); gets(s0);printf (HnPlease enter %d string:In ,m);for(h=0;h ihrH.Orm! ciwif Mf I A&AtwO卜/ |Mtnl imiiH )tmhrwJUJqpfinlh eA(4llef ft MHftgi e) I item) Ipniii 1( e*iiTW g.坏 pcuc(iiivi) |Mrwm 例如,若n=5,则应输出8 . 391667。请改正程序中的错误,使其得出

30、 正确的结果。注意:不要改动main ()函数,不得增行或删行,也不 得更改程序的结构!试题程序:st iru ludr h ,U include Veomex. h s mcludr a I - found fun (mi nmt 二 2. hl. c ks double n*0. Oi lorik,hkV-ssk/ )/ kxmd ,a/bi! * b|b* ClmumyZem ( eCLSW ) gpfintf ( * fThe slue o( funcikm 匕八&1呷 (n)六、操作题(2题)43 .以下程序运行后的输出结果是o#include void fun(char *s,in

31、t P, int k)int i;for(i=p;i k-l;i+)si=si+2;main()char s=nabcdefgn;fun(s,3, strlen(s) ; puts(s) )44 .以下程序的输出结果是【】。main()8 .若有以下程序: main() int a=4, b=3, c=5, t=0;if(a b) t=a; a=b; b=t;if(a 0为真递归调用fun(3),接着递归调用fun(l),输出1,返回 上一层输出3,在返回上一层输出60故空格处应该填1 3 603.p-data qp-data , q解析:本题考查的是链表这一数据结构对结构体 变量中数据的引用

32、。链表的特点是结构体变量中有两个域,一个是数据, 另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。4.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设 计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒 法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内 部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑 盒法设计的测试用例完全是根据程序的功能说明来设计的。5.si 9 或!(si =0&si ,9|si O或!(si =0)或*(s+i) 9或!(*(s+i) =O&*(s+i) =9&*(s+i) - O!(*(s+i) -

33、 O或 isdigisi 9或 !(si =0&si 9|si 。或!(si =。)或*(s+i) 9 或!(*(s+i) =O&*(s+i) =9&*(s+i)=0或!(*(s+i)=O 或 isdigi 解 析:从一个字符串中删除某字符的力法是从字符串的第一个字符开始 判断该字符是否是要被删除,若不是则把它放到结果字符串中,若 是则不放入结果字符串中。本题的第一个空应判断si是否为数字字符, 只有在不是数字字符的情况下才存入结果字符串,所以应填入si 9。最后应在结果字符串的末尾填上字符串结束标志0。6.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指 向字符型数组str的

34、指针p,指针p指向数组str的首地址,p+3将指针 指向str3, *(p+3)指的是字符“D,输出时是以“d”格式输出的,即输 出其相应ASCII码值68。7.3108.503503解析 先判断表达式a b为假,不执行仁a,但执行“a=b;b=t;, a的值为3, b的值为0。再判断表达式aC,值为真,所以执行后面的 3条语句“t=a;a=c;c=t,结果a的值为5, c的值为3,所以最后输出 的结果为5、。和3。9.黑箱法黑箱法10.6060解析:程序中定义a是一个3行2列的二维数组,p是指向两 个元素的一维数组指针,并让p指向二维数组a的首行。则代码 *(*(p+2)+l)中的P+2指向

35、二维数组a的第三行a2, *(p+2)指向a2口0, *(p+2)+l 指向 a1, *(*(p+2)+l)是引用 a2l,其值是 60oll.D12.D本题考查数组元素的地址的引用。A中,p+5引用的是a5的地址, 而数组a只有5个元素,即a0、als a2s a3、a4J,所以引用错 误(注:数组元素下标从0开始);B中,*a+1指的是将数组a的第一个 元素加1;选项C中,不存在这种引用方式;D中,&a0引用的是数 组的首地址。13.BB)【解析】软件侧试的目的:n软件测试是为了发现错误而执行程序的过程;n一个好的测试用例能够发现至今尚未发现的错误;n一个成功的测试是发现了至今尚未发现的错误。n软件侧试的准则:n所有测试都应追溯到需求;n严格执行测试计划,排除测试的随意性;n充分注意测试中的群集现象:n程序员应避免检查自己的程序;n穷举测试不可能;W妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护 提供方便。14 .A在语句“for(; +a&-b;)”中,for循环的表达式1和表达式3为缺 省项。首先判断条件表达式“b。当a=-2, b=2”时,第1次执行“+屋和 “-b,条件表达式为真,循环条件成立。第2次执行“+a”为0,由于运 算符,当第1个条件为假时,不执行第2个条件,因此发生短 路,

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

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

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

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