C程序设计函数实验报告文档格式.docx
《C程序设计函数实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《C程序设计函数实验报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。
本程序应当准备以下测试数据:
17、34、2,1、0。
分别输入数据,运行程序并检查结果是否正确。
由题意,得程序为:
#include<
stdio.h>
voidmain()
{
intn;
boolprime_number(intx);
printf("
Pleaseenteraninteger.\n"
);
scanf("
%d"
&
n);
if(prime_number(n))
{
printf("
%disaprimenumber\n"
n);
}
else
%disn'
taprimenumber\n"
}
boolprime_number(intx)
boolflag=true;
for(inti=2;
i<
x/2&
&
(flag==true);
i++)
if(x%i==0)
flag=0;
returnflag;
运行情况:
分析:
程序开始:
boolprime_number(intx);
声明一个函数,函数返回值为bool型,函数名为prime_number,函数带一个int型参数。
scanf("
从屏幕输入数n。
if(prime_number(n))调用函数,传入参数n。
flag=false;
这部分是函数的定义,函数中声明了bool型变量flag,用了存储判断的结果,接下来用for语句来进行计算,当数x是素数时,把FALSE赋给flag,最后返回flag的值。
(2)用一个函数来实现将一行字符串中最长的单词输出。
此行字符串从主函数传递给该函。
把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。
程序为:
(用一个文件)
#include<
string.h>
intalphabetic(char);
intlongest(char[]);
inti;
charline[100];
inputoneline\n"
gets(line);
printf("
thelongestwordis\n"
for(i=longest(line);
alphabetic(line[i]);
%c"
line[i]);
\n"
intalphabetic(charc)
if((c>
='
a'
c<
z'
)||(c>
A'
Z'
))
return
(1);
return(0);
intlongest(charstring[])
intlen=0,i,length=0,flag=1,place=0,point;
for(i=0;
=strlen(string);
if(alphabetic(string[i]))
if(flag)
{
point=i;
flag=0;
}
else
len++;
else
{
flag=1;
if(len>
=length)
length=len;
place=point;
len=0;
}
return(place);
把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。
(3).
用递归法将一个整数n转换成字符串。
例如,输入483,应输出字符串“483”。
n的位#include<
voidcovert(intn);
inputn\n"
%ld"
if(n<
0)
putchar('
-'
n=-n;
covert(n);
voidcovert(intn)
if((i=n/10)!
=0)
covert(i);
n%10+'
0'
}数不确定,可以是任意的整数。
(习题8.17)
(4).
求两个整数的最大公约数和最小公倍数。
用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。
(习题8.1)
①不用全局变量,分别用两个函数求最大公约数和最小公倍数。
两个整数在主函数中输人,并传送给函数l,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。
inta,b;
inthcf(int,int);
intlcd(int,int,int);
请输入a,b\n"
scanf("
%d,%d"
a,&
b);
最大公约数为:
%d\n"
hcf(a,b));
最小公倍数为:
lcd(a,b,hcf(a,b)));
inthcf(intx,inty)
intt,r;
if(x<
y)
{t=x;
x=y;
y=t;
while(y!
{r=x%y;
y=r;
return(x);
intlcd(intx,inty,intz)
{return(x*y/z);
②用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。
将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。
include<
inta,b,x,n;
voidhcf();
voidlcd();
n=a*b;
hcf(a,b);
a);
lcd(n,a,x);
x);
voidhcf()
if(a<
b)
{t=a;
a=b;
b=t;
while(b!
{r=a%b;
b=r;
voidlcd()
{x=n/a;
(5).
写一函数,输入一个十六进制数,输出相应的十进制数。
(习题8.16)
#defineMAX1000
inthtoi(chars[]);
intc,i,flag,flag1;
chart[MAX];
i=0;
flag=0;
flag1=1;
\n请输入十六进制数:
"
while((c=getchar())!
\0'
MAX&
flag1)
if(c>
9'
||c>
'
f'
F'
)
t[i++]=c;
elseif(flag)
t[i]='
;
printf("
十进制数位:
htoi(t));
是否继续?
c=getchar();
if(c=='
N'
||c=='
n'
flag1=0;
i=0;
printf("
\n再输入十六进制数"
inthtoi(chars[])
inti,n;
n=0;
s[i]!
if(s[i]>
s[i]<
n=n*16+s[i]-'
+10;
return(n);
四、实验总结。
C语言是一门基础开发语言,其应用十分广泛。
而C语言函数及其用法是学习、开发C语言程序的基础。
2010年6月3日