C语言程序设计 - 习题大全(含答案) - C语言-1 下载本文

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

以下叙述中正确的是( ).

A)在C语言中总从第一个开始定义的函数开始执行 B)在C语言中所有调用别的函数必须在main函数中定义 C)C语言总是从main函数开始执行 D)在C语言中,main函数必须放在最前面 以下说法中正确的是( ).

A) C语言程序是由一个或多个函数组成,其中至少有一个主函数 B)一个C语言文件至少应有一个主函数 C)所有C语言函数都有返回值

D)C程序中,main函数必须放在其他函数之后 以下正确的函数定义是( ). A) double fun(int x,int y); {int z;

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

{double z; z=x+y; return z;} 以下正确的函数声明形式是( ). A) float fun(int x,int y) B) float fun(int x, y) C) float fun(int x,int y); D) float fun(int ,int )

C语言中,函数返回值的类型是由( )决定的。 A)调用函数时临时

B)return语句中的表达式类型 C)调用该函数的主调函数类型 D)定义函数时,所指定的函数类型 关于return语句,正确的说法是 ( )。 A)可以在同一个函数中出现多次 B)必须在每个函数中出现 C)在主函数和其它函数中均可出现 D)只能在除主函数之外的函数中出现一次 C语言中形式参数的作用范围是( ). A) 其所在的函数内 B) 整个程序文件 以下正确的函数定义形式是( ). A) double fun(int x,int y) B) double fun(int x,int y); C) double fun(int x, y) D) double fun(int x, y); 以下函数f返回值是( ). f(int x){return x;}

A)void类型 B) int类型 C) float类型 D) 无法确定返回值类型

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

A)定义函数时,形参的类型说明可以放在函数体内 B)return后面的值不能为表达式

C)如果函数值的类型与返回值的类型不一致,以函数值类型为准 D)如果形参与实参的类型不一致,以实参为准 若用数组作为函数调用的实参,传递给形参的是( ). A)数组的首地址 B)数组第一个元素的值 C)数组中全部元素的值 D)数组元素的个数

C语言中,调用一个函数时,当形参是变量名时,实参和形参之间的数据传递是( ) 。 A)单纯值传递 B)单纯地址传递

C)值传递和地址传递都有可能

D)由实参传给形参,然后由形参传回给实参,既是双向传递 下列函数调用中,不正确的是 ( )。

A)max(a,b); B)max(3,a+b); C)max(3,5); D)int max(a,b); 若输入ab,程序运行结果为 ( )。 main() { char a[2]; scanf(\

printf(\}

A)a,b B)a, C)b, D)程序出错 在下面对C语言函数的有关描述中,正确的是( ).

A)在C语言中调用函数时,若函数参数为简单变量,则只能将实参的值传给形参,形参的值不能传给实参

B)函数必须有返回值,否则不能使用函数

C)C程序中有调用关系的所有函数必须放在同一源程序文件中 在C语言中以下正确的说法是( ).

A) 当函数的参数为简单变量时,实参和与其对应的形参各占用独立的存储单元; B) 当函数的参数为简单变量时,实参和与其对应的形参共占用一个存储单元; C) 形参是虚拟的,不占用存储单元。

若用数组名作为函数调用的实参,传递给形参的是( ). A)数组的首地址 B)数组第一个元素的值 C)数组全部元素的值 D)数组元素的个数 程序 f(int x) {

return x; } main() {

float a=3.14; a=f(a);

printf(\ 执行结果为( ).

A) 3 B) 3.14 C) 3.00 D) 0 执行下列程序后, 变量a的值应为( ). f1(float x) {return x+1.3;} main() {float a; a=f1(2.4); }

A) 3.7 B) 3 C) 4 D) 不确定 下列程序的执行结果为( ). float f1(float x) { int k=2; k=k*x; return k; } main() {

float b=4.3;

printf(\ }

A) 8.6 B) 9.0 C) 8.0 D) 8

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

{ int a[3][5], b; ??..} A)b=fun(a[3][5]); B)b=fun(int a[3][5]); C) b=fun(a); E) b=fun(&a); 函数f的定义为: f(int x) {return x*x;}

以下程序是嵌套调用的有( ). A)a=f(2)*f(2); B)a=sqrt(f2(4)*f(4)); C)以上均不是 D)以上均是 对下列递归函数: int f(int n)

{

return (n==0)? 1: f(n-1)+2; }

函数调用f(3)的返回值是( ).

A) 5 B) 6 C) 7 D) 以上均不是 在一个源文件中定义的全局变量的作用域为( )。

A)本文件的全部范围。 B)本程序的全部范围。

C)本函数的全部范围。 D)从定义该变量的位置开始至本文件结束。

C语言中全局变量的作用范围是( ). A) 其所在的函数内 B) 整个程序文件

如果在一个函数中的复合语句中定义了一个变量,则该变量的作用范围为( ). A)在该函数中有效 B)在该复合语句中有效

一个函数一般由函数说明部分和函数体组成。 执行下列语句后,程序的运行结果为( ). int a=10;

f( )

{a=12; } main()

{f();

printf(\ }

A) 10 B) 12 C) 0 D) 不确定 以下说法中正确的是( ).

A)主函数中定义的变量是全局变量,其作用范围仅限于函数内部 B)主函数中定义的变量是全局变量,其作用范围从定义之处到文件结束。 C)主函数中定义的变量是局部变量,其作用范围仅限于函数内部 D)主函数中定义的变量是局部变量,其作用范围从定义之处到文件结束。 调用C语言函数时,实参可以是: A)常量 B)变量 C)表达式 D)void

下面程序段是否正确。 main() { void fun() { ... } }

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

C语言中,void类型的函数可以不用在主调函数中声明。

用数组名作函数形参和实参时,应在主调函数和被调函数中分别定义数组。 以数组名作为函数参数时,实参数组必须定义为具有确定长度的数组,而形参数组可以不定义长度。

Return语句后面的值不能为表达式。

对于不要求带返回值的函数,函数类型必须是void类型。 数组元素做函数的实际参数,传递的是整个数组。 形参不是局部变量。

在一个函数定义中只能包含一个return语句。 主函数和其它函数可以互相调用。 以下程序运行结果为1,3,5,7。 main()

{ int a[4]={1,3,5,7}; printf(\}

函数调用可以作为一个函数的实参。

函数的嵌套调用就是在调用一个函数的过程中,又调用另一个函数。

数组名作为函数参数时,传递的是数组第一个元素的值。 C语言中允许函数的递归调用。 下面程序段能否正确执行。 main() {int m=n; ... } int n; void func() {int s=3; n=s; ... }

不同函数中定义的变量,其作用范围都限制在各自的函数内,在内存中占据的存储单元也各不相同。

在C语言中,如果不对函数作类型说明,则函数的隐含类型为【 】。

C语言(函数,变量作用范围)二

1 C语言程序由函数组成,以下说法正确的是( A ). A)主函数可以在其它函数之前,函数内不可以嵌套定义函数 B)主函数可以在其它函数之前,函数内可以嵌套定义函数 C)主函数必须在其它函数之前,函数内不可以嵌套定义函数 D)主函数必须在其它函数之前,函数内可以嵌套定义函数 2 以下说法中不正确的是 ( A )。

A) 主函数main中定义的变量在整个文件或程序中有效 B) 不同的函数中可以使用相同名字的变量 C) 形式参数是局部变量

D) 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效 3 下面函数 f(double x)

{printf(“m\\n”,x);} 的类型为( C ). A) 实型

B)void 类型 C)int 类型

D) A)、B)、C)均不正确

4 以下说法中正确的是( C ).

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

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

D) C语言程序中,main函数必须放在程序的开始部分 5 以下正确的函数定义是( C ). A) double fun(int x,int y); {int z;

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

z=x+y; return z;}

6 定义为void类型的函数,其含义是( A ). A)调用函数后,被调用的函数没有返回值 B)调用函数后,被调用的函数不返回

C)调用函数后,被调用的函数的返回值为任意的类型 D)以上三种说法都是错误的 7 设有如下定义: int x=10,y=3,z ; 则语句

printf(\的输出结果是( D ).

A) 1 B)0 C) 4 D)3 8 在C语言的函数中,( C )。

A)必须有形参 B)形参必须是变量名 C)可以有也可以没有形参 D)数组名不能作形参

9 函数调用语句f((x,y),(a,b,c),(1,2,3,4));中,所含的实参个数是( C ). A) 1

B) 2

C) 3

D) 4

10 如果函数的首部省略了函数返回值的类型名,则函数被默认为( C )。 A)void类型 B)空类型 C)int类型 D)char类型

11 用数组名做函数的参数,实际上传递给形参的是( A ).

A) 数组元素的首地址 B) 数组的第一个元素的值 C) 每一个数组元素D)整个数组的个数

12 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B ). A)float B)int C)long int D)void

13 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式是( B ). int a[3][4]; f(a);

A)f(int array[ ][6]) B)f(int array[ 3][ ]) C)f(int array[ ][4]) D)f(int array[ 2][5]) 14 下列说法中正确的是( D ).

A)调用函数时,实参变量与形参变量可以共用内存单元 B)调用函数时,实参的个数、类型和顺序与形参可以不一致 C)调用函数时,形参可以是表达式 D)调用函数时,将为形参分配内存单元 15 下列语句中,不正确的是 ( D )。

A)c=2*max(a,b); B)m=max(a,max(b,c));

C)printf(\)int max(int x,int max(int y,int z)) 16 以下函数调用语句:

fun(x+y,x-y);中实际参数的个数是( B ). A) 1

B) 2

C) 4

D)5

17 C语言可执行程序开始执行点为( C ). A)程序中第一条可执行语句 B) 程序中第一个函数 C)程序中的main函数

D) 包含文件中的第一个函数

18 若调用一个函数,且此函数中无return语句,则正确的说法是( D ).

A) 没有返回值; B) 返回若干个系统默认值; C) 能返回一个用户所希望的函数值; D) 返回一个不确定的值

19 执行下列程序后, 变量 i 的值应为( A ).

int ma(int x,int y)

{return x*y; } main() { int i; i = 5;

i = ma(i,i-1)-7;

}

A) 13 B) 17

C) 19

D) 以上都错

20 下列程序的结果为( C ). change(int x,int y) {int t; t=x;x=y;y=t; } main() {

int x=2,y=3; change(x,y);

printf(\ }

A) x=3,y=2 B) x=2,y=3 C) x=2,y=2 D) x=3,y=3 21 执行下列程序后, 变量a的值应为( D ). int f(int x) {return x+3;} main() {int a=1; while(f(a)<10) a++; }

A) 11 B) 10 C) 9 D) 7

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

{ int a[3][5], b; ??..} A)fun(a[3][5]); B)b=fun(a); C) fun(a); D) fun(a)

23 C语言中的函数( D ). A)可以嵌套定义。 B)不可以嵌套调用。

C)可以嵌套调用,但不能递归调用。 D)嵌套调用和递归调用均可。 24 C语言中( A )函数的递归调用.

A) 允许 B) 不允许

25 对于以下递归函数f, 调用f(4),其返回值为( B ). int f(int n)

{ if (n)

return f(n-1)+n;

else

return n;

}

A) 8 B) 10 C) 11 D) 12 26 以下不正确的描述为( B ).

A)在函数之外定义的变量为外部变量,外部变量是全局变量。 B)在函数中既可以使用本函数中的局部变量,又可以使用全局变量。

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

27 以下正确的说法是:建立函数的目的之一是( B ). A) 提高程序的执行效率;

B) 提高程序的可读性

C) 减少程序的篇幅;

D) 减少程序文件所占内存

28 执行下列语句后,a的值为( C ). int a=12, b=7;

m(int a,int b)

{ a=b; } main()

{

m(a,b); }

A) 0 B) 1 C) 12 D) 7 29 全局变量的有效范围为(D ). A) 该程序的所有文件 B) 从本源文件的开始到结束 C) 该程序的主函数

D) 从定义变量的位置开始到本源文件结束 30 以下说法中正确的是( C ).

A)形参是全局变量,其作用范围仅限于函数内部 B)形参是全局变量,其作用范围从定义之处到文件结束。 C)形参是局部变量,其作用范围仅限于函数内部 D)形参是局部变量,其作用范围从定义之处到文件结束。 1 若使用一维数组名作为函数实参,则以下说法正确的是( AC ) A)必须在主调函数中说明此数组的大小 B)实参数组与形参数组类型可以不匹配 C)实参数组与形参数组的大小可以不一致 D)实参数组名与形参数组名必须一致 1 实参可以是常量、变量或表达式。 对

2 定义函数时,形参的类型说明可放在函数体内。

3 在有参函数中,定义函数中指定的形参变量在整个程序一开始执行时便分配内存单元。

4 数组名作函数参数时,也采用“值传送”方式。

5 在C函数中,当以数组名作为参数时,对形参变量的操作不会影响到调用函数中的实参变量,即形参值不能传回给实参。

6 函数调用可以作为一个函数的形参。