C语言程序题目,急求解答,望高手帮忙

一、改错题(20分)
【程序功能】
在字符串str1中最大编码值元素之后插入字符串str2,输出插入字符串str2后str1字符串及str1中最大编码值元素的下标。
【测试数据与运行结果】
str1中原字符串为“It is y and no”,str2中字符串为“es”。程序正确时应输出str1中字符串为“It is yes and no”及最大编码值元素的下标6。
【含有错误的程序】

【要求】
1. 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2. 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。
3. 改正后的源程序(文件名myf1.c)必须复制到“学号姓名试卷号”文件夹中供阅卷用。

二、编程题(20分)
【编程要求】
1.编写函数int reverse(int m,int n,int x[]),求整数m~n之间(m<n)所有数的反序数并统计反序数中素数的个数,将得到的反序数依次存入数组x中,函数的返回值是反序数中素数的个数。反序数:将原数各位数字颠倒后得到的数,例如:123的反序数为321,70的反序数为7。
2.编写main函数,接收键盘输入的m和n的值,调用函数reverse求m~n之间的所有元素的反序数并统计反序数中素数的个数,将结果数组及素数的个数输出到屏幕并保存到结果文件中。
【测试数据与运行结果】
当m=29、n=38时,输出结果应为:92 3 13 23 33 43 53 63 73 83 (换行) prime counts=7。
【要求】
1. 源程序文件名为myf2.c,结果文件名为myf2.out
2. 数据文件的打开、读/写、关闭均用C语言函数库中的文件操作函数实现。
3.源程序文件和结果文件均需复制到“学号姓名试卷号”文件夹中供阅卷用。不要复制扩展名为obj和exe的文件。

第1个回答  推荐于2016-10-16
二、编程题(20分)
reverse.h文件
#ifndef REVERSE_H
#define REVERSE_H

/*
*求整数m~n之间(m<n)所有数的反序数并统计反序数中素数的个数
*将得到的反序数依次存入数组x中
*函数的返回值是反序数中素数的个数。
*2007-09-09 14:24
*/
int reverse(const int m, const int n, int x[]);
bool IsPrime(const int p);
int reverse(const int r);

#endif

reverse.cpp文件
#include "reverse.h"
#include <math.h>
#include <string>

#include <iostream>
using namespace std;

bool IsPrime(const int p)
{
int k = (int)sqrt( (double)p);
for (int i=2; i<=k; i++)
{
if (p%i == 0) return false;
}

return true;
}

int reverse(const int r)
{
char chReverse[10];
memset(chReverse, '0', sizeof(chReverse));

int iTmp = r;
int index = 0;

while (iTmp != 0)
{
int digit = iTmp % 10;
sprintf( chReverse+index, "%d", digit);
index++;
iTmp = iTmp / 10;
}
chReverse[index] = '\0';

return atoi(chReverse);
}

int reverse(const int m, const int n, int x[])
{
int index = 0;
for (int i=m; i<n+1; i++)
{
if (IsPrime(i))
x[index++] = reverse(i);
}
return index;
}

main.cpp 文件
#include "reverse.h"
#include <iostream>
using namespace std;

int main()
{
int iMin,iMax;
cout << "Input Min and Max :";
cin >> iMin >> iMax;

const int size = iMax - iMin;
int iResult[size];

int iCount = reverse(iMin, iMax, iResult);

for (int i=0; i<iCount; i++)
{
cout << iResult[i] <<endl;
}
cout << "Total Prime Count :" << iCount << endl;
}本回答被提问者采纳
第2个回答  2007-09-09
估计你是2级C语言考试题,你最好把题目(就是题目中给的程序)也写出来,不然,例如改错,就没有办法跟你做了
第3个回答  2007-09-09
兄弟阿,没题目怎么做呢?
相似回答