文档库 最新最全的文档下载
当前位置:文档库 › c语言编程例题及答案

c语言编程例题及答案

c语言编程例题及答案
c语言编程例题及答案

实验报告三

(四学时)

2.1 实验目的

(1)掌握函数的定义和调用;

(2)了解函数间的参数传送;

2.2 基础实验

【题目3-1】编写函数实现将输入的字母转换成大写字母(若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母”)。

算法分析:

1、输入:通过键盘接收一个字符;

2、条件判断:调用判别函数

3、函数功能为:蒋所输入字符进行判别处理,若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母”

4、程序结束。

【实验3-1】代码及运行结果:

【题目3-2】从键盘输入若干个同学计算机课程期末考试成绩(学生人数可由用户输入),求该课程的期末成绩的平均分并输出。

函数功能要求:实现若干(例如5名)同学的的期末成绩输入,并统计出平均分。

算法分析:

1、输入:通过键盘接收同学个数;

2、调用求平均分函数

3、输出平均成绩

4、程序结束。

【实验3-2】代码及运行结果:

【题目3-3】请用函数编写程序实现:计算3 到100 之间所有素数的平方根之和,并输出。s=148.874270。

算法分析:

1、编写函素数判别函数,确定返回标记,如果是素数返回1,否则返回0

2、编写主函数,用一重循环遍历100以内所有数据

2.1、通过素数判别函数对循环的数据进行是否为素数的判别

2.2、返回判别为真的整数,并输出

3、程序结束。

【实验3-3】代码及运行结果:

#include

#include

int Prime(int x)

{

int i ;

if(x<=1)

return 0;

for(i=2;i<=x-1;i++)

{

if(x%i==0)

{

return 0;

}

}

return 1;

}

int main()

{

double i,sum;

i=3;

sum=0;

while(i<=100)

{

if(Prime(i))

{

sum=sum+sqrt(i);

}

else

{

sum=sum+0;

}

i++;

}

printf("sum=%f\n",sum);

return 0;

}。

【实验3-4】要求:请编写一个函数fun,它的功能是:根据以下公式求π 的值(要求满足精度0.0005, 即某项小于0.0005 时停止迭代):

输出参考结果如下:

算法分析:

1.编写函数fun进行通项公式求解

2.在主函数中对fun函数进行调用,采用循环调用的方式得到每一项的运算结果

3.判断通项公式的计算结果是否在精度范围要求内,从而确定循环是否继续执行

4.输出通项公式运算加和

【实验3-4】代码及运行结果:

2.3 延伸训练

【实验3-5】编写函数fun,其功能是:根据以下公式求P 的值,结果由函数值带回。m 与n 为两个正整数且要

求m > n,。例如: m=12,n=8 时,运行结果为495.000000。

【实验3-5】代码及运行结果:

【实验3-6】编写一个函数,通过计算机随机产生一道四则运算题(两个操作数为在1-10之间的整数,操作类型为加、减、乘、除中的任意一种),并要求作答。

若输入答案正确,则显示“Right!”,否则显示“Not correct!”。

然后,在main函数中调用该函数,完成若干道题目测试,并显示回答正确的题目数量。

提示:关于生成随机数

程序运行实例:

【实验3-6】代码及运行结果:

#include

#include

#include

#include

int calculate (int s);

int main()

{

int s;

printf("请输入需要完成的题目数量:");

scanf("%d",&s);

printf("\n");

printf("回答正确%d道题目\n",calculate(s));

return 0;

}

int calculate(int s)

{

int a=0;

int b=0;

int mode=0;

double c=0;

double result=0;

int count=0;

int i;

srand((unsigned)time(NULL));

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

{

a=rand()%10+1;

b=rand()%10+1;

mode=rand()%4;

printf("%d",a);

switch(mode)

{

case 0:

printf("+");

result=a+b;

break;

case 1:

printf("-");

result=a-b;

break;

case 2:

printf("*");

result=a*b;

break;

case 3:

printf("/");

result=1.0*a/b;

break;

default:

printf("something is wrong!\n");

break;

}

printf("%d=\n",b);

printf("请输入计算结果:\n");

scanf("%lf",&c);

if(fabs(c-result)<1e-6)

{

count++;

printf("Right\n\n");

}

else

{

printf("Wrong\n正确答案是:%f\n\n",result);

}

}return count; }

3 实验总结

相关文档