C语言函数练习题及答案

更新时间:2024-05-09 17:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1

【单选题】

在下列关于C函数定义的叙述中,正确的是?

?

A、

函数可以嵌套定义,但不可以嵌套调用;

? ?

B、

函数不可以嵌套定义,但可以嵌套调用;

? ?

C、

函数不可以嵌套定义,也不可以嵌套调用;

? ?

D、

函数可以嵌套定义,也可以嵌套调用;

?

我的答案:B得分: 2.5分

2

【单选题】

下面函数调用语句含有实参的个数为? nc((exp1,exp2),(exp3,exp4,exp5));

?

1

A、

? ?

2

B、

? ?

4

C、

? ?

5

D、

?

我的答案:B得分: 2.5分

3

【单选题】

C语言中函数返回值的类型是由以下哪个选项决定的?

?

A、

函数定义时指定的类型;

? ?

B、

return语句中的表达式类型;

? ?

C、

调用该函数时的实参的数据类型;

? ?

D、

形参的数据类型;

?

我的答案:A得分: 2.5分

4

【单选题】

以下关于函数叙述中,错误的是?

?

A、

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

? ?

B、

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

? ?

C、

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

? ?

D、

如函数调用时,实参与形参都为变量,则这两个变量不可能共享同一内存空间;

?

我的答案:B得分: 2.5分

5

【单选题】

若函数调用时参数为基本数据类型的变量,以下叙述正确的是?

?

A、

实参与其对应的形参共享内存存储单元;

? ?

B、

只有当实参与其对应的形参同名时才共享内存存储单元;

? ?

C、

实参与对应的形参分别占用不同的内存存储单元;

?

? D、

实参将数据传递给形参后,立即释放原先占用的内存存储单元;

?

我的答案:C得分: 2.5分

6

【单选题】

函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是?

?

A、

实参将地址传递给形参,并释放原先占用的存储单元;

? ?

B、

实参将地址传递给形参,调用结束时形参再将此地址回传给实参;

? ?

C、

实参将值传递给形参,调用结束时形参再将其值回传给实参;

? ?

D、

实参将值传递给形参,调用结束时形参并不将其值回传给实参;

?

我的答案:D得分: 2.5分

7

【单选题】

若用数组名作为函数调用的实参,则传递给形参的是?

?

A、

数组第一个元素的地址;

?

? B、

数组的第一个元素的值;

? ?

C、

数组中所有元素的值;

? ?

D、

数组元素的个数;

?

我的答案:A得分: 2.5分

8

【单选题】C语言规定了程序中各函数之间调用关系,以下说法正确的是?

? ? ? ?

A、既允许直接递归调用也允许间接递归调用; B、不允许直接递归调用也不允许间接递归调用; C、允许直接递归调用不允许间接递归调用;

D、不允许直接递归调用允许间接递归调用;

我的答案:A得分: 2.5分

9

【单选题】

递归函数f(n)=f(n-1)+n (n>1)的递归体是?

?

A、

f(1)=0

? ?

f(0)=1

B、

?

? C、

f(n)=f(n-1)+n

? ?

f(n)=n

D、

?

我的答案:C得分: 2.5分

10

【单选题】

若函数的形参为一维数组,则下列说法中正确的是()。

?

A、

使用函数时的对应实参必为数组名。

? ?

B、

形参数组可以不指定大小。

? ?

C、

形参数组的元素个数必须等于实参数组的元素个数。

? ?

D、

形参数组的元素个数必须多于实参数组的元素个数。

?

我的答案:B得分: 2.5分

11

【单选题】

在函数调用过程中,如果函数fun A调用了函数fun B,函数fun B又调用了函数fun A,则()。

?

A、

为函数的直接递归调用

? ?

B、

称为函数的间接递归调用

? ?

C、

为函数的循环调用

? ?

D、

C语言中不允许这样的递归调用

?

我的答案:B得分: 2.5分

12

【单选题】 有以下函数定义:

void fun(int n,double x) {……}

下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。

?

A、

fun(int y,double m);

? ?

B、

k=fun(10,12.5);

? ?

C、

fun(x,n);

? ?

D、

void fun(n,x);

?

我的答案:C得分: 2.5分

13

【单选题】

已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的正确定义方式为______。 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])

?

我的答案:C得分: 2.5分

14

【单选题】 若程序中定义函数 float fadd(float a, float b) {

return a+b; }

并将其放在调用语句之后,则在调用之前应对该函数进行说明。以下说明中错误的是?

?

A、

float fadd(float a,b);

? ?

B、

float fadd(float b, float a) ;

? ?

C、

float fadd(float, float) ;

? ?

D、

float fadd(float a, float b) ;

?

我的答案:A得分: 2.5分

15

【单选题】

下面程序段运行后的输出结果是? (假设程序运行时输入5,3回车)

int a, b; void swap( ) { int t; t=a; a=b; b=t; } void main() { int a,b;

scanf(\ swap( ); printf (\ }

?

A、

a=5,b=3

? ?

B、

a=3,b=5

? ?

C、

5,3

? ?

D、

3,5

?

我的答案:A得分: 2.5分

16

【单选题】

以下程序运行后的输出结果是? int fun (int x, int y) { if(x>y) return x; else return y; } void main() {

int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(\

}

?

A、

3

?

?

6

B、

? ?

8

C、

? ?

12

D、

?

我的答案:D得分: 2.5分

17

【单选题】

下列程序的输出结果是()。 #include \ void fun(int a,int b,int c) {

c = a * b; }

int main( ) { int c; fun(2,3,c); printf(\ return 0; }

?

0

A、

? ?

1

B、

? ?

6

C、

? ?

D、

无法确定

?

我的答案:D得分: 2.5分

18

【单选题】

有以下程序,运行后的输出结果是( )。

#include float fun(int x, int y) {

return(x+y); } void main() {

int a=2,b=5,c=8;

printf(“%3.0f\\n”, fun((int)fun(a+c, b), a-c)); }

?

A、

编译出错

? ?

9

B、

? ?

21

C、

? ?

9.0

D、

?

我的答案:A得分: 0.0分

19

【单选题】 以下描述正确的是?

?

A、

调用函数时的实参只能是有确定值的变量;

? ?

B、

return()语句的括号中,可以是变量、常量或有确定值的表达式;

? ?

C、

C语言中,函数调用时实参和形参间的参数传递方式不都是值传递;

?

? D、

实参和形参若类型不匹配,编译时将报错;

?

我的答案:B得分: 2.5分

20

【单选题】 已有以下代码 #include int a=6,b=3; int main() { int a=8;

printf(\ }

则程序的输出结果是()?

?

3

A、

? ?

6

B、

? ?

8

C、

? ?

36

D、

?

我的答案:C得分: 2.5分

21

【单选题】 已有以下代码 #include f() {

static int x = 1; x -= 1;

printf(\} int main() { int i;

for (i = 0; i<4; i++) f(); return 0; }

则程序的输出是:()?

?

1, 2,3,4

A、

? ?

0,1,2,3,

B、

?

? C、

0,-1,-2,-3,

? ?

D、

-1,-2,-3,-4,

?

我的答案:C得分: 2.5分

22

【单选题】

C语言程序的基本单位是?

?

函数

A、

? ?

过程

B、

? ?

子程序

C、

? ?

D、

源程序文件

?

我的答案:A得分: 2.5分

23

【单选题】以下说法中正确的是?

?

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

? ? ?

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

D、main( )函数必须放在程序的开始部分;

我的答案:C得分: 2.5分

24

【单选题】

在函数调用时,以下说法正确的是?

?

A、

函数调用后必须带回返回值;

? ?

B、

实际参数和形式参数可以同名;

? ?

C、

函数间的数据传递不可以使用全局变量;

? ?

D、

主调函数和被调函数总是在同一个文件里;

?

我的答案:B得分: 2.5分

25

【填空题】

下面程序段运行后的输出结果是:_______ (假设程序运行时输入5,3回车)

void swap( int a, int b) {

int t; t=a; a=b; b=t; } void main() { int a,b;

scanf(\ swap(a,b ); printf (\ }

我的答案:得分: 0.0分 第一空: a=3,b=5 批语

26

【填空题】

以下程序的功能是用递归方法计算工资,已知第一位员工工资最少,为3100元,其余员工工资一个比一个多500元,求第5位员工的工资。请填空。 salary(int n) {

int s; if(n==1)

s=3100; else

s=salary(n-1)+500; return s; }

void main() {

int n=5;

printf(“sarary:%d\\n”,______); }

我的答案:得分: 2.5分 第一空: salary(5) 批语

27

【填空题】

分析以下程序的运行结果是_______ #include “stdio.h” func(int a ,int b) { int c; c=a+b; return c; } int main() {

int x=6,y,r; y=x+2;

r=func(x++,y);

printf(\ return 0; }

我的答案:得分: 2.5分 第一空: 7 8 14 批语

28

【填空题】 有如下程序

long fib(int n) { if(n>2)

return(fib(n-1)+fib(n-2)); else

return 2;

} int main() {

printf(\,fib(3)); }

该程序的输出结果是_______。

我的答案:得分: 2.5分 第一空: 4 批语

29

【填空题】

以下程序的输出结果是________。 f(int b[],int m,int n) {

int i,s=0; for(i=m;i

s=s+b[i]; returns;

} int main() {

int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf(\,x); }

我的答案:得分: 2.5分 第一空: 10 批语

30

【填空题】

以下程序的输出结果是_____。

#include int fac_sum(int n) {

static int f=1,t=1,s=0; int i; if(n>t)

for(i=t+1; i<=n; i++) f=f*i; else { f=1;

for(i=1; i<=n; i++) f=f*i; }

t=n; s=s+f; return(s); }

void main() {

int a[]={3,5,2},i,sum; for(i=0; i<3; i++) sum=fac_sum(a[i]); printf(“sum=%d\\n”,sum);

}

我的答案:得分: 2.5分 第一空: sum=128 批语

31

【填空题】

以下程序的运行结果是________。 #include int n=1; void main() {

static int x=5; void func(); int y; y=n;

printf(\ func();

printf(\ func();

} void func() {

static int x=4; int y=10; x=x+2; n=n+10; y=y+n;

printf(\}

我的答案:得分: 2.5分 第一空:

MAIN: x= 5 y= 1 n= 1FUNC: x= 6 y=21 n=11MAIN: x= 5 y= 1 n=11FUNC: x= 8 y=31 n=21 批语

32

【填空题】

输入一个整数10,以下程序的运行结果是_______。 #include void main() {

int sub(int); int a,e[10],c,i=0; printf(\输入一个整数\\n\ scanf(\ while(a!=0) {

c=sub(a); a=a/2; e[i]=c; i++; }

for(; i>0; i--) printf(\}

int sub(int a) { int c; c=a%2; return c; }

我的答案:得分: 2.5分 第一空: 1010 批语

33

【填空题】

以下程序的运行结果是______。 #include int main() { int i; void fun(); for (i=0;i<3;i++) fun(); return 0; } void fun() {

static int x=0; x+=1;

printf(\}

我的答案:得分: 2.5分 第一空: 1 2 3 批语

34

【填空题】

以下程序的运行结果是________。 #include int workover(int i); int reset(int i); int i=0; int main() { int i=5; reset(i/2);

printf(\ reset(i=i/2); printf(\ reset(i/2);

printf(\ workover(i); printf(\ return 0; }

int workover(int i) {

i=(i%i)*((i*i)/(2*i)+4); printf(\ return i; }

int reset(int i)

{

i=i<=2?5:0; return i; }

我的答案:得分: 2.5分 第一空: i=5i=2i=2i=0i=2 批语

35

【判断题】

函数调用时值传递方式特点:形参与实参占用相同的内存单元,单向传递。

我的答案:×得分: 2.5分

36

【判断题】

函数定义与函数说明不是同一个概念。 我的答案:√得分: 2.5分

37

【判断题】

c语言中,函数的定义不能嵌套,而调用是可以嵌套的。 我的答案:√得分: 2.5分

38

【判断题】

函数调用时值传递特点:无论是值传递还是地址传递,都是单向的。 我的答案:√得分: 2.5分

39

【判断题】

函数调用时,当数组名作函数参数时,实参数组值与形参数组值不同。 我的答案:×得分: 2.5分

40

【判断题】

一个C程序可以由一个或多个函数组成,其中必须有且只有一个main函数。 我的答案:√得分: 2.5分

本文来源:https://www.bwwdw.com/article/hl8g.html

Top