C语言程序设计实验答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。
本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。
为回报度娘及众网友的帮助,本文档免费下载。
*/
/*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/
/*努力吧,骚年以及学妹们!*/
/*整理edby口玉刀一ofGUET.*/
=====================
实验一C语言程序初步
=====================
已知a=5,b=4,c=6,求出s并换行
#include""
main()
{
inta,b,c,s;
a=5;b=4;c=6;
s=(a+b+c)/3;
printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s);
}
输入一个数字求他的平方
#include<>
main()
{
intr,s;
scanf("%d",&r);
s=r*r;
printf("s=%d\n",s);
}
(1)
#include<>
main()
{
printf("*\n");
printf("***\n");
printf("*\n");
}
(2)
#include<>
main()
{
intv;
inta,b,c;(2)
#include<>
main()
{
intm;
doublex;
scanf("%d",&m);
x=*m*m;
printf("%f",x);
}
入a,b,c三个变量,计算数学公式(a*b)/c main()
{
inta,b,d;
floats,c;
scanf("%d%d%f",&a,&b,&c);
d=a*b;
s=d/c;
printf("%f",s);
}
================================= 实验三顺序结构和输入输出方法
=================================
(1)main()
{
intm=345,t;
floatn=;
t=*100;
printf("m=%d,n*100=%d\n",m,t);
}
(2)
main()
{
inta,b,c,s,v;
scanf("%d%d%d",&a,&b,&c);
s=a*b;
v=a*b*c;
printf("%d,%d,%d\n",a,b,c);
printf("s=%d,v=%d\n",s,v);
}
(1)
main()
{
intm,n;
floatx=,y=;
scanf("%d,%d",&m,&n);
printf("%6d,%6d",m,n);/*每个数的输出宽度为6,两个数之间逗号建个。
*/ printf("x=%,y=%",x,y);/*个数的输出宽度7,小数位2*/
}
(2)
main()
{
inta,b;
longm,n;
floatp,q;
scanf("a=%d,b=%d\n%f,%f",&a,&b,&p,&q);
scanf("%ld",&m);
scanf("%ld",&n);
printf("a=%d,b=%d\nm=%ld,n=%ld\n",a,b,m,n);
printf("p=%f,q=%f\n",p,q);
}
d\n",c1,c2);
}
3.---------------------------------------------------
#include<>
main()
{
inta=790,b,c;
b=790/60;
c=790%60;
printf("%d小时%d分钟",b,c);
}
4.---------------------------------------------------
#include<>
main()
{
inta,b,c,d;
scanf("%d%d%d",&a,&b,&c);
d=a;
a=c;
c=b;
b=d;
printf("%d,%d,%d\n",a,b,c);
}
5.--------------------------------------------------
#include<>
main()
{
doublea;
scanf("%lf",&a);
printf("%.2f\n",a);
}
=================================
实验四逻辑运算判断选取控制
=================================
.错误原因分析:Switch分号错误
switch(a*a+b*b){case3:case1:y=a+b;break;case0:y=b-a;break;}
b.错误原因分析:switch语句使用错误,后跟括号。
Default放在后边。
switch(a){case10:y=a-b;break;case
11:x=a*b;break;default:x=a+b;}c.错误原因分析:没有输出
语句。
switch(a+b){case10:x=a+b;break;case11:y=a-
b;break;}
(1)
main()
{
intx,y;
scanf("%d",&x);
if(x>-5&&x<0)y=x;
if(x==0)y=x-1;
if(x>0&&x<10)y=x+1;
printf("%d",y);
}
(2)
main()
{
intx,y;
scanf("%d",&x);
if((x>-5)&&(x<0))y=x;
elseif(x==0)y=x-1;
elseif(x>0&&x<10)y=x+1;
printf("%d",y);
}
main()
{
inta,M;
scanf("%d",&a);
M=a>0?a:-a;
printf("abs(a)=%d",M);
}
main()
{
intc,t,m;
printf("inputthenumberofcoatandtrousersyourwantbuy:\n");
scanf("%d%d",&c,&t);
if(c==t)if(c>=50)m=c*80;elsem=c*90;elseif(c>t)
if(t>=50)m=t*80+(c-t)*60;else90*t+(c-t)*60;
elseif(c>=50)80*t+(t-c)*45;
elsem=c*90+(t-c)*45;
printf("%d",m);
}
5.---------------------------------------------------
#include<>
int
main(void)
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a+b<=c||a+c<=b||b+c<=a)
printf("不构成三角形\n");
elseif(a==b&&b==c)
printf("等边三角形\n");
elseif(a==b||b==c||a==c)
printf("等腰三角形\n");
else
printf("不等边三角形\n");
return0;
}
6.--------------------------------------------------
#include""
main()
{
longa;
scanf("%ld",&a);
if(a%5==0)
if(a%7==0)
printf("yes\n|");
elseprintf("no\n");
}
================================= 实验五循环结构
================================= 1.---------------------------------------------------
#include""
main()
{intn;
while(1)
{printf("Enteranumber:");
scanf("%d",&n);
if(n%2==1)
{printf("Isaid");
continue;
}
break;
}
printf("!");
}
2.---------------------------------------------------- #include<>
main()
{
intc;
while((c=getchar())!='\n')
{
if((c<='X'&&c>='A'||c<='x'&&c>='a'))
c+=2;
elseif(c=='y'||c=='Y'||c=='z'||c=='Z')
c=c-24;
printf("%c",c);
}
putchar('\n');
}
3.---------------------------------------------------- #include<>
intmain()
{
intm,k;
for(m=1;m<=4;m++)
{
if(m==1||m==4)
{
for(k=1;k<=6;k++)
printf("*");
printf("\n");
}
else
printf("**\n");
}
return0;
}
#include<>
main()
{inta,b,c;
printf("*9\n");
printf("-----------------------------\n");
for(a=1;a<=9;a++)
{printf("%3d",a);
for(b=1;b<=a;b++)
{c=a*b;
printf("%3d",c);}
printf("\n");}
}
5.--------------------------------------------------
#include<>
main()
{
doublee=2,w=,t;
doublen=1,s=1;
t=1/w;
while(s<t)
{
s=s*(n+1);
e=e+1/s;
n++;
}
printf("e=%lf,n=%d\n",e,(int)(n-1));
}
6.-------------------------------------------------------- #include<>
voidmain()
{inti,j,k=0,r,s=0,t=1000,a=0;
for(i=2;i<=t;i++)
{a=0;r=0;
{for(j=1;j<i;j++)
{k=0;if(i%j==0)
{k=j;}r+=k;}
if(r==i)a=r;}
if(a!=0)
{
if(a==6)
printf("%d",a);
else
printf("+%d",a);
}
s+=a;
}
printf("=%d\n",s);
}
================================= 实验六数组
================================= #include<>
main()
{
intgrade[6];
inti,mumber;
for(i=1;i<=5;++i)
grade[i]=0;
printf("enteryournumber\n");
for(i=1;i<=20;++i)
{
scanf("%d",&mumber);
if(!mumber)break;
++grade[mumber];
}
printf("\n\nresultofsearch\n");
printf("---------------\n");
for(i=1;i<=5;++i)
printf("%4d%d\n",i,grade[i]);
}
#include""
main()
{
intn,k,xx[20];
printf("\nPleaseenteranumber");
scanf("%d",&n);
printf("\nPleaseenter%dnumbers:",n);
for(i=0;i<n;i++)scanf("%d",&xx[i]);
printf("%\nPleaseenteranothernumber:");
scanf("%d",&k);
for(i=0;i<k;i++)
{
t=xx[0];
for(j=1;j<n;j++)
xx[j-1]=xx[j];
xx[n-1]=t;
}
printf("\nAftermoving:\n");
for(i=0;i<n;i++)printf("%3d",xx[i]);
printf("\n");
}
#include<>
main()
{
inti,a[100]={90,180,270,380,590,530,140,750,380},b[6]; for(i=0;i<6;i++)
b[i]=0;
for(i=0;i<9;i++)
{
switch(a[i]/100)
{
case0:b[0]++;break;
case1:b[1]++;break;
case2:b[2]++;break;
case3:b[3]++;break;
case4:b[4]++;break;
default:b[5]++;break;
}
}
printf("Theresultis:");
for(i=0;i<6;i++)
printf("%d",b[i]);
printf("\n");
}
#include<>
{
inti,j,t,p,q,s,n,a[11]={6,3,42,23,35,71,98,67,56,38}; for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("%d",a[i]);
}
printf("\ninputnumber:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n<a[i])
{
for(j=9;j>=i;j--)
a[j+1]=a[j];
break;
}
a[i]=n;
for(i=0;i<=10;i++)
printf("%d",a[i]);
printf("\n");
}
5.---------------------------------------------------
#include<>
intmain()
{
chara[100],b[100];
inti=0,j=0,n=0;
gets(a);
gets(b);
while(a[j]!=0)
{
while((a[j+i]==b[i])&&b[i]!=0)i++;
if(b[i]==0)n++;
i=0;
j++;
}
printf("%d",n);
}
=================================
实验七字符处理
=================================
该程序的功能是:输入字符串,删除其中的数字,保留剩下的字符。
#include<>
main()
{
chara[40],b[40];
inti,j;
printf("Enterthestring:");
scanf("%s",a);
i=j=0;
while(a[i]!='\0')
{
if(!(a[i]>='0'&&a[i]<='9'))
{
b[j]=a[i];
j++;
}
++i;
}
b[j]='\0';
printf("%s",b);
}
#include""
#include""
main()
{
charstr1[50]="everyone!";
charstr2[50]="hello";
strcpy(str2+strlen(str2),str1);
printf("%s",str2);
}
3.----------------------------------------------------
#include<>
voidmain()
{
voidswap(int*p1,int*p2);
intn1,n2,n3;
int*p1,*p2,*p3;
printf("inputthreeinterern1,n2,n3:");
scanf("%d%d%d",&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2)swap(p1,p2);
if(n1>n3)swap(p1,p3);
if(n2>n3)swap(p2,p3);
printf("Now,theorderis:%d,%d,%d\n",n1,n2,n3); }
voidswap(int*p1,int*p2)
{
intp;
p=*p1;*p1=*p2;*p2=p;
}
()
{
inta[10];
int*p,i;
p=a;
for(i=0;i<10;i++)
{
*p=i;
p++;
}
p=a;
for(i=0;i<10;i++)
printf("n[%d]=%d\n",i,*p++);
}
4.#include<>
inttable[10];
voidlookup(int*t,int*a,intn)
{
intk;
*a=t[0];
for(k=1;k<n;k++)
if(*a>t[k])*a=t[k];
}
voidmain()
{
intk,min,*p=&min;
for(k=0;k<10;k++)
scanf("%d",table+k);
lookup(table,&min,10);
printf("min=%d\n",min);
}
5.#include<>
voidmain()
{
inta[5][5]={0},*p[5],i,j;
for(i=0;i<5;i++)p[i]=&a[i][0];
for(i=0;i<5;i++)
{
*(p[i]+i)=1;
*(p[i]+5-(i+1))=1;
}
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf("%2d",p[i][j]);
putchar('\n');
}
}
注意:&a[i][0]换成&a[0][i]之后结果不一样:#include<>
voidmain()
{
inta[5][5]={0},*p[5],i,j;
for(i=0;i<5;i++)p[i]=&a[0][i];
for(i=0;i<5;i++)
{
*(p[i]+i)=1;
*(p[i]+5-(i+1))=1;
}
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf("%2d",p[i][j]);
putchar('\n');
}
}。