【试卷页数】:共88页/预览前10页
【试卷大小】:5.49M
【下载方式】:百度网盘
【 提 取 码】:pytc
【下载地址】:https://www.kaoshiji.cn/jsjkxjs/647.html
教材名称:《C程序设计》
主编:谭浩强
出版社:清华大学出版社
版次:2017年8月第五版
书刊号:ISBN:978-7-302-48144-7
目 录
考试集教材配套题库介绍
一、单项选择题(60题)
二、多项选择题(40题)
三、判断题(40题)
四、填空题(40题)
五、名词解释题(40题)
六、简答题(40题)
七、论述题(15题)
八、材料分析题(5题)
考试集教材配套题库介绍
一、精准匹配教材,一站式学习解决方案
本网站专注于为高等教育教材,提供全章节配套题库服务,完全覆盖教材知识点。题库设计严格遵循教材章节结构,助力学习者系统掌握知识体系。
二、题库核心优势
1.题量丰富,解析详尽
每章独立题库,总计超千道高质量试题。每题均附标准答案+逐题解析,深入剖析考点,帮助学生举一反三。
2.灵活下载,多端适配
支持题库下载,满足打印、笔记等个性化学习需求。配套手机在线刷题小程序,随时随地碎片化学习,自动记录进度与错题。
小程序智能归纳易错题型,针对性强化薄弱环节。限时自测,还原真实考试环境,提升应试能力。
考试集官网[www.kaoshiji.cn]下载试题
关注微信公众号:百业先生,为您提供一站式服务。
扫一扫,码上刷题
考试集,让学习更简单!
第4章试卷-章节练习
第4章选择结构程序设计83
4.1选择结构和条件判断83
4.2用if语句实现选择结构85
4.2.1用if语句处理选择结构举例85
4.2.2if语句的一般形式 87
4.3关系运算符和关系表达式89
4.3.1关系运算符及其优先次序90
4.3.2关系表达式90
4.4逻辑运算符和逻辑表达式90
4.4.1逻辑运算符及其优先次序91
4.4.2逻辑表达式92
4.5条件运算符和条件表达式94
4.6选择结构的嵌套96
4.7用switch语句实现多分支选择结构99
4.8选择结构程序综合举例102
一、单项选择题(60题)
1.在C语言中,用于实现选择结构的语句主要是:
A. for语句
B. while语句
C. if语句和switch语句
D. do-while语句
正确答案:C
解析:在C语言中,实现选择结构的主要语句是if语句和switch语句。for语句、while语句和do-while语句都是用于实现循环结构的。
2.以下哪个运算符的优先级最高?
A. > (大于)
B. == (等于)
C. && (逻辑与)
D. ! (逻辑非)
正确答案:D
解析:在C语言的运算符优先级中,逻辑非运算符(!)的优先级是最高的,其次是关系运算符(如>、==),再次是逻辑与运算符(&&)。
3.表达式5 > 3 && 2 < 4的结果是:
A. 0
B. 1
C. True
D. False
正确答案:B
解析:在C语言中,逻辑表达式的结果是用整数表示的,1表示真(True),0表示假(False)。表达式5 > 3为真,结果为1;2 < 4也为真,结果为1。两者用逻辑与运算符(&&)连接,因为两个操作数都为真,所以整个表达式的结果为真,即1。
4.以下哪个不是C语言中的关系运算符?
A. <=
B. >
C. ==
D. >>>
正确答案:D
解析:C语言中的关系运算符包括<、<=、>、>=、==和!=。>>>不是C语言中的关系运算符,而是某些其他编程语言中的位运算符。
5.下列关于switch语句的描述中,错误的是:
A. switch语句中可以有多个case标签
B. 每个case标签后必须跟一个整数常量或字符常量
C. switch语句中可以没有default标签
D. switch语句的case标签后必须跟break语句,否则程序会出错
正确答案:D
解析:在C语言的switch语句中,case标签后可以不跟break语句。如果不跟break语句,程序将继续执行下一个case标签后的语句,直到遇到break语句或switch语句结束。这并不是一个错误,而是一种编程选择,可以用于实现特定的逻辑。但是,通常为了避免逻辑错误,建议在每个case后都加上break语句。
6.在C语言中,以下哪个表达式可以用来判断变量x是否不等于变量y?
A. x != y
B. x =! y
C. x <> y
D. !(x = y)
正确答案:A
解析:在C语言中,判断两个变量是否不相等使用的是关系运算符!=。选项B中的=!是非法的,C语言中没有这样的运算符;选项C中的<>在某些数据库查询语言中表示不等于,但在C语言中不是合法的运算符;选项D中的!(x = y)实际上是对x = y的结果取反,它判断的是x是否等于y的相反情况,即如果x等于y,则表达式结果为0(假),否则为1(真),但这不是直接判断x不等于y的正确方式。
7.以下哪个逻辑表达式表示“a为真且b为假”或“a为假且b为真”?
A. a && !b || !a && b
B. a || b && !a || !b
C. !(a && b) || (a || !b)
D. a == b
正确答案:A
解析:逻辑表达式a && !b表示“a为真且b为假”,而!a && b表示“a为假且b为真”。将这两个表达式用逻辑或运算符||连接起来,就得到了表示“a为真且b为假”或“a为假且b为真”的逻辑表达式。选项B、C、D都不符合这个逻辑。
8.在C语言中,条件运算符?:的优先级低于以下哪个运算符?
A. ==
B. &&
C. ||
D. !
正确答案:A
解析:在C语言的运算符优先级中,条件运算符?:的优先级低于关系运算符(如==),但高于逻辑运算符(如&&和||)。逻辑非运算符!的优先级是最高的。因此,选项A中的==运算符的优先级高于条件运算符?:。
9.以下哪个if语句的写法是正确的?
A. if (x = 5) { ... }
B. if x == 5 { ... }
C. if (x == 5) { ... }
D. if (x == 5) ...
正确答案:C
解析:在C语言中,if语句的条件必须被括号包围,并且条件后面必须跟随一个语句块(用大括号{}包围)或者一个单独的语句(但通常推荐使用大括号以保持良好的编程习惯)。选项A中使用了赋值运算符=而不是比较运算符==;选项B缺少了括号;选项D缺少了语句块的大括号(虽然在某些情况下可以省略,但通常不推荐这样做)。只有选项C是正确的写法。
10.在使用switch语句时,每个case分支的结束通常通过哪个关键字来跳出switch结构?
A. end
B. break
C. continue
D. return
正确答案:B
解析:在C语言的switch语句中,每个case分支的结束通常通过break关键字来跳出switch结构,以避免执行后续的case分支。如果没有break,程序将继续执行下一个case分支的代码,直到遇到break或者switch语句的结束。选项A中的end不是C语言中的关键字;选项C中的continue用于循环结构中跳过当前迭代并继续下一次迭代;选项D中的return用于从函数中返回。只有选项B是正确的。
11.在C语言中,以下哪个表达式使用了条件运算符(也称为三元运算符)?
A. x > 5 ? printf("x is greater\n") : printf("x is not greater\n");
B. if (x > 5) printf("x is greater\n"); else printf("x is not greater\n");
C. switch (x) { case 5: printf("x is 5\n"); break; default: printf("x is not 5\n"); }
D. while (x > 5) printf("x is greater\n");
正确答案:A
解析:条件运算符(也称为三元运算符)在C语言中的形式是条件 ? 表达式1 : 表达式2。如果条件为真,则计算并返回表达式1的值;如果条件为假,则计算并返回表达式2的值。选项A中的表达式正是使用了条件运算符。选项B使用的是if-else语句,选项C使用的是switch语句,选项D使用的是while循环,它们都不是条件运算符。
12.以下哪个逻辑表达式表示“a和b中至少有一个为真”?
A. a && b
B. a || b
C. !(a && b)
D. !(a || b)
正确答案:B
解析:逻辑运算符||表示逻辑或,它用于连接两个条件,当两个条件中至少有一个为真时,整个表达式就为真。因此,选项B中的表达式a || b表示“a和b中至少有一个为真”。选项A中的a && b表示“a和b都为真”;选项C中的!(a && b)表示“a和b不都为真”,即“a为假或b为假”;选项D中的!(a || b)表示“a和b都不为真”。
13.在C语言的switch语句中,每个case分支后面可以跟随的语句数量是:
A. 只能有一个
B. 可以有多个,但必须用大括号括起来
C. 可以有多个,且不需要用大括号括起来
D. 最多只能有两个
正确答案:C
解析:在C语言的switch语句中,每个case分支后面可以跟随多个语句,这些语句不需要用大括号括起来。当程序执行到某个case分支时,它会从该分支的第一个语句开始执行,一直执行到遇到break语句、switch语句的结束或者下一个case标签为止。因此,选项C是正确的。
14.下哪个表达式使用了关系运算符来比较两个变量x和y的大小关系?
A. x = y
B. x == y
C. x > y
D. x && y
正确答案:C
解析:关系运算符用于比较两个值之间的大小关系。选项A中的x = y是一个赋值表达式,不是比较;选项B中的x == y使用了关系运算符==来比较x和y是否相等;选项C中的x > y使用了关系运算符>来比较x是否大于y;选项D中的x && y使用了逻辑运算符&&来进行逻辑与运算,不是比较大小。因此,选项C是正确的。
15.在C语言中,以下哪个语句可以用来实现“如果x大于0,则y等于1;否则,y等于-1”的逻辑?
A. y = (x > 0) ? 1 : -1;
B. if (x > 0) y = 1; else y = -1;
C. switch (x > 0) { case 1: y = 1; break; default: y = -1; }
D. y = x > 0 ? 1 : -1;
正确答案:A
解析:选项A和D都使用了条件运算符(三元运算符)来实现给定的逻辑。选项B使用了if-else语句,也是正确的实现方式,但题目要求选择单个语句,所以B不是最佳答案。选项C尝试使用switch语句来实现,但switch语句通常用于处理多个离散的整数值,而不是布尔表达式的结果,因此C不是正确的实现方式。在单选的情况下,我们选择A作为正确答案。
16.在C语言中,若希望通过一个语句根据条件x > 10来设置变量y的值为1或0,应使用以下哪个表达式?
A. y = x > 10 ? 1 : 0;
B. y = (x > 10) ? 1, 0;
C. if (x > 10) y = 1; else y = 0;
D. y = x > 10;
正确答案:A
解析:选项A正确地使用了条件运算符(三元运算符)? :来根据条件x > 10设置y的值为1或0。选项B的语法是错误的,条件运算符后面应该跟两个表达式,用冒号:分隔,而不是逗号,。选项C虽然逻辑上是正确的,但它使用了if-else语句,而不是单个表达式。选项D虽然简洁,但它将关系表达式x > 10的结果(布尔值)直接赋给了y,在C语言中,布尔值通常被当作整数处理(非0表示真,0表示假),但这种方式不如选项A明确。
17.在C语言的switch语句中,每个case后面跟随的:
A. 只能是一个常量或常量表达式
B. 可以是任意表达式
C. 可以是变量
D. 可以是另一个switch语句
正确答案:A
解析:在C语言的switch语句中,每个case后面必须跟随一个常量或常量表达式,这个常量或常量表达式通常是一个整数(或可以隐式转换为整数的类型)。在程序执行时,switch语句会将表达式的值与每个case后面的常量或常量表达式进行比较,如果匹配,则执行该case分支的代码。选项B、C、D都是错误的,因为case后面不能跟随任意表达式、变量或另一个switch语句。
18.以下哪个逻辑表达式表示“a、b、c三个变量中至少有一个为真”?
A. a && b && c
B. a || b || c
C. !(a && b && c)
D. !(a || b || c)
正确答案:B
解析:逻辑运算符||表示逻辑或,它用于连接多个条件,当这些条件中至少有一个为真时,整个表达式就为真。因此,选项B中的表达式a || b || c表示“a、b、c三个变量中至少有一个为真”。选项A中的a && b && c表示“a、b、c三个变量都为真”;选项C中的!(a && b && c)表示“a、b、c三个变量不都为真”;选项D中的!(a || b || c)表示“a、b、c三个变量都不为真”。
19.在C语言中,关系运算符的优先级:
A. 高于算术运算符
B. 低于算术运算符
C. 高于逻辑运算符
D. 低于逻辑运算符
正确答案:B
解析:在C语言的运算符优先级中,关系运算符(如==、!=、>、<等)的优先级低于算术运算符(如+、-、*、/等)。同时,关系运算符的优先级也高于逻辑运算符(如&&、||、!等)。因此,选项B是正确的。
20.在C语言中,以下哪个选项正确地描述了if语句的一般形式?
A. if (条件) 语句; else 语句;
B. if 条件 语句 else 语句
C. if (条件) { 语句 } else { 语句 }
D. if 条件 { 语句 } else { 语句 }
正确答案:C
解析:在C语言中,if语句的一般形式是用圆括号括起条件表达式,后跟要执行的语句(可以是单条语句,也可以是用大括号括起的语句块),如果需要else分支,则在if语句之后使用else关键字和相应的语句(同样可以是单条语句或语句块)。选项A缺少了else分支的大括号(虽然在某些情况下可以省略,但不是一般形式),选项B缺少了条件的圆括号,选项D同样缺少了条件的圆括号。只有选项C正确地描述了if语句的一般形式。
21.在C语言中,逻辑运算符&&表示:
A. 逻辑或
B. 逻辑与
C. 逻辑非
D. 逻辑异或
正确答案:B
解析:在C语言中,逻辑运算符&&表示逻辑与运算,当且仅当两个操作数都为真时,结果才为真。选项A表示逻辑或运算的是||,选项C表示逻辑非运算的是!,选项D表示逻辑异或运算在C语言中并没有直接的运算符(通常需要通过组合逻辑运算符来实现)。
22.以下哪个表达式使用了关系运算符来比较两个整数a和b是否相等?
A. a = b
B. a == b
C. a != b
D. a > b
正确答案:B
解析:在C语言中,关系运算符==用于比较两个值是否相等。选项A中的a = b是一个赋值表达式,它将b的值赋给a,而不是比较它们是否相等。选项C中的a != b使用了关系运算符!=来比较a和b是否不相等。选项D中的a > b使用了关系运算符>来比较a是否大于b。只有选项B正确地使用了关系运算符==来比较两个整数a和b是否相等。
23.在C语言的switch语句中,case标签后面跟随的是:
A. 一个整数常量或常量表达式
B. 一个任意的表达式
C. 一个变量
D. 一个语句
正确答案:A
解析:在C语言的switch语句中,case标签后面必须跟随一个整数常量或可以隐式转换为整数的常量表达式。在程序执行时,switch语句会将表达式的值与每个case标签后面的常量或常量表达式进行比较,如果匹配,则执行该case分支的代码。选项B、C、D都是错误的,因为case标签后面不能跟随任意的表达式、变量或语句。
24.以下哪个选项正确地描述了条件运算符(也称为三元运算符)的语法?
A. 条件 ? 表达式1, 表达式2
B. 条件 : 表达式1 ? 表达式2
C. 条件 ? 表达式1 : 表达式2
D. 条件 : 表达式1, 表达式2
正确答案:C
解析:在C语言中,条件运算符(也称为三元运算符)的语法是条件 ? 表达式1 : 表达式2。如果条件为真,则计算并返回表达式1的值;如果条件为假,则计算并返回表达式2的值。选项A、B、D的语法都是错误的,它们都不符合条件运算符的正确形式。只有选项C正确地描述了条件运算符的语法。
25.在C语言中,以下哪个选项描述了if语句的完整结构,包括可能的else部分?
A. if (条件) 语句;
B. if (条件) 语句 else 语句;
C. if 条件 语句 else if 条件 语句
D. if (条件) { 语句块 } else { 语句块 }
正确答案:D
解析:选项D描述了if语句的完整结构,包括条件判断、执行的语句块(用大括号括起),以及可能的else部分,其中也包含了执行的语句块。选项A只描述了if语句的基本形式,没有包括else部分,且语句没有用大括号括起,可能只适用于单条语句的情况。选项B虽然包括了else部分,但同样没有使用大括号,可能引发歧义。选项C的语法是错误的,else if应该写作else if (条件) 语句,并且缺少了大括号来明确语句块。
26.在C语言中,关系运算符>=用于比较两个操作数的关系,其含义是:
A. 大于
B. 小于
C. 大于或等于
D. 小于或等于
正确答案:C
解析:关系运算符>=在C语言中用于比较两个操作数是否大于或等于的关系。选项A表示的是大于关系,对应的关系运算符是>;选项B表示的是小于关系,对应的关系运算符是<;选项D表示的是小于或等于关系,但对应的关系运算符是<=,而不是>=。只有选项C正确地描述了关系运算符>=的含义。
27.以下哪个逻辑表达式表示“变量x不等于0且变量y大于5”?
A. x != 0 || y > 5
B. x != 0 && y > 5
C. !(x == 0 && y <= 5)
D. !(x != 0 || y > 5)
正确答案:B
解析:在C语言中,逻辑运算符&&表示逻辑与,用于连接两个条件,当两个条件都为真时,整个表达式才为真。选项B中的表达式x != 0 && y > 5正确地表示了“变量x不等于0且变量y大于5”的逻辑关系。选项A使用了逻辑或运算符||,表示的是“变量x不等于0或者变量y大于5”。选项C虽然使用了逻辑非运算符!和逻辑与运算符&&,但它表示的是“变量x等于0且变量y小于等于5”的否定,即“变量x不等于0或变量y大于5”,与题目要求不符。选项D同样使用了逻辑非运算符!,但它表示的是“变量x不等于0或者变量y大于5”的否定,即“变量x等于0且变量y小于等于5”,也与题目要求不符。
28.在C语言的switch语句中,break语句的作用是:
A. 退出switch语句
B. 跳转到case标签
C. 跳转到default标签
D. 结束整个程序
正确答案:A
解析:在C语言的switch语句中,break语句的作用是退出switch语句,即结束switch语句的执行,并跳转到switch语句之后的代码继续执行。如果没有break语句,程序将继续执行下一个case或default分支的代码,直到遇到break语句或switch语句结束。选项B、C、D都是错误的,因为break语句并不跳转到case标签、default标签或结束整个程序。
29.以下哪个选项正确地使用了条件运算符(也称为三元运算符)来根据变量x的值设置变量y的值?
A. y = x > 0 ? 1, 0;
B. y = (x > 0) ? 1 : 0;
C. y = x > 0 ? (1 : 0);
D. y = x > 0 : 1 ? 0;
正确答案:B
解析:条件运算符的语法是条件 ? 表达式1 : 表达式2。选项B中的表达式(x > 0) ? 1 : 0;正确地使用了条件运算符,如果条件x > 0为真,则y的值为1;否则,y的值为0。选项A中的逗号,是多余的,应该使用冒号:来分隔两个表达式。选项C中的括号使用是错误的,应该将条件运算符的整个表达式括起来,而不是只括起其中一个表达式。选项D的语法是完全错误的,它不符合条件运算符的正确形式。
30.在C语言中,如果要在if语句中执行多条语句,应该使用哪种语法结构来包含这些语句?
A. 圆括号()
B. 花括号{}
C. 方括号[]
D. 尖括号<>
正确答案:B
解析:在C语言中,如果要在if语句(或其他控制结构如for、while等)中执行多条语句,应该使用花括号{}来将这些语句包含成一个语句块。圆括号()通常用于包围条件表达式或函数调用参数,方括号[]用于定义数组或访问数组元素,尖括号<>在C语言中并不用于此目的(在某些其他语言中可能用于表示泛型或模板)。因此,选项B是正确的。
31.关系运算符<=在C语言中的含义是:
A. 小于
B. 大于
C. 小于或等于
D. 大于或等于
正确答案:C
解析:关系运算符<=在C语言中用于比较两个操作数的大小关系,表示“小于或等于”。选项A表示的是小于关系,对应的关系运算符是<;选项B表示的是大于关系,对应的关系运算符是>;选项D表示的是大于或等于关系,对应的关系运算符是>=。因此,选项C是正确的。
32.以下哪个逻辑表达式表示“变量a和变量b都大于0”?
A. a > 0 || b > 0
B. a > 0 && b > 0
C. !(a <= 0 || b <= 0)
D. a > 0 && b <= 0
正确答案:B
解析:逻辑运算符&&表示逻辑与,用于连接两个条件,当两个条件都为真时,整个表达式才为真。选项B中的表达式a > 0 && b > 0正确地表示了“变量a和变量b都大于0”的逻辑关系。选项A使用了逻辑或运算符||,表示的是“变量a或变量b(或两者都)大于0”。选项C虽然使用了逻辑非运算符!,但它表示的是“变量a小于等于0或变量b小于等于0”的否定,即“变量a大于0且变量b大于0”,虽然意思相同,但形式不是最直接的。选项D的表达式逻辑是错误的,它表示的是“变量a大于0且变量b小于等于0”,与题目要求不符。
33.在C语言的switch语句中,default分支的作用是:
A. 必须存在,用于处理所有未匹配的case
B. 可选存在,用于处理所有未匹配的case
C. 必须存在,且只能出现在switch语句的最后
D. 可选存在,且可以出现在switch语句的任意位置
正确答案:B
解析:在C语言的switch语句中,default分支是可选的,用于处理所有未匹配的case。如果switch语句中的case标签没有覆盖所有可能的情况,那么default分支将被执行。default分支可以出现在switch语句的任意位置,但通常为了清晰起见,会将其放在最后。选项A和C都是错误的,因为default分支不是必须存在的,而且即使存在,也不一定要放在最后。选项D也是错误的,因为虽然default分支可以出现在任意位置,但这不是其主要特征,其主要特征是处理未匹配的case。
34.以下哪个选项正确地使用了条件运算符来根据变量x的奇偶性设置变量y的值(假设x为整数,y为字符型,'Y'表示真,'N'表示假)?
A. y = x % 2 == 0 ? 'Y' : 'N';
B. y = (x % 2) == 0 ? 'Y', 'N';
C. y = x % 2 = 0 ? 'Y' : 'N';
D. y = x % 2 == '0' ? 'Y' : 'N';
正确答案:A
解析:条件运算符的语法是条件 ? 表达式1 : 表达式2。选项A中的表达式x % 2 == 0 ? 'Y' : 'N';正确地使用了条件运算符,如果条件x % 2 == 0(即x是偶数)为真,则y的值为'Y';否则,y的值为'N'。选项B中的逗号,是多余的,应该使用冒号:来分隔两个表达式。选项C中的等号=是赋值运算符,而不是比较运算符,应该使用==来进行比较。选项D中的比较是错误的,x % 2的结果是整数,不能与字符'0'进行比较。因此,选项A是正确的。
35.在C语言中,if语句可以与哪种语句结合使用来形成多分支选择结构?
A. for语句
B. while语句
C. else if语句
D. do-while语句
正确答案:C
解析:在C语言中,if语句可以与else if语句结合使用来形成多分支选择结构。这种结构允许根据多个条件来执行不同的代码块。for语句和while语句是循环控制结构,不是用于选择结构的。do-while语句也是循环控制结构,同样不适用于此。因此,选项C是正确的。
36.关系运算符!=在C语言中的含义是:
A. 等于
B. 不等于
C. 大于
D. 小于
正确答案:B
解析:关系运算符!=在C语言中用于比较两个操作数是否不相等。如果两个操作数不相等,则条件为真。选项A表示的是等于关系,对应的关系运算符是==;选项C表示的是大于关系,对应的关系运算符是>;选项D表示的是小于关系,对应的关系运算符是<。因此,选项B是正确的。
37.以下哪个逻辑表达式表示“变量a大于0且变量b小于等于5或者变量c等于10”?A. (a > 0 && b <= 5) || c = 10
B. a > 0 && b <= 5 || c == 10
C. a > 0, b <= 5 || c = 10
D. a > 0 && (b <= 5 || c == 10)
正确答案:B
解析:逻辑运算符&&表示逻辑与,||表示逻辑或。选项B中的表达式a > 0 && b <= 5 || c == 10正确地表示了“变量a大于0且变量b小于等于5或者变量c等于10”的逻辑关系。选项A中使用了赋值运算符=而不是比较运算符==,这是错误的。选项C中使用了逗号,而不是逻辑运算符来连接条件,这也是错误的。选项D的括号使用不正确,它改变了原表达式的逻辑意义,表示的是“变量a大于0且(变量b小于等于5或者变量c等于10)”,这与题目要求不符。因此,选项B是正确的。
38.在C语言的switch语句中,每个case分支通常以什么关键字结束,以避免执行后续的case分支?
A. end
B. break
C. continue
D. return
正确答案:B
解析:在C语言的switch语句中,每个case分支通常以break关键字结束。这样可以避免执行后续的case分支,直接跳出switch语句。如果省略了break关键字,程序将继续执行下一个case分支的代码,直到遇到break关键字或switch语句结束。选项A的end关键字在C语言中并不用于此目的;选项C的continue关键字用于循环控制结构,不是用于switch语句的;选项D的return关键字用于从函数中返回,也不是用于switch语句的。因此,选项B是正确的。
39.以下哪个选项正确地使用了条件运算符来根据变量x的值判断其正负并设置变量y为相应的字符串值("positive"表示正数,"negative"表示负数)?
A. y = x > 0 ? "positive" : "negative";
B. y = x > 0 ? "positive", "negative";
C. y = (x > 0) ? "positive" : (x < 0) ? "negative" : "";
D. y = x > 0 ? "positive" : x < 0 ? "zero" : "negative";
正确答案:A
解析:条件运算符的语法是条件 ? 表达式1 : 表达式2。选项A中的表达式x > 0 ? "positive" : "negative";正确地使用了条件运算符,如果条件x > 0为真,则y的值为"positive";否则,y的值为"negative"。选项B中的逗号,是多余的,应该使用冒号:来分隔两个表达式。选项C虽然使用了条件运算符,但它包含了一个额外的条件判断,且当x等于0时,y的值为空字符串"",这与题目要求不符。选项D中的表达式逻辑是错误的,当x小于0时,无论x是否等于0,y的值都会被设置为"zero",这与题目要求不符。因此,选项A是正确的。
40.在C语言中,以下哪个选项正确地描述了if语句的一般形式?
A. if (条件) 语句;
B. if 条件 语句
C. if (条件) {语句}
D. if 条件 {语句}
正确答案:A
解析:在C语言中,if语句的一般形式是if (条件) 语句;。这里,条件是一个表达式,如果其值为真(非零),则执行随后的语句。选项A正确地描述了这种形式。选项B缺少了括号,是错误的。选项C虽然使用了花括号,但这不是if语句的一般形式,而是当需要执行多条语句时的一种常见扩展形式。选项D同样缺少了括号,也是错误的。因此,选项A是正确的。
下载地址
同类推荐
第10章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏第9章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏第8章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏第7章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏第6章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏第5章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏第3章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏第2章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏第1章试卷《C程序设计》谭浩强主编教材-清华大学出版社-2017年8月第五版-ISBN:978-7-302-48144-7-章节练习题库
加入收藏