void fun(int *p1,int *p2)
{ int p;
p=*p1;*p1=*p2;*p2=p; }
A) 交换*p1和*p2的值 B) 语法正确,但无法交换*p1和*p2的值
C) 交换*p1和*p2的地址 D)有语法错误
八、函数
1.C语言中函数返回值的类型是由 A 决定的.
A)函数定义时指定的类型 B) return语句中的表达式类型
C) 调用该函数时的实参的数据类型 D) 形参的数据类型 2. 在C语言中,函数的数据类型是指( A )
A 函数返回值的数据类型 B. 函数形参的数据类型 C 调用该函数时的实参的数据类型 D.任意指定的数据类型 *3.C程序中函数返回值的类型是由 A 决定的.
A)函数定义时指定的函数类型 B) 函数中使用的最后一个变量的类型
C)调用函数时临时确定 D) 调用该函数的主调函数类型
*4. C语言规定,简单变量做实参时,它和对应形参之间的数据传递
方式为 ( B )
A. 由系统选择 B. 单向值传递 C. 由用户指定传递方式 D. 地址传递
21
5. 在函数调用时,以下说法正确的是( B ) A.函数调用后必须带回返回值 B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量 D.主调函数和被调函数总是在同一个文件里 *6. 在C语言程序中,有关函数的定义正确的是( B )。 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和函数的均可以嵌套
*7. 以下对C语言函数的有关描述中,正确的是( A )。
A.在C语言程序中,调用函数时,如函数参数是简单变量,则只能把实参的值传递给形参,形参的值不能传送给实参 B.C语言函数既可以嵌套定义又可递归调用 C.C语言函数必须有返回值,否则不能使用函数
D.在C语言程序中有调用关系的所有函数必须放在同一个源程序文件中
*8.C语言中对函数的描述正确的是 C .
A)可以嵌套调用,不可以递归调用 B) 可以嵌套定义 C)嵌套调用,递归调用均可 D)不可以嵌套调用 9.以下叙述中正确的是 A
A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main()函数必须放在其它函数之前
D) 所有被调用的函数一定要在调用之前进行定义
10.用数组名作为函数调用时的实参时,传递给形参的是 A 。
22
A)数组首地址 B)数组第一个元素的值 C)数组全部元素的值 D)数组元素的个数
11.有一函数的定义如:void fun(char *s){……},则不正确的函数调用是( D )。 A.main()
{char a[20]=”abcdefgh”; fun(a); …… } B.main()
{ char a[20]=”abcdefgh”; fun(&a[0]); …… } C. main()
{ char a[20]=”abcdefgh”; char *p=a;fun(p); …… } D. main()
{char a[20]=”abcdefgh”; fun(a[]); …… }
12、函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是( D )。 A、funa(int *x, int *y)
B、funb(int x , int y)
{ int t; 23 t=x; x=y; y=t; }
{ int *p;
*p=*x ; *x=*y; *y=*p; }
C、func(int *x, int *y) D、fund(int *x, int *y) { int *p;
{ int t;
t=*x; *x=*y; *y=t; p=x;x=y; y=p;
}
}
13. 有如下程序
int func(int a,int b) { return(a+b);} main()
{ int x=2,y=x,z=8,r;
r=func(func(x,y),func(y,z)); printf(“%d\\n”,r); } 该程序的输出的结果是 C
A) 12 B) 13 C) 14 D) 15
*14. 以下程序的输出结果是 B
int a, b; void fun()
{ a=100; b=200; } main()
{ int a=100, b=100;
fun();
printf(“%d%d \\n”, a,b); }
24
A) 100200 B) 100100 C) 200100 D) 200200
*15. 下列说法中正确的是:( A )
A. 局部变量在一定范围内有效,且可与该范围外的变量同名。 B. 如果一个源文件中,全局变量与局部变量同名,则在局部变量范围内,局部变量不起作用。 C. 局部变量缺省情况下都是静态变量。
D. 函数体内的局部静态变量,在函数体外也有效。 16. 在C语言中,表示静态存储类别的关键字是: ( C A) auto B) register C) static D) extern 17.未指定存储类别的变量,其隐含的存储类别为( A )。 A)auto B)static C)extern D)register
九、编译预处理
*1.在C语言程序中,以#号带头的行是预编译处理( A )。
A.命令 B.语句 C.函数 D.字符串
2.下列正确的预编译命令是( D )。 A. define PI 3.14159
B. #define P(a,b)=strcpy(a,b) C. #define stdio.h D. #define PI 3.14159; 3.下列命令或语句中,正确的是( C )。
A. #define MYNAME=”ABC” B. #include stdio.h C. for(i=0;i<10;i++);
D. struct int stu{int name};
*4.下列命令或语句中,错误的是( C )。
25
)
A.#define PI 3.14159 B.#include
26