1、写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应当准备以下测试数据:17、34、2,1、0。分别输入数据,运行程序并检查结果是否正确。由题意,得程序为:#includevoid main() int n; bool prime_number(int x); printf(Please enter an integer.n); scanf(%d,&n); if(prime_number(n) printf(%d is a prime numbern,n); else%d isnt a prime numbernbool prime_number(int x) bool f
2、lag=true; for(int i=2;ix/2&(flag=true);i+) if(x%i=0) flag=0; return flag;运行情况:分析:程序开始:bool prime_number(int x);声明一个函数,函数返回值为bool型,函数名为prime_number,函数带一个int型参数。scanf(从屏幕输入数n。if(prime_number(n) 调用函数,传入参数n。 flag= false;这部分是函数的定义,函数中声明了bool型变量flag,用了存储判断的结果,接下来用for语句来进行计算,当数x是素数时,把FALSE赋给flag,最后返回flag的值
3、。(2)用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函。把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。程序为:(用一个文件)#include int alphabetic (char); int longest (char); inti;char line100;input one linen gets(line);printf(the longest word isn for(i=longest(line);alphabetic(linei);%c,linei);nint alphabetic(char c) if(c=acAZ) return(1)
4、; return(0);int longest(char string) intlen=0,i,length=0,flag=1,place=0,point; for(i=0;=strlen(string); if(alphabetic(stringi) if(flag) point=i; flag=0; else len+; else flag=1; if(len=length) length=len; place=point; len=0; return(place);把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。(3).用递归法将一个整数n转换成字符串。例如,输入48
5、3,应输出字符串“483”。n的位#include void covert( int n);input nn%ld if(n0) putchar(- n=-n; covert(n);void covert(int n) if(i=n/10)!=0) covert(i);,n%10+0数不确定,可以是任意的整数。(习题817)(4). 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。(习题8.1)不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输人,并传送给函数l,求出的最大公约数返回主函数,然后再与两个整数一起作为
6、实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。 inta,b; inthcf(int,int); intlcd(int,int,int);请输入a,bn scanf(%d,%da,&b);最大公约数为:%dn,hcf(a,b);最小公倍数为:,lcd(a,b,hcf(a,b);inthcf(intx,int y) intt,r; if(xy) t=x;x=y;y=t; while(y! r=x%y;y=r; return(x);intlcd(intx,inty,int z)return(x*y/z);用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其
7、值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。include inta,b,x,n; void hcf(); void lcd(); n=a*b; hcf(a,b);,a); lcd(n,a,x);,x);void hcf() if(a9|cfF) ti+=c; else if(flag) ti=; printf(十进制数位:,htoi(t);是否继续? c=getchar(); if(c=N|c=n flag1=0; i=0; printf(n再输入十六进制数inthtoi(char s) inti,n; n=0;si! if(sisi n=n*16+si-+10; return(n);四、实验总结。C语言是一门基础开发语言,其应用十分广泛。而C语言函数及其用法是学习、开发C语言程序的基础。 2010年6月 3日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1