习 题 内 容 | 答 案 |
一、在以下每一题的四个选项中,请选择一个正确的答案。 1、以下对C语言函数的有关描述中,正确的是 。 A、在C语言中调用函数时,只能把实参的值转送给形参,形参的值不能转送给实参。 B、C函数既可以嵌套定义,又可以递归调用。 C、函数必须有返回值,否则不能使用函数。 D、C程序中有调用关系的所有函数必须放在同一个源程序文件中。 2、函数调用语句“f((e1,e2),(e3,e4,e5));”中参数的个数是 。 A、1 B、2 C、4 D、5 3、将一个函数说明为static后,该函数将 。 A、既能被同一源文件中的函数调用,也能被其他源文件中的函数调用。 B、只能被同一源文件中的函数调用,不能被其他源文件中的函数调用。 C、只能被其他源文件中的函数调用,不能被同一源文件中的函数调用。 D、既不能被同一源文件中的函数调用,也不能被其他源文件中的函数调用。 4、C语言中规定函数的返回值的类型由 。 A、return语句中的表达式类型所决定。 B、调用该函数时的主调用函数类型所决定。 C、调用该函数时系统临时决定。 D、在定义该函数时所指定的函数类型所决定。 5、以下正确的说法是 。 A、定义函数时,形参的类型说明可以放在函数体内。 B、return后边的值不能为表达式。 C、如果函数值的类型与返回值类型不一致,以函数值类型为准。 D、如果形参与实参的类型不一致,以实参类型为准。 6、下列存储类标识符中, 的可见性与存在性不一致。 A、外部类 B、自动类 C、内部静态类 D、寄存器类 7、以下不正确的说法是 。 | 1、A 2、B 3、B 4、D 5、C 6、C 7、D |
习 题 内 容 | 答 案 |
A、在不同函数中可以使用相同名字的变量。 B、形参是局部变量。 C、在函数内定义的变量只在本函数范围内有效。 D、在函数内的复合语句中定义的变量在本函数范围内有效。 8、以下叙述中正确的是 。 A、用#include包含的头文件的后缀不可以是“.a”。 B、在对某个含有错误的头文件进行修改后,包含此头文件的源程序不必重新进行编译。 C、宏名必须用大写字母表示。 D、宏替换不占用运行时间。 9、有一个如下定义的函数func(a) { printf(“%d”,a); } 则该函数的返回值的类型是 。 A、与参数a的类型相同。 B、void类型 C、没有返回值 D、无法确定 10、以下错误的描述为 。 A、在函数之外定义的变量称为外部变量,外部变量是全局变量。 B、在一个函数中既可以使用本函数中的局部变量a,又可以使用同名的外部变量a。 C、外部变量定义和外部变量说明的含义不同。 D、若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。 二、判断下列各叙述的正确性。 11、( )全局变量与函数体内定义的局部变量重名时,全局变量优先。 12、( )C程序中,有调用关系的所有函数必须放在同一个源程序文件中, 13、( )对于不需要使用函数返回值的函数,可以不定义类型。 14、( )C程序文件中每个函数都将被本文件调用。 15、( )一个函数可以定义在别的函数的内部,即嵌套定义。 16、( )返回值为int或char类型时,函数声明可以缺省。 | 8、A 9、B 10、B 11、× 12、× 13、√ 14、× 15、× 16、√ |
习 题 内 容 | 答 案 |
17、( )在C语言中允许函数之间的嵌套调用。 18、( )局部静态变量是在编译时赋初值的,即只赋初值一次。 19、( )外部变量必须定义在文件的开头部分。 20、( )函数的形参在退出该函数后就被释放了。 三、填空。 21、C语言程序的基本组成单位是 。 22、C语言程序总是从 开始执行。 23、当函数的返回值与函数值类型不一致时,就会发生 。 24、凡在函数中未指定存储类别的变量,其隐含的存储类别为 。 25、静态型局部变量的作用域是 。 26、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是 。 27、若定义的函数没有返回值时,则应在该函数说明时加一个类型说明符 。 28、在C语言中,一个函数直接或间接地调用自身,便构成了函数的 。 29、函数的形式参数的作用域为 30、如果被调用的用户函数和主调函数不在同一编译单位,则在定义函数的编译单位中应将该函数定义成 ,在主调函数的函数中将该函数说明为 。 四、阅读下面的程序,写出程序运行结果。 31、#include “stdio.h” void f1(int s) { int i,j=3; for(i=1;i<10;++i,++j) { s=i+j; if(s>=100) | 17、√ 18、√ 19、× 20、√ 21、函数 22scanf返回值被忽略是怎么回事、主函数 23、类型转换 24、auto 25、 该函数的函数体内 26、单向的值传递 27、void 28、递归调用 29、 从调用该函数后开始直到返回主调函数前结束 。 30、extern extern 31、s=20 |
习 题 内 容 | 答 案 |
break; } printf(“s=%d\n”,s); } main( ) { int s=10; f1(s); } 32、#include “stdio.h” main( ) { int i=0,a=10; void s( ); while(i<3) { ++a; printf(“%d,”,a++); s( ); i++; } } void f1(int s) { int z=300; z++; printf(“%d\n”,z++); } 33、#include “stdio.h” int func(int x,int y) { int z; z=x+y; | 32、11,301 13,301 15,301 33、6 13 22 |
习 题 内 容 | 答 案 |
return z++; } main( ) { int i=3,j=2,k=1; do { k+=func(i,j); printf(“%d\n”,k); i++; j++; }while(i<=5); } 34、#include “stdio.h” #define N 5 void fun( ); main( ) { int i; for(i=1;i<N;i++) fun( ); } void fun( ) { static int a; int b=2; printf(“(%d,%d)\n”,a+=3,a+b); } 五、程序填空,请在下面程序空白处填入合适的语句。 35、下面的运行结果是输出如下图形,请填空。 | 34、(3,2) (6,5) (9,8) (12,11) |
习 题 内 容 | 答 案 |
* *** ***** ******* #include “stdio.h” void disp(int i) { int j,k; for(j=0;j<=8-i;j++) printf(“ “); for(k=0;k< ;k++) printf(“*”); ; } main( ) { int i; for(i=0;i<4;i++) ; } 36、下面是一个计算阶乘的程序,请填空。 #include “stdio.h” double factorial(int); main( ) { int n; printf(“Enter an integer:”); scanf(“%d”,&n); printf(“\n%d!=%lg\n”, , ); } double factorial(int i) | 35、2*i-1 printf(“\n”) disp(i) 36、n factoria(n) return result |
习 题 内 容 | 答 案 |
{ double result=1.0; int j; for(j=1;j<=i;j++) result*=j; ; } | |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论