2024年6月15日发(作者:)

序号

1.

请编写程序,输出1~1000之间能被11整除且个位数为5的所有整数。

#include

int main()

{

}

int i;

printf("所有的整数有:n");

for(i=5;i<1000;i+=10)

if(i%11==0)

printf("%4d ",i);

return 0;

2. 有3个整数a,b,c,由键盘输入,输出其中最大的数。

#include

int main()

{

}

3. 从键盘任意输入一个4位正整数x,编程计算x的每一位上的数字相加

之和。例如:输入x为1234,则输出结果为10。

#include

int main()

{ int x;

int a,b,c,max;

printf("请输入三个整数,中间用空格隔开:n");

scanf("%d%d%d",&a,&b,&c);

if(a

max=b;

else

max=a;

if(max

max=c;

printf("最大的数是:");

printf("%d",max);

return 0;

printf("请输入一个四位整数 x:n");

scanf("%d",&x);

printf("所有位数之和

是: %d",x/1000+x%1000/100+x%1000%100/10+x%10);

return 0;

}

4. 编程输出100~1000之间所有个位数字与十位数字之和对10求余等于

百位数字的数。例如:835,(3+5)%10=8。

#include

int main()

{ int i;

printf("所有的数为:n");

for(i=100;i<1000;i++)

if((i%100/10+i%10)%10==i/100)

printf("%5d",i);

return 0;

}

5. 编程判断用户输入的m是否为素数,已知0和1不是素数。

#include

int main()

{

int a , i ;

printf("请输入一个整数:");

scanf("%d", &a);

for(i = 2; i < (a/2 + 1); i++)

{

if(a % i == 0)

{ printf("%d不是一个素数!n", a);

return 0;//跳出整个函数

}

}

printf("%d是一个素数!n", a);

return 0;

}

6. 选取出100以上1000以内所有个位数字与十位数字之和被10除所得

余数恰是百位数字的素数(如293,(9+3)%10==2 并且293是素

数)。计算并输出上述这些素数的个数以及这些素数值的和。

#include

int main()

{

int i,k,j,n=0,sum=0;

bool flag; //bool只有true和false两种值

for(i=100;i<=1000;i++)

{

flag=true; //定义变量flag为真

for(j=2;j

{

if (i%j==0)

flag=false; //bool两种情况 :①不是素数为

false②素数为true

}

if(((i%10+i/10%10)%10==i/100%10) &&

flag==true)

{

n++;

sum+=i;

}

} printf("符合条件整数的个数是:%d个n",n);

printf("素数总和是:%d",sum);

return 0;

}

7. 计算1+1/2+1/3+1/4+…+1/99+1/100的值并输出结果。

#include

int main()

{ int i;

double sum=0;

for(i=1;i<=100;i++)

{sum+=1.0/i;} //注意是1.0

printf("%f",sum);

return 0;

}

8. 计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小

于10

-4

为止。

#include

int main()

{

}

9. 输入一行不大于80个字符的字符串,统计其中小写字母的个数并输出

结果。

#include

int main()

{

{

if(str[i]>='a'&&str[i]<='z')

x++;

int i,x=0;

char str[80];

printf("请输入字符串:");

scanf("%s",str);

int i = 1, s = 1;

double sum = 0, e;

do

{ e = 1.0 / i;

sum += e * s;

s = -s; //改变符号,正负交替

i++;

}

printf("总和是:%fn", sum);

return 0;

while (e > 1e-4);

for(i=0;str[i]!='0';i++)

}

}

10. 假如我国国民生产总值的年增长率9%,计算10后我国民生产总值与现

在比增长的百分比。计算公式为:公式p=(1+r)

n

,r为年增长率,n为年

数,p为与现在相比的倍数。

#include

#include

int main()

{

printf("十年后增长的百分比:p=%f",pow(1+0.09,10.0));

}

11. 编程计算1-100之间所有的偶数的和。

#include

int main()

{ int i,sum=0;

for(i=1;i<=100;i++)

{

}

12. 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按

从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个

士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再

按从1至11报数,最末一个士兵报的数为10。请编程计算韩信至少有

多少兵。

#include

int main()

{

if(i%2==0)

}

return 0;

sum+=i;

printf("所有的偶数之和是: %d",sum);

return 0;

printf("小写字母的个数是: %d个",x);

return 0;

}

13.

int i;

for(i=10;;i++)

if(i%5==1 && i%6==5 && i%7==4 &&i%11==10)

{

printf(" 韩信至少有: %d个兵n",i);break;

}

return 0;

用户输入一个三位正整数,编程输出该数的个位、十位、百位,例如:

输入356,输出6,5,3。

#include

int main()

{

}

int x,b,c,d;

printf("请输入一个三位数:n");

scanf("%d",&x);

b=x%10;

c=x/10%10;

d=x/100;

printf("逆序输出是:%2d %2d %2dn",b,c,d);

return 0;

14. 请编程计算圆锥体的体积。已知圆锥体的底面直径和高均为10 CM,圆

锥体体积计算公式为:V=(1/3)*S*h, S是圆锥的底面积,h是圆锥的

高。

#include

int main()

{ double d=0.1,h=0.1,pi=3.14,s;

s=pi*(d/2.0)*(d/2.0);

printf("圆锥的体积是 %f立方米",(1.0/3)*s*h);

return 0;

}

15. 根据用户从键盘输入的三角形三边长度a,b,c,计算该三角形的面积。若

用户输入的三条边不能构成三角形,则直接输出信息:“不能构成三角

形!”。

提示:

1.构成三角形的三条边应满足条件:任意两条边的和均大于第三边;

2.已知三角形的三条边长,计算三角形面积的海伦公式为:

,其中p=(a+b+c)/2

#include

#include

int main()

{ int a,b,c ;

double p;

printf("请输入三条边:");

scanf("%d%d%d",&a,&b,&c);

if(a+b<=c||a+c<=b||b+c<=a)

{printf("不能构成三角形!");}

else

{ p=(a+b+c)/2.0;

printf("面积是: %f",pow(p*(p-a)*(p-b)*(p-c),1/2.0));

}

return 0;

}

16. 请编写程序,输出50~100之间能被7或11整除,但不能同时被7和

11整除的所有整数。

#include

int main()

{ int i;

printf("符合条件的整数有: ");

for(i=50;i<=100;i++)

if(( i%7==0 || i%11==0 ) && (!( i%7==0 && i%11==0 )))

printf("%5d",i);

return 0;

}

17. 某铁桶厂应客户要求定做一批铁桶,客户给出了铁桶的规格,高30cm,

半径10cm,共订做1500个铁桶。计算出所需的原材料。(注意:铁桶

包含一个底面和侧面)

#include

int main()

{

}

18. 编写程序,从键盘输入x,y的值,利用系统库函数求x

y

的值。例如:

输入x,y的值分别是2,3,则输出结果为:8

#include

#include

int main()

{

double x,y;

printf("请输入x,y的值:");

scanf("%lf%lf",&x,&y);

printf("%f",pow(x,y));

return 0;

}

19. 设圆半径r=1.5,圆柱高h=3,求圆柱体积,圆柱表面积。用scanf()

输入数据,输出计算结果。输出时要有说明,结果取小数点后两位数字。

(圆柱体积计算公式:底面积*高)

#include

int main()

{ double r,h,pi=3.14,v,s;

printf("请输入半径和高:");

scanf("%lf%lf",&r,&h);

v=pi*r*r*h;

s=2*pi*r*h+2*pi*r*r;

float s,r,h;

int n;

printf("请输入数据r,h,n,u。空格隔开:n");

scanf ("%f%f%d",&r,&h,&n);

s=3.14*r*h*2+3.14*r*r;

s=s*n;

printf("所需材料的面积为:%.2fn",s/10000);

return 0;

printf("圆柱体积是:%.2fn",v);

printf("圆柱表面积是:%.2f",s);

return 0;

}

20. 从键盘上输入一个小写字母,把它转变为大写字母再输出。

#include

int main()

{ char ch;

printf("请输入一个小写字母:");

scanf("%c",&ch);

ch=ch-32;

printf("对应的大写字母是;%c",ch);

return 0;

}

21. 编写程序输出Fibonacci数列中前20个数,Fibonacci数列的前两个

数为1,1,以后每一个数都是前两个数之和。

#include

int main ()

{

}

22. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插

入数组中。

#include

int main()

{

int f1=1,f2=1,i;

for (i=0;i<=20;i++)

{

}

return 0;

printf("%12d%12d",f1,f2);

f1=f1+f2;

f2=f2+f1;

printf("n");

}

23.

int a[6]={9,27,52,69,88};

int i,t;

printf("原数列是:");

for(i=0;i<5;i++)

printf("%5d",a[i]);

printf("请输入一个整数:");

scanf("%d",&a[5]);

for(i=0;i<5;i++)

if(a[i]>a[5])

{t=a[i];a[i]=a[5];a[5]=t;}

printf("插入后的排序结果是:");

for(i=0;i<6;i++)

printf("%5d",a[i]);

printf("n");

return 0;

printf("n");

键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这

10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。

#include

int main()

{

int a[10],i,x;

printf("请输入10个不相同的整数:");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf("请输入要查找的数:");

scanf("%d",&x);

for(i=0;i<10;i++)

{

if(a[i]==x)

{

printf("Found!");

return 0;//跳出整个函数

}

}

printf("Not found!");

}

24. 由用户输入一个包含10个元素的整型数组,将其中的元素逆序排列后,

输出逆序后的数组。例如:原数组:1,2,3,4,5,6,7,8,9,10,逆序排列后

的数组:10,9,8,7,6,5,4,3,2,1

#include

int main()

{

}

25. 有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求找

出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此

数”。例如:原数组内容是15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,若

用户输入10,则输出“0是数组中第6个元素”,若用户输入16,则输

出“无此数”。

#include

int main()

{

int a[15]={1,2,3,4,5,6,7,8,9,12,15,18,20,24,28};

int i,x;

printf("原数列是:n");

for(i=0;i<15;i++)

printf("%4d",a[i]);

printf("n");

int a[10],i;

printf("请输入十个整数:");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf("逆序输出是:");

printf("%d ",a[i]);

return 0;

return 0;

for(i=9;i>=0;i--)

printf("请输入数组中的一个数:");

scanf("%d",&x);

for(i=0;i<15;i++)

{

if(a[i]==x)

{printf(" %d是数组中第%d个元素",x,i+1);

return 0;//跳出整个函数

}

}

printf("无此数");

}

26. 有一分数序列:

return 0;

23581321

,,,,,......

1235813

求出这个数列的前10项之和。

#include

int main()

{

int f1=1,f2=1,num=0,sum=0,i;

printf("前十项是:n");

for(i=0;i<10;i++)

{

printf("%4d",f2);

num=f1+f2;

sum+=f2;

f1=f2;

f2=num;

}

printf("n前十项之和是:sum=%dn",sum);

return 0;

}

27. 编写程序,从键盘输入某班10位学生的成绩(成绩均为float型数据),

对成绩进行由高到低排序,并输出排序结果。

#include

int main()

{

}

28. 从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不

相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg

和abceef,则输出为-1。

#include

int main ( )

{

char str1[100],str2[100];

int i,s;

printf("n Input string 1:n");

gets(str1);

printf("n Input string 2:n");

gets(str2);

for(i=0;;i++)

{

if(str1[i]==str2[i])

continue;

float a[10],t;

int i,j;

printf("请输入十个学生的成绩:");

for(i=0;i<10;i++)

scanf("%f",&a[i]);

printf("n");

for(i=0;i<9-j;i++)

if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

for(j=0;j<9;j++)

printf("成绩从高到低依次是:n");

for(i=9;i>=0;i--)

printf("%f ",a[i]);

printf("n");

return 0;

29.

else

break;

}

s=str1[i]-str2[i];

printf("第一个不相同字符的ASCII码之差是:%dn",s);

return 0;

}

求一维数组a中所有元素的平均值。例如,当一维数组a中的元素为:

10,4,2,7,3,12,5,34,5,9程序的输出应为:The averge is:9.10.

#include

int main()

{

}

float a[10],average,sum=0.0;

int i;

printf("请输入十个数字:");

for(i=0;i<10;i++)

{

scanf("%f",&a[i]);

sum+=a[i];

}

average=sum/10;

printf("The average is:%.2f",average);

return 0;

30. 求一维数组a中的最小元素及其下标。例如,当一维数组a中的元素为:

1,4,2,7,3,12,5,34,5,9,程序的输出应为:The min is:1,pos is:0

#include

int main()

{ int a[10]={58,100,5,15,46,3,75,32,1,25};

int i,pos=0;

int min=a[0];

for(i=0;i<10;i++)

{

if(a[i]

{min=a[i];

pos=i;}

}

printf("The min is:%d,pos is:%d",min,pos);

return 0;

}

31. 编程计算一球从100米高度自由落下,每次落地后反跳回原高度的一半;

再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

#include

int main()

{ float sn=100.0,hn=sn/2;

int n;

for(n=2;n<=10;n++)

{

sn=sn+2*hn;

hn=hn/2;

}

printf("第10次落地时,共经过: %f米n",sn);

}

32. 从键盘任意输入某班10个学生的成绩,输出最高分并统计出不及格人

数。

#include

int main()

{ float a[10],max=a[0];

int i,n=0;

printf("请输入十个学生的成绩:");

for(i=0;i<10;i++)

{ scanf("%f",&a[i]);

if(a[i]>max)

max=a[i];

if(a[i]<60)

n++;

printf("第10次反弹:%f米n",hn);

return 0;

}

printf("最高分为:%.2f",max);

printf("n不及格的人数有:%d个",n);

return 0;

}

33. 让用户从键盘输入一个年份,判断该年份是否是闰年。判断闰年的条件

是:年份被4整除不能被100整除,或者被400整除

#include

int main ()

{

int n;

printf("请输入一个年份:");

}

34.

有一个函数

scanf("%d",&n);

if(n%400==0 || (n%4==0 && n%100 !=0))

printf("%d是闰年n",n);

printf("%d不是闰年",n);

else

return 0;

x1

x

y

2

x

1

(1x10)

3

x

11

(x10)

写程序,输入x的值,输出y相应的值。

#include

int main()

{

float x,y;

printf("请输入x的值:");

scanf("%f",&x);

}

35.

if(x<1)

{y=x;}

if(x>=1&&x<10)

{y=2*x-1;}

if(x>=10)

{y=3*x-11;}

printf("y=%.2f",y);

return 0;

在学生成绩管理中,经常要将成绩的百分制转换成对应的等级制。90分

以上为A等,80-89为B等,70-79为C等,60-69分为D等,其余

为E等。编写程序,根据输入的百分制成绩,输出对应的等级。

#include

int main()

{

}

float i;

printf("请输入一个成绩:");

scanf("%f",&i);

switch((int)i/10)

{

case 10:

case 9: printf("An");

}

return 0;

break;

break;

break;

break;

case 8: printf("Bn");

case 7: printf("Cn");

case 6: printf("Dn");

default: printf("En");

36. 从1开始做自然数的累加,当其累加和超过1000的时候,共计累加了

多少数?当时的累加和是多少?

#include

int main ()

{

}

37. 百钱买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只1元。用

100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?

#include

int main()

{

}

38. 某歌手大赛,共有10个评委打分,分数采用百分制整数,去掉一个最

高分,去掉一个最低分,然后取平均分,得到歌手的成绩,编程实现。

#include

int main()

{

int x,y,z;

printf("可能的结果有:n");

for (x=0;x<=20;x++)

for (y=0;y<=33;y++)

{

z=100-x-y;

if (z%3==0&&(5*x+3*y+z/3==100))

}

return 0;

for(i=1;s<=1000;i++)

{

s+=i;

n++;

}

printf("累加了:n=%d个n累加和是:s=%dn",n,s);

return 0;

int i,s=0,n=0;

printf("公鸡=%2d,母鸡=%2d,小鸡=%2dn",x,y,z);

int i,a[10];

float sum=0,aver,max,min;

printf("请输入十个分数:");

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

sum+=a[i];

}

max=a[9],min=a[0];

for(i=0;i<10;i++)

{

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

aver=(sum-max-min)/8;

printf("aver is :%f",aver);

return 0;

}

39. 给一个不多于5位的正整数,要求:

1. 求y出它是几位数并分别输出每一位数字;

2. 按逆序输出各位数字,例如原数为321,应输出123。

#include

#include

int main()

{

char a[20];

int j,k,m;

scanf("%s",a);

j=strlen(a);

printf("这个数字是%u位数!n",j);

printf("从最高位输出各个位数依次是:");

for(k=0;k<(int)j;k++)

printf("%2c,",a[k]);

printf("n逆序为:");

for(m=0;m<(int)j;m++)

printf("%c,",a[j-m-1]);

return 0;

}

40. 编写程序,将一个3行2列的二维数组的行和列元素互换,存到另一个

2行3列的二维数组中,并输出其结果。

#include

int main ()

{

}

41. 写一个函数transposition,使给定的一个3X3的二维整型数组转置,

即行列互换void transposition(int x[3][3])

int a[3][2]={{1,2},{3,4},{5,6}};

int b[2][3],i,j;

printf("array:an");

for(i=0;i<=2;i++)

{

}

for(i=0;i<=1;i++)

{

}

return 0;

for(j=0;j<=2;j++)

printf("%5d",b[i][j]);

for(j=0;j<=1;j++)

{

}

printf("%5d",a[i][j]);

b[j][i]=a[i][j];

printf("n");

printf("array b:n");

printf("n");

#include

int x[3][3]={1,2,3,4,5,6,7,8,9};

int transposition(int i,int t)

{ int j;

for(i=0;i<3;i++)

for(j=i;j<3;j++)

{

t=x[i][j];

x[i][j]=x[j][i];

x[j][i]=t;

}

return x[j][i];

}

int main()

{

int i,j,t;

printf("原数列是:n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%3d",x[i][j]);

printf("n");

}

printf("转置后的矩阵为:n");

x[j][i]=transposition(i,t);

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%3d",x[i][j]);

printf("n");

}

return 0;

}

42. 编程完成下述功能:从键盘输入一个4行4列矩阵的各元素的值,求出

该矩阵两条对角线上各元素值之和并输出结果。

#include

int main()

{

}

43. 请编写程序,由用户输入不大于80个字符的字符串tt,用户输入要删除

的字符x,删除tt中所有值为x的元素,输出执行删除操作前、后的数

组。例如:输入字符串为 I love LinYi University,输入x的值为’i’,

则删除后字符串值为:I love LnY Unversty

#include

int main()

{ char tt[80],x;

int i,j;

printf("请输入一行字符串 :");

gets(tt);

printf("原字符串是: ");

puts(tt);

printf("输入你想删除的字母 : ");

x=getchar();

for(i=0;tt[i]!='0';i++)

if(tt[i]==x)

{

int a[4][4],n=4,i,j,s=0;

printf("请输入四乘四的数据用空格分开:n ");

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

s+=(a[i][i]+a[i][n-1-i]);

printf("两条对角线的和是:%dn",s);

printf("两条对角线的和是:%dn",s-a[(n-1)/2][(n-1)/2]);

return 0;

if(n%2==0)

else

for(j=i;tt[j]!='0';j++)

tt[j]=tt[j+1];

}

printf("n删除%c后的字符串为:n%s",x,tt);

return 0;

}

44. 请编写程序,输入8个整数放入一维数组w中,将其中的最小值与数组

中第一个元素交换,最大值与最后一个元素交换,输出交换后的数组。

#include

int main()

{

int w[8],max,min,maxpos=0,minpos=0,i;

int t,m;

printf("输入八个数字:n");

for(i=0;i<8;i++)

{

scanf("%d",&w[i]);

}

min=w[0];max=w[0];

for(i=0;i<8;i++)

{

if(w[i]>max)

{

max=w[i];

}

{ min=w[i];

}

}

t=w[maxpos];

w[maxpos]=w[7];

w[7]=t;

maxpos=i;

if(w[i]

minpos=i;

}

45.

m=w[minpos];

w[minpos]=w[0];

w[0]=m;

printf("调换后的结果是:n") ;

for(i=0;i<8;i++)

printf("%4d",w[i]);

return 0;

请编写程序,用户输入不大于80个字符的字符串str,在str中找出最

大的字符,并将该字符前的所有字符向后移动一位(第一个字符不变),

请输出原字符串与变化后的字符串。例如:用户输入的字符串为

abcdgef. 移动后:aabcdef

#include

#include

int main()

{

char str[80],b;

int i,j,L,big=0;

printf("请输入一行字符串:n");

scanf("%s",str);

printf("原字符串是: %sn",str);

L = strlen(str);

for (i=1;i

if (str[i] > str[big] )

big=i;str[i]=str[big];

for (i=big;i>0;i--)

str[i]=str[i-1];

str[L]='0';

printf("变化后的字符串是: %sn",str);

return 0;

}

46. 请编写程序,其功能是调用自定义函数MyInt求实数的小数部分。例如,

对于3.1415926,函数返回0.141593。

#include

double b;

int MyInt(double x)

{

b=x-(int)x;

return b;

}

int main()

{

double x;

printf("请输入一个实数:");

scanf("%lf",&x);

MyInt(x);

printf("小数部分为:%lf n",b);

return 0;

}

47. 请编写程序,其功能是调用函数isprime判断一个整数是否为素数。若

是素数,则函数返回1,否则返回0。

#include

int isprime(int m);

int main()

{

}

int isprime(int m)

{

int i;

if(m<2)return 0;

for(i =2 ;i

int a;

printf("请输入一个整数:n");

scanf("%d",&a);

if(isprime(a)==1)

printf("%d是素数n",a);

printf("%d不是素数n",a);

else

}

48.

{

}

return 1;

if(m%i == 0)

return 0;

请编写程序,其功能是调用自定义函数delete_digit(char s[]) 删除字

符串中的所有数字字符。

#include

#include

int delete_digit(char s[])

{

int a,i,j;

a=strlen(s);

for(i=0;i

{

}

int main()

{

char m[100];

printf("请输入一行字符串:n");

gets(m);

delete_digit(m);

printf("删除数字字符后是:");

puts(m);

return 0;

if(s[i]<='9'&&s[i]>='0')

for(j=i;j<=a;j++)

{s[j]=s[j+1];}

else i++;

}

}

49. 请编写程序,判断用户输入的坐标(x,y)与圆x

2

+y

2

=4的关系。如果函数

的返回值为0,则点在圆周上;若返回值为-1,则在圆内;若返回值为1,

则在圆外。

#include

int yuan(float a,float b)

{

}

int main()

{

}

50. 编一个程序,将两个字符串连接起来,不要用strcat函数。

#include

int main()

{

char a[20],b[20];

int i=0,j=0;

printf("请输入两串字符:");

gets(a);

gets(b);

while(a[i]!='0')

float x,y;

int n;

printf("请输入点的坐标用空格隔开:");

scanf("%f%f",&x,&y);

n=yuan(x,y);

if(n==0)

printf("点在圆周上n");

printf("点在圆外n");

printf("点在圆内n");

else if(n==1)

else

if(a*a+b*b==4)

return 0;

return 1;

else if(a*a+b*b>4)

return -1;

}

51.

{

}

while(b[j]!='0')

{

}

a[i]='0';

printf("%s",a);

return 0;

a[i]=b[j];

i++;

j++;

i++;

编一个程序,将两个字符串s1和s2比较,若s1>s2,则输出一个正数;

若s1=s2,输出0,;若s1

#include

int main()

{

}

char str1[80],str2[80];

int i=0,a=0,b=0,c;

printf("请输入两个字符串用回车隔开:") ;

gets(str1);

gets(str2);

while(str1[i]!='0'&&str2[i]!='0')

{

a=a+str1[i];

b=b+str2[i];

if(str1[i]!=str2[i])

break;

i++;

}

printf("c=%d",a-b);

return 0;

52. 编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。不

用strcpy函数。复制时,'0'也要复制过去。'0'后面的字符不复制。

#include

#include

int main()

{

}

char s1[80],s2[80];

int i;

printf("input s2:");

scanf("%s",s2);

for(i=0;i<=strlen(s2);i++)

s1[i]=s2[i];

printf("s1,%sn",s1);

return 0;

53. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的

因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内

的所有完数,并按下面格式输出其因子:

6 its factors are 1 2 3

#include

int main()

{

int s,i,j;

for(i=1;i<=1000;i++)

{

s=0;

for(j=1;j

{

}

if(s==j)

if(i%j==0)

{

}

s=s+j;

}

54.

}

{

}

printf("%d its factors are :",i);

for(j=1;j

{

}

printf("n");

if(i%j==0)

printf("%d,",j);

return 0;

写一个函数,判断给定的数是否水仙花数,例如1

3

+ 5

3

+ 3

3

= 153;然

后在主函数中输出所有的三位数中的水仙花数。

#include

int main()

{

unsigned long int shuixian(int n);//声明函数

unsigned long int n,sum,m,j,k,q;//定义实参。主函数与调

printf("输入不少于三位数的整数:n");

用函数的参数不同,要重复定义

scanf("%d",&n);

sum=shuixian(n);//调用函数

if(sum==n )//判断是否满足水仙花的定义

printf("%d是水仙花数n", n);

else

printf("%d不是水仙花数n", n);

printf("三位数中的水仙花数有: ");

for(q=100;q<=999;q++)

{

m=q/100;

j=q/10%10;

k=q%10;

}

}

if(q==m*m*m+j*j*j+k*k*k)

{

}

printf("%5d ",q);

printf("n");

return 0;

#include

unsigned long int shuixian(int n)

{

unsigned long int i,a,b,c,d,e,f,g,h,sum;//定义形参

a = n / 1 % 10; // a,b,c,d,e,f,g,h分别是个

b = n / 10 % 10;

c = n / 100 % 10;

d = n / 1000 % 10;

e = n / 10000 % 10;

f = n / 100000 % 10;

g = n / 1000000 % 10;

h = n / 10000000 % 10;

sum =

for(i = 100; i < 10000000; i++)

位、十位.....

if(h) //判断用户输入的整数是几位数,然后选择执行

pow(a,8)+pow(b,8)+pow(c,8)+pow(d,8)+pow(e,8)+pow(f,8)+

pow(g,8)+pow(h,8);

else if(g)

sum =

pow(a,7)+pow(b,7)+pow(c,7)+pow(d,7)+pow(e,7)+pow(f,7)+

pow(g,7);

else if(f)

sum =

pow(a,6)+pow(b,6)+pow(c,6)+pow(d,6)+pow(e,6)+pow(f,6);

else if(e)

sum =

pow(a,5)+pow(b,5)+pow(c,5)+pow(d,5)+pow(e,5);

else if(d)

}

55. 在主函数中输入两个整数,调用swap函数,实现两个整数值的交换,

并输出交换后的结果。例如:输入a,b的值分别为5,10,输出交换后

结果为a=10,b=5。

#include

int a,b;

void swap()

{

}

int main()

{ printf("请输入两个数:n");

}

56. 从键盘输入两个整数,求两个整数的最大公约数。

#include

int main()

{

int a,b;

scanf("%d %d",&a,&b);

swap();

printf("交换各自的值后是: a=%d b=%dn",a,b);

return 0;

int temp;

temp=a;

a=b;

b=temp;

sum = pow(a,4)+pow(b,4)+pow(c,4)+pow(d,4);

sum = pow(a,3)+pow(b,3)+pow(c,3);

else

return (sum);//返回值sum;

}

57.

printf("请输入两个整数:n");

scanf("%d %d",&a,&b);

while(a)

{

}

printf("这两个数的最大公约数是:%d n",b);

return 0;

int c=b%a;

b=a;

a=c;

请编写递归函数,计算1*2*3*4*5的值。

#include

int cheng(int x)

{

}

int main()

{

}

int a,b=5;

a=cheng(b);

printf("%d",a);

return 0;

int s;

if(x==1)

s=1;

else

s=cheng(x-1)*x;

return (s);

58. 编程实现输出由键盘读入的N行的杨辉三角形。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

#include

int main()

{

}

59. 请编写程序,打印如下图案。(*的个数和行数由键盘输入)

*****

*****

*****

*****

#include

void main()

int i,j,n;

int a[100][100];

printf("请输入n的值:");

scanf("%d",&n);

for(i=0;i

{

}

for(i=2;i

for(j=1;j

{

}

for(i=0;i

{

}

return 0;

for(j=0;j<=i;j++)

printf("%4d",a[i][j]);

printf("n");

a[i][j]=a[i-1][j]+a[i-1][j-1];

a[i][0]=1;

a[i][i]=1;

{

int n,r,c;

printf("请输入行数:");

scanf("%d",&n);

if(n<0)

printf("行数错误!n");

else

{

for(r=1;r<=n;r++)

{

for(c=1;c<=r;c++)

printf(" ");

for(c=1;c<=6;c++)

printf("*");

printf("n");

}

}

}

60. 输入10位学生的成绩,求出其中大于平均成绩的学生的人数。例如:10

位学生的原始成绩分别是:

90.5,89,60.5,78,89,76.5,90,97.5,89.5,86,则大于平均成绩的人数为

7。

#include

int main()

{

}

float a[10],average,sum=0.0;

int i,n=0;

printf("请输入十位同学的成绩:");

for(i=0;i<10;i++)

{scanf("%f",&a[i]);sum+=a[i];}

average=sum/10;

printf("平均成绩是:%fn",average);

if(a[i]>average)

n++;

printf("大于平均成绩的人数为:%d个",n);

return 0;

for(i=0;i<10;i++)

61. 编程计算1!+2!+3!+4!+5!的值。

#include

void main ()

{

double x,y=0;

int m,n;

for(n=1;n<=5;n++)

{

x=1;

for(m=1;m<=n;m++)

{

x=x*m;

}

y=y+x;

}

printf("1!+2!+..+5!=%.0lf",y);

}

编写程序输出下列图形:

*

* * *

* * * * *

* * * * * * *

* * * * * * * * *

* * * * * * * * * * *

#include

void main ()

{

char a,b;

for(a=1;a<=6;a++)

{

for(b=1;b<6-a;b++) printf(" ");

for(b=1;b<=2*a-1;b++) printf("*");

printf("n");

}

}

62.

63. 编写程序输出下列图形:

*

***

*****

*******

#include

void main ()

{

int a,b;

for(a=1;a<=4;a++)

{

for(b=1;b<=2*a-1;b++)

printf("*");

printf("n");

}

}

64. 输入n值,输出如图所示高和上底均为n的等腰梯形。

图为当n=5时

#include

void main ()

{

int a,b,c,n;

printf("请输入n的值:");

scanf("%d",&n);

for(a=1;a<=n;a++)

{

for(c=1;c<=n-a;c++)

printf(" ");

for(b=1;b<=n+2*(a-1);b++)

printf("*");

printf("n");

}

}

65. 写一个函数,求sn=a+aa+aaa+的值,a的值n的值

均由用户指定。例如:a=2,n=4, s=2+22+222+2222.

#include

int main()

{

int a,n,s=0,i,j;

printf("请输入a的值:");

scanf("%d",&a);

printf("请输入n的值:");

scanf("%d",&n);

for(j=a,i=0;i

{

s=s+j;

j=j*10+a;

}

printf("a+aa+aaa+...+=%d",s);

return 0;

}