单选题下列有关指针的用法中,错误的是(  )。Aint i;int *p=i;Bint i;int *p;i=*p;Cint *p;p=0;Dint i=5;int *p;p=i;

单选题
下列有关指针的用法中,错误的是(  )。
A

int i;int *p=&i;

B

int i;int *p;i=*p;

C

int *p;p=0;

D

int i=5;int *p;p=&i;


参考解析

解析:
A项正确,“int *p=&i;”定义整型指针变量p,初始化指向整型i;B项错误,指针p没有初始化;C项正确,“p=0;”表示p指向内存的地址为0;D项,p存放i的地址。

相关考题:

下列程序段不会发生二义性的是_。 A.int fun(double p){…;} float fun(float p){…;} int x; x=fun(0);B.int fun(float p){…;}float fun(unsigned p){…;} int x; x=fun(0);C.int fun(int i,int j=2){…;}float fun(int i){…;} coutfun(5);D.int fun(int i=2,int j=2){…;} int fun(int *p){…;} coutfun(5);

以下函数返回a所指数组中最小的值所在的下标值 fun(int *a,int n) { int i,j=0,p; p=j for(i=j;i<n;i++) if(a[i]<a[p])______; return(p);} 在横线处应填入的是A.i=pB.a[p]=a[i]C.p=jD.p=i

若有:int i=1000;int *p=i;void*q;q=p;其中,q=p的含义是______。

主程序调用findmax函数求出数组中最大元素在数组中的下标,括号中需填写的内容是 #include<stdio.h> findmax(int*s,int t,int*k) { int p; for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])( );} main() { int a[10],i,k; for(i=0;i<10;i++)scanf("%d",a[i]); findmax(a,10,k); printf("A.k=pB.*k=pC.k=p-sD.*k=p-s

下面程序段的输出结果是( )。 public class Test {public static void main(String args[]){ int[] a=new int[11]; int[] p=new int[4]; int k=5; for(int i= 1 ; i<= 10;i++) a[i]=i; for(int i=1 ; i<=3;i++) p[i]=a[i*i]; for(int i= 1 ;i<=3;i++) k=k+p[i]*2; System.out.println(k); }}A.37B.31C.33D.35

以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n){ int i,j=0,p;p=j;for(i=j;in;i++)if(a[i]a[p]); ________;return(p);}在横线处应填入的是A.i=pB.a[p]=a[i]C.p=jD.p=i

以下程序段是函数返回a所指数组中最小的值所在的下标值,请在下划线处填空。fun(int *a,int n){int i,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p]) 【 】;return(p);}

程序中有如下语句for(int i=0;i<5;i++)cout<<*(p+i<<“,”;能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是( )。A.int*p=a;B.int p=a;C.*p=a;D.p=a;

若有以下程序:includeint a[]={2,4,6,8};main(){int i; int *p=a; for(i=0;i 若有以下程序: #include<stdio.h> int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i<4;i++) a[i]=*p; printf("%d\n",a[2]); } 上面程序的输出结果是( )。A.6B.8C.4D.2

有以下程序fun(int *a,int n) { int i,j=0,p; p=j; for(i=j;in;i++) if(a[i]a[p]) ____; return(p);}在下画线处应填入的是A.i=p B.a[p]=a[i] C.p=j D.p=i

下列程序的输出结果是()。includeint f(int a,int b);main(){int i=2,p,j,k; j=i;k=++i 下列程序的输出结果是( )。 #include <stdio.h> int f(int a,int b); main() { int i=2,p,j,k; j=i; k=++i; p=f(j,k); printf("%d",p); } int f(int a,int b) { int c; if(a>b)c=1; else if(a= =b) c=0; else c=-1; return(c); }A.-1B.1C.2D.编译出错,无法运行

以下程序输出正确的是_______ amovep(int *p,int (*a)[3],int n) { int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++){ *p=a[i][j];p++;} } main() {int *p,a[3][3]={{1,3,5}, {2,4,6}}; p=(int*)mallox(100) amovep)p,a,3); printf("%d%d\n",p[2],p[5]);free(p) }A.56B.25C.34D.程序错误

若有以下程序includeint a[]={2,4,6,8};main(){int i; int *p=a; for(i=0;i 若有以下程序 #include <stdio.h> int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i<4;i++)a[i]=*p; printf("%d\n",a[2]);} 上面程序输出结果是A.6B.8C.4D.2

写出结果void foo(int p1[]){*p1 += 5;}void bar(int p2[]){p2[1] = 15;}void main(){int a[]={3,4,5};int b[]={3,4,5};int *p2;p2=a[1];bar(p2);printf("%i %i %i\n",a[0],a[1],a[2]);p2=b[0];p2++;foo(p2);bar(p2);printf("%i %i %i\n",b[0],b[1],b[2]);}

以下函数返回a所指数组中最大值所在的下标值fun(int *a,int n){ int i,j=0,p; p=j; for(i=j;in;i++) if(a[i]a[p])_________; return(p);}在下画线处应填入的内容是A.i=p B.a[p]=a[i] C.p=i D.p=j

以下函数返回a所指数组中最小的值所在的下标值: fun(int*a,int n) { int i,j=0,P; p=j; for(i=j;in;i++) if(a[i]a[j])____return(p); } 在下划线处应填入的是( )。A.i=PB.a[p]=a[i]C.p=jD.p=i

下面程序的输出结果是( )。 main() { int i=1,p; p=f(i,++i); printf("%d",p); } int f(int a, int b) { int C; if(a>b) C=1; else if(a==b)C=0; else C==-1; return (C); }A.-1B.0C.1D.2

以下程序输出正确的是______。 amovep(int *pint(*a) [3]int n) { int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++){ *p=a[i][j];p++;} } main() {int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc (100); amovep(p,a,3); printf("%d%d\n",p[2]p[5];free(p); }A.56B.25C.34D.程序错误

有以下程序:struct S{int n;int a[20];};void f(struct S*P){int i,j,t;for(i=0;in-1;i++)fo 有以下程序: struct S{int n;int a[20];}; void f(struct S*P) { int i,j,t; for(i=0;i<P->n-1;i++) for(j=j+1;j<P->n-1;j++) if(p->a[i]>p->a[j]) {t=P->a[i];p->a[i]=P->a[j];p->a[j]=t} } main() {int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d",s.a[i]);} 程序运行后的输出结果是( )。A.3B.4C.5D.6

下列有关指针的用法中,错误的是( )。A.int i;int *p=i;B. int i;int *p;i=*p;C. int *p;p=0;D.int i=5;int *p;p=i;

若有以下程序 include int a[ ]={2,4,6,8}; main( ) { int i; int *p=a; for(i=0;i 若有以下程序#include <stdio.h>int a[ ]={2,4,6,8};main( ){ int i;int *p=a;for(i=0;i<4;i++) a[i]=*p;printf("%d\n",a[2]);}上面程序的输出结果是A.6B.8C.4D.2

下列语句中正确的是()。A.int * p;i=8; p=i;B.int * p,i; p=i;C.float * p;int i;p=i=8; p=i;B.int * p,i; p=i;C.float * p;int i;p=(float)i;D.float * p;cout<<* p;

以下函数返回a所指数组中最小的值所在的下标值 fun(int *a,int n) { int i,j=0,p; p=j; for(i=j;i<n;i++) if(a[i]<a[p])______; return(p);} 在下划线处应填入的是A.i=pB.a[p]=a[i]C.p=jD.p=i

以下函数返回a所指数组中最大值所在的下标值: fun(int *a,int n) { int i,j=0,p; p=j; for(i=j;i<n;i++) if(a[i]>a[p])______; return(p); } 在下划线处应填入的内容是( )。A.i=pB.a[p]=a[i]C.p=jD.p=i

假设堆内存分配均成功,则下面程序段完全正确的是()。A、int*p=newint(3);cout;;*p;deletep;B、int*p=newint[5]={1,2,3,4,5};for(inti=0;i;5;i++)cout;;p;delete[]p;C、int*p=newint[5];for(inti=0;i;5;i++,p++){*p=i;cout;;*p;}delete[]p;D、以上程序段均正确

下列不正确的定义是()。A、int*p=i,i;B、int*p,i;C、inti,*p=i;D、inti,*p;

单选题以下选项中,不能对主函数中变量i和j的值进行交换的程序是(  )。A#include stdio.hvoid swap(int *p, int *q){ int *t; *t = *p; *p = *q; *q = *t;}main(){ int i=10, j=20,*a=i,*b=j; swap(a,b); printf(i=%d j=%d,i,j);}B#include stdio.hvoid swap(int *p, int *q){ int t; t = *p; *p = *q; *q = t;}main(){ int i=10,j=20,*a=i,*b=j; swap(a,b); printf(i=%d j=%d,i,j);}C#include stdio.h#include stdlib.hvoid swap(int *p, int *q){ int *t; t = (int *)malloc(sizeof(int)); *t = *p; *p = *q; *q = *t; free(t);}main(){ int i=10,j=20; swap(i,j); printf(i=%d j=%d,i,j);}D#include stdio.hvoid swap( int *p, int *q){ int t; t = *p; *p = *q; *q = t;}main(){ int i=10,j=20,*x=i,*y=j; swap(x,y); printf(i=%d j=%d,i,j);}