更多“执行下面程序中的输出语句后,a的值是 main( ) { int a; cout<<(a=3*5,a*4,a+5); }A.65B.20C.15D. ”相关问题
  • 第1题:

    有以下程序:includemain(){int.a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;*q

    有以下程序: #include <stdio.h> main() {int.a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d %d\n",*p,*q); } 程序运行后的输出结果是( )。

    A.运行后报错

    B.6 6

    C.6 11

    D.5 10


    正确答案:A
    解析:本题中首先定义了一个—维数组a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。所以,4个选项中选项A符合题意。

  • 第2题:

    若有如下变量定义和函数调用语句: inta=5; fun(&A) ; 则执行下面函数后正确的输出结果是( )。 void fun(int*x) { cout<<++*x<<endl; }

    A.3

    B.4

    C.5

    D.6


    正确答案:D
    解析: fun函数中的x参数为整型指针变量。调用fun函数,&a是取a的地址,即将实际参数a的地址传递。函数fun中的*x是变量x所指的存储单元即值5。*运算符的等级高于++,所以先取值5然后加1输出,即为6。

  • 第3题:

    cout<<(a=3*5,a*4,a+5); 执行输出语句后,a的值是20。


    B 解析:本题考查逗号表达式的运算特点。逗号表达式是所有表达式中优先级最低的,从左到右结合,其求解过程是:将逗号表达式各表达式按从左到右的顺序依次求值,并将最右边的表达式结果作为整个逗号表达式的结果。这里考生要注意的是,第二个表达式执行完后,n的值并没有发生变化,依然是15,所以在执行a+5的时候,结果是20,而不是65。有的考生可能误选A。正确答案应是B。

  • 第4题:

    执行下面程序中的输出语句后,a的值是()。includemain(){int a; printf("%d\n",(a=3*5,a

    执行下面程序中的输出语句后,a的值是( )。 #include <stdio.h> main() { int a; printf("%d\n",(a=3*5,a*4));

    A.15

    B.20

    C.10

    D.60


    正确答案:A
    解析:本题考查对逗号运算符的理解。逗号运算符的求解过程是从左至右,依次求解各个表达式的值,所以在该题中,先使a的值等于15,再计算a*4,此时整个表达式的值为60,但a的值并未改变,仍为15。

  • 第5题:

    执行下面程序中的输出语句后,a的值是 main() { int a; cout<<(a=3*5,a*4,a+5); }

    A.65

    B.20

    C.15

    D.10


    正确答案:B
    解析:本题考查逗号表达式的运算特点。逗号表达式是所有表达式中优先级最低的,从左到右结合,其求解过程是:将逗号表达式各表达式按从左到右的顺序依次求值,并将最右边的表达式结果作为整个逗号表达式的结果。这里考生要注意的是,第二个表达式执行完后,n的值并没有发生变化,依然是15,所以在执行a+5的时候,结果是20,而不是65。有的考生可能误选A。正确答案应是B。