【C语言基础习题12】函数习题 |
您所在的位置:网站首页 › c语言中的函数不能单独进行编译吗 › 【C语言基础习题12】函数习题 |
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 |