C程序设计(第五版)学习 --------(笔记)

第一章:程序设计和C语言


 1.1 什么是计算机程序?

1、指令:可以被计算机理解并执行的基本操作命令

2、程序:一组计算机能识别和执行的指令(既一组指令组成程序)

                 一个特定的指令序列用来完成一定的功能

3、软件:与计算机系统操作有关的计算机程序、规程、规则、以及有关的文件、文档及数据。

总结:指令构成了程序,程序构成了软件

1.2 什么是计算机语言?

1、计算机语言:一种计算机和人都能识别的语言(能使人与计算机进行交流)

2、计算机低级语言的发展:

      机器语言:计算机只能识别和接受由0和1组成的指令

                        机器语言由机器指令的集合组成   

                        机器指令指计算机能直接识别和接收的二进制代码

                 特点:难学、难记、难检查、难推广、依赖机器,难以移植

       符号语言(汇编语言):机器语言的符号化

                 特点:依赖机器、难移植

3、机器语言和符号语言都属于计算机低级语言

4、为克服低级语言的缺点,20世纪50年代创造出了第一个计算机高级语言FORTRAN

5、计算机高级语言:语言功能强,不依赖具体机器,写出的程序在任何机器上都适用

6、计算机高级语言的发展:

          非结构化的语言:编程风格比较随意,符合语法规则即可。

          结构化语言:规定程序必须具有良好特性的基本结构。(顺序、选择、循环)

          面向对象的语言:处理规模较大的问题时。

 1.3 C语言的发展及特点

1、C语言的发展

       略  

2、C语言的特点

     语言简洁、紧凑、使用方便、灵活

     运算符丰富

     数据类型丰富

     具有结构化的控制语句

     语法限制不太严格,程序自由度大

     C语言允许直接访问物理地址,能进行位操作,实现汇编语言的大部分功能,可以直接对硬件进行操作。

      用C语言编写的程序可移植性好

      生成目标代码质量高,程序执行效率高       

1.4 最简单的C语言程序

1、第一个程序语句printf(“仅需要了解程序的基本结构”)

2、C语言的注释方法:

  法一:使用//进行注释,这种只能作用于一行。

  法二:使用/*与*/进行注释,可包含多行内容,作用于多行。

3、了解简单的占位符(例%d为十进制数等)

4、了解scanf的用法

5、C语言程序的结构

        一个程序由一个或多个源程序文件组成

        源程序由预处理指令、全局声明和函数定义三部分组成

6、函数是C程序的主要组成部分,一个C语言程序包括一个或多个函数组成,必须包含一个main函数(也只能包含一个)

7、程序总是从main函数开始执行

8、每个数据声明和语句的最后必须有一个分号

9:在代码的前头一定要有头文件 #include<staio.h>        

         #include<staio.h>

        int main()

        {

        return 0;        

        }

       

1.5 运行C程序的步骤与方法

1、进行上机输入和编辑源程序

2、源程序进行了编译

3、进行连接处理

4、源程序后缀为.c  目标程序的后缀为.obj 可执行程序后缀为.exe

5、程序设计的任务:

        1、编写程序的过程:源代码-编辑-编译-连接-得到可执行程序

 1.6 第一单元的例子

#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);  //可任意输入a,b两者二者的值 &为地址符
c=a+b;
printf("sum=%d\n",c);   //在输出中的c不需要地址符
return 0;
}

第二单元:算法--程序的灵魂


 2.1 程序=算法+数据结构

1、一个程序需要包括两个方面,对数据的描述以及对操作的描述

2:对数据的描述:了解程序中要用到哪些数据,以及这些数据的类型和数据的组织形式,称为数据结构

3:对操作的描述:是进行操作的步骤,也可以惩治为算法 )算法可以理解为解决的步骤)

4、两者之间的关系: 数据是操作的对象  (算法+数据结构=程序)                                                                                                                                           

2.4 算法的特性

1、算法的特性:有穷性(算法的时间有限)确定性,有0个或多个输入,有1个或多个输出,以及有效性

2.5怎样表示一个算法

1、表示算法的方法有:传统流程图、伪代码、自然语言、结构化流程图(或叫N-S流程图)

2、流程图的三种基本结构:顺序结构、循环结构、选择结构

3、流程图的构成:起止框、输入输出、判断框、处理框,线等

2.6结构化程序设计方法

1、为保证结构化程序可采取的方法:

        自顶向下  逐步细化 模块化设计  结构化编码

第二单元的例子代码

#include<stdio.h>
int main()
{
int a,b,c,max;
printf("please input a,b,c,\n");
scanf("%d %d %d",&a,&b,&c);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
printf("the largest number is: %d\n",max);
return 0;
}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

第三单元:最简单的c程序设计——顺序程序设计


3.2 数据的表现形式及其运算

1、 数据有两种表现形式:常量以及变量 (常量就是常数)

2:常量分为:整形常量,实行常量  字符常量 字符串常量,符号常量

        整形常量:正整数、0、负整数   例子:-123,123,0

        实行常量:(1)小数形式:12.33          (2)指数形式:用e表示  12e2  (e前为数字,e后为整数)

        字符常量:字符常量只能是一个字符,用符号 ‘ ’进行扩起来

        字符串常量:用“  ”进行括起,里边可以为任意数字类型

        符号常量:要在代码前进行定义(不占内存、不可赋新值、一般用大写)

3、变量:需要先定义,再使用

4、标识符:用于对变量、函数等命名的类型的有效字符序列

5、数据类型: 数据的基本类型分为两类:整型和浮点型   

        整型:基本整型、整型、长整型、双长整型

        浮点型:float类型、double类型、long  double类型   

 3.3:运算符和表达式

1、算数的运算顺序: 自左向右    优先级  先乘除后加减等(在前一的前提下)

2、键盘的乘号为  *  ;   键盘的除号为  /  (除的运算的结果为向0取整)%求余(要求符号两边为整数)

3:分辨清除++a与a++两者的区别

4、强制转换类型:(int)a     (int)(a+b)  可将类型转换为()内的类型

5、复制运算符:从右往左进行赋值

        复制表达式的“左值”是被复制的对象,不可为常数、算数表达式、变量可 

 3.5:数据的输入输出

1、数据的输入用scanf,输出用printf ,使用输入时要注意使用地址符

2:在进行使用占位符进行占位时:%d %d %d  相邻两个之间用空格进行隔开,在黑框一样

                                                                (以防多种方式进行混用,出错)

3、在占位符前面加入数字表示m.n%d  m.n两数表示整数为向右靠齐,共占位m格,精确度为n位,当两者表示的数位负数时,向左靠齐

4、常见的占位符:%s(字符串)  %f(浮点型)

5、在进行scanf进行数据的输入时,输入的格式要与scanf进行匹配

6:putchar 可以进行字符的输出,getchar可以进行字符串的输入

第四单元:选择结构程序设计


4.1 选择结构和条件判断

1、选择结构有两种表示方式:if语句      switch语句

2:if语句可以实现两个分支的选择,switch可以实现多个分支的悬着

3:if语句中进行分支的判断条件时,判断条件要使用()进行括起来,不用加 :

4:基本的使用if语句格式为:if(a<b)  一分支输出        else 另一分支输出

5:if可以单独直接使用,判断后执行的语句要进行缩进 要注意;的添加

6:if语句还可以使用if   else if    else 三者实现多阶层的判断

7:if语句可以写在一行上或多行上

4.3 算数运算符和关系表达式

1、在C语言中,比较运算符称为关系运算符  

2:运算符有优先顺序,>,>=,<,<=要优先于==等

3、关系表达式:是指用关系运算符将两个数值,或两个表达式连接起来的式子。

4、关系表达式中的结果只有表示真的“1”,表示假的"0"                                                                                                                                                                                                                                                                                                                                                        

4.4 逻辑运算符和逻辑表达式

1、逻辑运算符共有三种,与(and),或(or),非(not)

2、与:&&  或:||  非:!   非为单目运算,级别最高

3:逻辑表达式:用逻辑运算符将关系表达式或其他逻辑两连接起来的式子

4:逻辑表达式的结果也只有真或假    用1或0进行表示

4.5 条件运算符和条件表达式

1、条件表达式的一般形式:(条件表达式)?  执行1:执行2;

2:当表达式为真表示1式,执行1,为假的式,执行2

 4.6 选择结构的嵌套

1、可以在if语句中在进行if-else语句的嵌套,

2:与else配套的if在:else上面的  最近的  未配对的if进行配对(建议编码更规范)

 4.7用switch语句实现多分枝悬着结构

1:使用switch和case进行多分支的实现,

2:break  为跳出循环体,跳出switch语句的花括号

3:default 为当出现case外的分支时,执行的语句

4:要与if语句进行区分,switch语句中要使用{}进行括起,if语句不用

 第四单元的代码例子

#include<stdio.h>
int main()
{
char grade;
scanf("%c",&grade);
printf("your score:");
switch(grade)
{
case'A':printf("85~100\n");break;
case'B':printf("70~84\n");break;
case'C':printf("60~69\n");break;
case'D':printf("<60\n");break;
default:print("fault");
}

return 0;
}

  第五单元 :循环结构程序设计


5.2用while语句实现循环

1、5.1:循环结构程序设计可以实现少的语句控制代码多次循环,可以省时省力,不迭代。

2、使用while语句实现循环时,条件成立就执行循环

3:while循环的条件要使用 ()进行括起是,循环的语句要使用{}进行包含

4:while语句的例子:while(a<b)      {  循环体}                 while后边不用使用  :

 5.3用do.....while语句实现循环

1、do.....while语句与while语句不同,要运行一遍循环体,在进行条件的判断,决定是否继续循环。

2:do.....while语句的一般形式:do   {循环语句}     while(条件判断);

5.4用for语句实现循环 

1:for语句的一般形式:    for(初值;循环判断条件;循环变量变量) {}  循环语句 不用接 :

2:上述三种循环的比较三者都可以使用break跳出循环,使用continue结束本次循环

3:一般情况下,三者可以转换时为实现转化。

#include<stdio.h>
int main()
{
int n;
for(n=1;n<=200;100)
{
if(n%3==0)    
continue;            //遇到是3的倍数时,跳过进行下一个数的判断
printf("%d",n);        //将不是3的倍数的数字进行输出
}
return 0;
}

第六单元:利用数组处理批量数组     


6.1 怎样定义和和应用一堆数组

1:数组:数组是一组有序数据的集合,下标代表数据在数组中的序号

2:数组内的袁术必须是同一数据类型。

3、定义一个 数组:数组的类型  数组名[个数]   个数可以为常熟也可以为符号常量,以及长数表达式。

4:要注意的是:数组 的元素下标从0开始

6.2 怎样定义和使用二维数组 

1、二维数组的定义:数组类型  数组名[行][列]

2;   二维数组在矩阵上表示二维矩阵,这是在逻辑上的;但实际上,它是线性的,是连续存放的,不是二维的。

3、二维数组的应用可以在赋值上显示,也可以在表达式上显示

4:要注意的是,二维数组的下标也一样从0开始

5、二维数组的初始化即赋值,每行的袁术可以用{}进行括起,用逗号进行隔开  

6、二维数组的不同在于,可以第二维的长度不能省略         

6.3字符数组

1、初值个数不能多与数组长度

2、字符串的有限长度不等于字符数组的长度

3、字符串的输出不包括0字符

4、字符数组输出时,用得是字符数组的数组名,而不是字符数组全部                                    5、使用字符串处理函数,puts(字符数组):输出字符数组里的字符串 

                                        gets(字符数组):输入字符串的函数

                                        strcat(字符数组1,字符数组2) :cat   连接两个字符数组

                                      strcpy和strncpy函数都是复制函数: strcpy  (str1,str2)将2复制到1 

                                       strcmp:比较函数     strcmp(str1,str2)  1>2 正数,<为负数                                                     strlen;测字符串的长度  strlen(字符数组)                                                                      strlwr(字符串):将字符串中的大写字母转成小写字母 strupr;转大写

                                        

第六单元代码例子: 

#include<stdio.h>
int main()
{
int i,a[10];
for(i=0;i<=9;i++)
    a[i]=i;
for(i=9;i>=0;i--)
    printf("%d",a[i];
printf("\n");
return 0;
 }

第七单元   用函数实现模块化设                                                               


  7.1 为什么要使用函数

1、函数就是功能,每一个函数表示一个功能。

2、一个代码可以有一个主函数和若干个函数组成     

3、代码都从主函数开始运行,其他函数都是平行的                          

 7.2怎样定义函数

1、函数必须先定义,后使用。

2、定义函数的基本类型:类型名 函数名()        {函数体} 

3、定义有参函数的基本类型:类型名 函数名(类型 参数,类型参数)        {函数体}              4、函数体要使用{}进行括起开                                                                                                  5、库函数可以直接使用                                                                                     

 7.3调用函数

1、实参与形参之间的传递,虚实结合,实参能船只给形参,形参不能

2、两个参数之间只能单项传递

3、实参与形参的数据类型要相同

4、函数的返回值可以通过return进行得到   

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值