更多“ 有以下程序:程序运行后的输出结果是( )。A.12B.15C.16D.20 ”相关问题
  • 第1题:

    有以下程序#define F(X,Y)(X)*(Y)main(){ int a=3, b=4; printf("%d\n", F(a++, ++b));}程序运行后的输出结果是A.12 B.15C.16 D.20


    正确答案:B
    本题主要考查宏的定义与替换。在C语言中,源程序允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”都用宏定义中的字符串去代换。
    本题中,程序定义了一个带参数的宏,宏被定义为两个参数的乘积。在主函数中,程序首先定义变量a和b,并分别赋初值为3和4,然后执行输出语句,要求输出的是宏计算的结果,分别用变量a和b作为宏的参数,F(a++, ++b)进行宏替换后为(a++)*(++b),根据自加运算符的特点,结果为3*5=15。因此,程序最后的输出结果是15,本题的正确答案选B。

  • 第2题:

    有以下程序 程序运行后的输出结果是( )。A.程序错无输出结果B.31.5C.7.5SXB

    有以下程序

    程序运行后的输出结果是( )。

    A.程序错无输出结果

    B.31.5

    C.7.5

    D.14.0


    正确答案:A
    宏定义不是c语句,末尾不需要有分号。因此语句“printf(”%4.1f\n”。S(a+b));”展开后为“prinff(”%4.1tXn",3.5;+a+b}a+b;);”,所以程序会出现语法错误。

  • 第3题:

    有以下程序:

    程序运行后的输出结果是( )。


    正确答案:B
    第一次执行外循环,i的值为3,第一次执行内循环j的值为1,j<=2条件成立,打印i+j的值,即4;第二次执行内循环J的值为2,j<=2条件成立,打印i+j的值,即5;再判断条件不成立,打印回车换行符,跳出内循环。第二次执行外循环,i的值为2,内循环的执行同第一次一样,所以打印3和4,打印回车换行,结束内循环。第三次执行外循环i的值为1,同理内循环中打印2和3,打印回车换行符,结束内循环。

  • 第4题:

    有以下程序: 运行后的输出结果是( )。A.MtemoonB.AftemoonC.MorningSXB

    有以下程序:运行后的输出结果是( )。

    A.Mtemoon

    B.Aftemoon

    C.Morning

    D.orning


    正确答案:B
    语句voidfun(char**P)中的形参是一个指向指针的指针,在调用函数fun(a)后,指针数组a加1,

  • 第5题:

    有以下程序 #define F(X,Y)(X)*(Y) main() {int a=3,b=4: printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:此题考查的是编译预处理命令以及自加运算符。F(a++,b++)先取a和b的值,参加运算,再把a和b的值分别加1,所以F(a++,b++)=F(3,4)=3*4=12。