请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(char *s)
{int i, j=0, k=0; char t1[80], t2[80];
for(i=0; s[i]!='\0'; i++)
if(s[i]>='0' && s[i]<='9')
{
/**********found**********/
t2[j]=s[i]; ___1___;
}
else t1[k++]=s[i];
t2[j]=0; t1[k]=0;
/**********found**********/
for(i=0; i
/**********found**********/
for(i=0; i<___3___; i++) s[k+i]=t2[i];
}
main()
{char s[80]="ba3a54j7sd567sdffs";
printf("\nThe original string is : %s\n",s);
fun(s);
printf("\nThe result is : %s\n",s);
}解题答案:
/**********第一空**********/
t2[j]=s[i]; j++;
/**********第二空**********/
for(i=0; i
/**********第三空**********/
for(i=0; i
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数 fun 的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define MAXLINE 20
fun (char *pstr[6])
{int i, j ;
char *p ;
for (i = 0 ; i < 5 ; i++) {
/**************found**************/
for (j = i + 1, j < 6, j++)
{
if(strcmp(*(pstr + i), *(pstr + j)) > 0)
{
p = *(pstr + i);
/**************found**************/
*(pstr + i) = pstr + j ;
*(pstr + j) = p ;
}
}
}
}
main()
{int i ;
char *pstr[6], str[6][MAXLINE] ;
for(i = 0; i < 6 ; i++) pstr[i] = str[i] ;
printf("\nEnter 6 string(1 string at each line): \n");
for(i = 0 ; i < 6 ; i++) scanf("%s", pstr[i]);
fun(pstr);
printf("The strings after sorting:\n");
for(i = 0 ; i < 6 ; i++) printf("%s\n", pstr[i]);
}
解题答案:
/**************found**************/
for(j=i+1; j<6; j++)
/**************found**************/
*(pstr+i)=*(pstr+j);
******************************************
[NextPage] 三.程序题:请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串: 123412132,输入字符为: 1,则输出:3。 注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
#include
#define M 81
int fun(char *ss, char c)
{
}
main()
{char a[M], ch;
void NONO ();
printf("\nPlease enter a string:"); gets(a);
printf("\nPlease enter a char:"); ch = getchar();
printf("\nThe number of the char is: %d\n", fun(a, ch));
NONO ();
}
void NONO ()
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i ;
FILE *rf, *wf ;
char a[M], b[M], ch ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%s", a);
fscanf(rf, "%s", b);
ch = *b ;
fprintf(wf, "%c=%d\n", ch, fun(a, ch));
}
fclose(rf);
fclose(wf);
}
参考答案:
int fun(char *ss, char c)
{
int cnt = 0 ;
char *p = ss ;
while(*p) {
if(*p == c) cnt++ ;
p++ ;
}
return cnt ;
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|