一、程序填空 (共131题)
Turbo C(共131试题)
3)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:已定义一个含有30个元素的数组s,函数fun1的功能是按
顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序
每五个元素求一个平均值, 并将该值存放在数组w中。
-------------------------------------------------------*/
float s[30],w[6];
fun1(float s[])
{
int k,i;
for(k=2,i=0;i<30;i++)
{
/***********SPACE***********/
________________ ;
k+=2;
}
}
fun2(float s[],float w[])
{
float sum=0.0;
int k,i;
for(k=0,i=0;i<30;i++)
{
sum+=s[i];
/***********SPACE***********/
________________;
{
w[k]=sum/5;
/***********SPACE***********/
________________ ;
k++;
}
}
}
main()
{
int i;
fun1(s);
/***********SPACE***********/
________________;
for(i=0;i<30;i++)
{
if(i%5==0) printf("\n");
printf("%8.2f",s[i]);
}
printf("\n");
for(i=0;i<6;i++)
printf("%8.2f",w[i]);
}
答案:
【1】 s[i]=k 或 s[i]=(i+1)*2
【2】 if( ( i + 1 )%5 == 0 ) 或 if( ( i + 1 )/5*5 ==i+1)
【3】 sum=0 或 sum=0.0
【4】 fun2(s,w)
50.以下程序是用选择法对20个整数按升序排序。
答案:1.#define N 20
2.k=i
3.j
4.k!=i
4)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:下面的程序是求1!+3!+5!+……+n!的和。
-------------------------------------------------------*/
main()
{
long int f,s;
int i,j,n;
/***********SPACE***********/
________________;
scanf("%d",&n);
/***********SPACE***********/
for(i=1;i<=n; ________________)
{
f=1;
/***********SPACE***********/
for(j=1; ________________;j++)
/***********SPACE***********/
________________;
s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}
答案:
【1】 s=0
【2】 i+=2 或 i=i+2 或 i++,i++
【3】 j<=i 或 i>=j 或 jj
【4】 f= f * j
5)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将一个字符串中下标为m的字符开始的全部字符复制成为另
一个字符串。
-------------------------------------------------------*/
#include
void strcopy(char *str1,char *str2,int m)
{
char *p1,*p2;
/***********SPACE***********/
________________;
p2=str2;
while(*p1)
/***********SPACE***********/
________________;
/***********SPACE***********/
________________;
}
main()
{
int i,m;
char str1[80],str2[80];
gets(str1);
scanf("%d",&m);
/***********SPACE***********/
________________;
puts(str1);puts(str2);
}
答案:
【1】 p1= str1 + m
【2】 *p2++=*p1++ 或 *(p2++)=*(p1++) 或 *p2=*p1,p2++,p1++ 或 *p2=*p1++,p2++ 或 *p2++=*p1,p1++
【3】 *p2='\0' 或 *p2=0 或 *p2=NULL
【4】 strcopy(str1,str2,m)
6)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:以下程序是用选择法对10个整数按升序排序。
-------------------------------------------------------*/
/***********SPACE***********/
________________
main()
{
int i,j,k,t,a[N];
for(i=0;i<=N-1;i++)
scanf("%d",&a[i]);
for(i=0;i
{
/***********SPACE***********/
________________;
/***********SPACE***********/
for(j=i+1; ________________;j++)
if(a[j]
/***********SPACE***********/
if(________________)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
printf("output the sorted array:\n");
for(i=0;i<=N-1;i++)
printf("%5d",a[i]);
printf("\n");
}
答案:
【1】 #define N 10
【2】 k=i
【3】 j
【4】 k != i
7)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:从键盘上输入一个字符串, 将该字符串升序排列后输出到
文件test.txt中,然后从该文件读出字符串并显示出来。
-------------------------------------------------------*/
#include
#include
#include
main()
{
FILE *fp;
char t,str[100],str1[100]; int n,i,j;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("can't open this file.\n");
exit(0);
}
printf("input a string:\n"); gets(str);
/***********SPACE***********/
________________;
/***********SPACE***********/
for(i=0; ________________ ;i++)
for(j=0;j
/***********SPACE***********/
if(________________)
{
t=str[j];
str[j]=str[j+1];
str[j+1]=t;
}
/***********SPACE***********/
________________;
fclose(fp);
fp=fopen("test.txt","r");
fgets(str1,100,fp);
printf("%s\n",str1);
fclose(fp);
}
答案:
【1】 n=strlen(str) 或 for(n=0;str[n]!='\0';n++) 或 for(n=0;str[n];n++) 或 for(n=0;str[n]!=0;n++)
【2】 i
或 n-1>i 或 -1+n>i 或 i<=n-1 或 n-1>=i 或 -1+n>=i
【3】 str[j]>str[ j + 1 ] 或 str[ j + 1 ]
【4】 fputs(str,fp) 或 fprintf(fp,"%s\n",str) 或 fprintf(fp,"%s",str)
8)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出
其和。
-------------------------------------------------------*/
#include
#include
main()
{
int i,n,sum;
sum=0;
/***********SPACE***********/
________________;
/***********SPACE***********/
for(i=1; ________________ ;i++)
/***********SPACE***********/
if(________________)
if(i%2==0)
{
sum=sum+i;
n++;
printf("%6d",i);
/***********SPACE***********/
if(________________)
printf("\n");
}
printf("\ntotal=%d",sum);
}
答案:
【1】 n=0
【2】 i<=300 或 i<300 或 300>=i 或 300>i
【3】 i%7 == 0 || i%17 == 0 或 !(i%7)||!(i%17) 或 !(i%17)||!(i%7) 或 !(i%7&&i%17)
【4】 n%5 == 0 或 !(n%5) 或 n/5*5==n
9)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:以下程序的功能如(图1)。
-------------------------------------------------------*/
#include
main()
{
int f;
/***********SPACE***********/
________________;
float t,pi;
t=1;pi=t;f=1;n=1.0;
/***********SPACE***********/
while(________________ )
{
n=n+2;
/***********SPACE***********/
________________;
t=f/n;
pi=pi+t;
}
/***********SPACE***********/
________________;
printf("pi=%10.6f\n",pi);
}
答案:
【1】 float n 或 duoble n
【2】 fabs(t)>=1e-6 或 fabs(t)>=0.000001 或 1e-6<=fabs(t) 或 0.000001<=fabs(t)
【3】 f=-f 或 f=-1*f 或 f=f*(-1) 或 f=f*-1 或 f=(-1)*f
【4】 pi= pi * 4 或 pi*=4
(图1)
11)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:求100-999之间的水仙花数
说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。
例如:153=1^3+5^3+3^3)。
-------------------------------------------------------*/
int fun(int n)
{ int i,j,k,m;
m=n;
/***********SPACE***********/
________________;
for(i=1;i<4;i++)
{
/***********SPACE***********/
________________;
m=(m-j)/10;
k=k+j*j*j;
}
if(k==n)
/***********SPACE***********/
________________;
else
return(0);}
main()
{
int i;
for(i=100;i<1000;i++)
/***********SPACE***********/
if(________________==1)
printf("%d is ok!\n" ,i);
}
答案:
【1】 k=0
【2】 j=m%10 或 j=m-m/10*10 或 j=m-10*(m/10)
【3】 return(1)
【4】 fun(i)
(图1)
12)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:产生并输出如下形式的方阵。
1 2 2 2 2 2 1
3 1 2 2 2 1 4
3 3 1 2 1 4 4
3 3 3 1 4 4 4
3 3 1 5 1 4 4
3 1 5 5 5 1 4
1 5 5 5 5 5 1
-------------------------------------------------------*/
main()
{
int a[7][7];
int i,j;
for (i=0;i<7;i++)
for (j=0;j<7;j++)
{
/***********SPACE***********/
if (________________) a[i][j]=1;
/***********SPACE***********/
else if (i
else if (i>j&&i+j<6) a[i][j]=3;
/***********SPACE***********/
else if (________________) a[i][j]=4;
else a[i][j]=5;
}
for (i=0;i<7;i++)
{
for (j=0;j<7;j++)
printf("%4d",a[i][j]);
/***********SPACE***********/
________________;
}
}
答案:
【1】 i == j || i + j == 6
【2】 a[i][j]=2
【3】 i
【4】 printf("\n")
13)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:产生并输出杨辉三角的前七行。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
-------------------------------------------------------*/
main ( )
{
int a[7][7];
int i,j,k;
for (i=0;i<7;i++)
{
a[i][0]=1;
/***********SPACE***********/
________________;
}
for (i=2;i<7;i++)
/***********SPACE***********/
for (j=1;j<________________;j++)
/***********SPACE***********/
a[i][j]= ________________;
for (i=0;i<7;i++)
{
/***********SPACE***********/
for (j=0; ________________;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
答案:
【1】 a[i][i]=1
【2】 i
【3】 a[i-1][j]+a[i-1][j-1] 或 a[i-1][j-1]+a[i-1][j]
【4】 j<=i 或 i>=j 或 jj 或 j-1j-1
14)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。
-------------------------------------------------------*/
main()
{
int m,n,k,i=0;
for(m=100;m<=1000;m++)
{
/***********SPACE***********/
________________;
n=m;
do
{
/***********SPACE***********/
k=k+________________ ;
n=n/10;
}
/***********SPACE***********/
________________;
if (k%15==0)
{
printf("%5d",m);i++;
/***********SPACE***********/
if(i%10==0) ________________;
}
}
}
答案:
【1】 k=0
【2】 n%10 或 n-n/10*10 或 n-10*(n/10)
【3】 while(n>0) 或 while(0
【4】 printf("\n")
15)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作
为终止标记。
-------------------------------------------------------*/
main()
{
int x,i=0,j=0;
float s1=0,s2=0,av1,av2;
scanf("%d",&x);
/***********SPACE***********/
while(________________)
{
if(x%2==0) {s1=s1+x;i++;}
/***********SPACE***********/
________________
{
s2=s2+x;
j++;
}
/***********SPACE***********/
________________;
}
if(i!=0)
av1=s1/i;
else
av1=0;
if(j!=0)
/***********SPACE***********/
________________ ;
else
av2=0;
printf("oushujunzhi:%7.2f,jishujunzhi:%7.2f\n",av1,av2);
}
答案:
【1】 x != 0 或 x
【2】 else 或 else if(x%2==1) 或 else if(x%2!=0) 或 if(x%2)
【3】 scanf("%d",&x)
【4】 av2=s2/j
16)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:产生10个[30,90]区间上的随机整数,然后对其用选择法
进行由小到大的排序。
-------------------------------------------------------*/
#include "stdlib.h"
main()
{
/***********SPACE***********/
________________;
int i,j,k;
int a[10];
for(i=0;i<10;i++)
a[i]=random(61)+30;
for(i=0;i<9;i++)
{
/***********SPACE***********/
________________;
for(j=i+1;j<10;j++)
/***********SPACE***********/
if(________________) k=j;
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
/***********SPACE***********/
for(________________ )
printf("%5d",a[i]);
printf("\n");
}
答案:
【1】 int t
【2】 k=i
【3】 a[k]>a[j] 或 a[j]
【4】 i=0;i<10;i++ 或 i=0;10>i;i++ 或 i=0;i<=9;i+=1 或 i=0;9>=i;i++ 或 i=0;i<10;i+=1 或 i=0;10>i;i+=1 或 i=0;i<=9;i++ 或 i=0;9>=i;i+=1 或
i=0;i<10;++i 或 i=0;10>i;++i 或 i=0;9>=i;++i 或 i=0;i<=9;++i
17)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘
输入。
-------------------------------------------------------*/
#include "stdio.h"
main()
{
char str[80],ch;
int i,k=0;
/***********SPACE***********/
gets(________________);
ch=getchar();
/***********SPACE***********/
for(i=0;________________;i++)
if(str[i]!=ch)
{
/***********SPACE***********/
________________;
k++;
}
/***********SPACE***********/
________________;
puts(str);
}
答案:
【1】 str
【2】 str[i]!='\0' 或 str[i]!=NULL 或 str[i]!=0 或 str[i]
【3】 str[k]=str[i] 或 *(str+k)=*(str+i) 或 str[k]=*(str+i) 或 *(str+k)=str[i]
【4】 str[k]='\0' 或 *(str+k)='\0' 或 str[k]=NULL 或 str[k]=0 或 *(str+k)=0 或 *(str+k)=NULL
18)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将一个数组中的元素按逆序存放。
-------------------------------------------------------*/
#define N 7
main ()
{
static int a[N]={12,9,16,5,7,2,1},k,s;
printf("\n the origanal array:\n");
for (k=0;k
printf("%4d",a[k]);
/***********SPACE***********/
for (k=0;k
{
s=a[k];
/***********SPACE***********/
________________ ;
/***********SPACE***********/
________________ ;
}
printf("\n the changed array:\n");
for (k=0;k
/***********SPACE***********/
________________ ("%4d",a[k]);
}
答案:
【1】 k++ 或 k= k + 1 或 k+=1 或 ++k
【2】 a[k]=a[N-k-1] 或 a[k]=a[N-1-k] 或 a[k]=a[6-k] 或 *(a+k)=*(a+N-k-1) 或 *(a+k)=*(a+N-1-k] 或 a[k]=a[-1+N-k] 或 a[k]=a[-1-k+N] 或 a[k]=a[-k-1+N] 或 a[k]=a[-k+N-1] 或 *(a+k)=*(a+N-k-1) 或 a[6-k]=s
【3】 a[N-k-1]=s 或 a[N-1-k]=s 或 a[6-k]=s 或 a[N -k -1]=s 或 *(a +N -k -1)=s
【4】 printf
19)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:是将两个字符串连接为一个字符串,不许使用库函数strcat。
-------------------------------------------------------*/
#include "stdio.h"
#include "string.h"
main ( )
{
char str1[80],str2[40];
int i,j,k;
gets(str1);gets(str2);
puts(str1);puts(str2);
/***********SPACE***********/
________________;
puts(str1);
}
JOIN(s1,s2)
char s1[80],s2[40];
{
int i,j;
/***********SPACE***********/
________________;
/***********SPACE***********/
for (i=0; ________________'\0';i++)
s1[i+j]=s2[i];
/***********SPACE***********/
s1[i+j]= ________________ ;
}
答案:
【1】 JOIN(str1,str2)
【2】 j=strlen(s1) 或 for(j=0;s1[j]!='10';j++); 或 for(j=0;s1[j];j++);
【3】 s2[i]!= 或 *(s2 + i)!=
【4】 '\0' 或 NULL 或 0
20)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:求两个非负整数的最大公约数和最小公倍数。
-------------------------------------------------------*/
main()
{
int m,n,r,p,gcd,lcm;
scanf("%d%d",&m,&n);
if(m
p=m*n;
r=m%n;
/***********SPACE***********/
while(________________ )
{
/***********SPACE***********/
m=n;n=r; ________________;
}
/***********SPACE***********/
gcd=________________;
lcm=p/gcd;
/***********SPACE***********/
printf("gcd=%d,lcm=%d\n", ________________);
}
答案:
【1】 r != 0 或 r
【2】 r=m%n 或 r=m-m/n*n
【3】 n
【4】 gcd,lcm 或 n,lcm
21)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将一个字符串中的前N个字符复制到一个字符数组中去,
不许使用strcpy函数。
-------------------------------------------------------*/
main ( )
{
char str1[80],str2[80];
int i,n;
/***********SPACE***********/
gets(________________);
scanf("%d",&n);
/***********SPACE***********/
for (i=0; ________________ ;i++)
/***********SPACE***********/
________________;
/***********SPACE***********/
________________;
printf("%s\n",str2);
}
答案:
【1】 str1
【2】 i
【3】 str2[i]=str1[i] 或 *(str2+i)=*(str1+i) 或 *(str2+i)=str1[i] 或 str2[i]=*(str1+i)
【4】 str2[n]='\0' 或 str2[i]='\0' 或 str2[n]=0 或 str2[i]=0 或 *(str2+n)='\0' 或 *(str2+i)='\0' 或 *(str+n)=0 或 *(str2+i)=0
22)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:打印以下图形。
*****
*****
*****
*****
*****
-------------------------------------------------------*/
main ( )
{
char a[5][9]={" "};
int i,j;
for (i=0;i<5;i++)
/***********SPACE***********/
for(j=i; ________________;j++)
a[i][j]='*';
/***********SPACE***********/
for(________________;i<5;i++)
{
for(j=0;j<9;j++)
/***********SPACE***********/
printf("%c", ________________ );
/***********SPACE**********
*/
________________;
}
}
答案:
【1】 j< i + 5 或 i + 5 >j 或 j<= i + 4 或 i + 4 >j
【2】 i=0
【3】 a[i][j]
【4】 printf("\n")
23)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:求一个二维数组中每行的最大值和每行的和。
-------------------------------------------------------*/
#include "stdlib.h"
main()
{
int a[5][5],b[5],c[5],i,j,k,s=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=random(40)+20;
for(i=0;i<5;i++)
{
/***********SPACE***********/
k=a[i][0]; ________________ ;
for(j=0;j<5;j++)
{
/***********SPACE***********/
if(k
s=s+a[i][j];
}
b[i]=k;
/***********SPACE***********/
________________ ;
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
/***********SPACE***********/
printf("%5d", ________________ );
printf("%5d%5d",b[i],c[i]);
printf("\n");
}
}
答案:
【1】 s=0
【2】 k=a[i][j]
【3】 c[i]=s
【4】 a[i][j]
24)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素
数)因子的形式。
例如:当N=150时,可分解成1×2×3×5×5;
当N=-150时,可分解为-1×2×3×5×5。
下边程序能实现这种分解过程。当N=150,输出以下分解结
果:N= 1* 2* 3* 5* 5
-------------------------------------------------------*/
main()
{
int n,i,j,r;
scanf("%d",&n);
if (n==0)
{
printf ("data error \n");
exit(0);
}
/***********SPACE***********/
else if (________________)
printf("n=1");
else
{
printf("n=-1");
n=-n;
}
/***********SPACE***********/
for(________________;i<=n;i++)
{
/***********SPACE***********/
________________ ;
while(r==0)
{
printf("*%d",i);
/***********SPACE***********/
________________ ;
r=n%i;
}
}
printf("\n");
}
答案:
【1】 n>0 或 0
【2】 i=2
【3】 r=n%i
【4】 n=n/i 或 n/=i
25)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:以下程序的功能如(图1)。
-------------------------------------------------------*/
/***********SPACE***********/
________________
main()
{
float x,f;
scanf("%f",&x);
/***********SPAC
E***********/
if(x<0) ________________;
/***********SPACE***********/
else if(________________)
f=2*x+1;
else
f=sin(x)+5;
/***********SPACE***********/
printf("x=%f,y=%f\n", ________________);
}
答案:
【1】 #include "math.h" 或 #include
【2】 f=fabs( x + 1 )
【3】 x<=5 或 5>=x 或 x<6 或 6>x 或 x>=0&&x<=5 或 0<=x&&x<=5 或 x>=0&&5>=x 或 0<=x&&5>=x 或 !(x>5)
【4】 x,f
(图1)
26)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:删除一个字符串中的所有数字字符。
-------------------------------------------------------*/
#include "stdio.h"
void delnum(char *s)
{
int i,j;
/***********SPACE***********/
for(i=0,j=0; ________________'\0' ;i++)
/***********SPACE***********/
if(s[i]<'0'________________ s[i]>'9')
{
/***********SPACE***********/
________________;
j++;
}
s[j]='\0';
}
main ()
{
char *item;
printf("\n input a string:\n");
gets(item);
/***********SPACE***********/
________________;
printf("\n%s",item);
}
答案:
【1】 s[i]!= 或 *(s+i)!= 或 *(i+s)!=
【2】 ||
【3】 s[j]=s[i] 或 *(s+j)=*(s+i) 或 s[j]=*(s+i) 或 *(s+j)=s[i]
【4】 delnum(item)
27)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:统计一个字符串中的字母、数字、空格和其它字符的个数。
-------------------------------------------------------*/
#include "stdio.h"
main ()
{
char s1[80];int a[4]={0};
int k;
/***********SPACE***********/
________________;
gets(s1);
/***********SPACE***********/
________________;
puts(s1);
for(k=0;k<4;k++)
printf("%4d",a[k]);
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='\0';i++)
if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
/***********SPACE***********/
else if (________________)
b[1]++;
/***********SPACE***********/
else if (________________ )
b[2]++;
else
b[3]++;
}
答案:
【1】 void fun(char s[],int b[])
【2】 fun(s1,a)
【3】 '0'<=s[i] && s[i]<='9' 或 s[i]>='0' && s[i]<='9' 或 '0'<=s[i] && '9'>=s[i] 或 s[i]>='0' && '9'>=s[i] 或 48<=s[i] && s[i]<=57 或 s[i]>=48 && s[i]<=57 或 48<=s[i] && 57>=s[i] 或 s[i]>=48 && 57>=s[i] 或 !( x < 48 || x > 57 ) 或 !( x < '0' || x > '9' )
【4】 s[i] == ' ' 或 s[i] == 32
28)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将十进制数转换成十六进制数。
-------------------------------------------------------*/
#include "stdio.h"
#include "string.h"
main ()
{
int a,i;
char s[20];
printf("input a integer:\n");
scanf("%d",&a);
c10_16(s,a);
/***********SPACE***********/
for(________________;i>=0;i--)
printf("%c",s[i]);
printf("\n");
}
c10_16(char p[],int b)
{
int j,i=0;
/***********SPACE***********/
while (________________)
{
j=b%16;
if(j>=0&&j<=9)
/***********SPACE***********/
________________;
else p[i]=j+55;
b=b/16;
i++;
}
/***********SPACE***********/
________________;
}
答案:
【1】 i=strlen(s)-1 或 i=-1+strlen(s)
【2】 b>0 或 0
【3】 p[i]= j + '0' 或 p[i]= j + 48 或 *(p+i)= j + '0' 或 *(p+i)= j + 48
【4】 p[i]='\0' 或 p[i]=0 或 p[i]=NULL 或 *(p+i)='\0' 或 *(p+i)=0 或 *(p+i)=NULL
29)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:下面函数为二分法查找key值。数组中元素已递增排序,
若找到key则返回对应的下标,否则返回-1。
-------------------------------------------------------*/
fun(int a[],int n,int key)
{
int low,high,mid;
low=0;
high=n-1;
/***********SPACE***********/
while(________________)
{
mid=(low+high)/2;
if(key
/***********SPACE***********/
________________;
else if(key>a[mid])
/***********SPACE***********/
________________;
else
/***********SPACE***********/
________________;
}
return -1;
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int b,c;
b=4;
c=fun(a,10,b);
if(c==1)
printf("not found");
else
printf("position %d\n",c);
}
答案:
【1】 low<=high 或 high>=low
【2】 high=mid-1
【3】 low= mid + 1
【4】 return mid 或 return (mid)
30)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入字符串,再输入一个字符,将字符串中与输入字符相
同的字符删除。
-------------------------------------------------------*/
#include "stdio.h"
void fun(char a[],char c)
{
int i,j;
/***********SPACE***********/
for(i=j=0; ________________;i++)
if(a[i]!=c) a[j++]=a[i];
/***********SPACE***********/
________________;
}
main()
{
char a[20],cc;
gets(a);
/***********SPACE***********/
________________;
/***********SPACE***********/
________________;
puts(a);
}
答案:
【1】 a[i] != '\0' 或 a[i] 或 a[i]!=NULL
【2】 a[j]
='\0' 或 a[j]=NULL 或 a[j]=0
【3】 cc=getchar() 或 scanf("%c",&cc)
【4】 fun(a,cc)
31)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:用冒泡法对数组a 进行由小到大的排序。
-------------------------------------------------------*/
void fun(int a[],int n)
{
int i,j,t;
/***********SPACE***********/
for (j=0; ________________;j++)
/***********SPACE***********/
for (i=0; ________________;i++)
/***********SPACE***********/
if(________________)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
main()
{
int i,a[10]={3,7,5,1,2,8,6,4,10,9};
/***********SPACE***********/
________________;
for(i=0;i<10;i++)
printf("%3d",a[i]);
}
答案:
【1】 j<=n-1 或 n-1>=j 或 j<=-1+n 或 -1+n>=j 或 j
【2】 i
【3】 a[i]>a[ i + 1 ] 或 a[ i + 1 ]
【4】 fun(a,10)
32)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。
-------------------------------------------------------*/
#include
#include
/***********SPACE***********/
int fun(________________ )
{
int m=0, mc=0, j, n;
/***********SPACE***********/
while (k >= 2 && ________________)
{
/***********SPACE***********/
if (k%13 == 0 || ________________)
{
m=m+k;
mc++;
}
k--;
}
/***********SPACE***********/
________________;
}
main ( )
{
clrscr( );
printf("%d\n", fun (500));
}
答案:
【1】 int k
【2】 mc < 10 或 10 > mc 或 mc <= 9 或 9 >= mc
【3】 k%17 == 0 或 !(k%17) 或 k/17*17 == k
【4】 return m 或 return (m)
33)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:以下程序的功能如(图1)。
-------------------------------------------------------*/
#include
#include
/***********SPACE***********/
double f(________________)
{
/***********SPACE***********/
________________;
/***********SPACE***********/
if (________________)
y=2.0*x*x+3.0*x+4.0;
else
y=-2.0*x*x+3.0*x-4.0;
/***********SPACE***********/
________________;
}
main ( )
{
clrscr( );
printf("%f\n", f(f(-1.0)+f(5.0)));
}
答案:
【1】 float x 或 double x
【2】 double y
【3】 x<=2 或 2>=x
【4】 r
eturn y 或 return (y)
(图1)
34)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:以下程序的功能如(图1)。
-------------------------------------------------------*/
#include
#include
/***********SPACE***********/
float fun(________________, int n)
{
/***********SPACE***********/
________________;
float xa=0, s;
for (j=0; j
xa += x[j]/n;
/***********SPACE***********/
________________;
for (j=0; j
s += (x[j]-xa)*(x[j]-xa)/n;
/***********SPACE***********/
________________;
}
main ( )
{
float x[100] = {193.199, 195.673, 195.757, 196.051, 196.092,196.596,196.579, 196.763};
clrscr( );
printf("%f\n", fun (x, 8));
}
答案:
【1】 float x[] 或 float *x
【2】 int j
【3】 s = 0 或 s = 0.0
【4】 return s 或 return(s)
(图1)
35)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:计算并输出high以内最大的10个素数之和,high由主函数传
给fun函数,若high的值为100,则函数的值为732。
-------------------------------------------------------*/
#include
#include
#include
int fun( int high )
{
int sum = 0, n=0, j, yes;
/***********SPACE***********/
while ((high >= 2) && (________________))
{
yes = 1;
for (j=2; j<=high/2; j++ )
/***********SPACE***********/
if (________________)
{
yes=0;
break;
}
if (yes)
{
sum +=high;
n++;
}
high--;
}
/***********SPACE***********/
________________;
}
main ( )
{
clrscr( );
printf("%d\n", fun (100));
}
答案:
【1】 n<10 或 10>n
【2】 high%j == 0 或 !(high%j)
【3】 return sum 或 return (sum)
92)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将s所指字符串的正序和反序进行连接,形成一个新串放在t
所指的数组中。
例如:当s串为"ABCD"时,则t串的内容应为"ABCDDCBA"。
-------------------------------------------------------*/
#include
#include
#include
void fun (char *s, char *t)
{
int i, d;
/***********SPACE***********/
d = ________________;
/***********SPACE***********/
for (i = 0; i
t[i] = s[i];
for (i = 0; i
/***********SPACE***********/
t[______________
__] = s[d-1-i];
/***********SPACE***********/
t[________________] ='\0';
}
main()
{
char s[100], t[100];
clrscr();
printf("\nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("\nThe result is: %s\n", t);
}
答案:
【1】 strlen(s)
【2】 i++ 或 i=i+1 或 i+=1 或 ++i
【3】 d+i 或 i+d
【4】 2*d 或 d*2 或 i+d 或 d+i
394)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:用条件编译方法实现以下功能。输入一行电报文字,可以任
选两种方式输出,一种为原文输出;另一种将字母变成下
一个字母(如a变成b,C变成D,其他字符不变)输出。
-------------------------------------------------------*/
#define CHANGE
main()
{
/***********SPACE***********/
char str[80],________________=str;
int k;
printf("Input string:");
/***********SPACE***********/
gets________________;
printf("Output string:");
#ifdef CHANGE
for(;*s!='\0';s++)
{
if(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z')
{
(*s)++;
if(*s>'Z'&&*s<'Z'+2)
/***********SPACE***********/
________________;
if(*s>'z')
/***********SPACE***********/
*s=________________;
}
}
printf("%s\n",str);
#else
printf("%s\n",str);
#endif
}
答案:
【1】 *s
【2】 (str) 或 (s)
【3】 *s='A'
【4】 'a'
395)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入3个数a,b,c,按从小到大的顺序输出。
-------------------------------------------------------*/
main()
{
void swap(int *p1, int *p2);
int n1,n2,n3;
int *pointer1,*pointer2,*pointer3;
printf("please input 3 number:n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
pointer1=&n1;
pointer2=&n2;
pointer3=&n3;
/***********SPACE***********/
if(________________) swap(pointer1,pointer2);
/***********SPACE***********/
if(________________) swap(pointer1,pointer3);
/***********SPACE***********/
if(________________) swap(pointer2,pointer3);
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
}
/***********SPACE***********/
void swap(________________)
int *p1,*p2;
{
int p;
p=*p1;*p1=*p2;*p2=p;
}
答案:
【1】 n1>n2 或 n2
【2】 n1>n3 或 n3
【3】 n2>n3 或 n3
【4】 p1,p2
396)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入数组,最大的与最后一个元素交换,最小的与第一个元
素交换,输出数组。
-------------------------------------------------------*/
main()
{
int number[10];
input(number);
max_min(number);
output(number);
}
input(number)
int number[10];
{
int i;
/***********SPACE***********/
for(i=0;________________;i++)
scanf("%d,",&number[i]);
scanf("%d",&number[9]);
}
max_min(array)
int array[10];
{
int *max,*min,k,l;
int *p,*arr_end;
arr_end=array+10;
max=min=array;
for(p=array+1;p
if(*p>*max)
max=p;
else if(*p<*min)
/***********SPACE***********/
________________;
k=*max;
l=*min;
*p=array[0];
array[0]=l;
/***********SPACE***********/
________________;
*p=array[9];
/***********SPACE***********/
________________;
k=*p;
return;
}
output(array)
int array[10];
{
int *p;
for(p=array;p
printf("%d,",*p);
printf("%d\n",array[9]);
}
答案:
【1】 i<9 或 9>i
【2】 min=p
【3】 l=*p
【4】 array[9]=k
397)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙
队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比
赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出
三队赛手的名单。
-------------------------------------------------------*/
main()
{
char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
/***********SPACE***********/
if(________________)
/***********SPACE***********/
for(k='x';________________;k++)
{
/***********SPACE***********/
if(________________)
{
/***********SPACE***********/
if(i!='x'&&k!=________________)
printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
答案:
【1】 i!=j 或 i != j
【2】 k<='z' 或 'z'>=k
【3】 i!=k&&j!=k 或 i != k && j != k
【4】 'z'
398)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
-------------------------------------------------------*/
#include
main()
{
int i,j,k;
/***********SPACE***********/
for(i=0;________________;i++)
{
for(j=0;j<=4-i;j++)
printf(" ");
/***********SPACE***********/
for(k=1;k<=________________;k++)
printf("*");
printf("\n");
}
/***********SPACE***********/
for(________________;j<3;j++)
{
for(k=0;k
printf(" ");
for(k=0;k<5-2*j;k++)
printf("*");
printf("\n");
}
}
答案:
【1】 i<=3 或 i<4 或 3>=i 或 4>i
【2】 2*i+1 或 i*2+1 或 1+2*i 或 1+i*2
【3】 j=0
400)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:用结构体调用的方法编程。要求输入A,B,C,D,E,F五
个元素的数值,并按从大到小的顺序输出。
-------------------------------------------------------*/
#define N sizeof tbl/sizeof tbl[0] /*取得数组有多少个元素*/
int A,B,C,D,E,F;
struct ele
{
char vn;
/***********SPACE***********/
int ________________;
}tbl[]={{'A',&A},{'B',&B},{'C',&C},{'D',&D},{'E',&E},{'F',&F}},t;
main()
{
int k,j,m;
/***********SPACE***********/
for(k=0;k<________________;k++)
{
printf("Enter data for %c\n",tbl[k].vn);
scanf("%d",tbl[k].vp);
}
m=N-1;
while(m>0)
{
for(k=j=0;j
/***********SPACE***********/
if(*tbl[j].vp<________________)
{
t=tbl[j];
tbl[j]=tbl[j+1];
tbl[j+1]=t;
k=j;
}
/***********SPACE***********/
________________;
}
for(k=0;k
printf("%c(%d)",tbl[k].vn,*tbl[k].vp);
printf("\n");
getch();
}
答案:
【1】 *vp
【2】 N
【3】 *tbl[j+1].vp 或 *tbl[ j + 1 ].vp
【4】 m=k
401)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入某年某月某日,判断这一天是这一年的第几天?
-------------------------------------------------------*/
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
/***********SPACE***********/
case 4:________________;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
/***********SPACE***********/
________________;
/***********SPACE***********/
if(year%400==0||(_______
_________)
leap=1;
else
leap=0;
/***********SPACE***********/
if(________________)
sum++;
printf("It is the %dth day.",sum);
}
答案:
【1】 sum=90
【2】 sum=sum+day 或 sum= sum + day
【3】 year%4==0&&year%100!=0) 或 year%4 == 0 && year%100 != 0
【4】 leap==1&&month>2 或 leap == 1 && month>2 或 leap == 1 && 2
402)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入三个整数x,y,z,请把这三个数由小到大输出。
-------------------------------------------------------*/
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
/***********SPACE***********/
if (x>y){________________}
/***********SPACE***********/
if(x>z){________________}
/***********SPACE***********/
if(y>z){________________}
printf("small to big: %d %d %d\n",x,y,z);
}
答案:
【1】 t=x;x=y;y=t;
【2】 t=z;z=x;x=t;
【3】 t=y;y=z;z=t;
403)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输出9*9口诀。
-------------------------------------------------------*/
main()
{
int i,j,result;
printf("\n");
/***********SPACE***********/
for (i=1;________________;i++)
{
/***********SPACE***********/
for(j=1;j<10;________________)
{
result=i*j;
/***********SPACE***********/
printf("%d*%d=%-3d",i,j,________________);
}
printf("\n");
}
}
答案:
【1】 i<10 或 10>i
【2】 j++ 或 ++j 或 j=j+1
【3】 result
404)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:从键盘上输入两个复数的实部与虚部,求出并输出它们的
和、差、积、商。
-------------------------------------------------------*/
#include
void main()
{
float a,b,c,d,e,f;
printf("输入第一个复数的实部与虚部:");
scanf("%f, %f",&a,&b);
printf("输入第二个复数的实部与虚部:");
scanf("%f, %f",&c,&d);
/***********SPACE***********/
________________;
f=b+d;
printf("相加后复数:实部:%f,虚部:%f\n",e,f);
e=a*c-b*d;
/***********SPACE***********/
________________;
printf("相乘后复数:实部:%f,虚部:%f\n",e,f);
e=(a*c+b*d)/(c*c+d*d);
/***********SPACE***********/
________________;
printf("相除后复数:实部:%f,虚部:%f\n",e,f);
}
答案:
【1】 e=a+c 或 e=c+a
【2】 f=a*d+b*c 或 f= a*d + b*c 或 f= a * d + b * c
【3】 f=(b*c-a*d)/(c*c+d*d) 或 f=
(b*c-a*d) / (c*c+d*d) 或 f=( b * c - a * d ) / ( c * c + d * d )
405)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:要求输出结果为:
A,B
65,66
-------------------------------------------------------*/
#include
void main()
{
/***********SPACE***********/
char a,________________;
/***********SPACE***********/
a=________________;
b='b';
a=a-32;
/***********SPACE***********/
b=b-________________;
printf("%c, %c\n%d,%d\n",a,b,a,b);
}
答案:
【1】 b
【2】 'a' 或 97
【3】 32
406)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:从键盘输入一个字符串,将小写字母全部转换成大写字母,
然后输出到一个磁盘文件“test”中保存。输入的字符串
以!结束。
-------------------------------------------------------*/
#include "stdio.h"
#include
main()
{
FILE *fp;
char str[100];
int i=0;
/***********SPACE***********/
if((fp=fopen("test",________________))==NULL)
{
printf("cannot open the file\n");
exit(0);
}
printf("please input a string:\n");
/***********SPACE***********/
gets(________________);
while(str[i]!='!')
/***********SPACE***********/
{
if(str[i]>='a'&&________________)
str[i]=str[i]-32;
fputc(str[i],fp);
i++;
}
/***********SPACE***********/
fclose(________________);
fp=fopen("test","r");
fgets(str,strlen(str)+1,fp);
printf("%s\n",str);
fclose(fp);
}
答案:
【1】 "w"
【2】 str
【3】 str[i]<='z' 或 'z'>=str[i]
【4】 fp
407)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:有五个学生,每个学生有3门课的成绩,从键盘输入以上数
据(包括学生号,姓名,三门课成绩),计算出平均成绩,
设原有的数据和计算出的平均分数存放在磁盘文件"stud"
中。
-------------------------------------------------------*/
#include "stdio.h"
struct student
{
char num[6];
char name[8];
int score[3];
float avr;
} stu[5];
main()
{
int i,j,sum;
FILE *fp;
/*input*/
for(i=0;i<5;i++)
{
printf("\n please input No. %d score:\n",i);
printf("stuNo:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
/***********SPACE***********/
for(j=0;________________;j++)
{
printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
/***********SPACE***********/
sum+=stu[i].________________;
}
stu[i].avr=sum/3.0;
}
fp=fopen("stud","w");
/***********SPACE***********/
for(i=0;i<5;________________)
/***********SPACE***********/
if(fwrite(&stu[i],sizeof(________________),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
答案:
【1】 j<3 或 3>j
【2】 score[j]
【3】 i++ 或 ++i 或 i=i+1
【4】 struct student
408)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入两个整数,求他们的按位与。
-------------------------------------------------------*/
#include
void main()
{
int x,y,z=0,a,b,k=1;
scanf("%d,%d",&x,&y);
while(x>0&&y>0)
{
a=x%2;
/***********SPACE***********/
x=________________;
b=y%2;
y=y/2;
/***********SPACE***********/
z=z+________________;
k=k*2;
}
/***********SPACE***********/
________________("z=%d\n",z);
}
答案:
【1】 x/2
【2】 a*b*k 或 a * b * k
【3】 printf
409)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入数组,最大的与第一个元素交换,最小的与最后一个
元素交换,输出数组。
-------------------------------------------------------*/
main()
{
int number[10];
input(number);
max_min(number);
output(number);
}
input(number)
int number[10];
{
int i;
/***********SPACE***********/
for(i=0;i<9;________________)
scanf("%d,",&number[i]);
scanf("%d",&number[9]);
}
/***********SPACE***********/
max_min(________________)
int array[10];
{
int *max,*min,k,l;
int *p,*arr_end;
/***********SPACE***********/
arr_end=________________;
max=min=array;
for(p=array+1;p
if(*p>*max) max=p;
/***********SPACE***********/
else if(________________) min=p;
k=*max;
l=*min;
*p=array[0];array[0]=l;l=*p;
*p=array[9];array[9]=k;k=*p;
return;
}
output(array)
int array[10];
{
int *p;
for(p=array;p
printf("%d,",*p);
printf("%d\n",array[9]);
}
答案:
【1】 i++ 或 i=i+1 或 ++i
【2】 array
【3】 array+10 或 10+array
【4】 *p<*min 或 *min>*p
410)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:有n个整数,使其前面各数顺序向后移m个位置,最后m个数
变成最前面
的m个数
-------------------------------------------------------*/
main()
{
int number[20],n,m,i;
printf("the total numbers is:");
scanf("%d",&n);
printf("back m:");
scanf("%d",&m);
for(i=0;i
scanf("%d,",&number[i]);
scanf("%d",&number[n-1]);
/***********SPACE***********/
move(________________);
for(i=0;i
printf("%d,",number[i]);
printf("%d",number[n-1]);
}
/***********SPACE***********/
move(________________)
int n,m,array[20];
{
int *p,array_end;
/***********SPACE***********/
array_end=*(________________);
for(p=array+n-1;p>array;p--)
/***********SPACE***********/
*p=*(________________);
*array=array_end;
m--;
if(m>0) move(array,n,m);
}
答案:
【1】 number,n,m
【2】 array,n,m
【3】 array+n-1 或 array + n -1
【4】 p-1 或 p -1
411)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:有n个人围成一圈,顺序排号。从第一个人开始报数(从1
到3报数),凡报到3的人退出圈子,问最后留下的是原来
第几号的那位。
-------------------------------------------------------*/
#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p;
printf("please input the total of numbers:");
scanf("%d",&n);
p=num;
/***********SPACE***********/
for(i=0;________________;i++)
/***********SPACE***********/
*(p+i)=________________;
i=0;
k=0;
m=0;
while(m
{
/***********SPACE***********/
if(________________!=0) k++;
if(k==3)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
/***********SPACE***********/
while(________________) p++;
printf("%d is left\n",*p);
}
答案:
【1】 i
【2】 i+1 或 i + 1
【3】 *(p+i) 或 *( p + i )
【4】 *p==0 或 *p == 0
412)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:写一个函数,求一个字符串的长度,在main函数中输入字
符串,并输出其长度。
-------------------------------------------------------*/
#include
main()
{
int length(char *p);
int len;
char str[20];
printf("please input a string:\n");
scanf("%s",str);
/***********SPACE***********/
len=length(________________);
printf("the string has %d characters.",len);
}
/***********SPACE***********/
________________(p)
char *p;
{
int n;
n=0;
while(*p!='\0')
{
/***********SPACE***********/
________________;
/***********SPACE*
**********/
________________;
}
return n;
}
答案:
【1】 str
【2】 length 或 int length
【3】 n++ 或 ++n 或 n=n+1 或 n+=1
【4】 p++ 或 ++p 或 p=p+1 或 p+=1
414)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:通过函数的递归调用计算阶乘。
-------------------------------------------------------*/
long power(int n)
{
long f;
if(n>1)
/***********SPACE***********/
f=________________;
else
f=1;
return(f);
}
main()
{
int n;
long y;
printf("input a inteager number:\n");
/***********SPACE***********/
scanf("%d",________________);
y=power(n);
/***********SPACE***********/
printf("%d!=%ld\n",n,________________);
getch();
}
答案:
【1】 power(n-1)*n 或 power( n - 1 ) * n 或 n*power(n-1)
【2】 &n
【3】 power(n) 或 y
415)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:数组名作为函数参数,求平均成绩。
-------------------------------------------------------*/
float aver(float a[ ]) /*定义求平均值函数,形参为一浮点型数组名*/
{
int i;
float av,s=a[0];
for(i=1;i<5;i++)
/***********SPACE***********/
s+=________________[i];
av=s/5;
/***********SPACE***********/
return ________________;
}
void main()
{
float sco[5],av;
int i;
printf("\ninput 5 scores:\n");
for(i=0;i<5;i++)
/***********SPACE***********/
scanf("%f",________________);
/***********SPACE***********/
av=aver(________________);
printf("average score is %5.2f\n",av);
getch();
}
答案:
【1】 a
【2】 av 或 (av)
【3】 &sco[i] 或 sco+i
【4】 sco
416)./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:计算个人与各科平均成绩及全班平均成绩,并在屏幕上显
示出来。
-------------------------------------------------------*/
#define M 5 /*定义符号常量 人数为5*/
#define N 4 /*定义符号常量 课程为4*/
#include "stdio.h"
main()
{
int i,j;
void aver(float sco[M+1][N+1]);
static float score[M+1][N+1]={{78,85,83,65}, {88,91,89,93}, {72,65,54,75},{86,88,75,60},{69,60,50,72}};
aver(score);
clrscr();
printf("学生编号 课程1 课程2 课程3 课程4 个人平均\n");
for(i=0;i
{
printf("学生%d\t",i+1);
/***********SPACE***********/
for(j=0;j<________________;j++)
printf("%6.1f\t",sc