资源描述:
《C语言上机实训全国计算机等级考试NCRE二级C南通100题.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、编程题第1题一、题目要求PROC1.c编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+n)例如:若n的值为11时,函数的值为1.。#include#include#includefloatfun(intn){}main(){intn;floats;printf("pleaseenterN:");scanf("%d",&n);s=fun(n
2、);printf("theresultis:%f",s);}二、算法分析1.主要数据结构for函数计算s的值并通过函数值返回2.算法描述遍历i计算s的值将s的值通过函数值返回三、实现代码floatfun(intn){inti;floats=0.0,a=0.0;for(i=1;i<=n;i++){a=a+i;s=s+1/a;}returns;}四.调试中遇到的主要问题及解决方法1、问题:调试输入11时结果为1.。经查在定义时将a定义为整型,导致结果出错,解决方法:将其改为float型即可。第2题一、题目要求PRO
3、C2.c请编一个函数floatfun(doubleh),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。例如:若h值为8.32433,则函数返回8.32;若h值为8.32533,则函数返回8.33。#include#includefloatfun(floath){}main(){floata;printf("Entera:");scanf("%f",&a);printf("Theoriginaldatais:");printf("%f
4、",a);printf("Theresult:%f",fun(a));}二、算法分析算法描述遍历fun函数,计算并返回保留2位小数,并对第三位进行四舍五入的变量h的值三、实现代码floatfun(floath){return(int)(h*100+0.5)/100.0;}四.调试中遇到的主要问题及解决方法1、问题:编程时将(h*100+0.5)除以100,导致调试出错解决方法:将100改为100.0第3题一、题目要求PROC5.c请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。S=1+x+x*x/
5、2!+x*x*x/3!+...+x*x*x...*x/n!例如,当n:10,x=O.3时,函数值为1.。#include#include#includedoublefun(doublex,intn){}main(){printf("%f",fun(0.3,10));}二、算法分析1、主要数据结构for函数计算所求级数的和并通过函数值返回2、算法描述遍历fun函数计算分子与分母的值,计算级数的和值将和值通过函数值返回三、实现代码doublefun(doublex
6、,intn){inti,a=1;doubleb=1,s=1;for(i=1;i<=n;i++){a=a*i;b=b*x;s=s+b/a;}returns;}四.调试中遇到的主要问题及解决方法1、问题:,因将s和b定义为整型,导致调试结果为1.,解决方法:将s和b改为double型第4题一、题目要求PROC7.c请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b
7、=12,调用该函数后,c=4152。#include#includevoidfun(inta,intb,long*c){}main(){inta,b;longc;printf("inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("theresultis:%d",c);}二、算法分析计算出a、b十位与个位上的值将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。三、实现代码voidfu
8、n(inta,intb,long*c){intx,y,m,n;x=a/10;y=a%10;m=b/10;n=b%10;*c=x*1000+m*100+y*10+n;}四.调试中遇到的主要问题及解决方法1、问题:在赋值时未对c取内容,出现警告解决方法:对*c赋值即可第5题一、题目要求PROC8.cm个人的成绩存放在score数组中,请编写函数fun,它的功能是