c语言程序设计高潮版习题四答案Word下载.docx
- 文档编号:20012732
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:11
- 大小:17.69KB
c语言程序设计高潮版习题四答案Word下载.docx
《c语言程序设计高潮版习题四答案Word下载.docx》由会员分享,可在线阅读,更多相关《c语言程序设计高潮版习题四答案Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
(D)函数体
5、以下不正确的说法是___________。
(A)在不同函数中可以使用相同名字的变量
(B)形式参数是局部变量
(C)在函数内定义的变量只在本函数范围内有效
(D)在函数内的复合语句中定义的变量在本函数范围内有效
6、当一个函数无返回值时,函数的类型应定义为___________。
(A)int
(B)void
(C)无
(D)任意
7、在C语言中函数返回值的类型是___________。
(A)由调用该函数时系统临时决定的
(B)由return语句中的表达式类型决定的
(C)由定义该函数时所指定的函数类型决定的
(D)由调用该函数时的主调函数类型决定的
C
8、下列叙述中,错误的是___________。
(A)一个函数中可以有多条return语句
(B)函数调用执行到return语句即意味着函数调用结束
(C)函数调用必须在一条独立的语句中完成
(D)函数通过return语句返回其函数值
9、在函数中未指定存储类型的变量,其隐含存储类型为__________。
(A)静态(static)
(B)自动(auto)
(C)外部(extern)
(D)存储器(register)
二、填空题
1、一个函数由_____________和_____________两部分组成。
函数首部函数体@函数头函数体
2、函数体一般包括_______语句和______语句。
声明执行@声明语句执行语句
3、C语言程序的执行是从________函数开始,在_________函数中结束。
main()main()@mainmain@main函数main函数@main()函数main()函数
4、一个C语言源程序一般包含有许多函数,其中main()函数是程序执行的入口,所以在整个程序中它必须定义在所有的函数之前。
以上叙述是否正确?
_________
不正确
5、调用其他函数的函数称为________函数,被其他函数调用的函数称为________函数。
主调被调@主调函数被调函数
6、从变量存在的时间(即生存期)角度来分,可以分为______存储方式和______存储方式。
动态静态@静态动态
7、下面add函数的功能是求两个参数的和,并将值返回调用函数。
函数中错误部分是__________,改正后为_____________。
voidadd(floata,floatb)
{floatc;
c=a+b;
returnc;
}
voidfloat
8、以下程序的运行结果是_____________________。
voidfun(inti,intj){intx=7;
printf("
#i=%d,j=%d,x=%d"
i,j,x);
intmain()
{
inti=2,x=5,j=7;
fun(j,6);
return0;
}
#i=7,j=6,x=7#i=2,j=7,x=5
9、以下程序中的isLeap()是判断闰年的函数。
请填空。
intyear;
_____________
Pleaseinputyear:
\n"
);
scanf("
%d"
&
year);
if(_______________)printf("
%disaleapyear.\n"
year);
elseprintf("
%disnotaleapyear.\n"
______isLeap(intyear)
{return(year%4==0&
&
year%100!
=0||year%400==0);
intisLeap(int);
isLeap(year)int@intisLeap(intyear);
isLeap(year)int
10、已有函数pow():
doublepow(intx,inty)
{inti,j=1;
for(i=1;
i<
=y;
++i)j=j*x;
return(j);
现要求取消变量i后pow函数的功能不变,请填空。
{intj;
for(__________;
__________;
__________)
j=j*x;
j=1;
y>
=1;
y--@j=1;
0;
--y@j=1;
--y
11、[程序]
voidmyswap(inta,intb)
intt;
if(a>
b)t=a,a=b,b=t;
intmain()
{intx=15,y=12,z=20;
if(x>
y)myswap(x,y);
z)myswap(x,z);
if(y>
z)myswap(y,z);
%d,%d,%d"
x,y,z);
//程序的输出为_________________
15,12,20
12、以下程序的运行结果是_________。
intfunc(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
{intk=4,m=1,p;
p=func(k,m);
p);
817
三、程序操作题
1、请打开考生文件夹中的文件Ex0409_1.c,按照例4-9的第一种方法(递推法),上机调试程序。
参考代码:
————考生程序代码————
#include<
stdio.h>
//递推法求解Fibonacii数列
voidnumber_fibonacci(intn)
{intn;
需输出的Fibonacci数列的项数:
"
&
n);
number_fibonacci(n);
————标准程序代码————
longf,f1=1,f2=1;
//f1和f2分别代表数列顺数的第1项和第2项
inti;
%12d%12d\n"
f1,f2);
//每次输出2个数,每个数占用12个字符输出宽度
for(i=3;
=n;
i++)
{
f=f1+f2;
//利用已有的第1项和第2项求当前的新项
f1=f2;
//当前的第2项将是下一次求解用的第1项
f2=f;
//当前得到的新项将是下一次求解用的第2项
%12d"
f);
if(i%2==0)printf("
//每输出2项后换行
2、请打开考生文件夹中的文件Ex0409_2.c,按照例4-9的第二种方法(递归法),上机调试程序。
//递归法求解Fibonacii数列
longfibonacci(intn)
intm,n,i;
需输出的Fibonacci数列项数的范围(m~n):
%d%d"
m,&
longf;
if(n<
=0)f=0;
//条件使用n<
=0而不仅仅是n==0,可以包容错误的参数传递
elseif(n==1)f=1;
elsef=fibonacci(n-1)+fibonacci(n-2);
returnf;
for(i=m;
fibonacci(i));
//每个输出项占用12个字符输出宽度
//每输出2项后换行
3、请打开考生文件夹中的文件E0502.c,参照例3-17和例4-13,写一个求素数的函数,然后在main()函数中调用该函数输出200~300间的全部素数。
math.h>
//判断素数
intisPrime(intn)
intmain()
intn;
for(_________)
if(________)printf("
%d"
n);
//输出素数
intprime=1;
//先假设n为素数
inti,k;
k=(int)sqrt(n);
for(i=2;
=k;
if(n%i==0){prime=0;
break;
returnprime;
for(n=201;
n<
300;
n+=2)//偶数肯定不是素数
if(isPrime(n))printf("
4、请打开考生文件夹中的文件E0503.c,完成"
习题4"
编程题的第5题:
编写一个反转函数reverse(),…,例如将-123转换成-321。
intmain()
输入一个整数:
反转后的整数:
%d\n"
reverse(n));
intreverse(intn);
//函数声明
intreverse(intn)
intsign=1,m;
//sign为符号位标志
0)sign=-1;
n=(n>
=0?
n:
-n);
//取n的绝对值
m=n%10;
//取出n的个位数;
while(n>
=10)
n=n/10;
//n的小数点左移一位
m=m*10+n%10;
//m的小数点右移一位,并加上当前n的个位数
returnsign*m;
==END==
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 高潮 习题 答案