C语言学习笔记

发布 2021-05-12 01:29:28 阅读 2875

a.1. 需要成对敲入的符号。

2. 文件名不要出现。号,否则无法生成。c或。cpp文件,所以不能编译和运行。

3. 分号;代表一个语句,只有一个;的语句是空语句,所以下面的**不会报错,但表示若条件成立只执行空语句,并且条件语句结束:

if (a > b);

等价于:if (a > b)

//空语句。

4. 格式化输出中,建议用%#x输出16进制数,前面会带0x,例如。

in x = 15;

printf(“%#x”, x);

结果为0xf

5. if...else if...else语句中只能执行一个分支,即使多个分支中的表达式为真,也只执行第一个为真的分支。

6. 逻辑运算符语句中,可能有的表达式不会执行,例如:

m = 3>2) |k=2)

m = 3<2) &k=2)

其中k=2表达式不会执行。

7. scanf函数中最好不要出现除空格和逗号之外的非格式化控制符,尤其不要使用。在用scanf函数赋值之前,最好进行输入字符的过滤,免得之前输入数据产生影响:

char ch;

while (ch = getchar() n’)

continue;

8. 算术运算中如果有一个为浮点型,则结果也是浮点型,例如:

9. 优先级:

算术》关系》逻辑》赋值(算关逻赋)

10.取余运算符。

如果被除数与除数中有负数,则余数的正负由被除数决定,例如:

11. 自加和自减表达式应避免类似i++与++i的区别,既只单独用自加和自减表达式作为一个语句。

12. 自加和自减表达式只能对整数操作,对浮点数操作可能会出问题,因为浮点数在内存中有时候无法精确存储,例如float 1000.0可能等于999.999999。

13. for和while语句可以相互转换,但for语句的逻辑性更严密,不容易出错,所以尽量选用for循环。

14. 将一个整数val逆序输出:

int val;

int sum = 0;

int m = val;

while (m)

sum = sum*10 + m%10;

m /=10;

printf(“the reversed writing for val is: %d”, sum);

b.1. break只能用来终止距离它最近的for和switch语句,不能用于if,除非if属于循环内部的一个句子。c.d.

e.1. 在用scanf函数获取键盘输入数据后,为过滤掉额外的误输入字符,防止影响后面的数据输入,可以加上下面的语句:

char ch;

while (ch=getchar() n’)

continue;

f.1. 浮点型数据的精度:

float型数据默认为小数点后有6位有效数字,double类型能保证15位有效数字,需要指定小数点后的输出位数,例如:

double a = 1.0;

printf(“%10.9f”, a/3);

g.1. 关系运算符,一共有6个:

前4个的优先级高于后面2个。h.i.

j.k.

l.1. 程序运行的流程:

编译器把c源程序。c翻译成二进制形式的目标程序。obj,然后再将目标程序与系统的函数库以及其他目标程序链接起来,形成可执行的目标程序。

编译:.c或。c++源程序生成。obj目标程序。

链接:将多个。obj链接起来生成。exe文件。

运行:软件请求操作系统,运行链接生成的。exe文件。m.n.

o.p.

1. 判断一个浮点数是否为0的函数:

# include <>

# include <>

bool iszero(float f)

printf("the pi is %9.8lf", 4*sum);

return 0;y.z.

1. 最小公倍数函数:

int least_commultiple(int m, int n)

int i = 1;

while (m*i%n)

i++;return m*i;

2. 最大公约数函数。

int greatest_comdivisor(int m, int n)

int i;

i = m while (m%i ||n%i)

i--;return i;

3. 数值越界:

对于int类型的变量,如果数字过大,则超过的高位字节(例如32位以上)被丢弃,只保留低位字节,如下所示:

int i = 4300000000;

printf("%d", i); 结果为5032704 (4300000000-pow(2,32))

4. 指针变量的值是可以改变的,而数组名代表一个固定的值,不能改变。

5. 字符数组中各元素的值是可以改变的,但字符指针变量指向的字符串常量中的内容是不可以被重新赋值的,例如:

char a house”;

char * b = house”;

a[2] =r合法,因为a[2]本身就是个变量。

b[2] =r不合法,因为b[2]==b+2)==u’,为字符常量,不能对常量赋值。

c语言学习笔记

一元二次方程详解。不管我们写什么样的程序,首先要建起构架。c语言的构架是 include intmain void 我们首先需要把三个系数保存到电脑里面,怎么保存呢?我们会以变量的形式保存到电脑里面。比如说 inta 1 intb 2 intc 3 这个 的意思是赋值的意思,不是相等的意思。什么叫变...

C语言学习笔记

求余 求mod 运算符。变量命名规则 只能以字母数字下划线三种字符组成,且第一个字符必须为字母或下划线。scanf d a prindf d a c语言中,变量名是区分大小写的。int 范围 32768 32768 float的指数部分有8bit 2 8 由于是有符号型,所以得到对应的指数范围 12...

c语言学习笔记

回文数程序。回文数 1234321 12321 费博拉奇序数 1 2,3,5,8,13,21,34 include main void int f1,f2,f3,m f1 1 f2 2 if m 1 f3 1 if m 2 f3 2 else for i 3 i n i f3 f1 f2 f1 f2...