C01 C语言基础

目录

  • C语言简史及特点
  • C语言开发环境
  • C语言程序结构
  • C语言基本输入输出函数
  • 编译
  • 软件类型

C语言简要及特点

什么是计算机语言

  • 计算机语言是用于人与计算机之间通讯的语言。
  • 计算机遵照接收到的计算机语言有步骤的工作,如何安排计算机的工作步骤就是程序设计。
  • 程序设计语言是一组用来定义计算机程序的语法规则。他是一种被标准化的交流符号,用来向计算机发出指令。

计算机语言的发展的历史

  • 计算机语言出现之前,20世纪40年代第一台计算机问世,特点:昂贵,手动控制。
  • 1941年,德国工程师---楚泽,设计出计算机语言。康拉德·楚泽于1910年6月22日出生在柏林,是一位德国工程师。他提出了计算机程序控制的基础概念,于1941年Zuse首次设计完成了使用继电器的程序控制计算机。于1995年12月19日逝世。
  • 计算机语言的发展阶段:

  

  1. 机器语言:面向计算机的语言,CPU指令系统,由0、1构成。执行效率最高。
  2. 汇编语言:在及其语言的基础上发展起来的编程语言。直接操作计算机硬件。助记符号描述的指令系统。助记符号描述的一般是微小的操作,所以汇编语言编写的程序冗长复杂。但是汇编语言生成的可执行文件占用空间小,执行效率高。对于编程人员,需要对计算机CPU的硬件要非常熟悉。
  3. 高级语言:C,C++,Java,PHP,C#等等。
  4. 程序员最中意的编程语言排行榜(GitHub):

      

C语言发展历史

  • 1960年ALGOL 60,剑桥大学,语言设计严谨,是很多语言的参考样本。
  • 1963年CPL,剑桥大学,在ALGOL基础上修改,接近计算机硬件,目的是要研究一种可以开发系统软件的编程语言。
  • 1967年BCPL,Martin Richards,简化了CPL,剑桥大学。
  • 1970年B,Ken Thompson,贝尔实验室,比BCPL更接近硬件。
  • 1972年C,Dennis.M.Ritchie,贝尔实验室。
  • 1976年,Ken Thompson,Dennis.M.Ritchie一起用C语言重写了Unix操作系统(1969年开始两人就开始使用B和C开始开发Unix操作系统),轰动全世界。

问题

  1. Java、机器语言、汇编语言、C语言。哪些属于高级语言?
  2. 汇编语言、机器语言、高级语言。运行效率从高到低如何排序?
  3. 机器语言是一种完全面向机器的语言,由0和1组成。可以由计算机直接识别和运行?
  4. 编写汇编程序的程序员需要对CPU的内部结构非常清楚,例如包括几个寄存器,几个通用寄存器等等。需要详细了解微型计算机原理?

C语言开发环境

C语言版本

  • 1978年Dennis.M.Ritchie和Brain.W.Kernighan联合写了一本书:《The C Programming Language》。非官方C语言标准。
  • 1983 年, 美国国家标准协会(ANSI)委任一个委员会 X3J11 对 C 语言进行标准化。
  • C89,1989年ANSI推出。
  • C90,1990年ISO采纳ANSI标准,正式国际化。
  • C99,1999年ISO推出。
  • C11,2011年12月ISO推出。

C语言编译器

  • 编译器概念:高级语言编译成低级语言,例如转换成汇编语言代码或者机器码。
  • 支持ANSI C的编译器有:
  1. GCC(Unix系统)
  2. Microsoft Visual C++(Windows系统)
  3. ARM RealView(ARM单片机)

C语言IDE

  • Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup安装介绍

Dev-C++使用MingW64/TDM-GCC编译器,遵循C++ 11标准,同时兼容C++98标准。开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具!多国语言版中包含简繁体中文语言界面及技巧提示,还有英语、俄语、法语、德语、意大 利语等二十多个国家和地区语言提供选择。该软件采用 Delphi 开发。

  • 微软VC系列开发工具

纯粹c语言开发学习使用绿色vc6.0工具。

vs2008、vs2010、vs2012等版本时候C++开发。

微软工具中提供了F5运行,Ctrl+F5运行方式。ctrl+F5运行后可以保持窗口打开。

C语言程序结构

不带参数的main函数

#include <stdio.h>  //文件包含命令,stdio.h为头文件

//主函数,整个项目只有一,为程序入口点

int main() {  //函数体:大括号包围起来

   printf("hello c");//输出语句

   return 0;

}

  

带参数的main函数(Unix系统中默认格式) 

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]) {

   printf("hello c"); 

   return 0; 

}

  


 
 

C语言基本输入输出函数

printf()函数

作用:向控制台cmd窗口输出内容

语法格式:printf(格式控制字符串,参数列表)

其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:

  • “%d”表示按十进制整型输出;
  • “%ld”表示按十进制长整型输出;
  • “%c”表示按字符型输出等。

示例

#include <stdio.h> 

int main(){ 

   int age=21;

   printf("c语言软件工程师\n");

   printf("我今年%d岁\n",age);

   return 0;

}

  

输出结果

 

格式字符串

在Turbo C中格式字符串的一般形式为:

[标志][输出最小宽度][.精度][长度]类型

其中方括号[]中的项为可选项。

各项的意义介绍如下。

1.类型

类型字符用以表示输出数据的类型,其格式符和意义如下表所示:


格式字符


意义


d


以十进制形式输出带符号整数(正数不输出符号)


o


以八进制形式输出无符号整数(不输出前缀0)


x,X


以十六进制形式输出无符号整数(不输出前缀Ox)


u


以十进制形式输出无符号整数


f


以小数形式输出单、双精度实数


e,E


以指数形式输出单、双精度实数


g,G


以%f或%e中较短的输出宽度输出单、双精度实数


c


输出单个字符


s


输出字符串

2.标志

标志字符为 -、+、# 和空格四种,其意义下表所示:



意义


-


结果左对齐,右边填空格


+


输出符号(正号或负号)


空格


输出值为正时冠以空格,为负时冠以负号


#


对c、s、d、u类无影响;

对o类,在输出时加前缀o;

对x类,在输出时加前缀0x;

对e、g、f 类当结果有小数时才给出小数点。

 

3.输出最小宽度

用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

4.精度

精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

5.长度

长度格式符为h、l两种,h表示按短整型量输出,l表示按长整型量输出。

转义字符


转义字符


意义


ASCII 码值(十进制)


\a


响铃(BEL)


007


\b


退格(BS) ,将当前位置移到前一列


008


\f


换页(FF),将当前位置移到下页开头


012


\n


换行(LF) ,将当前位置移到下一行开头


010


\r


回车(CR) ,将当前位置移到本行开头


013


\t


水平制表(HT) (跳到下一个TAB位置)


009


\v


垂直制表(VT)


011

上机练习

练习1:输出自我介绍

在控制台输出以下内容:

上机练习2:学员信息管理系统菜单制作

scanf()函数

作用:从控制台获得输入内容

语法格式:scanf(格式控制字符串,地址列表)

示例:

或者:

输出结果:

 

上机练习

练习1:从控制台接收两个数字,计算这两个数字的积

练习2:修改学员管理系统菜单,实现以下效果

 

  

编译

编译概念

计算机无法直接执行C语言或者其他高级语言。

编译定义:把用某一种程序设计语言编写的源程序翻译成等价的另一种语言程序(目标程序)的过程。

编译器

定义:执行编译过程的程序

常见的乙语言:机器语言、汇编语言或者某种高级语言的中间语言。

通常编译过程就是将高级语言编程成低级语言。

编译过程

各种语言都有相应的编译器

编译程序相关程序

解释程序、汇编程序、连接程序、装入程序、预处理器、编辑器。

相关程序相辅相成。

编译过程

  1. 词法分析:从左到右扫描源程序,识别出每个单词。
  2. 语法分析:在词法分析的基础上,根据语言的语法规则,将单词符号串分解成各类语法短语,确定整个输入串是否构成语法上正确的程序。
  3. 语义分析与中间代码生成:对上一阶段识别出的各类语法范畴分析含义,生成中间代码。
  4. 代码优化:对已经产生的中间代码进行加工变换,使生成的目标代码更为高效。
  5. 目标代码生成:优化后最终生成目标代码。

C语言编译过程

  • 编译预处理:读取源程序,对其中伪代码和特殊符号处理。例如把头文件进行替代,包含到C文件中。
  • 编译优化程序:对预处理文件进行词法分析和词法分析,将其翻译成等价的中间代码或者汇编代码。
  • 汇编程序:将汇编语言代码翻译成目标机器指令。
  • 链接程序:生成的目标代码还需要库文件等支持,所以需要进行链接。

VC6.0中编译C语言

VC6.0工具中,编译完成C语言后,还涉及到构建和运行。

构建(Build):经过编译后的程序,通过Build(链接程序)生成操作系统可执行的程序。如果直接执行Build,则会先自动执行编译,然后完成Build。

软件类型

软件层次

裸机、硬件:BIOS程序等,对硬件进行协调和控制的软件。

操作系统:协调应用软件和底层硬件的软件。

应用软件:用户使用的功能性软件。

软件分类

从用户角度,分为:系统软件、应用软件等。

应用软件按照技术特点分为:业务管理软件,科学计算软件,人工智能软件,手机APP等。

应用软件从部署结构分:单机软件、分布式软件。其中分布式软件又可分为(C/S结构软件,B/S结构软件)。

原文地址:https://www.cnblogs.com/rask/p/10171289.html

时间: 2024-10-24 06:59:26

C01 C语言基础的相关文章

Oracle SQL语言基础及环境准备_超越OCP精通Oracle视频教程培训26

Oracle SQL语言基础及环境准备_超越OCP精通Oracle视频教程培训26 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第1/5套:SQL语言之基础入门及环境准备.主要学习Oracle数据库SQL语言基础介绍.PL/SQL语言介绍.数据库SQL对象与数据类型介绍.SQL语言实战环境准备等. Oracle SQL语言之基础及环境准备,课程内容详细如下: Oracle数据库SQL语言基础介绍Oracle数据

Swift语言指南(一)--语言基础之常量和变量

Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swift 提供了 C 与 Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double 与 Float,表示布尔值的 Bool,以及表示纯文本数据的 String. Swift 还为两个基本集合类型 Array 与 Dictionary 提供了强大的支持,详情可参考 (集合类型)Collection Types. 与 C 语言类

02 java语言基础

常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常量 用双引号括起来的内容 整数常量 所有整数 小数常量 所有小数 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 布尔常量 较为特

嵌入式 Linux C语言——C语言基础

嵌入式 Linux C语言--C语言基础 一.数据类型 1.基本数据类型 数据类型是创建变量的模型.变量名是连续存储空间的别名,程序中使用变量命名存储空间,通过变量可以使用存储空间.变量所占的内存大小取决于创建变量的数据类型. 2.有符号和无符号 有符号数中数据类型的最高位用于标识数据的符号,最高位为1表示为负数,最高位为0表示为正数. 计算机中有符号数通常使用补码表示,正数的补码为正数本身,负数的补码为负数的绝对值的各位取反后加1. 计算机中无符号数通常使用原码表示,无符号数默认为正数,没有符

C#语言基础

第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了一个强大的.易用的.逻辑结构一致的设计环境.其特点: 语言简洁 保留了C++的强大功能: 快速应用开发功能: 语言的的自由性: 强大的Web服务器控件: 支持跨平台: 与XML相融合: 第二部分 C#语言基础: 一.C#项目的组成结构: 1.项目后缀 .config——配置文件(存放配置参数文件)

OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的

【quick-cocos2d-x】Lua 语言基础

版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速便捷了许多,下文只是lua这门语言的一个基础知识点,没有涵盖整个Lua的内容,但是作为对lua入门的初步了解还是可以的,由于内容精简了不少,所以语言上可能会有点跳跃,但是问题不大. 要了解一门语言,首先要了解的是语言的标识符.保留字.常量和变量,命名规范和注释以及数据类型等.然后是运算符.控制流语句

C# 语言基础(简单的输出 输入语句 和 加法运算符)

int a, b; Console.Title = "C# 语言基础-第一堂课";// 标题 Console.BackgroundColor = ConsoleColor.DarkRed;//设置控制台的背景颜色 Console.WriteLine("幼儿园大班第一节课"); Console.WriteLine("请输入a的值,按回车");//输出语句,自动换行 Console.Write("a="); //输出语句,自动不换

R语言基础

##数据获取 x1=round(runif(100,min=80,max=100)) x2=round(rnorm(100,mean=80, sd=7)) x3=round(rnorm(100,mean=80,sd=18)) x3[which(x3>100)]=100 num=seq(2005138101,length=100) x=data.frame(num,x1,x2,x3) write.table(x, "grade.txt") ##数据分析 y=read.table(&