cerr<<\无法打开数据文件in.txt。需要核查!\ return ; }
fstream myfile;
myfile.open(\ if(!myfile.is_open()) {
cerr<<\无法打开数据文件out.txt。需要核查!\ return ; }
for(int i=0; i<4; i++) {
char str[50]; inFile>>str; changeString(str); myfile< inFile.close(); myfile.close(); } 答案:void changeString(char str[]) { } 第27题 (10.0分) 题号:690 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:编写一个函数,实现对一维数组的二分(折半) 查找算法。如找到,则返回其数组下标,否则返回-1。 for(int i=0; str[i] != '\\0'; i++) { } if(str[i]>='a' && str[i]<='z') str[i] -= 32; str[i] += 32; else if(str[i]>='A' && str[i]<='Z') 二分查找的思想是:要查找的数据保存在数组中,并且 数据已经排好序(如从小到大递增)。查找时,每次比较 数组中间(用数组下标判断)那个数据,如果相等,则找到; 如果小于它,则在数组左半边按照相同的方式查找;如果大于它, 则在数组右半边按相同方式查找。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 ------------------------------------------------*/ #include using namespace std; int binary_search (int sorted_array[], int first, int last, int key) { /**********Program**********/ /********** End **********/ } int main () { int arr[SIZE]; ifstream input; input.open(\ for(int index = 0; index < SIZE; index++) input >> arr[index]; input.close(); ofstream output; output.open(\ output << binary_search(arr, 0, SIZE - 1, 16663) << endl; output << binary_search(arr, 0, SIZE - 1, 15555) << endl; output.close(); cout <<\ cin.ignore(cin.rdbuf()->in_avail() + 1); return 0; } 答案:int mid; while(true) { } 第28题 (10.0分) 题号:665 /*------------------------------------------------------- 【程序设计】 --------------------------------------------------------- 题目:编写一个函数:将一个N进制数转换成M进制数(N和M在2到10进制之间), N进制数和M进制数均以字符串方式存储。 ------------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 mid = (first+last)/2; if (key == sorted_array[mid]) return mid; if(last < first) return -1; if (key < sorted_array[mid]) // search the left half last = mid - 1; first = mid + 1; else // search the right half 写的若干语句。 ------------------------------------------------------*/ #include //将一个长度为len的N进制的数字字符串str转换M进制, //转换后的M进制数存放在str中,其长度作为返回值返回。 int trans(char str[], int len, int N, int M) { /**********Program**********/ /********** End **********/ } int wwjt(); void main(void) { char str[20]=\ int N=2, M=10; int len=17, count; count = trans(str, len, N, M); for (int i=0; i //忽略阅读 wwjt(); //忽略阅读结束 } //以下忽略阅读 int wwjt() { fstream infile, outfile; char str[200]; int N, M; int len, count; infile.open(\ if (!infile) return -1; infile >> str >> N >> M; infile.close(); len = 0; while (str[len]!='\\0') len++; if (len!=0){ count = trans(str, len, N, M); outfile.open(\ for (int i=0; i return 0; } 第29题 (10.0分) 题号:214 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:完成函数sofd,该函数计算一个数的各位数字之和 并返回,如sofd(252)返回9。 说明:sofd函数编写时只需考虑n大于等于0的情况,不用 处理负整数的情况。