logo资料库

指针习题(C/C++考试复习必备).doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
指针习题 B) scanf(“%d”,a); D) scanf(“%d”,*pa); 1、设有定义:int a,*pa=&a;以下 scanf 语句中能正确为变量 a 读入数据的是( A ) A) scanf(“%d”,pa); C) scanf(“%d”,&pa); 2、若有以下定义和语句 #include int a=4,b=3,*p,*q,*w; p=&a;q=&b;w=p;q=NULL; 则以下选项中错误的语句是(A ) A) *q=0; 3、有以下程序 D) *p=*w; C)*p=a; B) w=p; 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); { } 程序运行以后的输出结果是(C) B) 7,8,7,8 D) 7,8,8,7 A) 8,7,8,7 C) 8,7,7,8 4、程序中对 fun 函数有如下说明 void *fun(); void (*fun)() 此说明的含义是( D ) A) fun 函数无返回值 B) fun 函数的返回值可以是任意的数据类型 C) fun 函数的返回值是无值型的指针类型 D)指针 fun 指向一个函数,该函数无返回值 5、有以下程序 int *f(int *x,int *y) { if(*x<*y) else return x; return y; } main() { int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=f(p,q); printf(“%d,%d,%d\n”,*p,*q,*r); } 执行后输出结果是( B ) C) 8,7,7 B) 7,8,7 A) 7,8,8 D) 8,7,8 6、设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出 x 数组 6 个元素中的值,不能完成此操作的语句是(D) A)for(i=0;i<6;i++) printf(“%2d”,*(p++)); B) for(i=0;i<6;i++) printf(“%2d”,*(p+i)); C) for(i=0;i<6;i++) printf(“%2d”,*p++); D) for(i=0;i<6;i++) printf(“%2d”,(*p)++); 7、有以下程序 main() { int x[8]={8,7,6,5,0,0},*s; s=x+3; printf(“%d\n”,s[2]); } 执行后的输出结果是(B ) A) 随机值 B) 0 C) 5 8、有以下程序段 D) 6 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; A) 5 b 中的值是( D ) D) 9 C) 8 B) 6 9、有以下程序 void fun(int *a,int i,int j) { int t; if(i
指向包含 3 个元素的一维数组的指针变量 A)3 5 5 3 B)5 3 3 5 C)3 5 3 5 D)5 3 5 3 11、有以下程序 main() { int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i<3;i++) if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf(“%d\n”,a[0][1]+a[1][1]+a[1][2]); } 执行后输出结果是( A ) C) 8 A) B) 6 7 D) 无确定值 12、若有以下说明和语句:int c[4][5],(*p)[5];p=c;能正确引用 c 数组元素的是(D ) A) p+1 13、有以下程序 D) *(p[0]+2) C) *(p+1)+3 B) *(p+3) main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i+1; printf(“%d\n”,a[1][2]); } 程序执行以后的输出结果是( B ) A) 3 C) 9 B) 6 D) 7 14、有以下程序 main() { char s[]=“Yes\n/No”,*ps=s; puts(ps+4); *(ps+4)=0; puts(s); } C) n/No B) /No Yes 程序运行后的输出结果是( B ) A) n/No Yes /No 15、有以下程序 main() { Yes /No D) /No /No Yes char str[][20]={“Hello”,”Beijing”},*p=str[0]; printf(“%d\n”,strlen(p+20)); } 程序运行后的输出结果是( C ) D) C) 7 B) 5 20 0 A) 16、有以下程序 main() { char s[]= “ABCD”,*p; for(p=s+1;p
BCD CD D 17、以下程序运行后的输出结果是( g ) main() { char a[]=“Language”,b[]=“Programe”; char *p1,*p2; p1=a;p2=b; for(k=0;k<8;k++) int k; if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k)); } 18、有以下程序 main() { char *p[10]={“abc”, “aabdfg”, “dcdbe”, “abbd”, “cd”}; printf(“%d\n”,strlen(p[4])); } 执行后输出结果是(A) C) 4 A) 2 B) 3 D) 5 19、若有定义:int *p[3];,则以下叙述中正确的是(B) A)定义了一个基类型为 int 的指针变量 p,该变量具有 3 个指针。 B) 定义了一个指针数组 p,该数组含有 3 个元素,每个元素都是基类型为 int 的指针。 C)定义了一个名为*p 的整型数组,该数组含有 3 个 int 类型元素。 D)定义了一个可指向一维数组的指针变量 p,所指一维数组应具有 3 个 int 类型 元素。
分享到:
收藏