加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

MOOC C++ 期末试题

发布时间:2020-12-15 04:57:49 所属栏目:百科 来源:网络整理
导读:1字典编码 题目内容: 编写程序,给一段文本中的每个单词一个整数编码,输出文本的整数编码序列。要求(1)编码从1开始,按单词出现的先后顺序依次编码;(2)重复单词不重复编码;(3)输出的每个编码占3位,不足的前面补0。 输入 : 一段英文文本,一行,其

1字典编码

题目内容:

编写程序,给一段文本中的每个单词一个整数编码,输出文本的整数编码序列。要求(1)编码从1开始,按单词出现的先后顺序依次编码;(2)重复单词不重复编码;(3)输出的每个编码占3位,不足的前面补0。

输入:一段英文文本,一行,其中只有单词,单词由一个或多个空格分隔末尾可能有多于的空格,文本中没有标点和数字。文本长度不超过1000,单词数不超过300,每个单词的字符个数不超过20,字母均小写。

输出:整数编码序列。

样例1输入:

hello hello how are you

样例1输出:

001001002003004

#include

#include

#include

using namespace std;

int main()

{

string s,base[300],code[300];

getline(cin,s);

int i = 0,count = 0,start;

while(i < s.length())

{

start = i;

while(i < s.length() && s[i] != ' ')

{

i ++;

}

if(i != start)

{

base[count ++] = s.substr(start,i - start);

}

i ++;

}

int countCode = 0,j;

bool b;

for(i = 0; i < count; i ++)

{

b = false;

for(j = 0; j < countCode; j ++)

{

if(code[j].compare(base[i]) == 0)

{

b = true;

break;

}

}

if(b)

{

cout<

}

else

{

code[countCode] = base[i];

countCode ++;

cout<

}

}

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

#include

#include

using namespace std;

class su{

public :

string name;

string nub;

double sum;

int nuber;

su()

{

nuber=0;

sum =0;

}

};

int main()

{

su *chu=new su[10];

string name;

string nub;

int fenshu;

int j = 0,t = 0,i,flag = 0;

while(1){

flag=0;

cin>>name>>nub>>fenshu;

if(name=="000")

{

break;

}

for(i=0;i

{

if(name==chu[i].name) //如果找到,归类

{

flag=1;

chu[i].sum+=fenshu;

chu[i].nuber++;

}

}

if(flag==0) //如果没找到就创建新的

{

chu[j].name=name;

chu[j].sum+=fenshu;

chu[j].nuber++;

j++;

}

}

for(i=0;i

{

for(t=0;t

{

if(chu[t].name>chu[t+1].name)

{

su tt;

tt=chu[t];

chu[t] = chu[t+1];

chu[t+1]=tt;

}

}

}

for(i=0;i

{

cout<

cout.setf(ios::fixed);

cout.precision(3);

cout<<1.0*chu[i].sum/chu[i].nuber<

}

delete []chu;

return 0;

}

3矩形类

题目内容:

定义一个矩形类,数据成员有宽度、高度和组成矩形的字符,类型分别为整型、整型和字符型,成员函数有void set(int,int,char)设置数据成员的值,void show()显示矩形。若宽度为7,高度为4,字符为“*”,则show()显示的矩形如下(四周为*,中间是空格):

*******

*? ? ?*

*? ? ?*

*******

编写主程序,声明矩形类的对象,输入矩形的宽度、高度和组成字符,调用成员函数set()设置矩形参数,调用成员函数show()显示矩形。

输入格式:

两个正整数和一个字符,用空格隔开。

输出格式:

由字符组成的空心矩形。

输入样例:

7 4 *

输出样例:

*******

*? ? ?*

*? ? ?*

*******

注意:(1)需考虑一些极端情况,(2)要用类实现。(3)可能由于显示格式的问题,题目页面的矩形会错位。只要按格式要求输出。如对样例来说,第2行,两头是“*”,中间是5个空格。

#include

using namespace std;

class Rectangle

{

int width,length;

char a;

public:

Rectangle(int width,int length,char a)

{

this->width=width;

this->length=length;

this->a=a;

}

void set(int width,char a)

{

this->width=width;

this->length=length;

this->a=a;

}

void show()

{

for(int i=0; i

{

if(i==0||i==length-1)

{

for(int j=0; j

cout<

}

else

for(int x=0; x

if(x==0||x==width-1)cout<

else cout<<" ";

cout<

}

}

};

int main()

{

int width,length;

char a;

cin>>width>>length>>a;

Rectangle b(width,length,a);

b.show();

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读