c语言试题补考南通,C语言上机实训国计算机等级考试NCRE二级C南通100题.doc

C语言上机实训国计算机等级考试NCRE二级C南通100题

编程题

第1题

一、题目要求PROC1.c

编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+n)例如:若n的值为11时,函数的值为1.833333。

#include

#include

#include

float fun(int n)

{

}

main()

{int n;float s;

printf("\nplease enter N:"); scanf("%d",&n);

s=fun(n);

printf("the result is : %f\n",s);

}

二、算法分析

主要数据结构

for函数计算s的值并通过函数值返回

算法描述

遍历i计算s的值

将s的值通过函数值返回

三、实现代码

float fun(int n)

{ int i;float s=0.0,a=0.0;

for(i=1;i<=n;i++)

{a=a+i;

s=s+1/a;}

return s;

}

四.调试中遇到的主要问题及解决方法

1、问题:调试输入11时结果为1.000000。 经查在定义时将a定义为整型,导致结果出错,解决方法:将其改为float型即可。

第2题

一、题目要求PROC2.c

请编一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。 例如:若h值为8.32433,则函数返回8.32;若h值为8.32533,则函数返回8.33。

#include

#include

float fun ( float h )

{

}

main( )

{ float a;

printf ("Enter a: "); scanf ( "%f", &a );

printf ( "The original data is : " );

printf ( "%f \n\n", a );

printf ( "The result : %f\n", fun ( a ) );

}

二、算法分析

算法描述

遍历fun函数,计算并返回保留2位小数,并对第三位进行四舍五入的变量h的值

三、实现代码

float fun ( float h )

{ 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/2!+x*x*x/3!+...+x*x*x...*x/n!例如,当n:10,x=O.3时,函数值为1.349859。

#include

#include

#include

double fun(double x, int n)

{

}

main()

{

printf("%f\n",fun(0.3,10));

}

二、算法分析

1、主要数据结构

for函数计算所求级数的和并通过函数值返回

2、算法描述

遍历fun函数计算分子与分母的值,计算级数的和值

将和值通过函数值返回

三、实现代码

double fun(double x, int n)

{int i,a=1;double b=1,s=1;

for(i=1;i<=n;i++)

{a=a*i;

b=b*x;

s=s+b/a;

}

return s;

}

四.调试中遇到的主要问题及解决方法

1、问题:,因将s和b定义为整型,导致调试结果为1.000000,

解决方法:将s和b改为double型

第4题

一、题目要求PROC7.c

请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后,c=4152。

#include

#include

void fun(int a, int b, long *c)

{

}

main()

{ int a,b; long c;

printf("input a, b:"); scanf("%d%d",&a,&b);

fun(a,b,&c);

printf("the

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值