【C语言函数06】函数知识点、经典题型汇总(部分)

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

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

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

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

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

答案:B;强制转换问题

 

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

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

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

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

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

答案:D;

 

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

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

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

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

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

答案:B;

 

4、有以下函数定义:

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

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

A、fun(int y,double m);

Bk=fun(10,12.5);

Cfun(x,n);

Dvoid fun(n,x);

答案:C;A选项直接写名称错误,B选项有返回值K,D选项写void重复

 

5、程序运行结果是:

#include<stdio.h>
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编译出错

B   9

C21

D9.0

答案:C;

 

6.下描述正确的是?

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

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

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

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

答案:B;

 

7、 C 语言中函数返回值的类型是由【 】决定。

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

B)调用函数的主调函数类型

C)调用函数时临时

D)定义函数时所指定的函数类型

答案:D;

 

8、 若在一个 C 源程序文件中定义了一个允许其他源文件引用的实型外部变量 a,则在另一文件中可使用的引用说 明是【 】。

A) extern static float a;

B) float a;

C) extern auto float a;

D) extern float a;

答案:D;

 

9、若定义函数 float *fun( ), 则函数 fun 的返回值为【 】。

A)一个实数

B)一个指向实型变量的指针

C)一个指向实型函数的指针

D)一个实型函数的入口地址

答案:B;

 

10、若程序中定义函数
float myadd(float a, float b)
{

   return a+b;

}

并将其放在调用语句之后,则在调用之前应对该函数进行说明。以下说明中错误的是【 】。
A)float myadd( float a,b);

B)float myadd(float b, float a);

C)float myadd(float, float);

D)float myadd(float a, float b);

答案:A

 

 11、以下程序的正确运行结果是【 】。
 

#inclued<stdio.h> main()
{
    int k=4,m=1,p;
    p=func(k,m); printf( "%d",p);
    p=func(k,m); printf( "%d",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;静态变量用完后不释放

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李秋天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值