更多“ 有以下程序:程序运行后的输出结果是( ).A.1,3B.2,3C.1,4D.1,2 ”相关问题
  • 第1题:

    有以下程序:

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

    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。

  • 第2题:

    有以下程序:

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

    A.2.3

    B.1,3

    C.1,4

    D.1,2


    正确答案:B
    在f(int+P,int4q)函数中,执行P=P+1是将P所对应的地址加1,而0q=+q+1是将q所指向的n的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。

  • 第3题:

    有以下程序

    程序运行后输出结果是

    A.0,2

    B.0,3

    C.1,3

    D.1,2


    正确答案:D
    本题重点考查while语句,变量a和b分别赋初值为-2和1,while语句的语义是:计算表达式的值,当值为真(非O)时,执行循环体语句。a++即a参与运算后,a的值再自增1。++b即b自增1后再参与其它运算。当表达式的值为0时,退出循环,最后输出a和b的值为1和2。因此D选项正确。

  • 第4题:

    有下列程序: #include<stdi0.h> voidf(int*P,int*q); voidmain( ) (intm=1,n=2,*r=&m; f(r,&n);printf("%d,%d",m,n); } voidf(int*P,int*q)

    {p=p+1;*q=*q+1;} 程序运行后的输出结果是( )。

    A.1,3

    B.2,3

    C.1,4

    D.1,2


    正确答案:A
    A。【解析】本题中子函数f(int*p,*q)的功能是对指针p的值加1,*q的值加1。主函数中调用子函数f(r,&n)时,子函数的执行结果是r值加1,n的值加1。而m的值并没有发生变化,最后程序输出的结果为1,3。所以正确答案为选项A。

  • 第5题:

    有以下程序:

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

    A.1,2,1,2,2,4

    B.1,2,6,6,7,8

    C.1,2,2,4,2,4

    D.1,2,6,6,2,4


    正确答案:A
    全局变量与函数体内局部变量同名时,局部变量会覆盖全局变量,因此在subl()函数内,全局变量m,n是不可见的,在函数suhl()对m,n操作的是局部变量,对全局变量不产生影响。但在sub2()函数内,由于没有和全局变量变量重名,因此在此函数内,m,n是可见的。因此,第一个pfinff()打印的是全局变量m,n,故打印的是l,2,第二个pfinff(),调用suhl(),没有修改全局变量m,n.故打印的是l,2,第三个一村(),之前调用了sub2(),修改了全局变量m,n。因此,打印的是2,4。故答案为A选项。