第1.题*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:下面的程序是求1!+3!+5!+……+n!的和。
-------------------------------------------------------*/
#include
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);
}
[备注]此答案中的“★”请忽略。本文档中其它地方出现的“★”请都忽略!比如f=★f★*★j★就是表示f=f*j “★”号表示可以有一个或多个空格。
第2.题/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将一个字符串中下标为m的字符开始的全部字符复制成为另
一个字符串。
-------------------------------------------------------*/
#include
void strcopy(char *str1,char *str2,int m)
{
char *p1,*p2;
/***********SPACE***********/
【?】;
p2=str2;
while(*p1)
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
}
main()
{
int m;
char str1[80],str2[80];
gets(str1);
scanf("%d",&m);
/***********SPACE***********/
【?】;
puts(str1);puts(str2);
}
第3.题./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:以每行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);
}
第4.题./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:求100-999之间的水仙花数
说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。例如:153=1^3+5^3+3^3)。
-------------------------------------------------------*/
#include
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);
}
第5.题./*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:产生并输出如下形式的方阵。
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
-------------------------------------------------------*/
#include
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***********/ 【?】; } } 第6.题./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:产生并输出杨辉三角的前七行。 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 -------------------------------------------------------*/ #include main ( ) { int a[7][7]; int i,j; 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"); } } 第7.题./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。 -------------------------------------------------------*/ #include 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) 【?】; } } } 第8.题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。 -------------------------------------------------------*/ #include 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); } 第9.题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。 -------------------------------------------------------*/ #include 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); } 第10.题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:求两个非负整数的最大公约数和最小公倍数。-------------------------------------------------------*/ #include 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", 【?】); } 第11题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:将一个字符串中的前N个字符复制到一个字符数组中去,不许使用strcpy函数。 -------------------------------------------------------*/ #include 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); } 第12.题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:对任一整数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 -------------------------------------------------------*/ #include #include main() { int n,i,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"); } 第13.题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:删除一个字符串中的所有数字字符。 -------------------------------------------------------*/ #include 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"); item=""; gets(item); /***********SPACE***********/ 【?】; printf("\n%s",item); } 第14题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:统计一个字符串中的字母、数字、空格和其它字符的个数。-------------------------------------------------------*/ #include 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]++; } 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]); } 第15题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:将十进制数转换成十六进制数。 -------------------------------------------------------*/ #include #include "string.h" 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***********/ 【?】; } { 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"); } 第16题/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面函数为二分法查找key值。数组中元素已递增排序,若找到key则返回对应的下标,否则返回-1。 -------------------------------------------------------*/ #include fun(int a[],int n,int key) { int low,high,mid; low=0; high=n-1; /***********SPACE***********/ while(【?】) { mid=(low+high)/2;