1.1:C++第一个程序
欢迎大家阅读我的文章,接下来我将持续更新C++的教程,内容或许不完整,请大家原谅。
那好,我们现在开始学习。
C++是一款编程语言,学起来很难,但学会了就能干很多事情。因为它高效、简洁、快速。话不多说,我们先来观察一串程序:
程序清单1.1.1
//程序清单 1.1.1.cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
cout<<"Hello, world!"<<endl;
return 0;
}
程序清单1.1.1解析与探讨
上面这个程序是一串简单的代码,我先介绍一下C++文件的后缀。C++文件的后缀是.cpp,创建文件的时候,要把.cpp后缀加上。“//”是注释的意思,凡是在“//”后面的字、句,编译器都不会管。意思就是说,你可以在“//”后面想写啥就写啥。但我建议写上注释,在C++文件的开头写上它的名字。
我们现在正式看一下这串代码。
#include <bits/stdc++.h>
上面这一串代码是声明头文件的意思。什么是头文件呢?顾名思义,就是打开在开头的文件。头文件有很多种,比如上面的“bits/stdc++.h”,和“iostream”,等等。头文件前面的“#include <>”是打开头文件的意思。
再看一下下面的代码:
using namespace std;
这串代码的意思是命名std空间。可能有些人不懂,但只要将每个C++程序都加上它就行了,当然,你也可以不加,这个我不做解释。
然后是下面的函数:
int main(){
cout<<"Hello, world!"<<endl;
return 0;
}
这其中的“int main(){}”是定义main()函数的意思。第一行的“int main(){}”是函数头,花括号中间的叫函数体。每个C++程序都至少有一个main()主函数。程序会执行main()主函数中的命令,执行完了,程序也就结束了。这里的“cout<<"Hello, world!"<<endl;”是在电脑屏幕上打印Hello, world!的意思。专业术语叫输出。最后,“return 0;”是结束程序的意思。
这里要注意一下,每个C++语句后面都有一个分号。C++中所有符号都是英文的,所以这个分号也是英文的。分号是结束一串语句的意思,C++语句后方必须有一个分号。
以上就是这串代码的解析。
1.2:多元素输出
我们来看一道题:
例1:多元素输出引例
题目描述:
在电脑屏幕上分两行输出“I like C++!”和“I like the world!”。
输入:
无
输出:
分两行,第一行输出“I like C++!”,第二行输出“I like the world!”。
样例输入:
无
样例输出:
I like C++!
I like the world!
这道题是一道简单的输出例题,换不多说你们看一下答案:
程序清单1.2.1
//程序清单 1.2.1.cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
cout<<"I like C++!"<<endl<<"I like the world!"<<endl; //多元素输出流
return 0;
}
或者下面的代码:
程序清单1.2.2
//程序清单 1.2.2.cpp
#include <bits/stdc++.h>
using namespace std;
int main()
{
printf("I like C++!\nI like the world!\n"); //C风格输出函数
return 0;
}
例题解析:
这道题是一道基础的输出题,两串代码都是输出的意思,程序清单1.2.1.cpp中,“endl”这个命令是换行的意思。如果有些C语言基础的都知道,“printf()”函数也是用来输出的意思,建议初学者不要使用。
例2:画图
题目描述:
在电脑屏幕上用“*”打出一个三层五列的三角形。
输入:
无
输出:
如题,输出三角形。
样例输入:
无
样例输出:
*
***
*****
下面是参考答案:
程序清单1.2.3
//程序清单1.2.3.cpp
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout<<" *"<<endl;
cout<<" ***"<<endl;
cout<<"*****"<<endl;
return 0;
}
程序清单1.2.4
//程序清单1.2.4.cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
printf(" *\n");
printf(" ***\n");
printf("*****\n");
return 0;
}
例题解析:
这道题是一道输出题,程序清单1.2.3和1.2.4都是上面例题的答案。如果初学者看不懂,就不要学习程序清单1.2.4的风格。
1.3:输入
输入指的是:从键盘上读入数据,将数据储存到一个变量里。变量的意思是,一个值可以改变的量。首先,我们要先学习变量的定义。
请看下面的代码:
//程序清单1.3.1.cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
int x=101; //定义变量x,其值可以被修改
cout<<x<<endl;
return 0;
}
程序清单1.3.1解析与探讨:
这个程序中,用到了“int x=101;”这个语句。这个语句是什么意思呢?“int”是一个整数变量的定义前缀,空格,然后定义变量名。等号在这里指的是赋值的意思,后面是一个变量的初始值。当然,你也可以不定义初始值。
请看下面的程序:
//程序清单1.3.2.cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
int x;
cin>>x; //从键盘上读入变量x
cout<<x<<endl;
return 0;
}
程序清单1.3.2解析与探讨:
这个“cin>>x;”语句又是什么语句呢?这个语句的意思是,直接从键盘上读入一个整数数据(其值不能太大,也不能太小),然后从屏幕上输出。这就是输入。
重点知识1:
下面是定义变量前缀的代码表格:
short | 短整型,储存的数据较小 | |
---|---|---|
unsigned short | 无符号短整型,只储存正整数 | |
char | 字符类型,只储存单个字符 | |
int | 整型,储存数据一般 | |
unsigned int | 无符号整型,只储存正整数 | |
float | 浮点数(小数),精度较低 | |
double | 浮点数(小数),精度一般 | |
long double | 浮点数(小数),精度较高 | |
long int | 长整型,储存数据较大 | |
unsigned long int | 无符号长整型,只储存正整数 | |
long long | 超长整型,储存数据最大 | |
unsigned long long | 无符号超长整型,只储存正整数 | |
sting | 字符串,可储存多个字符,字符数据大小不定 | |
bool | 布尔值,只有1和0两个值,1代表有,0代表无 |
上面是简单的一些定义前缀,都是常用的,加红部分是经常用的。一共五个,只要记住了,后面的顺序结构也就非常简单了。
1.4:练习题
满分:100分 建议完成时间:30分钟 难度:入门
一、单选题(共5题,每题5分,共25分)
1.下面说法正确的一项是:()。
A.C++中可以调用C语言的代码 B.C++中可以没有主函数 C.C++中的“using namespace std;”语句不能删去
2.下面说法正确的一项是:()。
A.C++中不能多元素输出 B.C++中“return 0;”时结束程序的意思 C.C++中只有14种定义变量的前缀
3.下面代码正确的是:()。
A:
//选项A
#include <bits/stdc++.h>
using namespace std;
int main(){
cin>>n;
cout<<n<<" is a int."<<endl;
return 0;
}
B:
//选项B
#include <bits/stdc++.h>
using namespace std;
int main(){
int x,c;
cin>>x>>c;
printf("%d %d\n",x,c);
return 0;
}
C:
//选项C
#include <bits/stdc++.h>
using namespace std;
int main(){
int x,c;
cin>>x>>c;
printf("%d %d\n",x,c);
}
4.C++中()是必要语句。
A.using namespace std; B.return 0; C.#incldue <bits/stdc++.h>
5.C++中()是不必要语句。
A.int main(){} B.return 0; C.cout<<endl;
二、判断题(共5题,每题3分,共15分)
1.在C++中必须定义变量。()
2.在C++中不可以用Python语句。()
3.C++只能有一个函数。()
4.下面的代码是正确的。()
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,d,e,f,g;
cin>>a>>b>>c>>d>>e>>f>>g;
cout<<g<<" "<<f<<" "<<e<<" "<<d<<" "<<c<<" "<<b<<" "<<a<<endl;
return 0;
}
5.下面的代码是错误的。()
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,d,e,f,g;
cin>>a>>b>>c;
printf("%d %d %d\n",a,b,c);
return 0;
}
三、应用题(共3题,每题20分,共60分)
1.正向输出
题目描述:
输入三个数,然后正向输出它们。
输入:
输入三个数,中间用空格隔开。
输出:
正向输出三个数:
样例输入:
123 456 789
样例输出:
123 456 789
2.逆向输出
题目描述:
输入五个数,然后倒着输出它们。
输入:
五个数,中间用空格隔开。
输出:
到这输出这五个数。
样例输入:
5 4 3 2 1
样例输出:
1 2 3 4 5
3.多元素输入输出
题目描述:
分别输入一个字符、整型和浮点类型的变量,倒着输出它们。
输入:
输入三行,第一行一个字符,第二行一个整数,第三行一个浮点数。
输出:
倒着输出以上元素。
样例输入:
#
123
3.14
样例输出:
3.14
123
#
1.5:练习题答案
一、1.(A) 2.(B) 3.(B) 4.(B) 5.(C)
二、1.(F) 2.(T) 3.(F) 4.(T) 5.(F)
三、
1:正向输出
参考代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n1,n2,n3;
cin>>n1>>n2>>n3;
cout<<n1<<" "<<n2<<" "<<n3<<endl;
return 0;
}
2:逆向输出
参考代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n1,n2,n3,n4,n5;
cin>>n1>>n2>>n3>>n4>>n5;
cout<<n5<<" "<<n4<<" "<<n3<<" "<<n2<<" "<<n1<<endl;
return 0;
}
3:多元素输入输出
参考代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
char c;
int n;
double b;
cin>>c>>n>>b;
cout<<b<<endl<<n<<endl<<c<<endl;
return 0;
}