-  
  1、定位准确。要明确读者对象,要有的放矢,不要不问对象,提笔就写。 
-  
  2、内容先进。要能反映计算机科学技术的新成果、新趋势。 
-  
  3、取舍合理。要做到“该有的有,不该有的没有”,不要包罗万象、贪多求全,不应把教材写成手册。 
-  
  4、体系的当。要针对非计算机专业学生的特点,精心设计教材体系,不仅使教材体现科学性和先进性,还要注意循序渐进、降低台阶、分散难点,使学生易于理解。 
-  
  5、风格鲜明。要用通俗易懂的方法和语言叙述复杂的概念。善于运用形象思维,深入浅出,引人入胜。 
-  
  1、为什么要学习程序设计 计算机能高效处理各科学领域中可用逻辑分解成一定步骤的问题,程序则是操作计算机运行的主要手段,因此,对于专业人员,学好程序设计的必要性无需多言,而对于非专业人员,为了能更好的描述问题、同专业人员沟通,掌握程序设计的入门知识也是有其必要的。 
-  
  2、为什么选择C语言 C虽然略显古老,但相比C++,C易学,毕竟不是所有人需要用C++编写大型程序的,再者,C更接近机器,让我们了解机器工作原理,就像一个医生不懂最基本的解剖学就在开处方。可参考《给计算机系学生的建议》 
-  
  3、怎样组织程序设计的教学?怎样处理算法和语言的关系 进行程序设计,要解决两个问题:1)学习算法(算法是灵魂、语言是工具)。2)掌握用以实现算法的程序语言。两者缺一不可、相辅相成、随着篇幅增加而提高难度。 
参考教材:谭浩强的《C程序设计(第四版)》
序——对好书的定义:(20130106)
前言——作者对程序设计的看法:
第1章 程序设计和C语言
-  
  计算机并非“万能”,它只能根据我们事先写好的程序行动。 程序是一组计算机能识别和执行的指令。 计算机本质是程序机器。 
-  
  人与人沟通通过人类的语言,人与计算机沟通通过计算机语言。 -  
    1)machine instrction(1&0构成的机器指令),缺点:难学、难写、难记、难改、难用。 2)symbolic language(又称assembler language由诸如ADD、SUB等助记符构成),缺点:在不同型号的计算机上没有兼容性,且仍然难学,只有专业人士能用。 3)high language(source program通过编译转换为object program,再通过连接转为execution program)克服了跨计算机的兼容性和难学。诸如:fortran&algol(适合数值计算)、basic&gbasic(适合初学者的小型会话语言)、cobol(适合商业管理)、pascal(适合教学的结构程序设计语言)、PL/1(大型通用语言)、LISP&PROLOG(人工智能)、C(系统描述语言)、C++(支持OOP的大型语言)、Visual Basic(支持OOP的语言)、Java(适合网络)。 
-  
    1)非结构化(无严格规范、流程可随意跳转,代码难以阅读&维护)。 2)结构化(解决了上述问题,但难以应付大型程序)。 3)面向对象(专门处理规模较大的问题)。 
 Machine Language经历了几个发展阶段: 其中,High language是目前计算机行业所使用的主要语言,又经历了以下阶段: 
-  
    
-  
  1967年,C语言的祖先BCPL语言诞生(英国剑桥大学——Martin Richards推出),无数据类型。 1970年,B语言诞生(美国AT&T贝尔实验室——Ken Thompson),过于简单、功能有限。 1972~1973年,结合了BCPL和B语言的特点,C语言诞生(美国AT&T贝尔实验室——D.M.Ritchie)。 1973年,Ken Thompson&Ken Thompson合作用C重写了90%的UNIX(Version5)。 1978年,Brian W.Kernighan&Dennis.M.Ritchie以UNIX(Version7)为基础合著了《The C Programming Language》。 1983年,ANSI成立委员会,制定了第一个C语言标准草案('83 ANSI C)。 1988年,Brian W.Kernighan&Dennis.M.Ritchie按照即将公布的ANSI C重修《The C Programming Language》。 1989年,ANSI发布了一个完整的C语言标准——ANSI X3.159-1989(ANSI C/C89)。 1990年,ISO接受C89作为国际标准ISO/IEC9899:1990。 1995年,ISO对C90做了一些修订,命名为ISO/IEC 9899/AMD1:1995。 1999年,ISO在原基础上,对C增加了一些功能,命名为ISO/IEC 9899/AMD1:1999。 2001年&2004年,ISO对C99增加了一些功能,记2001年的TC1和2004年的TC2。 本书以C99为依据。 -  
    1)简洁、紧凑、方便、灵活(一共37个关键字、C是一个很小的内核、不直接提供输入&输出语句和有关文件操作的语句和动态内存管理的语句)。 2)运算符丰富。 3)数据类型丰富。 4)具有结构化的控制语句。 5)语法限制不太严格,程序设计自由度大。 6)允许直接访问物理地址。 7)可移植性良好。 8)生成目标代码质量高,执行效率好。 
 C语言特点: 
-  
    
-  
  -  
    eg1.1要求在屏幕上输出一行信息“This is a program.” #include <stdio.h>//这是编译预处理命令 int main()//定义主函数 {//函数开始的标志 printf("This is a C program.\n");//输出所指定的一行信息 printf("/*This is a multiple common*/\n");//注释会被照常显示 return 0;//函数执行完毕时返回函数值0 }//函数结束的标志
-  
    eg1.2求两个整数之和 #include <stdio.h> int main() { int a,b,sum; a=123; b=456; sum=a+b; printf("sum is %d\n",sum);//%d是指定的输出格式,d表示用“十进制整数”形式输出 return 0; }eg1.3求两个整数中的较大者 #include <stdio.h> int main() { int max(int x,int y);//对被调用函数max的声明 int a,b,c; scanf("%d,%d",&a,&b);//接收2个整形输入值 c=max(a,b);//调用max函数,将得到的值赋给c printf("max=%d\n",c); return 0; } int max(int x,int y)//定义max函数 { int z; if(x>y) z=x; else z=y; return (z); }程序的编译是自上而下进行的,max函数的定义在main函数之后,因此,当编译到第8行时,编译系统无法知道max是什么,所以,需要事先声明。 &是”地址符“,&a的含义是”变量a的地址“,执行scanf函数,从键盘读入两个整数,送到变量a、b的地址处,赋值。 
 1.4.1 最简单的C语言程序举例 每个C语言程序都必须有一个main函数,{}内是函数体。 stdio是“standard input&output”的缩写,文件后缀.h的意思是header file。 输入输出函数的相关信息已事先放在stdio.h文件中,#include指令把这些信息调入供使用。 -  
    -  
      1)预处理指令:编译系统在对源程序进行“翻译”前,先由一个“预处理程序”对预处理指令进行预处理,对于#include <stdio.h>就是将stdio文件内容读进来,放在#include处。 2)全局声明:定义函数之前的变量声明,对整个源程序文件范围有效。 3)函数定义:指定函数完成我们想要的功能。 
-  
      1)函数首部:int max(int x,int y) 2)函数体:{ /*声明部分(定义变量or函数声明) block 执行部分*/ } 
 1、一个程序由一个或多个源程序文件组成。 2、函数是C程序的主要组成部分:函数是C的基本单位,设计良好的程序中,每个函数用来实现一个或几个特定的功能。 3、一个函数包括两个部分 4、程序总是从main函数开始执行的:无论它是在程序开始,还是结尾部分。 5、程序中对计算机的操作是有函数中的C语句完成的。 6、在每个数据声明和语句的最后必须有一个分号。 7、C语言本身不提供输入输出语句:输入输出操作由库函数scanf&printf等完成。 8、程序应当包含注释。 
-  
      
 1.4.2 C语言程序的结构 
-  
    
-  
  编写源程序==》(.c源文件)==》编译==》(.obj目标文件)==》连接处理==》(.exe可执行文件)==》运行 
-  
  问题分析==》设计算法==》编写程序==》对源程序进行编辑、编译和连接==》运行程序,分析结果==》编写程序文档 
1.1 什么事计算机程序
1.2 什么是计算机语言
1.3 C语言的发展及其特点
1.4 最简单的C语言程序
1.5 运行C程序的步骤与方法
1.6 程序设计的任务
第2章 算法——程序的灵魂
广义角度看,一个程序包括:1、data struction(对数据的描述)。2、algorithm(对操作的描述)。即Data structon+Algorithm=Program。
-  
  不要认为只有“计算”的问题才有算法,广义地说,为解决一个问题而采取的方法和步骤就称为“算法”。 一个问题可以有多个算法,为了有效解题,不仅要保证算法正确,还要考虑算法质量,选择合适的算法。 
-  
  求1-1/2+1/3-1/4+……+1/99-1/100。 解题思路——表面看,每一项都不一样,但稍加分析,就可以看出:1)第1项的分子分母都是1。2)第2项的分母是2,以后每一项的分母都是前项分母加1。3)第2项前的运算符为减,第3项为加,随后如此循环。 S1: sign=1 S2: sum=1 S3: deno=2 S4: sign=(-1)*sign S5: term=sign*(1/deno) S6: sum=sum+term S7: deno=deno+1 S8: 若deno<=100返回S4;否则算法结束。 
-  
  #include <stdio.h> int main() { int sign=1; float term,sum=1.0; int deno=2; for(;deno<=100;deno++) { sign=(-1)*sign; term=(sign*(1.0/deno));//分子使用1.0结果才是浮点型,若使用1结果是整型 sum+=term; } printf("sum is %19.18f\n",sum); return 0; }
-  
  1、有穷性。2、确定性。3、有0个或多个输入。4、有1个或多个输出。5、有效性。 
-  
  2.4.1用自然语言表示算法 2.4.2用流程图表示算法 2.4.3三种基本结构和改进的流程图 2.4.4用N-S流程图表示算法 2.4.5用伪代码表示算法 2.4.6用计算机语言表示算法 
-  
  自顶向下,逐步细化,模块化设计(design),结构化编码(coding)。 
2.1 什么是算法
2.2 简单的算法举例
2.3 算法的特性
2.4 怎样表示一个算法
2.5 结构化程序设计方法
第3章 最简单的C程序设计——顺序程序设计(20130107)
-  
  编写C语言程序需要具备的知识和能力:设计算法,算法需要完整、正确,采用结构化程序设计方法。 eg3.1温度转换,用华氏法表示的温度64F,转换为摄氏法表示的温度17.8C。 #include <stdio.h> int main() { float f,c; f=64.0; c=(5.0/9)*(f-32); printf("f=%f\nc=%f\n",f,c); return 0; }eg3.2计算存款利息,1000元本金,存一年,有3种方法可选:1)活期,年利率r1。2)定期,年利率r2。3)两次半年定期,年利率r3。 #include <stdio.h> int main() { float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; p1=p0*(1+r1); p2=p0*(1+r2); p3=p0*(1+r3/2)*(1+r3/2) printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3); return 0; }
-  
  -  
    1、常量:1)整型常量-345。2)实型常量123.456 12.34e3。3)字符常量'A' '\n'。4)字符串常量"String"。5)符号常量#define PI 3.1416。 2、变量:必须先定义,后使用,由变量名、变量值、存储单元组成。 3、常变量:const int a=3;在变量存在期间其值不能改变。注意:符号常量是预处理指令,预处理编译后符号常量都会被替换为其值,符号常量不占存储单元,而常变量占用存储单元,有变量值,只是该值不能改变。 4、标识符(identifier):对变量、符号常量、函数、数组、类型等命名的有效字符序列统称为identifier。 
-  
    用计算机进行的计算不是抽象的理论值的计算,而是用工程的方法实现的计算,在许多情况下只能得到近似的结果。 基本类型(整型类型(int、short int、long int、long long int、char、bool)、浮点类型(float、double、float_complex、double_complex、long long_comlpex)) scalar type(arithmetic type(基本类型、枚举类型都是数值)、指针类型都是以数字来表示的) aggregate type(数组类型、结构体类型) printf中,显示无符号整型用%u、十进制整型用%d、字符用%c。 
-  
    int(2or4)、shor(2)t、long(4)、long long(8)以上默认为signed,可以通过加上unsigned转换为无符号整型。 signed用补码表示复数(正数源码取反+1),由于第一位是符号位,可表示范围比unsigned小一倍。 
-  
    字符是以整数形式(字符的ASCII代码)存放在内存单元中的。 char(4)也可以用signed(-128~127)、unsigned(0~255)修饰,不同于整型,默认为unsigned。 
-  
    float(4)、double(8)、long double(16)没有unsigned之分。 规范化指数形式: + | .314159 | 1 符号 | 小数部分 | 指数 
-  
    常量的类型是系统自动给定的,整型默认用int,超过范围自动转换long int,以此类推。 浮点默认用double,若进行人工指定,比如1.23f,则用float。 
-  
    1、基本的算术运算符(+、-、*、/、%) 2、自增、自减运算符(++、--) 3、算术表达式和运算符的优先级与结合性(左结合性a+b+c,自左向右处理。右结合性a=b=c,自右向左处理。) 4、不同类型数据间的混合运算(int、float、double混合运算,前2者会被转换为double进行运算。double、char混合运算,会把char的ASCII码转换为double进行运算。) 
 3.2.1 常量和变量 3.2.2 数据类型 3.2.3 整型数据 3.2.4 字符型数据 3.2.5 浮点型数据 3.2.6 怎样确定常量的类型 3.2.7 运算符和表达式 
-  
    
3.1 顺序程序设计举例
3.2 数据的表现形式及其运算

 
                   
                   
                   
                   本文是基于谭浩强《C程序设计(第四版)》的学习笔记,涵盖了C语言的基础概念、语法要点及实践应用。
本文是基于谭浩强《C程序设计(第四版)》的学习笔记,涵盖了C语言的基础概念、语法要点及实践应用。
           最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1735
					1735
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            