1 / 415

计算机技术基础

计算机技术基础. C 语言程序设计. 第一章 简单的 C 语言程序设计 第二章 数据类型、运算符与表达式 第三章 算法与程序设计基础 第四章 函数 第五章 指针和数组 第六章 结构体和共同体 第七章 文件. 目 录. 第一章 C 语言概述. §1.1 C 语言的概况 §1.2 几个简单的 C 程序 §1.3 C 语言的特点 §1.4 上机步骤. §1.1 C 语言的概况. 一、发展简史 : ALGOL ( 1960 )(离硬件较远) CPL ( 1963 )(剑桥大学) B CPL ( 1967 )(剑桥大学)

early
Download Presentation

计算机技术基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机技术基础 C语言程序设计

  2. 第一章 简单的C语言程序设计 第二章 数据类型、运算符与表达式 第三章 算法与程序设计基础 第四章 函数 第五章 指针和数组 第六章 结构体和共同体 第七章 文件 目 录

  3. 第一章 C语言概述 §1.1 C语言的概况 §1.2 几个简单的C程序 §1.3 C语言的特点 §1.4 上机步骤

  4. §1.1 C语言的概况 一、发展简史: ALGOL(1960)(离硬件较远) CPL(1963)(剑桥大学) BCPL(1967)(剑桥大学) B(1970)(贝尔实验室、很接近硬件、但功能有限) C(1972)(贝尔实验室、用C语言写UNIX操作系统) 二、C简介: 1.C语言是一种计算机高级语言。 2.C语言具有一般高级语言的特性,又具有低级语言的特性, 集两者的优点于一身。 3.C语言既可用来编写系统软件,也可编写应用软件。

  5. 一、C程序的结构: §1.2 几个简单的C程序 1、C程序是一个或几个函数的集合,其中一个函数必须是主函数main( ),它代表程序开始执行的起始位置。 函数是C程序的基本单位。 C程序中有三种类型的函数: 1).main( ) :主函数,每一个C程序必须有且只有一个 main()函数。 2).库函数:开发系统提供的特殊函数,如scanf( )、 printf( )等。 Turbo C开发系统提供三百多个函数。 3).自定义函数:程序员自己设计的函数,如max()。

  6. 2、无论main()函数位置如何,一个C程序总是从main()2、无论main()函数位置如何,一个C程序总是从main() 函数开始执行。 3、一个函数由两部分构成: (1)函数首部:即函数第一行包括:函数类型(返回值类 型)、函数名、参数名、参数类型。 注:函数名后必须跟一对圆括弧。 (2)函 数 体:大括号{ }中的部分。 包含 声明部分:定义变量或声明所调函数 执行部分:由若干语句组成 4、C程序书写格式自由,一个语句可以占多行,一行也可以有多个语句。

  7. 5、语句和数据定义后必须要有分号。 例、c = a + b ; 6、C语言用库函数进行输入输出。 如scanf()、printf()。 7、C语言用/* */作注释。

  8. [例1.1] main( ) { printf(“Hello,world!\n”); } 该程序的功能:在屏幕上输出一行信息: Hello,world! 1、main( ) 表示“主函数”,每一个C程序都必须有且只 有一个主函数。 2、main函数体由大括号{ }括起来。 3、语句后面有一个分号。 4、printf( )是C语言的输出函数。双引号内的字符 被原样输出。 5、“\n”是换行符。

  9. [例1.2]求123与456相加之和。 main( ) { int a, b, sum;/*定义三个整型变量。*/ a = 123;b = 456;/*把常数123赋给变量a。把常数456赋给变量b*/ sum = a + b;/*计算a、b之和,并把和值赋变量给sum*/ printf(“Sum is%d\n”, sum);/*输出sum的值*/ } 程序的输出信息为:Sum is 579 /* */中间的内容表示“注释”。注释是程序员对程序某部分的功能和作用所做的说明,是给人看的,对编译和运行不起作用。 %d表示整型格式,在输出时,该位置用对应变量sum的值代替。

  10. [例1.3]求任意两数之和。 main( ) { int a, b, sum;/*定义三个整型变量。(int = integer)*/ scanf(“%d,%d”,&a,&b);/*从键盘随机输入两个数分别赋给变 量a和b*/ sum = a + b;/*计算a、b之和,并把和值赋变量给sum*/ printf(“a+b=%d\n”, sum);/*输出sum的值*/ } 从键盘输入:70,90 程序的输出信息为:a+b= 160

  11. [例1.4]用调用用户自定义函数的方法求任意两数之和。[例1.4]用调用用户自定义函数的方法求任意两数之和。 main( ) { int a, b, s; printf(“请输入两个整数a,b:”); scanf(“%d,%d”,&a,&b); s = sum(a , b); printf(“a+b=%d\n”, sum); } int sum(int x,int y) { int z; z=x+y; return z; } 1.请输入两个整数a,b: 2.请输入两个整数a,b:70,90 70,90 a+b= 160 a+b= 160

  12. 二、C语言常用符号: 1、关键字(34个):有特定含义,不能被作它用, 必须用小写字母。 2、标识符:有效字符序列 C语言规定:字母、数字、下划线三种字符组成且 第一个字符只能是字母或下划线 注: (1)实质:就是一个名字(常量、变量、数组、 函数、文件)。 (2)区分大、小写。 (3)遵循“见名知意”原则。 (4)对变量“先定义、后使用”原则。

  13. §1.3 C语言的特点 一、C的特点: 1、语言简洁,使用方便、灵活。 2、运算符丰富。 3、数据结构丰富。 4、结构化程序设计理想,符合现代编程风格。 5、语法限制不严格,程序设计自由度大. 6、C语言允许直接“访问”硬件物理地址,能进行 位操作,实现汇编语言的大部分功能。 (因此,C语言常被称为“中级语言”。)

  14. 7、目标代码效率高,仅比汇编程序生成的目标代码执7、目标代码效率高,仅比汇编程序生成的目标代码执 行效率低10~20%。 8、可移植性好。基本不作修改就可以在不同型号计算 机、不同操作系统上执行。 C 通用 BASIC 初学者易入门 PASCAL 教学语言 FORTRAN 科学计算 COBOL 商业管理数据处理

  15. 二、C的优点 1)、高效 2)、可移植 3)、灵活 4)、有能力 例如:大部分实用的、便于移植的UNIX操作系统用c语言写的,在UNIX系统中,c语言之外的其它语言,如FORTRON、APL、PASCAL、LISP、LOGO、BASIC的编译程序或解释程序用C写成的。 C将成为当今最重要的语言之一。

  16. §1.4 Turbo C 程序设计环境的上机步骤 计算机只能识别和执行由0和1组成的二进制的指令,而不能识别用高级语言编的程序指令。为了使计算机能执行高级语言程序,必须先用一种软件(编译程序)把高级语言程序翻译成二进制的指令(目标程序),才能被计算机识别和执行。

  17. 一、上机步骤 1、启动Turbo C: 在桌面上找到TC的快捷方式,双击tc↙ 2、编辑源程序。C源程序的文件扩展名必须是.C。(上机输入源程序) 。 3、编译、连接、运行:Ctrl+F9若源程序无语法错误,生成可执行文件EXE;若源程序有语法错误,在Message窗口显示错误信息,此时没有生成可执行文件,应回到第2步,修改程序的错误,直到无语法错误、生成可执行文件。 5、观看运行结果: Alt+F5 。 5、退出Turbo C,按Alt+X。

  18. 二、Turbo C集成环境介绍 1、启动Turbo C 后,界面: 2、File菜单(文件操作) 3、Run菜单(各种程序运行方式) 4、Compile菜单(编译、连接) 5、Project菜单(工程管理) 6、Option菜单(开发环境定制) 7、Debug菜单(调试) 8、Break/Watch菜单(断点管理)

  19. 建 议 不要只读程序,要试者通过上机练习来学习C语言! 编制程序时最好用自己的方法。不要照搬书上的。 如果你肯积极地上机练习,你一定会更快更深地掌握c语言!

  20. 第二章 数据类型、运算符与表达式

  21. C的数据类型概要: 数据类型是任何 语言的基础    在C语言中,程序中的每一个数据都有一个确定的类型。

  22. 基本数据类型定义关键字: 整 型: int 字 符 型: char 单精度浮点型: float 双精度浮点型: double 基本数据类型修饰符: signed [有符号的,系统默认,可缺省] unsigned (无符号的) long (长的) short (短的)

  23. §2.3常量(Constant) 定义: 在程序运行过程中,其值不能被改变的量。 分类: 类型上 整型常量 实型常量 字符型常量 形式上 字面常量或直接常量 符号常量(用一个标识符代表一个常量)

  24. 2.3.1 整型常量 一、三种表示形式: 1、十进制整数 例:123 十进制: 表示十进制数123 2、八进制整数(以0开头) 例:0123: 八进制数 ,表示十进制数83 3、十六进制整数(0x开头) 例:0x123:十六进制数, 表示十进制数291

  25. 二、整型常量的分类: 1、基本型 ( int或 short (short int) ) 一般占2个字节, 范围: -32768 ~ +32767之间。 2、长整型 ( long或long int) 占4个字节, 范围:-217483648 ~ +217486647之间, 以字母l或L结尾,如:123456789L。 3、无符号型 ( unsigned int或unsigned long) 无符号基本型:范围:0 ~65535以u或U结尾 无符号长整型:范围:0~ 4294967295 以字母ul或UL结尾。如:123456789UL

  26. 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 三、整型数据在内存中的存放形式: 整型数据在内存中是以补码形式存放的。 int i; i=-5; 十进制数-5的二进制形式为101,在C编译系统下,每一个整型变量在内存中占2个字节。 [-5]原码 [-5]反码 [-5]补码

  27. 2.3.2 实型常量 实数(real)又称为浮点数(float), 一、两种表示方法: 1、十进制小数形式(必须有小数点) 0.123 122.0 .123 122. 0.0 2、指数形式(必须e前有数、e后为整) 123e3或123E3都代表:123103 指数形式有多种形式,但一般按规范化的指数形式输出 (1.23 105) 动动脑吧 3e2.5 E3 E 2

  28. 二、实数常量的分类: 1、单精度实型数(float): 32位 有效数字在6~7位,数值范围在:10-37~ 1038 2、双精度实型数(double float) 64位 有效数字在15~16位,数值范围在:10-307~ 10308 C语言中:实型常量默认为double型 若要表示单精度实型数,则要在其后加f或F以示区别。 如:12.5678 双精度实数 12.5678f 单精度实数

  29. 数符(1位) 纯小数部分(23位) 指数部分(8位) 三、实型数据在内存中的存放形式 实型数据在内存中是以指数形式存放的。 在C编译系统下,每一个实型变量在内存中占4个字节 (32位)。

  30. 2.3.3 字符常量 1.定义:用单引号(撇号)括起来的一个字符(注意只能是单个字符)。 2.转义字符:以“\”开头的字符序列(特殊形式的字符常量) 3.字符在内存中以ASCII码形式存放。 如:‘a’、‘A’、 ‘0’、 ‘8’、‘?’、‘$’。(查ASCII表) 注意:(1)C语言区分大小写 所以‘a’和‘A’是不同的字符常量。 ‘a’ : ASCII码:97 ‘A’ : ASCII码:65 ASCII码由小到大:数字<大写字母<小写字母 (2)字符常量能和整数一样参与数值运算。 (如书P30例2.5)

  31. 转义字符表

  32. 2.3.4 字符串常量 1.字 符常量:单引号括起来的一个字符如‘a’。 2.字符串常量:双引号括起来的字符序列如“a”或“ac”. 3.在内存中的存放:每一个字符均以其ASCII码存放,且最后自动添加一个“空字符\0”. 4.C规定:在每一个字符串的结尾自动加一个“字符串结束标志”‘\0’,以便系统据此判断字符串是否结束。 例:“CHINA ”“How do you do? ” “CHINA ”在内存中的存放情况是: 想一想:‘a’与“a”有何区别? C H I N A \0

  33. 基本数据类型及说明

  34. 2.3.5 符号常量 1.定义时用#define 2.一般符号常量大写,变量名小写 3.值在其作用域内不能改变也不能再赋值 4.优点: (1)含义清楚 (2)一改全改 [例2.1]#define PI 3.14 #define R 5 main() { float circle, area; circle = 2*PI*R; area = PI*R*R; printf(“周长 = %f,面积=%f”, circle,area); }

  35. §2.4 变量(Variable) 1.定义: 其值可以被改变的量。 2.表示:用标识符表示,遵循标识符命名规则。 3.定义变量的格式:类型名 变量名 注意:(1)“先定义,后使用” 目的: ①凡未被定义,就不能用作变量名,保证正确性; ②每一变量指定为确定类型,编译时可为其分配 相应的存储单元; ③便于在编译时,根据变量类型来检查运算是否合法。 (2)区分大小写 (3)建议变量长度:不超过8个字符。 4.区分:变量名:实质是一个符号地址,编译连接时给其分配一 个内存地址。 变量值:变量名所对应的存储单元中存放的值、数据。

  36. 变量值 变量名(符号地址) total 2000 2001 80 2002 2003 存储单元号(物理地址) 5 2004 2005 2006 2007 变量在内存中占据一定的存储单元 (具体长度视数据类型而定)。 (1)int total; (2) float a=5; total=80;

  37. 下列哪些是合法变量名? 1. sum 2. 8average 2. student_name 4. _above 5. lx1_1_2  ×   

  38. 2.4.1 整型变量 一、整型变量的分类(IBM PC) 基本型(整型)int2字节 短整型 short 或 short int2字节 长整型 long 或 long int4字节 无符号整型: unsigned 2字节 无符号短整型:unsigned short 2字节 无符号长整型:unsigned long 4字节 说明: C语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关,但一般 是2字节。

  39. 二、整型变量的定义 [例2.2] main() { int a,b,c,d; unsigned int u; a = 12; b = -24; u = 10; c = a+u; d = b+u; printf("a+u = %d, b+u = %d\n", c, d); } 程序运行结果:a+u = 22, b+u = -14

  40. 说明:整型数据的“溢出” int范围为-32768~32767。 unsignde int范围为0~65535。 超出后发生“溢出”,但运行时不报错。 [例2.3]即教材P34例2.9 main() { int a,b; unsigned i,j; a = 32767; b = a+1; i = 65535; j = i+1; printf(" %d,%d, %u , %u ", a, b,i, j); } 程序运行结果:32767,-32768,65535,0

  41. -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 [例2.4]即教材P34例2.7 main() { int a=1; int b=-1; unsigned c,d; c=a ; d=b; printf(" %d,%d, %d, %u , %d, %u ", a, b, c, c, d, d); } 程序运行结果:1,-1, 1, 1, -1, 65535

  42. 2.4.2 实型变量 一、实型变量的分类 单精度:float 4字节(32位) 双精度:double 8字节(64位) 二、实型变量的定义 例1:float x,y; double z; 例2:float a; a=123456.791; 注: float型变量只能接受7位有效数字,最后两 位数字不起作用。 double 型变量能接受16位有效数字。

  43. 说明:实型数据的舍入误差 由于存储单元有限,因此有效数字有限。 float型有效数字7位,后面数字无意义,不准确表示该数。 [例2.5]main( ) { float a,b; a = 1234567.11e2; b = a + 20; printf(“a=%f\nb=%f\n”,a,b);} 程序运行结果: a=123456712.000000 b=123456736.000000

  44. 2.4.3 字符型变量 1.定义:用来存放一个字符常量的变量. 2.在内存中占一字节宽度,以ASCII码形式存放。 注:(1)字符变量≠字符串常量 (2)无专门的字符串变量 若保存字符串,必须使用字符数组。 例: char c1= ‘a’,c2; 等效 c2 = ‘b’; √ c2=“abcd”;× char c1,c2; c1= ‘a’ ; c2 = ‘b’;

  45. 说明:字符型与整型可通用、互相赋值 原因:字符以ASCII码存储,其存储方式与整数类 似。从而,C语言允许字符和整数之间进行运算。 [例2.6] main() { char c=97; int i= 'a' ; printf("%c,%d\n",c,c); printf("%c,%d\n",i,i); } 输出: a,97 a,97 c i a 97

  46. 补充说明 一、变量赋初值 含义:在定义变量的同时指定其初值。 例:int a = 3; float f = 2.56; char c = 'a'; int a, b, c = 5; 注意:多个变量指定相同的初值。 int a = b = c = 3 ;× int a = 3, b = 3, c = 3;√ int a; a=3; int a,b,c; c=5;

  47. 二、各类数据混合运算 1.整型、实型(包括单、双精度)、字符型数据可以混合运算。例: 10 + 'a' + 1.5 - 8765.1234 * 'b' 2.混合运算时,先转换成同一种类型,然后进行运算。 转换规则: 横向为自右向左强制转 换, 纵向从低到高可多 次或一次转换成功。 高 double float long unsigned 低 int char,short

  48. 例: int i; float f; double d; long e; 10 + 'a' + i*f - d/e 高 double float long unsigned 低 int char,short 上述转换过程是由系统自动进行的。

  49. §2.5 常用运算符与表达式 2.5.1 算术运算符与算术表达式 算 术 运 算 符 + - * / %模运算符(求余)++ -- 表 达 式 一般形式 算术运算符和括号将运算对象连接起来 表达式值 算术运算结果 举 例 ①’a’-1.5+a*b/c ②i++ ③++i 优 先 级 ++ -- * / % + - 结 合 性 左→右 右→左 ++ --

  50. 说明:算述运算中 • / 两整数相处结果为整数 • 例:5/3=1 -5/3=-1 (向零取整) • 2. % 两侧必须为整型数据 • 例: 5%3=2 -5%3= -2 (余数符号与被除数相同) • 3.因为所有实数都按double型运算, • 所以+ - * / 两侧只要有一个为实数, • 则结果为double型

More Related