C++ MOOC 西安交通大学 中国大学生MOOC网 期末考试
2017-06-04 10:34
525 查看
C++MOOC 期末考试 西安交通大学
1.
行程编码(20分)
题目内容:
输入一段由英文字母组成的文字,将这段文字的前面一半逆序(当文字长度为奇数时,前一半的长度是stringlength/2取整),然后写出其行程编码。
编码方法是:将字符串中k个连续相同的字母X记为kX。当k=1时,省略。
输入格式:
一段由英文字母组成的文字,长度小于200.
输出格式:
编码字符串,一行,无空格
输入样例:
AAAABCCCCC
输出样例:
B4A5C
时间限制:500ms内存限制:32000kb时间限制:500ms内存限制:32000kb
2.题目内容:
输入若干学生的成绩,统计各班的成绩的平均值,并按班级名称的机内码从小到大排序输出。
学生成绩信息包括:班级,学号和成绩。班级名称是”000”’时表示成绩输入结束。
班级名称不超过20字符,学号不超过10个字符,成绩为整数,平均成绩为双精度实数,保留三位小数。班级数不超过10个,总人数不超过100个。
输入格式:
若干行,每行信息包括班级,学号和成绩,用空格隔开,
最后一行为:000 000 000
输出格式:
若干行,每行信息包括:班级和平均成绩,中间用一个空格隔开。行数由输入中的班级数确定。
输入样例:
航天 001 80
信计 001 90
航天 002 70
航天 003 80
信计 002 91
000 000 000
输出样例:
航天 76.667
信计 90.500
时间限制:500ms内存限制:32000kb
实现代码:
1.
行程编码(20分)
题目内容:
输入一段由英文字母组成的文字,将这段文字的前面一半逆序(当文字长度为奇数时,前一半的长度是stringlength/2取整),然后写出其行程编码。
编码方法是:将字符串中k个连续相同的字母X记为kX。当k=1时,省略。
输入格式:
一段由英文字母组成的文字,长度小于200.
输出格式:
编码字符串,一行,无空格
输入样例:
AAAABCCCCC
输出样例:
B4A5C
时间限制:500ms内存限制:32000kb时间限制:500ms内存限制:32000kb
// // Created by Cooper on 04/06/2017. // #include <iostream> #include <stack> using namespace std; int main() { string s; cin >> s; stack<char>stack1; string temp; int i=0; // int chNum[27]={0}; for ( ; i < s.length() / 2; ++i) { stack1.push(s[i]); } while (!stack1.empty()){ temp.push_back(stack1.top()); // 取得栈中元素 stack1.pop(); //弹出栈顶元素 } for ( ; i < s.length(); ++i) { //i 接着上次的继续 temp.push_back(s[i]); } for(string::iterator iter = temp.begin(); iter != temp.end(); ++iter){ int tempNum=1; if(*iter == *(iter+1)){ while(*iter == *(iter+1)){ tempNum++; iter++; } cout<<tempNum<<*iter; } else{ cout<<*iter; } } return 0; }
2.题目内容:
输入若干学生的成绩,统计各班的成绩的平均值,并按班级名称的机内码从小到大排序输出。
学生成绩信息包括:班级,学号和成绩。班级名称是”000”’时表示成绩输入结束。
班级名称不超过20字符,学号不超过10个字符,成绩为整数,平均成绩为双精度实数,保留三位小数。班级数不超过10个,总人数不超过100个。
输入格式:
若干行,每行信息包括班级,学号和成绩,用空格隔开,
最后一行为:000 000 000
输出格式:
若干行,每行信息包括:班级和平均成绩,中间用一个空格隔开。行数由输入中的班级数确定。
输入样例:
航天 001 80
信计 001 90
航天 002 70
航天 003 80
信计 002 91
000 000 000
输出样例:
航天 76.667
信计 90.500
时间限制:500ms内存限制:32000kb
实现代码:
// // Created by Cooper on 04/06/2017. // #include <iostream> #include <cstdio> #include<cstring> using namespace std; struct student{ char name[21]; int sum;//总分数 int num;//人数 }pStudent[11]; int main() { char name[21], num[11]; int score; int j = 0, t = 0, i, temp = 0; while (1) { cin >> name >> num >> score; temp = 0;//是否找到的标记 if (strcmp(name, "000") == 0) break; for (i = 0; i < j; i++) { if (strcmp(pStudent[i].name, name) == 0)//如果当前输入在结构体数组中找到,则将分数加入sum { pStudent[i].sum += score; pStudent[i].num++; temp = 1; } } if (temp == 0)//如果没找到,则创建当前含有name的结构体 { strcpy(pStudent[j].name, name); pStudent[j].sum += score; pStudent[j].num++; j += 1; } } for (i = 0; i < j; i++)//排序 { for (t = 0; t < j - i - 1; t++) { if (strcmp(pStudent[t].name, pStudent[t + 1].name) > 0) { struct student tt; tt = pStudent[t]; pStudent[t] = pStudent[t + 1]; pStudent[t + 1] = tt; } } } for (i = 0; i < j; i++) { cout << pStudent[i].name<<" "; printf("%.3f\n", 1.0 * pStudent[i].sum / pStudent[i].num); } return 0; }
相关文章推荐
- C++编写字符串反转函数mystrrev(来源:西安交通大学-计算机程序设计-中国大学MOOC)
- C++第七周mooc在线测评—指针、变量和函数
- 清华大学计算机系C++期末考试题及答案
- C++第12周mooc在线测评—第12周 统一接口不同实现-多态性(虚函数与符号重载)
- MOOC清华《程序设计基础》期末考试第4题:求三位数的组合
- 期末考试 编程题#1:输出200(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- MOOC清华《程序设计基础》期末考试第5题:解密外星人ET的聊天记录
- C++第13周mooc在线测评—第13周 标准输入输出与文件操作
- (考试)2017年大一下学期C++期末考试题目四
- MOOC清华《程序设计基础》期末考试第1题:解三元一次方程
- 清华大学计算机系C++期末考试题及答案
- <Mooc C++ 教程作业>去除字符串首尾多余的空格
- C++第10周mooc在线测评—第10周 数据的抽象与封装——类与对象(2)
- MOOC———c++11周————继承
- C++第八周mooc在线测评—第8周 按址操作(2)——指针与数组、字符串、结构体,动态数组
- C++重修期末考试复习题
- C++第五周mooc在线测评— 问题的模块化求解
- mooc_C++_离港_10.15
- C++ 期末考试小总结
- 期末考试 编程题#2:输出指定结果一(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)