练习册345课后实训项目文档格式.docx
- 文档编号:433379
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:22
- 大小:23.59KB
练习册345课后实训项目文档格式.docx
《练习册345课后实训项目文档格式.docx》由会员分享,可在线阅读,更多相关《练习册345课后实训项目文档格式.docx(22页珍藏版)》请在冰点文库上搜索。
,x,y);
错误2:
printf("
x=%d,f=%f\n"
,x为整数;
错误3:
缺少return0;
}
实验5代码如下:
scanf(_____“%d,%f”,&
x,&
y__________);
printf(_______“x+y=%f”,x+y________)
3.2课后实训项目
一、选择题
1)D;
2)D;
3)C;
4)D;
5)B;
6)A;
7)B;
8)B;
9)C;
10)B如果使用的格式符与对应的变量类型不一致,有可能造成读取错误的数据,但系统不报错;
11)C;
12)C;
13)C赋值语句的对象只能是变量,而不是表达式;
14)A;
15)A;
16)D
二、填空题
1)3;
2)%%;
3)格式控制,输出表列;
4)%d,%c,%s;
5)&
a,&
b;
a=b
三、程序阅读题
1.运行结果A,66
2.运行结果1,65,1.5,6.5
3.输出结果为i:
dec=14,otc=177774,hex=fffc,unsigned=65532
4.输出结果是1234
四、改错题
1.下面程序编译时无错误,运行程序时,从键盘输入1,2,但输出结果不正确,找出程序中的错误并改正之。
voidmain()
{intx,y;
scanf(
"
%d,%d"
改错:
scanf(
printf(
2.下面程序是输入两个double型数据,然后输出的和,找出错误并改正之
{
doublex,y;
scanf(“%f%f”,&
改错1:
scanf(“%lf%lf”,&
printf(“x+y=%f\n,x+y);
改错2:
printf(“x+y=%f\n”,x+y);
五、程序设计题
1.解题思路:
设置两个整数给变量a,b,输入的大数放在a中,输入的小数放在b中,利用a/b和a%b分别求他们的商和余数,代码如下:
intmain(){
inta,b,c;
intd,e;
scanf("
if(a<
b)
{
c=a;
a=b;
b=c;
}
d=a/b;
e=a%b;
printf("
a=%d,b=%d,d=%d,e=%d\n"
a,b,d,e);
return0;
2.解题思路:
用%(求余)。
比如输入321,321%100=21用321-(321%100)再除以100即可得:
(321-(321%100))100=3同样,用21%10=1再除以10即可得:
((321%100)-((321%100)%10))/10=2最后,1-(1%1)=1。
代码如下:
inta;
intb,c,d;
%d"
b=a%10;
c=a/10%10;
d=a/100;
a=%d,b=%d,c=%d,d=%d"
a,b,c,d);
4.1上机实训项目
实验1正确程序代码为:
floata,b,c,t;
scanf(“%f,%f,%f”,&
if(a>
b)
{t=a;
a=b;
b=t;
c)
c=a;
c=t;
if(b>
{t=b;
b=c;
printf(“%f,%f,%f\n”,a,b,c);
return0;
实验2解题思路:
分段函数计算,根据不同的x,按照条件选择建立不同的分支执行。
参考代码如下:
#include<
floatx,y;
Pleaseinputx:
%f"
x);
if(x<
1.0)
y=x;
if((x>
1.0)&
&
(x<
10.0))
y=2*x-1;
if(x>
=10.0)y=3*x-11;
Thevalueofyis:
%f\n"
y);
实验3解题思路:
ASCII代码表示的小写字母比大写字母值大32,首先判断是否大写字母,如果是,则当前值加32,如果是小写字母,则当前值减32。
#include<
charch;
ch);
if(ch>
='
A'
ch<
Z'
)
ch=ch+32;
a'
z'
ch=ch-32;
%c\n"
ch);
实验4解题思路:
首先要明确构成三角形的条件,两边之和大于第三遍;
然后根据等边三角形(三边相等)、等腰三角形(两边相等)、直角三角形(直角边平方和等于斜边平方)分别进行判断,参考代码如下:
math.h>
voidmain(){
inta,b,c;
intk,i,j;
intm,o,p;
inta1,b1,c1;
输入三条边:
%d,%d,%d"
c);
i=a*a+b*b-c*c;
j=b*b+c*c-a*a;
k=a*a+c*c-b*b;
m=abs(a-b);
o=abs(a-c);
p=abs(c-b);
a1=a+b;
b1=b+c;
c1=a+c;
if((a1>
c)&
(b1>
a)&
(c1>
b)&
(m<
(o<
(p<
a)){
if((m==0)&
(o==0))
printf("
这是一个等边三角形。
elseif((m==0)||(o==0)||(p==0))
这是一个等腰三角形。
elseif((i==0)||(j==0)||(k==0))
这是一个直角三角形!
elseprintf("
这是一个任意三角形!
elseprintf("
这不是一个三角形!
实验5解题思路:
根据不同的距离,确定折扣和运费,参考代码如下:
doublecost(doublex,doubley,doublez,doublep);
doublef,p,w,s,d;
请输入距离:
%lf"
s);
\n请输入运费:
p);
\n请输入货物重量:
w);
if(s<
250.0){
d=0;
f=cost(p,w,s,d);
elseif((s>
=250.0)&
(s<
500.0)){
d=0.05;
=500.0)&
1000.0)){
d=0.1;
=1000.0)&
2000.0)){
d=0.15;
=2000.0)&
3000.0)){
d=0.2;
d=0.3;
运送距离%f,折扣%f,总费用%f\n"
s,d,f);
doublecost(doublex,doubley,doublez,doublep){
doubleq;
q=x*y*z*(1-p);
returnq;
提示:
也可以用switch语句实现。
4.2课后实训项目
1)B;
2)C;
3)D;
4)C【A%2无非0、1,奇数A%2==1为真,偶数A%2==0为假所以A对、B与A等价也对、D也对,C反了】;
6)B【首先要明确if语句后仅第一个语句z=x;
与if关联所以判断不成立时z=x不执行x=y;
和y=z都照常执行故答案x=20y=30z=30】;
7)B;
9)D;
10)D
1.0【f=((a>
b)>
c),这里a>
b的结果是1,1>
c的结果是0】
2.x>
=z||y>
=z
3.1【&
在这里运算优先级最低,相当于:
(!
(a-b)+c-1)&
(b+c/2),即:
(!
(6-4)+2-1)&
(4+2/2)==>
2+1)&
(5)==>
(0+1)&
(5)==>
1】
4.x:
y,u:
z
5.c<
d,b<
c
1.200
2.20,0
3.0.600000
4.yes
5.011122
1.解题思路:
题目要求功能是输入x,y的值,若x大于y则x、y都减1,否则x、y都加1。
程序中x--;
y--;
与x++;
y++;
没有用{}括起来,达不到“若x大于y则x、y都减1,否则x、y都加1”的要求。
修改时,要将x--;
用{}括起来。
修改后代码如下:
#include<
{intx,y;
scanf(“%d,%d”,&
if(x>
y)
{x--;
y--;
else
{x++;
y++;
printf(“%d,%d\n”,x,y);
2.解题思路:
scanf(“%d”,&
右侧括号应为半角括号;
if条件中x=90应为==。
voidmain()
intx;
scanf(“%d”,&
if(x==90)printf("
right"
elseprintf("
error"
输入三个数a,b,c。
首先判断a与b的大小,然后判断a与c,b与c将最大的数存入c中,输出c。
inta,b,c,t;
scanf(“%d,%d,%d”,&
{t=a;
}//比较a与b,如果a>
b则a,b交换
{t=a;
}//比较a与c,如果a>
c则a,c交换
}//比较c与b,如果b>
c则c,b交换
printf(“%d\n”,c);
符合三角形构成条件后,根据三角形三边求面积公式,求解面积。
floata,b,c,max,s;
doublearea;
%f,%f,%f"
max=a;
s=(a+b+c)*0.5;
if(max<
b)max=b;
c)max=c;
if(max>
s)printf("
不能构成三角形!
);
area=sqrt(s*(s-a)*(s-b)*(s-c));
a=%f,b=%f,c=%f\n"
a,b,c);
area=%f\n"
area);
3.解题思路:
二元一次方程根求解公式。
需要判断b2-4ac是否大于0,大于0求实数根,否则求虚根。
doublea,b,c,disc,x1,x2,p,q;
%lf%lf%lf"
disc=b*b-4*a*c;
p=-b/(2.0*a);
if(disc>
=0)
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
x1=%.2f\nx2=%.2f\n"
x1,x2);
else{
disc=fabs(disc);
x1=%.2f+%.2fi\nx2=%.2f-%.2fi\n"
p,q,p,q);
4.解题思路:
根据公式分别计算税后输入和应缴税。
doublecost(doublex,doublez,doublep);
doublepay,fund,tax,base,taxed;
base=3500.0;
pay);
pay=pay-base;
if(pay<
=1500.0){
tax=0.03;
fund=0;
taxed=cost(pay,tax,fund);
elseif((pay>
1500.0)&
(pay<
=4500.0)){
tax=0.1;
fund=105;
4500.0)&
=9000.0)){
tax=0.2;
fund=555;
9000.0)&
=35000.0)){
tax=0.25;
fund=1005;
35000.0)&
=55000.0)){
tax=0.30;
fund=2775;
55000.0)&
=80000.0)){
tax=0.35;
fund=5505;
elseif(pay>
80000.0){
tax=0.45;
fund=13505;
Thepayis%5.2fandthetaxis%5.2f"
pay+base,taxed);
//个人所得税计算公式
doublecost(doublex,doublez,doublep){
doublec;
c=x*z-p;
returnc;
5.1上机实训项目
实验1错误1变量temp没有初始化;
错误2,变量e没有初始化;
错误3,while(temp>
1e-6)后面不能加分号。
实验2程序中补充语句为:
sum=sum+i;
i=i+2;
实验3解题思路:
设置变量n,sum,在sum值不大于1000的条件下,每次将sum值加上n的平方,直到sum值大于1000,此时的n即为最大n。
程序代码如下:
intn,sum=0;
n=0;
while(sum<
=1000){
++n;
sum=sum+n*n;
Themaxn=%d\n"
n);
在10000以内判断,先将该数加上100后再开方,再将该数加上168后再开方,代码如下:
inti,x,y,z,t,p,q;
for(i=1;
i<
10000;
i++)
x=(int)sqrt(i+100);
///*x为加上100后开方后的结果*/
y=(int)sqrt(i+168);
/*y为再加上168后开方后的结果*/
t=x*x;
z=y*y;
p=i+100;
q=i+168;
if((t==p)&
(z==q))
\n%ld"
i);
/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
实验5解题思路:
利用for循环控制100-999个数,每个数分解出个位,十位,百位,然后进行判断。
inti,j,k,n;
Waterflowernumberis:
for(n=100;
n<
1000;
n++){
i=n/100;
//分解出百位
j=n/10%10;
//分解出十位
k=n%10;
//分解出个位
if(n==i*i*i+j*j*j+k*k*k)
%-5d"
5.2课后实训项目
1)A;
2)B【因为条件是个赋值表达式,表达式值非零,条件永为真,故而无限次循环】;
3)C【n开始等于0,n++<
=2成立,执行while循环,因为while后面有个分号,所以循环体是空语句,一直到n=2时,判断n<
=2仍然成立,再自增++,n的值这时候为3,接着,又1次判断n++<
=2,条件不成立,但是仍然执行n++,所以n的值变为4。
】
5)D;
6)B;
8)A;
10)C
1.switch循环
2.x>
=0x<
min
3.3-ij<
2i-1
4.1
5.n=12s
6.k%j==0,k<
=j
1)6
2)11
3)1
4)3,3
5)
1
2
3
4
5
6
7
8
9
10
1)错误:
sum没有赋初值。
2)错误:
while(i<
=n)后应加’;
’
3)错误1:
n没有声明,也没有赋初值,没有循环结束条件;
错误2:
for(i=1,i<
n,i++)里是语句,应用分号
1.解题思路:
用梯形法求解,代码如下:
#defineN30
doublea,b,x,s,h;
a=1;
b=2;
h=(b-a)/N;
for(x=a,s=0;
x<
b;
x=x+h)
s=s+(x*x+(x+h)*(x+h))*h/2/2;
S=%f\n"
s);
}
利用迭代公式
循环求解,代码如下:
#include<
intmain()
{
floata,x0,x1;
x0=a/2;
x1=(x0+a/x0)/2;
do
{x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>
=1e-5);
Thesqumefootof%5.2f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 练习 345 课后 项目
![提示](https://static.bingdoc.com/images/bang_tan.gif)