{ char *item; }
211、下面程序的功能是比较两个字符(即字符数组)串是否相等,若相等则返回1,否则返回0,请填空。 main()
{ char a[6],b[7];
int i;
while(s[i]==t[i]&&s[i]!='\\0') i++; return((s[i]=='\\0'&&____________)?1:0) }
main()
{ char a[6],b[7]; int i;
scanf(\ i=f(a,b);
printf(\}
212、下面程序的运行结果是____________。 #include
{ char *p=s;
while(*p) p++; return(p-s); }
main()
{ char *a=\ int i;
i=s(a);
printf(\}
213、下面程序的运行结果是____________。 #include
{ char *strc(char *strl,char *str2); char
s1[80]=\
29
pt=strc(s1,s2);
printf(\}
char *strc(char *str1,char *str2) { char *p;
for(p=str1;*p!='\\0';p++)
do{ *p++=*str2++;} while(*str2!='\\0'); *p='\\0'; return(str1); }
214、下面程序的运行结果是____________。 #include
fun(char *p1,char *p2,int n) { int i;
for(i=0;i p2[i]=(p1[i]-'A'-3+26)&+'A'; p2[n]='\\0'; } main() { char *s1,s2[5]; s1=\ fun(s1,s2,4); puts(s2); } 215、当运行以下程序时,从键盘输入 apple ( { char *s,c[80]; s=c; gets(s); while((*(++s))!='\\0') if(*s=='a') break; else { s++;gts(s);} puts(s); } 216、下面的程序的运行结果是____________。 printf(\gets(item); delnum(item); printf(\ #include main() { char a[80],b[80],*p=\ int i=0;j=0; while(*p!='\\0') { if(*p>='a'&&*p<='z'){ a[i]=*p;i++;} else { b[j]=*p;j++;} p++; } a[i]=b[j]='\\0'; puts(a); } 217、下面的程序的运行结果是____________。 #include main() { char a[80],b[80],*p=\ int i=0;j=0; while(*p!='\\0') { if(*p>='a'&&*p<='z') {a[i]=*p;i++;} else {b[j]=*p;j++;} p++; } a[i]=b[j]='\\0'; puts(a);puts(b); } 218、当运行以下程序时,从键盘输入6 { char s[]=\ c=getshar(); fun(s,c); puts(s); } fun(char *a,char b) { while(*(a++)!='\\0'); while(*(a-1) 30 } 219、下面程序的运行结果是____________。 #include { int i=0,n=0;char s[80],*p; p=s; strcpy(p,\ for( ;*p!='\\0';P++) if(*p==' ') i=0; else if(i==0) { n++;i=1;} printf(\ } 220、当运行以下程序时,从键盘输入 ASDFGHJ AFH ( { int j; char *s=s1; for( ;*s2!='\\0';s2++) { for(j=0,s1=s;*s1!='\\0';s1++) if(*s1!=*s2) { s[j]=*s1;j++;} } } void main() { char a1[80],a2[80]; gets(a1);gets(a2); fun(a1,a2); puts(a1); } 221、当运行以下程序时,从键盘输入abcdef和ABCD,则下面程序的运行结果是____________。 #include while(*(a+num)!='\\o') num++; while(b[n]){ *(a+num)==b[n];num++;n++;} return mum; } main() { char s1[81],s2[81],*p1= s1,*p2=s2; gets(p1);gets(p2); printf(\} 222、以下程序的功能是按行输出字符串:____________。 main() { char 228、若有定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是8,*(*(a+1)+0)的值是____________。 229、若有以下定义和语句: int *p[3],a[6],i; for(i=0;i<3;i++) p[i]=&a[2*i]; 则*p[0]引用的是a数组元素a[0];*(p[1]+1)引用的是a数组元素____________。 230 、 若 有 定 *str[]={\TH\YSICS\ char **q; int num; q=str; for(num=0;num<5;num++) printf(\} 223、若有以下定义和语句: int a[4]={0,1,2,3},*p; p=&a[1]; 则++(*P)的值是____________。 224、若有定义:int a[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是12,*(a[1]+2)的值是____________。 225、若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是4,*(a+5)的值是____________。 226、若有以下定义和语句: int a[4]={0,1,2,3},*p; p=&a[2]; 则*--P的值是____________。 227、若有以下定义和语句: int s[2][3]={0},(*p)[3]; p=s; 则____________表示数组元素s[1][0]的地址(用p的加法表达式来写)。 义:inta[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[3],k;则下面程序段的输出是____________。 for(k=o;k<3;k++) q[k]=&a[k*4]; printf(\ 231、请完成以下有关数组描述的填空。(1)C语言中,数组名是一个不可改变的地址常量,不能对它进行赋值运算。(2)如int a[10];数组在内存中占用一段连续的存储空间,它的首地址由____________表示。 232、若m数组的元素和它们的值如下所示: 数组元素: m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7] m[8] m[9] 元素中的值: 9 4 12 8 2 10 7 5 1 3 则数组元素m[m[4]+m[8]]的值是8,*m+m[9]的值是12,m[*(m+4)]的值是____________。 233、若有以下定义和语句,则下面各个符号的正确含义分别是:(例如对于符号&a[2][1],应该写成:是数组元素a[2][1]的地址)。 int a[3][4],(*q)[4]; q=a; *(q+2):是数组元素a[2][0]的地址,*(q+1)+2:是数组元素a[1][2]的地址,*q+2:是数组元素____________的地址 234、若有以下定义和语句,在程序中引用数 31 组元素m[i][j]的四种形式 for(i=0;i<2;i++){ for(j=0;j<3;j++) printf(\ printf(\ } q=b; for(i=0;i<3;i++) { for(j=0;j<2;j++) printf(\ printf(\ } } 240、下面程序可通过行指针P输出数组a中任一行任一列元素的值。请填空。 main() { int a[2][3]={2,4,6,8,10,12); int(*p)[3],i,j; p=a; scanf(\0<=1<2,0<=j<3 */ printf(\} 241、下面程序可求出以下方括号内的元素之积。请填空。 [7] 2 1 3 [4] 8 9 2 [6] main() { int x[3][3]={7,2,1,3,4,8,9,2,6}; int s,*p; p=&x[0][0]; s=*p*____________; printf(\} 242、下面程序的运行结果是____________。 main() { int x[]={0,1,2,3,4,5,6,7,8,9}; int s,i,*p; s=0: p=&x[0]; 32 是:*(p+i),p[i],____________和x[i](假设i已正确说明并赋值)。 int x[10],*p;p=x; 235、若有定义:int m[10][6];在程序中引用数组元素m[i][j]的四种形式是:(*(m+i))[j],*(m[i]+j),____________和*(*(m+i)+j)。(假设i、j已正确说明并赋值) 236、若有以下定义和语句,在程序中可通过指针数组pt,用*(pt[i]+j)等四种形式引用数组元素s[i][j](假设i,j已正确说明并赋值);另三种形式分别是:pt[i][j],*(*(pt+i)+j)和____________。 int s[10][6],*pt[10]; for(i=0;i<10;i++) pt[i]=s[i]; 237、若有以下定义和语句,在程序中可通过指针pt,用* (pt[i]+i)等四种形式,引用数组元素x[i][j](假设i、j已正确说明并赋值);另三种形式分别是:p[i][j],*(*(pt+i)+j)和____________。 int x[10][6],(*pt)[6]; pt=x; 238、下面程序的运行结果是____________。 main() { int a[4]={1,3,5,7}; int i,*p; p=a; printf(\ } 239、下面程序是求矩阵A的转置矩阵B,并按矩阵形式打印出两矩阵。请填空。 main() { int a[2][3]={1,2,3,4,5,6},b[3][2]; int(*p)[3],(*q)[2],i,j; p=a;q=b; for(i=0;i<2;i++) for(j=0;j<3;j++) *(*(q+j)+i)=*(*(p+i)+j); p=a; /*

