一、C语言基础

1. 学习方法

多看+多敲+多思考总结

2. C语言历史

机器码: 01二进制去写代码,困难很大 10+11运算

+ ---》 01001

汇编语言:用助记符替换掉机器码中的序列

+ ---》add

B语言

1972年: 设计unix系统而发明了C语言

3. C语言中变量类型及其使用

变量:用来存放各种类型的数据   商品的价格---》小数表示 4.0 3.5

商品的数量---》整数

商品的名称---》中文字符串或者英文字符串

变量类型:int(整型) float(单精度浮点型) double(双精度浮点型) short(短整型) long(长整型)long long int(长长整型) char(字符类型) bool(类型) struct(结构体) union(联合体) enum(枚举) unsigned(无符号数)

变量的使用:

语法规则: 类型 变量名字;

int ab123;

float price; //英文单词,或者缩写

float jiage; //最恶心的

C语言命名规范:

第一个:变量的名字中只能有字母,数字和下划线组成,并且首字母不能是数字 ab Ab ab78 a79 _abc 7mn(非法) a#b(非法) h@c(非法)

第二个:命名的时候尽量通俗易懂,不要用汉语拼音,用英文单词缩写

(1)整型

大小: 4个字节,32位二进制,知道大小是为了防止使用的时候数据溢出了(超出取值范围了)

存储:

原码:一个整数原本的二进制编码

比如: 8的二进制原码 1000(短除法求)

反码:把原码依次取反

原码:1101 --》反码0010

补码:反码加1

原码:1101 --》补码0010+1 --》0011

正数在计算机中采用原码存放,并且最高位是符号位,0表示正数,1表示负数

1010

负数在计算机中采用补码存放 -88

练习: 熟悉一下短除法,求各种进制

-1的二进制是多少

(2)浮点型

float占4个字节

double占8个字节

小数在计算机中是无法精准存储的

比如: 12.5

12.6

(3)short

2个字节

long 32位系统4字节 64位系统8字节

long long int 12字节

(4)char

存放单个字符的ASCII码值 占1个字节

@ # $ % 'a' 'b' 'c' '1' '6' 8 9 0

美国人制定了ASCII码表,把字符编码成整数

man ASCII命令可以查看ASCII码表

'A' -->65

'a' -->97

'0' -->48

char a='@'; //C语言规定字符必须用单引号括起来

(5)布尔类型

bool--》判断真假的,跟C语言的条件判断相配合

注意: 添加#include

只有两个值: true 真 false 假

定义: bool a=true; //等价于 bool a=1;

bool b=false; //等价于 bool b=0;

(6)无符号数

unsigned int a; //无符号数a,不区分正负,当成纯粹的数字来计算,最高位不是符号位了

unsigned float b;

unsigned char c;

练习:

第一题:

char b='b';

char c=b+5; //请问c是多少

#include

intmain()

{char b = 'b';char c = b+5;

printf("C的ASCII值为:%dn",c);

printf("C的符号为:%cn",c);return 0;

}

结果如下:

第二题:

char a=389; 请问打印a的值是多少?? 为什么??

考察数据溢出之后计算机是如何处理的

#include

intmain()

{char b = 400;char c =300;

printf("b的值为:%dn",b);

printf("C的值为:%dn",c);return 0;

}

结果如下:

b的值为:-112C的值为:44

原理:从结果来看,char类型的变量a存放的值溢出了,系统将溢出的值舍去,取得小于256的数值,判断是否大于127,大于的话先取反码,再补码即+1。

小于127的数即本身。

eg:389-256=133;取反码就是122,再补码即为-123;

eg:300-256=44;即为44。

第三题:

字符跟整数之间的换算

#include

intmain()

{char a = '9';char b = '5';char c = 7;

printf("The a is %dn",a-'0');

printf("The b is %dn",b-48);

printf("The c is %cn",c+'0');return 0;

}

结果如下:

The a is 9The bis 5The cis 7

'9' -->转换成整数 9

'9'-'0' 或者 '9'-48 结果就是整数9

整数9 -->转换成字符'9'

9+'0' 或者9+48 结果是57

二、C语言程序的结构

1. 最简单的C语言程序

#include //头文件

int main() //C语言程序的入口,main函数

{

printf("hello world!n"); //帮助我们在屏幕上打印一句话

return 0; //结束整个main函数

}

2. linux中编译C语言程序

gcc hello.c -o hello

gcc --》linux中编译器的名字

-o --》 output 输出

3. linux中执行C语言程序

./程序的名字

三、C语言的格式控制符号以及输入和输出

1. 格式控制符号

作用:由于C语言区分不同的数据类型,在输入输出这些数据的时候需要使用不同的格式控制符号来跟变量类型对应

八进制数的标准写法:

int a=10; 二进制10 --》2

八进制10 --》8

十六进制10 --》16

// int a=b10; //二进制

int a=010; //八进制10

int a=0x10; //十六进制10

int a=10; //十进制的

对应关系:

%d --> int

%f -->float 默认保留6位有效数字

%lf -->double

%hu -->short

%ld -->long

%lld -->long long int

%c -->char 输出的是字符本身

%d -->char 输出是字符的ASCII码值

%x -->十六进制,字符小写打印

%X -->十六进制,字符大写打印

%#x -->标准形式打印十六进制,前面加上0x

%o -->八进制

%#o -->标准形式打印八进制,前面加上0

%10.2f -->前面10表示位宽不够左边补空格   后面的2表示保留2个小数位

%-10.2f -->前面10表示位宽 后面的2表示保留2个小数位

%.9f --》指定了保留9个小数位,位宽没有指定,默认位宽

%10d -->10是位宽,靠右对齐,左边补空格

%-10d --> 靠左对齐,右边补空格

%s -->字符串

%5s

%p -->变量地址

例如:

#include #include

intmain()

{int a=199;float b=96.5;double c=89.3;short d=45;long e=125;long long int f=8934;char g='@';bool h=true;

printf("a is:%dn",a);

printf("a is:%xn",a);

printf("a is:%Xn",a);

printf("a is:%#xn",a);

printf("b is:%fn",b);

printf("c is:%lfn",c);

printf("d is:%hun",d);

printf("e is:%ldn",e);

printf("f is:%lldn",f);

printf("g is:%cn",g);

printf("g is:%dn",g);return 0;

}

结果如下:

a is:199ais:c7

ais:C7

ais:0xc7bis:96.500000cis:89.300000dis:45eis:125fis:8934gis:@

gis:64

例如:

#include

/*这是一个例子程序,讲解代码书写规范

这个例子很重要,大家 养成好的习惯

//块注释中不能嵌套块注释,但是可以嵌套单行注释*/

intmain()

{int a=0b1010; //定义了整型变量,给它赋值一个二进制数

float b=15.6;double c=8933.3;char d='o';

printf("a is:%10dn",a);

printf("a is:%-10dn",a);//-10d表示位宽,靠左对齐!

printf("b is:%fn",b); //b is:15.600000//小数点前面数字表示位宽(整个数字占用多少位置)

printf("b is:%10.7fn",b); //b is:15.6000004

printf("b is:%18.7fn",b); //b is: 15.6000004

printf("b is:%18.3fn",b);

printf("b is:%3.7fn",b); //位宽不能小于这个数据本身的位宽

}

结果如下:

a is: 10ais:10bis:15.600000bis:15.6000004bis: 15.6000004bis: 15.600bis:15.6000004

作业:

2  8  10  16进制之间的相互转换

二进制--》转换八进制

二进制--》转换16进制

进制之间的转换规则

二进制--》八进制

二进制--》十六进制

每三个二进制为一组换算成对应的八进制即可

每四个二进制为一组换算成对应的十六进制即可

八进制取值范围:0---7   最大的数字7换成二进制111  (421码)

十六进制取值范围:0---F  最大的数字15换成二进制1111  (8421码)

八进制--》二进制

每个八进制位换算成三个二进制即可

八进制 071 ---》 7 --》二进制111

1 --》二进制001   //不够三位的补零对齐

071--》二进制111 001

十六进制--》二进制

每个十六进制位换算成四个二进制即可

十六进制 0A3---》 A --》二进制1010

3 --》二进制0011  //不够四位的补零对齐

0A3--》二进制1010 0011

八进制--》十六进制

思路:先把八进制转成2进制,然后再把2进制转成16进制即可

八进制   0745 --》二进制111 100 101 --》16进制0001    1110     0101

1           E          5

内容来源于网络如有侵权请私信删除

c语言中一个字母-97 1,C语言学习(1)相关推荐

  1. c语言中的字母占位符,C语言专题-基本数据类和占位符

    C语言中常用的几种基本数据类型有 基本数据类型的长度 short =2 unsigned short=2 char =1 unsigned char=1 int =4 unsigned int=4 l ...

  2. 用c语言输出一个字母的,用c语言编写程序输出一个短句

    1. 输入一个数然后输出一句话的程序用C语言怎么编写 用if或switch语句如`: switch((int)x) { case 9:printf("你好\n");break; c ...

  3. c语言定义一个字母的范围,C语言学习知识程序设计试卷及其规范标准答案

    C 语言程序设计 笔试试题 题号 一 二 三 四 五 六 笔试(70%) 综合 (30%) 总分 分数 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分: 2. 综合成绩为平时成绩( ...

  4. C语言中一个程序写完后怎么运行啊?

    C语言中一个程序写完后怎么运行啊? 当编写bai完一个程序后,需要首先进行编译,然后再运行. 如下图所示,程序编写完毕后,点击工具栏中的Execute,选择compile(编译). 如果没有错误,再选 ...

  5. 按照c语言规首字母只能是,C语言--指针 - osc_nbqoh20k的个人空间 - OSCHINA - 中文开源技术交流社区...

    [TOC] #知识内容总结 ##为什么要学习指针? 我们已经学习了如何用数组存放多个相同类型的数据并进行运算,但数组的长度在定义时必须给定以后不能再改变.如果事先无法确定需要处理数据数量,应该如何处理 ...

  6. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  7. c语言中的函数的组成,c语言函数由哪几部分组成

    c语言函数由哪几部分组成 发布时间:2020-07-16 15:46:42 来源:亿速云 阅读:476 作者:Leah 这篇文章将为大家详细讲解有关c语言函数由哪几部分组成,文章内容质量较高,因此小编 ...

  8. C语言中删除字符串中一个字母,C程序删除字符串中除字母之外的所有字符

    C程序删除字符串中除字母之外的所有字符 在此示例中,您将学习从用户输入的字符串中删除除字母之外的所有字符. 要理解此示例,您应该了解以下C语言编程主题: 删除字符串中除字母之外的字符#include ...

  9. c语言中计算一个字母的序数,C语言编程 输入一串字符统计英文字母的个数

    C语言编程:输入一行字符,至少50个,统计其中英文字母,数字,其他字母个数 楼上那个不能统计空格个数,我这个可以#include#includeintmain(){intcnt_c=0,cnt_n=0 ...

最新文章

  1. 求x0时,y=x^3-6x^2+15的极值
  2. Python高级特性:切片
  3. ios中while()和 android中的不同之处
  4. 三个很有用的sqlserver中的处理多个以分隔符分隔的参数的函数
  5. java并查集计算机网络连通,poj2236 Wireless Network(并查集)
  6. 关于equals和hashcode方法
  7. 分布式技术追踪 2018年第二十期
  8. QT学习笔记(1)----- QT简介
  9. 突破传统生物3D打印技术局限-王秀杰/Charlie C.L. Wang/刘永进团队合作开发新型生物3D打印体系...
  10. 优化网站设计:减少DOM元素的数量
  11. matplotlib显示图中标签
  12. jenkind + git + mave + shell + tomcat
  13. 数据结构C++版-图
  14. Linux下防止rm -frv 删除错误的解决办法
  15. DB2 客户端下载地址
  16. Python网络数据采集1(译者:哈雷)
  17. STM32USB鼠标+键盘串口控制
  18. qt项目在Linux平台上面发布成可执行程序.run
  19. 手机lightroom预设位置
  20. 舌体胖瘦的自动分析-曲线拟合-或许是最简单判断舌形的方案(六)

热门文章

  1. Strict-origin-when-cross-origin跨域问题
  2. Web3 游戏发展趋势的 5 个预测
  3. 非常齐全的电脑知识(先保存,留备用)
  4. mysql describe什么意思_MySQL中describe命令的使用方法小结
  5. git describe --tags 后面的信息是什么意思
  6. Android蓝牙连接问题总结
  7. 数据采集工具-免费数据自动采集软件工具
  8. c#所有部门及其下所部门生成树形图(递归算法获取或键值对方式获取)
  9. Linux 命令(199)—— arp 命令
  10. 天涯社区“诚信认证费”是对诚信的莫大讽刺