填空题

从键盘输入一组小写字母,保存在字符数组str中。请补充函数fun(),该函数的功能是:把字符数组str中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。 例如,输入“acegikm”,输出“aCeGiKm”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> #define N 80 void fun (char s[]) { int i=0; while ( 【1】 ) { if (i%2!=0) s[i]-= 【2】 ; 【3】 ; } } main () { char str [N]; clrscr (); printf("\n Input a string:\n"); gets (str); printf("\n*** original string ***\n"); puts (str); fun (str); printf ("In*** new string ***\n"); puts (str); }

【参考答案】

[1] s[i]!= ’\0’或s[i] [2] 32 或’a’-’A’ [3] i++
热门 试题

填空题
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前叫m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include <conio.h>#include <string.h>#include <stdio.h>#include <alloc.h>#define N 10typedef struct ss{char num[10];int s;} STU;STU *fun{STU a[], int m){ STU b[N] ,*t;int i, j,k; *************found************** *t=calloc (m, slzeof (STU));for(i=0;i<N;i++) b[i]=a[i];for(k=0; k<m; k++){ for (i=j=0;i<N;i++)if (b[i].s>b[j].s) j=i; *************found************** t[k].num=b [j].num;t[k].s=b[j] s;b[j].s=0;}return t;}outresult(STU a[],FILE *pf){ int i;for (i=0; i<N; i++)fprintf(pf, No=%s Mark-%d n ,a [i] .num, a[i].s);fprintf(pf, n n );}main ( ){ STU a[N]={{ A01 ,81},{ A02 ,89},{ A03 ,66},{ A04 ,87},{ A05 ,77},{ A06 ,90},{ A07 ,79},{ A08 ,61},{ A09 ,80},{ Al0 ,71}};STU *pOrder;int i, m;clrscr ();printf ( *****THE RESULT***** n );outresult (a, stdout);printf ( nGive the number of the studentswho have better score: );scanf ( %d , &m);while (m>10){ printf( lnGive the number of thestudents who have better score: );scanf ( %d , %m);pOrder=fun (a,m);printf( ***** THE RESULT*****kn );printf( The top : n );for (i=0; i<m; i++)printf( %s %d n ,pOrder[i].num,p0rder [i]. s);free (pOrder);}