32. 以下正确的函数形式是( D )。
A、 double fun(int x,int y) { z=x+y; return z; } B、 fun(int x,y) { int z; return z; } C、 fun(x,y)
{ int x,y; double z; z=x+y; return z; } D、 double fun(int x,int y) { double z; z=x+y; return z; }
33. 在一个源程序文件中定义的全局变量的有效范围为( C )。
A、 一个C程序的所有源程序文件 B、 该源程序文件的全部范围
C、 从定义处开始到该源程序文件结束 D、 函数内全部范围
34. 下列函数中,能够从键盘上获得一个字符数据的函数是( C A、 puts( ) B、 putchar( ) C、 getchar( ) D35. 以下程序的输出结果是( D )。
fun(int a,int b,int c) {
c=a+b; }
main() { int c;
fun(2,3,c);
printf(“%d\\n”,c); }
A、 2 B、 3 C、 5 D、 无定值 36. 分析以下程序的运行结果( A )。
func(int a,int b) {
int temp=a; a=b; b=temp; }
main() {
int x,y;
x=10; y=20; func(x,y);
printf((“%d,%d\\n”,x,y); }
A、 10,20 B、10,10 C、 20,10 D、20,20 37. 下面程序的输出是( C )。
fun(int x) {
static int a=3;
)。
、 gets( ) a+=x; return(a);
}
main() {
int k=2,m=1,n; n=fun(k); n=fun(m);
printf(“%d”,n); }
A、 3 B、 4 C、 6 D、 9 38. 以下程序输出的结果是( D )。
int func(int a,int b) {
return(a+b); }
main() {
int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%d\\n”,r); }
A、 12 B、 13 C、 14 D、 15 39. 以下程序的输出结果是( B )。
int a,b void fun() {
a=100; b=200; }
main() {
int a=5,b =7; fun();
printf(“%d%d \\n”,a,b); A、 100200 B、 57 C、 200100 D、 75
40. 以下程序的输出结果是( C )。
int x=3; main() { int i;
for(i=1;i incre() { static int x=1; x*=x+1; printf(“%d”,x); } A、 33 B、 22 C、 26 D、 25 二、判断题 1、 ( F ) 函数定义void max(int a,int b)表示该函数的返回值不确定。(无返回值) 2、 ( T )在C语言中,函数体中变量的隐含存储类别是自动变量auto。 3、 ( F )return语句作为函数的出口,在一个函数体内只能有一个。 4、 ( T )在C程序中,函数不能嵌套定义,但可以嵌套调用。 5、 ( F ) C语言的源程序中必须包含库函数。 6、 ( F )在C程序中,函数调用不能出现在表达式语句中。 7、 ( F )在C函数中,形参可以是变量、常量或表达式。 8、 ( F )在主函数main( )中定义的变量都可以在其它被调函数中直接使用。 9、 ( T )在C语言中,一个函数一般由两个部分组成,它们是函数说明和函数体。 10、 ( F )C语言程序中的main( )函数必须放在程序的开始部分。 11、 ( F )若定义的函数没有参数,则函数名后的圆括号可以省略。 12、 ( T )函数的函数体可以是空语句。 13、 ( T )函数的实参和形参可以是相同的名字。 14、 ( T )函数调用中,形参与实参的类型和个数必须保持一致。 15、 ( F )C语言中函数返回值的类型由return语句中的表达式的类型决定。 16、 ( T )外部类型的变量只能定义一次,但可在不同地方声明多次。 17、 ( F )外部类型的变量作用范围大,编程中应多用外部变量。 三、多选题 1. 以下叙述中正确的有( ACDE )。 A、一个C语言程序有且仅有一个main函数 B、C语言程序中,main函数是没有参数的 C、一个函数通过其他函数间接的调用了自身,这种情况也是一种递归调用 D、main函数是由系统调用的 E、若要通过函数参数带回多个返回值,则应使用按地址传送的参数结合方式 2. 下面叙述中,正确的有( ABD )。 A、函数的定义不能嵌套,但函数调用可以嵌套 B、为了提高可读性,编写程序时应该适当使用注释 C、变量定义时若省去了存储类型,系统将默认其为静态型变量 D、函数中定义的局部变量的作用域在函数内部 E、函数必须有返回值,否则不能使用函数 3. 以下不正确的说法有( ABE )。 A、定义函数时,形参的类型说明可以放在函数体内 B、return后边的值不能为表达式 C、函数返回值的类型可能会与函数的计算结果类型不一致 D、在不同的函数中可以使用相同名字的变量 E、如果形参与实参的类型顺序不一致,以实参顺序为准 (类型须一致) 4. 以下叙述中,正确的描述是( BCD )。 A、函数之内定义的变量称为内部变量,内部变量是全局变量 B、在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量 C、外部变量定义和外部变量说明的含义不同 D、外部变量与局部变量的作用范围不同 E、在C的函数中,最好使用全局变量 5. 以下正确的说法有( ADE )。 A、C语言程序的基本组成单位是函数 B、函数必须要有返回值 C、一个函数的类型为void,在定义时,可以省略void D、函数声明是一条C语句 E、return语句只能返回一个值 6. 以下叙述中正确的有( ABCDE )。 A、调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、函数的实参可以是常量、变量和表达式 C、形式参数只是局限于所在函数 D、函数定义时的函数首部不是语句,后面不能跟分号 E、函数名的存储类别为外部 7. 以下对C语言函数的有关描述中,正确的有( AE )。 A、调用函数时,实参与形参应该数量相同,类型一致 B、函数可以嵌套定义 C、函数必须有返回值,否则不能正确使用 D、程序中有调用关系的所有函数必须放在同一个源程序文件中 E、C程序由一个或一个以上的函数组成 8. 以下对C语言函数的有关描述中,正确的有( BCE )。 A、在C程序中,函数调用不能出现在表达式语句中 B、在C语言中,一个函数一般由两个部分组成,它们是函数说明和函数体 C、函数的实参和形参可以是相同的名字 D、在main()中定义的变量都可以在其它被调函数中直接使用 E、外部类型的变量只能定义一次,但可在不同地方声明多次 9. 一个数据类型为void的函数在被调用后,下列错误的描述有( BCD )。 A、 函数没有返回值 B、 函数可以返回一个系统默认值 C、 函数返回值由用户临时决定 D、 函数可以返回一个不确定的值 10. 下列函数中,能够输出字符数据的函数有( ABD )。 A、 puts( ) B、 printf( ) C、 scanf( ) D、 putchar( ) E、 put( ) 第9章 编译预处理 一、 选择题 1、若有宏定义“#define PI =3.14159 ”,且在程序中有语句 s +PI; 其中宏名PI代替的是:( ) A、PI的值 B、3.14159 C、=3.14159 D、宏定义错误,编译通不过 2、设有以下宏定义:#define N 3 #define Y(n) ((N+1)*n) 执行语句z=2*(N+Y(5+1));后,z的值为:( ) A、出错 B、42 C、48 D、54 3、以下说法正确的是:( )