欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第4章选择结构.doc

    • 资源ID:56411977       资源大小:66.50KB        全文页数:13页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章选择结构.doc

    第四章 选择结构考核知识点l if语句的实现选择结构l 用switch语句实现多分支选择结构l 选择结构的嵌套l goto语句和语句标号的使用重要考点提示l 选择语句的简单操作l if语句的嵌套操作l switch语句的使用4.1 关系运算符和关系表达式关系运算是逻辑运算中较简单的一种。所谓“关系运算”其实就是“比较运算”,对两个值进行比较,判断其比较后的结果是否符合指定,从而执行不同的程序段。1. 关系运算符及其优先次序C语言提供了6种关系运算符,见表4-1表4-1 关系运算符关系运算符名称<小于<=小于或等于>大于>=大于或等于=等于!=不等于小提示:由两个字符组成的运算符之间不可以加空格,关系运算符都是双目运算符。(1) 结合性:自左向右。(2) 优先次序:前4种关系运算符的优先级别相同,后两种优先级相同,且前4种的优先级高于后两种;关系运算符的优先级低于算术运算符,高于赋值运算符。2. 关系表达式由关系运算符连接而成的表达式(可以是算术表达式、关系表达式或其他表达式)称为关系表达式。当关系运算符两边值的类型不一致时,若一边是整型,一边是实型,系统将自动把整型数转化为实型数,然后进行比较。4.2 逻辑运算符和逻辑表达式1.逻辑运算符及其优先级C语言提供了3种逻辑运算符,见表4-2表4-2 逻辑运算符符号名称&&逻辑与|逻辑或!软软非“&&”和“|”是双目运算符,要求要有两个操作数,而“!”是单目运算符,只要求一个操作数即可,以上逻辑运算符的优先级是:“!”级别最高,其次是“&&”,“|”级别最低,逻辑运算符中的“&&”和“|”低于关系运算符,而“!”高于关系运算符。2.逻辑表达式逻辑表达式是由逻辑运算符和运算对象组成,其中,参与逻辑运算的对象可以是一个具体的值,还可以是C语言中任意合法的表达式,逻辑表达式的运算结果为1。若a=5,则!a的值为0。因为a的值为5,被认做是“真”,对它进行“非”运算后,结果为“假”,即结果为0.当A和B的值结合方式不同时,各种逻辑运算所得到的结果是不同的。见表4-3表4-3 逻辑运算表AB!A!BA&&BA|B110011100101011001001100值得注意的是:在数学中,关系式0<x<10是可以使用的,表示x的值应在大于0且小于10的范围内。但在C语言中却不能用0<x<10这样一个关系表达式来表示上述逻辑关系,即关系运算符不能连用,但可以借助逻辑运算符来辅助运算,正确的表示方法是0<x&&x<10,在C语言中,由&&或|组成的逻辑表达式,在某些特定情况下会产生“短路”现象。如(1) x&&y&&z,只有当x为真时,才需要判别y的值;只有当x和y都为真时,才需要去判别z的值;只要x为假就不必判别y和z,整个表达式的值为0.。(2) x|y|z,只要z的值为真,就不必差别y和z的值,整表达式的值为1.。只有x的值为假时才需要差别y的值,只有x和y的值同时为假才需要判别z的值,因此,如有逻辑表达式(m=x>y)&&(n=c>d),其中x=1,y=2,c=3,d=4若m和n的原值为1,由于“x>y”的值为0,因为m=0,而不执行“n=c>d”,所以n的值不是0而是原值1。4.3 IF语句和用IF语句构成的选择结构if语句用来对所给定的条件进行判定,判断其表达式的值是否满足某种条件,并根据判定的结果决定执行给出的两种操作中的哪一种。1. if语句的几种形式(1) if(表达式)语句例如:if(a>b)printf(“The answer is right!n”);其中,if是C语言关系字,a>b是条件判断表达式。表达式两侧的括号不可少,并且只能是圆括号,不能用其他括号替代。紧跟着的是一条输出语句,称为if子句。如果在if子句中需要多个语句,则应该使用大括号()把一组语句括起来构成复合语句,这样在语法上满足“一条语句”的要求。(2) if(表达式) 语句1else 语句2例如:if(a>b)printf(“The answer is right.n”);else printf(“The answer is wrong.n”);(3) if(表达式) 语句1else if(表达式2)语句2else if(表达式m) 语句1else 语句n“语句1”是if子句,“语句2语句m”是else子句。这些子句在语法上要求是一条语句,但需要执行多条语句时,则应该使用花括号()把这些语句括起来组成复合语句。小提示:else不能独立成为一条语句,它只是if语句的一部分,不允许单独出现在程序中。else 必须与if配对,共同组成ifelse语句。2.if语句的嵌套在if语句中又包含一个或多个if语句结构,称为if语句的嵌套,一般形式如下:if() if( ) 语句1 else 语句2else if() 语句3 else 语句4应当注意:else总是与它上面的最近的没有与else配对的if配对。3.条件运算符构成的选择结构有如下语句:if(x<y) min=x; /*求两数中较小的一个*/else min=y;可以用min=(x<y)?x:y来替换,其中(x<y)?x:y是一个条件表达式,“?:”就是条件运算符。该表达式是这样执行的:如果(x<y)条件成立,则整个表达式取值x,否则取值y。优先级:条件运算符高于赋值运算符,但低于逻辑运算符、关系运算符和算术运算符。4.4 switch和goto语句1. switch语句switch语句是C语言提供的多分支选择结构语句,用来实现多分支选择结构。它的一般形式如下:switch(表达式)case 常量表达式1:语句1case 常量表达式2:语句2case 常量表达式n:语句ndefault:语句n+1说明:(1)switch是关键字,switch后面用花括号括起来的部分是switch语句体。(2)switch后面括号内的“表达式”,可以是C语言中任意合法表达式,但表达式两侧的括号不能省略。(3)case也是关键字,与其后面的常量表达式合称case语句标号,常量表达式的类型必须与switch后面的表达式类型相匹配,且各case语句标号的值各不相同,不能重复。(4)default也是关键字,起标号作用,代表了以上所有case标号之外的那些标号,default标号可以出现在语句体中任何标号位置上,当然,也可以没有。(5)case语句标号后的语句1、语句2等,可以是一条语句,也可以是若干条,在必要时,case语句标号后的语句可以省略不写。小提示:case和常量表达式之间一定要有空格。2. 语句标号语句标号用标识符表示,它的命名规则与变量名相同,即由字母、数字和下划线组成,在标识符后加一个冒号,就成了一个语句标号。在C语言中可以在任何语句前加上语句标号。3. goto语句goto语句为无条件转向语句,goto语句的一般形式如下:goto 语句标号;goto语句的作用:把程序的执行转向语句标号所在的位置,这个语句标号必须与此goto语句同在一个函数内,滥用goto语句将使程序的流程毫无规律,可读性差,因此初学者应慎用。一、选择题:1下列错误的语句是( )。Aif(a>b)printf(“%d”,a);Bif(&&);a=m;Cif(1)a=m;else a=n;Dif(a>0);elde a=n;2读下列程序:#include <stdio.h>main()float a,b,t;scanf(“%f,%f”,&a,&b);if(a>b)t=a;a=b;b=t;printf(“%5.2f,%5.2f”,a,b);运行时从键盘输入3.8和则正确的输出结果是( )。A-3.40,-3.80B-3.40,3.80C-3.4,3.8D3.80,-3.403读下列程序:#include <stdio.h>main()int x,y;scanf(“%d”,&x);y=0;if(x>=0)if(x>0)y=1;else y=-1;printf(“%d”,y);当从键盘输入32时,程序的输出结果为( )( )A0B-1C1D不确定值4对下述程序,( )是正确判断。#include <stdio.h>main()int x,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;else x+;y+;printf(“%d,%d”,x,y);A有语法错误,不能通过编译B若输入数据3和4,则输出4和5C若输入数据4和3,则输出3和4D若输入数据4和3,则输出4和45以下程序的输出结果是( )。#include <stdio.h>main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+p;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+,b+;printf(“na=%d,b=%d”,a,b);Aa=2,b=0Ba=2,b=1Ca=1,b=1Da=2,b=26这表示关系:xyz,应使用的C语言表达式是( )。A(x>=y)&&(y>=z)B(x>=y)AND (Y>=Z)C(x>=y>=z)D(x>=y)&(y>=z)7以下程序正确的输出结果是( )#include <stdilo.h>main()int a=2,b=-1,c=2;if (a<b)if(b<0)c=0;else c+=1;printf(“%dn”,c);A0B2C3D48以下程序的输出结果是( )。#include <stdio.h>main()int w=4,x=3,y=2,z=1;printf(“%dn”,(w<x? w:z<y?z<x);A1B2C3D49以下程序的运行结果是( )。#include <stdio.h>main()int k=2;switch(k)case 1:printf(“%dn”,k+);break;case 2:printf(“%d”,k+);case 3:printf(“%dn”,k+);break;case 4:printf(“%Dn”,k+);defaulf:printf(“Full!n”);A1 3B2 3C2 2D3 210下列程序的运行结果是( )#include <stdio.h>main()int a=2,c=5;printf(“a=%d,b=%dn”,a,c);Aa=%2,b=%5Ba=2,b=5Ca=d,b=dDa=%d,b=%d11语句printf(”abrehiyboun”);的输出结果是( )。AabrehiybouBabrehiybouCrehiyouDabrehibou12如下程序的输出结果是( )#include <stdio.h>main()int x=1,a=0,b=0;switch(x)case 0:b+;case 1:a+;case 2:a+;b+;printf(“a=%d,b=%dn”,a,b);Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=213如下程序的输出结果是( )。#include <stdio.h>main()float x=2.0,y;if (x<0.0)y=0.0;else if(x<10.0)y=1.0/x;else y=1.0.;printf(“%fn”,y);A0.B0.C0.D1.14如下程序的输出结果是( )#include <stdio.h>main()int a=12,b=5,c=-3;if(a>b)if(b<0)c=0;else c+;printf(“%dn”,c);A0B1C-2D-315阅读以下程序:#include <stdio.h>main()int x;scanf(“%d”,&x);if(x-<5)printf(“%d”,x);else printf(“%d”,x+);程序运行后,如果从键盘输入5,则输出结果是( )。A3B4C5D616以下程序的输出结果是( )。#include <stdio.h>main()int a=15,b=21,m=0;switch(a%3)case 0:m+;break; case 1:m+;switch(b%2)default:m+;case 0m+;break;printf(“%dn”,m);A1B2C3D417下面的程序( )。#include <stdio.h>main()int x=3,y=0,z=0;if(x=y+z)printf(“*”);else printf(“#”);A有语法错误不能通过编译B输出*C可以通过编译,但是不能通过连接,因而不能运行D输出#18两次运行下面的程序,如果从键盘上输入6和4,则输出结果是( )。#include <stdio.h>main()int x;scanf(“%d”,&x);if(x+>5)printf(“%d”,x);else printf(“%dn”,x-);A7和5B6和3C7和4D6和419以下程序的输出结果的是( )。#include <stdio.h>main()int a=-1,b=4,k;k=(+a<0)&&!(b-<=0);printf(“%d%d%d”,k,a,b);A104B103C003D00420能正确表示a10或a0的关系表达式是( )。Aa>=10 or a<=0Ba>=10|a<=0Ca>=10&&a<=0Da>=10|a<=021假定所有变量均已正确说明,下列程序段运行后x的值是( )。a=b=c=0;x=35;if(!a)x-;else if(b);if(c)x=3;else x=4;A34B4C35D322表示关系XYZ的C语言表达式( )。A(X<=Y)&&(Y<=Z)B(X<=Y) and (Y<+Z)C(X<=Y<=Z)D(X<=Y)&(Y<=Z)23如下程序的输出结果是( )。#include <stdio.h>main()int a,b,c=246;a=c/100%9;b=(-1)&&(-1)printf(“%d,%dn”,a,b);A2,1B3,2C4,3D2,-124当a=1、b=3、c=5、d=5时,执行下面的程序段后,x的值为( )。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;A1B2C3D625能正确表示a和b同时为正或同时为负的逻辑表达式是( )。A(a>=0|b>=0)&&(a<0|b<0)B(b>=0&&b>=0)&&(a<0&&b<0)C(a+b>0)&&(a+b<=0)Da*b>026以下程序的输出结果是( )。#include <stdio.h>main()int a=-1,b=1,k;if(+a<0)&&!(b-<=0) printf(“%d %dn”,a,b);else printf(“%d %dn”,b,a);A-1 1B0 1C1 0D0 027下列关于switch语句和break语句的结论中,正确的是( )。Abreak语句是switch语句中的一部分B在switch语句中可以根据需要使用或不使用break语句C在switch语句中必须使用break语句Dbreak语句只能用于switch语句中28设有说明语句“int a=1,b=0;”,则执行了下列语句后,输出为( )。switch(a)case 1:switch (b)case 0:printf(“*0*”);break;case 1:printf(“*1*”)case 2:printf(“*2*”);break;A*0*B*0*2*C*0*1*2*D主语法错误29以下关于运算符优先顺序的描述中正确的是( )。A关系运算符<算术运算符赋值运算符<逻辑运算符B逻辑运算符<关系运算符<算术运算符<赋值运算符C赋值运算符<逻辑运算符<关系运算符<算术运算符D算术运算符<关系运算符<赋值运算符<逻辑运算符30为了避免在嵌套的条件语句if.else中产生二义性,C语言规定:else子句总是与( )配对。A缩排位置相同的ifB其之前最近的ifC其之后的最近的ifD同一行上的if二、填空题:1若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 3 。c=(a-=(b-5);c=(a%11)+(b=3);2表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 x>5|x<-5 。3下列程序的输出结果是16.00,请填空。#include <stdio.h>main()int a=9,b=2;float x= 6.6 。y=1.1,z;z=a/2+b*x/y+1/2;printf(“%5.2fn”,z);4若从键盘输入58,则以下程序输出的结果是 。#include <stdio.h>main()int a;scanf(“%d”,&a);if (a>50)printf(“%d”,a);if (a>40)printf(“%d”,a);if(a>30)printf(“%d”,a);5以下程序输出的结果是 0 。#include <stdio.h>main()int a=5,b=4,c=3,d;d=(a>b>c);printf(“%dn”,d);6以下程序运行后的输出结果是 20,0 。main()int x=0,y=20,t=0;if(x=y)t=x;x=y;y=t;printf(“%d,%dn”,x,y);7设a,b,c为整数,且a=2,b=3,c=4,且执行完语句a*=16+(b+)-(+c);后,a的值是 28 。820<x<30或x<-100的C语言表达式是 (x>20)&&(x<30)|(x<-100) 。9若int i=10;,则执行下列程序后,变量i的正确结果是 13 。switch(i)case 9:i+=1;case 10:i+=1;case 11:i+=1;default: i+=1;10以下程序的输出结果是 2 。#include <stdio.h>main()int x=2,y=-1,z=2;if(x<y)if(y<0)z=0;else z+=1;printf(“%dn”,z);11若运行时输入12,则以下程序的运行结果是 0 。#include <stdio.h>main()int x,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%dn”,y);12设x,y,z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式 x<z|y<z 。13已知A=7.5,B=2,C=3.6,表达式A>B&&C>A|A<B&&!C的值是 0 。14在C语言中,关系运算符的优先级别是 <、>、<=、>=、=、!= 。15在C语言中,逻辑运算符的优先级别是 !、&&、| 。16请写出以下程序的输出结果 1 。#include <stdio.h>int a=100;if(a>100)printf(“%dn”,a>100);elseprintf(“%dn”,a<=100);17请写出以下表达式的等价的表达式 x<=0 1 。!(x>0) !018当a=1,b=2,c=3时,以下语句执行后,a、b、c中的值分别为 3 、 2 、 2 。if(a>c)b=a;a=c;c=b;19若变量已正确定义,以下语句段的输出结果是 *# 。x=0;y=2;z=3;switch(x)case 0:switch(y=2)case 1:print(“*”);break;case 2:print(“%”);break;case 1:switch(z)case 1:print(“$”);case 2:print(“*”);break;defailt:printf(“#”);

    注意事项

    本文(第4章选择结构.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开