请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 5
#define M 8
int fun(char (*ss)[M],char *t)
{int i;
/**********found**********/
for(i=0; i< __1__ ; i++)
/**********found**********/
if(strcmp(ss[i],t)==0) return __2__ ;
return -1;
}
main()
{char ch[N][M]={"if","while","switch","int","for"}, t[M];
int n,i;
printf("\nThe original string\n\n");
for(i=0;i printf("\nEnter a string for search: "); gets(t); n=fun(ch,t); /**********found**********/ if(n== __3__) printf("\nDon't found!\n"); else printf("\nThe position is %d .\n",n); } 解题答案: /**********第一空**********/ for(i=0; i< N ; i++) /**********第二空**********/ if(strcmp(ss[i],t)==0) return i ; /**********第三空**********/ if(n==-1) printf("\nDon't found!\n"); ****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为 函数值返回。规定,函数中a1放个位数,a2放十位数。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 给定源程序: #include int fun(int *b) {int k,a1,a2,i=0; for(k=10; k<=55; k++) { /************found************/ a2=K/10; a1=k-a2*10; if((k%3==0 && a2==5)||(k%3==0 && a1==5)) {b[i]=k; i++;} } /************found************/ return k; } main() {int a[100],k,m; m=fun(a); printf("The result is :\n"); for(k=0; k } 解题答案: /************found************/ a2=k/10; /************found************/ return i; ****************************************** [NextPage] 三、程序题:假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include void fun(char *a) { } main() {char s[81];void NONO (); printf("Enter a string:\n");gets(s); fun(s); printf("The string after deleted:\n");puts(s); NONO(); } void NONO () {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s[81] ; in = fopen("in.dat","r"); out = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) { fscanf(in, "%s", s); fun(s); fprintf(out, "%s\n", s) ; } fclose(in); fclose(out); } 参考答案: void fun( char *a ) { char *p = a ; while(*p) p++ ; p-- ; while(*p == '*') p-- ; p++ ; *p = 0 ; }
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|