前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PAT乙级题目总结

PAT乙级题目总结

作者头像
可爱见见
发布2019-12-05 17:48:13
5330
发布2019-12-05 17:48:13
举报
文章被收录于专栏:卡尼慕卡尼慕

本文没有过多介绍什么C++的语法,就是一些写套路和一些必备的STL库。

题集的题解在这里:PAT乙级题集题解

使用printf的格式化输出

代码语言:javascript
复制
1#include <iostream>
2using namespace std;
3int main(){
4   int N = 3;
5   printf("%d\n%02d",N,N); // 输出3  03
6   return 0;
7} 

辗转相除法—求最大公约数、最大公因子

代码语言:javascript
复制
1int gcd(int a, int b){
2   return b == 0 ? a : gcd(b, a % b);
3}

cin与cout

cin 和 cout 比 printf 和 scanf 更加耗时,且不要再同一个程序中同时使用 cout 和 printf。

int值的范围

绝对值在10的9次方内的数都可以使用int来表示。

使用double

float 的有效精度只有 6~7 位,而 double 有 15~16 位。因此碰到浮点型数据直接全部使用double来存储!!

ASCII码记忆点

小写字母ASCII码值比大写字母的ASCII码值大32。

scanf

代码语言:javascript
复制
1scanf("%lf",&db); //输入double类型
2scanf("%s",str); //输入字符串(char类型的数组)
3printf("%f",db);//而double和float在printf中都是%f

常用math函数

代码语言:javascript
复制
1fabs(double x);//对double类型取绝对值
2floor(double x);//对double类型向下取整
3ceil(double x);//对double类型向上取整
4round(double x);//对double类型的值四舍五入
5log(double x);//自然对数为底, 若其他为底,则用换底公式
6pow(double r, double p);//计算r的p次方

字符串的加法

当我们发现数字过大时,需要自己完成加法操作(对应位数相加,保留进位等)

代码语言:javascript
复制
 1string add(string a,string b){
 2   int t=0;
 3   for(int i=0;i<b.length();i++){
 4       t=t+a[i]-'0'+b[i]-'0';
 5       a[i]='0'+t%10;
 6       t/=10;
 7   }
 8   if(t>0) a+="1";
 9   reverse(a.begin(),a.end());
10   return a;
11}

结构体构造函数

定义结构体的话,可以直接使用一下的方式,一步到位完成结构体成员赋值。

代码语言:javascript
复制
1struct Student{
2    int score;
3    string name;
4    Student(string n, int s){
5        name = n;
6        score = s;
7    }
8};

注意:无return语句、构造函数名称与结构体名称相同,可重载。

或者初始化列表方法:

代码语言:javascript
复制
1struct Student{
2    int score;
3    string name;
4    Student(string n, int s): name(n),score(s) {}
5};

使用:

代码语言:javascript
复制
1Student stu[3];
2cin >> n >> s;
3stu[i] = Student(n, s);

结构体排序使用sort方法类似。

代码语言:javascript
复制
1bool cmp(Student x, Student y){
2    return x.name < y.name;
3}

素数判断

代码语言:javascript
复制
1//判断是否是素数
2bool judgeSu(int num) {
3    for (int i = 2; i <= sqrt(num); i++) {
4        if (num % i == 0) {
5            return false;
6        }
7    }
8    return true;
9}

快排的特点

在快速排序中选择的主元排序后位置是不变的:参考题目1045快速排序 (25 分)

统计字符串

统计某种按规则的字符串,可以考虑逆序统计。参考题目:1040有几个PAT(25分)

字符串分割

1、find函数原型:size_t find ( const string& str, size_t pos = 0 ) const; 功能:查找子字符串第一次出现的位置。 参数说明:str为子字符串,pos为初始查找位置。 返回值:找到的话返回第一次出现的位置,否则返回string::npos

2、substr函数原型:string substr ( size_t pos = 0, size_t n = npos ) const; 功能:获得子字符串。 参数说明:pos为起始位置(默认为0),n为结束位置(默认为npos) 返回值:子字符串

代码语言:javascript
复制
 1#include <iostream>
 2#include <string>
 3using namespace std;
 4int main(){
 5    string a = "Hello World!";
 6    string b = a.substr(0, 3);
 7    cout<<b;
 8    int bb = a.find("!");
 9    cout<<bb;
10    return 0;
11} 
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卡尼慕 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用printf的格式化输出
  • 辗转相除法—求最大公约数、最大公因子
  • cin与cout
  • int值的范围
  • 使用double
  • ASCII码记忆点
  • scanf
  • 常用math函数
  • 字符串的加法
  • 结构体构造函数
  • 素数判断
  • 快排的特点
  • 统计字符串
  • 字符串分割
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档