版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计周屹第1章C语言概述1.1C语言历史及特点
1.2结构化程序设计及算法
1.3简单C程序介绍
1.4C程序的开发过程
1.5C语言编程环境简介
机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000加
10010000减用助记符号描述的指令系统如ADDA,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象>>程序设计语言的发展流行语言应用编程语言机器语言汇编语言BasicPascalCC++JavaC#专项编程语言LotusNotesPowerBuilderWeb编程语言HTMLXMLPHPASPJSPJavaScriptVBScript其他perlpythonVBA1.C语言历史C语言之父,UNIX之父DennisM.Ritchie(丹尼斯·利奇)丹尼斯·利奇(DennisM.Ritchie)和肯·汤普森(KenThompson)著名的K&R组合在1983年两人联合接受了计算机最高奖图灵(Turing)奖UNIX操作系统BellLabs贝尔实验室2.C语言特点1.C是结构化语言2.C语言功能齐全3.C语言适用范围大4.C语言的语法特点5.C语言生成目标代码质量高,程序执行效率高1.2结构化程序设计及算法1.2.1结构化程序设计1.结构化程序设计的原则是:(1)自项向下。(2)逐步细化。(3)模块化设计。(4)结构化编码。C语言词汇分为六类:标识符,关键字,运算符,分隔符,常量,注释符。1.标识符2.关键字32个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile1.2.2算法1.算法的基本概念2.算法的特性
(1)有穷性。
(2)确定性。(3)可行性。
(4)有零个或多个输入。(5)有一个或多个输出。(1)求和
(2)乘积(3)求最大或最小值
(4)穷举
(5)迭代(递推)(6)递归(7)排序(8)查找4.基本算法
(1)正确性
(2)健壮性
(3)可读性
(4)简单性
(5)时间复杂度
(6)空间复杂度5.算法评价/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Hello,C!\n”);}注释编译预处理函数语句输出:Hello,C!说明:
本程序的作用是输出一行信息:Hello,C!例1.2在屏幕上显示“Hello,C!”。(1)C语言程序为函数模块结构,所有的C语言程序都是由一个或多个函数构成的,其中main函数必须有且只能有一个。函数是C语言程序的基本单位。(2)C语言程序总是从主函数开始执行,当执行到调用函数的语句时,程序将控制转移到被调函数中执行,执行结束后,在返回到调用函数继续执行,直到程序执行结束为止。(3)C语言程序的函数包括编译系统提供的标准函数和由用户自己定义的函数。(4)源程序中的预处理命令通常放在源文件或源程序的最前面。(5)每一个说明和每一个语句都必须以分号结尾。但是预处理命令、函数头和函数体的定界符“{”和“}”之后不能加分号。(6)标识符、关键字之间必须至少加一个空格以示分隔。若已有明显的分隔符,也可以不再加空格。(7)可以在程序的任何位置用“/*注释内容*/或“//注释内容”的形式对程序或语句进行注释。
1.3.1C语言程序的结构特点
(1)通常一个说明或一个语句占一行,每个语句由分号结束;一个语句可以分行写在多行上,一行内也可以写几个语句。(2)可以在函数与函数之间加空行,以清楚地分出程序中有几个函数。(3)用{}括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母空两格,并单独占一行。(4)低一层次的语句或说明比高一层次的语句或说明向后缩进若干空格书写,同一个层次的语句左对齐,以便看起来更加清晰,增加程序的可读性。(5)对于数据的输入,运行时最好要出现输入提示;对于数据输出,也要有一定的提示和格式。(6)在程序中可以用/*……*/加上必要的注释,以增加程序的可读性。1.3.2C程序的书写格式1.4.1源程序翻译1.4C程序的开发过程编辑链接编译执行file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe1.5.2Windows编程环境1.VisualC++6.0简介(1)VisualC++集成开发环境(IDE)集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立应用程序的工具集成在一起的用于开发应用程序的软件系统。VisualC++软件包中的DeveloperStudio就是一个集成开发环境,它集成了各种开发工具和VC编译器。程序员可以在不离开该环境的情况下编辑、编译、调试和运行一个应用程序。IDE中还提供大量在线帮助信息协助程序员做好开发工作。DeveloperStudio中除了程序编辑器、资源编辑器、编译器、调试器外,还有各种工具和向导(如AppWizard和ClassWizard),以及MFC类库,这些都可以帮助程序员快速而正确地开发出应用程序。。(2)向导(Wizard)向导是一个通过一步步的帮助引导你工作的工具。DeveloperStudio中包含三个向导,用来帮助程序员开发简单的Windows程序,它们是:AppWizard:用来创建一个Windows程序的基本框架结构。ClassWizard:用来定义AppWizard所创建的程序中的类。ActiveXControlWizard:用于创建一个ActiveX控件的基本框架结构。2.启动VisualC++6.0(1)单击任务栏中的【开始】按钮,将鼠标指到【程序】项下级子菜单项【MicrosoftVisualStudio】项,显示该项下级菜单。(2)单击MicrosoftVisualC++6.0项,即可启动,若是第一次运行,将显示出“TipoftheDay(当前的提示)”对话框,单击“NextTip(下一提示)”按钮,就可以看到有关各种操作提示;如果不选中“Showtipsatstartup(再启动时显示提示)”复选框,那么以后运行启动VisualC++6.0时,将不再出现此对话框。单击“Close”按钮关闭此对话框,进入VisualC++6.0开发环境。C语言程序设计周屹第2章
数据类型2.1数据类型简介2.1.1数据类型分类2.1.2标识符 2.2常量2.2.1数值常量2.2.2字符常量 2.2.3符号常量 2.3变量 2.3.1整型变量 2.3.2实型变量 2.3.3字符变量 2.3.4变量赋初值
2.1数据类型简介
2.1.1数据类型分类
2.1.2标识符 标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。
例如,_00、print、FOR均是合法的标识符,而&a、-123、ab均是不合法的标识符。英文字母的大小写是有区别的,命名最好做到“见名知义”,增加程序的可读性标识符的有效长度为1~255个字符。2.2常量2.2.1数值常量2.实型常量实型常量即实数,又称为浮点数。C语言中,实数只能用十进制形式表示,实数的表示方法有两种:小数形式和指数形式。小数形式:如12.345,3.,-.123。指数形式:由尾数部分、字母E或e和指数部分组成,格式为:±尾数E指数。注意:(1)以小数形式表示实数时,必须有小数点,并且小数点的前、后至少一边要有数字。(2)以指数形式表示实数时,字母E(或e)的前后必须有数字,并且指数部分只能是整数。如12.-E3、1.5E、E6都是不正确的实数。2.实型常量2.2.2字符常量1.字符常量字符常量:是用单引号括起来的一个字符。字符可以是字符集中任意字符,每个字符在内存中占一个字节,以ASCII码形式存储在内存中。
字符常量的取值是该字符所对应的ASCII码值,可以用整型数据描述。将一个字符常量赋给一个变量时,就是把该字符常量的ASCII码值赋给该变量。字符常量可以参加各种运算。i=‘I’;/*等价于i=73*/t=‘$’+5;/*等价于t=36+5*/s=‘%’+‘X’;/*等价于s=37+88*/2.字符串常量字符串常量简称字符串,是用一对双引号“”括起来的零个或多个字符序列。例如,“a”、“ASDFG”、“CHINA”、“1234”、”Class-1”等都是字符串常量。字符串的长度等于该字符串中所包含的有效字符的个数,在字符串中如遇到‘\0’则认为该字符串结束。系统自动在每个字符串的尾部加上'\0'作为字符串的结束标志。
例如字符串“Hello”在内存存储如下:
n个字符组成的字符串,在内存中要占用n+1个字节空间。可以使用sizeof运算符来计算字符串占用的内存空间大小。字符串的长度等于该字符串中所包含的有效字符的个数。在字符串中如遇到'\0'则认为该字符串结束。可以使用strlen()函数计算字符串的长度。字符常量和字符串常量在内存中的存储情况是不同的。如‘6’在内存中占1个字节,存储的是其ASCII码。“6”在内存中占2个字节,一个字节存储'6',一个字节存储'\0'。3.转义字符
转义字符又称反斜杠字符常量,转义字符具有特定的含义,不同于字符原有的意义。
其形式为反斜杠“\”后跟一个字符或一些数字。例如,\n就是一个转义字符,它不代表字母n,
而是作为换行符,其意义是回车换行。
常见的转义字符转义字符转义功能ASCII码值\0空字符0\b退格(Backspace)8\t水平制表符(即横向跳格)9\n回车换行(Enter)10\v竖向跳格11\f换页12\r回车13\"双引号(")34\'单引号(')39\?问号(?)63\\反斜线字符(\)92\ddd1~3位八进制所代表的字符\xhh1~2位十六进制所代表的字符【例】转义字符使用示例#include<stdio.h>intmain(){ charb,c,d,e; b='\43'; c='\103'; d='\x2a'; e='\x41'; printf("b=%c,c=%c,d=%c,e=%c\n",b,c,d,e); printf("\"good\40morning!\b\"!\n"); printf("\123456"); return0;}运行结果b=#,c=C,d=*,e=A"goodmorning"!S456注意:转义字符形式上由多个字符组成,但它是一个字符常量,只代表一个字符。转义字符的使用方法与一般字符常量的用法相同。2.2.3符号常量 用符号来代替常量,代替常量的符号称为符号常量。通常用大写英文字母表示符号常量。其格式为:#define符号常量常量
例如:
#defineN9#defineEOF-1#defineNULL0其中,#define是编译系统预处理命令;N、EOF(结束标志)、NULL(空)是符号常量,分别代替常量9,-1和0。
每个符号常量的定义式只能定义一个符号常量,并且占据一个书写行。例2-3求圆的面积。#include<stdio.h>#definePI3.14159voidmain(){floats,r;r=4;s=PI*r*r;printf("s=%f\n",s);}由宏定义命令定义PI为3.14159,r定义为实数4,s为PI*r*r。本程序在主函数之前由宏定义命令定义PI为3.14159,在程序中即以该值代替PI。s=PI*r*r等效于s=3.14159*r*r。应该注意的是,符号常量不是变量,它所代表的值在整个作用域内不能再改变。也就是说,在程序中,不能再用赋值语句对它重新赋值。2.3变量
在图2-2中,p是变量名,5为变量p的值,即p=5,方框代表存储单元。变量名实际上是一个符号地址,在对程序编译链接时系统自动给每个变量名分配一个内存地址。2.3.1整型变量 1.整型变量的分类数据在计算机内存中是以二进制形式存放的。为充分利用内存空间,提高运行速度,根据数据的取值范围可将整型变量划分为3类。(1) 基本整型:用int表示。(2) 短整型:用shortint或short表示。(3) 长整型:用longint或long表示。2.无符号整型变量和有符号整型变量无符号型变量只能存放不带符号的整数,如123,45,1068等,而不能存放负数,如,-123,-45,-1068等。2.3.1整型变量 整型变量定义
一般格式为:
数据类型关键字变量1,变量2,…..,变量n;
其中,“数据类型关键字”必须是系统规定的关键字;
“变量1,变量2,…,变量n”可以是用户命名的标识符。具有相同数据类型的变量可以在一起说明,它们之间用逗号分隔。
凡未被事先说明的变量,不能作为变量名。
在定义变量时,可以根据数据的大小选取合适的类型。特别是将整型常量赋给整型变量时,类型要匹配。例2-4整型变量的定义与应用#include<stdio.h>main(){inti,j,s1,s2;unsignedinta;i=28;j=-45;a=10;s1=i+a;s2=j+a;printf(“i+a=%d,j+a=%d\n”,s1,s2);}
运行结果:i+a=38,j+a=-35分析:在printf()函数中,“%d”表示输出整型数据,而“\n”表示换行输出。另外,双引号括起来的其他字符按原样输出。2.3.2实型变量
表2-4中,有效位是指数据在几位之内为有效数字。如:实型数据123456.789只能保证前7位数据的准确性,而后面的两位小数将出现随机数。双精度型与长双精度型的精度都比单精度高。实型变量分为3类:单精度型、双精度型和长双精度型。2.3.2实型变量
例2-6实型数据输入、输出举例。#include<st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西桂林市县级政府统计机构招聘统计协管员(协统员)30人模拟试卷及完整答案详解(易错题)
- 2026上海电力安装第一工程有限公司招聘20人考前冲刺密卷含答案详解【综合卷】
- 2026四川广元市选聘“周末工程师”18人考前冲刺密卷附参考答案详解【完整版】
- 2026年安徽农业大学茶业学院管理助理招聘笔试题库附完整答案详解【历年真题】
- 2026广西物资学校秋学期招聘兼职教师考前冲刺试卷及答案详解【夺冠系列】
- 2026黑龙江哈尔滨市依兰县公益性岗位招聘96人考前冲刺密卷含完整答案详解【夺冠系列】
- “浸润式”教学在初中《道德与法治》课堂教学中的应用研究
- 高速公路桥梁维修加固工程施工组织设计
- 公交驾驶员专业培训考核大纲
- 知识型员工的激励机制研究
- 2026年数字安徽有限责任公司所属企业安徽数安系统集成有限公司第1批次社会招聘考试参考题库及答案详解
- 2026年中小学教师(语文)副高级职称评审答辩题库及答案
- 学校管理与教师专业发展手册
- 2026秋新人教版英语五年级上册单元一Unit 1 Different friends测试卷-提高卷附答案(文档中已插入听力音频)
- 2026-2030中国白垩工业市场现状分析与竞争策略研究报告版
- 2026广西南宁市青秀区伶俐镇人民政府招聘2人(劳务派遣)笔试参考题库及答案详解
- 2026福建泉州交发集团(第一批)校园招聘89人笔试备考题库及答案详解
- 2026年新疆生产建设兵团事业单位考试真题及答案
- 影像医学技术操作规程大全
- 2026年河南高考地理考试试卷及答案
- 2024版电网典型设计10kV配电站房分册
评论
0/150
提交评论