c语言第八章函数上机作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章
通过本章实验作业应达目标
1. 掌握定义和调用函数的方法
2.掌握函数嵌套调用的方法
3.掌握通过“值传递”调用函数的方法
4.理解变量作用域和存在期的概念,掌握全局变量和局部变量,动态变量和静态变量的定义、说明和使用方法
本章上交作业
程序8_1.c、8_2.c、8_4.c、8_5.c上传至211.64.135.121/casp。
实验一判断素数的函数
【实验目的】
掌握用函数实现判断素数的方法。
【实验内容】
编写一个函数int prime(int a),判断参数是否为素数。函数有一个形参a,当a 为素数时,返回1,反之,返回0。以8_1.c命名本程序并上交。
函数声明如下:
int prime( int a );
主函数如下:
#include
#include
void main ( )
{
int a, b;
printf("please input a number:\n");
scanf("%d", &a);
b = prime( a );
if ( b = =1 )
printf("the number is a prime number.");
else
printf("the number is not a prime number.");
}
int prime( int a ) { …… }
实验二求最大公约数与最小公倍数
【实验目的】
熟练函数的嵌套调用。
【实验内容】
编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回。在main函数中实现输入与输出。以8_2.c命名本程序并上交。
主函数如下:
#include
void main( )
{
int gongyueshu( int a, int b );
int gongbeishu( int a, int b );
int a, b, c, d;
printf("please input two integer numbers:");
scanf("%d%d", &a, &b);
c=gongyueshu(a, b);
d=gongbeishu(a. b);
printf("gongyueshu is %d\n gongbeishu is %d",c,d);
}
int gongyueshu( int a, int b )
{ ……}
int gongbeishu( int a, int b )
{ …… }
【实验提示】
可以在最小公倍数中嵌套调用最大公约数函数。最小公倍数=a*b/最大公约数
实验三求数组逆序的函数
【实验目的】
熟练掌握操作数组的方法及数组名作函数参数的使用方法。
【实验内容】
从键盘输入int型数组a[ 20 ]的20 个元素值,编写一个函数实现对数组元素数据的逆序放置。即第1个元素与第20个元素互换,第2个元素与第19个元素互换,……,第10个元素与第11个元素互换。请完善下述程序并以8_3.c命名本程序。
#include
void main( )
{
void nixu( int a[ ], int n ); /* 逆序函数声明 */
int a[20],x;
for (x=0;x<20;x++ )
scanf("%d",&a[x]);
printf("Before invert,the array is:\n");
for (x=0;x<20;x++ )
printf("%d ",a[x]);
printf(“\n”);
nixu(a,20); /* 调用逆序函数,注意实参是什么 */
printf("\nAfter invert,the array is:\n");
for (x=0;x<20;x++ )
printf("%d ",a[x]);
printf(“\n”);
}
void nixu(int a[ ], int n)
{
int i, t;
for (i=0;i<________; i++)
{ t=a[i]; ________; a[n-1-i]=t; }
}
实验四数组中插入元素的函数
【实验目的】
学习在一维数组中插入元素的方法。
【实验内容】
参照给定的主函数,编写一个函数void insert(int a[ ], int n, int y ),它的功能是:把y值插入到有n个数的有序的a数组中, y的值从键盘读入。插入后,数组中的数仍然有序。以8_4.c命名本程序并上交。
对照下面三种情况运行程序:
1)插在最前2)插在最后3)插在中间。
int a[11]={2,4,6,8,10,12,14,16,18,20};
void insert( int a[ ], int n, int number );
void main( )
{
int i, x ;
printf("original array is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");