A) auto B) static C) extern D) 无存储类别 371、以下程序的输出结果是________。 #include
sub1(char a,char b){char c;c=a;a=b;b=c;} sub2(char *a,char b){char c;c=*a;*a=b;b=c;} sub3(char *a,char *b){char c;c=*a;*a=*b;*b=c;} main() { char a,b;
a='A';b='B';sub3(&a,&b);putchar(a);putchar(b); a='A';b='B';sub2(&a,b);putchar(a);putchar(b); a='A';b='B';sub1(a,b);putchar(a);putchar(b); }
A)BABBAB B)ABBBBA C)BABABA D)BAABBA 372、有以下函数 char fun(char *p)
{ return p; } 则该函数的返回值是________。
A) 无确切的值 B) 形参p中存放的地址值 C) 一个临时存储单元的地址 D) 373、以下程序的输出结果是________。 #include
int k=4,m=1,p; p=func(k,m); printf(\; p=func(k,m); printf(\; } func(a,b) int a,b; {
static int m=0,i=2; i+=m+1; m=i+a+b ; return(m); }
A)8,17 B)8,16 C)8,20 D)8,8 374、下面程序输出结果是________。 void fun() {
static int a=0; a+=2;
printf(\} main() { int n;
for(n=1;n<4;n++) fun(); printf(\}
A) 2 2 2 B) 2 4 6 C) 2 2 2 2 D) 2 4 6 8 375、下面程序的运行结果是________。
形参p自身的地址值 #include
int x[2][3]={2,4,6,8,10,12},*p; p=(int *)malloc(sizeof(int)); fun(&p,x); printf(\}
A)10 B)4 C)6 D)8
376、下面所列的函数定义中,正确的是________。
A) void play(var a:integer,var b:integer) B) void play(int a,b)
C) void play(int a,int b) D) Sub play(a as integer,b as integer) 377、以下是对函数的描述,不正确的是________。
A)调用函数时,实参可以是常量、表达式 B)调用函数时,将为形参分配内存单元 C)调用函数时,实参与形参个数必须相同 D)调用函数时,形参必须是整型 378、以下程序的输出结果是________。 fun(int x, int y, int z) {
z=x*x+y*y; } main() { int a=3; fun(1,2,a); printf(\}
A) 0 B) 5 C) 3
D) 无定值
379、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是________。
A)地址传递 B)单向值传递 C)传递方式由用户指定 D)由实参传给形参,再由形参传给实参 380、运行程序: void fun(int *a,int *b) { int *k; k=a;a=b;b=k; } main() {
int a=2,b=5,*x,*y; x=&a,y=&b; fun(x,y);
printf(\}则输出结果是________。
A) 5 2 B) 2 5 C) 编译出错 D) 0 381、C语言中的函数________。
A)可以嵌套定义 B)不可以嵌套调用 C)可以嵌套调用,但不能递归调用 D)嵌套调用和递归调用均可 382、当调用函数时,实参是一个数组名,则向函数传送的是________。
A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值 383、下列函数定义中,错误的是________。
A)int f(int *p1,int p2) B)void f(int * p1,int p2) {*p1+=p2;return(p2);} {p1+=p2;return(*p1);}
C)f(int *p1,int p2) D)void f(int *p1,int p2) {*p1+=p2;return(*p1);} {*p1+=p2} 384、运行程序: long fun( int n) { long t;
if(n==0||n==1) t=1; else t=n-fun(n-1); return t; } main() {
printf(\}则输出结果是________。 A) 1
B) 2
C) 3
D) 4
385、main函数可以带两个形参,一般分为argc和argv,其中argv可以定义为________。 A)int argv; B)char **argv[]; C)char argv[]; D)char *argv[]; 386、运行程序: void fun(int *n) {
while( (*n)--); printf(\} main() {
int a=10; fun(&a);
}则输出结果是________。
A) 1 B) 0 C) 10 D) 程序不正确 387、数组名作为实参传给被调用的函数时,形参获得的是________。
A)该数组第一个元素的值 B)该数组所有元素的值 C)该数组第一个元素的首地址 D)该数组所有元素的首地址 388、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是________。
A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定 389、以下函数值的类型是________。 fun ( float x ) { float y; y=x/3-4; return y; }
A) int B) 不确定 C) void 390、以下程序的输出结果是________。 app(int *p, int a[][3],int n) {
int i,j; for(i=0;i<3;i++) for(j=0;j int *p,a[3][3]={{1,2,3},{4,5,6}}; D) float p=(int *)malloc(100); app(p,a,3); printf(\} A) 3 6 B) 2 6 C) 3 5 D) 程序错误 391、以下程序的输出结果是________。 int a,b; void fun() { a=10;b=20; } main() { int a=1,b=7; fun(); printf(\} A) 10 20 B) 1 7 C) 20 10 D) 7 1 392、运行下面程序: int f() { static int k=0; int s=1; s+=k; k++; return (s); } main() { int k,a=0; for(k=1;k<4;k++) a+=f(); printf(\}则输出结果是________。 A) 3 B) 10 C) 6 D) 4 393、若有程序: #include void f(int n); f(5); } void f(int n) { printf(\则以下叙述中不正确的是________。 A) 若只在主函数中对函数f进行说明,则只能在主函数中调用函数f。 B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以调用函数f。 C) 对于以上程序,编译时系统会提示出错信息。 D) 函数f无返回值,所以可用void将其类型定义为无值型。 394、在C语言中,形参的缺省存储类是________。 A) auto B) register C) static D) extern 395、运行下面程序: ff(int b[],int m,int n) { int k,s=0; for(k=m;k } main() { int x,a[]={1,3,4,2,5,7,9,8,6}; x=ff(a,2,7); printf(\} 则输出结果是________。 A) 10 B) 18 C) 8 D) 15 396、在说明语句:int *f();中,标识符f代表的是________。 A) 一个用于指向整型数据的指针变量。 B) 一个用于指向一维数组的行指针。C) 一个用于指向函数的指针变量。 D) 一个返回值为指针型的函数名。 397、运行下面程序: int x=3; main() { int k; for (k=1;k<=x;k++) cre(); } cre() { static int x=1; x*=x+1; printf(\}则输出结果是________。 A) 3 3 3 B) 2 2 2 C) 10 10 10 D) 2 6 42 398、运行下面程序: main() { int x=2; sub(&x,8,1); printf(\} sub(int *a,int n,int k) { if(k<=n) sub(a,n/2,2*k); *a+=k; }则输出结果是________。 A) 123456 B) 123 C) 12 D) 1234 399、运行下面程序: float func(int x,int y) {return(x+y);} main() { int a=2,b=3,c=8; printf(\}则输出结果是________。 A) 7.0 B)9 C)7 400、运行下面程序: int fun(int n) { if(n==1||n==0) return 1; else return (fun(n-1)+1); D)9.0