有如下程序 #inc1ude<iostream> using namespace std; int main(){ char a; cin>>a; if(a=’*’)cout<<"***"<<end1,

admin2020-11-11  15

问题 有如下程序
    #inc1ude<iostream>
    using namespace std;
    int main(){
    char a;
    cin>>a;
    if(a=’*’)cout<<"***"<<end1,
    eLse    cout<<"###"<<end1;
    retum 0;
    }
输入字符+时,程序的运行结果是(    )。

选项 A、***
B、###
C、***###
D、无输出

答案A

解析 本题的考点是双分支选择语句的执行流程,答题的关键点在于选择条件的判定。双分支选择语句的执行流程是首先计算if后表达式的值,如果表达式的值为非零,则执行if后面的分支,否则执行与其匹配的else后面的分支。本题执行时虽然输入变量a的值为‘+’,但是在执行if后括号内表达式(a=’*’)的时,由于此表达式为赋值表达式,因此表达式的值为赋值号右边的值’*’,其ASCII码的值非零,执行if后面的输出语句“***”后回车。
转载请注明原文地址:https://kaotiyun.com/show/Hvyp777K
0

最新回复(0)