C语言第一章(何钦铭版)
C语言课件 第一章

指数位 符号位
27
尾数
字符数据的存储:
ASCII码:(American Standard Code for Information Interchange)的缩写,用来制 订计算机中每个符号对应的代码,这也叫做计 算机的内码(code)。每个ASCII码以1个字节 (Byte)储存,从0到数字127代表不同的常用符 号,由于ASCII字节的七个位,最高位并不使 用,所以后来又将最高的一个位也编入这套内 码中,成为八位的延伸ASCII (Extended ASCII)码,这套内码加上了许多外文和表格等 特殊符号,成为目前常用的内码。
例: 5732=5×10 + 7×10 + 3×10 +2×10
3 2 1 0
(10101.11)B=1×24+ 0×23+ 1×22+ 0×21+ 0 -1 -2 1×2 +1×2 + 1×2 =16+0+4+0+1+0.5+0.25
=21.75
15
2 ╳ 1 ╳ 0 ╳ -1 ╳ + (1574.3)Q =1 8 5 8 +7 8 +4 8 +3 8
(一)、硬件框图:
运算器
主机
计算机
控制器
存储器
中央处理器CPU 内存储器
外存储器
I/O设备:键盘、显示器等
(二)软件系统
1、系统软件 操作系统、程序设计语言、数据库管理系 统、网络软件、系统服务程序等 2、应用软件 财务管理软件、图书管理软件、绘图软件 、杀毒软件、文字编辑软件、游戏等
C语言程序设计 (何钦铭 ) 高教版 第2版 课后习题答案

14
2.3 练习与习题参考答案
2.3.1 练习参考答案
2-1 编写程序,在屏幕上显示一个短句“Programming in C is fun!”。 解答:
#include <stdio.h> int main(void) { printf("Programming in C is fun!\n"); return 0; } 2-2 下列语句的运行结果是什么?与例 2-2 的运行结果有何不同?为什么? printf("Programming is fun. And Programming in C is even more fun!\n"); 解答: 运行结果:Programming is fun. And Programming in C is even more fun! 例 2-2 的运行结果分 2 行显示。原因在于,例 2-2 中在每条输出语句的结尾都采用了‘\n’ 换行。 2-3 编写程序,在屏幕上显示如下图案。 **** *** ** * 解答: int main(void) { printf("* * * *\n * * *\n * *\n *\n"); return 0; }
19
scanf("%d", &fahr); celsius = 5 * (fahr - 32) / 9; printf("celsius = %d\n", celsius); return 0; } 2-9 编写程序,输入 3 个整数,计算并输出它们的平均值。 解答: #include <stdio.h> int main(void) { int a, b, c; double average; scanf("%d%d%d", &a, &b, &c); average = (a + b + c) * 1.0 / 3; printf("average = %.2f\n", average); return 0; } 2-10 编写程序,输入 x,计算并输出下列分段函数 f(x)的值(保留 3 位小数)。
C语言第1章课件.ppt

3.Set 0 X; 将X设为0,此处X用以统计A累加的次数
4.Set 0 Z; 将Z设为0,此处Z用以存放A*B的结果
5.BranchEq X B 9; 判别X与B是否相等;若相等说明A 已累加了B次,程序跳转到第9条指令,输出结果
/* 循环 */
fact = fact * i; return fact;
C程序由函数组成
}
有且只有一个主函数main
C程序概貌
▪ 用C语言所编写的程序称为C语言源程 序,简称C程序。
▪ C程序一般由一个或多个函数组成, 这些函数既可以集中放在一个文件中, 也可以分散放在几个文件中,每个C语言
源程序文件以.CPP作为文件的扩展名,
/* 函数声明 */
scanf("%d", &n);
/* 输入一个整数 */
printf("%d\n", factorial(n)); /* 调用函数计算阶乘 */
return 0;
}
int factorial(int n)
/* 定义计算 n! 的函数 */
{
int i, fact = 1;
for(i = 1; i <= n; i++)
C程序设计语言,[美]Brian W. Kernighan, Dennis M. Ritchie,徐宝文等译,机械工业出版 社,2006
第一章 引 言
一个C语言程序 程序与程序设计语言 C语言的发展历史与特点 实现问题求解的过程
本章要点
什么是程序?程序设计语言包含哪些功能? 程序设计语言在语法上包含哪些内容? 结构化程序设计有哪些基本的控制结构? C语言有哪些特点? C语言程序的基本框架如何? 形成一个可运行的C语言程序需要经过哪些
C语言程序设计第一章(何钦铭版)

1.2.1 程序与指令
(1) 输入3个数A, B和C,求A+C和B +C的 结果
Input A; 输入第1个数据到存储单元A中 Input B; 输入第2个数据到存储单元B中 Input C; 输入第3个数据到存储单元C中 Add A C D; 将A、C相加并将结果存在D中 Add B C E; 将B、C相加并将结果存在E中 Output D E; 输出D,E的内容
关于程序与指令,下面举1道例题
例1-2 编写程序,分别求和与乘积 先介绍:虚拟的计算机指令系统(共7条指令 )
指令1:Input X 将当前输入数据存储到内存的X单元 指令2:Output X 将内存X单元的数据输出。 指令3:Add X Y Z 将内存X单元的数据与Y单元的数据相加并将 结果存储到Z单元。 指令4:Sub X Y Z 将内存X单元的数据与Y单元的数据相减并将结 果存储到Z单元。 指令5:BranchEq X Y P 比较X与Y,若相等则程序跳转到P处执 行,否则继续执行下一条指令。 指令6:Jump P 程序跳转到P处执行。 指令7:Set X Y 将内存Y单元的值设为X。 对以上7条指令进行不同组合就可以实现多项功能,具体请看下面的 例题:
C语言程序设计
C语言程序设计
教学要求
知识:掌握程序设计语言的基本知识 素质:常用算法
能力:初步的程序设计能力
学习方法
自主学习 重视上机实践 学生要按时上课和上机、课后要看书、认真独立完成
作业
成绩评定方式:平时成绩占40%(包括平时考勤、上机
作业情况、期中考试);期末成绩占60%
以下是不合法的标识符:
第一讲 c语言概述

如何尽快学会用C 如何尽快学会用C语言进行程序设计
了解程序设计语言(C语言 了解程序设计语言 语言) 语言 模仿、改写、 模仿、改写、编写 通过不断的编程实践, 通过不断的编程实践,逐步领会和掌握程 序设计的基本思想和方法。 序设计的基本思想和方法。
课程内容
本课程主要讲解以下内容: 本课程主要讲解以下内容:
计算机语言
机器语言:采用计算机指令格式并以二进 指令格式并以二进 机器语言:采用计算机指令 制编码表达各种操作的语言 汇编语言:一种符号语言,采用助记符来 汇编语言:一种符号语言, 表达指令功能 结构化语言: 结构化语言:是一种面向过程的语言 面向对象的语言: 面向对象的语言:
运行效率(速度);可移植性 运行效率(速度);可移植性 );
HHHHHH HdddddH HccccccH HHHHHH
§C程序的上机步骤
C程序开发步骤 编辑 程序代码的录入,生成源程序* 程序代码的录入,生成源程序*.c/*.cpp 编译 链接 与其它目标程序或库链接装配, 与其它目标程序或库链接装配,生成可 执行程序* 执行程序*.exe 执行 语法分析查错,翻译生成目标程序*.obj 语法分析查错,翻译生成目标程序*
)
第一次作业: 第一次作业: 1.在屏幕上显示一个短句“Hello world!” 在屏幕上显示一个短句“ 在屏幕上显示一个短句 2.在屏幕上显示一个短句“What is a 在屏幕上显示一个短句“ 在屏幕上显示一个短句 computer?” 3.在屏幕上显示图形 在屏幕上显示图形
A A A A
4.在屏幕上显示一个由各种字符组成的图形? 在屏幕上显示一个由各种字符组成的图形? 在屏幕上显示一个由各种字符组成的图形
C语言的发展历史及特点
第1章C语言基础知识

C程序结构(续)
25
语句 – 包括说明性语句、可执行语句 – 以 ;表示语句结束
注释 –可以出现在程序的任何位置
– 用 /* 和 */ 括起来,一般成对出现; 也可用//开头,表示一注释行
三种基本结构的共同点: • 都是只有一个入口和一个出口; • 结构内的每一个框都有机会被执行; • 结构内没有死循环。
程序的三种基本结构
17
顺序结构
A B
A B
# include <stdio.h> main ( ) / *求两数之和*/ {
int a,b,sum; a=123; b=456; sum=a+b; printf("sum is %d\n",sum); }
教材、参考书与课时安排
3
教材和实验教材
C语言程序设计 陈刚 清华大学出版社 C语言程序设计实践教程 王琳艳 清华大学出版社
参考书
C程序设计 谭浩强主编 清华大学出版社
C语言程序设计 何钦铭,颜晖主编 高等教育出版 社,2008
课时安排
授课 :40学时 上机 :24学时
第1章 C语言基础知识
软件的访问 语言生成的代码质量高 可移植性好
1.2.3 C程序的基本结构
22
【例1.1】计算并输出一个数a的平方。
#include<stdio.h>
main( )
{
函数体开始
float a,b;
a=5.2;
b=a*a;
printf("b=%f\n",b);
C语言程序设计(何钦铭_颜晖_主编)课件
区分数字字符和数字
'1'
1
则:'A'+1=66,对应字符 'B'
a
25
转 义 字 符
反斜杠后跟一个字符或数字
字符常量,代表一个字符
'\n' '\101' '\x41' 'A'
所有字符都可以用转义字符表示
a
26
6.2.2 变量
在程序运行过程中,其值可以被改变的量。
变量必须先定义,后使用 定义变量时要指定变量名和数据类型 变量应该先赋值,后引用
a
30
6.3.1 整型数据的输入输出
printf (格式控制, 输出参数1, ... , 输出参数n); scanf (格式控制, 输入参数1, ... , 输入参数n);
格式控制说明 %…
十进制 八进制 十六进制
int
%d
%o
%x
long
%ld
%lo
%lx
unsigned
%u
%o
%x
unsigned long %lu
数据长度 16或32位
16位 32位
a
10
基本数据类型-整型
扩展的整数类型:short long unsigned [int]
有符号整型 无符号整型
数据长度
int
unsigned [int]
16或32位
short [int] unsigned short [int] 16位
long [int] unsigned long [int]
以小数或指数形式输入一个双精度浮点数
输出 printf()
DS01-概论
1.3 算法和算法分析
1.3.1 什么是算法?
由于数据的运算是通过算法来描述的,因此,讨论算法是数 据结构课程的重要内容之一。
算法(Algorithm)是对特定问题求解步骤的一种描述,它是 指令的有限序列,其中每一条指令表示一个或多个操作;此 外,一个算法还具有下列5个特性:
[方法2] 按照书名的拼音字母顺序排放。
优点:查找方便
缺点:插入费时
[方法3] 把书架划分成几块区域,每块区域指定摆放某种类别的图书; 在每种类别内,按照书名的拼音字母顺序排放。
优点:查找方便
缺点:可能造 成空间的浪费!
数据结构中的一些术语
1.1.1 数据和数据元素 数据(data)是信息的载体,是对客观事 物的符号表示,它能够被计算机识别、存 储和加工处理。(数字、文字、图像、声音等)
1.3.2 算法的描述和设计 一个算法可以采用自然语言、数学语言或者约定的符号语
言(如伪码、框图等)来描述。我们使用C语言来描述。 书中采用的一些预定义常量,简要说明如下:
/*函数结果的状态代码*/ #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0
据对象集合中的数据元素之间的相互 关系的集合(即数据元素的组织形 式)。
根据数据元素之间关系的不同,数 据结构在逻辑上可分为两大类:
线性结构
非线性结构
⑴ 数据元素之间的逻辑关系,也称为数据 的逻辑结构。是数据元素之间抽象化的相 互关系。是用户所看到的数据结构,是面 向问题的,它不考虑数据的存储。数据的 逻辑结构通常有下列4类:
《C语言程序设计(何钦铭颜晖主编)》习题8答案
P173习题8 第一题#include<stdio.h>int main(void){char ch;int a[10];int i,j,m;printf("请输入10个整数:\n");for(i=0;i<10;i++){printf("请输入%d第个数:",i+1);scanf("%d",&a[i]);}printf("请输入A或D:");scanf(" %c",&ch);if(ch=='A'){for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]>a[j]){m=a[i];a[i]=a[j];a[j]=m;}}}}else if(ch=='D'){for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]<a[j]){m=a[i];a[i]=a[j];a[j]=m;}}}}for(i=0;i<10;i++){printf("%d ",a[i]);}return 0;}第二题#include<stdio.h>int main(void){int a[10];int i,j,x;int search(int list[],int i,int x);printf("输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("输入一个整数x:");scanf("%d",&x);j=0;for(i=0;i<10;i++){if(search(a,i,x)!=-1){j++;printf("%d",search(a,i,x));}else;}if(j==0)printf("-1");return 0;}int search(int list[],int i,int x){int j;j=0;if(x==list[i])j++;else;if(j==0)return -1;elsereturn i;}第三题#include<stdio.h>void houyi(int a[],int *p,int n,int m);int main(void){int a[20];int i,m,n;printf("请输入整数n:");scanf("%d",&n);printf("请输入%d个整数:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("请输入您要后移的位数m:"); scanf("%d",&m);houyi(a,a,n,m);for(i=0;i<n;i++)printf("%d",a[i]);printf("\n");return 0;}void houyi(int a[],int *p,int n,int m) {int i;int b[20];for(i=0;i<n;i++)b[i]=a[i];for(i=0;i<n;i++){if(i<=n-m-1)*(p+i+m)=b[i];else*(p+(i+m)%n)=b[i];}}第四题#include<stdio.h>void swap2(int *,int *);void bubble(int a[],int n);int main(void){int n,a[8];int i;printf("Enter n(n<=8):");scanf("%d",&n);printf("Enter a[%d]:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);bubble(a,n);printf("After sorted,a[%d]=",n);for(i=0;i<n;i++)printf("%3d",a[i]);return 0;}void bubble(int a[],int n){int i,j,m;static int b[8];for(i=1;i<n;i++){for(j=0;j<n-i;j++){if(a[j]>a[j+1])swap2(&a[j],&a[j+1]);for(m=0;m<n;m++){if(a[m]<=a[m+1])b[m]++;}}if(b[m]==n-1)break;}}void swap2(int *px,int *py){int t;t=*px;*px=*py;*py=t;}第五题#include<stdio.h>#include<string.h>void mcopy(char *s,int m);int main(void){int i,m,l;char str[100];printf("请输入您要输入的字符串:");gets(str);printf("您将从原字符串的第m位复制新字符串,请输入m:\n");scanf("%d",&m);printf("复制后,新的字符串为:");mcopy(str,m);return 0;}void mcopy(char *s,int m){printf("%s\n",s+m-1);}第六题#include<stdio.h>#include<string.h>void delchar(char *,char c);int main(void){char str[80];char ch;printf("Enter a string:");gets(str);printf("Enter delete char:");scanf("%c",&ch);delchar(str,ch);printf("%s\n",str);return 0;}void delchar(char *s,char c){int i,j;char str1[80];j=0;for(i=0;s[i]!='\0';i++){if(s[i]!=c){str1[j]=s[i];j++;}}str1[j]='\0';for(i=0;str1[i]!='\0';i++,s++){*s=str1[i];}*s='\0';}第七题#include<stdio.h>#include<string.h>struct zfc{char str[80];};int main(void){int i,j;char str[80],str1[80];struct zfc s[5];for(i=0;i<5;i++){printf("请输入第%d个字符串:",i+1);scanf("%s",s[i].str);}for(i=0;i<=3;i++){for(j=i+1;j<=4;j++){if(strcmp(s[i].str,s[j].str)>0){strcpy(str1,s[i].str);strcpy(s[i].str,s[j].str);strcpy(s[j].str,str1);}}}for(i=0;i<5;i++){puts(s[i].str);}return 0;}第八题#include<stdio.h>#include<string.h>int main(void){int l,i;char str[80],str1[80];char *p,*q;p=str;q=str1;printf("请输入一串字符:");scanf("%s",str);l=strlen(str);for(i=0;*p!='\0';p++,i++){*(q+l-1-i)=*p;}*(q+l)='\0';if(strcmp(str,str1)==0)printf("输入的字符串是“回文”!\n");elseprintf("输入的字符串不是“回文”!\n");return 0;}第九题#include<stdio.h>#include<string.h>int main(void){char str[80];char *p;p=str;int n1,n2,n3,n4,n5;printf("输入一行文字:");gets(str);n1=n2=n3=n4=n5=0;for(;*p!='\0';p++){if((*p>='A')&&(*p<='Z'))n1++;else if((*p>='a')&&(*p<='z'))n2++;else if(*p==' ')n3++;else if((*p>='0')&&(*p<='9'))n4++;elsen5++;}printf("大写字母字符的个数为:%d\n",n1);printf("小写字母字符的个数为:%d\n",n2);printf("空格字符的个数为: %d\n",n3);printf("数字字符的个数为: %d\n",n4);printf("其他字符的个数为: %d\n",n5);return 0;}第十题#include<stdio.h>#include<string.h>int strcomp(char s1[80],char s2[80]);int main(void){int m;char str1[80],str2[80];printf("请输入第一个字符串:");scanf("%s",str1);printf("请输入第二个字符串:");scanf("%s",str2);m=strcomp(str1,str2);if(m==1)printf("str1>str2\n");else if(m==0)printf("str1=str2\n");elseprintf("str1<str2\n");return 0;}int strcomp(char s1[80],char s2[80]){int a;if(strcmp(s1,s2)>0)a=1;else if(strcmp(s1,s2)==0)a=0;elsea=-1;return a;}第十一题#include<stdio.h>#include<string.h>void fushu(char *p);int main(void){char str[80];printf("请输入一个英语名词单词:");scanf("%s",str);fushu(str);puts(str);return 0;}void fushu(char *p){int i,l;l=0;for(i=0;*(p+i)!='\0';i++){l++;}if(*(p+l-1)=='y'){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}elseif((*(p+l-1)=='s')||(*(p+l-1)=='x')||((*(p+l-2)=='c')&&(*(p+l-1)=='h'))||((*(p+l-2)=='s')&&(*(p+l-1 )=='h'))){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}else if(*(p+l-1)=='o'){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}else{*(p+l)='s';*(p+l+1)='\0';}}第十二题#include<stdio.h>#include<stdlib.h>int main(void){int i,j,a,n,sum,average;int *p;printf("Enter n:");scanf("%d",&n);if((p=(int*)calloc(n,sizeof(int)))==NULL){printf("Not able to allocate memory.\n");exit(1);}printf("您将输入%d个学生的成绩!\n",n);for(i=0;i<n;i++){printf("请输入第%d个学生的成绩:",i+1);scanf("%d",p+i);}sum=0;for(i=0;i<n;i++)sum=sum+*(p+i);average=sum/n;for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(*(p+i)>*(p+j)){a=*(p+i);*(p+i)=*(p+j);*(p+j)=a;}}}printf("学生的平均成绩是:%d\n",average);printf("学生的最高成绩是:%d\n",*(p+n-1));printf("学生的最低成绩是:%d\n",*p);return 0;}。
C语言程序设计 (何钦铭 颜晖 著) 浙江科学技术出版社 全部课后习题答案
3. /*输入一个学生的数学成绩,低于 60,输出“Fail” ,否则,输出“Pass” 。*/ #include<stdio.h> void main() { double mark; //输入数序成绩 printf(" Input a mark:\n"); scanf("%lf", &mark);
5. /*输入 4 个整数 n, 输出最小值。*/ #include<stdio.h> void main() { int a,b,c,d, min; //输入 4 整数 printf(" Input number of integers n:\n"); scanf("%d%d%d%d", &a,&b,&c,&d);
s ( s a )( s b)( s c), where s
abc 2
源程序: #include<stdio.h> #include<math.h> void main() { double a, b, c, s, area, perimeter; //输入三条边 a,b,c printf(" Input three edges a b c:"); scanf("%lf%lf%lf", &a,&b,&c); //判断 a b c 是否构成三角形 if(a+b>c || a+c>b || b+c>a) { perimeter =a+b+c; s =perimeter/2; area =sqrt( s*(s-a)*(s-b)*(s-c) ); printf(“ area=%.2f, parameter=%.2f \n”, area, parameter); } else printf("These sides do not correspond to a valid triangle. \n"); }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2.2 程序设计语言的功能
数据表达: 数据表达:表达所要处理的数据 流程控制: 流程控制:表达数据处理的流程
数据表达
数据表达: 数据表达:一般将数据抽象为若干类型 数据类型:对某些具有共同特点的数据集合 数据类型 对某些具有共同特点的数据集合 的总称
代表的数据(数据类型的定义域) 代表的数据(数据类型的定义域) 在这些数据上做些什么(即操作或称运算) 在这些数据上做些什么(即操作或称运算) 例如: 例如:整数类型
1.1 一个 语言程序 一个C语言程序
求阶乘问题。 例1-1求阶乘问题。输入一个正整数 ,输出 。 求阶乘问题 输入一个正整数n,输出n!。
#include <stdio.h> int main(void) { int n; int factorial(int n); scanf("%d", &n); printf(“%d\n”, factorial(n)); return 0; } int factorial(int n) { int i, fact = 1; for(i = 1; i <= n; i++) fact = fact * i; return fact; } /* 编译预处理命令 */ /* 主函数 */
包含的数据: , , , , , , 包含的数据:{…,-2,-1,0,1,2,…} 作用在整数上的运算: 作用在整数上的运算:+ 、 - 、 * 、 /等 等
数据表达
C语言提供的数据类型 语言提供的数据类型
基本数据类型:程序设计语言事先定义好, 基本数据类型:程序设计语言事先定义好,供 程序员直接使用,如整型、实型(浮点型)、 程序员直接使用,如整型、实型(浮点型)、 字符型等 构造类型:由程序员构造,如数组、结构、 构造类型:由程序员构造,如数组、结构、文 件、指针等
1.2.3 程序设计语言的语法
C语言的主要“单词” 语言的主要“单词” 语言的主要 (1)标识符 在程序中用来标识各种程序成份 命名程序中的一 )标识符:在程序中用来标识各种程序成份,
须是字母或下划线
些实体, 如变量、 常量、函数、类型、 些实体 如变量、 常量、函数、类型、标号等对象的名字 C语言的标识符规定由字母、数字以及下划线组成,且第一个字符必 语言的标识符规定由字母、数字以及下划线组成,
Chap 1 引 言
一个C语言程序 一个 语言程序 程序与程序设计语言 C语言的发展历史与特点 语言的发展历史与特点 实现问题求解的过程
重点: 语言的语法包含的内容 语言的语法包含的内容、 语言程序 重点:C语言的语法包含的内容、 C语言程序
的基本框架、 C语言程序的上机步骤 的基本框架、 语言程序的上机步骤
1.2.1 程序与指令
输入输入3个数 输入输入 个数A, B和C,求A+B+C的结果 个数 和 , 的结果
Input A; Input B; Input C; Add A B D; Add C D D; Output D; 输入第1个数据到存储单元 中 输入第 个数据到存储单元A中 个数据到存储单元 输入第2个数据到存储单元 个数据到存储单元B中 输入第 个数据到存储单元 中 输入第3个数据到存储单元 个数据到存储单元C中 输入第 个数据到存储单元 中 相加并将结果存在D中 将A、B相加并将结果存在 中 、 相加并将结果存在 相加并将结果存在D中 将C、D相加并将结果存在 中 、 相加并将结果存在 输出D的内容 输出 的内容
作业情况);期末成绩占 % 作业情况 ;期末成绩占60%
如何尽快学会用C语言进行程序设计 如何尽快学会用 语言进行程序设计
了解程序设计语言(C语言 了解程序设计语言 语言) 语言 模仿、改写、 模仿、改写、编写 通过不断的编程实践, 通过不断的编程实践,逐步领会和掌握程 序设计的基本思想和方法
教材和参考书
1.2.3 程序设计语言的语法
关键字): 语言规定的、 (2)保留字 关键字 它们是 语言规定的、 )保留字(关键字 它们是C语言规定的 赋予它们以特定含义、 赋予它们以特定含义、有专门用途的 标识符
例如:类型名称int、 float,语句特征 、 例如:类型名称 、 语句特征if、 语句特征 switch、 while, 运算符号 运算符号sizeof等 、 等 常见关键字有32个 参见附录1 常见关键字有 个, 参见附录 关键字不允许用户重新定义
一般选用相应英文单词或拼音的缩写形式,尽量不要使用简单代数 一般选用相应英文单词或拼音的缩写形式 尽量不要使用简单代数 符号, 符号
例如: 例如:a, b, c, x, y, z等 等
匈牙利” 标识符大多数采用“匈牙利”表示法, 每个单词第一个字母大写
例如: 例如:StudentName、 YearMonthDate。 、 。
C语言程序设计,何钦铭、颜晖主编,高等教育出 语言程序设计,何钦铭、颜晖主编, 语言程序设计 版社, 版社,2008 谭浩强编著. 语言程序设计 清华大学出版社. 语言程序设计. 谭浩强编著 C语言程序设计 清华大学出版社 杨路明编著. 语言程序设计 语言程序设计.北京邮电大学出版 杨路明编著 C语言程序设计 北京邮电大学出版 月第2版 社.2005年12月第 版 年 月第 C语言编程(第3版), 美]Stephen, G.Kochan, 语言编程( 语言编程 版),[美 , 张小潘译,电子工业出版社, 张小潘译,电子工业出版社,2006 C语言教程(第4版), 美]Al Kelley, Ira Pohl, 语言教程( 语言教程 版),[美 , 徐波译,机械工业出版社, 徐波译,机械工业出版社,2007
各种数据类型的常量与变量形式
常量(常数) 常量(常数)与变量
流程控制
结构化程序设计方法
将复杂程序划分为若干个相互独立的模块 模块:一条语句(Statement)、一段程序或 模块:一条语句( )、一段程序或 )、 一个函数(子程序) 一个函数(子程序)等 单入口、 单入口、单出口
流程控制
任何程序都可以将模块通过3种基本的控 任何程序都可以将模块通过 种基本的控 制结构进行组合来实现
顺序结构
分支结构
循环结构
流程控制
语句级控制: 种基本的控制结构 语句级控制:3种基本的控制结构
顺序控制结构:自然顺序执行 顺序控制结构: 控制结构 分支控制结构 选择结构): 控制结构( ):根据不同的条件来选择 分支控制结构(选择结构):根据不同的条件来选择 所要执行的模块 循环控制结构 控制结构: 循环控制结构:重复执行某个模块
程序设计语言
提供了一种表达数据与处理数据的功能 要求程序员按照语言的规范编程
1.2 程序与程序设计语言
程序与指令 程序设计语言的功能 程序设计语言的语法 程序的编译与编程环境
1.2.1 程序与指令
指令: 指令:计算机的一个最基本的功能
如实现一次加法运算或实现一次大小的判别
计算机的指令系统: 计算机的指令系统:计算机所能实现的指令 的集合 程序: 程序:一系列计算机指令的有序组合
C语言程序设计 语言程序设计
2008版 版
C语言程序设计 语言程序设计
教学要求
掌握程序设计语言的基本知识 常用算法 初步的程序设计能力
学习方法
自主学习 重视上机实践 学生要按时上课和上机、课后要看书、 学生要按时上课和上机、课后要看书、认真独立完成 作业
成绩评定方式:平时成绩占40% 包括平时考勤 上机、 包括平时考勤、 成绩评定方式:平时成绩占 %(包括平时考勤、上机、
输入 4 输出 24
/* 变量定义 */ /* 函数声明 */ /* 输入一个整数 */ /* 调用函数计算阶乘 */
/* 定义计算 n! 的函数 */
/* 循环 */
C程序由函数组成 程序由函数组成 有且只有一个主函数main 有且只有一个主函数
1.2 程序与程序设计语言
程序
人们为解决某种问题用计算机可以识别的代码 编排的一系列加工步骤 程序的执行过程实际上是对程序所表达的数据 进行处理的过程
例:以下是合法的标识符: 以下是合法的标识符
x, c, a1, a2, op, y_1, zhou_prg, radius, prime, program, prg_1, cout, sun, day
以下是不合法的标识符: 以下是不合法的标识符
a.1, 1computer, x+y, !abc, 99999, $100, π, 3c
单位级控制: 单位级控制:函数的定义与调用
处理复杂问题时, 处理复杂问题时 将程序分为若干个相对独立的子程序 函数) (函数)
1.2.3 程序设计语言的语法
用程序设计语言所写的程序必须符合相应 语言的语法
源程序(源代码)是一个字符序列, 源程序(源代码)是一个字符序列,这些字符 字符序列 单词” 序列按顺序组成了一系列“单词” 序列按顺序组成了一系列“单词”,“单词” 的组合就形成了语言有意义的语法单位 语法单位, 的组合就形成了语言有意义的语法单位,一些 简单语法单位的组合又形成了更复杂的语法单 最后一系列语法单位组合成程序 位,最后一系列语法单位组合成程序
标识符
C语言中标识符要区分大小写 语言中标识符要
与标识符ABC是不同的标识符 例:标识符abc与标识符 标识符 与标识符 是不同的标识符 习惯上符号常量用大写字母表示, 变量名称用小写字母表示
标准C中 标识符的长度可以是任意的, 一般有效长度为8 标准 中, 标识符的长度可以是任意的 一般有效长度为 个字符, 中标识符最大长度为32个字符 个字符 TURBO C中标识符最大长度为 个字符 中标识符最大长度为 标识符取名时不能与关键字同名, 也不能与系统预先定义 最好能“见名知义” 的标准标识符(如标准函数)同名, 最好能“见名知义”, 的标准标识符(如标准函数) 以提高程序的可读性