第二章 c/c++快速入门

本文介绍了C++与C语言的基础知识,包括整数与浮点数的选择、字符编码、字符串处理、基本输入输出操作、数组与字符数组的初始化及使用、指针的概念与应用、结构体的初始化方法等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.整数范围选择:10^9以内或者32位整数,用int。10^18以内或者64位整数用long long

 2浮点型用double即可。

3字符常量用ASCII统一编码。标准ASCII范围0~127。0~9,A~Z,a~z对应的ASCII码分别为48~57,65~90,97~122.

4.字符串可以直接赋值给字符数组,用%s格式输出。

5.c++中bool类型可直接使用。但c语言中需要包含stdbool.h才可使用。正型常量赋值给bool型变量会自动转换为true(非0)或者false(0)

6(int)a  可以将a变量类型强制转换为整型。

7条件运算符格式:a?b:c;

8.int上限为2^31-1,可以用(1<<31)-1表示。即1左移31位减1,但,为避免相加超过int,多用2^30-1,即ox3fffffffl.

9.scanf(“%lld”,&a) 输入long long型a;scanf(“%lf”,&b) 输入double型b;

10除了%c外,scanf对其他格式符(如%d)的输入是以空白符(空格,tab)为结束判断标志的。因此除了%c会

把空格(以及换行符)按字符读入,其他情况都会自动跳过空格。另外%s以空格和换行符做为读入结束标志。

11.scanf的&一定要注意检查!!!

12printf(“%lld”,a) 输出long long型a;scanf(“%f”,b) 输出double型b;

13printf("%%")   输出 %  ; printf("\\")    输出 \

14%md可以使不足m位的int类型以m位进行右对齐输出,其中高位用空格补齐;如果变量本身超过m位,则保持原样。

  %0md 与上面唯一不同在于补齐时用0;%.mf可以让浮点数保留m位小数输出,使用的是四舍五入。

15.c=getchar();putchar(c)  分别是接收一个字符,和输出一个字符。注意getchar()可以识别换行符。

16typedef 原名 别名  可以简化代码。

17.math.h下的数学函数:fabs(double x)  直接对double类型取绝对值;floor(double x),ceil(double x) 分别向上,下取整。返       double类型;pow(double r,double p) 求r的p次方。sqrt(double x);log(double x)   ==ln x,其他对数用换底公式。sin(double x) cos(double x),cos(double x),tan(double x),x均为弧度。对应反三角函数前面加a,如asin。round(double x) 返回double类型,四舍五入取整。

18.if(condition 1)...else(condition 2) 是错误的格式。

19.switch(表达式)

{

case 常量表达式:....

                           break;

case 常量表达式:....

                           break;

......

default:.........

} 注意:两个case之间的语句默认属于上一个case;break用适当使用。

20.for(int i=0;......)  c++允许,c不允许。

21break可以退出循环和switch,continue可以跳过本次循环。

22.从键盘输入的数是不能做数组的长度的。数组的不完全赋值使得未赋值的元素可能为0,也可能是随机数。

23 int  a[10]={0}; int a[10]={ };对数组的每个元素都置0。  inta[5][6]={{3,2,1},{2,4},{},{1,2,3,4,5,6}} 二维数组初始化

时按第一维的顺序初始化。{}表示a[2]全为0,其他没有赋值的默认为0.另外,大数组(10^6左右)要定义在主函数外,

原因:函数内部的局部变量申请的空间来自系统栈,空间较小;函数外的来自静态存储区,空间较大。

24对数组全赋值为0,或者1:memset(数组名,值,sizeof(数组名))  要包含<string.h>头文件。

25.字符数组初始化:char str[3]={'a','b'.'c'};   char str[3]="abc"; 后者仅仅在初始化是可用。

26. gets(str) str是字符数组名。在scanf后有注意用getchar吸收掉一个换行符。以\n作为读取结束标志。puts(str) 输出

字符串,并紧跟一个换行符。str也是字符数组名。

27一维字符数组(或者二维字符数组的第二维)的末尾都有一个空字符\0,来表示字符串的结尾。用gets或scanf输入字符串时

会自动添加到字符串后面,并占用一个字符位。而相应的puts和printf都是通过识别\0作为字符串的结尾来输出的。

注意:\0的ASCII码是0,开字符数组时长度要比实际字符串长度至少多1.若不用scanf的%s格式或者gets函数输入字符串。(如

用getchar,scanf的%c格式),记得在串末尾家\0.否则会出现乱码。

28.字符串函数:头文件<string.h>   strlen(str) 获取字符数组str第一个\0前的字符的个数。strcmp(字符数组1,字符数组2),比较原则是依次从前往后按字符在英文字母中的顺序(a,b,c...)比较。数组1>2,返回正整数。相等返回0,否则返回负整数。

strcpy(字符数组1,字符数组2),把字符数组2连同\0一起复制到字符数组1。strcat(字符数组1,字符数组2),把字符数组2接到字符数组1后面。

29.数组作为函数参数,对数组的修改等同于对原数组的修改。二维数组形参格式 void fun(int b[][5])

30指针是一个unsigned格式的整数。多个指针变量的定义时每个前面都要加一个*。没有初始化的指针不能引用它指向的

单元的内容,因为他的指向是随机的,若指向系统工作区,极有可能出错。实参传递地址,形参接收的仍然是地址的副本。

因此无法实现在被调函数中交换地址实现主函数变量地址的交换。指针引用格式(函数原型)为:void fun(int *&a)  。

31.结构体的初始化:对每一个变量进行初始化;或者用构造函数。

32.cin.getline(str,100)  读取一行到字符数组str中。

33.圆周率pi的求法:cos(pi)=-1,则acos(-1)=pi.

34.单点测试:几组测试数据,过了几组得几组的分。要过所有的数据。

35.读到文件末尾:while(scanf("%d",&n)!=EOF)  //scanf返回读取数据的个数。读到文件末尾返回-1而EOF=-1.输入EO式:ctrl+z

                            while(scanf("%s",str)!=EOF) 和while(gets(str)!=NULL)  读字符到文件末尾。

                            满足某个条件结束读取。可结合break使用。n组测试数据的读取用一个变量控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值