C语言程序设计综合练习题 下载本文

A、3 B、4 C、0 D、2

2.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是 A)2 B)3 C) 4 D)无法确定; 3. 以下能正确定义数组并正确赋初值的语句是

A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}}; C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}}; 4.以下不能正确定义二维数组的选项是

A)int a[2][2]={{1},{2}}; B)int a[][2]={1,2,3,4};

C)int a[2][2]={{1},2,3}; D)int a[2][]={{1,2},{3,4}};

5.有语句:char s1[10],s2[10]={\则能将字符串books赋给数组s1的正确语句是 A)s1={\ B)strcpy(s1,s2);

C)s1=s2; D)strcpy(s2,s1);

6.C语言标准函数 strcpy(s3,strcat(s1,s2)) 的功能是

A)将字符串s1复制到s2中,再连接到s3之后 B)将字符串s2连接到s1之后,再将s1复制到s3中 C)将字符串s2复制到s1中,再将s1连接到s3之后 D)将字符串s2连接到s1之后,再将s3复制到s1中

二、读程序,写出程序执行结果

1. main()

{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0 ;

for(i=0;i<4;i++) s+=aa[i][3]; printf(“%d\\n”,s); } 2.main()

{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i, j, s=0;

for (i=0; i<4; i++) { for (j=0; j<4; j++)

{ if (a[i][j] < 0) continue; if (a[i][j] == 0) break; s += a[i][j]; } }

printf(\ } 3.main()

{ int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7 && p[i]%2) { k =k+ p[i]; i++; } printf(\ } 4.main()

{ int i,n[]={0,0,0,0,0};

第11页(共23页)

for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf(\} }

5.void main()

{ int str[3] [3]={1,2,3,4,5,6,7,8,9}, i,j,t; for(i=0;i<3;i++) for(j=0;j

{ t=str[i][j]; str[i][j]=str[j][i]; str[j][i]=t; } for(i=0;i<3;i++) {

for(j=0;j<3;j++) printf(“=”,str[i][j]) ; printf(\ } }

第8章 函数 一、选择题

1.在C语言中

A)函数的定义允许嵌套,但函数的调用不允许嵌套。 B)函数的定义不允许嵌套,但函数的调用允许嵌套。 C)函数的定义和调用都不允许嵌套。

D)函数的定义和调用都允许嵌套。

2.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是

A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参

3. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定

D)定义函数时所指定的函数类型决定

4.已定义以下函数

fun(int *p) { return *p; }

该函数的返回值是

A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值

5. 在TC语言中,若对函数类型未加显式说明,则函数的隐含类型是

A)void B)double C)int D)char

6.用数组名作为函数调用时的实参,则实际传递给形参的是

第12页(共23页)

A)数组的第一个元素值 B)数组中全部元素值 C)数组的首地址 D)数组的元素个数

二、填空题

1.用数组名作为函数调用时的实参,则实参传递给形参的是 。 2.形参是 变量。

3.函数:float pp(int x,int y) {……},该函数pp的函数类型是____。

三、读程序,写出程序执行结果

1. int fib(int g)

{ switch(g)

{ case 0: return 0; case 1:

case 2: return 1; }

return -1; }

void main()

{ printf(“%d\\n”, fib(2)) ; }

2.int fun(int x)

{ return(x>0 ? x : -x); } void main() { int a=-5;

printf(“%d, %d\\n”,a,fun(a)); }

3. ex ( )

{ static int x=5 ; - -x ;

printf(“%d”,x) ; }

void main ( )

{ ex ( ); ex ( ); ex ( ); }

4. fun(int a, int b)

{ if(a>b) return(a); else return(b); } main()

{ int x=3, y=8, z=6, r; r =fun(fun(x,y), 2*z); printf(\}

5.int f(int x)

第13页(共23页)

{ int y=0; static z=3; y++; z++; return(x+y+z) ; }

main()

{ int w=2,k;

for(k=1;k<3;k++) w=f(w); printf(\

}

6. void f(int x, int y) { int t;

if (x

}

main()

{ int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c);

printf(\

}

7. int b=2;

fun(int *a)

{ b+=*a; return(b);} main()

{ int a=2, res=2; res+=fun(&a);

printf(“%d\\n”,res); }

8.int d=1; void fun(int p)

{ int d=5; d+=p++;

printf(“%d”,d); }

main() { int a=3;

fun(a); d+=a++; printf(\

} 9.int d=2 ;

int fun(int p) { static int d=3 ; d+=p;

第14页(共23页)

printf(\ return(d) ;

}

void main( )

{ printf(\10. int f( )

{ int s=1; static int i=0; s+=i; i++;

return s ; }

void main() { int i,a=0;

for(i=0;i<5;i++) a+=f( ); printf(\

}

11. int f( )

{ int s=1; static int i=0; s+=i; i++; return s ; } main() { int i,a=0;

for(i=0;i<5;i++) a+=f( ); printf(\}

12. int a=5;

fun(int b)

{ static int a=10; a+=b++;

printf(\}

main() { int c=20; fun(c); a+=c++;

printf(\}

13.fun(int a, int b)

{ if(a>b) return(a); else return(b);

第15页(共23页)