注意:填空题不能加分号,程序填空要看清题目有没有给分号。填空题要求填输出的内容是不要在末尾加\n。
C艹概述
1.程序是指为进行某项活动所规定的途径。
2.算法是指解决某个问题所需要的方法和步骤。
3.计算机是用电子电路进行计算的。CPU(中央处理器)是制造好的电子电路。
4.计算机最小的存储单位是bit。
5.源文件是用高级语言编写的、有待翻译的程序,以文件的形式保存于计算机外存(如硬盘)。C艹源程序文件拓展名.cpp。
6.C艹程序开发要经历编辑、编译、链接、运行调试的过程(用到编辑器、编译器、链接器(IDE集成开发环境))。程序的开发过程是反复的。
7.程序=算法+数据结构。算法特征:可行性、确定性、有穷性、输入输出。
8.标准的IPO程序包括:input、processing(处理)、output。
main函数
1.在执行程序时,操作系统首先自动调用主函数。
2.main函数返回0表示程序正常终止,返回其他非0值表示程序异常终止。
3.语句是程序运行时执行的命令,C艹中表示语句结束的符号是分号。(填空题可能反应不过来要填什么。)
大小写陷阱
C艹程序一般应该含有Main函数,它是程序执行的入口(B)。
A.对 B.错
解:B,C艹考试要求英文单词的写法跟写程序时的一样。
按照C艹标准的规定,main函数还可以是:
int main(int argc,const char* argv[]) {
//……
return 0;
}
头文件
1.C艹标准库(如iosteam)都封装在名字空间std中,以防止标准库中的名字与其他名字冲突。
2.使用标准库,不仅要#include <标准库头文件>,还得让名字空间std中的名字曝光,才能正确使用cout、endl。这就是using namespace std;的作用。(也可using std::cout,etc……)
3.iostream包括不带参数的操纵符(如endl);iomanip包含带参操纵符(如setw)。
3.cout默认与标准输出设备(显示器)相关联。输出运算符(又名流提取运算符)<<用于将数据输出到cout。
4.cin和cout是(B)。
A.函数 B.对象
5.数学函数sinx和lnx包含在cmath中。
标识符
1.标识符以字母/下划线开头。
2.标识符无长度限制,但编译器可能有。
关键字
关键字又称保留字,在C艹中都是小写的。C艹中,关键字是预先定义并实现一定功能的一类单词。
数据类型
数据类型的作用
决定数据内部表示方式、取值范围、可用操作。
进制
八进制用0开头。十六进制用0x或0X开头,使用a-f中的字母时大小写都行。
后缀
L(注意它也可用于表示long double)、U、UL、LL、ULL、LU、LLU、F(float)
char
1.通常没人关心char是有符号还是无符号,需要时可直接指定。
2.有的编译器把char当有符号的,有的编译器把char当无符号的。
3.char在计算机中存储的是二进制编码值(取决于字符编码方案)。
4.转义字符:\a(alarm)、\b(backspace)、\f(换页)、\r(enter)、\t(table)、\v(vertical table)、\?、\ddd(1-3位八进制数代表的字符)、\xhh(1-2位十六进制数代表的字符)。
5.getchar和putchar(cin.get(ch)、cin.put(ch))。
bool
1.直接输出时输出的是1/0。可使用boolalpha输出true/false。
cout<<boolalpha<<B<<endl;
2.用任何非零值赋值,值都为1。
变量
1.C艹用“{}”统一了初始化方式。
2.auto必须通过初始化推断变量的类型。
3.用decltype声明变量:
int x;
decltype(x) y; //因为x是int类型,推断y也是。
4.骆驼命名法:同java。(要求常量全部大写(如果多单词用_连接)。)
5.变量四要素:名字、类型、变量、值。
6.bool b=3;定义了bool类型的变量b并给它赋了初值true。(A)
A.对 B.错
常量
1.常量分为字面常量(如88,1.76……)和命名常量(如const bool ggad=true或define;对使用较为频繁的字面常量进行命名,但必须初始化)。
2.常量87.363的数据类型是float(B)
A.对 B.错
运算符&表达式
1.运算符表示对数据(变量、常量)的操作,运算符操作的数据被称为操作数。两者构成表达式。
2.运算符按操作数个数分为一元、二元、三元。条件运算符是唯一的三元运算符(可以嵌套)。
3.标准输入输出对象都是左结合的。
注释
1.注释可以出现在任何合适的地方。
2.注释不参与编译,也不会出现在目标程序中。
字符处理函数
1.头文件<cctype>
2.分为字符分类函数(真1假0)和字符大小写转换函数,都具有int类型参数并返回int类型值。
int isdigit(int ch);
int isxdigit(int ch); //判断是否为十六进制数
int isalpha(int ch);
int isalnum(int ch); //判断是否为字母或数字
int ispunct(int ch); //判断是否为标点符号
int iscntrl(int ch); //判断是否为控制字符(控制字符不可打印)
int isspace(int ch); //判断是否空白
int isgraph(int ch); //判断是否可打印(不包括空格)
int isprint(int ch); //判断是否可打印(包括空格)
int islowwer(int ch);
int isupper(int ch);
int tolowwer(int ch);
int toupper(int ch);
//如果ch不是字母,保持原值不变。
数组
1.数组是复合数据类型,基本性质是有序同质。
2.数组是一组相关变量(数组元素)的集合。其中每个元素都具有相同的名字,只是下标不同(内存中顺序存放)。
3.两个同类型数组不能使用赋值运算符直接复制。必须遍历,且要求目标数组长度大于等于被复制的数组。
4.二维数组在内存中是按行存放的。先存放第一行元素,再存放第二行元素,……(以此类推)。每一行元素是按照列顺序存放的。
5.声明二维数组时,如果给定了数组初始化式,行长度可以省略(列不行)。
6.两个指针指向同一个数组中的元素时可使用关系运算符进行比较,结果取决于数组元素的相对位置。
7.自增自减运算符优先级高于解引用运算符。
声明指针数组
int MorisawaChiaki,HakazeKaoru,SenaIzumi;
int *p[3];
p[0]=&HakazeKaoru,p[1]=&SenaIzumi,p[2]=MorisawaChiaki;
动态内存分配
1.动态分配的内存空间通常称为堆(Heap)。
2.用一个指针指向动态分配的内存空间,通过对指针的操作,就可以使用这个内存空间了。(使用new和delete运算符)
bool *ggad=new bool;
*ggad=true;
int *SakumaRei=new int(20);
int *HakazeKaoru=new int{19};
delete SakumaRei;
SakumaRei=HakazeKaoru;
int *EccentricPartyNight=new int[55555];
delete EccentricPartyNight;
3.使用new动态分配内存不成功时抛出bad_alloc异常