首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #include<iostream> using namespace std; int main() { int a=5, b=4, c=3,d=2; if(a>b>c)
有以下程序: #include<iostream> using namespace std; int main() { int a=5, b=4, c=3,d=2; if(a>b>c)
admin
2010-06-06
110
问题
有以下程序: #include<iostream> using namespace std; int main() { int a=5, b=4, c=3,d=2; if(a>b>c) cout<<d<<end1; else if((c-1>=D) ==1) cout<<d+1<<end1; else cout<<d+2<<end1; return O;
选项
A、2
B、3
C、4
D、编译时有错,无结果
答案
2
解析
表面上看,本题很容易得到答案。其实不然,出题者在题中隐藏了一个陷阱。粗心的读者可能会想当然地认为if语句中的条件表达式:a>b>c成立(因为a =5,b=4,c=3)。然后执行if后面的语句,就得到错误答案A) 。
要想正确解答本题,先来了解关系运算符的一些知识:在C++语言中,true(真)是不为0的任何值,而false(假)是0。在使用关系运算符和逻辑运算符的表达式时,若结果为true(真)则返回1,若结果为false(假),则返回的是0。
根据以上知识,第一步来判断if后面的条件表达式(a>b>C) 是否成立,根据运算符的结合性,先计算表达式a>b,因为a=5,b=4,所以可得到答案true,其返回值为 1。再计算表达式1>c,由于c=3,所以可得到答案为false(假),其返回值为0。因此if后面的条件表达式不成立,继续下面的条件判断。第二步,计算else if后面的条件表达式((c-1>=D) ==1),把c=3,d=2代入此条件表达式,可得到答案为true,此条件表达式成立,故执行else if后面的语句,输出结果为3。
转载请注明原文地址:https://kaotiyun.com/show/gqjp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的运行结果是()。#include<stdio.h>voidfun(int*S,int*P){staticintt=3;*p=s[t];t-;}voidmain(){inta□={2,3,4,5},k,x;for(
以下选项中,能用作数据常量的是()。
下列叙述中正确的是()。
定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(i=0;i<3;i++)printf(’’%d’’,x[i][2-i]);
下列关于类、对象、属性和方法的叙述中,错误的是()。
以下选项中不能在C语言程序中用作用户标识符的是()。
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。例如,字符串中的内容为:*******A*B
设二叉树共有150个结点,其中度为1的结点有10个,则该二叉树中的叶子结点数为
一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
下列函数原型声明中错误的是
随机试题
下列观点体现了中国古代“比德说”的是【】
已知向量=(3,-12,4),=(1,0,-2),=(1,3,-4),求在上的投影.
A.平面心肌显像B.动态心电图检查C.运动试验D.超声心动图E.肺通气.灌注扫描阵发性心悸半年,有时伴有无力。首选的检查为
心电图中心房肌除极产生的波是
周航、朱元以色情为诱饵索取、敲诈他人钱财,是构成抢劫罪还是敲诈勒索罪?本案是否应采取公开审判的方式?
( )构成旅客电子客票的报销凭证。
()是指个人理财业务的需求方。
计算:=__________.
言葉というものは、生活と深いかかわりを持っている。動物のラクダは、日本語では「ラクダ」という単語しかない。ところが、アラビア語には、同じラクダを指すのにも、「人が乗るためのラクダ」「荷物を運ぶためのラクダ」など、それぞれ違う単語があるという。①砂
A、赞赏B、羡慕C、无奈D、指责D
最新回复
(
0
)