C语言实验报告材料四Word文件下载.docx
《C语言实验报告材料四Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言实验报告材料四Word文件下载.docx(12页珍藏版)》请在冰点文库上搜索。
#include"
stdio.h"
intisEven(inta)
{
if(a%2==0)
return1;
else
return0;
}
intmain()
intm,i,b;
scanf("
%d"
&
m);
for(i=1;
i<
=m;
i++)
{
scanf("
b);
if(isEven(b)==1)
printf("
偶数\n"
);
else
printf("
奇数\n"
}
return0;
2.温度转换
编写一个用户自定义函数,函数的功能是:
将华氏温度转F换为摄氏温度C。
转换公式为:
C=5*(F-32)/9。
编写一个程序,输出指定范围的华氏温度与摄氏温度的对照表,其中华氏温度步长为4。
两个空格隔开的整数n,m(且0<
n<
m<
1000)
华氏温度与摄氏温度的对照表
3245
320.00
362.22
404.44
446.67
#include"
floatconver(intf)
return5*(f-32)/9.0;
intn,m,i;
%d%d"
n,&
for(i=n;
i+=4)
printf("
%d%10.2f\n"
i,conver(i));
return0;
3.最大值函数
编写一个用户自定义函数,该函数有三个整数参数,函数的功能是:
求解这三个整数的最大值,函数的返回值为三个参数的最大值。
编写一个程序,从键盘输入任意5个整数,分别两次调用用户自定义函数来求出这5个整数中的最大值。
第一行为N,表示有N组数据,接下来是N行,每行是5个用空格隔开的整数(在VC++6.0int范围)。
有N行,每行是对应输入的5个整数的最大值。
3
12345
54321
12534
5
5
intmax(inta,intb,intc)
intt;
t=a;
if(b>
t)
t=b;
if(c>
t=c;
returnt;
intn,a,b,c,d,e,i;
n);
for(i=1;
=n;
{
scanf("
%d%d%d%d%d"
a,&
b,&
c,&
d,&
e);
%d\n"
max(a,b,max(c,d,e)));
}
4.三位数数字排序
对于给定的若干个三位正整数,将它们的各位上的数字按由小到大的顺序输出。
要求,写一个函数,能将其整型参数的各位数字按照由小到大进行输出。
主函数完成对输入的若干个三位数,分别调用该函数,完成指定的输出。
若干行,每行有一个三位正整数,输入为0结束。
有若干行,依次对应于非0的整数,将相应三位正整数的数字由小到大输出,数字间没有空格。
123
987
670
789
067
intmain(void)
intn,a[4],xx,sum;
while(n!
=0)
inti,j;
=3;
a[i]=n%10;
n/=10;
for(j=i;
j<
j++)
{
if(a[i]>
a[j])
{
xx=a[j];
a[j]=a[i];
a[i]=xx;
}
}
printf("
a[i]);
\n"
5.排列数计算
表示从m个元素中抽出n个元素的排列的个数。
计算公式为:
编写一个用户自定义函数,该函数有一个整数参数,函数的功能是求解这个整数的阶乘,函数的返回值为这个整数的阶乘。
编写一个程序,从键盘输入m、n值,分别两次调用用户自定义函数来求解
多行测试数据,每行两个用空格隔开的整数,00表示结束。
有多行,对应于非00行的排列值。
53
82
00
60
56
intmain(void)
{
doublen,m,t;
doublex1,x2,i,k,kk;
scanf("
%lf%lf"
m,&
while(n!
=0&
&
m!
=0)
{
x1=1;
/*if(m<
n)
{
t=m;
m=n;
n=t;
}
*/
i++)
x1*=i;
k=m-n;
x2=1;
=k;
x2*=i;
kk=x1/x2;
%.0lf\n"
kk);
scanf("
}
6.素数对
哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.做好了这件实事,就能说明这个猜想是成立的.由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的,而且素数对中的第一个数不大于第二个数.
输入中是一些偶整数M(6<
M<
=10000).
对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数(要求这两个素数是不等的)。
20
30
40
46
713
1317
1723
1729
intprime(intn)
inti;
for(i=2;
n;
if(n%i==0)
return0;
intm,i;
while(scanf("
m)==1)
for(i=m/2;
i>
=2;
i--)
if(prime(i)&
prime(m-i)&
i!
=m-i)
%d%d\n"
i,m-i);
break;
7.函数表达式计算
计算下列表达式的值:
输入x和n的值,其中x为非负实数,n为正整数。
输出f(x,n),保留2位小数。
3
2
2.00
math.h"
/*
f(x,1)=sqrt(1+x);
f(x,2)=sqrt(2+sqrt(1+x))=sqrt(2+f(x,1));
f(3,x)=sqrt(3+sqrt(2+qrt(1+x)))=sqrt(3+f(x,2));
......
f(x,n)=sqrt(n+f(x,n-1));
*/
doublef(doublex,intn)
if(n>
1)
returnsqrt(n+f(x,n-1));
returnsqrt(1+x);
intn;
doublex;
%lf%d"
x,&
%.2f\n"
f(x,n));
8.递归公约数
递归形式的公约数定义如下:
使用此定义求两个整数的最大公约数。
有多行,每行为两个用空格隔开的整数。
对应的有多行,每行为对应输入的两个整数的最大公约数。
12
95
113
6
#include"
intgcd(intm,intn)
if(m%n==0)
returnn;
else
gcd(n,m%n);
inta,b;
while(scanf("
b)==2)
gcd(a,b));
}