C语言程序设计试题(2)1 下载本文

B. a[10]=2; C. a[0]=5*2;

D、a[1]=a[2]*a[0]; E、a[2]=a[1]+a[0];

第8章 函 数

一、选择题

1. 若调用一个函数,且此函数中没有RERUrn语句,则关于该函数正确的说法是:(A. 没有返回值

B. 返回若干个系统默认值

C. 能返回一个用户所希望的函数值 D. 返回一个不确定的值

2. 在c语言中以下不正确的说法是:( B )

A. 实参可以是常量、变量、或表达式 B. 形参可以是常量、变量或表达式 C. 实参可以为任意类型

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

3. 以下程序有语法性错误,有关错误原因的正确说法是:( C ) main()

{ int G=5,k;

void prt_char(); ??

k=prt_char(G); ?? }

A. 语句void prt_char();有错,它是函数调用语句,不能用void说明 B. 变量名不能使用大写字母

C. 函数说明和函数调用语句之间有矛盾 D. 函数名不能使用下划线 4. 以下正确的说法是:( B )

A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可嵌套 C. 函数的定义和调用均不可以嵌套 D. 函数的定义和调用均可以嵌套

5. 若使用一个数组名作函数实参,则以下正确的说法是:( A )

A. 必须在主调函数中说明此数组的大小 B. 实参数组类型与形参数组类型可以不匹配 C. 在被调用函数中,不需要考虑形参数组的大小 D. 实参数组名与形参数组名必须一致

6. 在一个函数内部定义的变量是:( B )

A、 简单变量 B、 局部变量 C、 全局变量 D、 标准变量 7. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:( D )D )

A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 8. 已定义以下函数

fun(int*p) { return *p; } 该函数的返回值是:( C )

A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值 9. 以下所列的各函数首部中,正确的是:(C ) A、 void play(var :Integer,var b:Integer) B、 void play(int a,b) C、 void play(int a,int b)

D、 Sub play(a as integer,b as integer)

10. 当调用函数时,实参是一个数组名,则向函数传送的是:( B )

A、 数组的长度 B、 数组的首地址

C、 数组每一个元素的地址 D、 数组每个元素中的值 11. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:(A、 地址传递 B、 单向值传递

C、 由实参传给形参,再由形参传回实参 D、 传递方式由用户指定 12. 以下函数值的类型是:( A )

fun ( float x ) { float y;

y= 3*x-4; return y; }

A、 int B、 不确定 C、 void D、 float 13. 下列函数的功能是:( A )

int fun1(chat* x) { char *y=x;

while(*y++); return(y-x-1); }

A)求字符串的长度 B、比较两个字符串的大小

C、将字符串X复制到字符串Y D、将字符串X连接到字符串Y后面 14. 下面程序的输出结果是:( D ) void prty(int * x)

{ printf(\main()

{ int a=25; prtv(&a); }

A、23 B、24 C、25 D、26 15. 以下对C语言函数的有关描述中,正确的是:( A )

A、只能把实参的值传送给形参,形参的值不能传送给实参 B、C函数既可以嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数

B )

D、C程序中所有函数都可以嵌套调用 16. 以下叙述中不正确的是:( B )

A)在C中,函数体中定义的动态变量可以赋初值,每调用一次,赋一次初值. B、 在C中,函数体中定义的静态变量可以赋初值,每调用一次,赋一次初值. C、 在C中,局部变量的隐含类别是自动存储类别.

D)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容. 17. 以下叙述中不正确的是:( D )

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

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

D)在一个函数内的复合语句中定义的变量在本函数范围内有效 18. 有以下程序

void fun (int a,int b,int c) { a=456; b=567; c=678;} main()

{ int x=10, y=20,z=30; fun (x,y,z);

printf(\}

输出结果是:( B )

A、30,20,10 B、10,20,30 C、456,567,678 D、678,567,456 19. 有以下程序

int fun(int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; } main()

{ int a, b, c, d; a=30; b=50; fun(a,b,&c,&d);

printf(\}

输出结果是:( C )

A、50,30 B、30,50 C、80,-20 D、80,20 20. 下列程序执行后的输出结果是 ( A )。

void func(int *a,int b[]) { b[0]=*a+6; } main()

{ int a,b[5]; a=0; b[0]=3;

func(&a,b); printf(“%d \\n”,b[0]); }

A、 6 B、 7 C、 8 D、21. 一个完整的可运行的C源程序中,( B )。

A、 可以有一个或多个函数 B、 必须有且仅有一个主函数 C、 可以没有主函数

D、 必须有主函数和其他函数

9 22. 下述函数定义形式正确的是( C )。

A、 int f(int x; int y) B、 int f(int x,y) C、 int f(int x, int y) D、 int f(x,y: int) 23. 关于函数参数,说法正确的是( A )。

A、 实参与其对应的形参各自占用独立的内存单元 B、 实参与其对应的形参共同占用一个内存单元

C、 只有当实参和形参同名时才占用同一个内存单元 D、 形参是虚拟的,不占用内存单元 24. 一个函数的返回值由( D )确定。

A、 return语句中的表达式 B、 调用函数的类型 C、 系统默认的类型 D、 被调用函数的类型 25. 以下叙述中正确的是( C )。

A、 C语言程序总是从第一个定义的函数开始执行

B、 在C语言程序中,要调用的函数必须在main()函数中定义 C、 C语言程序总是从main()函数开始执行

D、 C语言程序中的main()函数必须放在程序的开始部分 26. 以下函数

fff(float x) {

printf(“%d\\n”,x*x); }

的类型是( C )。

A、 与参数x的类型相同 B、 void类型 C、 int类型 D、 无法确定 27. 以下对C语言函数的描述中,正确的是( A )。

A、 C程序由一个或一个以上的函数组成 B、 C函数既可以嵌套定义又可以递归调用 C、 函数必须有返回值,否则不能使用函数

D、 C程序中调用关系的所有函数必须放在同一个程序文件中 28. 以下叙述中不正确的是( B )。

A、 在C语言中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、 在C的函数中,最好使用全局变量

C、 在C语言中,形式参数只是局限于所在函数 D、 在C语言中,函数名的存储类别为外部

29. 在一个源文件中定义的外部变量的作用域为( B )。

A、 本文件的全部范围 B、 本程序的全部范围 C、 本函数的全部范围

D、 定义该变量的位置开始至本文件结束 30. 有以下函数调用语句:

func((exp1,exp2),(exp3,exp4,exp5)); 其中含有的实参个数和是( B )。 A、 1 B、 2 C、 4 D、 5

31. C语言中形参的默认存储类别是( A )。

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

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