C语言课后习题答案第八章.doc

上传人:h**** 文档编号:1421063 上传时间:2019-02-25 格式:DOC 页数:10 大小:86.50KB
下载 相关 举报
C语言课后习题答案第八章.doc_第1页
第1页 / 共10页
C语言课后习题答案第八章.doc_第2页
第2页 / 共10页
C语言课后习题答案第八章.doc_第3页
第3页 / 共10页
C语言课后习题答案第八章.doc_第4页
第4页 / 共10页
C语言课后习题答案第八章.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、作业八:函数程序设计答案(一)选择题(30 分)1以下正确的函数定义形式是 A_。A)double fun(int x,int y)B)double fun(int x;int y)C)double fun(int x,int y);D)double fun(int x,y);2以下正确的函数形式是 D_。A)double fun(int x,int y) z=x+y; return z; B)fun(int x,y) int z; return z; C)fun(x,y) int x,y; double z; z=x+y; return z; D)double fun(int x,int y

2、) double z; z=x+y; return z; (重要)3以下正确的说法是 A_。在 C 语言中 A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用存储单元D)形参是虚拟的,不占用存储单元4若调用一个函数,且此函数中没有 return 语句,则正确的说法是 D_。该函数 A)没有返回值B)返回若干个系统默认值C)能返回一个用户所希望的函数值D)返回一个不确定的值(重要)5以下不正确的说法是 B_。C 语言规定 A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以为任意类型D)形参应

3、与其对应的实参类型一致6C 语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 B_。A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)由用户指定传递方式7以下程序有语法性错误,有关错误原因的正确说法是 C_。main()int G=5,k;void Prt_char(); k=Prt_char(G); A)语句 void prt_char();有错,它是函数调用语句,不能用 void说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线8C 语言允许函数值类型缺省定义,此时该函数值隐含的类型是 B_。A)float 型B)int

4、 型C)long 型D)double 型9C 语言规定,函数返回值的类型是由 D_。A)return 语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定10下面函数调用语句含有实参的个数为 B_。func(exp1,exp2),(exp3,exp4,exp5);A)1 B)2 C)4 D)5(重要)11以下程序的功能是计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。#include #include main()float x,y,z,sum;scanf(“%f %f %f

5、”,sum=f(【1】_B_)+f(【2】_C_);printf(“sum=%fn”,sum);float f(float a,float b)float value;value=a/b;return(value);【1】 A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y【2】 A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y12以下正确的描述是 B_。在 C 语言程序中 A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌

6、套13以下正确的说法是 A_。如果在一个函数中的复合语句中定义了一个变量,则该变量A)只在该复合语句中有效B)在该函数中有效C)在本程序范围内均有效D)为非法变量14凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 A_。A)自动(auto) B)静态(static)C)外部(extern) D)寄存器(register)15在一个 C 源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 D_。A)extern B)register C)auto D)static(二)填空题(50 分)1若输入的值是-125,以下程序的运行结果是 -5*5*5

7、_。#include main()int n;scanf(“%d”,printf(“%d=”,n);if(n1) printf(“*”);r=n%k;if(n!=1) printf(“%dn”,n);2以下程序的运行结果是 i=7;j=6;x=7i=2;j=7;x=5。main()int i=2,x=5,j=7;fun(j,6);printf(“i=%d;j=%d;x=%dn”,i,j,x);fun(int i,int j)int x=7;printf(“i=%d;j=%d;x=%dn”,i,j,x);3以下程序的运行结果是 111_。main()increment();increment()

8、;increment();increment()int x=0;x+=1;printf(“%d”,x);4以下程序的运行结果是 max is 2_。#include main()int a=1,b=2,c;c=max(a,b);printf(“max is %dn”,c);max(int x,int y)int z;z=(xy)?x:y;return(z);5以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“This is YES.”与“This is NO.” 。请填空。#include void YesNo(char ch)switch(ch)case y:

9、case Y: printf(“nThis is YES.n”); _break_;case n:case N: printf(“nThis is No.n”); _break_;main()char ch;printf(“nEnter a char y,Yorn,N:”);ch=getchar();printf(“ch:%c”,ch);YesNo(ch);6以下程序是选出能被 3 整除且至少有一位是 5 的两位数,打印出所有这样的数及其个数。请选择填空。sub(int k,int n)int a1,a2;a2=【1】_C_;a1=k-【2】_A_;if(k%3=0n+;return n;el

10、se return -1;main()int n=0,k,m;for(k=10;kfloat f(float x)return(2*x*x*x-4*x*x+3*x-6);main()float m=-100,n=90,r;r=(m+n)/2;while(f(r)*f(n)!=0)if(f(m)*f(r)0) m=r;else n=r;if(fabs(f(r)#include float f(float,float,float);main()float x,y,z,sum;printf(“ninput x,y,z:n”);scanf(“%f %f %f”,sum=f(x,x-y,x-z)+f(y

11、,y-z,y-x)+f(z,z-x,z-y);printf(“sum=%fn”,sum);float f(float a,float b,float c)float value;value=sin(a)/(sin(b)*sin(c);return(value);9以下程序的运行结果是输出如下图形。请填空。* * * * * * * * * * * * * * * * * * *#include void a(int i)int j,k;for(j=0;j=0;i-) a(i);10以下程序的功能是用递归方法计算五位学生的年龄,请填空。递归公式如下: )1(2)(10)(nagen#includ

12、e age(int n)int c;if(n=1) c=10;else c=age(n-1)+2;return(c);main()int n=5;printf(“age:%dn”,age(5);(三)编程题(20 分)1用函数编程打印以下图案。(1) (2) (3)Void f1(int n)int i;for(i=1;i#include #define PI 3.1415float f(float x0) main()int t=0,k=100,n=0;float x0=PI/4,x1;while(nfloat root(float x1,float x2) float f(float x)

13、 float xpoint(float x1,float x2) /* 略 */ main()float x1,x2,f1,f2,x;doprintf(“input x1,x2:n”);scanf(“%f %f”,printf(“x1=%5.2f,x2=%5.2fn”,x1,x2);f1=f(x1);f2=f(x2);while(f1*f2=0);x=root(x1,x2);printf(“A root of equation is %8.4f”,x);#include float root(float x1,float x2)float x;do x=x2-f(x2)*(x2-x1)/(f(x2)-f(x1);if(f(x)*f(x2)0) x1=x;else x2=x;while(fabs(f(x)1e-6);return x;float f(float x) return x*x*x-5*x*x+16*x-80;

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。