查看: 103|回复: 1

交大ACM算法课—C++语法基础

[复制链接]

4

主题

14

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 2022-12-1 17:49:42 | 显示全部楼层 |阅读模式
开班前言:

学好数据结构与算法的方法:读-仿-默-练-用
学好数据结构与算法的建议:学一个整体全局的观念,即线性结构、树状结构、几何结构、图状结构分别是解决什么问题的!以及每一种解决方案的特点以及使用场合。
1.编程入门

(1)Hello World!
C++语言是一门面向对象的语言,可维护性好,易于代码的复用,适合大型软件工程项目的设计。C++是从C语言发展演变而来的。C语言在程序设计时,它更强调需要执行的具体操作。面对更复杂的任务,会根据自顶向下的设计原则,对复杂任务进行拆分。
举例:打印hello, world!
//导入系统输入输出头文件 iostream
#include <iostream>

//使用标准命名空间 std,命名空间(namespace)是C++中的一项特性,便于管理重复命名的功能模块
using namespace std;

int main() {
    //将 Hello, World! 打印在屏幕上,并且进行换行
    cout << "Hello, World!" << endl;
    return 0;
}
代码分为3个部分

  • 编译预处理:所有#开头的代码,预处理指令include意思是找到后面跟随的头文件,并且加载文件内容到程序中
编写完源程序,在执行编译之前,编译器会首先调用预处理器,找到所有以#开头的代码进行处理。头文件是预先制造好的工具库。这里感觉就像是python中的第一步先及进行导入工具包。

  • 使用using声明命名空间namespace
  • 程序中的主函数main:主函数里面的内容就是程序主体;

    • return语句代表了函数将会返回的内容

      • 当主函数返回一个0时,说明程序正常运行结束
      • 返回其他非0的数值会造成系统认为程序异常退出



问题:
1.为什么说C++是一门面向对象的语言呢?
2.装入变量中的数据本身不能再装入新的数据。感觉这句话说的有问题吧?数据本身不能再装入新的数据?数据本省就不能被修改被赋值,本来数据本身就不能装入新的数据呀?
(2)变量
变量是指会随着程序运算而改变的量。维护这些变量会用到计算机的存储功能。计算机的存储功能会使用内存实现。使用变量的过程中,需要注意变量的声明变量的命名规则变量的初始化变量的输出
举例:
//导入系统输入输出头文件 iostream
#include <iostream>

// 使用标准命名空间 std
using namespace std;

int main() {
    // 声明可乐数量变量 coke
    int coke;
    // 声明爆米花数量变量 popcorn
    int popcorn;
    // 声明消费总额变量 money,并且初始化数值为 0
    int money = 0;
   
    // 将初始化好的消费总额打印在屏幕上,并且进行换行
    cout << money << endl;
   
    return 0;
}

(3)常量
常量是指不会随着程序运行而改变的量,分为两种:字面量和符号常量
字面量:存放在变量中的数据,把字面量装到变量中使用的操作叫赋值,字面量分为整数字面量浮点字面量字符自变量字符串自变量
符号常量:随着程序运算不改变的量,赋予名称之后,有一个特定的名字,叫做符号常量,可以使用const关键字来定义并且初始化:const 数据类型 常量名称 = 初始值 or 数据类型 const 常量名称 = 初始值
举例
#include<iostream>
using namespace std;

int main() {
    // 字面量
    cout << 1 << " 是一个整型字面量" << endl;
    cout << 0.5 << " 是一个浮点型字面量" << endl;
    cout << 'a' << " 是一个字符型字面量" << endl;
    cout << "这句话就是一个字符串型字面量\n" << endl;
   
    // 定义符号常量表示可乐单价
    const int kCokePrice = 5;
    // 定义符号常量表示爆米花的单价
    int const kPopcornPrice = 10;
   
    // 将可乐与爆米花的单价分别打印在屏幕上,并且加上提示信息
    cout << "CokePrice is: " << kCokePrice << endl;
    cout << "PopcornPrice is: " << kPopcornPrice << endl;
2.顺序结构程序设计

(1)数据类型
C++中数据类型分为基本类型复合类型;

  • 基本类型包括:整数类型浮点数类型
  • 复合类型:在基本类型的基础上创建的,包括数组字符串以及结构体
举例:数值整数型
#include <iostream>
using namespace std;

int main() {
    // TODO 声明 short 类型的变量 total_1,并初始化为48000
    short total_1 = 48000;
    cout << "总价为:" << total_1 << "元。\n";
   
    // TODO 声明 unsigned short 类型的变量 total_2,并初始化为48000
    unsigned short total_2 = 48000;
    cout << "总价为:" << total_2 << "元。\n";
运行结果:字符整数类型

总价为:-17536元。
总价为:48000元。举例:字符整数类型
#include <iostream>
using namespace std;

int main() {
    // 初始化一个 int 类型
    int length = 76;
    // TODO 用字符常量初始化一个 char 类型 size_1 为L
    char size_1 = 'L';
    // TODO 用整数常量初始化一个 char 类型 size_2 为L,字符L的ASCII编码值为76
    char size_2 = 76;

    cout << "衣服的长度为:" << length << "厘米。\n";
    cout << "衣服的大小为:" << size_1 << "号。\n";
    cout << "衣服的大小为:" << size_2 << "号。\n";
   
    return 0;
}
//运行结果:
//衣服的长度为:76厘米。
//衣服的大小为:L号。
//衣服的大小为:L号。

问题:
1.为什么第一个举例的结果是-17536元?
2.为什么float类型通常占用4个字节,有效位数只有6位?而double类型占用的空间是float类型的两倍,即8个字节,有效位数却有为15位?15不是6的2倍吧?
3.C++中的双引号和单引号有什么区别?
回复

使用道具 举报

1

主题

10

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2025-3-24 17:24:15 | 显示全部楼层
楼主呀,,,您太有才了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表