c语言_函数的定义与使用.docx
实验报告实验目的:1. 熟练掌握函数的定义与使用实验内容:1. 有如下的一段程序,程序调用maxt()函数将两个数中的最大值输出,并根据最大值打印相应行的#号,请定义printat()函数、maxt()函数与printnx()函数并将主程序补充完整,使之正常运行。#include <stdio.h>void main()int a=3,b=4,max;printat();/打印一行号printf("打印ab行的#号n");max=maxt(a,b);printnx(max);/打印max行#号1).无参无返回值函数函数名printat函数返回值无返回值函数参数无参数函数功能打印一行号2)有参无返回值函数函数名printnx 函数返回值无返回值函数参数有一个参数,(形式参数),是整型函数功能打印n行#号3).有参有返回值函数 函数名maxt函数返回值有返回值,函数类型为整型函数参数有两个整型的参数函数功能返回a与b中的最大值阅读知识:.如何在主函数中使用用户自定义的函数函数调用基础知识用户自定义函数在main()函数中调用时的三种方式:1. 函数语句把函数调用作为一个语句,适用无返回值的函数 printstar( );2函数表达式函数出现在一个表达式中,适用有返回值的函数 c=2*max(a,b);3函数参数函数调用作为一个函数的实参,适用有返回值的函数m=max(a,max(b,c)#include <stdio.h>void main()void printat();void printnx(int n);int maxt(int a,int b);int a=3,b=4,max;printat();printf("打印ab行的#号n");max=maxt(a,b);printnx(max);void printat()printf("n");void printnx(int n)for(int i=1;i<=n;i+)printf("#n");int maxt(int a,int b)int z;if(a>=b)z=a;elsez=b;return (z);2. 有如下的一段程序,程序调用max3t()函数将三个数中的最大值输出,请定义max3t并将主程序补充完整,使之正常运行。#include <stdio.h>void main()int a=3,b=4,c=8,max;max=max3t(a,b,c);printf("三个数中的最大值是%d",max);函数名max3t函数返回值有一个返回值,int型函数参数有三个整型的参数,函数功能返回三个数中的最大值#include <stdio.h>void main()int max3t(int x,int y,int z);int a=3,b=4,c=8,max;max=max3t(a,b,c);printf("三个数中的最大值是%d",max);int max3t(int x,int y,int z)int k;if(x>=y&&x>=z)k=x;else if(y>=x&&y>=z)k=y;else k=z;return (k);3. 有如下的一段程序,程序调用g( )函数进行累加求和,请定义g( )函数并将主程序补充完整,使之正常运行。#include <stdio.h>void main()printf("请输入你想求从到多少的和n");scanf("%d",&n);sum=g(n); /如输入,则g(5)输出+2+3+4+5的和printf("从到%d的和为%d",n,sum);函数名g函数返回值有一个返回值,int型函数参数+2+3+4+5+。g的和#include <stdio.h>void main()int g(int x);int n,sum;printf("请输入你想求从到多少的和n");scanf("%d",&n);sum=g(n); /如输入,则g(5)输出+2+3+4+5的和printf("从到%d的和为%d",n,sum);int g(int x)int sum2=0;for(int i=0;i<=x;i+)sum2=sum2+i;return (sum2);4. 有如下的一段程序,程序调用isryear( )函数进行是否闰年判断,请定义isryear( )函数并将主程序补充完整,使之正常运行。#include <stdio.h>void main()int year;printf("请输入你要判断的年份:");scanf("%d",&year);if(isryear(year)=1) printf("n%d是闰年",year);else printf("n%d不是闰年",year);判断是否是闰年的函数函数名isryear函数返回值有一个,int型函数参数判断是否为闰年#include <stdio.h>void main()int isyear (int year);int year;printf("请输入你要判断的年份:");scanf("%d",&year);if(isyear(year)=1) printf("n%d是闰年",year);else printf("n%d不是闰年",year);int isyear(int year)int a;if(year%4=0&&year%100!=0|year%400=0)a=1;elsea=0;return (a);5. 写一个判素数的isss()函数,在主函数输入一个整数,输出是否素数的信息函数名isss函数返回值有一个,int型函数参数一个函数功能判断一个数是否为素数#include<stdio.h>void main()int isss(int x);int a;scanf("%d",&a);if(isss(a)=1)printf("这个数为素数");elseprintf("这个数不是素数");int isss(int x)int k,n=0;for(int i=2;i<=x;i+)if(x%i=0)n=n+1;if (n=1)k=1;elsek=0;return (k);6. 写一个交换两个变量值的函数函数名change函数返回值无返回值函数参数两个float类型的数函数功能交换两个数的值然后在如下主函数中调用change函数,观察输出的结果,为什么?void main()void change(float a,float b); int m=30,n=40; change(m,n); printf("交换数据后的值m=%d,n=%d",m,n);不能交换7. 有如下的一段程序,程序调用sort( )函数对数组进行排序,请定义sort( )函数并将主程序补充完整,使之正常运行。#include <stdio.h>void main()int num6=3,4,6,2,10,1; sort(num,6); printf("排序后的数组为:"); for(int i=0;i<=5;i+) printf("%d ",numi);编写一个函数,实现数组的排序函数名sort函数返回值无返回值函数参数数组函数功能对数组进行从小到大的排序#include <stdio.h>void main()void sort(int num,int n);int num6=3,4,6,2,10,1; sort(num,6); printf("排序后的数组为:"); for(int i=0;i<=5;i+) printf("%d ",numi);void sort(int num,int n)int i,j,k,t;for(i=0;i<=n-1;i+)k=i;for(j=i+1;j<n;j+)if(numj<numk)k=j;t=numk;numk=numi;numi=t;