内部资料 学习使用 严禁复制 违者必究
A. a[p-a] B. *(&a[i]) C. p[i] D. *(*(a+i))
156、若有定义int *p1,*p2;则指针变量p1、p2不能进行运算的是() A. < B. = C. + D. -
157、以下关于指针概念的叙述中,错误的是()
A. 一个指针变量只能指向同一类型的变量 B. 一个变量的地址称为该变量的指针 C. 两个同类型的指针变量可以作加减运算 D. 任何指针变量都可以与空指针NULL进行比较 158、以下程序段运行后*(p+3)的值为()
char a[]=”good”; char *p; p=a;
A. ?d? B. ?\\0? C. 存放?d?的地址 D. ?0? 159、以下程序段运行后*(++p)的值为()
char a[5]=”work”; char *p; p=a;
A. ?w? B. 存放?w?的地址 C. ?o? D. 存放?o?的地址 160、若有定义:int *p,a=4;p=&a;则以下均代表地址的是() A. a,p B. &a,p C. &a,*p D. a,*p
161、若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是() A. *p=&a;scanf(“%lf”,p); B. *p=&a;scanf(“%lf”,*p); C. p=&a,scanf(“%lf”,*p); D. p=&a;scanf(“%lf”,p);
162、若已定义:int x=12;对①int *p=&x;和②*p=x;这两条语句的正确理解是()
A. 语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p所指向的变量
B. 语句①和②中的*p含义相同,都表示给指针变量赋值
C. 语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p
D. 语句①和②的执行结果都是把变量x的地址赋给指针变量p 163、下面语句正确的是()
A. int *p;*p=20 B. char *s=”abcdef”;printf(“%s\\n”,s);
C. char str[]=”abcd”;str++; D. char str[]={?a?,?b?,?c?};printf(“%s”,str); 164、若有定义int a[2][3],*p=a;则以下不能表示数组元素a[1][2]的是() A. *(a[1]+2) B. *(p[1]+2) C. p[5] D. *(p+5) 165、若已定义:int a=5,*p;且p=&a;则以下表示中不正确的是()
A. &(*p)==&a B. *(&a)==a C. &(*p)==p D. *(p++)==a++
166、若有以下程序段,其中0<=i<4,0<=j<3,则不能正确访问a数组元素的是()
int i,j,(*p)[3];
int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a;
A. *(*(a+i)+j) B. p[i][j] C. (*(p+i))[j] D. p[i]+j 167、以下程序段的运行结果是()
int x[]={2,3,4,5,6,7},*p=x; int i,s=0;
@桢雄友情分享,仅供学习交流使用,不得用于商业用途,否则后果自负
13
内部资料 学习使用 严禁复制 违者必究
for(i=1;i<6;i++) s+=p[i++]; printf(\
A. 12 B. 15 C. 25 D. 27 168、下面程序的运行结果是()
main() {
int x=36,y=63; int *p,*q,*t; p=&x;q=&y; t=p; p=q; q=t;
printf(\}
A. 36,36 B. 63,63 C. 36,63 D. 63,36 169、以下程序段运行后x的值为()
int a[]={1,2,3,4,5,6,7}; int i,x,*p; x=1; p=&a[2];
for(i=0;i<3;i++) x*=*(p+i);
A. 不确定 B. 24 C. 120 D. 60 170、以下程序段运行后x的值为()
int a[]={1,2,3},b[]={4,2,5}; int *p,*q; int i,x; p=a;q=b;
for(i=0;i<3;i++) if(*(p+i)==*(q+i)) x=*(p+i)*2;
A. 2 B. 4 C. 5 D. 不确定 171、以下程序运行结果是()
main() {
相关推荐: