附录 必会必背程序.docx
- 文档编号:4306409
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:15
- 大小:22KB
附录 必会必背程序.docx
《附录 必会必背程序.docx》由会员分享,可在线阅读,更多相关《附录 必会必背程序.docx(15页珍藏版)》请在冰豆网上搜索。
附录必会必背程序
附录三:
C语言必会必背程序(带下划线的表达式表示有可能以程序填空题的形式出现)
1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。
请编程序。
参考源程序:
main()
{floatr,h,C1,Sa,Sb,Va,Vb;
scanf("%f,%f",&r,&h);
C1=2*3.14*r;
Sa=3.14*r*r;
Sb=4*Sa;
Va=4*3.14*r*r*r/3;
Vb=Sa*h;
printf("C1=%.2f\n",C1);
printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);
}
2、输入一个华氏温度,要求输出摄氏温度。
公式为c=5(F-32)/9,输出要求有文字说明,取位2小数。
参考源程序如下:
main()
{floatF,c;
scanf("%f",&F);
c=5*(F-32)/9;
printf("输入的华氏温度为:
%.2f,则摄氏温度为%.2f",f,c);
}
3、已知三角形的三边长,求其面积。
解:
假设输入的三边能构成三角形,三角形的面积公式为:
Area=
其中S=(a+b+c)/2。
参考源程序如下:
#include“math.h”
Main()
{
Floata,b,c,s,area;
Printf(“请输入三角形的三边:
”);
Scanf(“%f,%f,%f”,&a,&b,&c);
S=(a+b+c)/2.0;
Area=sqrt(s*(s-a)*(s-b)*(s-c));
Printf(“三角形的三边为:
%7.2f,%7.2f,%7.2f\n”,a,b,c);
Prinft(“三角形的面积为:
%7.2f\n”,area);
}
4、有三个整数a、b、c,由键盘输入,输出其中最大的数。
参考源程序:
main()
{inta,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
if(a>c)t=a;
elset=c;
elseif(b>c)t=b;
elset=c;
printf("%d\n",t);
}
5、输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:
我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
2.程序源代码:
#include"stdio.h"
#include"conio.h"
main()
{
intx,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{t=x;x=y;y=t;}/*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("smalltobig:
%d%d%d\n",x,y,z);
getch();
}
6、输入一个数,如果输入是正数,显示“输入的数大于零”;如果输入是零,显示“输入的数等于零”;如果输入小于零,显示“输入小于零”。
main()
{
floatx;
printf(“请输入一个数:
”);
scanf(“%f”,&x);
if(x>=0)
if(x=0)
printf(“输入的数等于零\n”);
else
printf(“输入的数大于零\n”);
else
printf(“输入的数小于零\n”);
printf(“程序运行结束!
\n”);
}
7、给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。
90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。
参考源程序:
main()
{intnumber,md;charc1;
scanf("%d",&number);
md=number/10;
switch(md)
{
case10:
case9:
c1='A';break;
case8:
c1='B';break;
case7:
c1='C';break;
case6:
c1='D';break;
case5:
case4:
case3:
case2:
case1:
case0:
c1='E';break;
}
printf("%c\n",c1);
}
8、编程计算S=1+2+……100。
#include
main()
{
intk=1,s=0;
while(k<=100)
{s=s+k;k=k+1;}
printf(“%d”,s);
}
9、用do-while循环计算10!
#include
main()
{
intk=1;
longs=1;
do
{s=s*k;k++;}
while(k<=10);
printf(“%ld”,s);
}
10、用for循环计算S=1+2+…100。
#include
main()
{
intk,sum=0;
for(k=1;k<=100;k++)
sum=sum+k;
printf(“%d”,sum);
}
11、求∑n!
(n=1->20),(即求1!
+2!
+3!
+4!
+5!
+…+20!
)
参考源程序:
main()
{intn,i=1;longsum=0,s=1;
scanf("%d",&n);
while(i<=n)
{s=s*i;sum=sum+s;i++;}
printf("sum=%ld\n",sum);
}
12、输出9*9口诀。
1.程序分析:
分行与列考虑,共9行9列,i控制行,j控制列。
2.程序源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inti,j;
printf("\n");
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
printf("%d*%d=%-3d",i,j,i*j);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
getch();
}
13、输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:
利用辗除法。
2.程序源代码:
#include"stdio.h"
#include"conio.h"
main()
{
inta,b,num1,num2,temp;
printf("pleaseinputtwonumbers:
\n");
scanf("%d,%d",&num1,&num2);
if(num1 { temp=num1; num1=num2; num2=temp; } a=num1;b=num2; while(b! =0)/*利用辗除法,直到b为0为止*/ { temp=a%b; a=b; b=temp; } printf("gongyueshu: %d\n",a); printf("gongbeishu: %d\n",num1*num2/a); getch(); } 14、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析: 利用while语句,条件为输入的字符不为'\n'. 2.程序源代码: #include"stdio.h" #include"conio.h" main() { charc; intletters=0,space=0,digit=0,others=0; printf("pleaseinputsomecharacters\n"); while((c=getchar())! ='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; elseif(c=='') space++; elseif(c>='0'&&c<='9') digit++; else others++; } printf("allinall: char=%dspace=%ddigit=%dothers=%d\n",letters, space,digit,others); getch(); } 15、打印出如下图案(菱形) * *** ***** ******* ***** *** * 16、程序分析: 先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。 2.程序源代码: #include"stdio.h" #include"conio.h" main() { inti,j,k; for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) printf(""); for(k=0;k<=2*i;k++) printf("*"); printf("\n"); } for(i=0;i<=2;i++) { for(j=0;j<=i;j++) printf(""); for(k=0;k<=4-2*i;k++) printf("*"); printf("\n"); } getch(); } 17、有5个人坐在一起,问第五个人多少岁? 他说比第4个人大2岁。 问第4个人岁数,他说比第3个人大2岁。 问第三个人,又说比第2人大两岁。 问第2个人,说比第一个人大两岁。 最后问第一个人,他说是10岁。 请问第五个人多大? 1.程序分析: 利用递归的方法,递归分为回推和递推两个阶段。 要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。 2.程序源代码: #include"stdio.h" #include"conio.h" age(n) intn; { intc; if(n==1)c=10; elsec=age(n-1)+2; return(c); } main() { printf("%d",age(5)); getch(); } 18、用筛选法求100以内的素数。 参考源程序: main() {inti,j,a[100]; for(i=2;i<100;i++) {a[i]=i; for(j=2;j<=i;j++) {if(j if(a[i]-j==0)printf("%5d",a[i]);} } printf("\n"); } 或 #include"math.h" main() {staticinti,j,k,a[98]; for(i=2;i<100;i++) {a[i]=i;k=sqrt(i); for(j=2;j<=a[i];j++) if(j if(j>=k+1)printf("%5d",a[i]); } printf("\n"); } 19、求一个矩阵对角线元素之和。 解: 以3*3矩阵为例,参考源程序如下: main() {inti=0,j=0,a[3][3],s1,s2; for(i=0;i<3;i++) for(j=0;j<3;j++)scanf("%d",&a[i][j]); s1=a[0][0]+a[1][1]+a[2][2]; s2=a[0][2]+a[1][1]+a[2][0]; printf("s1=%d,s2=%d\n",s1,s2); } 20、一个已按从小到大的顺序排好的数组,今输入一个数要求按原来排序的规律将它插入数组中。 解: 我们以一个10元素的数组为例,参考源程序如下: main() {staticinta[10]={1,7,8,17,23,24,59,62,101};inti,j,t; scanf("%d",&a[9]); for(i=9;i>0;i--)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 附录 必会必背程序 必会必背 程序