C语言练习4(函数)=参考答案

2019-01-12 18:06

C语言(函数,变量作用范围) 一、选择题

1 下列定义不正确的有 ( C ) 。

A)#define PI 3.141592 B)#define S 345 C)int max(x,y); D)char c; int x,y ; { }

2 下列程序结构中,不正确的是 ( B )。

A)main() B) main() {float a,b,c; {float a,b,c;

scanf(\ scanf(\ c=add(a,b); c=add(a,b); ...... ..... } }

int add(float x,float y) float add(float x,float y) { ... } { ... }

C)float add(float x,float y); D)float add(float x,float y) main() { ... } {float a,b,c; main()

scanf(\ {float a,b,c;

c=add(a,b); scanf(\ ...... c=add(a,b); } ..... float add(float x,float y) } { ... }

3 一个C语言的程序总是从( A )开始执行的. A)main函数

B)文件中的第一个函数

C)文件中的第一个子函数调用 D)文件中的第一条语句

4 以下正确的函数定义是( D ). A)double fun(int x,int y) {z=x+y; return z;}

B) double fun(int x,int y); {int z;

z=x+y; return z;} C) fun(int x,y)

{int z; return z;} D) double fun(int x,int y) {double z; z=x+y; return z;}

5 以下正确的函数声明形式是( D ).

A) double fun(int x,int y) B) double fun(int x;int y) C) double fun(int ,int ) D) double fun(int ,int );

6 以下说法中正确的是( A ) 在C语言中

A)实参与其对应的形参各占用独立的存储单元 B)实参与其对应的形参占用同一个存储单元

C)只有当实参与形参同名时才占用同一个存储单元

D)实参占用存储单元,但形参是虚拟的,不占用存储单元 7 设有如下函数定义: int f(char *s) { char *p=s ;

while(*p!='\\0') p++; return(p-s) ; }

如果在主程序中用下面的语句调用上述函数,则输出结果为( A ). printf(\的输出结果是

A) 3 B) 6 C) 8 D) 0

8 下面程序段中,主函数中变量a被初始化为 ( C )。 int f() {

return 3.5; }

main() {

int a=f(); }

A)3.5 B)无确定值 C)3 D)程序出错 9 下面叙述不正确的是( D ).

A) 在函数中,通常用return语句传回函数值; B) 在函数中,可以有多条return语句;

C) 在C中,主函数main后的一对圆括号中也可以带有形参; D) 在C中,调用函数必须在一条独立的语句中完成; 10-C语言函数返回值的类型是由( C )决定的。 A) 调用该函数的主调函数类型 B) 定义函数时所指定的函数类型 C) return语句中的表达式类型 D) 以上都错 11-以下说法中正确的是( A ). A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以为任意类型

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

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

C)由实参传给形参,再由形参传给实参 D)由用户指定传递方式

13-以下程序的输出结果是 ( A ) 。 int power(int x,int y); main()

{float a=2.6,b=3.4; int p;

p=power((int)a,(int)b); printf(\}

int power(int x,int y) {int i,p=1;

for(i=y;i>0;i--) p=p*x; return p; }

A) 8 B) 9 C) 27 D) 81

14-以下不正确的描述为( B ). A)调用函数时,实参可以是表达式

B)调用函数时,实参变量与形参变量可以共用内存单元 C)调用函数时,将为形参分配内存单元

D)调用函数时,实参与形参的类型必须一致 15-下列语句中,不正确的是 ( C )。

A)char a[]={\ B)char a[]=\C)printf(\ D)scanf(\

16-若有以下函数调用语句fun(a+b, (x,y), fun(n+k,d,(a,b)));在此函数调用语句中实际参数的个数是( A ). A) 3 B) 4 C) 5 D) 6 17-下面程序

#include main ( ) {

char *a=\ fun(a);

printf(\ }

fun ( char *s) { char t;

if(*s) {t = *s++; fun(s); } if(t !='\\0') putchar( t ); }

输出为( B ).

A) 1234 B) 4321 C)1324 D) 4231

18-C规定,简单变量做实参时,它与对应形参之间的数据传递方式是( B ). A) 地址传递 B)单向值传递

C)有实参传递到形参,再由形参传回给实参。 19-执行完下列语句段后, i值为( C ). int i; int f(int x) { int k = x+1; int t; t=k; k=x; x=t; return x; } i=f(f(1)); A) 1 B) 2 C) 3 D) 以上都错 20-下列程序段的运行结果为( B ). float f(int x) {

x=x+3.6; return x; } main() {

printf(\ }

A) 6.0 B) 5.0 C) 5.6 D) 以上都不对 21-执行下列程序后, 变量a的值应为( A ). int f(int x,int y) {return x*y;} main() {int a=2;

a=f(f(a,a*a),f(a+a,a/3)); }

A) 0 B) 2 C) 8 D) 16

22-若有以下函数定义,则在主函数中正确的调用语句是( viod fun(int array[3][5]) { ………..} main()

{ int a[3][5], b; ……..}

A)fun(a[3][5]); B)b=fun(a); C) fun(a);

B ). D) fun(&a);

23-若有以下变量说明和函数定义: int a=4,b=6,c,k; char ch='x'; float x,y,z;

sub(int x, int y, char ch, float *z) { switch(ch) {case '+': *z=x+y;break; case '-': *z=x-y;break; case '*': *z=x*y;break; case '/': *z=x/y;break; } }

则以下合法的函数调用语句是( B ). A) sub(10,20,ch,y); B) sub(1,2+3,'+',&z);

C) sub(sub(1,2,'+',&y), sub(3,4,'+',&x),'-',&y); D) sub(a,b,&x,ch); 24-下面程序

#include f ( int x )

{ if ( x= = 0 || x = = 1 ) return ( 3 ) ; else return ( x–f(x–2)); }

main () {

printf (\}

输出结果是( A ). A) 7 B) 3 C) 6 D) 8

25-以下说法中正确的是( B ).

A)一个函数在它的函数体内调用它自身称为嵌套调用。

B)一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。 C)一个函数在它的函数体内调用其它函数称为递归调用。这种函数称为递归函数。 D)一个函数在它的函数体内不能调用自身 26-以下叙述中不正确的是( D ).

A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是局部变量

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

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

27-C函数返回值的类型由( D )决定. A)调用函数时临时

B)return语句中的表达式类型


C语言练习4(函数)=参考答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汽车商贸城项目可行性研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: