找回密码
 注册

QQ登录

只需一步,快速开始

查看: 752|回复: 0

大工20春《c&c++语言程序设计》五

[复制链接]
发表于 2021-2-25 12:26:40 | 显示全部楼层 |阅读模式
C/C++语言程序设计辅导资料五
一、主题:选择结构二、学习时间:2020年4月27日-5月3日“不忘初心、牢记使命”主题理论学习:
群众路线是我们党的生命线和根本工作路线,是我们党永葆青春活力和战斗力的重要传家宝。不论过去、现在和将来,我们都要坚持一切为了群众,一切依靠群众,从群众中来,到群众中去,把党的正确主张变为群众的自觉行动,把群众路线贯彻到治国理政全部活动之中。
                      摘选自《坚持和运用好毛泽东主席思想活的灵魂》《习近平谈治国理政》三、知识脉络:
第4章 选择结构
4.0 导学
4.1 单分支if语句
4.2 双分支if-else语句
4.3 嵌套的if语句
4.4 多分支else if 语句
4.5 多分支switch 语句
4.6 综合案例分析四、学习要求:
了解结构化程序设计的基本控制结构
理解选择结构
了解常用选择语句
掌握if语句基本语法
掌握构造单分支选择结构的方法
掌握if-else语句基本语法
掌握构造双分支选择结构的方法
理解嵌套结构
掌握嵌套if语句基本语法
理解else-if语句的配对原则
掌握嵌套if语句的构造方法
掌握else-if语句基本语法及结构的方法
理解else-if语句构造多分支结构的特点
掌握switch语句基本语法及结构的方法
理解switch语句构造多分支结构的特点
理解各种分支语句的特点
掌握复杂分支结构的构造方法五、重点难点:
单分支if语句
双分支if-else语句
嵌套if 语句
else if语句
switch语句
选择结构案例六、主要内容:
1. 面向过程程序设计OPP
控制流程的转移
程序员可以指定下一个执行的语句不是紧邻其后的语句。
所有程序都可以用三类控制结构(control structure)
顺序结构 (sequence structure)
选择结构 (selection structure)  if, if/else, switch
循环结构 (repetition structure)  while, do/while, for2. 单分支if语句
     
基本形式               执行流程
花括号中的执行语句块可以包含一条或多条语句,如果只有一条语句,则可以省略“{}”。
if 语句的圆括号后不应有分号否则会造成逻辑错误!3. 双分支if-else语句
 
基本形式                      执行流程
if 与 else 配对使用,else不能单独使用。
花括号中的执行语句块可以包含一条或多条语句,如果只有一条语句,则可以省略“{}”。
if-else可以用简单的if语句实现。
实现选择结构的前提是构造合适的条件。4. 嵌套的if语句
  
基本形式                          执行流程
if 与 else 的配对关系
原则:else总是与它上面最近的、且未配对的 if 配对。5. 多分支else if 语句
  
基本形式                         执行流程
多项选择问题,常使用结构更为清晰对称的else-if形式的if语句。6. 多分支switch 语句

基本形式
根据整数变量或表达式的值,从一组动作中选择一个执行,可用switch语句构成多分支选择结构。
判断表达式括号应具有整型值,一般为整型、字符型或枚举类型的变量或者表达式。
case 后面的标号为常量表达式,其值必须是整型、字符型或枚举常量。
每个分支须保证唯一性,即case后的标号值必须互异。
如果希望在执行完相应分支的语句后跳出switch结构,必须使用在各个分支中使用break语句。七、习题:
1.C语言对嵌套if语句的规定是:else总是与()配对。
A.其之前最近的if
B.第一个if
C.缩进位置相同的if
D.其之前最近且不带else的if
答案:D2.以下关于switch语句和break语句的描述中,只有()是正确的。
A.在switch语句中必须使用break语句
B.break语句只能用于switch语句
C.在switch语句中,可以根据需要使用或者不使用break语句
D.break语句是switch语句的一部分
答案:C3.以下代码段运行结果是()。
                int score=90;
                char grand;
                if(score>=60)grand='C';
                if(score>=70)grand='B';
                if(score>=80)grand='A';
        if(score>=90)grand='a';
                else grand='*';
                printf("%c\n",grand);
A.a
B.A
C.B
D.C
答案:A4.有以下定义语句:int a=1,b=2,c=3,x;则以下选项中各段程序执行后,x的值不为3的是()。
A.if (c<a) x=1;
else if (b<a) x=2;
else x=3;               
B.if (a<3) x=3;
else if (a<2) x=2;
else x=1;
C.if (a<3) x=3;
if (a<2) x=2;
if (a<1) x=1;       
D.if (a<b) x=b;
if (b<c) x=c;
if (c<a) x=a;
答案:C5.若运行如下代码段时给变量x输入12,则程序的运行结果是(  )。
        int x,y;
        scanf(“%d”,&x);
        y=x>12 ? x+10 : x-12;
                printf(“%d\n”,y);
A.4
B.3
C.2
D.0
答案:D6. 设货物运费每吨单价 p与运输 距离 s(公里)之间有如下关系:

输入要托运的货物重量为 w 吨,托运距离 s 公里,计算总运费 t = p * w * s。方案1:堆栈if语句
double dPrice = 20;    /*d>=400*/
if ( dDistance < 100 )   
dPrice = 30 ;
if ( dDistance < 200 && dDistance >=100 )   
dPrice = 27.5 ;
if ( dDistance < 300 && dDistance >=200 )  
dPrice = 25 ;
if ( dDistance < 400 && dDistance >=300 )
dPrice = 22.5 ;
dFreight = dPrice * dWeight * dDistance ;  
printf("总运费为%10.2f $ \n",dFreight) ;方案2:else-if语句
if ( dDistance < 100 )   
dPrice = 30 ;
else if ( dDistance < 200 )   
dPrice = 27.5 ;
else if ( dDistance < 300 )  
dPrice = 25 ;
else if ( dDistance < 400 )
dPrice = 22.5 ;
else  
dPrice = 20 ;
dFreight = dPrice * dWeight * dDistance ;  
printf("总运费为%10.2f $ \n",dFreight) ; 方案3:switch语句
int temp = dDistance/100;   
switch (temp)
{  
  case 0:      dPrice=30;    break;      // d<100
  case 1:      dPrice=27.5; break;    // 100 ≤d<200
  case 2:      dPrice=25;    break;     // 200 ≤d<300
  case 3:      dPrice=22.5; break;   // 300 ≤d<400
  default:     dPrice=20;    break;    // d≥400
}
南开答案可以联系QQ 761296021

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-4 07:51

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表