C语言总结(前言+第一章)

简介: 是对C语言程序设计的一次期末总结,也是对未来从事相关工作的一次展望和打下基础。编程能力从来不会是一蹴而就的,而是日积月累的反反复复的练习和思考总结出来的,不是多少天就可以速成的。编程是一项引发积极思维的活动,它不是一种简单的技能,不是只要数据有关规则,熟能生巧就能完成任务的编程,需要指挥编写每一个程序,都要积极开动脑筋,发挥创造精神,编程是一件很灵活的工作,没有标准答案,不同的人可以写出不同的程序。

前言

是对C语言程序设计的一次期末总结,也是对未来从事相关工作的一次展望和打下基础。编程能力从来不会是一蹴而就的,而是日积月累的反反复复的练习和思考总结出来的,不是多少天就可以速成的。


编程是一项引发积极思维的活动,它不是一种简单的技能,不是只要数据有关规则,熟能生巧就能完成任务的编程,需要指挥编写每一个程序,都要积极开动脑筋,发挥创造精神,编程是一件很灵活的工作,没有标准答案,不同的人可以写出不同的程序。


计算机的本质是“程序的机器”,程序和指令思想是计算机系统中最基本的概念。


大学计算机基础教育:

信息技术的发展

面向应用的需求

科学思维的培养


为什么选择C语言?

C++是为了处理较大规模的程序开发而研制的大型语言,C语言更适合解决某些小型程序的编程,作为传统的面向过程的程序设计语言,在编写底层的设备驱动程序和内嵌应用程序是,往往是更好的选择。


大牛给计算机专业学生的 7 个建议

大牛给计算机专业学生的 7 个建议( C语言程序设计上美国资深软件专家写的《对计算机系学生的建议》)_shaozheng0503的博客-CSDN博客


进行程序设计要解决以下的两个问题:

要学习和掌握解决问题的思路和方法,即算法。

学习怎样实现算法,即用计算机语言编写程序。


第1章程序设计和C语言


程序:一组计算机能识别和执行的指令。


从打下第一行hello world 开始,第一次接触main主函数开始,从第一次调用头文件开始,从第一次return一个返回值开始...... 我们就认识了一个最简单的 C语言程序“This is a C program”


在屏幕上显示一个短句Hello World!

#include <stdio.h>

int main(void)

{

/*---------*/

printf( "Hello World!");

return 0;

}


C语言必须通过编译连接才能执行


算法+数据结构=程序


软件:程序+相关文档


C语言程序的结构


(1)C语言程序主要由函数构成,函数是C语言程序的基本单位。一个C语言源程序必须有一个main函数,可以包含一个main函数和若干个其他函数。主函数可以调用其他函数,其他函数之间可以互相调用,但其他函数不能调用主函数。被调用的函数可以是系统提供的库函数(如printf和scanf函数),也可以是用户根据自己需要自己编制设计的函数。C语言的函数相当于其他语言中的子程序。用函数来实现特定功能。程序全部工作都是由各个函数分别完成的。编写C语言程序就是编写函数。

(2)一个函数由两部分组成

①函数首部。即函数的第一行,包括:函数名、函数类型、函数参数(形式参数)名和参数类型。一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。函数可以没有参数,如:

int mian()

②函数体。即函数首部下面的花括号内的部分。如果一个函数内有多个花括号,以最外层的一对花括号为函数体的范围。函数体一般包括声明部分(声明有关变量和函数类型)和执行部分(执行函数语句)。

(3)一个C语言程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何。

(4)C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。

(5)每个语句和数据声明的最后必须有一个分号。

C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。

可以用“//”对程序进行注释,注释不被编译,不生成目标程序,不影响程序运行结果。


C语言中允许用两种注释方式:


(1)//开始的当行注释

(2)/*   */的块式注释


C语言中的保留字:


4.png


scanf小结:


scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。


其调用格式为:      scanf("<格式化字符串>",<地址表>);


格式化字符串包括以下三类不同的字符;


1、 格式化说明符:


格式化说明符与printf()函数中的格式说明符基本相同。但和printf()函数中格式字符串的用法有一些小区别。我们来看下面这个表。


格式字符 说明


%d   从键盘输入十进制整数


%o    从键盘输入八进制整数


%x 从键盘输入十六进制整数


%c   从键盘输入一个字符


%s 从键盘输入一个字符串


%f 从键盘输入一个实数


%e 与%f的作用相同


附加格式说明字符表    


字符 说明


L   输入"长"数据


H 输入"短"数据


M 指定输入数据所占宽度


*  空读一个数据                                                    


2、 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。


3、 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。


对自定义函数调用的理解:

与书第八页例1.3类似    一定要记住不论调用什么函数前一定要记得声明


#include "stdio.h"

int main(void)

{

   int m, n;

   int repeat, ri;

   double s;

   double fact(int n);  //也是第一次见到自定义函数的调用(注意此时自变量到因变量的变化,形参和实参之间的转化)

   scanf("%d", &repeat);

   for(ri = 1; ri <= repeat; ri++){

       scanf("%d%d", &m, &n);

       s=fact(n)/(fact(m)*fact(n-m));        

       printf("result = %.0f\n", s);

   }

}

double fact(int n)

{

  double result;

  int i;

  result=1;

  for(i=1;i<=n;i++)

      result=result*i;  

  return result; //注意返回的是什么值!   n>>result的变换

}


C语言的编译过程到底是怎样的。


1.预处理(Preprocessing), 2.编译(Compilation), 3.汇编(Assemble), 4.链接(Linking)。

5.png




程序设计的任务


程序设计是指从确定任务到得到结果,写出文档的全过程。一般分为以下几个工作阶段:


(1)问题分析       谋定而后动!!!


(2)设计算法 用哪些方法,步骤,一般使用流程图


(3)编写程序    根据得到的算法,用一种高级语言程序编写出源程序


(4)对源程序进行编辑 编译和连接   得到可执行程序


(5)运行程序 分析结果


(6)编写程序文档 向用户提供使用说明书  +


编程是一项引发积极思维的活动,它不是一种简单的技能,不是只要数据有关规则,熟能生巧就能完成任务的编程,需要指挥编写每一个程序,都要积极开动脑筋,发挥创造精神,编程是一件很灵活的工作,没有标准答案,不同的人可以写出不同的程序。


第一章课后题答案:


C语言程序设计第五版 谭浩强 第五版课后答案_月已满西楼的博客-CSDN博客_c程序设计谭浩强第五版课后答案


什么是程序?什么是程序设计?


程序:就是一组能识别和执行的指令,每一条指令使计算机执行特定的操作


程序设计:是指从确定任务到得到结果、写出文档的全过程


2.为什么需要计算机语言?高级语言有哪些特点?


为什么需要计算机语言:计算机语言解决了人和计算机交流是的语言问题,使得计算机和人都能识别


高级语言有哪些特点:


2.1 高级语言的数据结构要比汇编和机器语言丰富;


2.2 高级语言与具体机器结构的关联没有汇编以及机器语言密切;


2.3 高级语言更接近自然语言更容易掌握;


2.4 高级语言编写的程序要经过编译或解释计算机才能执行;


3.正确理解以下名词及其含义:


(1)源程序,目标程序,可执行程序。


源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令


目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名


可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序


(2)程序编辑,程序编译,程序连接。


程序编辑:上机输入或者编辑源程序。


程序编译:


先用C提供的“预处理器”,对程序中的预处理指令进行编译预处理


对源程序进行语法检查, 判断是否有语法错误,直到没有语法错误未知


编译程序自动把源程序转换为二进制形式的目标程序


程序连接:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体的过程称之为程序连接


(3)程序,程序模块,程序文件。


程序:一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具


程序模块:可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令


程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序


(4)函数,主函数,被调用函数,库函数。


函数:将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定功能


主函数:又称main函数,是程序执行的起点


被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数


库函数:一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数


(5)程序调试,程序测试。


程序调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程


程序测试:是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行


小结:基本数据类型


关键字:


基本数据类型由11个关键字组成:int、long、short、unsigned、char、


float、double、signed、_Bool、_Complex和_Imaginary。


有符号整型:


151有符号整型可用于表示正整数和负整数。


int ——系统给定的基本整数类型。C语言规定int类型不小于16位。


short或short int ——最大的short类型整数小于或等于最大的int类型整


数。C语言规定short类型至少占16位。


long或long int ——该类型可表示的整数大于或等于最大的int类型整数。


C语言规定long类型至少占32位。


long long或long long int ——该类型可表示的整数大于或等于最大的long


类型整数。Long long类型至少占64位。


一般而言,long类型占用的内存比short类型大,int类型的宽度要么和


long类型相同,要么和short类型相同。例如,旧DOS系统的PC提供16位的


short和int,以及32位的long;Windows 95系统提供16位的short以及32位的int


和long。


无符号整型:


无符号整型只能用于表示零和正整数,因此无符号整型可表示的正整数


比有符号整型的大。在整型类型前加上关键字unsigned表明该类型是无符号


整型:unsignedint、unsigned long、unsigned


short。单独的unsigned相当于


unsignedint。


字符类型:


可打印出来的符号(如A、&和+)都是字符。根据定义,char类型表示


一个字符要占用1字节内存。出于历史原因,1字节通常是8位,但是如果要


表示基本字符集,也可以是16位或更大。


char ——字符类型的关键字。有些编译器使用有符号的char,而有些则


使用无符号的char。在需要时,可在char前面加上关键字signed或unsigned来


指明具体使用哪一种类型。


152布尔类型:


布尔值表示true和false。C语言用1表示true,0表示false。


_Bool ——布尔类型的关键字。布尔类型是无符号 int类型,所占用的空


间只要能储存0或1即可。


实浮点类型:


实浮点类型可表示正浮点数和负浮点数。


float ——系统的基本浮点类型,可精确表示至少6位有效数字。


double ——储存浮点数的范围(可能)更大,能表示比 float 类型更多


的有效数字(至少 10位,通常会更多)和更大的指数。


long


long


——储存浮点数的范围(可能)比double更大,能表示比


double更多的有效数字和更大的指数。


复数和虚数浮点数:


虚数类型是可选的类型。复数的实部和虚部类型都基于实浮点类型来构


成:


float _Complex


double _Complex


long double _Complex


float _Imaginary


double _Imaginary


long long _Imaginary


153小结:如何声明简单变量


1.选择需要的类型。


2.使用有效的字符给变量起一个变量名。


3.按以下格式进行声明:


类型说明符 变量名;


类型说明符由一个或多个关键字组成。下面是一些示例:


int erest;


unsigned short cash;


4.可以同时声明相同类型的多个变量,用逗号分隔各变量名,如下所


示:


char ch, init, ans;


5.在声明的同时还可以初始化变量:


float mass = 6.0E24;


位、字节和字

位、字节和字是描述计算机数据单元或存储单元的术语。这里主要指存


115储单元。


最小的存储单元是位(


bit),可以储存0或1(或者说,位用于设


置“开”或“关”)。虽然1位储存的信息有限,但是计算机中位的数量十分庞


大。位是计算机内存的基本构建块。


字节(


byte)是常用的计算机存储单位。对于几乎所有的机器,1字节


均为8位。这是字节的标准定义,至少在衡量存储单位时是这样(但是,C


语言对此有不同的定义,请参阅本章3.4.3节)。既然1位可以表示0或1,那


么8位字节就有256(


2的8次方)种可能的0、1的组合。通过二进制编码(仅


用0和1便可表示数字),便可表示0~255的整数或一组字符(第15章将详细


讨论二进制编码,如果感兴趣可以现在浏览一下该章的内容)。


字(word)是设计计算机时给定的自然存储单位。对于8位的微型计算


机(如,最初的苹果机), 1个字长只有8位。从那以后,个人计算机字长


增至16位、32位,直到目前的64位。计算机的字长越大,其数据转移越快,


允许的内存访问也更多。

目录
相关文章
|
8月前
|
Java C语言
c语言基础知识整理与帮助理解(第一篇)
c语言基础知识整理与帮助理解(第一篇)
123 0
|
3月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
108 1
|
7月前
|
C语言
C语言练习代码第一篇
C语言练习代码第一篇
|
程序员 C语言
【C语言初阶】函数的具体用法,有这篇博客就够了 1
【C语言初阶】函数的具体用法,有这篇博客就够了
85 0
|
C语言
【C语言初阶】循环语句的具体用法,有这篇博客就够了1
【C语言初阶】循环语句的具体用法,有这篇博客就够了
164 0
|
8月前
|
存储 Unix 编译器
【C语言必知必会 | 第一篇】C语言入门,这一篇就够了
【C语言必知必会 | 第一篇】C语言入门,这一篇就够了
114 0
|
8月前
|
算法 Java 程序员
第一章:程序设计与C语言
第一章:程序设计与C语言
96 0
|
算法 编译器 C语言
【C语言初阶】函数的具体用法,有这篇博客就够了2
【C语言初阶】函数的具体用法,有这篇博客就够了
155 0
|
算法 C语言
【C语言初阶】循环语句的具体用法,有这篇博客就够了2
【C语言初阶】循环语句的具体用法,有这篇博客就够了
150 0
|
存储 算法 C语言
C语言笔记第二章
# C语言笔记第二章 ## 数据类型 数据类型 :算法处理的对象是数据,而数据是以某种形式存在的。所以数据结构指数据的组织形式。 **程序= 数据结构+算法** 数据结构=数据的描述规则 算法=数据的操作规则 ![image-20220816222136178](https://xingqiu-tuchuang-1256524210.cos.ap-shanghai.myqcloud.com/7626/image-20220816222136178.png) 考点 ****数组必考 结构体类型 共用体类型**** **!!!!!!!!!!!!**
85 0