C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

Similar documents
C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 OJ4 - 参考答案 MASTER 2017 年 5 月 21 日 1

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 30 日 1

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 OJ10 - 参考答案 MASTER 2019 年 6 月 17 日 1

02

C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

C/C++程序设计 - 字符串与格式化输入/输出

第3章.doc

ebook39-5

Microsoft PowerPoint - string_kruse [兼容模式]

C/C++语言 - C/C++数据

新版 明解C++入門編

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

IO

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

c_cpp

Strings

FY.DOC


extend

北京大学

運算子多載 Operator Overloading

C++ 程序设计 实验 1 - 参考答案 MASTER 2017 年 5 月 21 日 1

Microsoft Word - 第3章.doc

untitled

C/C++ - 文件IO

Microsoft Word 軟體設計第二部份範例試題_C++_ _1_.doc

Microsoft PowerPoint - 10 模板 Template.pptx

C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1

新・解きながら学ぶJava

untitled

CC213

全国计算机技术与软件专业技术资格(水平)考试

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 30 日 1

untitled

untitled

ebook39-6

C/C++语言 - 运算符、表达式和语句

C/C++ - 字符输入输出和字符确认

Microsoft Word cppFinalSolution.doc

CC213

《计算概论》课程 第十九讲 C 程序设计语言应用

untitled

Microsoft Word - CPE考生使用手冊 docx

提问袁小兵:

新・解きながら学ぶC言語

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new

C/C++ - 函数

迅速在两个含有大量数据的文件中寻找相同的数据

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

新版 明解C言語入門編

数据结构与算法 - Python基础

内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2

新・明解C言語入門編『索引』

PowerPoint Presentation

Open topic Bellman-Ford算法与负环

Microsoft Word - 物件導向編程精要.doc

, 即 使 是 在 昏 暗 的 灯 光 下, 她 仍 然 可 以 那 么 耀 眼 我 没 有 地 方 去, 你 会 带 着 我 么 杜 晗 像 是 在 嘲 笑 一 般, 嘴 角 的 一 抹 冷 笑 有 着 不 适 合 这 个 年 龄 的 冷 酷 和 无 情, 看 着 江 华 的 眼 神 毫 无 温

Chapter12 Derived Classes

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

chp6.ppt

untitled

Microsoft Word - 01.DOC

WHUST 2017 Div.2 Day 3.5 C++ 标准模版库

untitled

業 用 地 出 讓 最 低 價 標 準 不 得 低 於 土 地 取 得 成 本 土 地 前 期 開 發 成 本 和 按 規 定 收 取 的 相 關 費 用 之 和 工 業 用 地 必 須 採 用 招 標 拍 賣 掛 牌 方 式 出 讓 其 出 讓 價 格 不 得 低 於 公 佈 的 最 低 價 標

ebook55-13

条款

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

untitled

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

第五讲 数组 一维数组 二维数组 数组作为函数参数

C++ 程序设计 实验 3 - 参考答案 MASTER 2017 年 5 月 21 日 1

第一章

C 1

C++11概要 ライブラリ編

untitled

Eclipse C C++, or

Template

上海交通大学

Microsoft PowerPoint - Class5.pptx

C/C++ - 数组与指针

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

C/C++ 语言 - 循环

C++ 程式設計

CHAPTER VC#

3.1 num = 3 ch = 'C' 2

汇集全球21位医生的经验和智慧,总结出最实用的专业建议,这些都是最值得你牢记的健康提醒

1 行 业 发 展 不 平 衡 我 国 房 地 产 中 介 服 务 业 起 步 较 晚, 专 业 分 工 程 度 和 国 外 发 达 国 家 相 比 还 有 很 大 差 距 房 地 产 中 介 服 务 行 业 的 发 展 水 平 与 房 地 产 开 发 行 业 的 市 场 化 水 平 密 切 相 关

C

chap07.key

Microsoft PowerPoint - CPP-Ch Print.ppt [兼容模式]

Transcription:

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

1 CARDGAME 1 CardGame 题目描述 桌上有一叠牌, 从第一张牌 ( 即位于顶面的牌 ) 开始从上往下依次编号为 1~n 当至少还剩两张牌时进行以下操作 : 把第一张牌扔掉, 然后把新的第一张放到整叠牌的最后 请模拟这个过程, 依次输出每次扔掉的牌以及最后剩下的牌的编号 输入 输入正整数 n(n<1000000) 输出 在一行内依次输出每次扔掉的牌以及最后剩下的牌的编号, 每个编号后跟一个空格 ( 所有输出最后加一个按行符 ) 样例输入 7 样例输出 1 3 5 7 4 2 6 提示 可以用 std::queue 实现 2

1 CARDGAME 1 #i n c l u d e <iostream> 2 #i n c l u d e <queue> 3 using namespace std ; 4 5 i n t main ( ) 6 { 7 queue<int > q ; 8 i n t n ; 9 cin >> n ; 10 f o r ( i n t i = 1 ; i <= n ; ++i ) 11 q. push ( i ) ; 12 13 while ( q. s i z e ( ) >= 2) 14 { 15 cout << q. f r o n t ( ) << ' ' ; 16 q. pop ( ) ; 17 q. push ( q. f r o n t ( ) ) ; 18 q. pop ( ) ; 19 20 cout << q. f r o n t ( ) << ' ' << endl ; 21 return 0 ; 22 3

2 SORTFUNCTIONTEMPLATE 2 SortFunctionTemplate 题目描述 用函数模板的方式实现对不同数据类型的数组中的数据进行输入 从小到大排序和输出 使用如下主函数测试你的模板 int main() { const int LEN = 5; int type; while (cin >> type) { switch (type) { case 0: { int a1[len]; Input(a1, LEN); Sort(a1, LEN); Output(a1, LEN); break; case 1: { char a2[len]; Input(a2, LEN); Sort(a2, LEN); Output(a2, LEN); break; case 2: { double a3[len]; Input(a3, LEN); Sort(a3, LEN); Output(a3, LEN); break; return 0; 输入 输入包含多组测试数据 每组数据为两行, 第一行为一个整数 type, 表示数据类型 (0 1 2 分别表示 int char double) 第二行为 5 个数组元素 输出 对于每一组测试数据, 将其排序后在一行内输出, 每个元素后跟一个空格 样例输入 0 3 6 1 4 5 1 A B C B A 样例输出 1 3 4 5 6 A A B B C 4

2 SORTFUNCTIONTEMPLATE 1 #i n c l u d e <iostream> 2 using namespace std ; 3 4 template <c l a s s T> 5 void Input (T * array, i n t n) 6 { 7 f o r ( i n t i =0; i<n ; i++) 8 cin>>array [ i ] ; 9 10 11 template <c l a s s T> 12 void Sort (T * array, i n t N) 13 { 14 f o r ( i n t i =0; i<n 1; i++) 15 f o r ( i n t j=i +1; j<n; j++) 16 i f ( array [ i ]> array [ j ] ) 17 { 18 T temp ; 19 temp = array [ i ] ; 20 array [ i ] = array [ j ] ; 21 array [ j ] = temp ; 22 23 24 25 template <c l a s s T> 26 void Output ( const T * array, i n t N) 27 { 28 f o r ( i n t i =0; i<n; i++) 29 cout<<array [ i ]<<" " ; 30 cout<<endl ; 31 32 33 i n t main ( ) 34 { 35 const i n t LEN = 5 ; 36 i n t type ; 37 while ( cin >> type ) 38 { 39 switch ( type ) 40 { 41 case 0 : { 42 i n t a1 [LEN ] ; 43 Input ( a1, LEN) ; Sort ( a1, LEN) ; Output ( a1, LEN) ; break ; 44 45 case 1 : { 46 char a2 [LEN ] ; 47 Input ( a2, LEN) ; Sort ( a2, LEN) ; Output ( a2, LEN) ; break ; 48 49 case 2 : { 5

2 SORTFUNCTIONTEMPLATE 50 double a3 [LEN ] ; 51 Input ( a3, LEN) ; Sort ( a3, LEN) ; Output ( a3, LEN) ; break ; 52 53 54 55 return 0 ; 56 6

3 REPLACECHAR 3 ReplaceChar 题目描述 输入字符串 ( 没有空格字符 ), 替换把其中的字符 'c' 替换成 'C' 并使用以下 main 函数 : int main(){ char str[256]; cin >> str; Replace(str, 'c', 'C'); cout << str << endl; return 0; 输入描述 字符串 输出描述 结果 输入 abcdedgc 输出 abcdedgc 7

3 REPLACECHAR 1 #i n c l u d e <iostream> 2 using namespace std ; 3 4 5 void Replace ( char * s t r, char chsrc, char chdst ) 6 { 7 while (* s t r ) 8 { 9 i f (* s t r==chsrc ) 10 { 11 * s t r = chdst ; 12 13 s t r ++; 14 15 16 17 i n t main ( ) { 18 char s t r [ 2 5 6 ] ; 19 cin >> s t r ; 20 Replace ( str, 'c', 'C') ; 21 cout << s t r << endl ; 22 return 0 ; 23 8

4 STACK 4 Stack 题目描述 实现一个 Stack 类模板并测试这一模板. template<class T, int SIZE = 20> class Stack{ private: T array[size]; // 数组, 用于存放栈的元素 int top; // 栈顶位置 ( 数组下标 ) public: Stack(); // 构造函数, 初始化栈 void push(const T & ); // 元素入栈 T pop(); // 栈顶元素出栈 void clear(); // 将栈清空 const T & Top() const; // 访问栈顶元素 bool empty() const; // 测试栈是否为空 bool full() const; // 测试是否栈满 int size(); // 返回当前栈中元素个数 ; 测试函数 : int main() { Stack<int,10> intstack; for(int i=0;i<10;i++) intstack.push(i); if(intstack.full()) cout<<"now, intstack is full."<<endl; for(int i=0;i<10;i++) cout<<intstack.top()<<" "; cout<<endl; for(int i=0;i<10;i++) cout<<intstack.pop()<<" "; cout<<endl; if(intstack.empty()) cout<<"now, intstack is empty."<<endl; Stack<string,5> stringstack; stringstack.push("one"); stringstack.push("two"); stringstack.push("three"); stringstack.push("four"); stringstack.push("five"); cout<<"there are "<<stringstack.size()<<" elements in stringstack."<<endl; stringstack.clear(); if(stringstack.empty()) cout<<"now, there are no elements in stringstack"<<endl; //system("pause"); return 0; 输入 无 输出 Now, intstack is full. 9 9 9 9 9 9 9 9 9 9 9 8 7 6 5 4 3 2 1 0 Now, intstack is empty. There are 5 elements in stringstack. Now, there are no elements in stringstack 样例输入 null 样例输出 9

4 STACK 1 #inclu de <iostream> 2 #include<s t r i n g > 3 #include<c s t d l i b > 4 using namespace std ; 5 6 template<c l a s s T, i n t SIZE = 20> 7 c l a s s Stack { 8 p r i v a t e : 9 T array [ SIZE ] ; // 飬 µ 10 i n t top ; // ã ± 11 public : 12 Stack ( ) ; // ¹ ¹ ³» 13 void push ( const T & ) ; // 14 T pop ( ) ; // 15 void c l e a r ( ) ; //½«16 const T & Top ( ) const ; // 17 bool empty ( ) const ; // ² Ι 18 bool f u l l ( ) const ; // ² 19 i n t s i z e ( ) ; // µ»±ǰ 20 ; 21 22 template<c l a s s T, i n t SIZE> 23 Stack<T, SIZE >:: Stack ( ) : top ( 1){ 24 25 template<c l a s s T, i n t SIZE> 26 void Stack<T, SIZE >:: push ( const T & item ) { 27 i f (! f u l l ( ) ) array[++top ] = item ; 28 29 30 template<c l a s s T, i n t SIZE> 31 T Stack<T, SIZE >:: pop ( ) { 32 i f (! empty ( ) ) return array [ top ]; 33 e l s e e x i t (1) ; 34 35 36 template<c l a s s T, i n t SIZE> 37 void Stack<T, SIZE >:: c l e a r ( ) { top = 1; 38 39 template<c l a s s T, i n t SIZE> 40 const T & Stack<T, SIZE >::Top ( ) const { 41 i f (! empty ( ) ) return array [ top ] ; 42 e l s e e x i t (1) ; 43 44 45 template<c l a s s T, i n t SIZE> 46 bool Stack<T, SIZE >:: empty ( ) const { return top == 1; 47 48 template<c l a s s T, i n t SIZE> 49 bool Stack<T, SIZE >:: f u l l ( ) const { return top == SIZE 1; 10

4 STACK 50 51 template<c l a s s T, i n t SIZE> 52 i n t Stack<T, SIZE >:: s i z e ( ) { return top +1; 53 54 i n t main ( ) 55 { 56 Stack<int,10> intstack ; 57 f o r ( i n t i =0; i <10; i++) 58 intstack. push ( i ) ; 59 i f ( intstack. f u l l ( ) ) cout<<"now, intstack is full."<<endl ; 60 f o r ( i n t i =0; i <10; i++) 61 cout<<intstack. Top ( )<<" " ; 62 cout<<endl ; 63 f o r ( i n t i =0; i <10; i++) 64 cout<<intstack. pop ( )<<" " ; 65 cout<<endl ; 66 i f ( intstack. empty ( ) ) cout<<"now, intstack is empty."<<endl ; 67 68 Stack<s t r i n g,5> s t r i n g S t a c k ; 69 s t r i n g S t a c k. push ( "One" ) ; 70 s t r i n g S t a c k. push ( "Two" ) ; 71 s t r i n g S t a c k. push ( "Three" ) ; 72 s t r i n g S t a c k. push ( "Four" ) ; 73 s t r i n g S t a c k. push ( "Five" ) ; 74 cout<<"there are "<<s t r i n g S t a c k. s i z e ( )<<" elements in stringstack."<<endl ; 75 s t r i n g S t a c k. c l e a r ( ) ; 76 i f ( s t r i n g S t a c k. empty ( ) ) cout<<"now, there are no elements in stringstack"<<endl ; 77 78 79 return 0 ; 80 11

5 FILE 题目描述 in.txt 是一个文本文件, 保存了一些小数 文件第一行是小数个数 m, 后面一共 m 行小数 请读入这些数据, 求出平均数, 并保存到 out.txt 中 请用 C++ 的文件流实现这个功能, 并将代码放置到 FileTest() 中 注意本题要求 : 1.OJ 测试通过 2. 不修改代码, 本地附带数据运行时能得到正确结果 int main() { 5 File FileTest(); cout << "Hello C++\n"; return 0; 输入 无 输出 Hello C++ 样例输入 null 样例输出 Hello C++ 注意 12

5 FILE 1 #i n c l u d e <iostream> 2 #i n c l u d e <vector> 3 #i n c l u d e <fstream> 4 using namespace std ; 5 6 void FileTest ( ) 7 { 8 i f s t r e a m i n f i l e ; 9 i n f i l e. open ( "in.txt" ) ; 10 i f (! i n f i l e. is_open ( ) ) return ; 11 12 i n t n ; 13 i n f i l e >> n ; 14 double sum = 0. 0 ; 15 f o r ( i n t i = 0 ; i < n ; i++) 16 { 17 double temp ; 18 i n f i l e >> temp ; 19 sum += temp ; 20 21 i n f i l e. c l o s e ( ) ; 22 23 double avg = sum / n ; 24 25 ofstream o u t f i l e ; 26 o u t f i l e. open ( "out.txt" ) ; 27 i f (! o u t f i l e. is_open ( ) ) return ; 28 29 o u t f i l e << avg ; 30 o u t f i l e. c l o s e ( ) ; 31 32 33 i n t main ( ) 34 { 35 FileTest ( ) ; 36 37 cout << " Hello C++\ n" ; 38 return 0 ; 39 13