举一反三
- 下面程序应能对两个整型变量的值进行交换。以下正确的说法是__________。 int main() { int a=10,b=20; printf("%d,%d",a,b); swap(&a,&b); printf("%d,%d",a,b); return 0; } void swap(int p,int q) { int t; t=p;p=q;q=t; }
- 若有定义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; }
- 以下程序的运行结果是______。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);}
- 有以下程序,swap函数能把两个整数进行交换,参数是两个整数的指针。[br][/br] void swap(int *x,int *y) { int t; //临时保存数据用 } main() { int m=4; int n=10; int *p= ;int *q= ; swap(p,q); printf(“%d,%d\n”,m,n); } 结果是 10 4
- 中国大学MOOC: 下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:After swap 5, 3。void swap( int *p, int *q ){ int t; t=*p; *p=*q; *q=t;}void main( ){ int a=3, b=5; swap(______________________) ; printf(After swap %d, %d, a, b);}
内容
- 0
以下程序的运行结果是( )。#include[stdio.h] int main() { int k=1, j=2, *p, *q, *t; p = &k; q = &j; t = p; p = q; q = t; printf("%d %d", *p, *q); } A: 2 1 B: 2 2 C: 1 1 D: 1 2
- 1
假设 t 是整型变量,下面( )选项可以交换指针 p 和 q 所指的 int 型变量的值。 A: t = p; *p = *q; q = t; B: t = &p; *p = *q; q = *t; C: t = *p; *p = *q; *q = t; D: t = p; p = q; q = t;
- 2
有四组对指针变量进行操作的语句,以下判断正确的选项是( )。 (1)int *p,*q;q=p; int a,*p,*q;p=q=&a; (2)int a,*p,*q;q=&a;p=*q; int a=20,*p;*p=a; (3)int a=b=0,*p;p=&a;b=*p; int a=20,*p,*q=&a;*p=*q; (4)int a=20,*p,*q=&a;p=q; int p,*q;q=&p;
- 3
有以下程序 void f(int *x,int *y) { int t; t=*x;*x=*y;*y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(*p!=*q){f(p,q);p++;q--;} for(i=0;i<8;i++) printf("%d,",a[i]); } 程序运行后的输出结果是______。
- 4
阅读以下程序,其执行结果是_________#include [stdio.h]int main(){ int a,*p,*q; p=&a; q=&a; *p=5%6; *q=5; printf("%d\n",a);}