found=1; break; } }
if(found==1)
printf(“Search successful! The index is %d:\\n”,mid); else
printf(“Can?t search!\\n”); }
【例4.41】下面程序的运行结果是 。
#include void main() {
char c,s[ ]=”ABCCDA”; int k;
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(?#?); } }
【例4.42】下面程序的运行结果是 。
#include void main() {
int i=0;
char a[ ]=”abm”,b[ ]=”aqid”,c[10]; while(a[i]!=?\\0? && b[i]!=?\\0?) {
if(a[i]>=b[i])
38
c[i]=a[i]-32; else
c[i]=b[i]-32; ++i; }
c[i]=?\\0?; puts(c); }
【例4.43】程序填空,以下程序用于统计字符串中最长单词的长度及其在字符串中的位置,其中单词全由字母组成。
#include int alph(char c) {
if((c>=?a? && c<=?z?) || (c>=?A? && c<=?Z?)) ; else
; }
void main( ) {
static char string[ ]={“I am happy.”}; int len=0,i,length=0,flag=1,p,p1; for(i=0; ; i++) if(alph(string[i])) if(flag) {
p1=i;
; /*将取位置标记flag置为0*/ len++; } else
; /*单词长度增1*/ else {
flag=1;
if(len>length) /*将最大单词长度放入length*/ {
length=len; p=p1; }
len=0; }
printf(“最长的单词:”); for(i=p;i
39
printf(“%c”,string[i]); printf(“\\n”); }
【例4.44】有以下程序,执行后输出结果是 。
#include void main() {
int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0;
for(i=0;i<4;i++) {
for(j=0;j<4;j++) {
if(a[i][j]<0) continue; if(a[i][j]==0) break; s+=a[i][j]; } }
printf(“%d\\n”,s); }
【例4.45】下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。
#include void main() {
int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j;
printf(“array a:\\n”); for(i=0; i<=1; i++) {
for(j=0; ; j++) {
printf(“]”,a[i][j]); ; }
printf(“\\n”); }
printf(“array b:\\n”); for(i=0; ; i++) {
for(j=0; j<=1; j++)
printf(“]”,b[i][j]); printf(“\\n”);
40