C++Prime 第一章 开始

2022-11-20~2022-11-22

1.1 编写一个简单的C++程序

  • c++程序由一个或多个函数构成,其中一个必须命名为mian,操作系统通过调用main函数来允许c++程序。
  • 函数的定义包括四个部分:1、返回类型 2、函数名 3、参数列表 4、函数体
  • main函数的返回类型必须是int
  • 当函数有返回值是,返回值的数据类型必须和函数定义时的返回类型一致
  • 大多数系统中返回值0代表成功、非0返回值由系统定义

1.2 编译、运行程序

  • linux下使用gcc编译文件: gcc -o prog1 prog1.cpp
  • linux下运行gcc编译后的文件: ./prog1

1.1 节练习

  • 练习1.1:参考1.2
  • 练习1.2:
int main()
{
	return -1;
}
  • 在linux下使用gcc、windows10下使用Visual Studio2019编译器编译没有观察到任何不同(与返回值非0比较)

1.2 初识输入输出

  • c++未定义任何io语句,提供一个全面的标准库来进行IO操作
  • iostream库中的istream、和ostream分别代表输入、输出流
  • 标准输入对象cin
  • 标准输出对象cout
  • 标准错误cerr
  • clog输入程序一般性信息(日志)
  • endl刷新缓冲区(buffer)的内容到设备中,保证目前位置程序产生的所有输出都写入输出流中

1.2 节练习

  • 练习1.3:
using namespace std;
#include<iostream>

int main()
{
	cout << "Hello, World" << endl;
	system("pause");
	return 0;
}
  • 练习1.4:
using namespace std;
#include<iostream>

int main()
{
	int a = 1, b = 2;
	cout << a + b << endl;
	system("pause");
	return 0;
}
  • 练习1.5:
using namespace std;
#include<iostream>

int main()
{
	cout << "learn" << " C++" << " in" << " 1949" << endl;
	cout << "learn";
	cout << " C++";
	cout << " in";
	cout << " 1949";
	cout << endl;
	system("pause");
	return 0;
}
  • 练习1.6: 不合法、输出语法错误、<<的左侧需要接收一个ostream对象,将第一行、第二行末尾的;去掉
using namespace std;
#include<iostream>

int main()
{
	int v1 = 1, v2 = 2;
	cout << "The sum of " << v1
		<< " and " << v2
		<< " is " << v1 + v2 << endl;
	system("pause");
	return 0;
}

1.3 注释简介

  • 单行注释:
// 单行注释
int a = 1; // 半行注释
  • 多行注释
/* 多行注释
* 注释xx
* 注释xxx
* 一般多行注释中用*表示这行属于多行注释的一部分
*/
  • ctrl + k + c 多行注释快捷键vistul
  • ctrl + k + u 取消多行注释快捷键

1.3 节练习

  • 练习1.7:
using namespace std;
#include<iostream>
/*
int v1 = 1, v2 = 2;
cout << "The sum of " << v1
	<< " and " << v2
	<< " is " << v1 + v2 << endl;
system("pause");
/*return 0;*/
* /

int main()
{
	return 0;
}

编译错误:expected unqualified-id before ‘/’ token

  • 练习1.8: 看时觉得全部都是合法的,实际运行时第三句不合法、第四句合法的原因也和想象的原因不一样(所以即使多简单的代码都要实际运行确认)
using namespace std;
#include<iostream>

int main()
{
	cout << "/*";
	cout << "*/";
	//cout << /* "*/" */;
// 更正 	cout << /* "*/" */";
	cout << /* "*/" /* "/*" */;

	return 0;
}

1.4 控制流

  • while语句:重复执行一段代码,直至给定条件为假为止
  • 复合运算符+=:将运算符右侧对象加到左侧对象上,再将结果赋值给左侧对象
  • 前缀递增运算符:++value,等价于value = value + 1

1.4.1练习

  • 练习1.9
using namespace std;
#include<iostream>

int main()
{
	int value = 50;
	int sum = 0;
	while (value <= 100)
	{
		sum += value;
		++value;
	}
	cout << sum << endl;

	return 0;
}
  • 练习1.10
using namespace std;
#include<iostream>

int main()
{
	int value = 9;
	while (value > 0)
	{
		cout << value << endl;
		--value;
	}

	return 0;
}
  • 练习1.11
using namespace std;
#include<iostream>

int main()
{
	int num1, num2;
	cout << "输入两个整数" << endl;
	cin >> num1 >> num2;
	if (num1 > num2)
	{
		while (num2 < num1-1)
		{
			++num2;
			cout << num2 << endl;
		}
	}
	else
	{
		while (num1 < num2-1)
		{
			++num1;
			cout << num1 << endl;
		}
	}
	return 0;
}

1.4.2 for语句

  • for循环语句=循环头+循环体
  • 循环头=初始化语句+循环条件+表达式

1.4.2 练习

  • 练习1.12:-100~100之间的整数相加,终值=0
  • 练习1.13:
using namespace std;
#include<iostream>

int main()
{
	// 练习1.9
	int sum1 = 0;
	for (int i = 50; i <= 100; ++i)
	{
		sum1 += i;
	}
	cout << sum1 << endl;

	// 练习1.10
	for (int i = 9; i >= 1; --i)
	{
		cout << i << endl;
	}

	// 练习1.11
	int num1, num2;
	cout << "输入两个数" << endl;
	cin >> num1 >> num2;
	if (num1 > num2)
	{
		int sum2 = 0;
		for (int i = num2; i <= num1 - 1; ++i)
		{
			sum2 += i;
		}
		cout << sum2 << endl;
	}
	else
	{
		int sum2 = 0;
		for (int i = num1; i <= num2 - 1; ++i)
		{
			sum2 += i;
		}
		cout << sum2 << endl;
	}

	return 0;
}
  • 练习1.14 while循环优点:结构简洁,for结构相对复杂。for循环优点:无需将初始化变量定义在结构体内或者结构体外
  • 练习1.15: 1、语法错误:
using namespace std;
#include<iostream>

int main()
{
	cout << "Read each file." << endl:
	cout << Update master. << endl;
	cout << "Write new master." endl;
	return 0
}

2、类型错误

using namespace std;
#include<iostream>

int main()
{
	int num;
	num = "hello";
	cout << num << endl;
	return 0;
}

3、声明错误

using namespace std;
#include<iostream>

int main()
{
	cout << num << endl;
	return 0;
}

1.4.3 读取数量不定的输入数据

  • while(cin>>value){...}
  • 如果使用一个istream对象作为条件,其效果就是检测流的状态,当流返回文件结束符EOF(End of File)时或者错误时就会使条件变为假从而跳出循环
  • windows系统下ctrl+z=输入文件结束符

1.4.3 节练习

  • 练习1.16:
using namespace std;
#include<iostream>

int main()
{
	int value, sum = 0;
	while (cin >> value)
	{
		sum += value;
	}
	cout << sum << endl;
	
	system("pause");
	return 0;
}

1.44 if语句

using namespace std;
#include<iostream>

int main()
{
	int current_value, times = 0;
	if (cin >> current_value)
	{
		++times;
		int value;
		while (cin >> value)
		{
			if (current_value == value)
			{
				++times;
			}
			else
			{
				cout << current_value << "times is " << times << endl;
				current_value = value;
				times = 1;
			}
		}
		cout << current_value << "times is " << times << endl;
	}
	system("pause");
	return 0;
}

1.4.4 节练习

  • 练习1.17~1.18:如下图: alt
  • 练习1.19如练习1.4.1所写

1.5 类简介

  • 无相关纪要

1.5.1 Sales_item类

  • 无相关纪要

1.5.1 节练习

  • 练习1.20:
using namespace std;
#include<iostream>
#include"Sales_item.h"

int main()
{
	Sales_item book;
	cin >> book;
	cout << book << endl;
	system("pause");
	return 0;
}
  • 练习1.21:
using namespace std;
#include<iostream>
#include"Sales_item.h"

int main()
{
	Sales_item book1, book2;
	cin >> book1 >> book2;
	cout << book1 + book2 << endl;
	system("pause");
	return 0;
}
  • 练习1.22
using namespace std;
#include<iostream>
#include"Sales_item.h"

int main()
{
	Sales_item book, sum_book;
	while (cin >> book)
	{
		sum_book += book;
	}
	cout << sum_book << endl;
	system("pause");
	return 0;
}

1.5.2初识成员函数

  • 成员函数:定义为类的一部分的函数,也称作方法

1.5.2 节练习

  • 练习1.23~1.24:
using namespace std;
#include<iostream>
#include"Sales_item.h"

int main()
{
	Sales_item item1, item2, items;
	cin >> item1;
	items = item1;
	while (cin >> item2)
	{
		if (item1.isbn == item2.isbn)
		{
			items += item2;
			item1 = item2;
		}
		else
		{
			cout << items << endl;
			items = item2;
			item1 = item2;
		}
	}
	cout << items << endl;

	system("pause");
	return 0;
}

1.6 节练习

  • done
C++Prime学习笔记 文章被收录于专栏

勇敢和愚蠢只有一剑之差

全部评论

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
在评审的大师兄很完美:像这种一般就是部门不匹配 转移至其他部门然后挂掉 我就是这样被挂了
点赞 评论 收藏
分享
2 2 评论
分享
牛客网
牛客企业服务