发布时间 : 星期三 文章C语言程序设计清华大学出版社马秀丽刘志妩科后习题9答案更新完毕开始阅读
习 题 9
一.选择题
9.1 若有定义:intx,*p ? ?()。 (A) p=&x (B) p=x (C) *p=&x (D) *p=*x 9.2 ?后,变量i ?结果 ()。 int i
char*s=″a\\045+045\\b″ for(i=0 *s++ i++) (A) 7 (B) 8 (C) 9 (D) 10 9.3 ?输出结果 ( )。
charst?r[12]={′s′,′t′,′d′,′i′,′o′} printf?(″%d\\n″,strlen?(str)) (A) 5 (B) 6 (C) 11 (D) 12 9.4 ?能 ( )。 int fun(char*x){ char*y=x while(*y++) return? y-x-1 }
(A) ?度 (B) ? 位置
(B) ? 大小 (D)将 x ?接到 y?后面 9.5 ? 后,printf?(″%c″,*(p+5)) 为( )。 charst?r[]=″Hello″ char*p p=str
(A)′o′(B)′\\0′(实际就 空)(C)不 定 (D)′o′ 地址 9.6 有 定义?及语句:
int a[4][5] int (*p)[5]=a
对 组a ? ? ( )。
(A)p+1 (B)*(p+3) (C)*(p+1)[2] (D)*(*p+1)+2. 二 编程题
9.1 编写一 ,判断N×N 为? 。 ?不 对 ?,
?0 。 main(){
int n,*a,i,j,t=0; scanf(\for(i=0;i for(i=0;i (\ (\} 运 结果: 9.2 有一个字符串 ,包含n个字符 ,将字符串从第 i个字符到第 j个字符间的 字符逆置。 代码: .h\ e \void main() {char *s,ch; int i,j; s\\n\scanf(\ (\ scanf(\ %d\for(;i *(s+i)=*(s+j);*(s+j)=ch; (\} 运 结果: 9.3 编写一 ?,对n ? ?空 , 一? (地址) ?始 空 。 NULL 0 # define? NEWSIZ?E 1000/* 大 ? 空 */ E]; static? char *newp=newbuf?;/* ? 始地址 ? */ char *new(n)/*定义 n ? ?空 , 一? (地址)*/ int n; { if(newp+n<=newbuf?+NEWSIZ?E)/* 空 ?*/ { newp+=n;/* 始地址 ?新地方*/ return?(newp-n);}/* n ? 空 ?始地址*/ else return?(NULL);}/* 果 空 ?不 , 空 */ main() { char *p; p=new(100);/* ?100 ? 空? */ (\运 结果: 9.4 题目:有n , 面 ?顺 后移m? 位置,最后m 变?成 最 面 m? . 源代码: main() { [20],n,m,i; s is:\scanf(\ (\scanf(\for(i=0;i scanf(\?[i]); [n-1]); ,n,m); for(i=0;i