习题课245章.docx

上传人:b****5 文档编号:26465820 上传时间:2023-06-19 格式:DOCX 页数:20 大小:25.59KB
下载 相关 举报
习题课245章.docx_第1页
第1页 / 共20页
习题课245章.docx_第2页
第2页 / 共20页
习题课245章.docx_第3页
第3页 / 共20页
习题课245章.docx_第4页
第4页 / 共20页
习题课245章.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

习题课245章.docx

《习题课245章.docx》由会员分享,可在线阅读,更多相关《习题课245章.docx(20页珍藏版)》请在冰豆网上搜索。

习题课245章.docx

习题课245章

第四章习题讲解

4.6实训

实训1

【实训内容】简单if语句。

【实训目的】掌握简单if语句的使用。

【实训题目】分析下面两个程序,写出程序的功能并上机验证。

【程序1】

#include

main()

{

floatx,y,z;

printf("Pleaseenterx,y,z:

");

scanf("%f,%f,%f",&x,&y,&z);

if(x

if(x

printf("%5.2f\n",x);

}

【程序2】

#include

main()

{

floatx,y,z,max;

printf("Pleaseenterx,y,z:

");

scanf("%f,%f,%f",&x,&y,&z);

max=x;

if(max

if(max

printf("%5.2f\n",max);

}

实训2

【实训内容】if-else语句。

【实训目的】掌握if-else语句的使用。

【实训题目】简单加法练习程序。

阅读程序并上机调试,改正其中的错误,使之能正常运行。

#include

#include

#include

main()

{

intnum1,num2,answer;

srand(time(NULL));

num1=rand()%100;

num2=rand()%100;

printf("%d+%d=",num1,num2);

scanf("%d",&answer);

if(answer==num1+num2)

printf("回答正确.\n");

else

printf("回答错误.\n");

}

实训3

【实训内容】if嵌套

【实训】编写程序,根据输入的某年某月,输出该月的天数。

【程序代码】

#include

main()

{

inty,m,d;

printf("Pleaseinputtheyearandmonth:

");

scanf("%d-%d",&y,&m);

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)

d=31;

elseif(m==4||m==6||m==9||m==11)

d=30;

elseif(m==2)

if((y%4==0&&y%100!

=0)||(y%400==0))

d=29;

else

d=28;

printf("\nThereare%ddaysin%d-%d\n\n",d,y,m);

}

【举一反三】用switch语句修改上面程序,并与if语句进行比较。

#include

main()

{

inty,m,d;

printf("Pleaseinputtheyearandmonth:

");

scanf("%d-%d",&y,&m);

switch(m)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

d=31;break;

case4:

case6:

case9:

case11:

d=30;break;

case2:

switch((y%4==0&&y%100!

=0)||(y%400==0))

{

case1:

d=29;break;

case0:

d=28;break;

}

}

printf("\nThereare%ddaysin%d-%d\n\n",d,y,m);

}

4-11编程题

(1)编写程序,从键盘输入整数n,当n为偶数时,输出n的平方值;否则输出n的立方值。

【程序代码】

#include

main()

{

intn;

scanf("%d",&n);

if(n%2==0)

printf("%d的平方值为:

%d\n",n,n*n);

else

printf("%d的立方值为:

%d\n",n,n*n*n);

}

(2)从键盘输入一个英文字母,如果是小写字母,则将它变为该字母后一位字母输出;如果是大写字母,则先将它变为小写字母,然后再变为该小写字母后一位字母输出。

【程序代码】

#include

main()

{

charch;

printf("请从键盘输入一个英文字母\n");

scanf("%c",&ch);

if(ch>='a'&&ch<'z')

printf("%c的后一位字母为:

%c\n",ch,ch+1);

elseif(ch>='A'&&ch<'Z')

printf("%c变为小写字母的后一位字母为:

%c\n",ch,ch+32+1);

else

printf("输入错误!

\n");

}

(3)某商场给顾客购物的折扣率为:

购物金额<200元,不打折;

200元<=购物金额<500元,9折;

500元<=购物金额<1000元,8折;

购物金额>=1000元,7.5折。

输入一个购物金额,输出折扣率、购物实际付款金额。

#include

main()

{

floatx;

scanf("%f",&x);

if(x<200)

printf("折扣率为1.0,购物实际付款金额为:

%f\n",x);

else

if(x<500)

printf("折扣率为0.9,购物实际付款金额为:

%f\n",0.9*x);

else

if(x<1000)

printf("折扣率为0.8,购物实际付款金额为:

%f\n",0.8*x);

else

printf("折扣率为0.75,购物实际付款金额为:

%f\n",0.75*x);

}

(4)输入一个人的出生年、月、日,再输入当前年、月、日,计算此人的实际年龄。

【程序代码】

#include

main()

{

inty1,m1,d1,y2,m2,d2,age;

printf("请依次输入出生年月日,以空格间隔:

");

scanf("%d%d%d",&y1,&m1,&d1);

printf("请依次输入当前年月日,以空格间隔:

");

scanf("%d%d%d",&y2,&m2,&d2);

age=y2-y1-1;

if(m2>m1)

age++;

else

if(m2==m1&&d2>=d1)

age++;

printf("你的年龄为:

%d\n",age);

}

第五章习题讲解

【例5-11】编写程序,输出如下图形:

【程序代码】

#include

main()

{

inti,j;

for(i=1;i<=6;i++)

{

for(j=1;j<=7-i;j++)

printf("");

for(j=1;j<=2*i-1;j++)

printf("*");

printf("\n");

}

}

5.6实训

实训1

【实训目的】学习while循环的使用,累加和的计算方法。

【实训题目】

(1)从键盘输入10个整数,求其累加和。

方法一:

#include

main()

{

inta,sum=0,i=1;

while(i<=10)

{

scanf("%d",&a);

sum=sum+a;

i++;

}

printf("10个整数的累加和为:

%d\n",sum);

}

实训2

【实训目的】学习do-while循环结构的控制

【实训题目】求自然对数底e的值。

,要求直到最后一项的值小于10-6为止。

#include

main()

{

doublee=1,item;

inti=1,fm=1;

do

{

e+=1.0/fm;

i++;

fm*=i;

}while(1.0/fm>=1.0e-6);

printf("e的值为:

%lf\n",e);

}

实训3

【实训目的】学习for循环语句的使用。

【实训题目】

(一)求100~999中的水仙花数。

(水仙花数是指一个数的各位数字的立方和等于该数自身的数,如:

153=1*1*1+5*5*5+3*3*3)

【程序代码】

#include

main()

{

inti,j,k,n;

for(n=100;n<=999;n++)

{

i=n/100;

j=n/10%10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d是水仙花数。

\n",n);

}

}

(二)编写程序,统计3000~8000之间有多少个无重复数字的奇数,输出这些奇数和统计结果,要求按每行10个数的格式输出结果。

说明:

3015、3217为无重复数字的奇数,而3113、3211为有重复数字的奇数。

#include

main()

{

inti,ge,shi,bai,qian,count=0;

for(i=3001;i<=8000;i+=2)

{

ge=i%10;

shi=i/10%10;

bai=i/100%10;

qian=i/1000;

if(ge==shi||ge==bai||ge==qian||shi==bai||shi==qian||bai==qian)

continue;

count++;

printf("%d",i);

if(count%10==0)

printf("\n");

}

}

实训4

【实训目的】掌握for-for循环嵌套的应用。

【实训题目】

(一)编写程序,输出下面图形:

【程序代码】

#include

main()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j<=5;j++)

{

printf("%d",i);

}

printf("\n");

}

}

(二)编写程序,输出下面图形:

#include

main()

{

inti,j;

for(i=1;i<=6;i++)

{

for(j=1;j

{

printf("");

}

printf("############\n");

}

}

实训5

【实训目的】掌握循环结构处理问题的方法。

【实训题目】假设某班有5名学生,期末考4门课程。

编写程序,要求输入每位学生的各门单科成绩,计算出每人的平均成绩。

#include

main()

{

inti,j;

floatx,ave;

for(i=1;i<=5;i++)

{

printf("请输入第%d名同学的4门课成绩:

\n",i);

ave=0;

for(j=1;j<=4;j++)

{

scanf("%f",&x);

ave+=x;

}

printf("第%d名同学的四门课平均成绩为%f\n\n\n",i,ave/4);

}

}

实训6

【实训目的】掌握用循环结构处理问题的方法

【实训题目】算术练习程序。

根据用户选择的菜单项,让计算机一次为小学生出10道简单的算术题,每题10分,小学生输入答案后,程序自动判定是否正确,最后给出小学生答对题目的数量和得分。

【程序代码】

#include

#include

#include

main()

{

inta,b,xz,answer,i,n=0,total=0,f=0;

srand(time(NULL));

printf("\n\n");

printf("*******************************\n");

printf("1————加法\n");

printf("2————减法\n");

printf("3————乘法\n");

printf("4————除法\n");

printf("*********************************\n");

printf("请选择运算:

");

scanf("%d",&xz);

switch(xz)

{

case1:

f=1;

printf("请看题,输入答案:

\n\n");

for(i=1;i<=10;i++)

{

a=rand()%10;b=rand()%10;

printf("第%d题:

%d+%d=",i,a,b);

scanf("%d",&answer);

if(answer==a+b)

{

n++;total=total+10;

}

}

break;

case2:

f=1;

printf("请看题,输入答案:

\n\n");

for(i=1;i<=10;i++)

{

a=rand()%10;b=rand()%10;

printf("第%d题:

%d-%d=",i,a,b);

scanf("%d",&answer);

if(answer==a-b)

{

n++;total=total+10;

}

}

break;

default:

f=0;

}

if(f==1)

printf("\n\n你共答对了:

%d道题,得分:

%d\n\n",n,total);

else

printf("\n\n对不起,你选择的运算不能实现,退出练习程序!

\n\n");

}

5-9编程题

(1)一张纸的厚度为0.1mm,珠穆朗玛峰的高度为8848.13m,假如纸张足够大,将纸对折多少次后可以超过珠峰的高度?

【程序代码】

#include

main()

{

inti=0;

floathigh=0.0001;

while(high<=8848.13)

{

high=high*2;

i++;

}

printf("将纸对折%d次后,可以超过珠峰的高度。

",i);

}

(2)计算1X2+3X4+5X6+……+99X100的值。

【程序代码】

#include

main()

{

inti,sum=0;

for(i=1;i<=99;i=i+2)

{

sum+=i*(i+1);

}

printf("sum=%d\n",sum);

}

(3)输入6个学生成绩,分别统计成绩在85-100分,60-85分和60分以下各分数段中的人数。

#include

main()

{

inti,score,a=0,b=0,c=0;

for(i=1;i<=6;i++)

{

printf("请输入第%d名学生的成绩:

\n",i);

scanf("%d",&score);

if(score<60)

c++;

if(score>=60&&score<85)

b++;

if(score>=85&&score<=100)

a++;

}

printf("85-100之间的人数为:

%d,60-85之间的人数为:

%d,60分以下的人数为:

%d",a,b,c);

}

(4)在1~500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数。

#include

main()

{

inti;

for(i=1;i<=500;i++)

{

if(i%3==2&&i%5==3&&i%7==2)

printf("%d",i);

}

}

(5)输出如下图所示图案。

#include

main()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=5-i;j>=1;j--)

printf("");

for(j=1;j<=2*i-1;j++)

printf("%d",i);

printf("\n");

}

for(i=1;i<=4;i++)

{

for(j=1;j<=i;j++)

printf("");

for(j=1;j<=9-2*i;j++)

printf("%d",5-i);

printf("\n");

}

}

(6)已知xyz+yzz=532,其中x、y、z都是数字,编写程序求出x、y、z分别是多少?

#include

main()

{

intx,y,z;

for(x=0;x<=5;x++)

for(y=0;y<=5;y++)

for(z=0;z<=9;z++)

{

if(100*x+10*y+z+100*y+10*z+z==532)

printf("x=%d,y=%d,z=%d\n\n",x,y,z);

}

}

【补充:

1、输出Fibonacci数列,直至数列的最末项不大于100。

#include

main()

{

inta0,a1,a2,i;

a0=a1=1;

printf("%d%d",a0,a1);

a2=a0+a1;

for(;a2<100;)

{

printf("%d",a2);

a0=a1;

a1=a2;

a2=a0+a1;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1