C语言编程05.doc

上传人:asd****56 文档编号:79326562 上传时间:2023-03-21 格式:DOC 页数:6 大小:60KB
返回 下载 相关 举报
C语言编程05.doc_第1页
第1页 / 共6页
C语言编程05.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《C语言编程05.doc》由会员分享,可在线阅读,更多相关《C语言编程05.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、题目填空题str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。例如:str=“how do you do”,结果为:num=4。注意:部分源程序给出如下。试题程序:#include#define N 80void fun(char *s,int *num) int i,n=0; for(i=0; i=a&si=z&(si+1= |si+1=0)n+【2】; *num=n【3】;main() char strN; int nu

2、m=0; printf(Enter a string:n); gets(str); while(strnum)num+; fun(str,&num); printf(The number of word is :%dnn,num);答案【1】i*num【2】n+【3】*num=n知识点评析填空1:*num传入字符串的长度,所以for循环中变量i的变化范围是从0到*num-1。填空2:如果当前判断的字符是小写字母,并且它的下一个字符是空格或者是字符串结束标记符,则表示当前字符是一个单词的最后一个字母,统计单词数的变量n要加上1。填空3:题目要求结果由变量num传回,所以要将n的值赋给指针num所

3、指的单元。相关知识题目改错题下列给定程序中,fun()函数的功能是:根据形参m,计算下列公式的值。t=1-1/21/3-1/4(-1)(m+1)/m例如,若输入5,则应输出0.783333。请改正程序中的错误,使它能得到正确结果。试题程序:#include #include /*found*/int fun(int m) double t=1.0,j=1.0; int i;/*found*/ for(i=1;im;i+) j=-1*j;t+=j/i; return t;main() int m; clrscr(); printf(nPlease enter 1 integer number:

4、); scanf(%d,&m); printf(nThe result is %lfn, fun(m);答案(1)错误:int fun(int m)正确:double fun(int m)(2)错误:for(i=1;im;i+)正确:for(i=2;i=m;i+)知识点评析错误1:函数的返回值为实型数,所以应定义为double类型。错误2:根据题目的公式,参加运算的数应从2到m,包括m。相关知识题目编程题请编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。试题程序:#include #in

5、clude void fun(int *a,int *n)main( ) int aa1000, n, k; clrscr( ); fun(aa,&n); for(k=0;kn;k+) if(k+1)%10=0) printf(%5d ,aak); printf(n ); /*一行写10个数*/ else printf(%5d ,aak);答案void fun(int *a,int *n) int i,j=0; for(i=1;i=1000;i+) /*求1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,并放入数组a中*/ if(i%5=0|i%13=0)&i%65!=0)

6、 aj+=i; *n=j; /*传回满足条件的数的个数*/知识点评析注意本题题目是找出能被5或13整除但不能同时被5和13整除的所有整数。能同时被5和13整除的整数一定能被65整除,且不能被65整除的数不一定就是能被5或13整除的数。所以可得出程序中的if()。按运算优先级可知(i%5=0|i%13=0),注意,两边必须要有小括号。相关知识题目填空题str是一个由数字和字母字符组成的字符串,num传入字符由变量串长度。请补充函数fun(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。例如:str=“Bcd123e456hui890”,结果

7、为:123456890。试题程序:#include#define N 80int bbN;int fun(char s,int bb,int num) int i,n=0; for(i=0;i=0&si=9)bbn=si-0【2】;n+; return n【3】;main() char strN; int num=0,n,i; printf(Enter a string:n); gets(str); while(strnum)num+; n=fun(str,bb,num); printf(nbb= ); for(i=0;i= 0 &si= 9【2】si- 0【3】n知识点评析填空1:如果当前字

8、符的ASCII码大于字符0的ASCII码,而小于字符9的ASCII码,则说明当前字符是数字字符。填空2:将数字字符转换为数字的方法是,用当前数字字符的ASCII码减去字符0的ASCII码。填空3:题目要求函数返回数组bb的长度,而变量n记录了数字字符的个数,也就是数组bb的长度,所以函数应该返回n。相关知识题目改错题下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:85 65.5 69 95.5 87 55 62.5 75则高于平均分的学生人数为4(平均分为74.312500

9、)。试题程序:#include #include #define N 20int fun(float *s, int n,float *aver) /*found*/int ave ,t=0; int count=0,k,i; for(k=0;kn;k+) t+=sk; ave=t/n; for(i=0;in;i+)/*found*/ if(siave) count+;/*found*/ aver=ave; return count;main() float s30,aver; int m,i; clrscr(); printf(nPlease enter m: ); scanf(%d,&m)

10、; printf(nPlease enter %d mark :n,m); for(i=0;im;i+) scanf(%f,s+i); printf(nThe number of students :%dn,fun(s,m,&aver); printf(Ave=%fn,aver);答案(1)错误:int ave ,t=0;正确:float ave ,t=0.0;(2)错误:if(siave)(3)错误:aver=ave;正确:*aver=ave;知识点评析错误1:ave和t分别用来存放成绩的平均值和总分,应为实型数。错误2:根据题意,找出高于平均分的数,所以此处的关系运算符应为错误3:aver

11、是指针,而ave是一个数,不能将一个数赋值给一个指针,而要用符号*。相关知识题目编程题请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。若两个字符串长度相等,则返回第1个字符串。例如,输入nanjing nanchang (为回车键),函数将返回nanjing。试题程序:#includechar *fun(char *s, char *t)main() char a20,b10,*p,*q; int i; printf(Input 1th string: ); gets(a); printf(Input 2th str

12、ing: ); gets(b); printf(%s,fun(a,b);答案char *fun(char *s, char *t) int i,j; for(i=0;si!= 0;i+); /*求字符串的长度*/ for(j=0;tj!= 0;j+); if(i=j) /*比较两个字符串的长度*/ return s; /*函数返回较短的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return t;知识点评析本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。

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

当前位置:首页 > 技术资料 > 其他杂项

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

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