C语言复习 - 第二章

一个程序主要包括以下两方面的信息

        1、对数据的描述 - 即数据结构

        2、对操作的描述 - 即算法

//累乘
int a = 1;
for ( int i=2; i<=5;++i)
    
    a = a*i;
printf("%d\n",a);

++i:i的值增大1

for(表达式1;表达式2;表达式3){语句块1)

表达式1 - 初始化循环因子,有且执行一次

表达式2 - 判断,为真循环继续,为假循环结束

表达式3 - 修改循环因子的值

表达式1/表达式2 - 除,得到商,要注意整除问题(整数/整数,结果为丢弃小数的整数)

表达式1%表达式2 - 取余,得到余数,余数为0,就是整除

==        :等号,判断左右是否相等

=        :赋值,把右边的值赋值给左边

&&        :且        !=        :不等        ||:或

//输出2000~2500之间的闰年
for(int year=2000;year<=2500;==year)
{
    if (year % 4 ==0 && year%100 != || year%400 == 0)
        printf("%d是闰年\n",year);
}

数据类型(字节数,数的范围)1字节=8比特,1比特为1位,每一位上有一个0或1

字符:char(1) - 用于保存英文字符,不能保存中文,种类2的八次方(256)个

整数:short(2),int(4)(默认),long(4),long long(8)

小数:float(4),double(8)(默认),long double(8)

指针

自定义数据类型

求字节数的运算符,sizeof(不是函数)        例:求int的字节数 :sizeof(int)

运算符:作用

():函数,提升优先级

逻辑谓词:真:非0;假:0

!:非,不是

表达式1&&表达式2:逻辑与(全真才真,一假全假):注意短路现象 - 即表达式1假,则2不运算

表达式1||表达式2:逻辑或(全假才假,一真全真):注意短路现象 - 表达式1真,2不运算

< > =        :大于,小于,等于 - 注意不能连续比较        如:1<2<4 - 其中,1<2结果为真,数值表达为1,再运算就变成1<4。如果想进行多次比较,可使用逻辑谓词加比较运算符进行判断。

++i :i的值增大1        --i:i的值减少1

其中++和--都有前置和后置的区别,前置即++i(先进行i+1,再使用i变量),后置即i++(先使用i变量,再进行i+1),例 int i= 3,a,b;a=++i;b=i++;        最后结果,a=4,b=3        (不过++,--,单独使用时没有区别)

&变量:获取变量的地址

*变量:间接访问符,解引用

(类型)变量:把变量强制转为()中的类型

sizeof:取占内存大小运算符。

* / %:乘 除 取余

%:取余,可判断整除,还可控制范围 - 注:两边都需为整型,即整数。

表达式1?表达式2:表达式3        :如果表达式1为真,执行表达式2,否则执行表达式3

//判断素数
int n;
scanf("%d",n);
for (int i = 2;i<n;++i) //这里可以优化,将i<n改成i<sqrt(n) - sqrt(n)-n开根号,需要引用math.h
{
    if(n%i == 0)
    {
        printf("%d不是素数\n",n);
        return 0;//提前退出程序 - 后面学了break,也可以用break
    }
}
printf("%d是素数\n",n);
return 0;
//小数求和
double sum = 0;
int sign = 1;
for ( int deno = 1; deno <= 100; deno++)
{
    sum += sign*1.0/deno;//1.0是为了破坏整除,如果整除那么1/deno结果一直为0
    sign *= -1;//这里*=,和+=,都是复合赋值运算符。sign*=-1,等价sign=sign*-1 - +=,-=等类似
    
}
printf("%lf\n",sum);

 ——————————————————————————————

后缀名为.c的C语言源程序都可以单独进行编译

只有含有main函数的源程序文件经过编译链接才能被执行

main函数不能被其他函数调用

c程序的基本组成单位是函数

c语言的标识符可分为关键字、预定义标识符和用户标识符 - 只能由字符、数字、下划线构成,且只能以字母,下划线开头。 - 最多由274个字符组成。

在c语言程序中,可以用一个符号名来代表一个常量,称为符号常量,符号常量在定义时不需要类型,其本身就能表达其类型。

单引号表示字符常量,但不能包含字符串,表达字符串常量时需用双引号。

C语言中实型(小数)常量有两种表示:小数形式和指数形式

小数必须要有小数点,但是小数部分可以省略。

在指数形式中,字母e(或E)之前必须要有数字,且e(或E)后面的指数必须为整数 - 如

0.5e3 = 0.5*10*10*10

八进制整数常量以数字0开始,十六进制以0x开头        结尾加L表示长整型数据。

定义变量时不能连续用等号,如 int a=b=c=8;这样是不可以的

c语言中整型常量可以用十进制、八进制、十六进制数来表示。虽然计算机只能识别二进制数,但是二进制不能用在源程序中。

在多目运算符相关联的运算数中,如果类型不一致,系统将自动进行类型转换,使两边的类型达到一致后,再进行运算,转换的规则是“由低到高”

x+y这种带有运算形式的符号不能作为左值,即不能放到=左边

在类型转换过程中,如果较高类型转换成较低类型,直接忽略多余位数。

取x的百位上的数字 - x/100%10

x/100:结果的个位数上数字是x的百位上数字,要得到此数据,在%10即可。

ASCII码表中有几个符号对应的数字需要记一记:'0'~48;'\0'~0;'A'~65;'a'~97

  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值