【C语言基础习题12】函数习题

您所在的位置:网站首页 c语言中的函数不能单独进行编译吗 【C语言基础习题12】函数习题

【C语言基础习题12】函数习题

2024-07-17 02:31| 来源: 网络整理| 查看: 265

1. 在 C 语言中,形参的缺省存储类别是(                )。

(A)auto    (B) register   (C) static    (D) extern

答案:auto;形参是局部变量;局部变量缺省存储类是auto

2. 以下对 C 语言函数的有关描述中,正确的是(                )。

(A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

(B)C 函数既可以嵌套定义又可以递归调用

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

(D)C 程序中有调用关系的所有函数必须放在同一个源程序文件中

答案:B选项。不能嵌套定义。C选项,函数可以没有返回值。D选项,没有必要放在同一个c文件中,用其他c文件的函数可以给其定义的地方函数名前面加extern修饰。

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

(A)在 C 中,函数中的自动变量可以赋初值,每调用一次,赋一次初值

(B)在 C 中,在调用函数时,实际参数和对应形参在类型上只需赋值兼容

(C)在 C 中,外部变量的隐含类别是自动存储类别

(D)在 C 中,函数形参可以说明为 register 变量

答案:C;不是。在内存中的全局区,而不是栈中。当然也没有放在寄存器中。应该是auto 的。不可能时register

4.在 C 语言中,函数的隐含存储类别是(            )。

(A) auto  (B) static      (C) extern      (D)  无存储类别

答案:auto 只是用于局部变量,register一定是auto函数的存储类型指的是其他文件模块可否访问,按照C语言的原则,函数隐含为全局(本项目中)都可以访问,因此默认为extern,如果函数前面加上static则说明该函数只能被本源程序文件中的模块访问所以答案就是C

 5. 下列叙述中正确的是(                                              )。

(A) C 语言编译时不检查语法       (B) C 语言的子程序有过程和函数两种

(C) C 语言的函数可以嵌套定义     (D) C 语言所有函数都是外部函数

答案:B;C语言编译时要检查语法,所以A不对;C语言没有过程,只有函数,所以B不对;C语言函数内不能定义函数,既不能嵌套定义,所以C不对;排除法也知道是D了.当然由“函数内不能定义函数”也可以推出所有函数都是外部函数.

6.以下程序的输出结果是(   )。

fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); }

(A) 0               (B) 29             (C) 31               (D)  无定值

答案:C;

7. 以下函数值的类型是(      )。

fun ( float x )

{ float y; y= 3*x-4; return y;

}

A)int   (B)  不确定     (C) void  (D) float

答案:A

8.若有以下程序则以下叙述中不正确的是(   )。

#include void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n); }

(A) 若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 f

(B) 若在主函数前对函数 f 进行说明,则在主函数和其后的其它函数中都可以正确调用函数 f

(C) 对于以上程序,编译时系统会提示出错信息:提示对对 f 函数重复说明

(D) 函数 f 无返回值,所以可用 void 将其类型定义为无值型

答案:C;

9. 有以下程序

float fun(int x,int y) { return(x+y); } main() { int a=2,b=5,c=8; printf(“%3.0f\n”,fun((int)fun(a+c,b),a-c)); }

程序运行后的输出结果是(   )。

(A) 编译出错 (B) 9   (C) 21   (D) 9.0

[解析]fun()函数是将传进来的两个整型参数相加,把和作为函数值返回,注意返回值为float型。在主函数调用了两次fun()函数,第一次调用时把表达式“a+c”和变量“b”的值求和,得到15转换为15.0作为函数的返回值。第二次调用把第一次调用的返回值通过强制类型转换成int型15,再和表达式“a-c”相加,得到结果9,转换成float型作为函数值返回。由于输出格式符为“%3.of输出时没有小数位,故输出为9。

 10. 有以下程序

void f(int a[],int i,int j) { int t; if(i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3