参考答案和解析
正确答案:A
malloc函数动态分配一个整型的内存空间,然后把函数返回的地址用(ints)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,h,’c都指向刚申请的内存空间。因此只有最后一个赋值语句*c=3的值保留在了该空间内,因为a,b,c三个指针变量均指向该空间,所以打印该空间内的数值均为3,选项A)正确。
更多“有以下程序 程序运行后的输出结果是( )。A.3,3,3B.2,2,3 C.1,2,3 D.1 ”相关问题
  • 第1题:

    有以下程序 程序运行后的输出结果是( )。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;);”,所以程序会出现语法错误。

  • 第2题:

    有以下程序:

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


    正确答案: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,打印回车换行符,结束内循环。

  • 第3题:

    有以下程序

    #include<stdio.h>

    #include<stdlib.h>

    main( )

    {int*a,*b,*c;

    a=b=c=(int*)malloc(sizeof(int));

    *a=1;*b=2,*c=3;

    a=b

    printf(”%d,%d,%d\n”,*a,*b,*c);

    }

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

    A.3,3,3

    B.2,2,3

    C.1,2,3

    D.1,1,3


    正确答案:A
    解析:本题中,首先创建开辟一个动态内存,然后将地址分别存入指针a、b、c中,即a、b、c都指向相同的变量。分别给a、b、C所指的变量赋值,最终a、b、c所指的变量中的值为3,最后打印a、b、c所指的变量的值,即3,3,3。所以选A。

  • 第4题:

    有以下程序

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

    A.1,3,3

    B.1,3.2

    C.1,2,3

    D.3,2,1.


    正确答案:A
    执行(a==1&&b++==2)和b!=2然后输出a、b、CSY别为l、3、3,答案为A)。

  • 第5题:

    有以下程序:

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

    A.1.1.3

    B.2,2,3

    C.1,2,3

    D.3,3,3


    正确答案:D
    maUoc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int{)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。所以只有最后一个赋值语句+C=3的值保留在了该空间内,因为a、b、C三个指针变量均指向该空间,所以打印该空间内的数值为3。