Transcript 上课课件下载
第11章作业 交作业和联系邮件 [email protected] (校内信箱) 上课课件下载 http://www.ccea.zju.edu.cn/clearn/ 1.若有定义“int a[3][4],*p,*q[3];”,且0<=i<3,则错误的赋值语句 是( )。 A.p=a B.q[i]=a[i] C.p=a[i] D. q[i]=&a[2][0] 2.若有下面的程序片段,则对数组元素的错误引用是( )。 int a[12]={0}, *p[3], **pp, i; for(i=0;i<3;i++) p[i]=&a[i*4]; pp=p; A.pp[0][1] B.a[10] C.p[3][1] D.*(*(pp+2)+2) 1 3.void main() { char *alpha[4]={"ABCD","EFGH","IJKL","MNOP"}; char *p; int i; p=alpha[0]; for(i=0;i<4;p=alpha[++i]) printf("%c",*(p)); printf("\n"); } 4.下列程序段的输出是_____。 char *a[2]={"one", "two"}, **p=a; printf("%s,", *(p++)+1); printf("%c\n", **p-1); 2 5.下列程序的输出结果是( )。 #include <stdio.h> void main() { static int a[]={2,4,6,8,10}; static *ptr[]={&a[0],&a[1],&a[2],&a[3],&a[4]}; int **p,i; for(i=0;i<5;i++) a[i]=a[i]/2+a[i]; p=ptr; printf("%d,",*(*(p+2))); printf("%d\n",*(*(p++))); } 3 6.下列程序的输出结果是_________。 # include <stdio.h> #include <string.h> typedef char (*AP)[5]; AP defy(char *p) {int i; for(i=0;i<3;i++) p[strlen(p)]=’A’; return (AP)p+1; } void main( ) { char a[]=”FROG\0SEAL\0LION\0LAMB”; puts(defy(a)[1]+2); } 4 7.下列程序编译后生成 t.exe, 运行 t input output zoo oil 的输 出结果是_______。 void main(int argc, char * argv[ ]) { int k; char *p=argv[1]; for(k=2; k<argc; k++) if(strcmp(argv[k], p)>0) p=argv[k]; printf("%s\n", p); } 5 8.完成以下程序:截取字符s中从第m个位置开始的n个字符,返回 所截字符串的首地址。 static char sub[20]; void main() { static char s[]="goodmoming"; char *cut(char *ss,int m,int n),*p; p=cut(s,3,4); printf(“%s\n”,p); } char *cut(char *ss,int m,int n) {int i; for(i=0;i<n;i++) sub[i]= ; sub[i]='\0'; return ; } 6