《C++primer》读书笔记---第一章:开始

前言:

lz新人小白,刚开始学习C++,听从网上的建议买了《C++primer》,由于楼主脑子不太好使,故写此博客来巩固自己所学的知识。感兴趣的同学可以一起学习,共同进步、共同成长

正文 :

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

一个程序的入口为main函数,main函数的返回值被用来指示状态 ,返回值0表示 成功,非 0的返回值的含义由系统定义,通常用来指出错误类型

1.2初识输入输出

  • 使用输入输出的功能应包含iostream头文件,iostream库包含于C++标准库中,其中定义了四个IO对象:cin、cout、cerr、clog
  • <<(输出运算符)和 >>(输入运算符)接受两个运算对象,其左侧为istream/ostream对象,右侧运算对象为待输入/输出的值且下面两个表达式等价:
std::cout << "Enter two number :"<< std::endl;
std::cout << "Enter two number :";
std::cout << std::endl;
  • std命名空间:标准库中的所有名字都在命名空间std中,所以使用cin、cout、endl…时需要在前面加上std::(也可在程序的开头使用using namespace std;)

1.3注释简介

可以使用//对程序进行单行注释,也可以使用C语言的注释方法:在需要注释的代码前后各加入/* 和*/,且采用以下的风格可以时注释内容更加清晰明了:

/*
 *简单主函数
 *读取两个数,求它们的和
 */

注意:注释界定符(*/)不能嵌套,以下的例子很好的说明了这个问题

/*
 *注释对/* */ 不能嵌套
 * “不能嵌套”几个字会被认为是源码,
 * 像剩余程序一样处理
 * /

1.4控制流

使用while、for等控制流语句可以写出更为复杂的执行路线

1.5类简介

类机制是C++语言最重要的特性之一,C++作为面向对象编程的语言,类机制是必不可少的

1.6书店程序

练习

练习1.1:

查询你使用的编译器的文档,确定它所使用的文件命名约定,编译并运行第2页的main程序。

int main()
{
	return 0;
}

练习1.2:

改写程序,让它返回-1。返回值-1通常被当作程序错误的标识。重新编译并运行你的程序,观察你的系统如何处理main返回的错误标记

int main()
{
	return -1;//lz使用的是vs2019,不会报错
}

练习1.3

编写程序,在标准输出上打印Hello,world。

#include <iostream>
int main()
{
	std::cout << "Hello,world。" << std::endl;
	return 0;
}

练习1.4

我们的程序使用加法运算符+来将两个数相加。编写程序使用乘法运算符*,来打印两个数的积

#include <iostream>
int main()
{
	int a = 0;
	int b = 0;
	std::cin >> a >> b;
	std::cout << "The mul of " << a << " and " << b
		<< " is " << a * b << std::endl;
	return 0;
}

练习1.5

我们将所有输出操作放在一条很长的语句中,重写程序,将每个运算对象的打印操作放在一条独立的语句中。

练习1.6

解释下面程序片段是否合法。

std::cout << "The sum of " << v1;
	          << " and " << v2;
	          << " is " << v1 + v2 << std::endl;

如果程序是合法的,它输出什么?如果程序不合法,原因何在?应该如何修正?
在这里插入1描述
答:运行结果如图,错误原因为前两行代码不应该加分号

练习1.7

编译一个包含不正确的嵌套注释程序,观察编译器返回的错误信息。

#include <iostream>
int main()
{
	/*
 *注释对/* */ 不能嵌套
	 * “不能嵌套”几个字会被认为是源码,
	 * 像剩余程序一样处理
	 * /
	return 0;
}

运行结果如下图:在这里插入图片描述

练习1.8

指出下列哪些输出语句是合法的(如果有的话):

std::cout << "/*";
	std::cout << "*/";
	std::cout <</*"*/"*/;
	std::cout <</*"*/"/*"/*"*/;

答:前两句正确,后两句错误

练习1.9

编写程序,使用while循环将50到100的整数相加。

#include <iostream>
int main()
{
	int sum = 0;
	int val = 50;
	while (val <= 100)
	{
		sum += val;
		val++;
	}
	std::cout << "sum of 50 to 100 inclusive is "
		      << sum << std::endl;
	return 0;
}

练习1.10

除了++运算符将运算对象的值增加1之外,还有一个递减运算符(–)实现将值减少1.编写程序,使用递减运算符在循环中按递减顺序打印出10到0之间的整数。

#include <iostream>
int main()
{
	int count = 10;
	while (count>=0)
	{
		std::cout << count << " " ;
		count--;
	}
	return 0;
}

练习1.11

编写程序,提示用户输入两个整数,打印出这两个整数所指定的范围内的所有整数

#include <iostream>
int main()
{
	int a, b;
	std::cout << "请输入两个整数:" << std::endl;
	std::cin >> a >> b;
	if (a < b)
	{
		int temp = a;
		a = b;
		b = temp;
	}
	while (a >= b)
	{
		std::cout << a << " ";
		a--;
	}
	return 0;
}

练习1.12

下面的for循环完成了什么功能?sum的终值是多少?

int sum = 0;
	for (int i = -100; i <= 100; ++i)
	{
		sum += i;
	}

答:功能为-100到100的整数和,终值是0

练习1.13

使用for循环重做1.4.1节中的所有练习(第11页)

练习1.14

对比for循环和while循环,两种形式的优缺点各是什么?
答:for循环通常在知道循环次数的情况下使用,while循环通常在不知道循环次数但是知道循环的终止条件时使用

练习1.15

编写程序,包含第14页“再探编译”中讨论的常见错误,熟悉编译器生成的错误信息

练习1.16

编写程序,从cin读取一组数,输出其和

#include <iostream>
int main()
{
	int sum = 0;
	int a = 0;
	while (std::cin >> a)
	{
		sum += a;
	}
	std::cout << sum;
	return 0;
}

练习1.17

如果输入的所有值都是相等的,本节的程序会输出什么?如果没有重复值输出又会是什么
答:如果全重复,则只有一行输出,如果没有重复值,输入几个数字就会输出几行

后面关于类的练习Lz懒得去下载源码,在这里就不写了,大家在做的时候可以在头文件新建一个项目,将下载的代码拷贝上去。

这是LZ写的第一篇博客,写的不好请见谅,如果文中有任何错误,欢迎大家指出,我会及时修改。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值