C程序设计---改错

C程序设计---改错

ID:38254299

大小:329.00 KB

页数:64页

时间:2019-06-07

C程序设计---改错_第1页
C程序设计---改错_第2页
C程序设计---改错_第3页
C程序设计---改错_第4页
C程序设计---改错_第5页
资源描述:

《C程序设计---改错》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C程序设计---改错1.给定程序MODI1.C中函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出:3628800。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include#includelongfun(intk){/************found************/ifk>0应改为if(k)0)return(k*fun(k-1));/************found**********

2、**/elseif(k=0)应改为if(k==0)return1L;}main(){intk=10;clrscr();printf("%d!=%ld",k,fun(k));NONO();}NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*rf,*wf;inti,k;rf=fopen("gc02.in","r");wf=fopen("gc02.out","w");for(i=0;i<10;i++){fscanf(rf,"%d,",&k);fprintf(wf,"%d!=%ld",k,fun(k))

3、;}fclose(rf);fclose(wf);}试题解析:在给定的程序中有二个标识行,因此本题共有二个错误。本题要求考生根据题目要求和程序,找出错误行所在位置并修改。错误点1:第一个错误标识下一行。错误点说明:C语言中,If语句后的逻辑表达式需要用括号括起来,而本题的语句:ifk>0不符合该要求。即该语句应改为:“if(k>0)”;参考答案:if(k>0)错误点2:第二个错误标识下一行。错误点说明:题目要求计算k!,在程序的fun函数中,使用递归的算法来求k!,并利用if块语句来判断k的值,当k为0时,则递归计算结束。因此函数的语句:else

4、if(k=0)是判断当k的值等于0就结束递归;在C语言中,“=”表示赋值运算,要判断两变量是否相等,应该用“==”运算符,因此该语句应改为“elseif(k==0)”;参考答案:elseif(k==0)或其他等效语句2.给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。例如,若输入"Iamastudenttotaketheexamination.",则应输出"IaMAstudenTtOtakEthEexamination."。请修改程序中的错误之处,使它能得出正

5、确的结果。注意:不要改动main函数,不得删行,也不得更改程序的结构!#include#include/************FOUND************/include(stdio.a)应改为#include/************FOUND************/upfst(charp)应改为char*p{intk=0;for(;*p;p++)if(k){if(*p=='')k=0;}elseif(*p!=''){k=1;*p=toupper(*p);}}main(){ch

6、archrstr[81];clrscr();printf("PleaseenteranEnglishtextline:");gets(chrstr);printf("Beforechanging:%s",chrstr);upfst(chrstr);printf("Afterchanging:%s",chrstr);}试题分析:本题源程序中有两个错误标识,也就是说在本题中有两个错误存在。错误1位置:在第一个错误标识下一行;说明:文件包含处理的一般形式为#include"文件名"或#include<文件名>,且输入输出库

7、函数的头文件名是"stdio.h",因此,该行应改为#include或#include"stdio.h";参考答案:#include错误2位置:在第二个错误标识下一行;说明:由语句“upfst(chrstr);”调用函数upfst(),因为chrstr是数组类型,在函数upfst()中,变量p是char类型的指针,因此在定义形参变量应是"char*p";参考答案:upfst(char*p)3.给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主

8、函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。例如,当字符串中的内容为:"abcdabfabcdx",t中的内容为:"ab"时,输出结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。