2022年自学考试《C语言程序设计》练习题及答案17
【2.51】下面程序的输出结果是____。
#include
main()
{int a=1,*p,**pp;
pp=&p;
p=&a;
a++;
printf('%d,%d,%dn',a,*p,**pp);
}
A)2,1,1 B)2,1,2 C)2,2,2 D)程序有错误
【2.52】下面程序的输出结果是____。
main()
{char*alpha[7]={'ABCD','EFGH','IJKL','MNOP','QRST','UVWX','YZ'};
char**p;
int i;
p=alpha;
for(i=0;i<4;i++)
printf('%c',*(p));
printf('n');
}
A)AEIM B)BFJN C)ABCD D)DHLP
【2.53】下面程序的输出结果是____。
#include
char*pp[2][3]={'abc','defgh','ijkl','mnopqr','stuvw','xyz'};
main()
{printf('%cn',***(pp+1));/*①*/
printf('%cn',**pp[0]);/*②*/
printf('%cn',(*(*(pp+1)+1))[4]);/*③*/
printf('%cn',*(pp[1][2]+2));/*④*/
printf('%sn',**(pp+1));/*⑤*/
}
①A)a B)d C)i D)m
②A)a B)d C)i D)m
③A)h B)l C)q D)w
④A)k B)o C)u D)z
⑤A)ijkl B)mnopqr C)stuvw D)xyz
【2.54】下面程序的输出结果是____。
#include'stdio.h'
struct str1
{char c[5];
char*s;
};
main()
{struct str1 s1[2]={{'ABCD''EFGH'},{'IJK','LMN'}};
struct str2
{struct str1 sr;
int d;
}s2={'OPQ','RST',32767};
struct str1*p[2];
p[0]=&s1[0];
p[1]=&s1[1];
printf('%s',++p[1]->s);/*①*/
printf('%c',s2.sr.c[2]);/*②*/
}
①A)LMN B)MN C)N D)IJK
②A)O B)P C)Q D)R
【2.55】以下程序的输出结果是____。
struct st
{int x,*y;
}*p;
int s[]={10,20,30,40};
struct st a[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]};
main()
{p=a;
printf('%dn',++(*(++p)->y));
}
A)10 B)11 C)20 D)21
【2.51】参考答案:C
注释:p是指针,pp是指向指针的指针。
【2.52】参考答案:A
注释:对于指向数组的指针变量可以做下标运算,p和alpha都是指向字符串的首地址,*p取出字符串的第一个字符。
【2.53】参考答案:①D②A③D④D⑤B
注释:pp是一个二维指针数组,pp+1指向数组的第二维,*(pp+1)是第二维的起始地址,**(pp+1)是第二维第一个元素的地址,***(pp+1)是第二维第一个元素的内容,所以,①的参考答案应选D。*(pp+1)+1是第二维第二个元素的地址,*(*(pp+1)+1)是第二维第二个元素,(*(*(pp+1)+1))[4]则是第二维第二个元素所指字符串下标为4的元素,即是字符w,故③应当选D。
【2.54】参考答案:①B②C
【2.55】参考答案:D
热门推荐:
自考有疑问、不知道如何选择主考院校及专业、不清楚自考当地政策,点击立即了解》》
推荐阅读: