文档库 最新最全的文档下载
当前位置:文档库 › 程序填空

程序填空

〖第1题〗『程序填空』(10分)
题目:下面函数为二分法查找key值。
数组中元素已递增排序,若找到key则返回对应的下标,否则返回-1。
#include<stdio.h>
fun(int a[],int n,int key)
{ int low,high,mid;
low=0;
high=n-1;
/***********SPACE***********/
while(【?】)
{ mid=(low+high)/2;
/***********SPACE***********/
if(key<a[mid]) 【?】;
/***********SPACE***********/
else if(key>a[mid]) 【?】;
/***********SPACE***********/
else 【?】;
}
return -1;
}

void 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 或 high=-1+mid
3). low=mid+1
4). return mid 或 return(mid)



〖第2题〗『程序填空』(10分)
题目:求n!,n值由键盘输入。
#include<stdio.h>
void main()
{ int n,i;
float t;
printf("please input n(n>=0):");
/***********SPACE***********/
scanf("%d",【?】);
i=1;
t=1.0;
/***********SPACE***********/
while(【?】)
/***********SPACE***********/
 { 【?】
i++;
 }
printf("%d!=%f",n,t);
}

答案:
1). &n
2). i<=n 或 n>=i 或 i<n+1 或 n+1>i
3). t*=i; 或 t=t*i;


〖第3题〗『程序填空』(10分)
题目:以下程序的功能是统计一个字符串中的
字母、数字、空格、和其它字符的个数。
#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]
4). s[i]==' ' 或 s[i]==32


〖第4题〗『程序填空』(10分)
题目:判断一个给定的整数是否为素数
#include "math.h"。
#include<stdio.h>
void main( )
{ int m,i,k;
scanf("%d",&m);
k=sqrt(m);
/***********SPACE***********/
for(i=2;【?】;i++)
/***********SPACE***********/
if(【?】) break;
/***********SPACE***

********/
if(【?】)
printf("Yes\n");
else
printf("No\n");
}

答案:
1). i<=k 或 i<k+1 或 k>=i 或 k+1>i
2). m%i==0
3). i>k 或 i>=k+1 或 i==k+1 或 k<i 或 k+1<=i


〖第5题〗『程序填空』(10分)

目:以下程序的功能:
计算并输出500以内最大的10个能被13或
17整除的自然数之和。
#include <stdio.h>
/***********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***********/
【?】;
}

void main ( )
{
printf("%d\n", fun (500));
}

答案:
1). int k
2). mc < 10 或 10 > mc 或 mc <= 9 或 9 >= mc
3). k%17 == 0 或 !(k%17)
4). return m 或 return(m)


〖第6题〗『程序填空』(10分)
题目:输入N个数据存入数组中,
将其倒置存放,并打印输出。
#include<stdio.h>
#define N 10
void main( )
{ int i, t, a[N];
printf("Enter %d Numbers:\n", N);
for(i=0;i<N;i++)
/***********SPACE***********/
scanf("%d",【?】);
/***********SPACE***********/
for(i=0;i<【?】;i++)
{ t=a[i];
/***********SPACE***********/
a[i]=【?】;
a[N-i-1]=t;
}
for(i=0;i<N;i++) printf("%d ",a[i]);
}

答案:
1). &a[i]
2). N/2
3). a[N-i-1]


〖第7题〗『程序填空』(10分)
题目:输出Fibonacci数列的前15项,要求每行输出5项。
Fibonacci数列:1,1,2,3,5,8,13...........
#include <stdio.h>
void main()
{
/***********SPACE***********/
 int 【?】[15],i;
 fib[0]=1;fib[1]=1;
 for (i=2;i<15;i++)
/***********SPACE***********/
 fib[i]=【?】;
 for(i=0;i<15;i++)
{
printf("%d\t",fib[i]);
/***********SPACE***********/
if ( 【?】 ) printf("\n");
}
}

答案:
1). fib
2). fib[i-2]+fib[i-1] 或 fib[i-2]+fib[i-1]
3). i%5==4 或 (i+1)%5==0


〖第8题〗『程序填空』(10分)
题目:以下程序的功能是求100-999之间的水仙花数
(水仙花数是指一个三位数的各个位数字的立方和是这个数
本身,如:153=1^3+5^3+3^3)。
#include<stdio.h>
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;
}
/***********SPACE***********/
if(k==n) 【?】
else return(0);
}

void 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); 或 return 1;
4). fun(i)



〖第9题〗『程序填空』(10分)
题目:某次大奖赛,有10个评委打分,
下面的程序是对一名参赛者评分,
输入10个评委的打分分数,去掉一个最高分,
一个最低分后,求出平均分即为该参赛者的得分。
#include<stdio.h>
void main()
{ float mark,max,min,aver=0.0,sum=0.0;
int i;
for
(i=1;i<=10;i++)
{ printf("输入第%d位评委的打分\n",i);
scanf("%f",&mark);
if(i==1)
{ max=mark;
/***********SPACE***********/
【?】;
}
else if(mark<min)
min=mark;
/***********SPACE***********/
else if(【?】)
max=mark;
/***********SPACE***********/
【?】;
}
aver=(sum-max-min)/8;
printf("The Average score is %f\n",aver);
}

答案:
1). min=mark
2). mark>max 或 max<mark 或 mark>=max 或 max<=mark
3). sum+=mark 或 sum=sum+mark


〖第10题〗『程序填空』(10分)
题目:输出9*9口诀。
#include<stdio.h>
void 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 或 i<=9 或 9>=i
2). j++ 或 ++j 或 j=j+1
3). result


〖第11题〗『程序填空』(10分)
题目:用辗转相除法求两个整数的最大
公约数、最小公倍数。
#include<stdio.h>
void main()
{ int n,m,nm,r,t;
printf("Enter m,n=?");
scanf("%d%d",&m,&n);
nm=n*m;
if (m<n)
{ t=m; m=n; n=t; }
r=m%n;
/***********SPACE***********/
while (【?】)
{ m=n;
/***********SPACE***********/
【?】
/***********SPACE***********/
【?】
}
printf("The max Gyshu=%d\n",n);
/***********SPACE***********/
printf("The min Gbshu=%d\n", 【?】);
}

答案:
1). r!=0 或 r
2). n=r;
3). r=m%n;
4). nm/n


〖第12题〗『程序填空』(10分)
题目:以下程序的功能是将一个数组
中的元素按逆序存放。
#define N 7
#include<stdio.h>
void main ()
{ static int a[N]={12,9,16,5,7,2,1},k,s;
printf("\n the origanal array:\n");
for(k=0;k<N;k++) printf("%4d",a[k]);
/***********SPACE***********/
for (k=0;k<【?】; k++ )
{ s=a[k];
/***********SPACE***********/
【?】 ;
/***********SPACE***********/
【?】 ;
}
printf("\n the changed array:\n");
for (k=0;k<N;k++)
/***********SPACE***********/
【?】("%4d",a[k]);
}

答案:
1). N/2
2). a[k]=a[N-k-1] 或 a[k]=a[N-1-k]
3). a[N-k-1]=s 或 a[N-1-k]=s
4). printf


〖第13题〗『程序填空』(10分)
题目:

输入3个整数,输出最大数。
#include<stdio.h>
void main( )
{ int a,b,c, max;
printf("input three numbers: ");
scanf("%d%d%d",&a,&b,&c);
/***********SPACE***********/
if(【?】)
max=a;
/***********SPACE***********/
【?】
max=b;
if(max<c)
/***********SPACE***********/
【?】
printf("max=%d\n",max);
}

答案:
1). a>b 或 b<a
或 a>=b 或 b<=a
2). else 或 if(a<b) 或 if(a<=b) 或 if(b>a) 或 if(b>=a)
3). max=c;


〖第14题〗『程序填空』(10分)
题目:输入三个整数x,y,z,请把这
三个数由小到大输出。
#include<stdio.h>
void main()
{ int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
/***********SPACE***********/
{【?】}
if(x>z)
/***********SPACE***********/
{【?】}
if(y>z)
/***********SPACE***********/
{【?】}
printf("small to big: %d %d %d\n",x,y,z);
}

答案:
1). t=x;x=y;y=t; 或 t=y;y=x;x=t; 或 t=x,x=y,y=t; 或 t=y,y=x,x=t;
2). t=z;z=x;x=t; 或 t=x;x=z;z=t; 或 t=z,z=x,x=t; 或 t=x,x=z,z=t;
3). t=y;y=z;z=t; 或 t=z;z=y;y=t; 或 t=y,y=z,z=t; 或 t=z,z=y,y=t;


〖第15题〗『程序填空』(10分)
题目:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
#include<stdio.h>
void 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<j+3;k++) printf(" ");
/***********SPACE***********/
for(k=0;k<【?】;k++) printf("*");
printf("\n");
 }
}

答案:
1). i<=3 或 i<4
2). 2*i+1 或 i*2+1 或 1+2*i 或 1+i*2
3). j=0
4). 5-2*j 或 5-j*2 或 6-(2*j+1) 或 4-(2*j-1)


〖第16题〗『程序填空』(10分)
题目:以下程序的功能:计算并输出high以内
最大的10个素数之和,high由主函数传
给fun函数,若high的值为100,则函数的值为732。
#include <stdio.h>
#include <math.h>
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 (【?】)
/***********SPACE***********/
{yes=0; 【?】;}
if (yes)
{ sum +=high; n++; }
high--;
}
/***********SPACE***********/
【?】;
}

void main ( )
{ printf("%d\n", fun (100)); }

答案:
1). n<10 或 10>n 或 n<=9 或 9>=n
2). high%j==0
3). break
4). return sum 或 return(sum)


〖第17题〗『程序填空』(10分)
题目:输入如下形式的二项式系

数列标。
要求表的行数运行时输入,若小于1或者大于10则重新输入。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
#include<stdio.h>
void main()
{ int a[10][10]={{0}}, i, j, n;
while(scanf("%d",&n),n<1 || n>10);
for(i=0;i<10;i++)
{ a[i][0]=1;
/***********SPACE***********/
【?】;
}
for(i=2;i<n;i++)
for(j=1;j<i;j++)
/***********SPACE***********/
a[i][j]=a[i-1][j]+【?】;
for(i=0;i<n;i++)
{ for(j=0;j<=i;j
++)
printf("%4d",a[i][j]);
/***********SPACE***********/
【?】;
}
}

答案:
1). a[i][i]=1
2). a[i-1][j-1]
3). printf("\n")


相关文档