ImageVerifierCode 换一换
格式:DOC , 页数:82 ,大小:266KB ,
资源ID:4516134      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4516134.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(2017年全国计算机等级考试C语言上机考试题库---41-60套.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2017年全国计算机等级考试C语言上机考试题库---41-60套.doc

1、 2017年全国计算机等级考试C语言上机考试题库 学生练习用第41套至第60套 第四十一套 1、程序填空 以下给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。 例如,假设s所指字符串为:"asd123fgh543df",处理后新字符串为:"asdfghdf123543"。 请在程序的下画线处填入正确的容并将下画线删除,使程序得出正确的结果。 注意:局部源程序在文件BLAN

2、K1.C中。 不得增行或删行,也不得更改程序的结构! ----------------------------------------------------------------------------------------------------------------- #include #include #include char *fun(char *s) { int i, j, k, n; char *p, *t; n=strlen(s)+1; t=(char*)mall

3、oc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0; for(i=0; i='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))) { /**********found**********/ t[j]=__1__; j++;} else { p[k]=s[i]; k++; } } /**********found**********/ for(i=0; i<_

4、2__; i++) t[j+i]=p[i]; /**********found**********/ t[j+k]= __3__; return t; } main() { char s[80]; printf("Please input: "); scanf("%s",s); printf("\nThe result is: %s\n",fun(s)); } -----------------------------------------------------------------------------------------------

5、 【参考答案】 (1)s[i]  (2)k  (3)'\0'或0 【考点分析】 此题考察:数组元素赋值操作;for循环语句中循环变量的取值围;字符串完毕标识'\0'。 【解题思路】 填空1:将字符串s中所有字母元素赋给数组t。 填空2:字符串中所有非字母元素放到字母元素后面,所以取值围是0~k。 填空3:最后给字符串参加完毕标识'\0'。 2、程序修改 以下给定程序中函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串一样的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度一样。

6、例如,当s所指字符串中的容为:"abcdabfabc",t1所指串中的容为"ab",t2所指子串中的容为"99"时,结果在w所指的数组中的容应为"abcdabf99c"。 请改正程序中的错误,使它能得出正确的结果。 注意:局部源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构! ----------------------------------------------------------------------------------------------------------------- #include #include

7、ing.h> void fun (char *s, char *t1, char *t2 , char *w) { char *p , *r, *a; strcpy( w, s ); /************found************/ while ( w ) { p = w; r = t1; while ( *r ) /************found************/ IF ( *r == *p ) { r++; p++; } else break

8、 if ( *r == '\0' ) a = w; w++; } r = t2; while ( *r ){ *a = *r; a++; r++; } } main() { char s[100], t1[100], t2[100], w[100]; printf("\nPlease enter string S:"); scanf("%s", s); printf("\nPlease enter substring t1:"); scanf("%s", t1); printf("\nPlease

9、 enter substring t2:"); scanf("%s", t2); if ( strlen(t1)==strlen(t2) ) { fun( s, t1, t2, w); printf("\nThe result is : %s\n", w); } else printf("\nError : strlen(t1) != strlen(t2)\n"); } -----------------------------------------------------------------------------------------

10、 【参考答案】 (1)while(*w) (2)if(*r==*p) 【考点分析】 此题考察: while循环语句,C语言中的关键字。 【解题思路】 (1)这里要判断的是值的真假,而不是地址,所以改为while (*w)。 (2)C语言中关键字区分大小写,只需运行程序,就可以根据错误提示找到。 3、程序设计 编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。 例如,假设s所指字符串中的容为:"ABCDEFG12345",其中字符A的ASCII码值为奇数,字符1的A

11、SCII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的容应是:"BDF24"。 注意:局部源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何容,仅在函数fun的花括号中填入你编写的假设干语句。 ----------------------------------------------------------------------------------------------------------------- #include #include void fun(char *s, char

12、 t[]) { } main() { char s[100], t[100];void NONO (); printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); NONO(); } void NONO () {/* 本函数用于翻开文件,输入数据,调用函数,输出数据,关闭文件。 */ char s[100], t[100] ; FILE *rf, *wf ; int i

13、 ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%s", s) ; fun(s, t) ; fprintf(wf, "%s\n", t) ; } fclose(rf) ; fclose(wf) ; } #include #include void fun(char *s, char t[]) { }

14、 main() { char s[100], t[100];void NONO (); printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); NONO(); } void NONO () {/* 本函数用于翻开文件,输入数据,调用函数,输出数据,关闭文件。 */ char s[100], t[100] ; FILE *rf, *wf ; int i ; rf = fopen("i

15、n.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%s", s) ; fun(s, t) ; fprintf(wf, "%s\n", t) ; } fclose(rf) ; fclose(wf) ; } --------------------------------------------------------------------------------------------------------------

16、 【参考答案】 void fun(char *s,char t[]) {      int i,j=0,n;      n=strlen(s);      for(i=0;i

17、字符,也就是要保存ASCII码值为偶数的字符,由于最终是要求出剩余字符形成的新串,所以此题的算法是对原字符串从头到尾扫描,并找出ASCII码值为偶数的字符依次存入数组中。 第四十二套 1、程序填空 给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在程序的下画线处填入正确的容并把下画线删除,使程序得出正确的结果。 注意:局部源程序在文件BLANK1.C中。 请勿改动main函数和其他函数中的任何容,仅在main函数的横线

18、上填入所编写的假设干表达式或语句。 ----------------------------------------------------------------------------------------------------------------- #include #include void fun(char *s, int a, double f) { /**********found**********/ __1__ fp; char str[100], str1[100], str2[100]

19、 int a1; double f1; fp = fopen("file1.txt", "w"); fprintf(fp, "%s %d %f\n", s, a, f); /**********found**********/ __2__ ; fp = fopen("file1.txt", "r"); /**********found**********/ fscanf(__3__,"%s%s%s", str, str1, str2); fclose(fp); a1 = atoi(str1); f1 = atof(str

20、2); printf("\nThe result :\n\n%s %d %f\n", str, a1, f1); } main() { char a[10]="Hello!"; int b=12345; double c= 98.76; fun(a,b,c); } ----------------------------------------------------------------------------------------------------------------- 【参考答案】 〔1〕FILE*  〔2〕fclose(fp) 

21、 〔3〕fp 【解题思路】 填空1:从使用fp=fopen("file1.txt","w")可知fp应该是文件类型指针,因此本空因该填写FILE*。 填空2:当对fp作翻开操作的时候,并进展不同的操作前,应该对其关闭,因为在第一次翻开时是对fp进展写操作,而在第二次翻开后进展的是读操作,因此应该先对fp进展关闭,本空填fclose(fp)。 填空3:fscanf()是把文本文件输出,因此本空只能填写fp。 2、程序修改 以下给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存

22、储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:局部源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。 ----------------------------------------------------------------------------------------------------------------- #include #include #include #include #include

23、 #define N 10 typedef struct ss { char num[10]; int s; } STU; STU *fun(STU a[], int m) { STU b[N],*t; int i, j,k; /*************found**************/ *t=calloc(m,sizeof(STU)); for(i=0;i

24、b[j].s) j=i; /*************found**************/ t[k].num=b[j].num; t[k].s=b[j].s; b[j].s=0; } return t; } outresult(STU a[],FILE *pf) { int i; for(i=0;i

25、N]={{ "A01 ",81},{ "A02 ",89},{ "A03 ",66},{ "A04 ",87},{ "A05 ",77}, { "A06 ",90},{ "A07 ",79},{ "A08 ",61},{ "A09 ",80},{ "A10 ",71}}; STU *pOrder; int i, m; system("CLS"); printf("*****THE RESULT*****\n"); outresult(a,stdout); printf("\nGive the number of the students who ha

26、ve better score: "); scanf("%d",&m); while(m>10) { printf("\nGive the number of the students who have better score: "); scanf("%d",&m); } pOrder=fun(a,m); printf("***** THE RESULT*****\n"); printf("The top :\n"); for(i=0;i

27、r[i].s); free(pOrder); } ----------------------------------------------------------------------------------------------------------------- 【参考答案】 (1)t=calloc(m,sizeof(STU)); (2)t[k]=b[j]; 【解题思路】 〔1〕calloc应用于分配存空间。调用形式为 (类型说明符*)calloc(n,size),功能:在存动态存储区中分配n块长度为"size"字节的连续区域,函数的返回值为该区域的首地址,(

28、类型说明符*)用于强制类型转换。calloc函数与malloc 函数的区别在于calloc函数一次可以分配n块区域。例如,ps=(struct stu*) calloc(2,sizeof (struct stu));,其中的sizeof(struct stu)是求stu的结构长度。该语句的意思是:按stu的长度分配两块连续区域,强制转换为stu类型,并把其首地址赋予指针变量ps。在此题中不用考虑那么复杂,根据定义类型STU b[N],*t;就可以看出*t=calloc(m,sizeof(STU))中的错误。 〔2〕t[k].num=b[j].num的错误旨在考察对结构体概念的掌握和灵活应用程

29、度。 3、程序设计 请编写函数fun,该函数的功能是:删除一维数组中所有一样的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,假设一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的容应该是: 2 3 4 5 6 7 8 9 10 注意:局部源程序在文件PROG1.C中。 请勿改动main函数和其他函数中的任何容,仅在函数fun的花括号中填入所编写的假设干语句。 --------------------------------------------------

30、 #include #define N 80 int fun(int a[], int n) { } void main() { FILE *wf; int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10}, i, n=20; printf("The original data :\n"); for(i=0; i

31、tf("%3d",a[i]); n=fun(a,n); printf("\n\nThe data after deleted :\n"); for(i=0; i

32、/ } ----------------------------------------------------------------------------------------------------------------- 【参考答案】 int fun(int a[], int n) {    int i,j=1;    for(i=1;i

33、 【解题思路】 该程序的流程是:定义变量i和j,其中j用于控制删除后剩下的数在数组中的下标,i用于搜索原数组中的元素。j始终是新数组中最后一个元素的下一个元素的下标,所以if语句中的条件是a[j-1]!=a[i],其中a[j-1]就是新数组中的最后一个元素,假设条件成立,那么表示出现了不同的值,所以a[i]要保存到新数组中。注意此题中i和j的初值都要从1开场,该算法只能用于数组已排序的题目中。 第四十三套 1、程序填空 以下给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值

34、 例如,假设N=3,有以下矩阵: 首先累加1、5、9,然后累加3、5、7,函数返回值为30。 请在程序的下画线处填入正确的容并将下画线删除,使程序得出正确的结果。 注意:局部源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! ----------------------------------------------------------------------------------------------------------------- #include #define N 4 fun(int t

35、[][N], int n) { int i, sum; /**********found**********/ ___1___; for(i=0; i

36、2,54,42,21,3,10},i,j; printf("\nThe original data:\n"); for(i=0; i

37、 【参考答案】 (1) sum=0  (2) t[i][i]  (3) 1 【考点分析】 此题考察:变量初始化;N×N矩阵对角线下标如何表示;累加操作。 【解题思路】 填空1:变量sum用来储存"和"结果,所以将其初始化为0。 填空2:从题目中我们可以了解到,主对角线元素的行和列下标是一样的,所以应填入t[i][i]。 填空3:对于反向对角线元素的行和列的下标,它们的关系是相加和为n-1,所以应填入1。 2、程序修改 以下给定程序中函数fun和funx的功能是:用二分法求方程 的一个根,并要求绝对误差不超过0.001。 例如,

38、假设给m输入-100,n输入90,那么函数求得的一个根为2.000。 请改正程序中的错误,使它能得出正确的结果。 注意:局部源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。 ----------------------------------------------------------------------------------------------------------------- #include #include double funx(double x) { return(2*x*x*x-4*x

39、x+3*x-6); } double fun( double m, double n) { /************found************/ int r; r=(m+n)/2; /************found************/ while(fabs(n-m)<0.001) { if(funx(r)*funx(n)<0) m=r; else n=r; r=(m+n)/2; } return r; } main( ) { double m,n, root;

40、printf("Enter m n : \n"); scanf("%lf%lf",&m,&n); root=fun( m,n ); printf("root = %6.3f\n",root); } ----------------------------------------------------------------------------------------------------------------- 【参考答案】 (1)double r; (2)while (fabs(n-m)>0.001) 【考点分析】 此题考察:变量数据类型;whi

41、le循环语句。 【解题思路】 (1)程序中我们会发现r=(m+n)/2,而m和n都是double型的,并且根据题意可知,变量r需要定义为double型。 (2)绝对误差不超过0.001,所以循环条件应为fabs(n-m)>0.001。 3、程序设计 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,假设字符串中的容为****A*BC*DEF*G*******,删除后,字符串中的容应当是:***

42、ABCDEFG********。 在编写函数时,不得使用C语言提供的字符串函数。 注意:局部源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何容,仅在函数fun的花括号中填入所编写的假设干语句。 ----------------------------------------------------------------------------------------------------------------- #include void fun( char *a, char *h,char *p ) { }

43、main() { char s[81],*t, *f; void NONO ( ); printf("Enter a string:\n");gets(s); t=f=s; while(*t)t++; t--; while(*t=='*')t--; while(*f=='*')f++; fun( s , f,t ); printf("The string after deleted:\n");puts(s); NONO(); } void NONO() {/* 本函数用于翻开文件,输入数据,调用函数,输出数

44、据,关闭文件。 */ FILE *in, *out ; int i ; char s[81], *t, *f ; in = fopen("in.dat","r") ; out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(in, "%s", s) ; t=f=s; while(*t)t++; t--; while(*t=='*')t--; while(*f=='*')f++; fun(s, f, t); fpri

45、ntf(out, "%s\n", s) ; } fclose(in) ; fclose(out) ; } ----------------------------------------------------------------------------------------------------------------- 【参考答案】 void  fun( char *a, char *h,char *p ) {   int i=0;       char *q=a;      while(q

46、 q++;i++; }          while(q

47、先是需要判断前导*的完毕,然后判断是否指向最后一个字母,最后补充尾部*,只要思路对了就可正确解答。 第四十四套 1、程序填空 以下给定程序中,函数fun的功能是:找出100到x(x≤999)之间各位上的数字之和为15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。 例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。 请在程序的下画线处填入正确的容并将

48、下画线删除,使程序得出正确的结果。 注意:局部源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! ----------------------------------------------------------------------------------------------------------------- #include int fun(int x) { int n, s1, s2, s3, t; /**********found**********/ n=__1__; t=100; /******

49、found**********/ while(t<=__2__) { s1=t%10; s2=(t/10)%10; s3=t/100; if(s1+s2+s3==15) { printf("%d ",t); n++; } /**********found**********/ __3__; } return n; } main() { int x=-1; while(x>999||x<0) { printf("Please input(0

50、d",&x); } printf("\nThe result is: %d\n",fun(x)); } ----------------------------------------------------------------------------------------------------------------- 【参考答案】 (1) 0  (2) x  (3) t++ 【考点分析】 此题考察:变量赋初值;while循环语句。 【解题思路】 填空1:变量n用于存放符合条件的整数的个数,应赋初值为0。 填空2:根据题目要求,确定循环变量t的取值围t<=x

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服