以下程序的运行结果是______。voidswap(int**r,int**s){int*t;t=*r;*r=*s;*s=t;}voidmain(){inta=1,b=2,*p,*q;p=&a;q=&b;swap(&p,&q);printf("%d,%d\n",*p,*q);}
举一反三
- 若有定义int a, b;则用( )定义的函数,执行语句swap(&a, &b);后,变量a与b的值没有交换。 A: swap(int *p, int *q) { int *t; t=(int*)malloc(sizeof(int)); //分配4个字节的存储空间给t *t=*p;*p=*q;*q=*t; } B: swap(int*p, int*q) { int t; t=*p;*p=*q;*q=t; } C: swap(int *p, int *q) { int *t; t=p; p=q; q=t; } D: swap(int *p, int *q) { int a, *t=&a; *t=*p; *p=*q; *q=*t; }
- 推理证明下列各题的有效结论。 ⑴p→ (q∨r ), (t∨ s)→p,(t∨ s) q∨r ⑵p∧q, (p? q)→ (t∨ s) (t∨ s)
- 以下程序的运行结果是______。 #include "stdio.h" main() {int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf("%d,%d,%d,%d\n",m,n,*p,*q); }
- 证明: (p∧q)→r,¬r∨s,¬s,p蕴含¬q 过程如下: 证明: ⑴ q P(附加前提) ⑵ ¬r∨s P ⑶ ¬s P ⑷ ¬r T⑵⑶I ⑸ (p∧q)→r P ⑹ ¬(p∧q) T⑷⑸I ⑺ ¬p∨¬q T⑹E ⑻ p P ⑼ ¬q T⑺⑻I ⑽ q∧¬q(矛盾) T⑴⑼I 以上证明方法是用归谬法,证明过程是正确的
- 有以下程序: main() { int a=7,b=8, *p, *q, *r; p=&a; q=&b; r=p; p=q; q=r; printf("%d,%d,%d,%d\n", *p,*q,a,b); } 程序运行后的输出结果是 【1】 。