C语言实验报告四.docx
- 文档编号:26210538
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:12
- 大小:35.25KB
C语言实验报告四.docx
《C语言实验报告四.docx》由会员分享,可在线阅读,更多相关《C语言实验报告四.docx(12页珍藏版)》请在冰豆网上搜索。
C语言实验报告四
C语言实验报告(四)
一、实验目的
1.掌握C语言中函数和模块
2.掌握怎样定义函数,如何调用或使用函数,如何声明函数
3.掌握函数的参数,了解在函数调用时,参数是如何传递的
4.在使用函数的过程中怎样确定函数的参数
5.如何使用局部变量和全局变量
二、实验内容
1.偶数判断
描述:
编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:
当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1。
编写一个程序,从键盘输入m个整数,分别调用用户自定义函数来判断这m个整数的奇偶性。
输入:
第一行为一个整数m,表示要判断m个整数的奇偶性;紧接着是m行,每行一个整数。
输出:
有m行,分别对应输入的第2到第m+1行的整数的奇偶性
样例输入:
2
1
6
样例输出:
奇数
偶数
·程序代码:
#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("%d",&b);
if(isEven(b)==1)
printf("偶数\n");
else
printf("奇数\n");
}
return0;
}
2.温度转换
描述:
编写一个用户自定义函数,函数的功能是:
将华氏温度转F换为摄氏温度C。
转换公式为:
C=5*(F-32)/9。
编写一个程序,输出指定范围的华氏温度与摄氏温度的对照表,其中华氏温度步长为4。
输入:
两个空格隔开的整数n,m(且0 输出: 华氏温度与摄氏温度的对照表 样例输入: 3245 样例输出: 320.00 362.22 404.44 446.67 ·程序代码: #include"stdio.h" floatconver(intf) { return5*(f-32)/9.0; } intmain() { intn,m,i; scanf("%d%d",&n,&m); for(i=n;i<=m;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 5 ·程序代码: #include"stdio.h" intmax(inta,intb,intc) { intt; t=a; if(b>t) t=b; if(c>t) t=c; returnt; } intmain() { intn,a,b,c,d,e,i; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); printf("%d\n",max(a,b,max(c,d,e))); } return0; } 4.三位数数字排序 描述: 对于给定的若干个三位正整数,将它们的各位上的数字按由小到大的顺序输出。 要求,写一个函数,能将其整型参数的各位数字按照由小到大进行输出。 主函数完成对输入的若干个三位数,分别调用该函数,完成指定的输出。 输入: 若干行,每行有一个三位正整数,输入为0结束。 输出: 有若干行,依次对应于非0的整数,将相应三位正整数的数字由小到大输出,数字间没有空格。 样例输入: 123 987 670 0 样例输出: 123 789 067 ·程序代码: #include"stdio.h" intmain(void) { intn,a[4],xx,sum; scanf("%d",&n); while(n! =0) { inti,j; for(i=1;i<=3;i++) { a[i]=n%10; n/=10; } for(i=1;i<=3;i++) { for(j=i;j<=3;j++) { if(a[i]>a[j]) { xx=a[j]; a[j]=a[i]; a[i]=xx; } } } for(i=1;i<=3;i++) { printf("%d",a[i]); } printf("\n"); scanf("%d",&n); } return0; } 5.排列数计算 描述: 表示从m个元素中抽出n个元素的排列的个数。 计算公式为: 编写一个用户自定义函数,该函数有一个整数参数,函数的功能是求解这个整数的阶乘,函数的返回值为这个整数的阶乘。 编写一个程序,从键盘输入m、n值,分别两次调用用户自定义函数来求解 输入: 多行测试数据,每行两个用空格隔开的整数,00表示结束。 输出: 有多行,对应于非00行的排列值。 样例输入: 53 82 00 样例输出: 60 56 ·程序代码: #include"stdio.h" intmain(void) { doublen,m,t; doublex1,x2,i,k,kk; scanf("%lf%lf",&m,&n); while(n! =0&&m! =0) { x1=1; /*if(m { t=m; m=n; n=t; } */ for(i=1;i<=m;i++) { x1*=i; } k=m-n; x2=1; for(i=1;i<=k;i++) { x2*=i; } kk=x1/x2; printf("%.0lf\n",kk); scanf("%lf%lf",&m,&n); } return0; } 6.素数对 描述: 哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.做好了这件实事,就能说明这个猜想是成立的.由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的,而且素数对中的第一个数不大于第二个数. 输入: 输入中是一些偶整数M(6 输出: 对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数(要求这两个素数是不等的)。 样例输入: 20 30 40 46 样例输出: 713 1317 1723 1729 ·程序代码: #include"stdio.h" intprime(intn) { inti; for(i=2;i if(n%i==0) return0; return1; } intmain() { intm,i; while(scanf("%d",&m)==1) for(i=m/2;i>=2;i--) if(prime(i)&&prime(m-i)&&i! =m-i) { printf("%d%d\n",i,m-i); break; } return0; } 7.函数表达式计算 描述: 计算下列表达式的值: 输入: 输入x和n的值,其中x为非负实数,n为正整数。 输出: 输出f(x,n),保留2位小数。 样例输入: 3 2 样例输出: 2.00 ·程序代码: #include"math.h" #include"stdio.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)); else returnsqrt(1+x); } intmain() { intn; doublex; scanf("%lf%d",&x,&n); printf("%.2f\n",f(x,n)); return0; } 8.递归公约数 描述: 递归形式的公约数定义如下: 使用此定义求两个整数的最大公约数。 输入: 有多行,每行为两个用空格隔开的整数。 输出: 对应的有多行,每行为对应输入的两个整数的最大公约数。 样例输入: 12 6 95 113 样例输出: 6 1 1 ·程序代码: #include"stdio.h" intgcd(intm,intn) { if(m%n==0) returnn; else gcd(n,m%n); } intmain(void) { inta,b; while(scanf("%d%d",&a,&b)==2) { printf("%d\n",gcd(a,b)); } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告