课程笔记
c语言编程预备知识
cup把内存条硬盘显卡主板。显示器之间的关系把硬盘数据调入内存里,cup处理完内存后的数据传送到显示器
"hello world"程序怎么运行的
先打出基本程序再通过编译器和链接器( .exe)的可执行文件,最后操作系统调用cup执行该文件后在显示在显示屏上 ps:编程软件不能直接执行( .exe)文件
什么是数据类型
基本类型数据
1.整数
- 整形———— int ——4
- 短整型———— short int——2
- 长整型———— long int——8
2.浮点数
- 单精度浮点数 ———— float——4
- 双精度浮点数 ———— double——8
3.字符
- char————1
复合类型数据
- 结构体
- 枚举
- 共用体
什么是变量
变量的本质就是内存中的一段储存空间
变量为什么必须要初始化
所谓初始化就是赋值的意思
如果不初始化就无实际意义,会自动填充出一个垃圾数
其中0就为垃圾数
如何定义变量
数据类型变量名=要赋的值 数据类型 变量名 变量名=要赋的值 int i = 3;等价于int i; i = 3;int i,j; 等价于int i; int j; int i, j = 3;等价于int i;int j; j = 3; int i = 3,j = 5;等价于int i; int j;i=3; j = 5;int i,j; i = j = 5;等价于int i,j; i =5; j = 5;
什么是进制
进制就是逢几进一
c语言规定8进制前要加0(不是字母o),16进制前要加0x或0X,十进制前什么都不加
在汇编中:在数字后加字母B表示二进制数,加O(字母O)表示8进制数,加字母D表示10进制数,加字母H表示16进制数
7.常量在C语言中是如何表示的
整数
- 十进制: 传统的写法
- 十六进制:前面加0x 或0X
- 八进制: 前面加0 (不是字母o)
浮点数
传统的写法
float x = 3.2
科学计数法
float x = 3.2e3; //x的值是3200
float x = 123.45e-2; //x的值是1.2345
ps:e表示10,后面的数表示次方数
字符
单个字符用单引号括起来
‘A’ 表示字符A
字符串用双引号(“ ”)括起来
常量以什么样的二进制码存在计算机中
整数是以补码的形式转化为二进制代码存储在计算机中的
实数是以IEEE754标准转化为二进制代码存储在计算机中的
字符的本质实际也是与整数的储存方式相同
代码规范化
(可参考《高质量c/c++编程》)——林锐
- 成对敲 eg:不能先敲“(”再写代码,最后敲“)”
- 缩进:地位相等不缩进,地位不相等要缩进
一般代码
#include< >
int main( )
{
定义变量
操作变量
输出值
return 0;
}
什么是字节2
字节就是存储数据的单位,并且是硬件所能访问的最小单位
1字节=8位
1k = 1024字节
1m = 1024k
1G = 1024m
不同类型数据之间相互赋值的问题
可参考《c语言程序设计五版》p54———谭浩强
什么是ASCII
ASCII不是一个值而是一种规定
ASCII规定了不同字符是用那个数字去表示
基本的输入和输出函数
printf() ——将变量的内容输出到显示器上
四种用法:
- printf(“字符串\n”);
- printf(“输出控制符\n”,输出参数);
- printf(“输出控制符1 输出控制符2。。。”,输出参数1,输出参数2。。。);输出控制符和输出参数必须一一对应。
- printf(“输出控制符 非输出控制符”,输出参数);
输出控制符包含如下:
- %d -- int
- %ld -- long int
- %c -- char
- %f -- float
- %lf -- double
- %x(或者%X或者%#X) -- int / long int / short int(输出16进制)
- %o-- int / long int / short int(输出8进制)
- %s -- 字符串
为什么需要输出控制符
- 01组成的代码可以表示数据也可以表示指令
- 如果01组成的代码表示数据的话,那么同样的01代码组合以不同的格式输出就会有不同的输出结果
scanf() -- 通过键盘将数据输入到变量中
两种用法:
-
用法一: scanf(“输入控制符”,输入参数);
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中 -
用法二 : scanf(“非输入控制符 输入控制符”,输入参数);
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中,非输入控制符必须原样输入
如何使用scanf编写出高质量代码
- 使用scanf之前最好先使用printf提示用户以什么样的方式来输入期望内容
- scanf中尽量不要使用非输入控制符,尤其是不要用\n(eg:scanf(“%d”,&i)不要写成scanf(“%d\n”,&i))
- 应该编写代码对用户的非法输入做适当的处理
名词翻译
| 中文 | 英文 | 中文 | 英文 | ||||
|---|---|---|---|---|---|---|---|
| 整数 | integer | 变量 | variable | ||||
| 字符 | character | 初始化 | initialize | ||||
| 浮点数 | float | 十进制 | decimalism | 结构体 | structural | 二进制 | binary system |
| 枚举 | enumeration | 十六进制 | hexadecimal | ||||
| 联合 | unite | 打印 |
课后作业
3.10
第四题
| 常量 | 类型或者含义 |
|---|---|
| '\b' | char |
| 1066 | int 10进制的1066 |
| 99.44 | 浮点型函数 |
| 0XAA | 16进制数 |
| 2.0e30 | double |
第六题
| 常量 | 类型 | 转换说明 |
|---|---|---|
| 12 | int | %d |
| 0X3 | unsigned int | %#X |
| 'c' | char | %c |
| 2.34E07 | double | %e |
| '\040' | char | %c |
| 7.0 | double | %f |
第八题
printf(“The odds against the %d were %ld to 1.\n”,imate,shot);
printf ("A score of %f is not an %c grade.\n",log,grade);
3.11
第一题
- 整数上溢
- 浮点数上溢
- 浮点数下溢
4.8
第一题
第二题
第7题
pastebin代码分享
[](Ubuntu Pastebin)