第三章 分支结构程序高计 习题
一、填空题
1、C语言的关系运算符中属于高优先级组的有 、 、 、 ;低优先级组的有 、 。关系表达式是用 连接两个子表达式组成的式子。
2、 "A&&B"的含义为 ,"A||B"的含义为 ,"!A"的含义为 。3种逻辑运算符的优先级从高到低的次序为 。
3、若a=7, b=6, c=12,则表达式"a+b<c && a>b"的值为 。
4、设a=3,b=4,c=5,则逻辑表达式"!(a+b)+c-1 && b+c/2”的值为 ,"a+b>c && (b=c)"的值为 ,"!(a+b) && !c || 1"的值为 。
填空题答案如下:
1、高:>、>=、<=、< 低:==、!= ; 关系运算符
2、与运算、或运算、非运算、 非运算 > 与运算 > 或运算
3、0
4、 1、 1、 1
二、选择题
1、已知a=9, b=8, c=7,则执行下列程序段后,a、b、c的值分别为 。
if( a>c)
{ a=b; b=c; c=a; }
else
a=c; c=b; b=a;
A. 9, 8, 8 B. 9, 8, 7 C. 8, 8, 7 D. 8, 7, 8
2、有以下程序段:
if(x>y)
z=1;
else if(x>0)
z=2;
else
z=3;
要得到z=2的结果,满足条件的一组数是 。
A. x=-1, y=-2 B. x=-2, y=-1 C. x=2, y=1 D. x=2,y=3
3、如果x大于1并且小于或等于10,则为真,否则为假,正确的表达式是 。
A. 1<x<=10 B x>1 || x<=10
C. x>1 && x<=10 D. x>1 && x<10
4、与表达式"x>10 && x-y!=10 "等价的式子是 。
A. x>(10 && (x-(y!=10))) B. (x>10) && ((x-y)!=10)
C. x>((10 && x)-(y!=10)) D. ((x>10) && (x-y))!=10
5、以下表达式中满足”当x的值为偶数时值为真“的是 。
(1) !x%2!=0 (2) x%2==0 (3) (x/2*2-x)==0 (4) !(x%2)
A. (1)(2)(3) B. (2)(3)(4) C. (1)(3)(4) D.(1)(2)(4)
6、下列表达式中值为真的有 。
A. a=0 B. b=3>4 C. b=3+4==5 D. (float)1/2
答案:
1、D 2、D 3、C 4、B 5、B 6、D
三、阅读程序并写出运行结果
1、 运行如下程序,输出结果为:
源程序如下:
#include <stdio.h>
#include <conio.h>
main()
{
int n;
n=12;
if(n>5)
if(n<11)
printf("RIGHT!RIGHT!");
else
printf("LEFT!LEFT!");
}
当n=6时,输出结果为
答案:(1)LEFT!LEFT! (2)RIGTH!RIGHT!
2、 运行如下程序,输出结果为:
源程序如下:
#include <stdio.h>
#include <conio.h>
main()
{
int x=1, y=0;
switch(x)
{
case 1:
switch(y)
{
case 0:
printf("**1**\n"); break;
case 1:
printf("**2**\n"); break;
}
case 2:
printf("**3**\n");
}
}
答案为:

四、程序填空题。
1、以下程序可实现从键盘输入两数a、b并输出其中较大者的功能(不考虑相等的情况)。
#include <stdio.h>
main( )
{
scanf("%d%d", &a, &b);
if( ( )
printf("最大值为:%d\n",a);
else
printf("最大值为:%d年为闰年\n",b);
}
答案为:
int a,b; a>b
2、以下程序用于判断某一年是否为闰年(判断闰年的方法:能被4整除但不能补100整除或者能被400整除)。
#include <stdio.h>
main( )
{ int year;
printf("请输入年份:“);
scanf("%d", &year);
if( (year %4==0) && )
printf("%d年为闰年\n",year);
else if
printf("%d年为闰年\n",year);
else
printf("%d年为平年\n",year);
}
答案为:
( year % 100 != 0) (year % 400 == 0)
五、编程题。
1、从键盘上输入一个整数,判断并输出它是奇数还是偶数。
源程序1:
#include <stdio.h>
main( )
{ int x;
printf("请输入一个整数:");
scanf("%d",&x);
if( x%2 == 1)
printf("%d是奇数\n", x);
else
printf("%d是偶数\n", x);
}
2、从键盘上输入一个浮点数,输出它的绝对值。
源程序1:
#include <stdio.h>
main( )
{
float x, y;
printf("请从键盘上输入浮点数x:");
scanf("%f", &x);
if(x<0)
y=-x;
else
y=x;
printf("浮点数%f的绝对值为:%f", x, y);
}
3、从键盘上输入a、b、c三个整 数,输出其中的最小数。
源程序1:
#include <stdio.h>
main( )
{ int a, b, c, min;
printf("请从键盘上输入三个整数(a,b,c):");
scanf("%d,%d,%d", &a, &b, &c);
min=a;
if(min>b)
min=b;
if(min>c)
min=c;
printf("最小数为:%d", min);
}
4、从键盘上输入a、b、c三个整数,将它们按从小到大的顺序输出。
源程序1:
#include <stdio.h>
main( )
{ int a, b, c, t;
printf("请从键盘上输入三个整数(a,b,c):");
scanf("%d,%d,%d", &a, &b, &c);
if(a>b)
{ t=a; a=b; b=t; }
if(a>c)
{ t=a; a=c; c=t; }
if(b>c)
{ t=b; b=c; c=t; }
printf("从小到大为:%d,%d, %d", a, b, c);
}
5、由键盘输入任意三个数,计算以这三个数为边长的三角形周长(提示:先判断这三个边能否构成三角形,再运用三角形周长公式计算周长)。
源程序1:
#include <stdio.h>
main( )
{ float a, b, c, len;
printf("请从键盘上输入三角形的三边(a,b,c):");
scanf("%f,%f,%f", &a, &b, &c);
if( a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a)
{
len = a+b+c;
printf("三角形的周长为:%.2f", len);
}
else
printf("不能构成三角形");
}
6、写一个程 序,从键盘上输入x,y值,判断(x,y)是否在图3-21的斜线区域内。若在则输出TRUE,否则输出FALSE。
源程序如下:
#include <stdio.h>
#include <math.h>
main( )
{
float x, y;
printf("请从键盘上输入两个数(x, y):");
scanf("%f,%f", &x, &y);
if( fabs(x) <=2 && fabs(y) <= 2)
printf("TRUE\n");
else
printf("FALSE\n");
}
7、输入一个0∽6的倍数,输出星期几。
源程序如下:
#include <stdio.h>
main( )
{
int n;
printf("请输入0-6的整数:");
scanf("%d", &n);
switch(n)
{
case 0:
printf("星期天\n"); break;
case 1:
printf("星期一\n"); break;
case 2:
printf("星期二\n"); break;
case 3:
printf("星期三\n"); break;
case 4:
printf("星期四\n"); break;
case 5:
printf("星期五\n"); break;
case 6:
printf("星期六\n"); break;
default:
printf("输入有误!\n"); break;
}
}
8、输入图书的定价和数量,计算购书金额并输出。其中,图书销售策略为:正常情况下按九折出售,超过10本按八五折出售,超过100本按八折出售。
源程序如下:
#include <stdio.h>
main( )
{
float price, money;
int num;
printf("请从键盘上输入图书的定价:");
scanf("%f", &price);
printf("请从键盘上输入图书的数量:");
scanf("%d", &num);
if( num <= 10)
money = price * num;
else if( num <= 100)
money = price * num * 0.9;
else
money = price * num * 0.85;
printf("购书金额为:%.2f", money);
}
9、输入月份和订购机票的数量,计算机票优惠并输出。计算规则如表3-3所示。
表3-3 机 票
| 月份m | { 7, 8, 9 } | { 1∽5, 10, 11 } | { 6, 12 } | ||
| 数量n | n>=20 | n<20 | n>=20 | n<20 | |
| 优惠率r(%) | 15 | 5 | 30 | 20 | 10 |
源程序如下:
#include <stdio.h>
main( )
{
float r;
int num, month;
printf("请从键盘上输入月份:");
scanf("%d", &month);
printf("请从键盘上输入订购机票数量:");
scanf("%d", &num);
switch(month)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 10:
case 11:
if(num>=20)
r = 0.30;
else
r = 0.20;
break;
case 7:
case 8:
case 9:
if(num>=20)
r = 0.15;
else
r = 0.05;
break;
case 6:
case 12:
r = 0.10;
break;
}
printf("机票优惠率为:%.2f", r );
}

