C语言辅导资料 下载本文

for(j=0; j<=1; j++) puts(n[j]); }

【例4.38】下面程序的功能是将字符串a中下标值为偶数的元素由小到大排序,其它元素不变。请填空。

#include void main() {

char a[ ]=”labchmfye”,t; int i,j;

for(i=0;i<7;i+=2)

for(j=i+2;j<9; ) if( ) { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(”\\n”); }

【例4.39】有十个字符串,下面程序的功能是在每个字符串中,找出最大字符按一一对应的顺序存入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符。请填空。

#include void main() {

char s[10][20], a[10]; int i,j;

for(i=0; i<10; i++) gets(s[i]);

for(i=0; i<10; i++) {

a[i]=s[i][0] ; for(j=1; s[i][j]!=?\\0?; j++) if(a[i]

for(i=0;i<10;i++)

printf(“%d %c”, i, a[i]); }

【例4.40】若从键盘输入52,则下面程序的运行结果是 。

#include void main() {

int a[8]={6,12,18,42,44,52,67,94}; int low=0,high=7,mid,found=0,x; scanf(“%d”,&x);

37

while((low<=high)&&(found==0)) {

mid=(low+high)/2; if(x>a[mid]) low=mid+1; else if(x

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