C语言程序设计 习题二
填空题:
(1)已知:int a[3] = {1, 2, 3}; 则 *(a+1)+2 的值为 __4____。
(2)下面程序段的输出结果是BC。
int a=1;
switch(a<=1) {
case 0:printf("A");
case 1:printf("B");
default:printf("C"); }
(3)以下程序运行后的输出结果是____3___。
main()
{int a=5,b=4,c=3,d=2;
if (a>b>c)
printf(“%d\n”,d);
else if( (c-1 >=d) = =1 )
printf( “%d\n”,d+1);
else
printf( “%d\n”,d+2); }
(4)下面程序段的输出结果是3
int a[][3]={{1,2,3},{1,2,3},{1,2,3}};
int s=0,m,n;
for(m=0;m<=2;m++)
for(n=0;n<=3;n++)
{ if (a[m][n]= =2) break;
s+= a[m][n]; }
printf(“%d”,s);
(5)以下程序运行后的输出结果是____24____
include <stdio.h>
int f ( int );
void main( )
{ int a = 4;
printf(“%d\n”, f(a) );
}
int f( int a )
{ return ( a= =0 ) ? 1: a*f(a-1);}
(6)下列函数用起泡法对一维整数数组中的数据进行从小到大的排序,请填空。
void sort(int a[],int n)
{ int i, j;
for( i=0; i < n-1; i ++)
for ( ______j=0;j<n-1-I;j++_____ )
if(___a[j]>a[j+1]____) { t= a[j]; a[j] = a[j+1]; a[j+1] = t; }
}
(7)下面程序将一组数据写入”file.dat”文件中,请填空。
include <stdio.h>
include <stdlib.h>
void main( )
{ char dt[9] ={1,2,3,4,5,6,7,8,9};
FILE *fp;
fp = _________fopen(“file.dat”,”w”)____________;
if ( fp ==NULL ) { printf(“file can’t open!”); exit(0); }
fwrite( ________fwrite(dt,1,9,fp)_________);
fclose( fp);
}
(8)下面程序的功能是求1- 2 + 4 –8 +16 – 32 +……+(-1) n×2 n之和,请填空。
include<stdio.h>
main()
{ int s =1, t = 1, i, n=10 ;
for( i=1;i <= n; i++)
{ ______t=-(2*t)________;
s+=t; }
printf("%d\n",s);
}
(9)下面程序段的输出结果是______2_______
int a=10,b=5;
sub(int b,int a)
{ return(a-b);}
main()
{ int a=3;
printf("%d\n", sub(a,b)); }
(10)完成下面函数,用递归的方法求n!.
int f(int n)
{ int s;
if (n==1)s=1;
else s= ____n*f(n-1)_____;
return s; }
(11)若有下面程序段:
void main()
{ int n1,n2;
scanf("%d",&n2);
while ( n2!=0 )
{ n1=n2%10;
n2=n2/10;
printf("%d", n1) ; }
}
程序运行后,键盘输入1234,输出结果是_____4321_____。
(12)完成下面程序,将变量a和b的值进行交换。
char a=’A’,b=’B’;
char p1,p2,t;
p1=&a;p2=&b;
t=p1; _____p1=p2_____; _____p2=t______;
printf(“%c,%c”,p1 ,*p2 );