北大C++ MOOC课程及习题
北大C++ MOOC课程及习题
星辰大Hai
这个作者很懒,什么都没留下…
展开
-
044:编程填空:数据库内的学生信息
A name score 表示往数据库中新增一个姓名为name的学生,其分数为score。开始时数据库中一个学生也没有。对于每个查询,输出学生的分数。如果查不到,则输出 "Not Found"Q name 表示在数据库中查询姓名为name的学生的分数。name是个不带个空格的字符串,长度小于 20。然后,再根据输入数据按要求产生输出数据。score是个整数,能用int表示。程序填空,使得下面的程序,先输出。输入数据少于200,000行。数据保证学生不重名。原创 2024-08-07 16:09:09 · 365 阅读 · 0 评论 -
042:热血格斗场
为了使得比赛更好看,每一个新队员都会选择与他实力最为接近的人比赛,即比赛双方的实力值之差的绝对值越小越好,如果有两个人的实力值与他差别相同,则他会选择比他弱的那个(显然,虐人必被虐好)。一开始,facer就算是会员,id为1,实力值1000000000。格斗场实行会员制,但是新来的会员不需要交入会费,而只要同一名老会员打一场表演赛,证明自己的实力。不幸的是,Facer一不小心把比赛记录弄丢了,但是他还保留着会员的注册记录。N行,每行两个数,为每场比赛双方的id,新手的id写在前面。原创 2024-08-07 15:41:38 · 300 阅读 · 0 评论 -
041:Set
ask 先输出0或1表示x是否曾被加入集合(0表示不曾加入),再输出当前集合中x的个数,中间用空格格开。现有一整数集(允许有重复元素),初始为空。第一行是一个整数n,表示命令数。后面n行命令,如Description中所述。del x 把集合中所有与x相等的元素删除。ask x 对集合中元素x的情况询问。对每种操作,我们要求进行如下输出。add 输出操作后集合中x的个数。del 输出操作前集合中x的个数。add x 把x加入集合。共n行,每行按要求输出。原创 2024-08-07 15:01:26 · 123 阅读 · 0 评论 -
040:List
num merge id1 id2——如果id1等于id2,不做任何事,否则归并序列id1和id2中的数,并将id2清空。目前我本地测试,结果和样例输出一致,但是北大POJ平台检测不通过,也希望大家给找找原因。第一行一个数n,表示有多少个命令( n<=200000)。new id ——新建一个指定编号为id的序列(id < 10000)out id ——从小到大输出编号为id的序列中的元素,以空格隔开。add id num——向编号为id的序列加入整数。unique id——去掉序列id中重复的元素。原创 2024-08-07 14:38:56 · 314 阅读 · 0 评论 -
039:我自己的 ostream_iterator
程序填空输出指定结果。原创 2024-08-07 11:19:12 · 98 阅读 · 0 评论 -
038:白给的list排序
/根据STL中现成的函数对象模版,构造临时对象。程序填空,产生指定输出。原创 2024-08-07 10:58:56 · 213 阅读 · 0 评论 -
037:函数对象的过滤器
对每组数据,按原顺序输出第二行的后k个整数中,大于m且小于n的数。第二行先是一个整数k ,然后后面跟着k个整数。数据保证一定能找到符合要求的整数。第一行是两个整数 m 和 n。程序填空输出指定结果。原创 2024-08-07 10:51:07 · 121 阅读 · 0 评论 -
036:很难蒙混过关的CArray3d三维数组模板类
实现一个三维数组模版CArray3D,可以用来生成元素为任意类型变量的三维数组,输出指定结果。原创 2024-08-07 10:21:56 · 104 阅读 · 0 评论 -
035:按距离排序
然后对数组b,按照和s的距离从小到大输出。距离相同的,字典序小的排在前面。对数组a按和n的距离从小到大排序后输出。距离相同的,值小的排在前面。多组数据,每组一行,是一个整数n和一个字符串s。定义两个字符串的距离为两个字符串长度差的绝对值。定义两个整数的距离为两个整数差的绝对值。程序填空,输出指定结果。原创 2024-08-07 10:06:11 · 107 阅读 · 0 评论 -
034:goodcopy
编写GoodCopy类模板,使得程序按指定方式输出。然后将输入的字符串原序输出两次,也用 ","分隔。将输入的整数原序输出两次,用","分隔。第一行是整数 n , n < 50。第一行是整数 t,表示数据组数。第三行是 n 个字符串。第二行是 n 个整数。原创 2024-08-07 09:28:56 · 229 阅读 · 0 评论 -
033:排序,又见排序!
自己编写一个能对任何类型的数组进行排序的mysort函数模版。只能写一个mysort模板,不能写mysort函数!原创 2024-08-07 09:07:33 · 97 阅读 · 0 评论 -
032:这个模板并不难
对每组数据,先依次输出输入字符串的每个字母,并且在每个字母后面加逗号。然后依次再输出输入的n个整数 ,在每个整数后面加逗号。每组第一行是一个不含空格的字符串。程序填空,输出指定结果。原创 2024-08-07 08:39:55 · 116 阅读 · 0 评论 -
031:山寨版istream_iterator
模仿C++标准模板库istream_iterator用法,实现CMyistream_iterator使得程序按要求输出。每组数据一行,三个整数加两个字符串。第一行是整数t,表示有t组数据。第二行原样输出输入的内容。对每组数据,输出二行。在第一行输出第一个数。原创 2024-08-07 08:24:45 · 275 阅读 · 0 评论 -
030:你真的搞清楚为啥 while(cin >> n) 能成立了吗?
读入两个整数,输出两个整数 ,直到碰到-1。当碰到输入中出现-1 时,程序结束。多组数据,每组一行,是两个整数。对每组数据,原样输出。输入中保证会有 -1。原创 2024-08-07 08:07:39 · 187 阅读 · 0 评论 -
029:简单的Filter
编写Filter模板,使得程序产生指定输出 不得编写 Filter函数。原创 2024-08-07 07:37:22 · 193 阅读 · 0 评论 -
028:简单的foreach
编写MyForeach模板,使程序按要求输出 不得编写 MyForeach函数。每组数据第一行是两个整数 m 和 n ,都不超过 50。第一行输出所有输入字符串连在一起的结果。第二行输出输入中的每个整数加1的结果。第二行是m个不带空格的字符串。原创 2024-08-05 15:39:32 · 197 阅读 · 0 评论 -
027:简单的SumArray
填写模板 PrintArray,使得程序输出结果是: TomJackMaryJohn 10 不得编写SumArray函数。原创 2024-08-05 15:01:58 · 192 阅读 · 0 评论 -
026:编程填空:统计动物数量
4、main函数中有通过基类指针进行释放内存空间,为了派生类消亡时,基类的总数也保持一致,需要将基类的析构函数定义为虚函数,这样基类指针释放空间时,会有多态现象,会调用派生类的析构函数,而派生类析构函数会自动调用基类的析构函数。2、开始没有对象就可以通过类::变量名进行访问,说明number类定义为静态成员变量,属于整个类,方便对整个类的某个属性进行管理。5、另外类中定义的静态成员变量,必须在类外进行声明,不然链接时会报错。1、定义Animal基类,Dog类和Cat类继承基类。原创 2024-08-05 14:36:20 · 391 阅读 · 0 评论 -
025:怎么又是Fun和Do
可知,Fun()不是虚函数,指针是哪种类型就调用哪种类型的Fun()函数,Do()从基类到派生类一直声明为虚函数,基类指针调用会有多态现象。程序填空输出指定结果。原创 2024-08-05 14:01:37 · 154 阅读 · 0 评论 -
024:这是什么鬼delete
为了根据delete p语句中p指向的对象执行相应的析构函数,需要将基类的析构函数声明为虚函数,这样也是多态,语句会执行派生类对象的析构函数,而派生类析构函数会自动调用基类的析构函数。程序填空输出指定结果。原创 2024-08-05 13:50:16 · 106 阅读 · 0 评论 -
023:Fun和Do
我们可以用类B的派生类特性来访问基类A的Fun(),通过多态特性来访问B的派生类C的Do()程序填空输出指定结果。原创 2024-08-05 10:48:46 · 147 阅读 · 0 评论 -
022:看上去像多态
程序填空产生指定输出。原创 2024-08-05 10:36:18 · 154 阅读 · 0 评论 -
020:继承自string的MyString
substr()返回的是string类对象。程序填空,输出指定结果。原创 2024-08-05 10:09:56 · 161 阅读 · 0 评论 -
019:全面的MyString
我们已经写了一个带一个参数的构造函数,其也代表了类型转换函数(char * 到MyString类型的转换),所以遇到有char *和MyString类型的运算时,只写一个就好,因为char *会自动转换为一个临时MyString对象参与计算。最后程序用到了qsort()函数,里面需要比较MyString对象的大小(用到了,<、>、==),所以需要重载operator <\>\==运算符。程序填空,输出指定结果。原创 2024-08-05 09:24:00 · 379 阅读 · 0 评论 -
018:别叫,这个大整数已经很简化了!
多组数据,每组数据是两个非负整数s和 n。s最多可能200位, n用int能表示。对每组数据,输出6行,内容对应程序中6个输出语句。程序填空,输出指定结果。原创 2024-07-25 15:43:32 · 193 阅读 · 0 评论 -
017:二维数组类
【代码】017:二维数组类。原创 2024-07-25 13:21:15 · 224 阅读 · 0 评论 -
016:惊呆!Point竟然能这样输入输出
对每组数据,输出一行,就是输入的两个整数。主要考察输入输出运算符的重载。多组数据,每组两个整数。原创 2024-07-25 12:32:02 · 140 阅读 · 0 评论 -
015:看上去好坑的运算符重载
对每组数据,输出一行,包括两个整数, n-5和n - 8。多组数据,每组一行,整数n。原创 2024-07-25 12:24:15 · 264 阅读 · 0 评论 -
014:MyString
对每组数据,先输出一行,打印输入中的第一个字符串三次。然后再输出一行,打印输入中的第二个字符串三次。补足MyString类,使程序输出指定结果。多组数据,每组一行,是两个不带空格的字符串。原创 2024-07-25 11:56:00 · 112 阅读 · 0 评论 -
012:这个指针哪来的
考察const关键字的使用。该语句定义的a为常量,所以getPointer()也必须为常量函数,不然编译器不通过(此时this指针是const A *,常量指针不允许转换为非常量指针A *)原创 2024-07-24 17:20:41 · 116 阅读 · 0 评论 -
011:Big & Base 封闭类问题
封闭类的构造函数中,必须要告诉编译器其成员对象如何进行初始化,可以通过添加初始化列表的方式解决。对每组数据,输出两行,每行把输入的整数打印两遍。多组数据,每组一行,是一个整数。程序填空,输出指定结果。原创 2024-07-24 17:08:07 · 191 阅读 · 0 评论 -
009:哪来的输出
代码中没有其他的函数调用,判断只能通过析构函数实现。程序填空,输出指定结果。原创 2024-07-24 16:47:02 · 212 阅读 · 0 评论 -
008:超简单的复数类
请补足Complex类的成员函数。原创 2024-07-24 16:39:02 · 103 阅读 · 0 评论 -
007:返回什么才好呢
会调用赋值运算符“=”,我们自己没写,采用的默认赋值操作,默认操作就是浅拷贝,即逐字节拷贝,对本例来说是可以的。GetObj()函数调用是个左值,需要返回一个类型A的引用,可以通过*this将调用函数的对象返回。然后,对每组数据,输出两行,第一行是m,第二行是n。另外只有一个参数的构造函数,同时也是类型转换函数。多组数据,每组一行,是整数 m 和 n。程序填空,使其按要求输出。原创 2024-07-24 16:08:05 · 199 阅读 · 0 评论 -
006:奇怪的类复制
这里主要考察,构造函数以及复制构造函数的运用,需要注意的是,Sample b = a;这两条语句都会触发复制构造函数的调用,具体代码如下。程序填空,使其输出9 22 5。原创 2024-07-24 15:48:07 · 190 阅读 · 0 评论 -
005:编程填空:学生信息处理程序
其中姓名为由字母和空格组成的字符串(输入保证姓名不超过20个字符,并且空格不会出现在字符串两端),年龄、学号和学年平均成绩均为非负整数。信息之间用逗号隔开。姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。我将成员函数实现放在了类外面定义,OJ平台上提交时需要将成员函数代码放到类里面定义。实现一个学生信息处理程序,计算一个学生的四年平均成绩。要求实现一个代表学生的类,并且类中所有成员变量都是【输出结果中,四年平均成绩不一定为整数。姓名,年龄,学号,四年平均成绩。原创 2024-07-22 22:01:47 · 189 阅读 · 0 评论 -
004:神秘的数组初始化
填空,使得程序输出指定结果。原创 2024-07-22 21:36:44 · 91 阅读 · 0 评论 -
003:好怪异的返回值
填空,使得程序输出指定结果。原创 2024-07-22 21:26:04 · 86 阅读 · 0 评论 -
002:难一点的swap
【代码】002:难一点的swap。原创 2024-07-22 21:22:30 · 206 阅读 · 0 评论 -
001:简单的swap
【代码】001:简单的swap。原创 2024-07-15 18:54:11 · 88 阅读 · 0 评论