c语言学习
上机题及知识题
1、下列程序段的输出结果是_______(24)______。
int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2)
printf("%d ",*(p+i));
A. 5 2 B. 5 1 C. 5 3 D. 9 7
2、已知某程序中有声明"int a[4],j;",及语句"for(j=0;j<4;j++) p[j]=a+j",则标识符p正确的声明形式应为为_______ (27) _______。
A. int p[4]; B. int *p[4]; C. int **p[4]; D. int (*p)[4];
3、若有如下声明和语句,则表达式*(*(pt+1)+2)所引用的是_______ (25) _______。
int t[3][3], *pt[3], k;
for(k=0; k<3; k++) pt[k]=&t[k][0];
A. t[2][0] B. &t[2][0] C. t[1][2] D. &t[1][2]
5、若有声明"char a[5] ={'A', 'B', 'C', 'D', 'E'},*p=a,i;",则以下语句中不能正确输出a数组全部元素值的是_______ (26) _______。
A. for(i=0;i<5;i++) printf("%c",a[i]);
B. for(i=0;i<5;i++) printf("%c",*(a+i));
C.for(i=0;i<5;i++) printf("%c",*p++);
D. for(i=0;i<5;i++) printf("%c",*a++);
15、已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};", 若需要引用值为12的数组元素,则下列选项中错误的是_____(27)_____。
A. *(a+2)+3 B. *(*(a+2)+3) C. *(a[2]+3) D. a[2][3]
1、以下程序运行时输出结果为________。
main()
{ int x[4]={1,2,3,5}, *p=x+2,i;
for(i=0;i<2;i++)
printf("%d ",*p++);