C语言程序设计何钦铭 颜 晖 第5章函数文档格式.docx
- 文档编号:20057966
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:13
- 大小:19.59KB
C语言程序设计何钦铭 颜 晖 第5章函数文档格式.docx
《C语言程序设计何钦铭 颜 晖 第5章函数文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计何钦铭 颜 晖 第5章函数文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
i++)
result=result+i;
returnresult;
n)之和,则需要在main()中定义2个变量m和n:
%d%d"
m,&
sum(m,n));
同时在函数定义时需设置2个形参:
intsum(intm,intn)
for(i=m;
【练习5-2】使用函数找最大值:
输入2个数,输出其中较大的数。
要求定义和调用函数max(a,b)找出并返回a、b中较大的数。
试编写相应程序。
doublemax(doublea,doubleb);
inta,b;
printf(“Inputaandb:
”);
%lf%lf"
&
a,&
b);
max=%lf\n"
max(a,b));
doublemax(doublea,doubleb)
if(a>
b)
returna;
else
returnb;
【练习5-3】数字金字塔:
输入一个正整数n,输出n行数字金字塔。
intn,i,j;
printf(“Entern:
i++){
for(j=1;
j<
=n-i;
j++)
"
);
=i;
%d"
i);
putchar('
\n'
}
【练习5-4】思考:
若把例5-9中静态变量f定义成普通局部变量,还能实现计算n!
吗请上机检验。
若把f换成全局变量又会如何
若把例5-9中静态变量f定义成普通局部变量,无法实现计算n!
,因为函数返回后f单元被系统回收,不再保存原有数据。
若把f换成全局变量,则能实现计算n!
,因为f的作用范围和生命周期一直存在。
习题5
一、选择题
1.在C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为D。
A.voidB.doubleC.charD.int
2.下列程序的输出结果是D。
fun(inta,intb,intc)
{c=a*b;
{intc;
fun(2,3,c);
printf(”%d\n”,c);
A.0B.1C.6D.无法确定
3.建立自定义函数的目的之一是B(优先)、C。
A.提高程序的执行效率B.提高程序的可读性
C.减少程序的篇幅D.减少程序文件所占内存
4.以下正确的函数定义形式是A。
A.doublefun(intx,inty)B.doublefun(intx;
inty)
C.doublefun(intx,inty);
D.doublefun(intx,y)
5.以下不正确的说法是C。
A.实参可以是常量、变量或表达式
C.形参可以是常量、变量或表达式
B.实参可以是任何类型
D.形参应与对应的实参类型一致
6.以下正确的说法是D。
A.实参与其对应的形参共同占用一个存储单元
B.实参与其对应的形参各占用独立的存储单元
C.只有当实参与其对应的形参同名时才占用一个共同的存储单元
D.形参是虚拟的,不占用内存单元
二、填空题
1.下列程序的输出结果为2357。
intfun3(intm);
{intn;
for(n=1;
n<
10;
n++)
if(fun3(n)==1)printf("
n);
return0;
intfun3(intm)
{inti;
if(m==2||m==3)return1;
if(m<
2||m%2==0)return0;
for(i=3;
m;
i=i+2)
if(m%i==0)return0;
return1;
}
2.输入若干个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列,请根据题意,将程序补充完整。
intfun1(intm);
while(n>
0){
if(fun1(n))
%d中各位数字按从小到大排列\n"
intfun1(intm)
{intk;
k=m%10;
while(m)
if(m/10%10>
k)
return0;
else{m=m/10;
k=m%10;
return1;
3.下列函数输出一行字符:
先输出kb个空格,再输出n个指定字符(由实参指定)。
请根据题意,将程序补充完整。
voidprint(intkb,intn,charzf)
=kb;
printf(“”);
for(i=1;
i++)
printf(“%c”,zf);
三、程序设计题
1.使用函数计算分段函数的值:
输入x,计算并输出下列分段函数f(x)的值。
要求定义和调用函数sign(x)实现该分段函数。
1x>0
f(x)=0x=0
-1x<0
intsign(intx);
intx,y;
scanf("
x);
y=sign(x);
printf("
sign(%d)=%d\n"
x,y);
intsign(intx)
inty;
if(x>
0)y=1;
elseif(x==0)y=0;
elsey=-1;
returny;
2.使用函数求奇数和:
输入一批正整数(以零或负数为结束标志),求其中的奇数和。
要求定义和调用函数even(n)判断数的奇偶性,当n为偶数时返回1,否则返回0。
inteven(intn);
intn,sum;
sum=0;
while(n>
0){
if(even(n)==0)sum=sum+n;
Thesumoftheoddnumbersis%d.\n"
sum);
inteven(intn)
if(n%2==0)y=1;
elsey=0;
returny;
3.使用函数计算两点间的距离:
给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留2位小数)。
要求定义和调用函数dist(x1,y1,x2,y2)计算两点之间的距离。
#include<
doubledist(doublex1,doubley1,doublex2,doubley2);
doublex1,y1,x2,y2;
printf("
Enterx1andy1:
x1,&
y1);
Enterx2andy2:
x2,&
y2);
Distance=%.2lf"
dist(x1,y1,x2,y2));
doubledist(doublex1,doubley1,doublex2,doubley2)
doubledistance;
distance=sqrt(pow(fabs(x2-x1),2)+pow(fabs(y2-y1),2));
returndistance;
4.利用函数计算素数个数并求和:
输入两个正整数m和n(1<
=m,n<
=500),统计并输出m和n之间的素数的个数以及这些素数的和。
要求定义并调用函数prime(m)判断m是否为素数。
intprime(intm);
intm,n,sum,count;
printf("
Inputm:
scanf("
m);
Inputn:
scanf("
sum=0;
count=0;
for(;
m<
=n;
m++){
if(prime(m)==1){
sum=sum+m;
count++;
}
printf("
%d和%d之间素数的个数:
%d\n"
m,n,count);
%d和%d之间素数的和:
m,n,sum);
return0;
intprime(intm)
inti;
for(i=2;
i<
=sqrt(m);
i++)
if(m%i==0)return0;
if(i>
h&
&
m!
=1)return1;
5.使用函数统计指定数字的个数:
读入一个整数,统计并输出该数中“2”的个数。
要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。
例如,countdigit(12292,2)的返回值是3。
intcountdigit(intnumber,intdigit);
intnumber,digit;
printf("
Enteraninteger:
number);
Numberofdigit"
digit);
:
countdigit(number,digit));
intcountdigit(intnumber,intdigit)
inta,count;
if(number<
0)number=-number;
while(number>
0){
a=number;
if(number%10==digit)
count++;
number=number/10;
}
returncount;
6.使用函数输出水仙花树:
=m,n<
=1000),输出m~n之间所有满足各位数字的立方和等于它本身的数。
要求定义并调用函数is(number),判断number的各位数字之立方和是否等于它本身。
intis(intnumber);
inti,m,n;
Inputmandn:
result:
\n"
if(is(i)!
=0)
intis(intnumber)
intdigit,sum,temp;
temp=number;
while(temp!
=0){
digit=temp%10;
temp=temp/10;
sum=sum+digit*digit*digit;
returnsum==number;
7.使用函数求余弦函数的近似值:
输入精度e,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e。
要求定义和调用函数funcos(e,x)求余弦函数的近似值。
cosx=x0/0!
-x²
/2!
+x4/4!
-x6/6!
+…
doublefuncos(doublee,doublex);
doublee,sum,x;
Inputeandx:
e,&
sum=funcos(e,x);
cos%lf=%lf\n"
x,sum);
doublefuncos(doublee,doublex)
intflag,i;
doubleitem,sum,tmp,power;
flag=1;
power=1;
tmp=1;
i=0;
item=1;
sum=0;
while(fabs(item)>
=e){
item=flag*power/tmp;
sum=sum+item;
power=power*x*x;
tmp=tmp*(i+1)*(i+2);
flag=-flag;
i=i+2;
returnsum;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计何钦铭 第5章 函数 语言程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)