C语言第四章选择结构总结.docx

上传人:wux****ua 文档编号:9694438 上传时间:2020-04-07 格式:DOCX 页数:4 大小:34.82KB
返回 下载 相关 举报
C语言第四章选择结构总结.docx_第1页
第1页 / 共4页
C语言第四章选择结构总结.docx_第2页
第2页 / 共4页
C语言第四章选择结构总结.docx_第3页
第3页 / 共4页
点击查看更多>>
资源描述
基本知识点: 关系运算符(小于) (大于) =(大于或等于) =(等于) !=(不等于)在语言中,“等于”关系运算符是双等号“=”,而不是单等号“= ”(赋值运算符)。* 优先级(1)在关系运算符中、 的优先级相同,、!的优先级也相同,且前4个的优先级高于后 2个。 (2)与其它种类运算符的优先级关系关系运算符的优先级,低于算术运算符,但高于赋值运算符。 关系表达式1. 关系表达式的概念用关系运算符将两个表达式连接起来,进行关系运算的式子称为关系表达式。 例如,下面的关系表达式都是合法的:ab,a+bc-d,(a=3)=b,(ab)= =(bc)2. 关系表达式的值逻辑值(非“真”即“假”) 由于语言没有逻辑型数据,所以用整数“1”表示“逻辑真”,用整数“0” 表示“逻辑假”。逻辑运算符和逻辑表达式& 逻辑与(相当于“同时”)| 逻辑或(相当于“或者”) ! 逻辑非(相当于“否定”)例如:假定x=5,则(x=0) & (x10)的值为“真”,(x5)的值为“假”。*优先级 ! 算术运算 关系运算 & | 赋值运算* 逻辑表达式:用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子 称逻辑表达式。在C语言中,用逻辑表达式表示多个条件的组合。例如:判断一个年份是否是闰年的逻辑表达式为: (year%4=0)&(year%100!=0)|(year%400=0) 例如:假设num=12,则: !num的值=0 num=1 numy); Bif (x=y) x+=y; Cif (x!=y) scanf(“%d”, &x) else scanf (“%d”, &y); Dif (xy) x+; y+;解析:本题考查的是if语句的结构问题。if语句要求条件表达式后面跟着一条语句,若有多条语句,则用花括号括起来构成一条复合语句,选项ABD均正确, 选项C中 第一个scanf语句后少分号。因此,正确答案为C。1、执行以下程序段后,w的值为 ( )。(全国计算机二级考试题2008年9月) int w=A,x=14,y=15;w=(x|y)&(wa); A -1 B NULL C 1 D 0解析:本题考查的是逻辑表达式的问题。&运算符两边都为真,表达式才为真;|运算符两边有一个为真,表达式就为真。C语言中任何非0数都表示真,0表示假,因此(x|y)值为真,(wa)成立,也为真,整个表达式(x|y)&(wx)&(b=yz);变量a的值为( ),b值为( )。A 5 B 0 C 1 D 2A 6 B 0 C 1 D 4解析:本题考查的是逻辑表达式的问题。&运算符两边都为真,表达式结果才为真。由于()的优先级最高,因此,先算(a=wx),a的值为假用0表示,因此,&运算符左侧结果为假,对于&运算符来说一旦计算出左侧运算量为假,整个表达式的结果就为假,&运算符右侧的表达式就不再进行运算了,因此,正确答案为B和A。4、以下错误的if语句是( )。Aif (xy); Bif (x=y) x+=y; Cif (x!=y) scanf(“%d”, &x) else scanf (“%d”, &y); Dif (xb) a=b; c=a; if(c!=a) c=b; printf(%d,%d,%dn,a,b,c); 其输出结果是 ( )。(全国计算机二级考试题2008年4月)A 程序段有语法错误 B 3,5,3 C 3,5,5 D 3,5,7解析:本题考查的是if语句的结构问题。属于if(ab)的只有一条语句a=b; 如果含有多条语句,必须用大括号 括起来构成一条复合语句,本题35不成立,所以a=b;不执行;执行后面的语句c=a;c的值变为3,if(c!=a)条件不成立,所以不执行c=b;。因此,正确答案为B。6、C语言对嵌套if语句的规定是:else总是与( )配对。A 其之前最近的if B 第一个if C 缩进位置相同的if D 其之前最近的且尚未配对的if 解析:本题考查的是if语句的嵌套问题。C语言规定else总是与其之前最近的且尚未配对if配对。因此,正确答案为D。7、变量a和b均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是( )。A if(a+); B if(ab&b!=0);C if(ab) a- - D if(by) if (yz) printf(%d,+z); else printf(%d,+y); printf(%dn,x+);程序运行结果是 ( )。(全国计算机二级考试题2008年9月)A 331 B 41 C 2 D 1解析:本题考查的是if、if-else结构及if的嵌套问题。本题含有一个if结构,属于if的语句是一个if-else结构,即if(yy不成立,那么属于if(xy)的语句不执行,直接执行后面的语句printf(“%dn”,x+);输出1(本题还有一个考查点就是+前置后置问题,如果题目改为+x,则输出2)。因此,正确答案为D。9、在下面的四个选项中(其中s1和s2为C语言的语句),只有一个在功能上与其它三个语句不等价,它是( )。Aif(a) s1; else s2; B if(a=0) s2; else s1; C if(a!=0) s1; else s2; D if(a=0) s1; else s2;解析:本题考查的是if语句和关系运算符问题。C语言中规定任何非0数都表示真,0表示假,选项ABC均表示a不等于0执行语句s1,否则执行语句s2,选项D与之相反,因此,正确答案为D。10、下列关于switch语句和break语句的结论中,正确的是( )。Abreak语句是switch语句中的一部分B在switch语句中可以根据需要使用或不使用break语句C在switch语句中必须使用break语句D break语句是switch语句的一部分解析:本题考查的是switch语句和break语句问题。break语句的功能是跳出switch结构和循环结构,break语句本身不是switch语句的一部分,在switch语句中可以根据需要使用或不使用break语句,因此,正确答案为B。11、有以下程序 #include “stdio.h” void main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d,b=%dn”,a,b); 程序的运行结果是( )。(全国计算机二级考试题2008年4月) A a=1,b=0 B a=2,b=2 C a=1,b=1 D a=2,b=1解析:本题考查的是switch语句结构问题。x的值为1,首先匹配到case 1,执行其后的语句switch(y) case 0: a+; break; case 1: b+; break; 由于y的值为0,所以执行case 0后面的a+; break;a的值为1,由于执行break语句,则跳出第二个switch结构,接着执行case 2后面的语句a+; b+; break;所以a的值为2,b的值为1,执行break语句,则跳出第一个switch结构,然后输出结果。因此,正确答案为D。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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