2012秋C语言上机试卷C01答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2012年秋C01-1答案2012年秋二级C语言上机试卷(试卷代号C01)答案一、改错题(16分)【程序功能】函数fun的功能是将str所指向的一行包含若干单词的文本(单词之间用空格隔开)依次拆分成长度不超过20个字符的若干文本行,单词不跨行,且使拆分出的行数最少,再将拆分出的每行字符以字符串的形式存储到pag指向的二维数组的一行中,函数返回拆分出的行数。【测试数据与运行结果】测试数据:Agreatdiscoverysolvesagreatproblem.屏幕输出:Agreatdiscoverysolvesagreatproblem.【含有错误的源程序】以下源程序已保存在T盘myf1.c文件内,考生可直接打开该文件调试程序。#includestring.h#includestdio.h#includeconio.hintfun(charstr[],charpag[][])/*改为intfun(charstr[],charpag[][21])或intfun(charstr[],char(*pag)[21])*/{inti,k=0,j,flag=1;while(*str&&flag){if(strlen(str)20){pag[k]=str;/*改为strcpy(pag[k],str);*/flag=0;}else{i=20;while(str[i]!='')i--;for(j=0;ji;j++)pag[k][j]=str[i];/*改为pag[k][j]=str[j];*/pag[k][i]='\0';strcpy(str,str+i+1);}k++;}returnk;}intmain(){charstr[80]={Agreatdiscoverysolvesagreatproblem.};/*改为charstr[80]={Agreatdiscoverysolvesagreatproblem.};,*/charpag[40][21];inti,k;2012年秋C01-2答案k=fun(str,pag);for(i=0;ik;i++)puts(pag[i]);getch();return0;}【要求】1.打开T盘中myf1.c文件或将上述程序录入到myf1.c文件中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。3.改正后的源程序(文件名myf1.c)保存在T盘中供阅卷使用,否则不予评分。【评分标准】共16分。每改正一个错误得4分,共4个错误。二、编程题(24分)【程序功能】寻找所有水仙花数(水仙花数是指一个三位数中各位数字的立方之和等于该三位数自身。例如:153=13+53+33,因此153是水仙花数),并生成每个水仙花数的反序数。【编程要求】1.编写函数intsxh(inta[],intb[])。函数功能:将所有水仙花数保存到a指向的数组,将所有水仙花数的反序数保存到b指向的数组,函数返回水仙花数的个数。2.编写main函数。函数功能:声明数组a和b,用a、b作实参调用sxh函数,将a、b数组中全部数据输出到屏幕及文件myf2.out中。最后将考生本人的准考证号字符串输出到文件myf2.out。【测试数据与运行结果】屏幕输出:Threedaffodilnumber:153370371407Threeinversenumber:35173173704【要求】1.源程序文件名为myf2.c,输出结果文件名为myf2.out。2.数据文件的打开、使用、关闭均用C语言标准库中的文件操作函数实现。3.源程序文件和运行结果文件均需保存在T盘中供阅卷使用。4.不要复制扩展名为obj和exe的文件到T盘中。【参考答案】#includestdio.h#includeconio.hintsxh(inta[],intb[]){intn1,n2,n3,count=0,i;for(i=100;i=999;i++){n1=i/100;n2=i/10%10;2012年秋C01-3答案n3=i%10;if((n1*n1*n1+n2*n2*n2+n3*n3*n3)==i){a[count]=i;b[count++]=n3*100+n2*10+n1;}}returncount;}intmain(){inta[100],b[100],i,count=0;FILE*fp;fp=fopen(myf2.out,w);count=sxh(a,b);printf(Threedaffodilnumber:);fprintf(fp,Threedaffodilnumber:);for(i=0;icount;i++){printf(%5d,a[i]);fprintf(fp,%5d,a[i]);}printf(\n);fprintf(fp,\n);printf(Threeinversenumber:);fprintf(fp,Threeinversenumber:);for(i=0;icount;i++){printf(%5d,b[i]);fprintf(fp,%5d,b[i]);}printf(\n);fprintf(fp,\nMyexamnumberis:0112400123);fclose(fp);getch();return0;}【评分标准】共24分一、main函数(共12分)1.函数框架:2分(头部1分,一对花括号1分)2.文件操作:3分(#include,声明文件指针变量,fopen各1分)3.变量/数组声明并得到初值:2分4.函数调用:2分5.输出结果到屏幕:1分,输出结果到文件:1分,输出准考证号到文件:1分二、sxh函数(共12分)1.函数框架:3分(头部2分,一对花括号1分)2.变量/数组声明并得到初值:2分2012年秋C01-4答案3.查找水仙花数并存放到a数组中:3分4.生成所有水仙花数的反序数并存放到b数组:3分5.函数返回水仙花数的个数:1分

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功