顺序结构和分支结构程序设计.docx
- 文档编号:5417115
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:16
- 大小:20.16KB
顺序结构和分支结构程序设计.docx
《顺序结构和分支结构程序设计.docx》由会员分享,可在线阅读,更多相关《顺序结构和分支结构程序设计.docx(16页珍藏版)》请在冰豆网上搜索。
顺序结构和分支结构程序设计
实验一顺序结构和分支结构程序设计
实验要求:
习题2:
第8、9题;习题4第11、12、13题
1、输入华氏温度,输出相应的摄氏温度(保留2位小数)。
公式:
c=(f-32)/1.8,其中c表示摄氏度,f表示华氏度。
#include
voidmain()
{
doublef,c;
printf("Pleaseinputf:
\n");
scanf("%lf",&f);
c=(f-32)/1.8;
printf("c=%.2f%\n",c);
}
2、输入一个大写英文字母,输出相应的小写字母。
例如:
输入G,输出g。
#include
voidmain()
{
charc;
printf("Pleaseinputacapitalletter:
\n");
c=getchar();
if(c>='A'&&c<='Z')
{
c=c-'A'+'a';
printf("Itssmallletteris:
%c\n",c);
}
}
3、编写程序,输入3个整数,输出其中的最小值。
#include
voidmain()
{
inta,b,c,min;
printf("inputthreenumber:
\n");
scanf("%d%d%d",&a,&b,&c);
min=a;
if(min>b)min=b;
if(min>c)min=c;
printf("min=%d\n",min);
}
4、编写程序,输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的小写字母;否则,原样输出。
例如:
输入F,输出f,输入b,输出B,输入7,输出7。
#include
voidmain()
{
charc;
printf("inputacharacter:
\n");
c=getchar();
if(c>='a'&&c<='z')
c=c-'a'+'A';
elseif(c>='A'&&c<='Z')
c=c-'A'+'a';
else;
printf("%c\n",c);
}
5、函数
1x>0
y=0x=0
-1x<0
用if语句编程,输入x,输出y,并给出你所使用的测试用例。
#include
voidmain()
{
inty;
doublex;
printf("inputx:
\n");
scanf("%lf",&x);
if(x==0)
y=0;
elseif(x>0)
y=1;
else
y=-1;
printf("%d\n",y);
}
测试用例:
x=0,y=0;x=2.6,y=1;x=-2.3,y=-1;x=9,y=1;x=-10,y=-1……等
实验二循环程序设计
实验要求:
习题5:
第4、5、7
(1)、7
(2)、9
1、算正整数1~n(n需键盘输入)之间所有奇数之和与偶数之和。
#include
voidmain()
{
inti,n,sum1,sum2;
printf("inputn:
\n");
scanf("%d",&n);
sum1=sum2=0;
for(i=1;i<=n;i++){
if(i%2==1)
sum1+=i;
else
sum2+=i;
}
printf("sum1=%d,sum2=%d\n",sum1,sum2);
}
2、输入10个数,打印出最大的和最小的数。
#include
voidmain()
{
inti;
floatx,max,min;
printf("input10numbers:
\n");
scanf("%f",&x);
max=min=x;
for(i=1;i<10;i++){
scanf("%f",&x);
if(x>max)max=x;
elseif(x } printf("max=%f,min=%f\n",max,min); } 3、求e≈1/1! +1/2! +1/3! +...1/n! (1)直到第10项。 #include voidmain() { intn; floatt=1,sum=1; for(n=1;n<10;n++){ t=t*n; sum=sum+1/t; } printf("e≈%f\n",sum); } 结果: e≈2.718282 (2)直到最后一项小于10-7 #include voidmain() { intn=1; floatt=1,sum=1; do{ t=t*n; sum=sum+1/t; n++; }while(1/t>=1E-7); printf("e≈%f\n",sum); } 结果: e≈2.718282 4、用一张一元票换1分、2分和5分的硬币(至少各一枚),问有哪几种换法? 各几枚? #include voidmain() { intn1,n2,n5,i=0; for(n2=1;n2<=47;n2++) for(n5=1;n5<=19;n5++){ n1=100-n2*2-n5*5; if(n1>=1){ printf("n1=%2d,n2=%2d,n5=%2d\n",n1,n2,n5); i++; } }printf("Allsorts: %d\n",i); } 运行结果有461种方法(各几枚略) 实验三函数程序设计 实验要求: 习题6: 第3(4)、3(5)、6题 1、验证哥德巴赫猜想: 任何一个大于6的偶数均可表示为两个素数之和。 要求将6~100之间的偶数都表示成两个素数之和。 素数指只能被1和自身整除的正整数,1不是素数,2是素数。 打印6-100之间的偶数都表示为两个素数之和,一行5组。 #include intprime(intn)/*判断n是否为素数*/ {intk; for(k=2;k<=n/2;k++) if(n%k==0)return0; return1; } voidprt(inti,intk,intt) { printf("%3d=%2d+%2d",i,k,i-k); if(t%5==0) printf("\n"); } voidmain() { inti,k,t=0,n=0; for(i=6;i<=100;i+=2) { for(k=2;k<=i/2;k++) if(prime(k)&&prime(i-k)) { t++; prt(i,k,t); break; } if(k>i/2) { printf("\n%d不是任何两个素数之和\n",i); n++; } } if(! n) printf("\n6-100所有偶数均为两个素数之和\n"); else printf("\n不是6-100所有偶数均为两个素数之和\n"); } 2、下面程序用于计算f(k,n)=1k+2k+……+nk,其中power(m,n)求mn,sum求f(k,n)。 #include longpower(intm,intn) {inti; __________; for(i=1;i<=n;i++) ___________; returnp; } longsum(intk,intn) {inti; __________; for(i=1;i<=n;i++) ___________; returns; } main() {intk,n; scanf(“%d%d”,&k,&n); printf(“f(%d,%d)=%ld”,k,n,f(k,n)); } 答: #include longpower(intm,intn) {inti; longp=1; for(i=1;i<=n;i++) p*=m; returnp; } longsum(intk,intn) {inti; longs=0; for(i=1;i<=n;i++) s+=power(i,k); returns; } voidmain() {intk,n; printf("inputk,n: \n"); scanf("%d%d",&k,&n); printf("f(%d,%d)=%ld\n",k,n,sum(k,n)); } 3、求1到10000之间所有的完数。 所谓完数就是因子和与它本身相等的数。 例如6=1+2+3,6就是一个完数,要求定义并调用函数factor(m)判断m是否为完数,并由主函数调用它,来对所有数进行判断。 答: 程序如下: #include intfactor(intm) { ints,j,x; s=1; x=m; for(j=2;j if(x%j==0) { s+=j; x/=j; j=2; } s+=x; returns==m; } voidmain() { intq; for(q=1;q<=10000;q++) { if(factor(q)) printf("%d",q); } printf("\n"); } 运行结果只有一个完数: 6 实验四数组程序设计 实验要求: 习题7第5、6、7、11题;习题8第4、5题 1.输入一个正整数n(1 ⑴求这n个数的平均值和最大值。 ⑵按逆序输出这n个数。 ⑶将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。 #include voidmain() { inti,n,a[10],max=0,min=0,temp; floataverage,sum=0; printf("inputn: \n"); scanf("%d",&n); printf("请输入%d个整数: \n",n); for(i=0;i { scanf("%d",&a[i]); sum+=a[i]; if(a[max] max=i; if(a[min]>a[i]) min=i; } average=sum/n; printf("这%d个数的平均值是%f,最大值是%d。 \n",n,average,a[max]); for(i=n-1;i>=0;i--) printf("%d",a[i]); printf("\n"); temp=a[0]; a[0]=a[min]; a[min]=temp; temp=a[n-1]; a[n-1]=a[max]; a[max]=temp; for(i=0;i printf("%d",a[i]); printf("\n"); } 2.输入一个正整数n(1 #include voidmain() { intn,i,k,index,temp,a[10]; printf("inputn: \n"); scanf("%d",&n); printf("请输入%d个整数: \n",n);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 结构 分支 程序设计
