【C语言基础】C语言第三章

来源:互联网 发布:war包解析源码 编辑:程序博客网 时间:2024/04/30 02:40
课前复习:
三种基本的结构及其流程图:
顺序结构:画出x=1,y=2,求输出x+2*y的流程图。
选择结构:输入x,判断x是不是闰年的流程图,x是闰年输出“yes”,x不是闰年输出“no”。
循环结构:输入x,输出所有能整除x的正整数。


第三章 数据类型、运算符与表达式
数据类型:
基本类型(重点):整型,字符型,浮点型(单精度型,双精度型),枚举类型
构造类型(重点):数组类型,结构体类型,共用体类型
指针类型
空类型
常量的定义:#define
例3.1
#define PRIZE 30
#include <stdio.h>
void main()
{
    int num , total;
    num = 10;
    total = num * PRIZE;
    printf("total=%d\n" , total);
}
变量:可以变化的量。
变量的取名:只能由字母、数字、下划线组成,且数字不能开头。
  如: hello,he2,abc_3
但是3_a , 666_haha 就不能作为变量名。


sizeof的用法。
【整型数据】
整型数据在内存中的存放形式。(源码,补码,反码)。反码加减法。
整型变量的分类:基本整型(int),短整型(short),长整型(long)。(long long)
~源码,反码,补码。
[signed] int
unsigned int
[signed] short [int]
unsigned short [int]
[signed] long [int]
unsigned long [int]
int  -- %d
long  -- %ld
long long -- %lld
数据的溢出:
例3.3
#include <stdio.h>
void main()
{
    short a , b;
    a = 32767;
    b = a + 1;
    printf("%d,%d\n" ,a,b);
}
【浮点型数据】
C语言中的浮点数(floating point number)就是平常所说的实数(real number)。
浮点数的两种表示形式:
(1)十进制小数形式。 0.123、123.、123.0、0.0
(2)指数形式。 123e3、123E3都行,但是e之前必须有数字,e后面必须是整数。
浮点型变量的分类:float,double,long double
float -- %f
double  -- %lf
浮点型数据可能会遇到的“舍入误差”。
例3.4
#include <stdio.h>
void main()
{
    float a,b;
    a = 123456.789e5;
    b = a + 20;
    printf("%f\n" , b);
}
【字符型数据】
字符常量
'a' , 'b' , 'c' , 转义字符。
"\n"这种类型的都叫做转义字符。具体见page.48 表3-3
每个字符都对应一个ASCII码,可以尝试以整型输出。
字符变量
char c = 97; printf("%c\n" , c); 尝试输出 printf("%d\n" , c);
字符串常量(双引号"",区别于字符的单引号'')
"How do you do","CHINA","a","$123.45"
可以输出一个字符串,如:
printf("How do you do.");
【变量赋初值】
int a = 3; /* 指定a为整型变量,初值为3 */
float f = 3.56; /* 指定f为浮点型变量,初值为3.56 */
char c = 'a'; /* 指定c为字符变量,初值为'a' */
int a = 1 , b = 2 , c = 3;
int a , b , c = 3;
可以赋,可以不赋,试试上面的赋值后的结果~
【C语言运算符】
(1)算术运算符 (+   -   *   /   %)
(2)关系运算符 (>   <   ==   >=   <=   !=)
(3)逻辑运算符 (!   &&   ||)
(4)位运算符 (<<   >>   ~ |   ^   &)*扩展一下位运算的知识。
(5)赋值运算符 (=及其扩展赋值运算符)
(6)条件表达式 (?:)
(7)逗号表达式 (,)
(8)指针表达式 (*和&)
(9)求字节数运算符 (sizeof)
(10)强制类型转换运算符((类型))
(11)分量运算符 (.   ->)
(12)下标运算符 ([])
(13)其他 (如函数运算符())


复合的赋值运算符:
a += b; == a = a + b;
a -= b; == a = a / b;


练习:
设初始时a=12,求以下运算后a的值:
(1) a += a; (2) a *= a;(3) a |= 30;
(4) a *= 2 + 3; (5) a += (3!=4);


逗号表达式:
表达式1,表达式2,表达式3,……,表达式n


程序的输入:
scanf("%d%d" , &a,&b);


习题:

3.3,3.9,3.12



0 0