最新C语言课后习题答案第八章资料Word格式.docx
《最新C语言课后习题答案第八章资料Word格式.docx》由会员分享,可在线阅读,更多相关《最新C语言课后习题答案第八章资料Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
D)形参应与其对应的实参类型一致
6.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 B__。
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回给实参
D)由用户指定传递方式
7.以下程序有语法性错误,有关错误原因的正确说法是 C__。
main()
{
intG=5,k;
voidPrt_char();
……
k=Prt_char(G);
A)语句voidprt_char();
有错,它是函数调用语句,不能用void说明
B)变量名不能使用大写字母
C)函数说明和函数调用语句之间有矛盾
D)函数名不能使用下划线
8.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 B__。
A)float型
B)int型
C)long型
D)double型
9.C语言规定,函数返回值的类型是由 D__。
A)return语句中的表达式类型所决定
B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
10.下面函数调用语句含有实参的个数为 B__。
func((exp1,exp2),(exp3,exp4,exp5));
A)1B)2C)4D)5(重要)
11.以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
#include<
stdio.h>
math.h>
floatx,y,z,sum;
scanf(“%f%f%f”,&
x,&
y,&
z);
sum=f(【1】__B__)+f(【2】__C__);
printf(“sum=%f\n”,sum);
floatf(floata,floatb)
floatvalue;
value=a/b;
return(value);
【1】A)x-y,x+yB)x+y,x-yC)z+y,z-yD)z-y,z+y
【2】A)x-y,x+yB)x+y,x-yC)z+y,z-yD)z-y,z+y
12.以下正确的描述是 B__。
在C语言程序中A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义不可以嵌套,但函数的调用可以嵌套
C)函数的定义和函数的调用均不可以嵌套
D)函数的定义和函数的调用均可以嵌套
13.以下正确的说法是 A__。
如果在一个函数中的复合语句中定义了一个变量,则该变量
A)只在该复合语句中有效
B)在该函数中有效
C)在本程序范围内均有效
D)为非法变量
14.凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 A__。
A)自动(auto)B)静态(static)
C)外部(extern)D)寄存器(register)
15.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 D__。
A)externB)registerC)autoD)static
(二)填空题(50分)
1.若输入的值是-125,以下程序的运行结果是 -5*5*5__。
intn;
scanf(“%d”,&
n);
printf(“%d=”,n);
if(n<
0)printf(“-”);
n=fabs(n);
fun(n);
fun(intn)
intk,r;
for(k=2;
k<
=sqrt(n);
k++)
{
r=n%k;
while(r==0)
{
printf(“%d”,k);
n=n/k;
if(n>
1)printf(“*”);
r=n%k;
}
}
if(n!
=1)printf(“%d\n”,n);
2.以下程序的运行结果是 i=7;
j=6;
x=7
i=2;
j=7;
x=5。
inti=2,x=5,j=7;
fun(j,6);
printf(“i=%d;
j=%d;
x=%d\n”,i,j,x);
fun(inti,intj)
intx=7;
3.以下程序的运行结果是 111__。
increment();
increment()
intx=0;
x+=1;
printf(“%d”,x);
4.以下程序的运行结果是 maxis2_。
inta=1,b=2,c;
c=max(a,b);
printf(“maxis%d\n”,c);
max(intx,inty)
intz;
z=(x>
y)?
x:
y;
return(z);
5.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisisNO.”。
请填空。
voidYesNo(charch)
switch(ch)
case‘y’:
case‘Y’:
printf(“\nThisisYES.\n”);
_break_;
case‘n’:
case‘N’:
printf(“\nThisisNo.\n”);
charch;
printf(“\nEnterachar‘y’,‘Y’or‘n’,‘N’:
”);
ch=getchar();
printf(“ch:
%c”,ch);
YesNo(ch);
6.以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。
请选择填空。
sub(intk,intn)
inta1,a2;
a2=【1】__C__;
a1=k-【2】__A__;
if((k%3==0&
&
a2==5)||(k%3==0&
a1==5))
printf(“%d”,k);
n++;
returnn;
elsereturn-1;
intn=0,k,m;
for(k=10;
=99;
m=sub(k,n);
if(m!
=-1)n=m;
printf(“\nn=%d”,n);
【1】A)k*10B)k%10C)k/10D)k*10%10
【2】A)a2*10B)a2C)a2/10D)a2%10
7.以下程序的功能是用二分法求方程
的根,并要求绝对误差不超过0.001。
floatf(floatx)
return(2*x*x*x-4*x*x+3*x-6);
floatm=-100,n=90,r;
r=(m+n)/2;
while(f(r)*f(n)!
=0)
if(f(m)*f(r)>
0)m=r;
elsen=r;
if(fabs(f(r))<
=0.001)break;
r=(m+n)/2;
printf(“Theisfangchengjieis%6.3f\n”,r);
8.以下程序的功能是计算下面函数的值。
#include<
floatf(float,float,float);
printf(“\ninputx,y,z:
\n”);
sum=f(x,x-y,x-z)+f(y,y-z,y-x)+f(z,z-x,z-y);
floatf(floata,floatb,floatc)
value=sin(a)/(sin(b)*sin(c));
9.以下程序的运行结果是输出如下图形。
*
***
*****
*******
voida(inti)
intj,k;
for(j=0;
j<
=5-i;
j++)printf(“”);
for(k=0;
2*i-1;
k++)printf(“*”);
printf(“\n”);
inti;
for(i=0;
i<
3;
i++)a(i);
for(i=3;
i>
=0;
i--)a(i);
10.以下程序的功能是用递归方法计算五位学生的年龄,请填空。
递归公式如下:
age(intn)
intc;
if(n==1)c=10;
elsec=age(n-1)+2;
return(c);
intn=5;
printf(“age:
%d\n”,age(5));
}
(三)编程题(20分)
1.用函数编程打印以下图案。
(1)
(2)(3)
Voidf1(intn)
{
inti;
for(i=1;
=n;
i++)printf(““);
Voidf2(intn)
i++)printf(“*“);
(1)main()
(2)main()(3)main()
{{{
f(i=1;
=4;
i++)f(i=1;
i++)
f1(4-i);
f2(2*i-1);
f1(4-i);
f2(6);
printf(“\n”);
printf(“\n”);
}printf(“\n”);
}}
getch();
}}}
2.以下函数p的功能是用递归方法计算x的n阶勒让德多项式的值。
已有调用语句p(n,x);
请编写p函数。
递归公式如下:
floatp(intn,intx)
{}
floatp(intn,intx)
if(n==0)return1;
elseif(n==1)returnx;
else((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n;
3.以下程序的功能是用牛顿法求解方程f(x)=cosx-x=0。
已有初始值x0=3.1415/4,要求绝对误差不超过0.001,函数f用计算迭代公式中
的值,请编写f函数。
牛顿迭代公式是:
即:
#definePI3.1415
floatf(floatx0)
{}
intt=0,k=100,n=0;
floatx0=PI/4,x1;
while(n<
k)
x1=f(x0);
if(fabs(x0-x1)<
0.001){t=1;
break;
else{x0=x1;
n=n+1;
if(t==1)printf(“\nFangchenggengis%10.5f”,x1);
elseprintf(“\nSorry,notfound!
floatf(floatx0)
returnx0-(cos(x0)-x0)/(sin(x0)-1);
4.以下程序的功能是应用弦截法求方程
的根,其中f函数可根据
指定的x的值求出方程的值;
函数xpoint可根据x1和x2求出f(x1)和f(x2)的连线与x
轴的交点;
函数root用来求区间(x1,x2)的实根,请编写root函数。
floatroot(floatx1,floatx2)
floatf(floatx)
{…}
floatxpoint(floatx1,floatx2)/*略*/
floatx1,x2,f1,f2,x;
do{
printf(“inputx1,x2:
scanf(“%f%f”,&
x1,&
x2);
printf(“x1=%5.2f,x2=%5.2f\n”,x1,x2);
f1=f(x1);
f2=f(x2);
}while(f1*f2>
=0);
x=root(x1,x2);
printf(“Arootofequationis%8.4f”,x);
floatroot(floatx1,floatx2)
floatx;
do
300元以下918%{
3.www。
oh/ov。
com/teach/student/shougong/x=x2-f(x2)*(x2-x1)/(f(x2)-f(x1));
五、创业机会和对策分析if(f(x)*f(x2)>
0)x1=x;
(5)资金问题elsex2=x;
(三)上海的文化对饰品市场的影响}while(fabs(f(x))>
1e-6);
木质、石质、骨质、琉璃、藏银……一颗颗、一粒粒、一片片,都浓缩了自然之美,展现着千种风情、万种诱惑,与中国结艺的朴实形成了鲜明的对比,代表着欧洲贵族风格的饰品成了他们最大的主题。
returnx;
喜欢□一般□不喜欢□}
创业首先要有“风险意识”,要能承受住风险和失败。
还要有责任感,要对公司、员工、投资者负责。
务实精神也必不可少,必须踏实做事;
floatf(floatx)
{
手工艺制品是我国一种传统文化的象征,它品种多样,方式新颖,制作简单,深受广大学生朋友的喜欢。
当今大学生的消费行为表现在追求新颖,追求时尚。
追求个性,表现自我的消费趋向:
购买行为有较强的感情色彩,比起男生热衷于的网络游戏,极限运动,手工艺制品更得女生的喜欢。
returnx*x*x-5*x*x+16*x-80;
“碧芝”隶属于加拿大的beadworks公司。
这家公司原先从事首饰加工业,自助首饰的风行也自西方,随着人工饰品的欣欣向荣,自制饰品越来越受到了人们的认同。
1996年'
碧芝自制饰品店'
在迪美购物中心开张,这里地理位置十分优越,交通四八达,由于是市中心,汇集了来自各地的游客和时尚人群,不用担心客流量问题。
迪美有300多家商铺,不包括柜台,现在这个商铺的位置还是比较合适的,位于中心地带,左边出口的自动扶梯直接通向地面,从正对着的旋转式楼拾阶而上就是人民广场中央,周边4、5条地下通道都交汇于此,从自家店铺门口经过的90%的顾客会因为好奇而进看一下。