练习题函数答案Word下载.docx

上传人:b****3 文档编号:6649534 上传时间:2023-05-07 格式:DOCX 页数:57 大小:31.12KB
下载 相关 举报
练习题函数答案Word下载.docx_第1页
第1页 / 共57页
练习题函数答案Word下载.docx_第2页
第2页 / 共57页
练习题函数答案Word下载.docx_第3页
第3页 / 共57页
练习题函数答案Word下载.docx_第4页
第4页 / 共57页
练习题函数答案Word下载.docx_第5页
第5页 / 共57页
练习题函数答案Word下载.docx_第6页
第6页 / 共57页
练习题函数答案Word下载.docx_第7页
第7页 / 共57页
练习题函数答案Word下载.docx_第8页
第8页 / 共57页
练习题函数答案Word下载.docx_第9页
第9页 / 共57页
练习题函数答案Word下载.docx_第10页
第10页 / 共57页
练习题函数答案Word下载.docx_第11页
第11页 / 共57页
练习题函数答案Word下载.docx_第12页
第12页 / 共57页
练习题函数答案Word下载.docx_第13页
第13页 / 共57页
练习题函数答案Word下载.docx_第14页
第14页 / 共57页
练习题函数答案Word下载.docx_第15页
第15页 / 共57页
练习题函数答案Word下载.docx_第16页
第16页 / 共57页
练习题函数答案Word下载.docx_第17页
第17页 / 共57页
练习题函数答案Word下载.docx_第18页
第18页 / 共57页
练习题函数答案Word下载.docx_第19页
第19页 / 共57页
练习题函数答案Word下载.docx_第20页
第20页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

练习题函数答案Word下载.docx

《练习题函数答案Word下载.docx》由会员分享,可在线阅读,更多相关《练习题函数答案Word下载.docx(57页珍藏版)》请在冰点文库上搜索。

练习题函数答案Word下载.docx

(C)如果函数值的类型与返回值类型不一致,以函数值类型为准

(D)如果形参与实参的类型不一致,以实参类型为准

9、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(B)

(A)地址传递

(B)单向值传递

(C)由实参传给形参,再由形参传回给实参

(D)由用户指定传递方式

10、以下程序有语法性错误,有关错误原因的正确说法是(C)

voidmain()

{

intG=5,k;

voidprt_char();

......

k=prt_char(G);

}

(A)语句voidprt_char();

有错,它是函数调用语句,不能用void说明

(B)变量名不能使用大写字母

(C)函数说明和函数调用之间有矛盾

(D)函数名不能使用下划线

11、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)

(A)float型

(B)int型

(C)long型

(D)double型

12、C语言规定,函数返回值的类型是由(D)

(A)return语句中的表达式类型所决定

(B)调用该函数时的主调函数类型所决定

(C)调用该函数时系统临时决定

(D)在定义该函数时所指定的函数类型所决定

13、下面函数调用语句含有实参的个数为(B)

func((exp1,exp2),(exp3,exp4,exp5));

(A)1

(B)2

(C)4

(D)5

14、以下错误的描述是(D)

函数调用可以

(A)出现在执行语句中

(B)出现在一个表达式中

(C)做为一个函数的实参

(D)做为一个函数的形参

15、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。

①(B)②(C)

#include<

stdio.h>

math.h>

floatf(float,float);

floatx,y,z,sum;

scanf("

%f%f%f"

&

x,&

y,&

z);

sum=f(①)+f(②);

printf("

sum=%f\n"

sum);

floatf(floata,floatb)

floatvalue;

value=a/b;

return(value);

①(A)x-y,x+y

(B)x+y,x-y

(C)z+y,z-y

(D)z-y,z+y

②(A)x-y,x+y

16、以下正确的描述是(B)

(A)函数的定义可以嵌套,但函数的调用不可以嵌套

(B)函数的定义不可以嵌套,但函数的调用可以嵌套

(C)函数的定义和函数的调用均不可以嵌套

(D)函数的定义和函数的调用均可以嵌套

17、以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。

请选择填空。

①(C)②(A)

sub(intk,intn)

inta1,a2;

a2=①;

a1=k-②;

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;

k<

=99;

k++)

m=sub(k,n);

if(m!

=-1)n=m;

\nn=%d"

n);

①(A)k*10

(B)k%10

(C)k/10

(D)k*10%10

②(A)a2*10

(B)a2

(C)a2/10

(D)a2%10

18、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'

A'

'

B'

C'

);

则符合程序运行结果的选项是(C)

voidmove(chargetone,charputone)

%c-->

%c\n"

getone,putone);

voidhanoi(intn,charone,chartwo,charthree)

if(n==1)move(one,three);

else

hanoi(n-1,one,three,two);

move(one,three);

hanoi(n-1,two,one,three);

(A)A-->

C

A-->

B

C-->

B-->

A

(B)A-->

(C)A-->

(D)A-->

19、若用数组名作为函数调用的实参,传递给形参的是(A)

(A)数组的首地址

(B)数组第一个元素的值

(C)数组中全部元素的值

(D)数组元素的个数

20、已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为(B)

inta[3][4];

f(a);

(A)f(intarray[][6])

(B)f(intarray[3][])

(C)f(intarray[][4])

(D)f(intarray[2][5])

21、若使用一维数组名作函数实参,则以下正确的说法是()//这个题目供选择的答案中都有不明确之处,书中给出的答案是A

(A)必须在主调函数中说明此数组的大小//如果数组是全局变量就不需要在主调函数中说明数组大小

(B)实参数组类型与形参数组类型可以不匹配//什么叫匹配?

只要能自动转换类型数组类型就可以不相同

(C)在被调函数中,不需要考虑形参数组的大小//只要使用数组的时候不会越界就不必考虑它的大小

(D)实参数组名与形参数组名必须一致//只有这个显然是错的

22、折半查找法的思路是:

先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。

如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;

反之,测试中点之前的元素,测试方法同前。

函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;

反之,返回-1。

①(A)②(B)

binary(inta[10],intm)

intlow=0,high=9,mid;

while(low<

=high)

mid=(low+high)/2;

if(m<

a[mid])①;

elseif(m>

a[mid])②;

elsereturnmid;

return-1;

①(A)high=mid-1

(B)low=mid+1

(C)high=mid+1

(D)low=mid-1

②(A)high=mid-1

23、以下正确的说法是(A)

如果在一个函数中的复合语句中定义了一个变量,则该变量

(A)只在该复合语句中有效

(B)在该函数中有效

(C)在本程序范围内均有效

(D)为非法变量

24、以下不正确的说法为(D)

(A)在不同函数中可以使用相同名字的变量

(B)形式参数是局部变量

(C)在函数内定义的变量只在本函数范围内有效

(D)在函数内的复合语句中定义的变量在本函数范围内有效

25、以下程序的正确运行结果是(D)

#defineMAX10

inta[MAX],i;

voidsub2()

inta[MAX],i,max;

max=5;

for(i=0;

i<

max;

i++)a[i]=i;

voidsub1()

MAX;

i++)a[i]=2*i;

//原题a[i]=i+1有错,改为a[i]=2*i

voidsub3(inta[])

inti;

i++)printf("

%d"

a[i]);

\n"

sub1();

sub3(a);

sub2();

(A)024681012141618

01234

(B)01234

024681012141618

(C)0123456789

(D)024681012141618

26、以下程序的正确运行结果是(C)

voidnum()

externintx,y;

inta=15,b=10;

x=a-b;

y=a+b;

intx,y;

inta=7,b=5;

x=a+b;

y=a-b;

num();

%d,%d\n"

x,y);

(A)12,2

(B)不确定

(C)5,25

(D)1,12

27、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(A)

(A)自动(auto)

(B)静态(static)

(C)外部(extern)

(D)寄存器(register)

28、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是(D)

(A)extern

(B)register

(C)auto

(D)static

29、以下程序的正确运行结果是(D)

inta=2,i;

3;

%4d"

f(a));

f(inta)

intb=0;

staticintc=3;

b++;

c++;

return(a+b+c);

(A)777

(B)71013

(C)7911

(D)789

30、以下程序的正确运行结果是(A)

func(inta,intb)

staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

intk=4,m=1,p;

p=func(k,m);

printf("

%d,"

p);

%d\n"

(A)8,17

(B)8,16

(C)8,20

(D)8,8

二、填空题

31、C语言规定,可执行程序的开始执行点是________。

程序中的main()函数

32、在C语言中,一个函数一般由两个部分组成,他们是________和________。

函数说明部分函数体

33、若输入的值是-125,以下程序的运行结果是________。

-125=-5*5*5

voidfun(intn)

intk,r;

for(k=2;

=sqrt(n);

r=n%k;

while(r==0)

{

printf("

n=n/k;

if(n>

1)printf("

*"

r=n%k;

}

if(n!

=1)printf("

intn;

n);

%d="

if(n<

0)printf("

-"

n=fabs(n);

fun(n);

34、下面add函数的功能是求两个参数的和,并将和值返回调用函数。

函数中错误的部分是________;

改正后为________。

voidadd(floata,floatb)floatadd(floata,floatb)

voidadd(floata,floatb)

floatc;

c=a+b;

returnc;

35、以下程序的运行结果是________。

i=7;

j=6;

x=7

i=2;

j=7;

x=5

voidfun(inti,intj)

intx=7;

pirntf("

i=%d;

j=%d;

x=%d\n"

i,j,x);

inti=2,x=5,j=7;

fun(j,6);

36、以下程序的运行结果是________。

111

voidincrement()

intx=0;

x+=1;

x);

increment();

37、以下程序的运行结果是________。

maxis2

max(intx,inty)

intz;

z=(x>

y)?

x:

y;

return(z);

inta=1,b=2,c;

c=max(a,b);

maxis%d\n"

c);

38、以下程序的功能是根据输入的"

y"

("

Y"

)与"

n"

N"

),在屏幕上分别显示出"

ThisisYES."

与"

ThisisNO."

请填空。

voidYesNo(charch)

switch(ch)

case'

y'

:

Y'

\nThisisYES.\n"

________;

break

n'

N'

\nThisisNO.\n"

charch;

\nEnterachar'

or'

"

ch=________;

getchar()

ch:

%c"

ch);

YesNo(ch);

39、以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示"

WELLDONE!

!

"

,否则显示计算后的值。

已有函数调用语句Check(ponse,value);

请填空。

voidCheck(intponse,floatvalue)

intval;

val=________;

(int)((value*10+5)/10)

计算后的值:

val);

if(________)printf("

\nWELLDONE!

ponse==val

elseprintf("

\nSorrythecorrectansweris%d\n"

40、以下程序的功能是________。

打印出所有“水仙花数”

f(intn)

inti,j,k;

i=n/100;

j=n/10-i*10;

k=n%10;

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)returnn;

elsereturn0;

intn,k;

output"

for(n=100;

n<

1000;

n++)

k=f(n);

if(k!

=0)printf("

k)

41、以下程序的功能是用二分法求方程2*x*x*x-4*x*x+3x-6=0的根,并要求绝对误差不超过0.001。

请填空

floatf(floatx){return2*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(________)m=r;

f(r)*f(n)<

elsen=r;

if(________)break;

n-m<

0.001

r=(m+n)/2;

Theisfangchengjieis%6.3f\n"

r);

42、若输入一个整数10,以下程序的运行结果是________。

1010

sub(inta)

intc;

c=a%2;

inta,e[10],c,i=0;

输入一整数\n"

a);

while(a!

c=sub(a);

a=a/2;

e[i]=c;

i++;

for(;

i>

0;

i--)printf("

e[i-1]);

43、以下程序的功能是计算下面函数的值,请填空。

F(x,y,z)=sin(x)/(sin(x-y)*sin(x-z))+sin(y)/(sin(y-z)*sin(y-x))+sin(z)/(sin(z-x)*sin(z-y))

floatf();

\ninputx,y,z:

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))

returnvalue;

44、已有函数pow,现要求取消变量i后pow函数的功能不变。

修改前的pow函数

po

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2