实验七 函数
一、实验目的及要求
1.掌握函数的概念,分类,定义和调用。
2.熟练编写函数实现特定的通用功能。
二、实验环境
硬件要求:计算机一台。
软件要求:Windows操作系统,Dev-C++或VC++6.0编译环境
三、实验内容
实验题目(1)
写一个函数,用“选择法”对输入的5个字符按照由小到大顺序排列。要求使用数组作为函数参数。
博主觉得,这道题目的算法不是重点,重点是函数的调用,初学者刚开始使用函数的时候有可能会出错,但是多加练习之后会逐渐熟悉的。
源代码如下:
#include<stdio.h>
void sort(int a[]){
int i,j,temp;
for(i=1;i<5;i++){
for(j=1;j<5;j++){
if(a[j]<a[j-1]){
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<5;i++){
printf("%d",a[i]);
}
}
int main()
{
int a[5];
int i;
printf("Please input 5 nums:\n");
for(i=0;i<5;i++){
scanf("%d",&a[i]);
}
printf("after sort:\n");
sort(a);
return 0;
}
实验题目(2)
编写函数,利用递归方法求解正整数的阶乘。在主函数中输入正整数并调用该函数。
这题的重点就是递归函数,递归函数也是C语言考察的一个重点,初学者可能会有点迷惑,不过不要紧,多练几道题就行了。
代码如下:
#include <stdio.h>
int func(int n) {
while(n>1)
return n * func(n - 1);
}
int main() {
int n;
printf("请输入一个正整数:\n");
scanf("%d", &n);
printf("%d! = %d", n, func(n));
return 0;
}
实验题目(3)
编写函数求解圆面积,圆柱的体积,体积函数调用圆面积函数。在主函数中输入圆半径r和高h。
博主表示,这道题目的重点是函数的嵌套调用,也不是很难,熟悉熟悉就会了。
源代码如下:
#include<stdio.h>
const double PI=3.14;
double area_circle(double r){
return r*r*PI;
}
double volume_cylinder(double r,double h){
return area_circle(r)*h;
}
int main()
{
double r,h;
printf("请输入圆的半径以及圆柱体的高:\n");
scanf("%lf%lf",&r,&h);
printf("圆的面积是:%lf\n圆柱的体积是:%lf",area_circle(r),volume_cylinder(r,h));
return 0;
}
实验题目(4)
编写函数实现指定层数的杨辉三角形。
这道题目,已经是经典的不能再经典的题目了,数学功底好的很快就行写出来了,话不多说,上代码🤭。
源代码如下:
#include <stdio.h>
int get_element(int x,int y)
{
if (y==1||y==x)
{
return 1;
}
return get_element(x-1,y-1)+get_element(x-1,y);
}
void triangle(int len)
{
int i,j;
for (i = 1; i <= len; i++)
{
for (j = 1; j <= i ; j++)
{
printf("%d\t",get_element(i,j));
}
printf("\n");
}
}
int main()
{
int n;
printf("请输入想得到杨辉三角形的行数:\n");
scanf("%d",&n);
triangle(n);
return 0;
}
实验题目(5)
编写函数输出指定行数的星星等腰三角形。

博主表示,这个题目在循环那一章已经出现过,只不过是通过调用函数的方法完成任务。其实道理都是一样的,也不是很复杂,初学者也很快就能理解的。
源代码如下:
#include<stdio.h>
void triangle(int n){
int i,j,space_num=n-1;
for(i=1; i<=n; i++) {
for(j=1; j<=space_num; j++)
printf(" ");
for(j=1; j<=i*2-1; j++)
printf("*");
printf("\n");
space_num--;
}
}
int main()
{
int n;
printf("请输入想得到等腰三角形的行数:\n");
scanf("%d",&n);
triangle(n);
return 0;
}
本文介绍了C语言编程实验,涵盖函数的使用、递归、嵌套调用等核心概念。通过五个具体的实验题目,包括字符排序、阶乘计算、圆柱体积计算、杨辉三角形及等腰三角形的绘制,详细展示了函数在解决实际问题中的应用,旨在帮助初学者掌握函数调用和递归编程技巧。
1589

被折叠的 条评论
为什么被折叠?



