上课课件下载

Download Report

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