C语言上机程序.docx
《C语言上机程序.docx》由会员分享,可在线阅读,更多相关《C语言上机程序.docx(29页珍藏版)》请在冰豆网上搜索。
C语言上机程序
第1次上机内容:
1.实验指导书P236实验12.
(1)
(2)(3)(4)
要求:
按题目要求。
纪录结果。
#include
voidmain()
{
printf("Thisisacprogram.\n");
}
2.教材P131.5
要求:
同上。
#include
voidmain()
{
printf("******************************\n");
printf("Verygood!
\n");
printf("******************************\n");
}
3.实验指导书P236(5)
要求:
按题目要求。
#include
voidmain()
{inta,b,sum;
a=123;b=456;
sum=a+b;
printf("sumis%d\n",sum);
}
4.实验指导书P236(7)即教材P131.6
要求:
按题目要求。
#include
voidmain()
{inta,b,c,max;
printf("pleaseinputa,b,c\n");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max
max=b;
if(maxmax=c;
printf("Thelargestnumberis%d",max);
}
5.实验指导书P239实验2
(2)即教材P663.6
要求:
记录结果。
并验证人工分析结果是否正确。
#include
voidmain()
{charc1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
printf("\t\b%c%c\n",c4,c5);
}
6.实验指导书P240实验2(4)即教材P673.10
要求:
记录结果。
并验证人工分析结果是否正确。
#include
voidmain()
{inti,j,m=0,n=0;
i=8;
j=10;
m+=i++;n-=--j;
printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);
}
第2次上机内容:
1.教材P894.6
要求:
验证如何输入数据。
记录结果。
#include
voidmain()
{
inta,b;
floatx,y;
charc1,c2;
scanf("a=%db=%d",&a,&b);
scanf("%f%e",&x,&y);
scanf("%c%c",&c1,&c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);
}
2.教材P894.7
要求:
编程,并验证如何输入数据。
记录结果。
#include
voidmain()
{inta,b;
floatx,y,z;
charc1,c2;
scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z);
printf("a=%d,b=%d,c1=%c,c2=%c,x=%6.2f,y=%6.2f,z=%6.2f\n",a,b,c1,c2,x,y,z);
}
3.实验指导书P242实验3
(2)即教材P894.8
要求:
编程,测试至少2组数据。
记录结果。
#include
voidmain()
{floath,r,l,s,sq,vq,vz;
floatpi=3.1415926;
printf("请输入圆半径r,圆柱高h:
");
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=4.0/3.0*pi*r*r*r;
vz=pi*r*r*h;
printf("圆周长为:
l=%6.2f\n",l);
printf("圆面积为:
s=%6.2f\n",s);
printf("圆球表面积为:
sq=%6.2f\n",sq);
printf("圆球体积为:
vq=%6.2f\n",vq);
printf("圆柱体积为:
vz=%6.2f\n",vz);
}
4.教材P894.9
要求:
编程,测试至少2组数据。
记录结果。
#include
voidmain()
{floatc,f;
printf("请输入一个华氏温度:
");
scanf("%f",&f);
c=(5.0/9.0)*(f-32);
printf("摄氏温度为:
%5.2f\n",c);
}
5.实验指导书P242实验3(3)即教材P904.10
要求:
编程,测试后回答问题。
#include
voidmain()
{
charc1,c2;
printf("请输入两个字符c1,c2:
");
c1=getchar();
c2=getchar();
printf("用putchar语句输出结果为:
");
putchar(c1);
putchar(c2);
printf("\n");
printf("用printf语句输出结果为:
");
printf("%c%c\n",c1,c2);
}
第3次上机内容:
1.实验指导书P243实验4
(1)即教材P1115.5
要求:
自行编程,不能使用教材带答案,测试至少3组数据。
记录结果。
#include
voidmain()
{floatx,y;
printf("输入x:
");
scanf("%f",&x);
if(x<1)
{y=x;
printf("y=x=%f\n",y,x);
}
else
if(x<10)
{y=2*x-1;
printf("y=%f",y);
}
else
{y=3*x-11;
printf("y=%f",y);
}
}
2.实验指导书P243实验4
(2)即教材P1115.6
要求:
自行编程,不能使用教材带答案,测试至少3组数据。
记录结果。
#include
voidmain()
{floatscore;
chargrade;
printf("请输入学生成绩:
");
scanf("%f",&score);
while(score>100||score<0)
{printf("\n输入有误,请重输");
scanf("%f",&score);
}
switch((int)(score/10))
{case10:
case9:
grade='A';break;
case8:
grade='B';break;
case7:
grade='C';break;
case6:
grade='D';break;
case5:
case4:
case3:
case2:
case1:
case0:
grade='E';
}
printf("成绩是%5.1f,相应的等级是%c.\n",score,grade);
}
3.实验指导书P243实验4(3)即教材P1115.7
要求:
自行编程,不能使用教材带答案,测试至少3组数据。
记录结果。
#include
voidmain()
{ints,i,a,b,c,d,e;
scanf("%d",&s);//s=12345
if(s>=10000){printf("%dis5位数\n",s);i=5;}
elseif(s>=1000){printf("%dis4位数\n",s);i=4;}
elseif(s>=100){printf("%dis3位数\n",s);i=3;}
elseif(s>=10){printf("%dis2位数\n",s);i=2;}
else{printf("%dis1位数\n",s);i=1;}
e=s%10;d=s/10%10;c=s/100%10;b=s/1000%10;a=s/10000%10;
switch(i)
{
case5:
printf("原数是%d%d%d%d%d\n逆序是%d%d%d%d%d\n",a,b,c,d,e,e,d,c,b,a);break;
case4:
printf("原数是%d%d%d%d\n逆序是%d%d%d%d\n",b,c,d,e,e,d,c,b);break;
case3:
printf("原数是%d%d%d\n逆序是%d%d%d\n",c,d,e,e,d,c);break;
case2:
printf("原数是%d%d\n逆序是%d%d\n",d,e,e,d);break;
case1:
printf("原数是%d\n逆序是%d\n",e,e);break;
}
}
4.从键盘输入三个数a,b,c,代表三条线段的长度;编程,判断是否能组成三角形,及组成三角形的类型。
要求:
编程,测试至少3组数据。
记录结果。
#include
voidmain()
{
floata,b,c,x,y;
printf("请输入第一条边长:
");
scanf("%f",&a);
printf("请输入第二条边长:
");
scanf("%f",&b);
printf("请输入第三条边长:
");
scanf("%f",&c);
if(a+b>c&&b+c>a&&a+c>b)
{
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)printf("该三角形是直角三角形\n");
elseif(a*a+b*b>c*c||a*a+c*c>b*b||b*b+c*c>a*a)printf("该三角形是锐角三角形\n");
elseif(a*a+b*b}
elseprintf("不是三角形\n");
}
第4次上机内容:
1.教材P1296.3
要求:
自行编程,不能使用教材带答案。
记录源程序、结果。
#include
voidmain()
{inta,n,i,t=0;
longs=0;
printf("请输入a和n(用英文逗号“,”隔开):
");
scanf("%d,%d",&a,&n);
for(i=1;i<=n;i++)
{t=t+a;
s=s+t;
a=a*10;
}
printf("经计算得a+aa+…+a…aa=%ld\n",s);
}
2.教材P1296.4
要求:
自行编程,不能使用教材带答案。
记录源程序、结果。
#include
voidmain()
{floats=1,sum=0;
inti;
for(i=1;i<=20;i++)
{s=s*i;
sum=sum+s;
}
printf("经计算得1!
+2!
+...+20!
=%e\n",sum);
}
3.教材P1296.8注意:
偶数项改为负
要求:
自行编程,不能使用教材带答案。
记录源程序、结果。
#include
voidmain()
{inti,t,k=1,n=20;
floata=2,b=1,s=0;
for(i=1;i<=n;i++)
{s=s+a/b*k;
t=a;
a=a+b;
b=t;
k=-k;
}
printf("sum=%9.6f\n",s);
}
4.输出99乘法表
要求:
编程,尝试正三角和倒三角不同情况。
记录源程序、记录结果。
(1)
#include
voidmain()
{inti,j;
printf("九九乘法表:
\n");
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%2d",i,j,i*j);
printf("\n");
}
}
(2)
#include
voidmain()
{inti,j;
printf("九九乘法表:
\n");
for(i=9;i>=1;i--)
{for(j=1;j<=i;j++)
printf("%d*%d=%2d",i,j,i*j);
printf("\n");
}
}
5.判断m是否是素数
要求:
编程,采用变量终值法和变量标示法两种方法。
记录源程序、记录结果。
(1).
#include
#include
main()
{intm,i,k,ip=0;
printf("请输入数字:
");
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0){ip=1;break;}
if(ip==0)
printf("答:
数字%d是素数.\n",m);
else
printf("答:
数字%d不是素数.\n",m);
}
(2).
#include
#include
Voidmain()
{intm,i,k;
printf("请输入数字:
");
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)
printf("答:
数字%d是素数.\n",m);
else
printf("答:
数字%d不是素数.\n",m);
}
6.输出100~200之间的全部素数
要求:
编程,尝试两种方法。
记录源程序、记录结果。
#include
#include
voidmain()
{
intm,i,k,n=0;
printf("100~200的素数有:
\n");
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%d",m);
n=n+1;
}
if(n%10==0)
printf("\n");
}
printf("\n");
}
7.任意给定一个正整数m,输出1~m区间内既能被3整除也能被5整除的数。
例如:
如果m为19,则输出15.
要求:
编程,记录源程序、记录结果。
#include
voidmain()
{inti,m;
printf("请输入m的值:
");
scanf("%d",&m);
for(i=1;i<=m;i++)
if(i%3==0&&i%5==0)
printf("%d",i);
printf("\n既能被5整除又能被3整除\n");
}
8.有一序列:
1,1,2,3,5,8,13……从第三个数开始每个数是前两个数之和,求出此数列的前m项之和,总和存放到变量sum中,并输出总和。
要求:
编程,记录源程序、记录结果。
#include
voidmain()
{intt,a=0,i,m,sum=0,s=1;
printf("请输入m的值:
");
scanf("%d",&m);
for(i=1;i<=m;i++)
{sum=sum+s;
t=s;
s=s+a;
a=t;}
printf("sum=%d\n",sum);
}
9.对于任意给定的正整数m,求这个数的各位数字之和,存入变量sum中,并输出之。
例如:
如果m为123,则程序应输出6。
要求:
编程,记录源程序、记录结果。
#include
voidmain()
{intm,sum=0;
printf("请输入m的值:
");
scanf("%d",&m);
while(m>0)
{sum=sum+m%10;
m=m/10;}
printf("sum=%d\n",sum);
}
第5次上机内容:
1.输入5名同学成绩,并求大于80的人数。
要求:
编程,记录结果。
#include
voidmain()
{intscore[5],i,count=0;
for(i=0;i<5;i++)
scanf("%d",&score[i]);
for(i=0;i<5;i++)
if(score[i]>=80)count++;
printf("count=%d\n",count);
}
2.输入m名同学成绩,并求不及格的人数。
要求:
编程,记录结果。
#include
voidmain()
{intscore[20],i,count=0,m;
printf("输入m的值:
");
scanf("%d",&m);
for(i=0;iscanf("%d",&score[i]);
for(i=0;iif(score[i]<=60)count++;
printf("count=%d\n",count);
}
3.输入10名同学成绩,求大于平均分的人数。
要求:
编程,记录结果。
#include
voidmain()
{intscore[10],i,count=0;
floatsum=0,average;
for(i=0;i<10;i++)
scanf("%d",&score[i]);
for(i=0;i<10;i++)
sum=sum+score[i];
average=sum/10;
for(i=0;i<10;i++)
if(score[i]>=average)count++;
printf("count=%d\n",count);
}
4.数组中5个数,左移一位/右移一位。
如:
a[5]={1,2,3,4,5}
左移后变为{2,3,4,5,1}
右移后变为{5,1,2,3,4}
要求:
编程,记录结果。
左移:
#include
voidmain()
{inta[5]={1,2,3,4,5},i,t;
t=a[0];
for(i=0;i<4;i++)
a[i]=a[i+1];
a[4]=t;
for(i=0;i<5;i++)
printf("%d",a[i]);
printf("\n");
}
右移:
#include
voidmain()
{inta[5]={1,2,3,4,5},i,t;
t=a[4];
for(i=4;i>0;i--)
a[i]=a[i-1];
a[0]=t;
for(i=0;i<5;i++)
printf("%d",a[i]);
printf("\n");
}
5.向一个有序数组中插入一个数,保证有序。
如:
a[6]={1,2,3,4,6}中插入5变成{1,2,3,4,5,6}
要求:
编程,记录结果。
#include
voidmain()
{inta[6]={1,2,3,5,6},m,k=0,i;
scanf("%d",&m);
if(m>a[4])a[5]=m;
else
{
for(i=0;i<=4;i++)
if(a[i]>m){k=i;break;}
for(i=4;i>=k;i--)
a[i+1]=a[i];
a[k]=m;
}
for(i=0;i<=5;i++)
printf("%d",a[i]);
printf("\n");
}
6.输入10个整数,求其中的最小数。
要求:
编程,记录结果。
(1).普通选择法:
#include
voidmain()
{inta[10]={1,2,3,4,5,6,8,20,11,12},i,k;
k=a[0];
for(i=1;i<10;i++)
if(k>a[i])
k=a[i];
printf("theMinnumberis%d\n",k);
}
(2).下标选择法:
#include
voidmain()
{inta[10]={1,2,3,4,5,6,8,20,11,12},i,k;
k=0;
for(i=1;i<10;i++)
if(a[k]>a[i])
k=i;
printf("theMinnumberis%d\n",a[k]);
}
7.输入10个整数,按由小到大的顺序排序并输出。
要求:
编程,记录结果。
(1).起泡法:
#include
voidmain()
{inta[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<=8;j++)
for(i=0;i<=8-j;i++)
if(a[i]>a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;}
for(i=0;i<10;i++)
printf("%d",a[i]);
}
(2).选择法:
8.对数组a[3][3]={1,2,3,4,5,6,7,8,9}进行自身转置。
要求:
编程,记录结果。
#include
voidmain()
{inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},i,j,t;
for(i=0;i<=2;i++)
for(j=i;j<=2;j++)
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%d",a[i][j]);
printf("\n");
}
}
9.输出杨辉三角形(5行)
要求:
编程,记录结