第八章 函数(含答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章函数

一、选择题

1.以下正确的说法是【A】。

在c语言中:A)实参和与其对应的形参各占用独立的存储单元

B)实参相与其对应的形参共占用一个存储单元

C)只有当实参和与其对应的形参同名时才共占用存储单元

D)形参是虚拟的,不占用存储单元

2.以下正确的说法是【C】。

A)定义函数时,形参的类型说明可以放在函数体内

B)return后边的值不能为表达式

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

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

3.c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是【C】。

A. 地址传递

B. 由实参传给形参,再由形参传回给实参

C. 单向值传递

D. 由用户指定传递方式

4. 以下程序有语法性错误.有关错误原因的正确说法是【 C 】。

main()

{int G=5,k;

void prt_char();

.....

k=prt_char(G);

.....}

A)语句void prt_char();有错,它是函数调用语句,不能用void说明

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

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

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

5.c语言允许函数值类型缺省定义,此时该函数值隐含的类型是【B】。

A)float型 B)int型 C)long型 D)double型

6.c语言规定,函数返回值的类型是由【D】。

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

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

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

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

7.下面函数调用语句含有实参的个数为【B】

func((expl,eexp2),(exp3,2xp4,exp5))

A)1 B)2 C)4 D)5

8.以下正确的描述是【B】。

在c语言程序中 A)函数的定义可以嵌套,但函数的调用不可以嵌套

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

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

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

9.以下子程序段是选出能被3整除且至少有一位是5的两位数,打印出这样的数及其个数,请选择填空。

sub(int k.int n)

{int al,a2;

a2=【①】;

a1=k-【②】;

if((k%3==0&&a2==5)||(k%3==0&&a1==5))

{printf(“%d”,k);

n++;

return n;}

else return —l;}

【①】 A)k*10 B)k%10 C)k/10 D)k *10%10

【②】A)a2x10 B)a2 C)a2/10 D)a2%10

10.若用数组名作为函数调用的实参,传递给形参的是【A】。

A)数组的首地址 B)数组第一个元素的值

c)数组中全部元素的值 D)数组元素的个数

11.折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范

围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。

函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m

进行查找,若找到,返回其下标值;反之,返回一1。请选择填空。

binary(int a[10],int m)

{int low=0,high=9,mid;

whi1e(low<=high)

{mid=(low十high)/2;

if(m

else if(m>a[mid]) 【②】;

else return(mid); }

return -1;}

【①】A)high=mid-1 B)1ow=mid十1

C)high=mid+l D)1ow=mid—l

【②】A)high=mid-l B)1ow=mid+l

C)high=mid+l D)1ow=mid-1

12. 以下不正确的说法为【 D 】。

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

B)形式参数是局部变量

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

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

13. 凡是函数中末指定存储类别的局部变量,其隐含的存储类别为【A】。

A)自动(auto) B)静态(static)

C)外部(extern) D)寄存器(register)

14.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是【B】。(A)地址传递(B)单向值传递

(C)双向值传递。即由实参传给形参,再由形参传回给实参

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

15. 以下正确的函数形式是【 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) {double z; z=x+y; return z;}

16. 一个C语言程序是由【A】。

(A)一个主程序和若干子程序组成

(B)若干函数组成

(C)若干过程组成

(D)若干子程序组成

17. 以下程序的正确运行结果是【 A 】。

#include<stdio.h>

main()

{int k=4,m=1,p;

p=func(k,m); printf("%d,",p);

p=func(k,m); printf("%d\n",p);

}

func(int a,int b)

{static int m=0,i=2;

i+=m+1;

m=i+a+b;

return(m);}

A)8,17 B)8,16 C)8,20 D)8,8

二、填空题:

1.下面add函数的功能是求两个参数的和,并将和返回调用函数。函数中错

误的部分是【void add(float a,float b)】;

改正后为【float add(float a,float b)】。

void add(float a,float b)

{float c;

c=a十b;

return c;

}

2.以下程序的运行结果是【 1,1,1 】

main()

{ increment(); increment(); increment();}

increment()

{int x=0;

x+=1;

printf("%d",x);}

3.输入一个无符号整数后,通过子函数fun()求出它的各位数之和并返回结果到主函数输出。例如若输入123,则将各位之和6(即1+2+3)输出。

fun(unsigned int num)

{ unsigned int k=0;

do

{ k + =【num%10】;

num /= 10;

} while(num);

【 return (k)】; }

相关文档
最新文档