int i, k, j;
for ( k=0; s[k]!=?\\0?; k++) { j=0;
while ( s[k]>=a[j] && a[j]!=?\\0? ) j++; for ( ① ) ② ; a[j]=[k]; } puts(a);
}
① A) i=stlen(a)+k; j>=j; i-- B) i=strlen(a); i>=j; i-- C) i=j; i<=strlen(a)+k; i++ D) i=j ; i<=strlen(a); i++
② A) a[i]=a[i+1] B) a[i+1]=a[i] C) a[i]=a[i-1] D) a[i-1]=a[i]
【7.62】下面程序的功能是将已按升序排好的两个字符串a和b中的字符按升序归并到字符串c中。 #include
{ char a[ ]=”acegikm”; char b[ ]=”bdfhjlnpq”; char c[80],*p; int i=0, j=0, k=0;
while ( a[i]!=?\\0? && b[j]!=?\\0? ) { if ( a[i]
else { ② } k++;
} c[k]=?\\0?; if ( ③ ) p=b+j; else p=a+i; strcat( c, p);
puts( c );
}
① A) c[k]=a[i]; i++; B) c[k]=a[j]; i++;
C) c[k]=b[i]; j++; D) c[k]=b[j]; j++;
② A) c[k]=a[i]; i++; B) c[k]=a[j]; i++;
C) c[k]=a[i]; j++; D) c[k]=b[j]; j++;
③ A) a[i]= =?\\0? B) a[i]!=?\\0?
C) a[i-1]= =?\\0? D) a[i-1]!=?\\0?
【7.63】下面程序的功能是将字符串 s中所有的字符’c’ 删除。请选择填空。
#include
for (i=j=0; s[i]!= ?\\0?; i++ ) if ( s[i]!=?c? ) ; s[j]= ?\\0?; puts(s); }
A) s[j++]=s[i] B) s[++j]=s[i] C) s[j]=s[i];j++ D) s[j]=s[i]
【7.64】下面程序的功能是从键盘输入一行字符,统计其中有多少个单词。假设单词之间是以空格分隔。
#include
{ char s[80],c1,c2=’’; int i=0, num=0; gets(s);
while ( s[i]!=’\\0’) { c1=s[i];
if ( i==0 ) c2=’’; else c2=s[i-1]; if ( ) num++; i++; }
printf(“There are %d words.\\n”,num); }
A) c1==’’&&c2==’’ B) c1!=’’&&c2==’’ C) c1==’’&&c2!==’’ D) c1!=’’&&c2!=’’
【7.65】*口袋中有红,黄,蓝,白,黑色彩球各一个,任意从中取出3个,问:可以有多少种不同(顺序
不限)的取法。下列的程序用来输出全部不同的取法,格式为“第1种“---”。注意:程序中的计次是从1开始,而不是从0开始的。
#include
main ( )
{ int i, j, k, m, n, a[100][3]; m=0;
for ( ① ; i<5; i++) for ( j= ② ; j<5; j++) for ( k= ③ ; k<5; k++) { a[m][0]=i; a[m][1]=j; a[m][2]=k; printf (“\\n第-种: “, ④ ); for ( n=0; n<3; n++) switch ( ⑤ )
{ case 0: printf (“RED ”); break; case 1: printf (“YELLOW”); break; case 2: printf (“BLUE ”); break; case 3: printf (“WHITE “); break; case 4: printf (“BLACK “); break; } m++; } }
① A) i=1 B) i=1; C) i=0 D) i=0; ② A) i B) i+1 C) 0 D) 1 ③ A) j B) j+1 C) 0 D) 1 ④ A) i+1 B) j+1 C) k+1 D) m+1
⑤ A) a[m][n] B) a[m][i] C) a[m][j] D) a[m][k]
【7.66】*某人有5张2分的邮票和5张3分的邮票,问使用这些邮票可以组合出多少种不同面值的邮资。(例如:1张2分邮票加1张3分邮票可以组成5分的邮资;3张2分的邮票或2张3分的邮票都可以组成同样的6分邮资。) #include
for ( j =0 ) ② ;j++) {
S = ③ ;
for (k=0; a[k]!=0;k++) if (s==a[k])
④ ;
if ( a[k]==0 && s>0 ) { ⑤ ; n++; } }
prinft ( “\\n%d kinds:”,n): for (k=0;a[k]) printf(“-,”,a[k]); }
① A) i<=2 B) i<2 C) i<=5 D) i<5 ② A) j<=3 B) j<3 C) j<=5 D) j<5
③ A) 5*i+5*j B) 2*i+5*j C) 5*i+3*j D) 2*i+3*j ④ A) a[k]=s B) n=k C) continue D) break
⑤ A) a[k-1]=s B) a[k]=s C) a[k+1]=s D) a[k+2]=s
【7.67】下面的程序是使用冒泡法对输入的10个浮点数从小到大进行排序。排好序的10个数分两行输出。程序如下:
#include
printf (“Input 10 numbers please\\n”); for ( i=0; ② ; i++) scanf (“%f”, &a[i]); printf (“\\n”); for ( i=1; ③ ; i++) for ( j=0; ④ ; j++) if ( ⑤ ) { x=a[j]; ⑥ ; a[j+1]=x; }
printf (“The sorted 10 numbers;\\n”); for ( i=0; ⑦ ; i++ ) { if ( ⑧ )