某坑爹公司的笔记_Day03

来源:互联网 发布:海量大数据 面试 编辑:程序博客网 时间:2024/04/28 02:54

一、数据类型

1.数据类型分类

a.基本数据类型

b.引用数据类型(后续再讲)

2.基本数据类型

在C语言中,基本数据类型有四种:char、int、float、double。


二、字符型 char

1.底层存储是整数,是字符表(ASC)里面的编码。

2.二进制数<==>整数<==>ASC(字符)

3.ASC:American Standard Code

4.UTF8:全世界主流语言编码

5.计算机默认情况只支持ASC

6.常见字符:

‘A’= 65、’a' = 97、’0' = 48

1.char代表一个字符’ '括起来,占位8位(8bit)内存,8位二进制数占用1个字节(1byte)空间。

2.位bit:描述二进制数的位数

3.字节byte:描述占存储器的空间大小

输出函数printf输出char类型变量内容,所使用占分符为%c输出数据


三、输入函数scanf 键盘->程序

1)通过键盘向程序传输数据,等待(阻塞)用户输入。直到用户输入完毕,默认以回车为用户输入结束。

control+c 强制停止程序运行

2)语法格式 scanf(”%c",&ch);输入函数 

参数1 对应数据类型占位符

参数2 取变量地址,将键盘输入的数据存在

  相应地址中

scanf("%*c");//清空缓冲存


四、转义符 \

在做字符类型数据处理时,一些特殊的符号,需要转义处理。(特殊符号:与系统定义的语法符号冲突),转义处理,就会用到"\"符号,就是转义符。

常用的转义符处理:

\n 换行字符(下一行行首)

\r  回车字符(本行行首)

\t  制表符(相当于按tab)

点一下空格 等于一个字符

点一下tab  等于8个空格字符

\\ 斜杠字符

\'   单引号字符

\"   双引号字符 


五、数据的取值范围

1.数据范围 

unsigned(无符号) char 8位 1字节 0~255

char(有符号)char 8位 1字节 -128 ~ (0)127

2.有符号:最高位为符号位

3.溢出:超出最大值的范围,从最小值开始计算,超出最小值的范围,从最大值开始计算。


六、整型 int

1.int代表16位或32位二进制数,short/long修饰。

2.short (int) 16位,long (int)32位,long long long int 代表就是64位整数。推荐int类型描述整数。

3.signed int 第一位就是符号位。


在C语言中,整数有二进制数、八进制数、十进制数、十六进制数。

二进制数,以值0标识为开始,到1结束,当为2时会向前进一位。

十进制数,以值0标识为开始,到9结束,当为10时会向前进一位。

八进制数,以值0标识为开始,到7结束,当为8时会向前进一位。

十六进制数,以值0标识为开始,到15结束,当为16时会向前进一位。A10B11C12D13E14F15



七、进()制转换自动

1.赋值

int i = 11;//默认 十进制 

int i2 = 011;//八进制 

int i3 = 0x11;//十六进制 

2.输出

printf("i:%d i:%o i:%x\n",i,i,i);


取值范围

1.short 16位 2字节 有符号 -32768~32767

2.unsigned short 16位 2字节 无符号 0~65535

3.long 32位 4字节 有符号 -2^31~2^31-1(+-21亿)

4.unsigned long 32位 4字节 无符号 0~2^32-1


八、浮点型 float/double

1.有整数和小数两个部分组成

2.C语言中,浮点型包括float、double、long double。

  float 32位 4字节 2^32

double 64位 8字节 2^64

long double 96位 12字节 2^96

输出结果时,使用占位符

%f->float

%lf->double %g

%.2f输出的结果保留两位小数


九、数()制转换

1.进制转换是人们利用符号来计数的方法,包含有多种数据转换,进制转换由一组数码符号和两个基本因素(位与权),进制包括二进制、十进制、八进制、十六进制。


2.二进制和十进制

a、位与权

  9 3  位 = 3*1+9*10

          10  1 权

b、整数93在一个字节中的二进制存储方式

0      1      0    1    1   1   0   1 位

128  64   32  16  8   4   2   1 权

c、零和正数:符号位为最高位值0

1)二进制转换成十进制:一位加权 零位不见

01011101=1+4+8+16+64=93

01101101=109

2)十进制转换成二进制:有权添一 无权补零

93=0101 1101

93-64=29-16=13-8=5-4=1-1=0


[当日测试题]

1.char型变量在内存中存放的是:   

A)ASCII码       B)原码     C)内码值    D)十进制代码值

2. 关于C语言的说法错误的是()

   A.C程序的工作过程是编辑、编译、连接、运行

   B.C语言不区分大小写

   C.C程序的三种基本结构是顺序、选择、循环

   D.C程序从main函数开始执行

3. C语言中整数-8在内存中存储形式是:    

A)1111,1111,1111,1000             B)1000,0000,0000,1000

C)0000,0000,0000,1000             D)1111,1111,1111,0111

4.C语言提供的合法的数据类型关键字是:     

A) Double     B) short        C) integer      D) Char

5. 在C语言中,合法的字符常量是:  

A. ‘\084'      B)‘\x43'        C) 'ab'         D)“\0”

6.下列程序执行后的输出结果是  

A) G           B) H           C) I          D) J

main(){

int x='f';

printf("%c\n",'A'+(x-'a'+1));

}



0 0
原创粉丝点击