C语言 第4章 选择结构程序设计
第4章选择结构程序设计
第4章 选择结构程序设计
通过本章实验作业应达目标
1.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构;
本章必须上交作业
程序4_2.c、4_3.c、4_4.c、4_5.c上传至http://121.251.227.27:8080/c
实验一 大小写转换
【实验目的】
熟悉关系与逻辑运算,了解if-else的顺序与嵌套层次关系。
【实验内容】
下面程序希望完成大小写字母转换功能。若输入一个大写字母,则转化为小写输出;若输入小写字母则转化为大写输出;对其他字母则原样不变输出。程序以4_1.c命名,运行程序,分别输入一次大写、一次小写字母、一次‘#’进行验证。如果程序有错,请改正。
#include
void main()
{char ch;
ch=getchar();
if('a'<=ch<='z') ch-=32;
if('A'<=ch<='Z') ch+=32;
putchar(ch);putchar('\n');
}
实验二 算术运算
【实验目的】
学习if~else、switch语句的使用。
【实验内容】
键盘输入一个算术的运算式子,输出运算结果。这里我们规定可以接收五个算术运算的符号:+、-、*、/、^(乘方)。输入这五个符号以外的运算符号则提醒出错。程序以4_2.c命名并上交。
下图是输入输出的示意图:
输入一个加法的算术式:
输入一个除法的算术式:
输入一个乘方的算术式:
求3的平方根:
【实验提示】
本程序需要从键盘接收一个表达式,根据表达式中的运算符号实现相应的运算并将结果保存下来并输出。
C语言本身是没有乘方运算符的,可以调用数学函数pow(x,y)求x的y次方。注意一定要包含。
【思考】
输入的表达式实质是按多个不同类型的数据来获取数据的。程序中需要定义多个变量来接收表达式中包含的数据与运算符,并设计相应的输入/输出函数实现。
实验三 金额计算
c语言实验4:选择结构程序设计
实验4:选择结构程序设计
实验名称: 选择结构结构程序设计
实验日期: 年 月 日 实验报告日期: 年 月 日
一、实验目的
1、 掌握关系、逻辑运算符及其表达式的正确使用。
2、 掌握if语句和switch语句的使用。
二、实验环境
Vc++6.0
三、实验内容
在v C下完成程序题:
1、有如下函数,要求输入x的值,求y的值。
|X|,X<0
Y= X2,0≤X<10
LogX,X≥10
2、输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值。
3、 某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。工龄和现工资从键盘输入,编程求加工资后的员工工资。
四、实验要求
1、 实验前绘制程序框图,编制源程序、准备测试数据。
2、 在vc下完成程序的编辑、编译、运行,获得程序结果。
3、 实验中可以采用vc程序调试基本方法协助查找程序中的逻辑问题。
五、实验步骤、过程
1、 编辑、编译、运行程序题1,分别使用数据-5,0,5,10,100做测试。人工计算结果分别是
。
2、
编辑、编译、运行程序题2,分别使用数据1,7,8做测试。
3、 编辑、编译、运行程序题3,测试数据见下表:
工龄y(年) 现工资S0(元) 调整后工资S(元)-人工计算结果
25 2200
22 1900
18 1700
16 1400
4、 尝试跟踪程序题1运行。用F7或F8键单步跟踪程序,用^F7检查变量值,用F4可以将程序运行到光标当前位置。
C语言第4章选择结构
第四章选择结构
选择:
1.以下关于运算符优先级的描述中,正确的是()。
A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算
B)&&(逻辑与)>算术运算>关系运算>赋值运算
C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算
D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)
2.逻辑运算符的运算对象的数据类型()。
A)只能是0或1 B)只能是.T.或.F.
C)只能是整型或字符型 D)任何类型的数据
3.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)
C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)
D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
4.判断字符型变量ch为数字的表达式是( ) 。
A) 0<=ch<=9 B)(ch>=0)&&(ch<=9) C)'0'<=ch<='9' D)(ch>='0')&&(ch<='9')
5.若有以下函数关系
x<0 → y=2x
x>0 → y=x
x=0 → y=x+1
下面程序段能正确表示以上关系的是()。
A) y=2x; B) y=2x;
if(x!=0) if(x<=0)
if(x>0)y=x; if(x==0)y=x+1;
else y=x+1; else y=x;
C) if(x>=0) D)y=x+1;
if(x>0)y=x; if(x<=0)
elsey=x+1; if(x<0)y=2x;
else y=2x; else y=x;
C语言习题四选择结构程序设计
习题四 选择结构程序设计
1. 设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是______。
A、if(x++); B、if(x>y && y!=0); C、if(x>0) x-- D、if(y<0) {;}
else y++; else x++;
解析:本题考查的是if语句。if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。故本题答案选C。
2. 有以下程序
main()
{ int i;
for(i=1;i<=40;i++)
{ if(i++%5==0)
if(++i%8==0) printf ("%d",i);}
printf("\n"); }
执行后的输出结果是______。
A、5 B、24 C、32 D、40
解析:本题考查的是if语句的应用。在满足for 语句条件下,第一个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。故本题答案选C。
3. 在嵌套使用if语句时,C语言规定else总是______。
A、和之前与其具有相同缩进位置的if配对 B、和之前与其最近的if配对
C、和之前与其最近的且不带else的if配对 D、和之前的第一个if配对
解析:本题考查的是if语句的使用规则。在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。故本题答案为C。
4. 有以下程序
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
c语言第4章选择结构程序设计习题答案
精品文档
. 第4章 选择结构程序设计
习题(P111)
4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。
4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1
(4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2
解:该题在求解过程中注意:
一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;
二、逻辑表达式的求值规则。(P94)
所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1
4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。
分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法类似。法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。
参考程序如下:
法一:
main()
{ int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/
printf("\ninput the value of a,b,c:"); /*提示输入*/
scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/
if(a>b) max=a;
else max=b;
if(max
max=c;
printf("\nmax=%d\n",max);
c语言第4章 选择结构程序设计习题答案
第4章 选择结构程序设计
习题(P111)
4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。
4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1
(4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2
解:该题在求解过程中注意:
一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;
二、逻辑表达式的求值规则。(P94)
所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1
4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。
分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法类似。法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。
参考程序如下:
法一:
main()
{ int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/
printf("\ninput the value of a,b,c:"); /*提示输入*/
scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/
if(a>b) max=a;
else max=b;
if(max
max=c;
printf("\nmax=%d\n",max);
c语言第4章 选择结构程序设计习题答案 2
第4章 选择结构程序设计
习题(P111)
4。2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。
4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b〉c&&b==c (2)a||b+c&&b-c (3)!(a〉b)&&!c||1
(4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c—1&&b+c/2
解:该题在求解过程中注意:
一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;
二、逻辑表达式的求值规则。(P94)
所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1
4。4有3个整数a、b、c,由键盘输入,输出其中最大的数。
分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法类似。法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。
参考程序如下:
法一:
main()
{ int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/
printf(”\ninput the value of a,b,c:"); /*提示输入*/
scanf(”%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/
if(a>b) max=a;
else max=b;
if(max
printf("\nmax=%d\n",max);
c语言第4章 选择结构程序设计习题答案 3
第4章 选择结构程序设计
习题(P111)
4、2 C语言中如何表示“真”与“假”?系统如何判断一个量的“真”与“假”?
答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。
4、3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1
(4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2
解:该题在求解过程中注意:
一、优先级。逻辑运算符(&&与||)低于算术运算符与关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;
二、逻辑表达式的求值规则。(P94)
所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1
4、4有3个整数a、b、c,由键盘输入,输出其中最大的数。
分析:这就是一个规模较小的求最值的算法,习题1、6用函数的方法实现。该题不用函数调用实现,但方法类似。法一:先求前两个数的最值,再用前两个数的最值与第三个数比较即得结果。法二:先假设第一个数就是最值,再依次与第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。
参考程序如下:
法一:
main()
{ int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/
printf("\ninput the value of a,b,c:"); /*提示输入*/
scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/
if(a>b) max=a;
else max=b;
if(max
printf("\nmax=%d\n",max);
第4章选择结构程序设计 2
第4章 选择结构程序设计
通过本章实验作业应达目标
1.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构;
本章必须上交作业
程序4_2.c、4_3.c、4_4.c、4_5.c上传至http://121.251.227.27:8080/c
实验一 大小写转换
【实验目的】
熟悉关系与逻辑运算,了解if-else的顺序与嵌套层次关系。
【实验内容】
下面程序希望完成大小写字母转换功能。若输入一个大写字母,则转化为小写输出;若输入小写字母则转化为大写输出;对其他字母则原样不变输出。程序以4_1.c命名,运行程序,分别输入一次大写、一次小写字母、一次‘#’进行验证。如果程序有错,请改正。
#include
void main()
{char ch;
ch=getchar();
if('a'<=ch<='z') ch-=32;
if('A'<=ch<='Z') ch+=32;
putchar(ch);putchar('\n');
}
实验二 算术运算
【实验目的】
学习if~else、switch语句的使用。
【实验内容】
键盘输入一个算术的运算式子,输出运算结果。这里我们规定可以接收五个算术运算的符号:+、-、*、/、^(乘方)。输入这五个符号以外的运算符号则提醒出错。程序以4_2.c命名并上交。
下图是输入输出的示意图:
输入一个加法的算术式:
输入一个除法的算术式:
输入一个乘方的算术式:
求3的平方根:
【实验提示】
本程序需要从键盘接收一个表达式,根据表达式中的运算符号实现相应的运算并将结果保存下来并输出。
C语言本身是没有乘方运算符的,可以调用数学函数pow(x,y)求x的y次方。注意一定要包含。
【思考】
输入的表达式实质是按多个不同类型的数据来获取数据的。程序中需要定义多个变量来接收表达式中包含的数据与运算符,并设计相应的输入/输出函数实现。
实验三 金额计算
C语言第4章 选择结构程序设计
第4章 选择结构程序设计
4.1 什么是算术运算?什么是关系运算?什么是逻辑运算?
答:略
4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
答:在C语言中,用1和0表示真和假的值;判断一个逻辑表达式的值时,非0代表真,0代表假。比如3&&4为真,因为3是非0,4也是非0,真与真,结果还是真,而3&&4的值为1。
4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b>c&&b= =c
(2)a||b+c&&b-c
(3)!(a>b)&&!c||1
(4)!(x=a)&&(y=b)&&0
(5)!(a+b)+c-1&&b+c/2
分析:首先判断运算符的优先级与结合性
解:(1)相当于((a+b)>c)&&(b= =c) 得0
(2)相当于(a||(b+c))&&(b-c) 得1
(3)相当于(!(a>b))&&(!c)||1 得1
(4)相当于(!(x=a))&&(y=b)&&0 得0
(5)相当于((!(a+b))+c-1)&&(b+c/2) 得1
4.4 有3个整数a、b、c,由键盘输入,输出其中最大的数。
方法1:利用条件运算符进行比较求解。
#include”stdio.h”
main()
{int a,b,c,max;
printf(“please input 3 numbers:”);
scanf(“%d,%d,%d”,&a,&b,&c);
max=(a>b)?a:b;
/*这里运用条件运算符,将a和b中较大的那个数赋给max*/
max=(max>c)?max:c;
/*用上面得到的max(a和b中较大的)和c比较,取较大的再次赋给max*/
printf(“max=%d\n”,max);
}
方法2:用if语句进行比较求解。
#include”stdio.h”
main()
