c语言程序设计清华大学出版社马秀丽,C语言程序设计 清华大学出版社 马秀丽 刘志妩科后习题7解答.doc...

C语言程序设计 清华大学出版社 马秀丽 刘志妩科后习题7解答.doc

习题7 参考答案

1 选择题(请选择一个正确的答案)

1. 以下对C语言函数的有关描述中,正确的是

A. 在C语言中调用函数时,只能实参的值转送给形参,形参的值不能转送给实参。

B. C函数既可以嵌套定义,又可以递归调用。

C. 函数必须有返回值,否则不能使用函数。

D. C程序中有调用关系的所有函数必须放在同一个源程序文件中。 A.

2. C语言中规定函数的返回值的类型由

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

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

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

D. 在定义该函数时所指定的函数类型所决定。. 以下不正确的说法是A. 在不同函数中可以使用相同名字的变量。

B. 形参是局部变量。

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

D. 在函数内的复合语句中定义的变量在本函数范围内有效。. 有一个如下定义的函数

func(a)

{ printf("%d",a);

return a;}

则该函数值的类型是

A. 整型 B.类型 C. 没有返回值 D. 无法确定A

5. 以下错误的描述为

A. 在函数之外定义的变量称为外部变量,外部变量是全局变量。

B. 在一个函数中既可以使用本函数中的局部变量a,又可以使用同名的外部变量a。

C. 外部变量定义和外部变量说明的含义不同。

D. 若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。B.

6. 下面程序的输出结果是_____

fun3(int x)

{static int a = 3 ;

a+=x;

return a;

}

main()

{int k=2,m=1,n;

n = fun3(k);

n = fun3(m) ;

printf( "%d\n",n);

}

A. 3 B. 4 C. 6 D. 9

C

7.下面程序的输出结果是_____

#include

main()

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

int func (int a,int b);

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

答案:A

7.2 判断下列叙述的正确性,若正确在()内标记(,若错误在()内标记(。

( ( )全局变量与函数体内定义的局部变量重名时,全局变量优先。

( ( )对于不需要使用函数返回值的函数,可以不定义类型。

( ( )一个函数可以定义在别的函数的内部,即嵌套定义。

( ( )返回值为int或char类型时,函数声明可以缺省。

( ( )在C语言中允许函数之间的嵌套调用。

( ( )局部静态变量是在编译时赋初值的,即只赋初值一次。

( ( )函数的形参在退出该函数后就被释放了。

7.3 填空题(请在空白处填入合适的内容)

C语言程序的基本组成单位是__。

C语言程序总是从__函数开始执行。

当函数的返回值与函数值类型不一致时,将以____函数值____的类型为准。

凡在函数中未指定存储类别的变量,其隐含的存储类别为__。

静态局部变量的作用域是__。

C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方是__。

若定义的函数没有返回值时,则应在该函数声明时加一个类型说明符__。

在C语言中,一个函数直接或间接地调用自身,便构成了函数的__。

函数的形式参数作用域为__。7.4 读程序写运行结果

1.int F(int a)

{int b=0;

b=b+1;

return (a+b);}

main()

{int i;

for(i=1;i<=3;i++)

printf(“%d”, F(i));

}

运行结果____

3.int fun (int p)

{ int b=0;

static int c=3;

p=c++, b++;

return (p) ;

}

main()

{int a=2,i,k;

for(i=0;i<2;i++)

k=fun(a);

printf(“%d”,k);

}

运行结果_____

7.5 完善下列程序,使程序有正确运行结果。

1.下面的程序用来求xy。

float power( float x, int y )

{float z;

for(z=1;y>0;y__①__1)

z__②__x;

return z;

}

mai

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值