C语言程序设计快速入门
C语言自学入门技巧

C语言自学入门技巧C语言自学入门技巧学习C语言不是一朝一夕的事情,但也不需要花费很长的时间才能精通。
下面店铺就为大家介绍一下C语言自学入门技巧吧!C语言自学入门技巧11、程语语言其实是一个很初级的工具,但是又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好。
可是如果不会写字,那就一定写不出文章来。
2、在学习C语言之前,应该学好计算机基础。
里面的很多概念对于C程序员都是非常重要的。
如果在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。
如果有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会对许多比较细腻的概念有清醒的认识。
那么可以在看完一遍C语言的教材后再看,但是一定要看一遍,一定会受益匪浅。
不管看什么书,先认真地看懂,不要贪速度,应该力求深入的理解。
如果能够比较熟练的解决一本教材上的所有习题,那么就应该转入对算法的学习,尽管此时的C语言还称不上精通,有许多细节问题还不了解,许多问题还没有碰到,但是这些问题会在后面的工作和学习中得到解决的。
3、不需要多少资料,掌握一本《The C Programming Language》就足够了。
继续学习就更加容易。
建议不要找捷径,通过考试除外,真正的水平提高是建立在编程实践积累基础上的,必须一个一个程序的完成才能提高。
C语言自学入门技巧2一、要读就读好书,否则不如不读所有初学者面临的第一个问题便是:如何选择教材。
好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。
不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。
大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。
虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。
这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。
《C语言程序设计》基本知识点

《C语言程序设计》基本知识点第一章C语言基本知识1.C源程序的框架尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。
2.C语言源程序的书写规则:(1)C源程序是由一个主函数和若干个其它函数组成的。
(2)函数名后必须有小括号,函数体放在大括号内。
(3)C程序必须用小写字母书写。
(4)每句的末尾加分号。
(5)可以一行多句。
(6)可以一句多行。
(7)可以在程序的任何位置加注释。
3.语句种类语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。
(1)流程控制语句流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。
其中后两种结构要用特定的流程控制语句实现。
(2)表达式语句表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。
表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。
最常见的表达式语句是赋值语句。
(3)函数调用语句函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。
(4)空语句空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。
(5)复合语句复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。
注意复合语句中最后一个语句末尾的分号不能少。
复合语句右大括号后面没有分号。
4.运算符用来表示数据各种操作的符号称为运算符。
运算符实际上代表了一种类型数据的运算规则。
不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。
C语言从入门到精通(吐血分享)

六大表达式一、算术表达式(数学表达式)(1)运算符:数学:{} [] () + - * / + -C:()、+/-、* / %、+/-正负(2)单目、双目运算符单目:一个操作数 +5 -9双目:两个操作数 5+6 7*8(3)%:<1>双目运算符<2>操作数:两个数都是整型资料1%2<3>奇数: x%2!=0偶数: x%2==0整除: %(4)在算术运算中,如果运算符两端的类型都是整型数据,那么结果是整型资料1/2 0 5/3 1 8/9 0 9/8 1在算术运算中,如果运算符两端的类型不一致,向空间大的一方转化. 1/2.0 1.0/2.0 0.5 1.0/5 1.0/5.0 0.22 4(5)优先级:(6)结合性:(7)使用多层括号,一律使用小括号(8)强制性类型转化格式:(类型名)表达式注:1)类型名括号不能省2)不存在四舍五入2.赋值表达式(1)格式变量名=表达式(2)变数的实质:存储单元(3) =:赋值号==:等号优先级:只比逗号高结合性:自右向左(4)表达式:常量、变数、六大表达式(5)在赋值表达式中,赋值号的左端只能为变量名5+8=a b=a(6) int x=2,y=3;x=y:将变量y所代表的单元中的值取出来赋值给变量x所代表的单元中x=x+1:将变量x所代表的单元中的值取出来+1赋值给变量x代表的单元中x=x:左x: 代表x所标识的单元右x:将变量x所代表的单元中的值取出来单元=值(7)变量中的值在不断进行更新x=2x=3x=99(8)复合赋值表达式(算术和赋值) 1)运算符:*= /= %= += -=2)优先级:与”=“同级3)结合性:自右向左4)复合赋值有隐含小括号功能3.关系表达式(1)逻辑值平时 C 5678 -2真非0 1假 0 0(2)运算符> >= < <= == != (3)优先级> >= < <= == != (4)结合性自左向右(5)结果:逻辑值5<6 7>94.逻辑表达式(1)运算符!:(非补集)&&:(与交集)||:(或者并集)(2)!:单目运算&& ||:双目(3)优先级高到低:! && ||(4)结合性!:自右向左&& ||:自左向右(5)使用!0 1 !非0 0非0&&非0 1 1||1 1非0&&0 0 1||0 10&&非0 0 0||1 10&&0 0 0||0 0(6)结果:逻辑值(1,0)(7)数学表示方式|x|<=9 -9<=x<=9 x>=-9&&x<=9|x|>=9 x>=9或x<=-9 x>=9||x<=-9(8)断路问题<1> 在逻辑&&运算中,如果表达式1已经为逻辑假,表达式2不用执行,该表达式值为逻辑假<2>在逻辑||运算中,如果表达式1已经为逻辑真,表达式2不用执行,该表达式值为逻辑真5.条件表达式格式:表达式1?表达式2:表达式3(1)三目运算(2)运算过程:表达式1为真,执行表达式2表达式1为假,执行表达式36.逗号表达式(1)格式:表达式1,表达式2,表达式3,表达式4,……,表达式n (2)优先级:所有运算符中优先级最低(3)结合性:自左向右int a=8;a+=3,a=5,a+3; ?a 表达式的值?附:<1>++ 、--1>功能++:+1 自动赋值--: -1 自动赋值2>单目运算3>操作数可以放在运算符的右边也可以放在运算符的左边 i++ ++i i-- --i4>操作数可以为整型、实型的变量 2++ 2=2+1 错i++ i=i+1 ++i i=i+1i-- i=i-1 --i i=i-15>表达式值和变数值int i;表达式值变数值i=5 i++ 5 6i=5 ++i 6 6i=5 i-- 5 4i=5 --i 4 4只要给出式子的整体(i++,--i)则使用的是表达式的值;如果给出变量名,使用的是变量值int i=5;j=40/i++; j=40/6 66>-i++:-(i++) j=-i++; j=-5 i=6<2>所有运算符的优先级(六个表达式)高=》低() ++/-- !算术表达式关系表达式逻辑表达式条件表达式赋值表达式逗号表达式。
c语言菜鸟教程

c语言菜鸟教程
C语言是一门由贝尔实验室的Dennis Ritchie在20世纪70年
代初开发的编程语言。
它是一种通用的高级编程语言,旨在为系统编程提供高效、可移植和底层控制的能力。
C语言具有简洁、灵活和强大的特点,广泛应用于开发操作系统、编写嵌入式系统和设备驱动程序、实现算法和数据结构、编写网络和系统程序等方面。
它也是学习其他编程语言的基础,如C++和Objective-C。
C语言的语法非常规范和严格,基于一组关键字、语句和表达
式来组成程序。
常用的语法元素包括变量的声明和定义、基本数据类型、运算符、控制结构(如条件语句和循环语句)以及函数的定义和调用。
在C语言中,程序的执行是从main函数开始的。
在该函数中,可以通过调用其他函数来执行特定的任务。
函数可以接受参数和返回值,以实现数据的传递和处理。
C语言还提供了丰富的库函数,可以在程序中调用以完成各种
功能,如输入输出、字符串处理、内存分配等。
这些库函数大大简化了代码的编写,并提高了程序的可读性和可维护性。
对于初学者来说,掌握C语言的基础知识是非常重要的。
你
可以从学习语言的基本语法开始,然后逐步学习各种常用的编程技巧和概念,如数组、指针、结构体、文件操作等。
在C语言的学习过程中,不仅要理解语法规则,还要注重实践。
通过编写小型的程序并调试和运行,可以更好地掌握C 语言的用法和原理。
总结起来,C语言是一门非常重要的编程语言,具有广泛的应用领域。
通过学习C语言,你可以开拓编程的视野,提高自己的编程能力,为以后的学习和工作打下坚实的基础。
C程序设计基础-PPT课件

2.1 常量和变量
注意符:号常量在其作用域内不能再赋值。
符号常量的好处:(1)含义清楚。(2)需改变时,“一改全改”。
2024/10/14
1
2.1 常量和变量
注意:
1、变量中的值:变量必须要有值才能参与运算,(如果一个变量
没有赋值,则该变量是一个随机值)变量可以在定义后与其赋值,也可以
2024/10/14
16
2.3 运算符与表达式
逻辑运算符和逻辑表达式
符号
例子 0&&0=0、0&&1=0、1&&0=0、1&&1=1
0||0=0、0||1=1、1||0=1、1||1=1 !1=0、!0=1
使用说明: ➢1、逻辑非优先级高于逻辑与和逻辑或,逻辑与和逻辑或优先级相同; ➢2、C语言规定:非0都表示“真”,只有0表示“假”; 例:6<4&&7>-3+!5
14
2.3 运算符与表达式
赋值运算符与赋值表达式
符号
功能
例子
=
将表达式右边的数据赋值给左边的变量
x=3+a
+=
将表达式右边的计算结果加上左边的变 量再赋值给左边的变量
x+=3+a等价于x=x+(3+a)
-=
将表达式右边的计算结果减去左边的变 量再赋值给左边的变量
x-=3+a等价于x=x-(3+a)
6~7
双精度(double): 8B 10-308 ~ 10308 15~16
长双精度: 16B 10-4931 ~ 104932 18~19
C课件第2讲-C语言快速入门

C语言程序的基本结构
【例2】计算输入的两个整数的和 。 CW0202.c
思路:算法简单,先定义三个变量,二个输入,一个是和。输入采用键盘输 /* This is the second C program CW01-02.c */ 入法,可以反复计算。输出采用格式输出。
#include <stdio.h> int main ( ) { in语言中的词汇。P9
也称为保留字(Reserved words)(共32个) 类型说明(共14)(可以抄一下中文含义)
int、long、short、float浮点、double双精度、char字符、 unsigned无符号、signed带符号、const常量、void空、 volatile可变的、enum枚举 、struct结构、union共用
/* 在屏幕上显示Hello World! */ #include <stdio.h>
#define P printf("================\n") //定义符号常量 int /*定义主函数*/main() { system("color 2f"); //颜色函数,可删,自己试 P; printf("Hello World!\n"); 注释部分 P; •以增加程序的可读性。 return 0; //但是控制权要交还给编译系统 •不被执行。 } 注释不能嵌套,如: •如果只占一行可用//代替 /*这是/*非法的*/*/ /*xxxx*/ //这种形式的注释一般只能写在一 //Isita \ 输入文件名时如果不加.c则默默的文件为C++,有些语法不一样, 行,要换行时要加换行接续符 3/25 validcomment? 例如在C++中system(“color 1a”)头文件不一样。iostream 黄兴鼎版权所有
c 入门教程pdf
c 入门教程pdfC语言是一种通用的高级编程语言,广泛应用于软件开发和系统编程领域。
作为一门入门级的编程语言,C语言具有简单易学、执行效率高,以及跨平台的特点,因此深受广大程序员的喜爱和使用。
在这篇文章中,我们将介绍C语言的入门教程PDF。
C语言的入门教程PDF是针对初学者设计的一份教材,旨在帮助读者快速掌握C语言的基本概念和编程技巧。
这份教程以易懂的语言和生动的例子展示C语言的基本语法、数据类型和控制结构。
同时,教程还包含了大量的练习题和实例代码,读者可借此加深对C语言的理解和运用。
在C语言的入门教程PDF中,读者将学习到如下内容:首先,教程将介绍C语言的历史和特点,让读者了解C语言作为一门编程语言的优势和应用领域。
然后,教程将逐步引导读者掌握C语言的基本语法和变量的使用,包括如何声明和初始化变量、如何使用算术运算符和逻辑运算符等。
此外,教程还将深入讲解C语言的控制结构,帮助读者理解条件语句、循环语句和函数的用法。
在C语言的入门教程PDF中,还将介绍C语言的数据类型和数组的使用。
读者将学习到C语言的基本数据类型,如整型、字符型和浮点型,以及如何使用这些数据类型进行基本运算和逻辑判断。
同时,教程还将详细介绍数组的概念和用法,帮助读者了解如何定义和使用一维数组和多维数组。
除了基本语法和数据类型,C语言的入门教程PDF还将涵盖字符串的处理、指针的使用以及文件的读写操作等内容。
读者将学习到C语言中字符串的表示和操作方式,如何使用指针进行内存的管理和操作,以及如何使用文件进行数据的读写。
总之,C语言的入门教程PDF是一份简明扼要、内容全面的教材,适用于所有对C语言感兴趣的读者。
通过学习这份教程,读者将能够掌握C语言的基本知识和编程技巧,为以后的学习和实践打下坚实的基础。
希望读者通过这份教程的学习,能够在C语言的世界中尽情探索和创造。
C语言入门必学—10个经典C语言算法
C语言入门必学—10个经典C语言算法C语言是一种广泛使用的编程语言,具有高效、灵活和易学的特点。
它不仅在软件开发中被广泛应用,也是计算机科学专业的必修课。
在学习C语言的过程中,掌握一些经典的算法是非常重要的。
本文将介绍10个经典C语言算法,帮助读者更好地了解和掌握C语言。
一、冒泡排序算法(Bubble Sort)冒泡排序算法是最简单、也是最经典的排序算法之一。
它通过不断比较相邻的元素并交换位置,将最大(或最小)的元素逐渐“冒泡”到数组的最后(或最前)位置。
二、选择排序算法(Selection Sort)选择排序算法是一种简单但低效的排序算法。
它通过不断选择最小(或最大)的元素,并与未排序部分的第一个元素进行交换,将最小(或最大)的元素逐渐交换到数组的前面(或后面)。
三、插入排序算法(Insertion Sort)插入排序算法是一种简单且高效的排序算法。
它通过将数组分为已排序和未排序两个部分,依次将未排序部分的元素插入到已排序部分的合适位置。
四、快速排序算法(Quick Sort)快速排序算法是一种高效的排序算法。
它采用了分治的思想,通过将数组分为较小和较大两部分,并递归地对两部分进行排序,最终达到整个数组有序的目的。
五、归并排序算法(Merge Sort)归并排序算法是一种高效的排序算法。
它采用了分治的思想,将数组一分为二,递归地对两个子数组进行排序,并将结果合并,最终得到有序的数组。
六、二分查找算法(Binary Search)二分查找算法是一种高效的查找算法。
它通过不断将查找范围折半,根据中间元素与目标值的大小关系,缩小查找范围,最终找到目标值所在的位置。
七、递归算法(Recursive Algorithm)递归算法是一种通过自我调用的方式解决问题的算法。
在C语言中,递归算法常用于解决树的遍历、问题分解等情况。
八、斐波那契数列算法(Fibonacci Sequence)斐波那契数列是一列数字,其中每个数字都是前两个数字的和。
大一c语言必备基础知识点
大一c语言必备基础知识点C语言作为计算机科学专业的必修课程,是学习编程的基础。
在大一阶段,学习C语言的基础知识点对于打下坚实的编程基础至关重要。
本文将介绍大一C语言学习中的必备基础知识点,帮助初学者快速入门和理解编程的基本概念。
一、基本数据类型1. 整型:int、long、short等2. 浮点型:float、double等3. 字符型:char4. 布尔型:bool二、运算符和表达式1. 算术运算符:+、-、*、/、%等2. 关系运算符:==、!=、>、<、>=、<=等3. 逻辑运算符:&&、||、!等4. 赋值运算符:=、+=、-=、*=、/=等5. 位运算符:&、|、^、~、<<、>>等三、控制语句1. 条件语句:if-else语句、switch语句2. 循环语句:for循环、while循环、do-while循环3. 跳转语句:break语句、continue语句、return语句四、函数1. 函数的定义和调用2. 函数参数传递:值传递、引用传递3. 函数返回值4. 递归函数五、数组和字符串1. 数组的定义和初始化2. 多维数组3. 字符串的定义和操作六、指针1. 指针的基本概念2. 指针的运算:指针的加减、指针和数组的关系3. 指针和函数4. 动态内存分配:malloc、free函数七、结构体和联合体1. 结构体的定义和使用2. 结构体成员的访问3. 结构体数组和指针4. 联合体的定义和使用八、文件输入输出1. 文件的打开和关闭2. 文件的读取和写入3. 文件指针的定位和移动九、预处理指令1. 宏定义:#define指令2. 条件编译:#ifdef、#ifndef指令3. 头文件包含:#include指令十、错误处理和调试1. 编译错误和运行错误的区别2. 调试工具的使用3. 常见错误和排错技巧总结:本文介绍了大一学习C语言中的必备基础知识点,包括基本数据类型、运算符和表达式、控制语句、函数、数组和字符串、指针、结构体和联合体、文件输入输出、预处理指令以及错误处理和调试等内容。
第2章_C语言快速入门-表达式
类型重定义(类型别名)
typedef <类型名> <类型别名>;
例如: typedef int AMOUNT; AMOUNT a=5; //等价于 int a=5; float payment,price=25.5; payment= a*prince;
2.3 运算符和表达式
• 数据是程序处理的基本对象 • 程序所处理的数据并不是孤立的,而是相互联系的, 表达式是将数据联系起来形成新的数据的一种方法。 • 表达式由被计算的对象(变量和常量)和表示运算 的特殊符号(运算符)按照一定的规则构造而成。 • 几种重要的表达式和运算符
有效 数字
可用 运算符
+,-,*, /,++,--,%
单精度数实 float 数(浮点型) 双精度数实 double 数
-3.402823×1038 ~ 7 位 3.402823×1038 -1.7977×10308 ~ 1.7977×10308
+,-,*, /,++,--
15位
数据类型修饰符
含义
数据:整型 • 实型 • 字符型
–
值的变化特性
• 常量 • 变量
–
存储特性
• 静态存储 • 动态存储
–
定义方式
基本数据类型
含义 字符 整数 长整数
类型关 键字 char int long 或 long int
长 度 1 2 4 4 8
值域范围
-128 ~ +127 -215 ~ 215-1 -231 ~ 231-1
char a>b _above $123
2.2 数据类型、变量、常量
#include<stdio.h> #include<math.h> void main() a,b,c,d,x1,x2; {float a,b,c,d,x1,x2; scanf(“%d%d%d”,&a,&b,&c); d=b*bd=b*b-4*a*c; if(d>0) { x1=(-b+sqrt(d))/(2*a); x1=(x2=(x2=(-b+sqrt(d))/(2*a); printf(“x1=%f,x2=%f\ printf(“x1=%f,x2=%f\n”,x1,x2); } else if (d==0) { x1=-b/(2*a); x1=printf( “重根x=%f\n”,x1); “重根 重根x=%f\ } else printf(“无实根 printf(“无实根\n“); 无实根\ }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1部分语言篇第1章程序设计入门阅读资料[摘录自网络以及专业书籍]Main函数相关:每个 C++ 程序都包含一个或多个函数,而且必须有一个命名为 main。
函数由执行函数功能的语句序列组成。
操作系统通过调用 main 函数来执行程序,main 函数则执行组成自己的语句并返回一个值给操作系统。
下面是一个简单的 main 函数,它不执行任何功能,只是返回一个值:int main(){return 0;}操作系统通过 main 函数返回的值来确定程序是否成功执行完毕。
返回 0 值表明程序程序成功执行完毕。
main 函数在很多方面都比较特别,其中最重要的是每个 C++ 程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显式调用的函数。
定义 main 函数和定义其他函数一样。
定义函数必须指定 4 个元素:返回类型、函数名、圆括号内的形参表(可能为空)和函数体。
main 函数的形参个数是有限的。
本例中定义的 main 函数形参表为空。
第 7.2.6 节将介绍 main 函数中可以定义的其他形参。
main 函数的返回值必须是 int 型,该类型表示整数。
int 类型是内置类型,即该类型是由 C++ 语言定义的。
函数体函数定义的最后部分,是以花括号开始并以花括号结束的语句块:{return 0;}例中唯一的语句就是 return,该语句终止函数。
注意 return 语句后面的分号。
在 C++ 中多数语句以分号作为结束标记。
分号很容被忽略,而漏写分号将会导致莫名其妙的编译错误信息。
当 return 带上一个值(如 0)时,这个值就是函数的返回值。
返回值类型必须和函数的返回类型相同,或者可以转换成函数的返回类型。
对于 main 函数,返回类型必须是 int 型,0 是 int 型的。
在大多数系统中,main 函数的返回值是一个状态指示器。
返回值 0 往往表示 main 函数成功执行完毕。
任何其他非零的返回值都有操作系统定义的含义。
通常非零返回值表明有错误出现。
每一种操作系统都有自己的方式告诉用户 main 函数返回什么内容。
已初始化变量和未初始化变量在 C++ 中,初始化是一个非常重要的概念。
已初始化变量是指变量在定义时就给定一个值。
未初始化变量则未给定初始值:int val1 = 0; // initializedint val2; // uninitialized给变量一个初始值几乎总是正确的,但不要求必须这样做。
当我们确定变量在第一次使用时会赋一个新值,那就不需要创建初始值。
定义变量时,应该给变量赋初始值,除非确定将变量用于其他意图之前会覆盖这个初值。
如果不能保证读取变量之前重置变量,就应该初始化变量。
EOF 文件终止符竞赛中常采用while(scanf( ... ) != EOF){ ... }来实现多组读入。
这是因为竞赛经常采用重定向的方式,把输入数据文件输入到程序中。
而EOF表示文件结束。
(End Of File)从键盘输入文件结束符操作系统使用不同的值作为文件结束符。
Windows 系统下我们通过键入control—z——同时键入“ctrl”键和“z”键,来输入文件结束符。
nix 系统中,包括 Mac OS—X 机器,通常用 control—d。
C/C++编码规范一个好的程序,不仅要算法正确,效率高,而且还应该可读性好。
所谓程序的可读性,就是程序是否能让人容易读懂。
在开发实践中,许多情况下可读性与代码效率同等重要。
软件开发是团队工作,接手别人编码的程序并在此基础上进行改进是必不可少的,因此可读性在工程实践中非常重要。
即使是自己编写的程序,如果可读性不好,过一段时间需要改进时自己再看,也常会看不懂。
如何提高程序的可读性呢?在标识符、书写格式、注释三个方面加以培养,再养成一些好的习惯,就能够有效增强程序的可读性。
1.5.1 标识符命名注意事项应该对变量、常量以及函数等标识进行适当的命名。
好的命名方法使标识符易于记忆且使程序可读性大大提高。
对标识符命名的基本要求是,看到标识符就能想起或猜出它是做什么用的。
如果名字能体现变量的类型或作用域等性质,当然更好。
标识符命名应注意以下几点:(1)标识符号应能提供足够信息以说明其用途。
一定不要怕麻烦而懒得起足够长的变量名,少按几个键省下的时间,和日后自己读程序或别人读你的程序揣摩该变量的作用所花的时间相比,实在微不足道。
在没有国标合作的项目中编写程序,如果英语实在不好,可以使用拼音,但不要使用拼音缩写。
(2)为全局变理取长的、描述信息多的名字,为局部变量限稍短的名字。
(3)名字太长时可以适当采用单词的缩写。
但要注意缩写方式一致,要缩写就全部缩写。
比如单词Number,如果在某个变量里缩写成了:int nDoorNum;那么最好包含Number单词的变量都缩写成Num。
(4)注意使用单词的复数形式。
如int nTotalStudents,nStudents;nStudents容易让人理解成代表学生数目,而nStudent含义就不十分明显。
(5)对于返回值为真或假的函数,加“IS”前缀如:int IsCanceled();int isalpha(); //C语言标准库函数BOOL IsButtonPushed();1.5.2 程序的书写格式书写格式好的程序,看起来才有好心情,谁也不愿意看下面这样的程序:void main(){int t, x, y;cin>>t;while (t>0){min=60000;cin>>N>>x>>y>>max; plat[0].x1=x;plat[0].x2=x; plat[0].h=y;for (int i=1;i<=N;i++){cin>>plat[i].x1>>plat[i].x2>>plat[i].h;plat[i].t1=-1;plat[i].t2=-1;if (plat[i].h>y) {i--; N--; }}plat[0].t1=0;plat[0].t2=0;qsort((void*)(&plat[1]), N, sizeof(plat[0]), compare);tryway(0);t--;cout<<min<<endl;}}因此,如果想要让你的程序看起来赏心悦目,应该注意以下几点:(1)正确使用缩进首先,一定要有缩进,否则代码的层次不明显。
缩进应为4 个空格较好。
需要缩进时一律按Tab 键,或一律按空格键,不要有时用Tab 键缩进,有时用空格键缩进。
一般开发环境都能设置一个Tab 键相当于多少个空格,此时就都用Tab 键。
(2)行宽与折行一行不要太长,不能超过显示区域,以免阅读不便。
太长则应折行,折行最好发生在运算符前面,不要发生在运算符后面。
如if(Condition1() && Condition2()&& Condition3()) {}3)‘{’, ‘}’位置不可随意放置。
建议将‘{’放在一行的右边,而将‘}’单独放置一行。
如:if(condition1()) {DoSomething();}比较if(condition1()){DoSomething();}这种写法,前者既不影响可读性,又能节省一行。
但是对于函数体或结构定义的的第一个‘{’,还是单独一行更为清晰。
(4)变量和运算符之间最好加1个空格,如:int nAge = 5;nAge = 4;if(nAge >= 4)printf(“%d”, nAge);for(i = 0; i < 100; i++);1.5.4 一些好的编程习惯(1)尽量不要用立即数,而用#define 或 const 定义成常量,以便以后修改。
例如:#define MAX_STUDENTS 20struct SStudent aStudents [MAX_STUDENTS];比struct SStudent aStudents [20];好。
再例如:#define TOTAL_ELEMENTS 100for(i = 0; i < TOTAL_ELEMENTS; i++) {}(3)稍复杂的表达式中要积极使用括号,以免优先级理解上的混乱以及二义性。
n = k++ + j; //不好n = (k++) + j; //好一点(4)不很容易理解的表达式应分几行写:n = (k++) + j;应该写成:n = k + j;k++;(5)嵌套的if else 语句要多使用 { }if(Condition1())if(condition2())DoSomething();elseNoCondition2();不够好,应该:if(Condition1()) {if(condition2())DoSomething();elseNoCondition2();}(6)单个函数的程序行数最好不要超过100 行(两个屏幕高)。
(7)尽量使用标准库函数。
(8)不要随意定义全局变量,尽量使用局部变量。
(9)保持注释与代码完全一致,改了代码别忘改注释。
(10)循环、分支层次最好不要超过5层。
(11)注释可以与语句在同一行,也可以在上行。
(12)一目了然的语句不加注释。
1.6 小结与习题通过前几个小节的学习,对顺序结构程序设计和分支程序设计的核心概念和方法,然而对这些进行知识进行总结,并且完成适当的练习是很有必要的。
1.6.1 数据类型实验实验A1:表达式11111*11111的值是多少?把5个1改为6个1呢?9个1呢?解答:(1)计算表达式11111*11111的值#include <stdio.h>int main(){printf("11111*11111=%ld",11111*11111);return 0;}程序的运行结果为11111*11111=123454321。
(2)计算表达式111111*111111的值只须将(1)中的printf语句改为printf("111111*111111=%ld",111111*111111);,程序的运行结果为111111*111111=-539247567。
正确的结果应为12345654321,由于这个数比较大,所以产生了溢出。
(3)计算表达式111111111*111111111的值只须将(1)中的printf改为printf("111111111*111111111=%ld ",111111111*1111111 11);,程序的运行结果为111111111*111111111=1653732529。