资料仅供参考
char temp[80]; for(i=0;s[i]=='\\0';i++) {
for(j=i,k=0;s[j]==t[k]&&t[k]!='\\0';j++,k++);
if(t[k]=='\\0')
{ temp=s+j; strcpy(s+i,g); strcat(s,temp); i+=strlen(g)-1; } } } 【要求】
1.打开T盘中myfl.c文件或将上述程序录入到myf1.c文件中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2. 改错时,能够修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。
3. 改正后的源程序(文件名myfl.c)保存在T盘的根目录中供阅卷使用,否则不予评分。
资料仅供参考
二、编程题(24分) 【程序功能】
在一组数值不全全的整数中查找次大数。 【编程要求】
1、编写函数int findsecmax(int data[], int count)。
函数功能:在data数组的前count个整数中查找次大数。
2、编写函数main()。函数功能:声明一个整型数组
a并用测试数据初始化,用数组a及数组元素个数作实参调用findsecmax 函数找出次大数,然后将原数组及次大数输出到屏幕及数据文件myf2.out中。最后将考生本人的准考证号字符串输出到文件myf2.out中。
【测试数据与运行结果】
测试数据:1,9,2,8,3,7,4,6,10,10 屏幕输出:
1 9 2 8 3 7 4 6 10 10 Sec_max: 9
【要求】
1.源程序文件名为myf2.c,输出结果文件名为myf2.out。 2.数据文件的打开、使用、关闭均用C语言标准库中文
资料仅供参考
件操作函数实现。
3.源程序文件和运行结果文件均需保存到T盘上,供阅卷使用。
4.不要复制扩展名为obj和exe的文件到T盘上。
【改错题解答:myf1.c】
此题比较简单。按照标准,原程序存在6个错误,因此每个错误,若改正,则得3分。实际命题教师只认4个错误:1、2、5、6,此时每题4分。
#include
void substitution(char*s,char*t,char*g); //1、自定义函
数
的
声
明
语
句
出
错
void
substitution(char*,char*,char*);
int main() {
char
s[80]=\
aaacdaaaaaaaefaaaghaa\ //2、字符串数组下标填写为大于或等于字符数加1
puts(s);
substitution(s,t,g); puts(s);
getch(); return 0; //3、主函数有类型定
资料仅供参考
义,在TC30编译时必须有返回语句
}
void substitution(char *s,char *t,char *g) //4、自定义
函
数
的
函
数
头
出
错
void
substitution(char*,char*,char*);
{ int i,j,k;
char temp[80];
for(i=0;s[i]!='\\0';i++) //5、循环语句终结条件出错:s[i]=='\\0'。否则不执行循环语句
{
for(j=i,k=0;s[j]==t[k]&&t[k]!='\\0';j++,k++); if(t[k]=='\\0')
{ strcpy(temp,s+j); //6、字符串赋值用库函数strcpy:temp=s+j;
strcpy(s+i,g); strcat(s,temp); i+=strlen(g)-1; } } }
【编程题解答:myf2.c】
解题思路:。编程的关键是需要知道库函数所需要的相应的头文件名。此题较简单。
相关推荐: