有以下程序段 int a=3,b; b=a+3; { int c=2; a*=c+1; } printf(’’%d\n’’,a); 下面关于此段程序的说法,正确的是( )。

admin2018-03-27  9

问题 有以下程序段
    int a=3,b;
    b=a+3;
    {
    int c=2;
    a*=c+1;
    }
    printf(’’%d\n’’,a);
    下面关于此段程序的说法,正确的是(    )。

选项 A、这段程序的输出是9
B、这段程序中存在有语法错误的语句
C、这段程序的输出是7
D、可执行语句b=a+3后,不能再定义变量c

答案A

解析 C语言中变量的定义可以在复合语句的开头,所以可以定义变量c,选项D错误;此段程序不存在语法错误,选项B错误;C语言中运算符*=(/=、+=、-=),例如a*=b(a/=b、a+=b、a-=b)等价于a=a * b(a=a/b、a=a+b、a=a-b),此段程序开始a=3,b没有赋初值,执行b=a+3后b为6,定义变量c并赋初值2,执行a*=c+1,等价于a=a*(c+1),结果为9,选项A正确,选项C错误;本题答案为A。
转载请注明原文地址:https://kaotiyun.com/show/HqID777K
0

相关试题推荐
最新回复(0)