4.3 课后习题
4.3.1 项目练习
一.练习目的
1.进一步巩固选择结构程序设计语句的使用
2.进一步巩固break语句的使用方法
3.提高编程和调试程序的能力
二.练习内容
1.接受用户输入的三种商品的价格。如果购买的三种商品中至少有一种商品的价格大于50 或者三种商品的总额大于100,则折扣率为15%,否则折扣率为0,计算并显示用户应付的钱数。
#include "stdio.h"
main()
{float a,b,c,price;
scanf("%f%f%f",&a,&b,&c);
price=a+b+c;
if((a>50)||(b>50)||(c>50)||(price>100))
price=price*0.85;
printf("%.2f",price);
getch();
}
2.判断所输入的一个年份是否为闰年。
#include "stdio.h"
main()
{int year,flag=0;
scanf("%d",&year);
if((year%4==0)&&(year%100!=0)||(year%400==0))
flag=1;
if(flag==1)
printf("%d年是闰年!",year);
else
printf("%d年不是闰年!",year);
getch();
}
3.利用if结构编写程序,输入x值,求解以下分段函数的y值。当x<1时,y=x+1;当1≤x<10,y=2x+5;当x≥10时,y=x2+8。
#include "stdio.h"
main()
{int x,y;
scanf("%d",&x);
if(x<1) y=x+1;
else if(x>=10) y=x*x+8;
else y=2*x+5;
printf("%d",y);
getch();
}
4.编写一个程序,根据用户输入的期末考试成绩,输出相应的成绩评定信息。成绩大于等于90分输出“优”;成绩大于等于80分小于90分输出“良”;成绩大于等于60分小于80分输出“中”;成绩小于60分输出“差”。
#include "stdio.h"
main()
{float score;
scanf("%f",&score);
if((score>100)||(score<0))
printf("无效成绩!");
else
if(score>=90)
printf("优");
else
if(score>=80)
printf("良");
else
if(score>=60)
printf("中");
switch语句c语言例子else
printf("差");
getch();
}
5.利用switch语句编写一个计算器程序,用户输入四则运算表达式,输出计算结果。
#include "stdio.h"
main()
{float a,b;char ch;
printf("请输入表达式:");
scanf("%f",&a);
ch=getchar();
scanf("%f",&b);
switch(ch)
{case '+':printf("运算结果为:%f",a+b);break;
case '-':printf("运算结果为:%f",a-b);break;
case '*':printf("运算结果为:%f",a*b);break;
case '/':printf("运算结果为:%f",a/b);break;
}
getch();
}
4.3.2 练习题
一.选择题
1.在if语句的嵌套中,else总是与( B )配对;
(A)它前面未配对的if (B)它前面最近的未配对的if
(C)它上面书写在同一列的if (D)它在同一行的if
2. 判断char型变量ch是否为大写字母的正确表达式是( C )。(A)‘A’<=ch<=‘Z’ (B)(ch>=‘A’)&(ch<=‘Z’)
(C)(ch>=‘A’)&&(ch<=‘Z’) (D)(‘A’<= ch)AND(‘Z’>= ch)
3.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( B )。
if(x>y) z=x; x=y; y=z;
(A)x=10, y=20, z=30 (B)x=20, y=30, z=30
(C)x=20, y=30, z=10 (D)x=20, y=30, z=20
4.请阅读以下程序:
main( )
{ int a=5 , b=0 , c=0;
if(a=b+c) printf(“***\n”);
else printf(“$$$\n”);
getch() ;
}
以上程序( D )。
(A)有语法错不能通过编译(B)可以通过编译但不能通过连接(C)输出*** (D)输出$$$
5.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( B )。
if(a<b)
if(c<d) x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
(A)1 (B) 2 (C)3 (D) 6
6.若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的值是( C )。
(A) 4 (B)3 (C)2 (D) 1
二.填空题
1.以下程序运行后的输出结果是(20,0 )。
main()
{int x=10,y=20,t=0;
if(x==y) t=x; x=y; y=t;
printf("%d,%d\n",x,y); getch() ; }
2.以下程序运行后的输出结果是(6,4 )。
main()
{ int k=2,i=2,m;
m=k+=i*=k;
printf("%d,%d\n",m,i); getch(); }
3.以下程序运行后的输出结果是( 4 )。
main( )
{int m=5;
if (--m>5) printf(“%d\n”,m);
else printf(“%d\n”,m--); getch(); }
4.设有变量定义:int a=10 , c=9;
则表达式(--a!=c++)?—a:++c的值是(11 )。
5.若运行时输:3 5 /<;回车>,则以下程序的运行结果是(0.6 )。
#include "stdio.h"
main( )
{ float x,y;
char o;
double r;
scanf(“%f%f%c”,&x,&y,&o);
switch (o)
{ case ‘+’ : r=x+y ; break;
case ‘-’ : r=x-y ; break;
case ‘*’ : r=x*y ; break;
case ‘/’ : r=x/y ; break; }
printf(“%f”,r);
getch(); }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论