C语言课外作业答案——函数

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

C语言程序设计——函数

一、选择题

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. 在C语言中以下正确的说法是(A)

A.实参和与其对应的形参各占用独立的存储单元

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

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

D.开参是虚拟的,不占用存储单元

3.以下说法不正确的是(B)C语言规定:

A.实参可以是常量、变量或表达式

B.形参可以是常量、变量或表达式

C.实参可以为任意类型

D.形参应与其对应的实参类型一致

4. 一个完整的C源程序是(B)。

A.要由一个主函数或一个以上的非主函数构成

B.由一个且仅由一个主函数和零个以上的非主函数构成

C.要由一个主函数和一个以上的非主函数构成

D.由一个且只有一个主函数或多个非主函数构成

5. 以下关于函数的叙述中不正确的是(ABCD描述都正确,本题没有答案)。

A. C程序是函数的集合,包括标准库函数和用户自定义函数

B.在C语言程序中,函数能调用它本身

C.在C语言程序中,函数的定义不能嵌套

D.在C语言程序中,函数的调用可以嵌套

6. 在一个C程序中, 正确的说法是(B)。

A.main函数必须出现在所有函数之前

B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后

D.main函数必须出现在固定位置

7. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是(B)。A.float B.int C.long D.double

8. 以下关于函数叙述中,错误的是(D)。

A. 函数未被调用时,系统将不为形参分配内存单元

B. 实参与形参的个数应相等,且实参与形参的类型必须对应一致

C. 当形参是变量时,实参可以是常量、变量或表达式

D. 形参可以是常量、变量或表达式

9.以下错误的描述是(D)函数调用可以

A. 出现在执行语句中

B. 出现在一个表达式中

C. 做为一个函数的实参

D. 做为一个函数的形参

10.以下程序的正确运行结果是(D)

void main()

{int a=2,I;

for(I=0;I<3;I++) prin tf(“%4d”,f(a));}

f(int a)

{int b=0; static int c=3;

b++; c++; return(a+b+c);}

A.7 7 7

B.7 10 13

C.7 9 11

D.7 8 9

11.以下程序的正确运行结果是( A)

#include

void 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.C语言规定,可执行程序的开始执行点是______main函数_______。

2.下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是____ void add _________,改正后应是___ float add __________。

void add(float a,float b)

{float c; c=a+b; return c;}

3.以下程式序的运行结果是___I=7;j=6;x=7

I=2;j=7;x=5__________。

main()

{int I=2,x=5,j=7;

fun(j,6);

printf(“I=%d;j=%d;x=%d\n”,I,j,x);}

fun(int I,int j)

{int x=7; pri ntf(“I=%d;j=%d;x=%d\n”,I,j,x);}

4.以下程序的运行结果是____111_________。

main()

{increment();

increment();

increment();}

increment()

{int x=0;x+=1; printf(“%d”,x);}

5.以下程序的运行结果是___max is 2__________。

main()

{int a=1,b=2,c;

c=max(a,b);printf(“max is %d\n”,c);}

max(int x,int y)

{int z; z=(x>y)?x:y; return(z);}

6.以下程序的运行结果是__(1)x=2 y=3 z=0

(2)x=4 y=9 z=5

(3)x=2 y=3 z=0___________。main()

{int x=2,y=3,z=0;

printf(“(1)x=%d y=%d z=%d\n”,x,y,z);

add(x,y,z);

printf(“(3)x=%d y=%d z=%d\n”,x,y,z);}

add(int x,int y, int z)

{z=x+y; x=x*x; y=y*y;

printf(“(2)x=%d y=%d z=%d\n”,x,y,z);}

7.下面程序的运行结果是______15_______。

main()

{int I=5;

printf(“%d\n”,sub(I));}

sub(int n)

{int a;

if(n==1) return 1;

a=n+sub(n-1);

return(a);}

8.以下程序运行结果是____first:14,4,12

Second:26,4,12

Third:26,3,6_________。main()

{int a=1,b=2,c=3;

++a; c+=++b;

{int b=4,c;

c=b*3; a+=c; printf(“first:%d,%d,%d\n”,a,b,c);

a+=c;

printf(“second:%d,%d,%d\n”,a,b,c);}

printf(“third:%d,%d,%d\n”,a,b,c);}

9.以下程序的运行结果是___(2)1

(3)5,6

(1)4,6__________。

int k=1;

main()

{int I=4;

fun(I); printf(“(1)%d,%d\n”,I,k);}

fun(int m)

{m+=k; k+=m;

{char k=’B’;

printf(“(2)%d\n”,k-‘A’);}

printf(“(3)%d,%d\n”,m,k);}

10.以下程序的运行结果是__10,20,40,40___________。int x1=30,x2=40;

main()

相关文档
最新文档