基于PBL的C语言课程设计及学习指导前三章答案10版.docx
《基于PBL的C语言课程设计及学习指导前三章答案10版.docx》由会员分享,可在线阅读,更多相关《基于PBL的C语言课程设计及学习指导前三章答案10版.docx(79页珍藏版)》请在冰豆网上搜索。
![基于PBL的C语言课程设计及学习指导前三章答案10版.docx](https://file1.bdocx.com/fileroot1/2022-11/28/815ce94c-c890-4ef8-8838-675fccd9b134/815ce94c-c890-4ef8-8838-675fccd9b1341.gif)
基于PBL的C语言课程设计及学习指导前三章答案10版
2.1
————————————————
(1)
#include
#include
main()
{
inta=2,b=3,m;
m=a;
a=b;
b=m;
printf("a=%d,b=%d",a,b);
getch();
}
——————————————————————————————————
(2)
#include
#include
#include
main()
{
floata,b,c,s,v;
scanf("%f,%f,%f",&a,&b,&c);
s=0.5*(a+b+c);//将原来的“1/2”改为“0.5”
v=sqrt(s*(s-a)*(s-b)*(s-c));
printf("v=%f\n",v);
printf("a=%f,b=%f,c=%f,s=%f\n",a,b,c,s);
getch();
}
(3)
#include
#include
main()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
getch();
}
书上在此题后有四次改动“++”的位置,不再赘述,其结果依次为:
9,11,8,11;
8,10;
9,11;
8,11,9,11;
(4)
#include
#include
main()
{
inti,j,m=0,n=0;
i=8;
j=10;
m+=i++;n-=--j;
printf("i=%d,j=%d,m=%d,n=%d",i,j,m,n);
getch();
}
(5)
#include
#include
main()
{
inta,b;
unsignedc,d;
longe,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;
d=b;
printf("%d,%d\n",a,b);
printf("%u,%u\n",a,b);
printf("%u,%u\n",c,b);
c=a=e;
d=b=f;
printf("%d,%d\n",a,b);
printf("%u,%u\n",c,d);
getch();
}
————————上机作业————————
(6)
#include
#include
main()
{
floata,b,c,S;
printf("*********************************");
printf("\n请输入长方体相关参数:
");
printf("\n长");
scanf("%f",&a);
printf("宽");
scanf("%f",&b);
printf("高");
scanf("%f",&c);
S=a*b*c;
printf("\n该长方体体积为:
%f",S);
printf("\n********************************");
getch();
}
(7)
#include
#include
main()
{
inta=3,b=4,c=5,x,y,z;
x=c,b,a;
y=!
a+b=c);
z=c/b+(float)a/b&&(float)(a/c);
printf("\nx=%d,y=%d,z=%d",x,y,z);
x=a||b--;
y=a-3&&c--;
z=a-3&&b;
printf("\n%d,%d,%d,%d,%d,%d",a,b,c,x,y,z);
getch();
}
_________完___________
2014-10-21
2.2.2上机实习指导
(1)
#include
#include
main()
{
inta,b,c;
printf("请输入三个整数");
scanf("%d,%d,%d",&a,&b,&c);
if(a
if(bprintf("max=%d\n",c);
else
printf("max=%d\n",b);
elseif(aprintf("max=%d\n",c);
else
printf("max=%d\n",a);
getch();
}
(2)
#include
#include
main()
{
inta,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(b>max)
max=b;
if(c>max)
max=c;
printf("max=%d\n",max);
getch();
}
(3)
#include
#include
#include
voidmain()
{
floatx,y1,y2;
printf("\nx=?
");
scanf("%f",&x);
if(x!
=0)
if(x<0)
y1=2/x,
y2=3/x;
else
y1=2*x,
y2=3*x;
elseif(x==0)
y1=2*x,
y2=3*x;
printf("\ny1=%5.2f,y2=%5.2f",y1,y2);
getch();
}
(4)
#include
#include
#include
voidmain()
{
intscore;
printf("\nscore=?
");
scanf("%d",&score);
switch(score/10)
{
case(10):
case(9):
printf("\nA");
break;
case(8):
printf("\nB");
break;
case(7):
printf("\nC");
break;
case(6):
printf("\nD");
break;
default:
printf("\nE");
}
getch();
}
#include
#include
#include
voidmain()
{
inta=1,b=1,c=1,d=1,i,j,t;
printf("请输入任意四个整数~~~~(>_<)~~~~");
scanf("%d%d%d%d",&a,&b,&c,&d);//c++中无法scanf中出现多个变量时,逗号后不能识别负号,故只能用空格输入。
inte[4]={a,b,c,d};
printf("%d,%d,%d,%d",e[0],e[1],e[2],e[3]);
do
{for(j=0;j<3;j++)
for(i=0;i<4-j;i++)
if(e[i]>e[i+1])
{t=e[i];e[i]=e[i+1];e[i+1]=t;}
}
while(j<2);
for(j=0;j<4;j++)
for(i=0;i<4;i++)
if(e[i]>0)
if(e[j]>0)printf("点(%d,%d)在第1象限\n",e[j],e[i]);
elseprintf("点(%d,%d)在第2象限\n",e[j],e[i]);
elseif(e[i]<0)
if(e[j]>0)printf("点(%d,%d)在第4象限\n",e[j],e[i]);
elseprintf("点(%d,%d)在第3象限\n",e[j],e[i]);
getch();
}
#include
#include
#include
chara,b,c,d,e,n;
main()
{
printf("(⊙o⊙)你好,我是人工智能猜球程序,想继续与我互动请按y,反之按n\n");
scanf("%s",&n);
if(n=='y')
{
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("O(∩_∩)O很好,\n");
printf("现有12个小球,分别标号1到12,其中有11个标准球的质量相等,请你任选一个小球作为非标准球,并决定它比其他球重还是轻,并牢记在心\n");
printf("准备好后请按y\n");
scanf("%s",&n);
if(n=='y')
{
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n\n\n\n\n(⊙_⊙)?
\n\n7到9号的总重与10到12号相同吗?
(y/n)\n");
scanf("%s",&a);
if(a=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到3号与7到9号的总重相同吗?
(y/n)\n");
scanf("%s",&b);
if(b=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n5到7号与8到10号的总重相同吗?
(y/n)\n");
scanf("%s",&c);
if(c=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&d);
if(d=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为4号,它比标准球重\n");returngetch();
}//
if(d=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为4号,它比标准球轻\n");returngetch();
}//
if(c=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n3到5号与7到9号的总重相同吗?
(y/n)\n");
scanf("%s",&d);
if(d=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&e);
if(e=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为6号,它比标准球重\n");returngetch();
}//
if(e=='n')
printf("\n\n\n\n\n\O(∩_∩)On\n根据你的描述,非标准球为6号,它比标准球轻\n");returngetch();
}//
if(d=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&e);
if(e=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为5号,它比标准球重\n");returngetch();
}//
if(e=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为5号,它比标准球轻\n");returngetch();
}//
if(b=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n2到4号球与6到8号球的总重相同吗?
(y/n)\n");
scanf("%s",&c);
if(c=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&d);
if(d=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为1号,它比标准球重\n");returngetch();
}//
if(d=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为1号,它比标准球轻\n");returngetch();
}//
if(c=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n3到5号与8到10号的总重相同吗?
(y/n)\n");
scanf("%s",&d);
if(d=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&e);
if(e=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为2号,它比标准球重\n");returngetch();
}//
if(e=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为2号,它比标准球轻\n");returngetch();
}//
if(d=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&e);
if(e=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为3号,它比标准球重\n");returngetch();
}//
if(e=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为3号,它比标准球轻\n");returngetch();
}//
if(a=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n7到9号与4到6号球的总重相同吗?
(y/n)\n");
scanf("%s",&b);
if(b=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到3号与9到11号球的总重相同吗?
(y/n)\n");
scanf("%d",&c);
if(c=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&d);
if(d=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为12号,它比标准球轻\n");returngetch();
}//
if(d=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为12号,它比标准球重\n");returngetch();
}//
if(c=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n4到6号与8到10号球的总重相同吗?
(y/n)");
scanf("%s",&d);
if(d=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&e);
if(e=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为11号,它比标准球轻\n");returngetch();
}//
if(e=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为11号,它比标准球重\n");returngetch();
}//
if(d=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&e);
if(e=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为10号,它比标准球轻\n");returngetch();
}//
if(e=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为10号,它比标准球重\n");returngetch();
}//
if(b=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到3号与6到8号球的总重相同吗?
(y/n)\n");
scanf("%s",&c);
if(c=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&d);
if(d=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为9号,它比标准球轻\n");returngetch();
}//
if(d=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为9号,它比标准球重\n");returngetch();
}//
if(c=='n')
printf("\n\n\n\n\n(⊙_⊙)?
\n\n2到4号与5到7号球的总重相同吗?
(y/n)\n");
scanf("%s",&d);
if(d=='y')
{//
printf("\n\n\n\n\n(⊙_⊙)?
\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&e);
if(e=='y')
{//
printf("\n\n\n\n\n\O(∩_∩)On\n根据你的描述,非标准球为8号,它比标准球轻\n");returngetch();
}//
if(e=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为8号,它比标准球重\n");returngetch();
}//
if(d=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n1到6号比7到12号的总重大,对吗?
(y/n)\n");
scanf("%s",&e);
if(e=='y')
{//
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为7号,它比标准球轻\n");returngetch();
}//
if(e=='n')
printf("\n\n\n\n\nO(∩_∩)O\n\n根据你的描述,非标准球为7号,它比标准球重\n");returngetch();
getch();
}
}
if(n=='n')printf("╭∩╮(︶︿︶)╭∩╮");
getch();
}
总结:
1巧用大括号,可以使if语句如虎添翼
2returngetch()可以解决程序结束后任然可以继续输入的bug
3//在这里是检查小括号的完整性用到的,
#include
#include
#include
main()
{floatx,s;
printf("请输入一个实数x:
");
scanf("%f",&x);
if(x<8)
{
if(x>=5)
s=x*x-2*x+5;
if(x<5)
{
if(x>=3)
s=sqrt(1+x*x);
if(x<3)
{
if(x>=2)
s=2*sin(x)-1;
if(x<2)
{
if(x>=1)
s=3*x+5;
elseprintf("x超出了定义域!
");
}
}
}
printf("s=%f",s);
}
elseprintf("x超出了定义域!
");
getch();
}
————————————————完————————————————————
20141028
2.3循环结构的初步运用
(1)
#include
#include
#include
voidmain()
{intk,n=0;
printf("\nk=?
");
scanf("%d",&k);
printf("\n");
while(k>=1)
{
printf("%d",k%10);//"k%10",即取k的第一位数。
k/=10;
n++;
}
printf("\nn=%d",n);
getch();
}
(2)
#include
#include
#include
voidmain()
{intn,s;
printf("\nn=?
");
scanf("%d",&n);
n+=1;
s=1;
if(n>0)
for(;--n;)s*=n;//“--”似乎是一个带有循环特性的符号,;;也是第一次见到以后可以尝试运用
printf("\ns=%d",s);
getch();
}
(3)
#include
#include