若有如下程序:sub(int a,int b,int *z){*z=a+b;return;}main(){int a=1,b=2,c=3,d,e;sub(a,b,&am

题目
若有如下程序:sub(int a,int b,int *z){*z=a+b;return;}main(){int a=1,b=2,c=3,d,e;sub(a,b,&am

若有如下程序: sub(int a,int b,int *z) {*z=a+b; return;} main() {int a=1,b=2,c=3,d,e; sub(a,b,&D) ; sub(c,d,&e); printf("%d",e); } 则程序运行后的输出结果是

A.3

B.4

C.5

D.6

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序的运行结果是

sub(int x,int y,int *z)

{*z=y-x;}

main()

{ int a,b,c;

sub(10,5,&a);

sub(7,a,&b);

sub(a,b,&c);

printf("M,M,M\n",a,b,c);}

A.5,2,3

B.-5,-12,-7

C.-5,-12,-17

D.5,-2,-7


正确答案:B

第2题:

有如下程序:includeint func(int a,int b){return(a+b):}main(){int x=2,y=5,z=8,r; r

有如下程序: #include <stdio.h> int func(int a,int b) { return(a+b):} main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r); } 该程序的输出结果是( )。

A.12

B.13

C.14

D.15


正确答案:D
解析:在表达式r=func(func(x,y),z)中,func(x,y)是第一次调用函数,它的返回值7作为func函数第二次调用的实参,结果为15。

第3题:

阅读下面程序,则程序的执行结果为 【10】 。

#include "stdio.h"

main()

{int a=30,b=20,z;

z=fun(a+b,a-b);

printf("%d\n",z);

}

fun(int a,int b)

{int z;

z=a/b;

return z;

}


正确答案:
5

第4题:

若有以下程序: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。

第5题:

以下程序的运行结果是()。includevoid sub(int x,int y,int*z){*Z=y-x;}void main()

以下程序的运行结果是( )。 #include<iostream.h> void sub(int x,int y,int*z) {*Z=y-x;} void main() {int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); cout<<a<<“,”<<b<<“,”<<c<<endl;}

A.5,2,3

B.-5,-12,-7

C.-5,-12,-17

D.5,-2,-7


正确答案:B
解析: 在C++语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。

第6题:

若有以下程序段:include using namespace std;int main (){ int a[]={1,4,5}; int *p

若有以下程序段: #include <iostream> using namespace std; int main () { int a[]={1,4,5}; int *p=&a[0],x=6, y,z; for (y=0; y<3; y++) z= ( (* (p+y) <x) ? *(p+y) :x); cout<<z<<end1; return 0; } 程序运行后的输出结果是( )。

A.1

B.4

C.5

D.2


正确答案:C
解析:本题考核指针的运算。程序首先定义了一整型数组a,并赋初值1,4,5。即a[0],a[1]和a[2]的值分别为1,4和5。程序还定义了一个整型指针p,并将其初始化且指向数组元素a[0]。在for循环语句中,赋值语句“z=((*(p+y)x)?*(p+y):x);”可等价为“z=(a[y]x)?a[y]:x”。因为表达式中的“*(p+y)=p[y]=a[y]”。for语句每循环一次,就给变量z重新赋值一次,z的值其实就是数组和x相比较,将数组a中的最大值赋给z。当y=2后,退出循环,输出结果是5。

第7题:

有如下程序 int func(int a,int B) { return(a+B) ; } main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r); } 该程序的输出结果是_____。

A.12

B.13

C.14

D.15


正确答案:D
解析:调用函数func(x,y),返回x+y,即7;再调用函数func(7,z),返回7+z,即15。

第8题:

有如下程序

int func(int a,int b)

{ return(a+b);}

main()

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf("%d\n",r);

}

该程序的输出的结果是

A.12

B.13

C.14

D.15


正确答案:D

第9题:

若有如下程序: int sub(int m) { if(m==1||m==0) return 2; else return(sub(m-1)*sub(m-2));} main() { int n; scanf("%d",&n); printf("%d",sub(n)); } 如果从键盘输入4<回车>,则程序运行后的输出结果是( )。

A.8

B.16

C.24

D.32


正确答案:D
解析:本题的sub()函数是一个递归函数,当参数m为1或0时返回2,否则返回sub(m-1)*sub(m-2)。所以sub(4)递推下来就是sub(4)=sub(3)*sub(2)=sub(2)*sub(1)*sub(1)*sub(0)=sub(1)*sub(0)*2*2*2=25(上标)=32。所以正确答案是D。

第10题:

有如下程序:includeint func(int a, int b){return(a+b) ;}void main( ){int x=2,y

有如下程序: #include<iostream.h> int func(int a, int b) { return(a+b) ;} void main( ) { int x=2,y=5,z=8,r; r=func(func(x,y) ,z) ; cout < < r; } 该程序的输出的结果是

A.12

B.13

C.14

D.15


正确答案:D
解析:在语句r=func(func(x, y) ,z) ;中,fun(x, y) 是一次调用函数,它的值作为func另一次调用的实参。注意本题调用两次函数。

更多相关问题