二级C语言程序设计

第一章 程序的概念

1程序的概念

程序是指令的集合

指令-编译-计算机运行

指令:编写程序的执行程序(要干什么的步骤)

编译:将程序转换为二进制(怎么干)

计算机运行:将二进制运行出结果

2 C程序的运行过程

.c文件(源程序)——.obj(目标程序——二进制程序)——.exe(可执行程序(debug文件夹中))——计算机运行

​ ——连接程序(运行库)

3 程序设计的步骤

(1)确定数据结构

2确定算法——有穷性(步骤有限)

​ ——确定性(含义确切)

​ ——可行性(能够实现)

​ 有零个或多个输入(数据输入)

         有一个或多个输出(数据输出)

(3)编码

(4)在计算机上调试程序

(5)整理并写出文档资料

4结构化程序

三大结构:
顺序结构:程序从上到下顺序执行

选择结构:程序可以沿着不同路径执行

循环结构:指定程序重复执行

第二章 C程序设计的初步知识

1大纲分析

(1)C的数据类型(基本结构,构造类型,指针类型,无值类型,)及其定义方法

(2)C运算符的种类、运算优先级和结核性。

(3)不同类型数据间的转换与运算

(4)C表达式类型(赋值表达式,算数表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。

2简单C语言构成和格式

#include<stdio.h>——命令行 调用标准库函数

main ——主函数 程序的入口 有且只有一个叫做 main()的函数

{

​ printf(“xxx”);

}

3标识符

(1)什么是标识符

符合一定规则的符号集合

(2)标识符命名规则

由字母(a-z,A-Z),数字(0-9),下划线

必须由字母,下划线开头,如A3,_sb

不能是c语言关键字

区分小写b2和B2是两个不同的标识符

长度一定,与系统有关(考试不涉及)

(3)标识符的分类

-关键字

-预定义标识符(系统中具有某些功能含义的名字)

-用户标识符

例如:

正确的标识符:sum a2 a_2 ,_a2

错误的标识符:2a a? if while

4常量

(1)什么是常量

常量就是在程序汇其值不能被改变的量

例如:π

(2)常量类型

-数值型常量-整型常量 -1, 0 ,2不带小数点

​ -实型常量 -12.68带小数点的

在C语言中0和0.0是两个不同的东西

-非数值型常量 -字符型常量 ‘A’

​ -字符串常量 “A”

(3)如何定义符号常量

关键字define

用法#define 标识符 常量值

5变量

(1)什么是变量

在程序运行中,值可以改变的量

(2)变量的命名规则

与标识符相同 字母数字下划线组成,必须由字母下划线开头,不可以是c语言的关键字

(3)变量的特点

变量在内存汇总要占用连续的若干个字节

所占用的字节数由变量的数据类型确定

变量使用必须要先定义

记忆理解:一个大小的盒子,大小取决于数据类型

(3)整型数据

整型数据

整型常量的表示形式

十进制整数:0、-111

八进制整数:00、-0111

十六进制整数: 0x0、-0x111

注意:**只有十进制整数有负数、八进制最大到7、十六进制最大到F **

(4)整型数据存储形式

计算机的存储单位

二进制的位bit

8 bit = 1字节 1024字节 = 1Kb 1024kb = 1m 1024m = 1g

(5)负数的存储

-转成反码

-在反码上加一 (得到补码)

注意转换是最高位符号位不转换,如果是无符号的,最高位当做数字

整数

(6)整型数据

-有符号位(没有负数)

unsigned

-无符号位(有正负)

signed

(7)实型数据

实型常量(浮点数、实数)的表示形式

一般形式的实数:12.3456、-1.23456、7.0

指数形式的实数:-1.2345E3、0.12345e-4

注意:E或e之前必须要有数字、之后必须是整数、数字和E(e)之间没有空格


实型数据类型

float单精度浮点型

double双精度浮点型

注意:

如不特别定义任意用到一个实数在C中都是double类型的,超出范围处理成0值,实数存在误差

6算数表达式

(1)基本运算符号

注意:不同类型转换,例如1/2.0 = 0.5

相同类型结构类型不变 例如:1/2 = 0

若是单精度后面加0变成双精度

%左右运算必须都是整数

(2)运算规则(优先级)

先函数,再括号,后乘除,终加减

强制转换类型 (数据类型)(表达式 )

实型转换为整型时,把小数位砍掉

7赋值表达式

(1)主要运算符号=

形式 变量名 = 表达式 ,例如 a = 10

理解记忆:*变量好比一个盒子,把等于号右边东西放到左边的盒子里面

注意:

(1)等号优先级最低,先计算右边,在赋值给左边;

(2)n =n+1;有意义,在原有变量n的基础上,增加1;

(3)左边不能是表达式 a + b = c 错误

(4)右边可以是赋值表达式 a = b = 7 +1 ;但是 a = 7 +1 = b是错误的

主要运算符号+= -= *= /= %=

(2)赋值运算的类型转换

​ 赋值两边类型不一致,将等号右边的值转换成左边数据类型,仅限数值,成为”赋值兼容”

整型运算符转换原则:

1运算符号两边一个短整型,一个长整型,都转化成长整型

2运算符号两边一个无符号,一个有符号,都转化成无符号

整数赋值转换原则:

1左短右长,截取右边,丢高保低

2左无右有,赋值右边,负数变整数

3左有右无,复制右边,高位为1,变负数

(3)自增、自减、逗号运算符

++ –

注意:

1自增、自减符号可以放在变量前面形成前缀,也可以放在后面形成后缀

2如果是前缀,先做自我运算,后运算语句

3如果是后缀,先运算语句,后运行语句

4不要在一个表达式中多次对同一个变量做++,–运算


逗号表达式:
逗号表达式运算法则从左到右,一个表达式一个表达式计算,全部运算完毕后,最后一个表达式的结构是整个表达式的值

第三章 顺序结构

大纲分析:
1表达式语句,空语句,复合语句

2输入和输出函数的调用,正确输入数据并正确设计输出格式

1赋值语句

赋值语句也称为表达式语句,主要在赋值表达式后加入分号:,构成表达式语句

2数据输出

1什么是数据输出

2C语言如何进行数据输出

注意:

C语言没有输入输出语句,应用标准库中的函数完成输出

(1)格式控制

格式控制的作用

1按照指定的输出格式输出,格式有%符号和紧跟的其后格式描述符组成,如整型%d,单精度%f,双精度%lf

2原样输出文字和字符

(2)数据输出

%c——输出一个字符

%d——整型、

%0 ——输出八进制形式

%x(X)——输出十六进制形式

%u——以无符号输出整形数

%f——输出单精度数或双精度,也可用%lf输出双精度

%e(3)——以质数形式输出浮点数

%g(G)——系统决定使用%f还是%e输出保证输出宽度最小

%s——输出一个字符串,遇到\0终止,不受最大宽度约束

%p——输出变量内存地址

%%——输出一个%

(3)长度修饰符

输出数据所占宽度的格式说明

(1)默认输出实际宽度,且右对齐

(2)%nd整数输出,小于n左边补空格,右对齐

image-20210302152159882

image-20210302152234672

(4)printf使用注意事项

(1)输出自由控制

(2)如有格式控制即%,有几项后边输出几项,类型必须匹配,%多于输出项,会出乱码,%少于输出项,多余的不输出

(3)转义字符\n回车\r换行但无回车\t 制表 \a响铃等控制符

(4)输出% 输出两个%%

(5)printf(函数有返回值)

(6)尽量不要在printf中做变量运算,printf(”%d %d”,k,++k)

(7)如果出现*号,顺序写入

3数据输入

scanf函数调用形式:
scanf(格式控制,输入项1,输入项2…….);

注意:

1务必使用&运算符,除非变量本身是地址变量

2输入double类型时候一定使用%lf

image-20210302153230356

(1)scanf函数使用说明

image-20210302153318246

特别注意:如果在scanf格式控制符出加入其他符号,输入时必须按照它原样格式输出

4复合语句和空语句

一对大括号之间多条语句组成的一个语句组称为复合语句

{;;}

第四章 选择结构

大纲分析:
1用if语句实现选择结构

2用switch语句实现多分支选择结构

3选择结构的嵌套

1什么是逻辑值

image-20210302153854555

2什么是关系运算

image-20210302153923659

注意:

关系运算尽量避免两个浮点数做相等比较

3逻辑运算符

image-20210302154444443

4if语句合用if语句构成的选择结构

(1)语句形式

image-20210302154538668

image-20210302154632832

5条件表达式

条件运算符 ?

条件表达式形式:表达式1?表达式2:表达式3

含义:当表达式1非零时,运算表达式2的值,否则运算表达式3的值

6swich语3句及break

(1)语句形式

image-20210303180141802

表达式可以是整型表达式,也可以是字符型表达式

7goto语句(非大纲考点要求)

image-20210303180443728

第五章 循环结构

大纲分析

1 for循环结构

2 while 和do -while循环结构

3 continue 语句和break语句

4循环的嵌套

1while循环语句

(1)一般形式

while(表达式)循环体

2do-while循环语句

do 循环体 while(表达式)

3while与do-while的比较

(1)形式比较

while(表达式)循环体

do循环体while(表达式)

(2)最少循环次数

image-20210303184133675

(3)程序举例

计算1+。。。+100的值

image-20210303184446431


image-20210303184544016

image-20210303184631102


image-20210303184717250

image-20210303184734878


image-20210303184947480

image-20210303185058367


image-20210303185154032

image-20210303185234962

4for语句循环结构

(1)for循环一般形式

for(表达式1:表达式2:表达式3)

5嵌套循环

重点算法:判断素数(质数)

image-20210303222626730

image-20210303222726775

image-20210303222741403

6break和continue

break跳出switch.循环向下继续运行

continue结束本次循环 继续下次循环

image-20210303222855849


image-20210303222917811

第六章 字符型数据

大纲分析

大纲中只规定了 字符串与字符数组

但本章涉及一下内容:

1字符常量,字符串常量

2字符变量的定义及使用

3字符型与整型数据的换算关系

4转义字符

5字符的输入与输出

1什么是ASCII码

由于计算机只识别二进制,字符转换成固定数字存储。形成一张字符与数字的对照表格。

image-20210303223624766

image-20210303223709749

2什么是字符常量

​ 单引号括起来,中间只有一个字符”a”,’abc’都是不对的

3什么是转义字符常量

单引号括起来,中间由反斜杠开头后跟一个特定字符。

image-20210303223957570