int m=1,n=2,*p1=&m,*p2=n; printf("%d%d%d%d“,*p1,*p2,*p1=*p1+*p2,*p1=*p1+*p2); 输出结果参考答案是1211,为什么后两个是11呢?发现一个问题,*p1=&m,*p2=n;原题如此我用编辑器运算了一下报错,把*p2=n改成*p2=&n

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 08:06:51
int m=1,n=2,*p1=&m,*p2=n; printf(
xSnA)V48\" #Y)Of0 bLl"$/Twω_H4FEC.gޫWUޠ}c'9>APm ,&Gpݷ]ָwp}1Ip,!nqh)KnIrCHl^Kn w̡q:+nfSFt.YJ-6iI֭BIIK #dVzOʷR%6BؐVS@gV;9c"g[pusCJB\Wx./|x Y#)l^ByN7Z.4 L bפ][ЗX#(t||j 0Tޭq ɠټQf@Q.%ZQV;2DY63B 9ȷ$Poa-n ݇LT}߹ Q-ŕչ/jGH$`etG3'>&TX8(E6ӼsksXpc 1BKBDh٦tM`):nj"X>s"{;~j >;:a~ڼ?Pd'C"\L͌_ JB >O!g)ii5u} h

int m=1,n=2,*p1=&m,*p2=n; printf("%d%d%d%d“,*p1,*p2,*p1=*p1+*p2,*p1=*p1+*p2); 输出结果参考答案是1211,为什么后两个是11呢?发现一个问题,*p1=&m,*p2=n;原题如此我用编辑器运算了一下报错,把*p2=n改成*p2=&n
int m=1,n=2,*p1=&m,*p2=n; printf("%d%d%d%d“,*p1,*p2,*p1=*p1+*p2,*p1=*p1+*p2); 输出结果
参考答案是1211,为什么后两个是11呢?
发现一个问题,*p1=&m,*p2=n;原题如此
我用编辑器运算了一下报错,把*p2=n改成*p2=&n后运行结果是5253
是不是题目出错了呢?
A1211 B1233 C1234 D1235

int m=1,n=2,*p1=&m,*p2=n; printf("%d%d%d%d“,*p1,*p2,*p1=*p1+*p2,*p1=*p1+*p2); 输出结果参考答案是1211,为什么后两个是11呢?发现一个问题,*p1=&m,*p2=n;原题如此我用编辑器运算了一下报错,把*p2=n改成*p2=&n
首先这道题*p2=n是题目错了应该是*p2=&n
其次这道题目的考察是printf函数运算的顺序是从左往右还是从右往左(参数传递的顺序)
这个考察本身就是没有意义的,因为c语言没规定参数传递的顺序(即压栈顺序),这个要看编译器的
心情了,一般都是从右往左.如果lz不小心遇到这种题并且2个答案都有就按从右往左答题吧
最后这道题不管从左往右还是从右往左都不是1211
如果编译器的顺序是从右往左那就是lz看到的结果:5253
如果编译器的顺序是从左往右的话那就是:1235
自己写程序不好写这种有歧义的代码

帮忙看一段程序,我不知道每一步的意思#include#include#includeint m=1;void swap(int *p1,int *p2){ int temp; temp=*p1; *p1=*p2; *p2=temp;}void fill(int *p1,int *p2,int len,int n){ if(len==n-1) { output( #include#includevoid fun (char *w,int n){char s,*p1,*p2;p1=w;p2=w+m-1;while(p1 void fun(char *w,int m) {char s,*p1,*p2;p1=w;p2=w+m-1;#include#includevoid fun (char*w,int m){char s,*p1,*p2;p1=w;p2=w+m-1;while(p1 int m=1,n=2,*p1=&m,*p2=n; printf(%d%d%d%d“,*p1,*p2,*p1=*p1+*p2,*p1=*p1+*p2); 输出结果参考答案是1211,为什么后两个是11呢?发现一个问题,*p1=&m,*p2=n;原题如此我用编辑器运算了一下报错,把*p2=n改成*p2=&n C语言,若有说明:int *p1,*p2,m=5,n; 以下是正确赋值语句的选项是若有说明:int *p1,*p2,m=5,n; 以下是正确赋值语句的选项是(A) p1=&m;p2=&p1;(B)p1=&m;p2=&n; *p1= *p2;(C) p1=&m;p2=p1; (D) p1=&m; *p2 = *p1 ; 若有说明:int *p1,*p2,m=5,n: 以下均是正确 赋值语句的选项是( ) A p1=&m:p2=&p1: B *p1=*p2:C p1=&m:p2=p1 D p1=&m:*p2=*p1: 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是A)p1=&m;p2=&p1; B)p1=&m;p2=&n;*p1=*p2;C)p1=&m;p2=p1; D)p1=&m;*p2=*p1;并说明以上每个选项正确或错误的理由该题在参考书上的答案是选C int f(int m,int n) {if(m==0||n==0)return 1; return_____________; } #define N 20 fun(int a[],int n,int m) {int i; for(i=m;i>n;i--)a[i+1]=a[i]; return m; } void main() #define N 20fun(int a[],int n,int m){int i;for(i=m;i>n;i--)a[i+1]=a[i];return m;}void main(){ int i,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,0,N/2);for(i=0;i int m = 1; int n = 2; double y = 2.0; System.out.println(m + n); //3 System.out.println(m - n); //-1int m = 1;int n = 2;double y = 2.0;System.out.println(m + n); //3System.out.println(m - n); //-1System.out.println(m * n); //2System.out.println(m / n 以下程序执行后a的值是 A)4 B)1 C)0 D)运行时出错,a无定值 main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1=main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf(%d ,a); } #include int gcd(int m,int n) { if(m%n==0) printf(%d ,n); else gcd(n,m%n); } main() { i#includeint gcd(int m,int n){if(m%n==0) printf(%d ,n);elsegcd(n,m%n);} main(){int m,n;scanf(%d%d,&m,&n);printf(%d,gcd(n,m%n));}求m整除n int f(int m,int n) { if(m==0) return 1; if(n==0 || n==m) return 1; return____________________; } #include void f(int *p,int*q); main() {int m=1,n=2,*r=&m; f(r,&n);printf(%d,%d,m,n);}#include void f(int *p,int*q);main(){int m=1,n=2,*r=&m;f(r,&n);printf(%d,%d,m,n);}void f(int *p,int *q){p=p+1;*q=*q+1;}运行后的结果是A 1,3 B 1,2 说说为 求纠错!输入整数 m 和正整数 n ,按下列公式计算 s输入整数 m 和正整数 n ,按下列公式计算 s :s=m-(m+1)+m+2-(m+3)+ …… +(-1)n(m+n) .输入:m 和 n 输出:s #include #include int main(int argc,char *argv[]){int m,n,i int m=1,n=-1;printf(%d ,(m--&++n));输出结果 void main() { int i=50,j=60,*p1=&i,*p2=&j; *p1++; printf(%d ,*p1); (*p1)++; printf(%d ,*p1);为什么不是书上的60,61呢,是不是哪里出错了?void main(){int ARRAY[]={50,60};int *p1=&ARRAY[0],*p2=&ARRAY[1];*p1++;printf(%d ,*p1);(*p1) 为什么输入1得到了2 百思不得其解!//#include int math(n){if (n>=3)return math(n-1)+math(n-2);else if(n=2)return 2;else if(n=1)return 1;}int sum (int n){int m=0;for (;n>0;n--){m+=math(n);}return m;}main(){int i=0;printf(30个数和为:%