单选题以下程序输出结果是(  )。A 12,10,14B 12,18,30C 12,6,18D 12,14,30

题目
单选题
以下程序输出结果是(  )。
A

12,10,14

B

12,18,30

C

12,6,18

D

12,14,30

参考答案和解析
正确答案: A
解析:
在程序的入口main函数中,调用add函数,其中第三个参数使用的参数传递机制是传地址方式,当add函数中第三个参数改变时,主函数中这个值也会改变,那么第一次调用add后a=12,所以第二次调用add函数时,a=12,调用结束后b=18,第三次调用后c=30。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序 include main( ) { printf("%d\n",NULL); } 程序运行后的输出结果是

有以下程序

#include <stdio.h>

main( )

{ printf("%d\n",NULL); }

程序运行后的输出结果是

A.0

B.1

C.-1

D.NULL没定义,出错


正确答案:A
解析:因为在头文件stdio.h中,已对NULL作了宏定义,其值为0。

第2题:

以下程序输出结果是():includeusing namespace std;void add(int X,int y,int *z){*z

以下程序输出结果是( ): #include<iostream> using namespace std; void add(int X,int y,int *z) { *z=y+x; } int main() { int a,b,c; add(8,4,&a); add(6,a,&b); add(a,b,&c); cout<<a<<","<<b<<","<<c<<end1; return 0;

A.12,10,14

B.12,18,30

C.12,6,18

D.12,14,30


正确答案:B

第3题:

以下程序的输出结果是【】。 include void main( ) } int a=0; a+=(a=8); cout<

以下程序的输出结果是【 】。

include<iostream.h>

void main( )

}

int a=0;

a+=(a=8) ;

cout<<a;

}


正确答案:16
16 解析:赋值表达式的值就是所赋值变量的值,本题中a+=8相当于a=a+8,对表达式逐步进行求解:a+=(a=8)此时,a的值由于赋值为8,而不是o
a+=8
a=a+8
a=16
注意: 要掌握“+=”等相关运算符的用法。

第4题:

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

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

A.Mtemoon

B.Aftemoon

C.Morning

D.orning


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

第5题:

以下程序的输出结果是( )。 main { int a=3: printf("%d\n",(a+a-=a*a)); }A.-6B.12S

以下程序的输出结果是( )。 main { int a=3: printf("%d\n",(a+a-=a*a)); }

A.-6

B.12

C.0

D.-12


正确答案:D
本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。

第6题:

若有以下程序:include using namespace std;void sub(int x,int y, int *z){ *z = y+

若有以下程序: #include <iostream> using namespace std; void sub(int x,int y, int *z) { *z = y+x; } int main() { int a,b, c; sub (8,4,&a) ; sub (6, a, &b) ; sub(a,b,&c) ; cout<<a<<", "<<b<<", "<<c<<end1; return 0; } 程序运行后的输出结果是( )。

A.12,18,30

B.-12,6,8

C.6,8,10

D.12,-18,16


正确答案:A
解析:本题考核对指针作为函数的参数的理解程度。分析程序:①函数sub()为void型。函数的形参中,z是一个血型的指针变量,因此它只能从实参接收一个血型变量的地址。②在函数sub()体中,语句:“*z=y+x;”的功能是把形参y与x的和值放入形参z所指的存储单元中。③在主函数中,3次调用sub()函数。第一次调用时,把8和4分别传递给形参x和y,把主函数中变量a的地址传递给形参z,这样形参就指向了主函数中的变量a,在sub函数中执行语句“*z=y+x;”后,把12放入z所指的存储单元中,即变量a被赋值12。以此类推,最后b被赋值18,c被赋值30。所以最后输出是12,18,30。

第7题:

以下程序输出的结果是_____。 include void main( ) { int a=5,b=4,c=3,d; d=(a>b>c

以下程序输出的结果是_____。

include<iostream.h>

void main( )

{

int a=5,b=4,c=3,d;

d=(a>b>c) ;

cout < < d;

}


正确答案:×
0 解析:本题的关键在于对变量c的赋值运算:
d=(a>b>c)
d=(5>4>3)
先算5>4,为真,得1,即:d=(1>3) ,此时1>3,为假,得0。

第8题:

以下程序的输出结果是includevoid main( ){char x=040;cout < < (X < < 1) ;}A.100

以下程序的输出结果是 #include<iostream.h> void main( ) { char x=040; cout < < (X < < 1) ;}

A.100

B.80

C.64

D.32


正确答案:C
解析:左移1位,相当于乘以2,题中的 x的值是一个八进制数,转换为十进制数是32,再乘以 2,x的值为64。

第9题:

有以下程序: 程序运行后的输出结果是( )。 A.3,3,3B.2,2,3C.1,2,3

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

A.3,3,3

B.2,2,3

C.1,2,3

D.1,l,3


正确答案:A
根据程序可以分析出系统只分配了一个整型数据的存储空间,把这个空间的地址分别赋给了指针型变量a,b和c。程序利用指针a把数据1写入了该空间,然后利用指针b,把数据2写入该空间,所以原来的1就被覆盖掉了,最后用指针c把数据3写入该空间把数据2覆盖掉了,此空间中最后留有的数据是3。因为3个指针都指向该空间,所以输出数据均为3。

第10题:

有以下程序: 程序运行后的输出结果是( )。A.11,12B.12,13C.13,14SXB

有以下程序:

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

A.11,12

B.12,13

C.13,14

D.14,11


正确答案:B
本题中定义了一个结构体数组dt[2],其中dt[0].x=11,dt[O].y=12,dt[1].x=13,dt[1].y=14。在main函数中指针P指向了结构体数组的第一个元素,因此P一>x值为ll,P_>y值为l2,自加运算的结果分别为12和13。