c语言习题实验七函数答案,C语言实验七函数实验报告.doc

C语言实验七函数实验报告

C语言程序设计

实验题目

实验七 函数

实验目的

掌握函数定义的方法;

掌握函数实参与形参的对应关系,以及值传递的方式。

掌握函数的嵌套调用和递归调用的方法;

掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法;

学习对多文件的程序的编译和运行。

实验内容和步骤

写一个判别素数的函数。在主函数输入一个整数,输出是否是素数的信息。

#include

void main()

{int prime(int);

int m,flag=1;

char c;

while(flag)

{printf("Enter the m:\n");

scanf("%d",&m);

if(prime(m))

printf("%d 是素数!",m);

else

printf("%d 不是素数!",m);

printf("\nContinue or not?(Y&N)\n");

scanf(" %c",&c);

if(c=='Y')

flag=1;

else

flag=0;

}

}

int prime(int m)

{int i,flag=1;

for(i=2;i

if(m%i==0)

flag=0;

return flag;

}

2、用一个函数来实现将一行字符串中最长的单词找出。此行字符串从主函数传递给该函数。

(1)把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。#include

#include

void main()

{int word(char);

int longest(char[]);

int i;

char string[80];

printf("Enter a line:\n");

gets(string);

printf("The longest word is:\n");

for(i=longest(string);word(string[i]);i++)

putchar(string[i]);

putchar('\n');

}

int word(char c)

{if(c>'a'&&c'A'&&c

return 1;

else

return 0;

}

int longest(char string[])

{int len=0,length=0,flag=1,place=0,point,i;

for(i=0;i<=strlen(string);i++)

if(word(string[i]))

if(flag)

{point=i;flag=0;}

else len++;

else

{flag=1;

if(len>length)

{length=len;place=point;}

len=0;

}

return place;

}

(2)、把两个函数分别放在两个程序文件中,作为两个文件进行编译。

注:下图为文件内容(文件名分别为8__10.c和file2.c)

3、用递归法讲一个整数n转换成字符串。

#include

void main()

{void convert(int);

int m;

printf("Enter int m:\n");

scanf("%d",&m);

convert(m);

putchar('\n');

}

void convert(int m)

{int i;

if((i=m/10)!=0)

convert(i);

printf("%c ",m%10+'0');

}

4、求两个整数的最大公约数和最小公倍数。

(1)不用全局变量,分别用两个函数求最大公约数和最小公倍数。两整数在主函数中输入,传递给函数1,以求出最小公倍数,然后再与两个整数一起作为实参传给函数2,以求出最小公倍数,返回主函数输出最大公约数和最小公倍数。

#include

void main()

{int great_commom(int x,int y);

int low_common(int m,int n,int a);

int a,b,m,n; //用m,n,a,b分别代表两个数及其最大公约数和最小公倍数

printf("Please enter two

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值