int d=1; fun(int p) {int d=5; d+=p++; printf("%d",d); } main( ) {int a=3; fun(a); d+=a++;printf("最后一句是 printf("%d\n",d);}
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 08:05:13
int d=1; fun(int p) {int d=5; d+=p++; printf("%d",d); } main( ) {int a=3; fun(a); d+=a++;printf("最后一句是 printf("%d\n",d);}
int d=1; fun(int p) {int d=5; d+=p++; printf("%d",d); } main( ) {int a=3; fun(a); d+=a++;printf("
最后一句是 printf("%d\n",d);}
int d=1; fun(int p) {int d=5; d+=p++; printf("%d",d); } main( ) {int a=3; fun(a); d+=a++;printf("最后一句是 printf("%d\n",d);}
d+=p++ 在这里跟d+=p 一样 ++在后面是先使用再自加.
同理,d+=a++; 也一样.
而fun里面的d跟main里面的d是两个完全不一样的东西.fun那个在函数里面定义,使用的范围只在函数里面,是local variable.
main里面那个是全局的d.
另外fun(int p)只传值,就是说,调用fun(a)之后,a的值不会改变.
BTW,为什么你不把程序编译一次然后得出结论呢?
从这个故事中得到的教训是:
1,多余的++不要用.
2,变量不要用这样的a,b,c,d,等简单又容易混淆的.要给个具体的名字.例如student,更好的话加上前序.如指针pStudent,全局变量gStudent等.
其实答案就是5+3 和1+3等于多少.
#include void fun(int p) { int d=2; p=d++; printf(“%d”,p);} main() { int a=1; fun(a); printf(“%d
void fun(int p) { int d=2; p=d++; printf(%d,p); } main() { int a=1; fun(a); printf(%d
,a); }
131 以下程序运行后,输出结果是 A)84 B)99 C)95 D)44 int d=1; fun (int p) { int d=5; d+=p++; printf(int d=1;fun (int p) { int d=5; d+=p++; printf(%d,d); } main() { int a=3; fun(a); d+=a++; printf(%d
,d); }
#include int d=1; void fun (int p) { int d=5 ; d+=p++; printf( %d ,d ) ; }main (){ int a=3 ;fun(a);d+=a++;printf(%d
,d );}
int d=1; fun(int p) {int d=5; d+=p++; printf(%d,d); } main( ) {int a=3; fun(a); d+=a++;printf(最后一句是 printf(%d
,d);}
#includestdio.h fun(int k,int *p) {int a,b;if(k==1||k==2)*p=1;else{fun(k-1,&a);fun(k-2,&b);*p=a+b#includestdio.h fun(int k,int *p){int a,b;if(k==1||k==2) *p=1;else{fun(k-1,&a);fun(k-2,&b);*p=a+b;}}main(){int x;fun(6,&x);printf(%d
,x);}执行
fun(int x) {int p; if(x==0||x==1) return(3); p=x-fun(x-=2); return p; } main() { printf(%d
,fun(fun(int x){int p;if(x==0||x==1) return(3);p=x-fun(x-=2);return p;}main(){ printf(%d
,fun(7));}求输出结果,
#include stdio.hint fun (int k,int *m){if (k%3) *m=k*k;else *m=k/3;}main(){int (*p) (int,int *),m;p=fun;(*P) (78,&m);printf ( %d
,m);}
fun(int k) {if(k>0)fun(k-1) printf(%d,k); } main() {int w=5; fun(w); }
void fun(int *a,int *b) { int *c; c=a;a=b;b=c; } main() { int x=3,y=5,*p=&x,*q=&y; fun(p,q);...void fun(int *a,int *b){ int *c; c=a;a=b;b=c;}main(){ int x=3,y=5,*p=&x,*q=&y; fun(p,q); printf(%d,%d,,*p,*q); fun(&x,&y); prin%d,%d
,*p,*q);}两
fun ( int *p ) { int a=10; p = &a; ++a; } main ( ) { int a=5; fun (&a); printf (%d
,a); }#include fun ( int *p ) { int a=10; p = &a; ++a; } main ( ) { int a=5; fun (&a); printf (%d
,a); }
Int a=1; Int *p; p=&a; printf(“%d
”,*p); 和Int a=1; Int*p; *p=a; printf(“%d
”,*p); ::::
#include int inc(int a){ return(++a); }int multi(int*a,int*b,int*c){ return(*c=*a**b); }typedef int(FUNC1)(int in);typedef int(FUNC2) (int*,int*,int*);void show(FUNC2 fun,int arg1,int*arg2){FUNC1 p=&inc;int temp =p(arg1);fun(&temp,&arg1,arg2);printf(
int fun(static int n) {if(n==1)return 1; else return(n+fun(n-1)); } main() {int x; scanf(%d,&x); int fun(static int n){if(n==1)return 1;elsereturn(n+fun(n-1));}main(){int x;scanf(%d,&x); x=fun(x)+fun(x);printf(%d
,x);}执行程序时,给变量
下面输出结果是多少?怎么得呢?解释清楚点哈#includeint d=1;fun(int p){ static int d=5;d+=p; printf(%d,d);return(d);} main(){ int a=3; printf(%d
,fun(a+fun(d)));}
void main() {int t=1;fun(fun(t));} fun(int h) {stvoid main(){int t=1;fun(fun(t));}fun(int h){static int a[3]={1,2,3}; int k; for(k=0;k
pku poj 1006 总是wrong answer 以下是我的代码,运行的特殊数据都对,不知道哪里错了,#includeusing namespace std;typedef struct pe{int date;struct pe *next;}PEAK;int main(){int fun(int p,int e,int i,int d);int p,e,i,d,j=0,k;PEAK *h
#include int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); }typedef int(FUNC1)(int in); typedef int(FUNC2) (int*,int*,int*); void show(FUNC2 fun,int arg1,int*arg2) { INCp=&inc; int temp =p(arg1)