二、填空题
10.11 以下程序的输出结果是____。
#include "stdio.h"
main()
{ char b[]="ABCDEFG",*chp=&b[7];
while(--chp>&b[0]) putchar(*chp);
putchar(\’\’\\n\’\’);
}
答案: GFEDCB
10.12 以下程序的输出结果是_____。
#include "stdio.h"
void fun(char *a1,char *a2,int n)
{ int k;
for(k=0; k<n; k++)
a2[k]=(a1[k]-\’\’A\’\’-3+26)%26+\’\’A\’\’;
a2[n]=\’\’\\0\’\’;
}
main()
{ char s1[5]="ABCD",s2[5];
fun(s1,s2,4);
puts(s2);
}
答案:XYZA
10.13 以下程序的输出结果是____。
main()
{ char *p[]={"BOOL","OPK","H","SP"};
int i;
for(i=3; i>0; i--,i--) printf("%c",*p[i]);
printf("\\n");
}
答案:SO
10.14 当运行以下程序时从键盘输入字符串qwerty和abcd,则程序的输出结果是____。
#include "string.h"
#include "stdio.h"
strle(char a[],char b[])
{ int num=0,n=0;
while(*(a+num)!=\’\’\\0\’\’) num++;
while(b[n]) { *(a+num)=b[n]; num++; n++; }
return (num);
}
main()
{ char str1[81],str2[81],*p1=str1,*p2=str2;
gets(p1); gets(p2);
printf("%d\\n",strle(p1,p2));
}
答案:10
10.15 以下程序的输出结果是____。
#include "string.h"
#include "ctype.h"
void fun(char str[])
{ int i,j;
for(i=0,j=0; str[i]; i++)
if(isalpha(str[i])) str[j++]=str[i];
str[j]=\’\’\\0\’\’;
}
main()
{ char ss[80]="It is!";
fun(ss);
printf("%s\\n",ss);
}
答案:Itiss!
10.16 以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。
#include "string.h"
void fun(char str[])
{ int i,j,k;
for(i=0,j=____; i<j; i++,____)
{ k=str[i]; str[i]=str[j]; str[j]=k; }
}
答案:strlen(str)-1j--
10.17 以下程序段的输出结果是_____。
printf("%d\\n",strlen("s\\n\\0160end"));
答案:3
10.18 以下程序段的输出结果是_____。
char s[20]="goodgood!",*sp=s;
sp=sp+2;
sp="to";
puts(s);
答案:goodgood!