|
31
.
sum(int n)
{
if(n= =1) return(1);
else return n+sum(n
-1);
}
main( )
{
printf(
″
%d\n
″
,sum(10));
}
32
.设从键盘输入
282
sub(int n)
{int s=1;
do
{ s*=n%10;n/=10;}
while(n);
return s;
}
main( )
{ int n;
scanf (
″
%d
″
,&n);
n=sub(n);
printf(
″
%d\n
″
,n);
}
33
.
#define N 7
#define PRINT for(i=0;i<N;i++)printf(
″
%5d
″
,a[i]);printf(
″
\n
″
);
main( )
{int i,j,temp,a[N]={1,2,3,4,5,6,7};
PRINT
for(i=0,i<N/2,i++)
{j=N
-1
-i;temp=a[i];a[i]=a[j];a[j]=temp;}
PRINT
}
34
.
int x=30;y=50;
sub(x,y)
{ y=x>y?x:y;
return y;
}
main( )
{
{int x=100;
printf(
″
%d\n
″
,sub(x,y));
}
printf(
″
%d,%d\n
″
,x,y);
}
35.
设文件
file1.c
的内容为
COMPUTER
#include
″
stdio.h
″
main( )
{ FILE *fp;
char ch;
if((fp=fopen(
″
file1.c
″
,
″
r
″
))= =NULL)
{ printf(
″
Cannot open file \n
″
);
exit(0);
}
while(!feof(fp))
{
ch=fgetc(fp);if(ch>=
′
A
′
&&ch<=
′
Z
′
)fputc(ch+32,stdout);
}
fclose(fp);
}
四、程序填充题(本大题共
3
小题,每小题
6
分,共
18
分)
给出下列程序,将横线处缺少的部分补上,使其能正确运行。
36
.将一个十进制整数
n
转变为二进制数。
main( )
{ int i=0,j,n,num[20];
scanf(
″
%d
″
,
);
/*
第一空
*/
while(n!=0)
{ num[i++]=
;
/*
第二空
*/
n=
;
/*
第三空
*/
}
for(j=i
-1;j>=0;j
--)printf(
″
%d
″
,num [j]);
}
37
.一个一维数组和一个二维数组同处一个共用型,将数据输入一维数组后,在二维数组中输出。
main( )
{union data
{ int a[10];
int b
;/*
第一空
*/
}
;
union data ab;
int i,j;
for(i=0;i<10,i++)
scanf(
″
%d
″
,
);
/*
第二空
*/
for(i=0;i<2;i++)
for(j=0;j<5;j++)
printf(
″
%5d
″
,
)
;
/*
第三空
*/
}
38
.用指针法输出二维数组,每行三个数。
main( )
{int i,j,a[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3];
;
/*
第一空
|