习题6(第七章)数组 下载本文

【题7.112】下面程序的功能是将字符数组a[6]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’}

变为a[6]= {‘f’,‘a’,‘b’,‘c’,‘d’,‘e’}。请填空。

#include main() { char t,a[6]= {‘a’,‘b’,‘c’,‘d’,‘e’,‘f’}; int i; 【1】; for(i=0;i<5;i++) { 【2】; for(i=0;i<=5;i++) printf(“%c”,a[i]); } }

【题7.113】下面程序的功能是将字符数组a下标值为偶数的元素由小到大排序,其它元素

不变。请填空。

#include main() { char a[]=“labchmfye”,t; int i,j; for(i=0;i<7;i+=2) for(j=i+2;j<9;【1】) if(【2】) { t=a[i]; a[i]=a[j]; a[j]=t; j++; } puts(a); printf(“\\n”); }

则打印ZAB。请填空。 #include main() { char a[3],c; int i; c=getchar(); a[1]=c; if(c==‘Z’) { a[2]=‘A’; 【1】; } else if(c==‘A’) { a[0]=‘Z’; 【2】; } else { a[0]=c-1; a[2]=c+1; } for(i=0;i<3;i++) putchar(a[i]); }

【题7.114】下面程序的功能是在任意的字符串a中将与字符c相等的所有元素的下标值分

别存放在整型数组b中。请填空。

#include main() { char a[80]; int i,b[80],k=0; gets(a); for(i=0;a[i]!=‘’;i++) if(【1】) { b[k]=i; 【2】; } for(i=0;i

【题7.115】有十个字符串。下面程序的功能是在每个字符串中,找出最大字符按一一对应

的顺序放入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符。请填空。

#include main() { char s[10][20]; int a[10],i,j; for(i=0;i<10;i++) gets(s[i]); for(i=0;i<10;i++) { 【1】; for(j=1;s[i][j]!=‘\\0’;j++) if(a[i]

【题7.116】下面程序的运行结果是 。 #include main() { int i; char a[]=“Time”,b[]=“Tom”; for(i=0;a[i]!=‘\\0’&&b[i]!=‘\\0’;i++) if(a[i]==b[i]) if(a[i]>=‘a’&&a[i]<=‘z’) printf(“%c”,a[i]-32); else printf(“%c”,a[i]+32); else printf(“*”);

}

【题7.117】下面程序的运行结果是 。 #include main() { char a[2][6]={“Sun”,“Moon”}; int i,j,len[2]; for(i=0;i<2;i++) { for(j=0;j<6;j++) if(a[i][j]==‘\\0’) { len[i]=j; break; } printf(“%6s:%d\\n”,a[i],len[i]); } }

【题7.118】下面程序的运行结果是 。 #include main() { int i,r; char s1[80]=“bus”; char s2[80]=“book”; for(i=r=0;s1[i]!=‘\\0’&&s2[i]!=‘\\0’;i++) if(s1[i]==s2[i]) i++; else { r=s1[i]-s2[i]; break; } printf(“%d”,r); }

【题7.119】下面程序的运行结果是 。 #include #define LEN 4 main() { int j,c; static char n[2][LEN+1]={“8980”,“9198”}; for(j=LEN-1;j>=0;j--) { c=n[0][j]+n[1][j]-2*‘0’; n[0][j]=c+‘0’; } for(j=0;j<=1;j++) puts(n[j]); }

【题7.120】下面程序的运行结果是 。 #include main() { int i=5; char c[6]=“abcd”; do{ c[i]=c[i-1]; }while(--i>0); puts(c); }

【题7.121】当运行以下程序时,从键盘输入AabD表示回车),则下面程序的运

行结果是 。

#include main() { char s[80]; int i=0; gets(s); while(s[i]!=‘\\0’) { if(s[i]<=‘z’&&s[i]>=‘a’) s[i]=‘z’+‘a’-s[i]; i++; } puts(s); }

【题7.122】下面程序的运行结果是 。 #include main() { char s[]=“ABCCDA”; int k; char c; for(k=1;(c=s[k])!=‘\\0’;k++) { switch(c) { case ‘A’: putchar(‘%’); continue; case ‘B’: ++k; break; default: putchar(‘*’); case ‘C’: putchar(‘&’); continue; } putchar(‘#’);