语宫程设说 ■讲义下载 ftp:∥172221825/ teacher张颖课件/C程序课件 教师:张颖 e-mail: b yhahotmail com
C语言程序设计 教师: 张颖 e-mail: b_yh@hotmail.com ◼讲义下载: ftp://172.22.18.25 / teacher/张颖/课件/C程序课件
第1章C语言概述 本章主要介绍0语言程序的结构和书写规则, 以及 Turbo c v2.0的基本操作 1.1c语言出现的历史背景 1.2c语言的特点 1.3简单的C程序的介绍 1.4C程序的上机步骤
第1章 C语言概述 本章主要介绍C语言程序的结构和书写规则, 以及Turbo C V2.0的基本操作。 1.1 C语言出现的历史背景 1.2 C语言的特点 1.3 简单的C程序的介绍 1.4 C程序的上机步骤
1.10语言出现的历史背景 1.c语言的诞生与发展 (1)在0语言诞生以前,系统软件主要是用汇编语言 编写的。由于汇编语言程序依赖于计算机硬件,其可读 性和可移植性都很差;但一般的高级语言又难以实现对 计算机硬件的直接操作(这正是汇编语言的优势),于 是人们盼望有一种兼有汇编语言和高级语言特性的新语 (2)c语言是贝尔实验室于70年代初研制出来的, 后来又被多次改进,并出现了多种版本。80年代初,美 国国家标准化协会(ANS1),根据c语言问世以来各种 版本对C语言的发展和扩充,制定了ANS0标准(1989 年再次做了修订)
1.1 C语言出现的历史背景 1.C语言的诞生与发展 (1)在C语言诞生以前,系统软件主要是用汇编语言 编写的。由于汇编语言程序依赖于计算机硬件,其可读 性和可移植性都很差;但一般的高级语言又难以实现对 计算机硬件的直接操作(这正是汇编语言的优势),于 是人们盼望有一种兼有汇编语言和高级语言特性的新语 言。 (2)C语言是贝尔实验室于70年代初研制出来的, 后来又被多次改进,并出现了多种版本。80年代初,美 国国家标准化协会(ANSI),根据C语言问世以来各种 版本对C语言的发展和扩充,制定了ANSI C标准(1989 年再次做了修订)
(本书选定的上机环境是70V2.0(D0操作系 统)。 1.2C语言的特点 C语言同时具有汇编语言和高级语言的优势。 (1)语言简洁、紧凑,使用方便、灵活。 (2)运算符极其丰富 (3)生成的目标代码质量高,程序执行效率高。 (4)可移植性好(较之汇编语言 (5)可以直接操纵硬件
(本书选定的上机环境是 TC V2.0(DOS操作系 统)。 1.2 C语言的特点 C语言同时具有汇编语言和高级语言的优势。 (1)语言简洁、紧凑,使用方便、灵活。 (2)运算符极其丰富。 (3)生成的目标代码质量高,程序执行效率高。 (4)可移植性好(较之汇编语言)。 (5)可以直接操纵硬件
(6)在0语言中,除实现版序,选和循环 种基本结构等的9条控制语句外,输入输出操 作均由标准库函数来实现。 所以学习0语言,不仅要学习这9条控制语 句和各种运算符,而且要学习并掌握常用标准 库函数的使用
(6) 在C语言中,除实现顺序、选择和循环 三种基本结构等的9条控制语句外,输入输出操 作均由标准库函数来实现。 所以学习C语言,不仅要学习这9条控制语 句和各种运算符,而且要学习并掌握常用标准 库函数的使用
1.3简单的C程序介绍 例 1.main代表主函数每个c程 maino序有且只有一个主函数 2函数体是由[}括起来的 3c语言规定分号为语句的 结束符,每条语句都用分号 结束 4.对于单独一个分号来说也 是一条语句,只不过语句部 分为空,即空语句,所以例1 是包括空语句的c程序
例1: main() { ; } 1.3 简单的C程序介绍 1.main代表主函数.每个c程 序有且只有一个主函数. 2.函数体是由{ }括起来的. 3.C语言规定分号为语句的 结束符,每条语句都用分号 结束. 4.对于单独一个分号来说也 是一条语句,只不过语句部 分为空,即空语句,所以例1 是包括空语句的C程序
例2:main( printf(“"t' s a book!Ⅶn”);鬥输出语句 1. printi是C语言中的输出函数功能将双引号内的字符串原样 输出我们注意这条语句结束后有一个分号 2.n在C语言中表示换行符是一个控制字符表示在输出这条语 句后回车换行 3.*间的内容作为注释部分,只起到说明的作用,不影响程序 的运行它只是给人看的可以提高程序的可读性,对编译和 运行不起作用,因此注释可以加在程序中的任何位置 运行结果: It's a book! (在用户屏上输出该语句并且因为有Ⅷn这个换行符光标会移 到下一行开头处)
1. printf是C语言中的输出函数,功能:将双引号内的字符串原样 输出.我们注意这条语句结束后有一个分号. 2. \n在C语言中表示换行符,是一个控制字符,表示在输出这条语 句后回车换行. 3. /* */间的内容作为注释部分,只起到说明的作用,不影响程序 的运行.它只是给人看的,可以提高程序的可读性,对编译和 运行不起作用, 因此注释可以加在程序中的任何位置. 4. 运行结果: It’s a book! (在用户屏上输出该语句,并且因为有\n这个换行符,光标会移 到下一行开头处.) 例2: main() { printf (“It’s a book! \n”) ; /*输出语句*/ }
例3: mainO 1.in表示整型这一行是声明部分, 定义变量a,b,sum为整型变量, i int a, b, sum; 这条语句相当于inta;intb; int sum a=123;b=456; 2两个赋值语句(把123赋值给a把 sum=a+b 456赋值给b这样a就等于 123,b就等于456 printf(“ sum is%dⅦn”,sum): 3赋值计算(把a和b的和赋值给sum这样sum就等于a2b 之和了sum=123+456=579) 4.%d是输入输出“格式字符串”,用来指定数据的类型%d表示 以十进制整数类型输出在执行输出时,此位置上代以一个十进制 整数数值、其他的格式字符串:%c,%s,%f…) 5.第一个sm原样输出.第二个sum表示要输出的变量,它的值就 是a+b的值(579),而且这个值就会替代%的位置 6.执行结果: sum I S579
1. int表示整型,这一行是声明部分, 定义变量a,b,sum为整型变量, 这条语句相当于int a; int b; int sum; 2. 两个赋值语句(把123赋值给a,把 456赋值给b)这样a就等于 123,b就等于456. 例3: main() { int a,b,sum; a=123; b=456; sum=a+b; printf(“sum is %d \n”,sum); } 3. 赋值计算(把a和b的和赋值给sum)这样sum就等于a,b 之和了.(sum=123+456=579). 4. %d是输入输出“格式字符串”,用来指定数据的类型.%d表示 以十进制整数类型输出,在执行输出时,此位置上代以一个十进制 整数数值.(其他的格式字符串:%c,%s,%f…). 5. 第一个sum原样输出.第二个sum表示要输出的变量,它的值就 是a+b的值(579),而且这个值就会替代%d的位置. 6.执行结果: sum is 579
1程序包括两个函数主例4求两数中的大者。 函数main和被调用函数 main() /主函数 max,max函数的作用是将x 和y中较大者赋值给变量z [int a,b,c;/定义变量* 2.C程序执行是从main函 scanf( %d, %d",&a, &b) 数中的第一条语句逐条执c=max(ab;产调用函数 行的 printf("max=%dn",c); 3.“ scant?是输入函数和 prin是一对它们是C系统 提供的标准输入输出函数 int max(int x, int y) 这两个%d和前面含义相同【imtz;定义局部变量 &表示取地址scan函 if (x>y) Z=X; 数的作用是将键盘输入的 值存放到变量a,b所对应的 else 存储单元中,也就是输入给 return(z) 变量a,b
例 4 求两数中的大者。 main( ) /* 主函数 */ { int a , b, c; /* 定义变量 */ scanf(″%d, %d″, &a, &b); c=max(a, b); /* 调用函数 */ printf(″max=%d\n″, c); } int max(int x, int y) { int z; /* 定义局部变量 */ if (x>y) z=x; else z=y; return(z); } 1.本程序包括两个函数:主 函数main和被调用函数 max, max函数的作用是将x 和y中较大者赋值给变量z. 2. C程序执行是从main函 数中的第一条语句逐条执 行的. 3. “scanf”是输入函数,和 printf是一对,它们是C系统 提供的标准输入输出函数. 这两个%d和前面含义相同. ‘&’表示取地址.scanf函 数的作用是将键盘输入的 值存放到变量a,b所对应的 存储单元中,也就是输入给 变量a,b
4. return,是将的值返回例4求两数中的大者 给主函数main返回值man() /主函数* 通过函数名mx带回到(ita,b,c;定义变量 函数的调用处.经过执 行max函数得到一个返 scanf(%d, %d",&a, &b) 回值即mX函数中变量c=maxa,b/调用函数 z的值)把这个值赋给c,prnt(max=%dnc 然后输出c的值 5.程序运行情况如下 int max(int x, int y) 85(通过键盘输{intz;鬥定义局部变量 入8和5给a和b if(xy) z=x; max=8(输出c的值 else y 即a和b的最大值) return(z)
4. return是将z的值返回 给主函数main.返回值 通过函数名max带回到 函数的调用处.经过执 行max函数得到一个返 回值(即max函数中变量 z的值)把这个值赋给c, 然后输出c的值. 5. 程序运行情况如下: 8,5 (通过键盘输 入8和5给a和b) max=8 (输出c的值 即a和b的最大值) 例 4 求两数中的大者。 main( ) /* 主函数 */ { int a , b, c; /* 定义变量 */ scanf(″%d, %d″, &a, &b); c=max(a, b); /* 调用函数 */ printf(″max=%d\n″, c); } int max(int x, int y) { int z; /* 定义局部变量 */ if (x>y) z=x; else z=y; return(z); }