C语言程序设计习题4文档格式.docx
《C语言程序设计习题4文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题4文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
解:
调用前:
k=1n=5a=3.20b=8.50
函数中:
k=101n=500a=-3.00b=-10.50
调用后:
2.编写一个函数,实现从键盘输入一个整数,如果该整数为素数,则返回1,否则返回0。
stdlib.h>
intIs_prime(inti)
{
intj=0;
for(j=2;
j<
i;
j++)
if(0==(i%j))
{
return0;
}
}
return1;
intmain()
inti;
printf("
Pleaseinputanumber:
"
);
scanf("
%d"
&
i);
if(1==Is_prime(i))
%disaprime.\n"
i);
else
%disnotaprime.\n"
system("
pause"
return0;
}
程序运行结果如下:
13↙
13isaprime.
8↙
8isnotaprime.
3.设计两个函数,分别求矩形的周长和面积,并在主函数中调用这两个函数。
floatarea(floata,floatb)
floats;
s=a*b;
return(s);
floatzc(floata,floatb)
floatp;
p=2*(a+b);
return(p);
floata,b,s,p;
请输入长方形的边长a,b:
scanf("
%f%f"
a,&
b);
s=area(a,b);
p=zc(a,b);
长方形的周长为p=%f,长方形的面积为s=%f"
p,s);
程序运行情况如下:
34↙
长方形的周长为p=14.000000,长方形的面积为s=12.000000
4.编写一个函数求一个整数n的阶乘,在主函数中计算并输出10!
的值。
floatfc(intn)
if(n==1||n==0)s=1;
elses=n*fc(n-1);
return(s);
floatk;
k=fc(10);
10!
=%f\n"
k);
=3628800.000000
5.已知函数fun2的原型说明为“longfun2(intm,intn);
”,调用该函数计算m~n的和(其中n>
m>
0),例如:
若m=5,n=20,则计算5+6+7+8+…+20的值。
要求在主函数中通过键盘输入m和n的值,并输出和的值。
longfun2(intm,intn)
longs;
inti;
s=0;
for(i=m;
i<
=n;
i++)
s=s+i;
intn,m,sum;
请输入m,n的值n>
m:
\n"
%d%d"
m,&
n);
sum=fun2(m,n);
sum=%d\n"
sum);
520↙
sum=200
6.编写一个函数重复打印给定的字符n次。
#include<
voidfun2(charm,intn)
for(i=1;
printf("
%c"
m);
charm;
intn;
请输入给定的字符\n"
m);
请输入打印的次数\n"
fun2(m,n);
请输入给定的字符
*↙
请输入打印的次数
5↙
*****
7.写出程序的运行结果,并上机验证其结果。
voidfun1()
intx=5;
x=%d\n"
x);
voidfun2(intx)
++x);
intmain()
intx=2;
fun1();
fun2(x);
x=5
x=3
x=2
8.指出下列程序中各变量的存储属性,并写出程序的执行结果。
(1)#include<
voidadd(inti);
{
inti=1;
add(i);
main:
i=%d\n"
return0;
voidadd(inti)
i=i+3;
add:
add:
i=4
main:
i=1
其中,i是自动型变量。
(2)#include<
voidadd1();
add1();
voidadd1()
解:
i=4
其中,该变量是外部型变量。
(3)#include<
voidadd2(inti);
inti=2;
add2(i);
add2(i);
voidadd2(inti)
{
staticintj=5;
j=i+j;
j=%d\n"
j);
j=7
j=9
其中,变量i是静态型变量。
9.编写程序实现以下图形的输出。
#include<
voidmain()
inti,j,k;
for(i=1;
=5;
i++)//先打印上边的四行
for(j=1;
=5-i;
j++)//控制要打印的空格数量
"
for(k=1;
k<
=2*i-1;
k++)//控制要打印的星号数
*"
10.写出程序的运行结果。
#defineX5
#defineYX+1
#defineZY*X/2
inta;
a=Y;
%d%d\n"
Z,--a);
75
11.编写一个函数,将一个十进制整数转换为二进制数。
#include<
voidmain()
longnum;
intozb();
请输入一个十进制数:
%ld"
num);
%ld的二进制数为:
num);
ozb(num);
intozb(longnum)
inta[32]={0},i=0;
while(num>
=1)
a[i]=num%2;
num=num/2;
i++;
for(i=i-1;
i>
=0;
i--)
a[i]);
return(a[i]);
程序运行结果如下:
请输入一个十进制数:
5的二进制数为:
101
12.编写一个函数,找出任意整数的全部因子。
intN;
voidyz();
scanf("
N);
/*输入N的值*/
yz(N);
voidyz()
inti,p=1;
N+1;
i++)/*执行for语句,是用来求和的*/
if(N%i==0)/*判断是否是N的因子,如果是则加上*/
p=i;
%d"
p);
}
}
15↙
13515