C语言编程.docx
- 文档编号:14938266
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:28
- 大小:21.14KB
C语言编程.docx
《C语言编程.docx》由会员分享,可在线阅读,更多相关《C语言编程.docx(28页珍藏版)》请在冰点文库上搜索。
C语言编程
C语言编程
程序文件名定义
例如:
4.24==>FX4_24.C
4.24编程判断输入的正整数是否既是5又是7的整倍数。
若是,输出yes,否则输出no。
4.25设N是一个四位数,它的9倍恰好是其反序数(例如:
123的反序数是321),求N的值。
4.28编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。
设:
90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
5.31求这样一个三位数,该三位数等于其每位数字的阶乘之和。
即:
abc=a!
+b!
+c!
5.32如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。
如407=4^3+0^3+7^3就是一个阿姆斯特朗数。
编写程序求1000以内的所有阿姆斯特朗数。
(^代表乘方)
5.33显示200以内的完全平方数和它们的个数。
(完全平方数:
A2+B2=C2,求A、B、C)
5.34输入n值,输出如图所示高为n的等腰三角形。
//***********
//*********
//*******
//*****
//***
//*
//n=6时的等腰三角形
5.35连续输入若干个正整数,求出其和及平均值,直到输入为0结束。
5.36编写程序,求S=1/(1+2)+1/(2+3)+1/(3+4)+……前50项之和。
5.37编程求出1000到3000之间能被7、11、17同时整除的整数的平均值,
并输出(结果保留两位小数)。
5.38编程找出满足下列条件的所有四位数的和并输出:
该数第一、三位数字之和为10,
第二、四位数字之积为12。
5.39求n!
5.41输入10个整数,统计同时能被3和7整除的个数,将结果输出
5.42输入一个1位整数m,打印出100以内其十位值是m的所有两位数。
5.43键盘输入10个实型数,求其倒数的和并输出
5.44键盘输入10个正实型数,求其方根的和并输出
5.45计算s=1-2!
+3!
-4!
+…-10!
的值并输出。
5.46计算s=1-1/3+1/5-1/7+…1/101的值并输出
5.47输入一个正整数,要求以相反的顺序输出该数。
例如输入12345,输出位54321。
5.48编写程序,输入三角型的三条边长,求其面积。
注意:
对于不合理的边长输入要输出数据错误的提示信息
5.50编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和。
5.51统计在[1030-25830]之间有多少个数能同时被13和27整除
6.16在主函数中输入8个整数,调用函数对其进行排序(从小到大),
排序方法不限,最后在主函数中输出结果。
6.28在主函数中输入两个正整数,
调用一个函数求其最大公约数和最小公倍数,再调用一个函数将结果输出。
6.28在主函数中输入两个正整数,
调用一个函数求其最大公约数和最小公倍数,再调用一个函数将结果输出。
6.29编一子函数,求出一个字符串中所有字母的个数。
6.30输入一串字符,长度不超过80个,
分别统计出其中大写英文字母、空格和其它字符的个数并分别输出
6.31求一维整型数组中正数的和。
要求:
主函数定义数组a[10],从键盘输入十个数,
调用自定义函数求出正数的和,然后在主函数中输出结果
6.33通过键盘输入一个字符串,
在用户自定义的函数中实现将字符串反序并在主函数中做输出
6.34通过调用自定义函数来完成求圆柱体的体积(v=3.14*r*r*h),
要求圆柱体的高和底半径在主函数中做输入,圆柱体的体积在主函数中做输出
7.27输入5*5的数组,编写程序实现:
(1)求出对角线上各元素的和;
(2)求出对角线上行、列下标均为偶数的各元素的积;
(3)找出对角线上其值最大的元素和它在数组中的位置。
7.28从键盘输入5学生的成绩至数组中,将最低分的成绩输出。
//4.24编程判断输入的正整数是否既是5又是7的整倍数。
//若是,输出yes,否则输出no。
#include
main()
{intx;
while
(1)
{printf("输入的正整数(负数退出)=");
scanf("%d",&x);
if(x<0)
break;
else
{printf("%d是否既是5又是7的整倍数?
\n",x);
if(x%5==0&&x%7==0)
printf("yes\n\n");
else
printf("no\n\n");
}
}
}
//4.25设N是一个四位数,它的9倍恰好是其反序数(例如:
123的反序数是321),求N的值。
#include
main()
{inti;
chara,b,c,d;
for(i=1000;i<=9999;i++)
{a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
if(i*9==d*1000+c*100+b*10+a)
printf("%6d",i);
}
printf("\n");
}
//4.28编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。
//设:
90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
#include
main()
{intx;
charc;
while
(1)
{printf("输入分数(0-100),否则程序退出");
scanf("%d",&x);
if(x<0||x>100)
break;
else
{if(x>=90)c='A';
else
if(x>=80)c='B';
else
if(x>=70)c='C';
else
if(x>=60)c='D';
elsec='E';
printf("%d分数对应五分制成绩%c\n",x,c);
}
}
}
//5.31求这样一个三位数,该三位数等于其每位数字的阶乘之和。
//即:
abc=a!
+b!
+c!
#include
main()
{intabc,pa,pb,pc,a,b,c;
for(abc=100;abc<=999;abc++)
{a=abc/100;
b=abc/10%10;
c=abc%10;
for(pa=1;a>0;a--)
pa*=a;//pa=a!
for(pb=1;b>0;b--)
pb*=b;//pb=b!
for(pc=1;c>0;c--)
pc*=c;//pc=c!
if(abc==pa+pb+pc)
printf("%5d",abc);
}
printf("\n");
}
//5.32如果一个正整数等于其各个数字的立方和,
//则称该数为阿姆斯特朗数(亦称为自恋性数)。
//如407=4^3+0^3+7^3就是一个阿姆斯特朗数。
//编写程序求1000以内的所有阿姆斯特朗数。
(^代表乘方
#include
#include
main()
{inti,a,b,c;
for(i=1;i<1000;i++)
{a=i/100;
b=i/10%10;
c=i%10;
if(i==pow(a,3)+pow(b,3)+pow(c,3))
printf("%5d",i);
}
printf("\n");
}
//5.33显示200以内的完全平方数和它们的个数。
(完全平方数:
A2+B2=C2,求A、B、C)
#include
main()
{inti,a,b,c,n;
printf("200以内的完全平方数a*a+b*b=c*c\n");
for(i=1,n=0;i<200;i++)
{a=i/100;
b=i/10%10;
c=i%10;
if(a*a+b*b==c*c)
{printf("%5da=%db=%dc=%d\n",i,a,b,c);
n++;
}
}
printf("\n它们的个数=%d\n",n);
}
//5.34输入n值,输出如图所示高为n的等腰三角形。
//***********
//*********
//*******
//*****
//***
//*
//n=6时的等腰三角形
#include
main()
{intn,i,j;
printf("输入n值,输出如图所示高为n的等腰三角形n=");
scanf("%d",&n);
for(i=n;i>0;i--)
{for(j=n-i;j>0;j--)
printf("");
for(j=2*i-1;j>0;j--)
printf("*");
printf("\n");
}
}
//5.35连续输入若干个正整数,求出其和及平均值,直到输入为0结束。
#include
main()
{intn,s,x;
printf("35连续输入若干个正整数,求出其和及平均值,直到输入为0结束\n");
n=0;s=0;
while
(1)
{printf("x=");
scanf("%d",&x);
if(x==0)
break;
if(x>0)
{s+=x;
n++;
}
}
printf("共输入%d个正整数,其和=%d,平均值=%.2f\n",n,s,(float)s/n);
}
//5.36编写程序,求S=1/(1+2)+1/(2+3)+1/(3+4)+……前50项之和。
#include
main()
{inti,a,b;
doubles;
a=1;b=2;
for(s=0,i=1;i<=50;i++)
{s+=1.0/(a+b);
a++;b++;
}
printf("求S=1/(1+2)+1/(2+3)+1/(3+4)+……前50项之和=%f\n",s);
}
//5.37编程求出1000到3000之间能被7、11、17同时整除的整数的平均值,
//并输出(结果保留两位小数)。
#include
main()
{intn,i,s;
for(i=1000,n=0,s=0;i<=3000;i++)
if(i%7==0&&i%11==0&&i%17==0)
{s+=i;
n++;
}
printf("1000到3000之间能被7、11、17同时整除的整数的平均值=%.2f\n",(float)s/n);
printf("共有=%d数,总和=%d\n",n,s);
}
//5.38编程找出满足下列条件的所有四位数的和并输出:
该数第一、三位数字之和为10,第二、四位数字之积为12。
#include
main()
{ints,i,a,b,c,d;
for(i=1000,s=0;i<=9999;i++)
{a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
if(a+c==10&&b*d==12)
{s+=i;
printf("%5d",i);
}
}
printf("\n满足条件的所有四位数的和=%d\n",s);
}
//5.39求n!
#include
main()
{longintp;
intn,i;
printf("求n!
输入n值(<=12)=");
scanf("%d",&n);
if(n>12||n<=0)
printf("数据输入错误!
\n");
else
{
for(i=1,p=1;i<=n;i++)
p*=i;
printf("%d!
=%ld\n",n,p);
}
}
//5.41输入10个整数,统计同时能被3和7整除的个数,将结果输出
#include
main()
{intn,i,x;
for(i=1,n=0;i<=10;i++)
{
printf("输入x%d=",i);
scanf("%d",&x);
if(x%3==0&&x%7==0)
n++;
}
printf("10个数中同时能被3和7整除的个数=%d\n",n);
}
//5.42输入一个1位整数m,打印出100以内其十位值是m的所有两位数。
#include
main()
{intm,i;
printf("输入1位整数m值=");
scanf("%d",&m);
m=m%10;
m*=10;
for(i=0;i<=9;i++)
printf("%3d",m+i);
printf("\n");
}
//5.43键盘输入10个实型数,求其倒数的和并输出
#include
main()
{inti;
doubles;
floatx;
for(i=1,s=0;i<=10;i++)
{printf("x%d=",i);
scanf("%f",&x);
s+=1/x;
}
printf("10个实型数倒数和=%.3f\n",s);
}
//5.44键盘输入10个正实型数,求其方根的和并输出
#include
#include
main()
{inti;
doubles;
floatx;
for(i=1,s=0;i<=10;i++)
{printf("x%d=",i);
scanf("%f",&x);
if(x>=0)
s+=sqrt(x);
else
printf("\b负数不计算\n");
}
printf("10个正实型数方根和=%.3f\n",s);
}
//5.45计算s=1-2!
+3!
-4!
+…-10!
的值并输出。
#include
main()
{inti;
longs,p;
for(i=1,s=0,p=1;i<=10;i++)
{p*=i;
if(i&1)
s=s+p;
else
s=s-p;
}
printf("s=1-2!
+3!
-4!
+…-10!
的值=%ld\n",s);
}
//5.46计算s=1-1/3+1/5-1/7+…1/101的值并输出
#include
main()
{inti,t=1;
doubles;
for(i=1,s=0;i<=101;i+=2)
{
s=s+t/(float)i;
t=-t;
}
printf("s=1-1/3+1/5-1/7+…1/101的值=%f\n",s);
}
//5.47输入一个正整数,要求以相反的顺序输出该数。
//例如输入12345,输出位54321。
#include
main()
{chara;
longx;
printf("请输入小于10位的十进制=");
scanf("%ld",&x);
while(x)
{a=x%10;
x=x/10;
printf("%d",a);
}
printf("\n");
}
//5.48编写程序,输入三角型的三条边长,求其面积。
//注意:
对于不合理的边长输入要输出数据错误的提示信息
#include
#include
main()
{floata,b,c;
doublearea,s;
printf("请输入三角形的a边=");
scanf("%f",&a);
printf("请输入三角形的b边=");
scanf("%f",&b);
printf("请输入三角形的c边=");
scanf("%f",&c);
if(a+b>c&&b+c>a&&c+a>b)
{
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%.2f\n",area);
}
else
printf("输入的边不能形成三角形\n");
printf("\n");
}
//5.50编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和。
#include
main()
{chara,b,i;
doubles;
a=1,b=2;
for(i=1,s=0;i<=50;i++)
{s=s+1.0/(a+b);
a++;
b++;
}
printf("S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和=%f\n",s);
}
//5.51统计在[1030-25830]之间有多少个数能同时被13和27整除
#include
main()
{inti,n;
for(i=1030,n=0;i<=25830;i++)
if(i%13==0&&i%27==0)
n++;
printf("[1030-25830]之间有%d个数能同时被13和27整除\n",n);
}
//6.16在主函数中输入8个整数,调用函数对其进行排序(从小到大),
//排序方法不限,
//最后在主函数中输出结果。
voidaaa(intarray[],intn);
#include
#defineN8
main()
{inta[N],i;
for(i=0;i {printf("a[%d]=",i); scanf("%d",&a[i]); } aaa(a,N); printf("调用函数对其进行从小到大排序\n"); for(i=0;i printf("a[%d]=%d",i,a[i]); printf("\n"); } voidaaa(intarray[],intn) {inti,j,m,t; for(i=0;i {m=i; for(j=i+1;j if(array[j] m=j; t=array[i]; array[i]=array[m]; array[m]=t; } } //6.28在主函数中输入两个正整数,【方法1】 //调用一个函数求其最大公约数和最小公倍数, //再调用一个函数将结果输出。 #include intmn(intm,intn); main() {inta,b,m; printf("请输入a="); scanf("%d",&a); printf("请输入b="); scanf("%d",&b); m=mn(a,b); printf("%d和%d最大公约数=%d;最小公倍数=%d\n",a,b,m,a*b/m); } //辗转相除法求最大公约数 intmn(intm,intn) {intk; if(n>m) {k=m; m=n; n=k; } while(k=m%n) { m=n; n=k; } return(n); } //6.28在主函数中输入两个正整数,【方法2】 //调用一个函数求其最大公约数和最小公倍数, //再调用一个函数将结果输出。 #include int*mn(intm,intn); main() {inta,b,*m; printf("请输入a="); scanf("%d",&a); printf("请输入b="); scanf("%d",&b); m=mn(a,b); printf("\n%d和%d最大公约数=%d;最小公倍数=%d\n",a,b,*m,*(m+1)); } //辗转相除法求最大公约数he最小公倍数 int*mn(intm,intn) {intk; staticintmm[2]; if(n>m) {k=m; m=n; n=k; } mm[1]=m*n; while(k=m%n) { m=n; n=k; } mm[0]=n; mm[1]/=n; return(&mm); } //6.29编一子函数,求出一个字符串中所有字母的个数。 #include #defineN50 inta_z(chararray[]); main() {charstr[N]; printf("输入字符串="); gets(str); printf("字符串中所有%d个字母数\n",a_z(str)); } inta_z(chararray[]) {intn=0,i=0; while(array[i]! ='\0') {if(array[i]>='A'&&array[i]<='Z'||array[i]>='a'&&array[i]<='z') n++; i++; } return(n); } //6.30输入一串字符,长度不超过80个, //分别统计出其中大写英文字母、空格和其它字符的个数并分别输出 #include #defineN81 intqtl(charstr[],int*AL,int*sL); main() {charsss[N]; inta_z,sp,qt; printf("输入一串字符,长度不超过80个\n"); gets(sss); qt=qtl(sss,&a_z,&sp); printf("串中大写字母数=%d;空格数=%d;其它符号数=%d\n",a_z,sp,qt); } intqtl(charstr[],int*AL,int*sL) {inti=0,k=0; *AL=0;*sL=0; while(str[i]! ='\0') {if(str[i]>='A'&&str[i]<='Z') (*AL)++; else if(str[i]=='') (*sL)++; else k++; i++; } return(k); } //6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程