下列程序的输出结果是________。

下列程序的输出结果是________。
int t(int x,int y,int cp,int dp)
{ cp=x*x+y*y; dp=x*x-y*y; }
main()
{ int a=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d %d\n",c,d); }
A) 16 9 B) 4 3
C) 5 6 D) 25 9
C
为什么是c??

这个答案应该是c,这个程序考察的是对于函数的参数的理解
函数的参数是复制传递,也就是说参数本身的值,被复制后传递给函数里的成员的,函数的调用不能改变外部参数的值的变化
当引用的参数是指针的时候,由于指针指向的地址里的内容的变化会引起外部数据的变化,但是参数的指针仍然是复制传递,指针的地址的值不会因此而改变
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-22
表示压力山大追问

肿么了 跟我一样很莫名吗?

追答

函数的形参是不能返回的,它只在函数范围内有效.除非用指针,通过对指针的内容赋值而取得返回值
方法一:写成2个函数分别返回需要的值
int t_cp(int x,int y);
int t_cp(int x,int y)

方法二,用指针:
int t(int x,int y,int* cp,int* dp)
{*cp=x%y+y*y;*dp=x+x-y*y}
main()
{int a=4,b=3,c=9,d=8;
t(a,b,&c,&d)
printf("%d %d\n",c,d);}

方法三:C++中可以用引用
int t(int x,int y,int& cp,int& dp)

本回答被提问者采纳

以下程序的输出结果是___。 main() { int i,x[9]={9,8,7,6,5,4,3...
答案是 97

以下程序的输出结果是( )。 #include<stdio.h> void main() {int i...
1、以上每个函数都以“f”开头,其代表文件(file)之意,这正与正常数据的输入输出(scanf和printf)函数区分开来;str代表字符串(string)之意,ch则是代表字符(characters);fp代表文件指针(file pointer),而pf代表指向文件的文件指针,即“文件指针指向”(Pointing to file pointer),通常也叫做...

以下程序的输出结果是___. main() { int a=0; a+=(a=8); printf("%d\\...
a=8 a=a+a=8+8=16 很简单

以下程序运行后的输出结果是___main(){inta=23;printf('%d n...
【答案】:2 解析:(a\/3<0?a\/10:a%3),因为a=23;次表达式为三目运算,是说,如果a\/3<0为真,即取值a\/10;反之,取值a%3;但a\/3>0,所以a\/3<0为假,即输出的结果为:a%3的余数,即为2。

以下程序的输出结果是___. #include <stdio.h> main() {int a=2,i...
函数结束也不会销毁,每次进入该函数的时候变量值还是上次函数退出时候的值。静态变量只能初始化一次。)2.a的值是不变的。3.b的值每次加1.4.i=0,1,2,共三个值。每次取值时,都调用下面的函数。5.printf("%d",func(a));中,%d前后没有其他间隔标志,所以,输出的结构是紧密的。

以下程序的输出结果是___. #include <stdio.h> void main( )
a-=c; a=a-c=2 printf("%d,%d,%d,",a,b,c); 输出2,5,1 a+=--c; --c->c=0 a=a+c=2 } b=3,c=-2 printf("%d,%d,%d\\n",a,b,c); 输出2,3,-2 } 所以总共输出2,5,1,2,3,-2

以下程序的输出结果是___。 #include <stdio.h> main() {int k=4,m...
",p); 输出 8 第二次执行func函数 依然传递 4,1 在func函数中,因为m 和i是静态变量,所以这时m=1,i=3 执行 i+=m+1; → i=3+8+1=12;执行 m=i+a+b; → m=12+4+1=17;执行 return(m) →返回 m=17;printf("%d,",p); 输出 17 最后结果为 8 ,17 ...

下列程序的输出结果是( )
标准答案是 A

void fun(int *n) { while((*n)--); printf("%d",++(*n));} void ma...
下列程序的输出结果是__0___原因如下:在main函数中,将&a伪作参数传递给fun(int *n) ,所以指针n指向了a的地址,*n的值即为a的值,也就是100 在fun函数中,while((*n)--);注意,这个while语句后面有一个;分号,所以这一个while循环的作用是:将*n的值循环递减,直到(*n)--的值为0。...

以下程序的输出结果是( )。 #include<stdio.h> void main?
选B,因为++a<0是先加1在比较,所有是false,由于&&截断机制后面就不执行了。

相似回答