C语言程序设计规范及基础

  • 格式:ppt
  • 大小:358.00 KB
  • 文档页数:50

下载文档原格式

  / 50
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计基础
——对C语言程序设计基础知识的回顾
程序设计的步骤
定义目标——描述程序的用途 分析问题——确定输出结果、输入数据及 处理输入数据和生成输出所需活动的步骤 设计程序逻辑——用程序流程图等工具设 计程序流程并进行手工检查 编写程序代码——将程序逻辑转化为C语句 输入、测试、调试程序 整理程序文档
库函数的使用:使用某个库函数,一定 要首先使用文件包含预处理命令,将对 应的头文件包含进来。
在程序中要使用自己定义的函数,有三 个基本环节:
函数定义 函数调用 函数声明
函数的使用
函数定义
┏━━━━━━━━━━━┓ ┃函数头 ┃ ┃{ ┃ ┃ 函数体 ┃ ┃} ┃ ┗━━━━━━━━━━━┛
函数头是函数的用户界面,其组成形式如下: 类型名 函数名(形式参数表列) 函数体是一个语句块,是用一对花括号封装的语句 序列。它描述了函数实现一个功能的过程。
练习3
输入一整数x,在数组a中查找x第一次出现的位置。请填空。 #include<stdio.h> main() { int a[10]={10,24,34,55,9,17,87,22,9,19},x,i; printf(“Input an integer:”); scanf(" _______ ",&x); 结果:%d for(i=0; _______ ;i++) i<10 if( _______ ) break; x!=a[i] if( _______ ) a[i]==x printf("Not found.\n"); i>=10 else printf("Position is: %d\n",i); }
函数头部应进行注释
列出:函数的目的/功能、输入参数、输出参 数、返回值、调用关系
/********************************** function:函数名称 description:函数功能描述 calls:被本函数调用的函数清单 called by:调用本函数的函数清单 input:输入参数,每个参数的作用、取值及关系 output:输出参数说明 return:函数返回值的说明 others:其它说明 **********************************/
练习4
for(i=0;i<5;i++) { for(j=1;j<10;j++) if(j==5) break; if(i<2) continue; if(i>2) break; printf(“j=%d,",j); } printf(“i=%d\n",i); 输出结果为: j=5,i=3
模块化程序设计
C(C++)数据类型
三种逻辑结构
顺序结构 分支结构 循环结构 1. 理解三种逻辑结构的应用场合 2. 了解实现分支、循环结构的语句有哪些? 3. 根据实际问题,选择适当的语句来实现。 如何执行的?分别应用在什么场合?
练习1
A 如下程序段,该程序的输出结果是( ) main( ) { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); } A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2
函数定义之外,可包含外部说明,如include命令 一个完整的C语言程序,是由一个main()函数( 一个函数由函数头和函数体构成。函数头指明函 和外部变量说明。 又称主函数)和若干个其它函数结合而成的,或 数名、函数参数、函数返回值类型。函数体实现 仅由一个main()函数构成。 函数功能。
耳到 嘴到 手到
上机
填写预习报告 调试记录 课外增加上机
编程规范介绍(一)
——优秀程序员的必备素质
第一部分 排版
严格采用阶梯层次组织程序代码 及时折行 一行只写一条一句 if、for、do、while等语句格式规定 空行 空格 对变量的定义,尽量位于函数的开始位置 程序各部分的放置顺序
采用阶梯层次组织程序代码
}
int f(int a ) { static int c=3; b++;c++; return a+b+c; }
静态局部变量
编写程序计算:m=1-2+3-4+…+9-10
问题分析: 这是一个累加问题。累加的奇数项 为正数,偶数项为负数。且加的项数为 10,可用循环结构的for语句实现。 如何将该计算功能改为函数,实现n项的 累加?
函数的使用
函数的调用:通过调用表达式进行。调 用表达式的形式为: 函数名(实参表列) 调用表达式的作用
参数传递 执行函数中的语句 接收函数的返回
函数声明
把函数定义写在函数调用之前 用函数声明语句
函数的使用
#include <stdio.h> 程序运行后输出为:7 int f(int); 函数声明 8 void main() 9 { int a=2,i; for(i=0;i<3;i++) printf("\n%d",f(a));
}
int f(int a ) { int b=0; static int c=3; 函数定义 b++;c++; return a+b+c; }
函数调用
变量的作用域和生存期
#include <stdio.h> 程序运行后输出为:7 int f(int); 9 全局变量 int b=0; 11 void main() { int a=2,i; 局部变量 for(i=0;i<3;i++) printf("\n%d",f(a));
C语言程序设计基础
理解C程序的基本结构 掌握C语言中数据的描述方法
数据类型 变量与常量 运算符与表达式
掌握C程序的逻辑结构
顺序结构 分支结构(if,if…else…, switch) 循环结构(while, do…while, for)
C语言程序的基本结构特点
#include <stdio.h> void main() { prinf(“Good morning, everyone!\n”); }
(2)数组用数组名及其下标来区分不同的 数据。
(3)数组的下标可以是整型常量或整型变 量。 (4)数组的下标是0、1、2等有规律的数, 所以可以很方便用循环变量来提供。 (5)数组的下标是从0开始的。注意检查 数组下标是否越界。
练习1
已知一数组a[5][6],则a[3][4]之前的数 组元素个数为 ________ 。 a00 a10 a20 a30 a40 a01 a11 a21 a31 a41 a02 a12 a22 a32 a42 a03 a13 a23 a33 a43 a04 a14 a24 a34 a44 a05 a15 a25 a35 a45
程序放置顺序
1、#include <C的标准头文件> 2、#include "用户自定义文件" 3、#define 宏定义 4、全局变量定义 5、函数原型声明 6、main函数定义 7、用户自定义函数
第二部分 注释
注释的原则和目的 函数头部应进行注释 进行注释时的注意事项
注释的原则和目的
原则是有助于对程序的阅读理解,注释 不宜太多也不能太少,注释语言必须准 确、易懂、简洁 目的是解释代码的目的、功能和采用的 方法,提供代码以外的信息,帮助读者 理解代码,防止没有必要的重复注释信 息
第三部分 命名规则
三种流行的命名法则 命名的基本原则 变量名的命名规则 函数命名规范 函数参数命名规范
三种流行的命名法则
驼峰命名法(首字母小写)
printEmployeePaychecks print_employee_paychecks
匈牙利命名法m_lpszStr 帕斯卡命名法(与驼峰类似,首字母大写)
注释时注意事项
注释应与其描述的代码相近,在代码上方或 右方(单条语句注释) 全局变量要有较详细的注释,包括功能、取 值范围、哪些函数存取等 注释与描述内容进行同样的缩排 注释与其上面的代码用空行隔开 对变量定义和分支语句(条件、循环等)必 须编写注释
注释时注意事项
对于switch结构中无break的case,在 下一个case之前注明 在程序块结束行右方加注释标记,表明 某程序块的结束 注释格式尽量统一,使用/*......*/
C语言程序设计II
——C程序设计提高篇
上期考试情况总结
填空调试40 优良 85 合格 60 不合 格 57人 84% 8 12% 3 4% 程序设计60 10人 15% 25 37% 33 49% 总分 19人 28% 35 51% 14 21%
本期学习的主要内容
指针 结构体 单链表 文件操作
组织多个不 同数据类型 的相关数据
命名的基本原则
标识符的命名要清晰、明了 对于变量命名,禁止取单个字符i、j等 不要使用数字或较奇怪的字符
变量名的命名规则
使用“匈牙利法则”
变量名=变量类型+变量的英文意思
类型 bool 开头部分 b 类型 double 开头部分 d
int
short int long int char unsigned char
练习2
有程序段: int n=1; do { n=++n*5; }while(n==10); 则此循环的循环体( B A.执行1次 C. 不执行
)。
B. 执行2次 D.执行无限次
练习3
假设所有变量均已说明,写出下列程序段运行后x 的值。 ( D ) ok1=1; ok2=2; ok3=0; x=15; a=3; b=4; if(!ok1) x++; else if(ok2) { if(ok3) x=3; else x=4; } 运行后x的值为下面哪一个? A. 15 B. 3 C. 16 D. 4
{ } 各占一行,与引用对齐
函数体开始、结构(枚举)声明、if、for、 do、while、switch、case do-while是个特例(}后可以跟while)
使用Tab缩进
及时折行
选低优先级操作符前换行 使换行适当缩进(至少一个Tab)
一行只写一条语句(只出现一次分号) if、for、do、while、case、switch、 default各占一行,且if、for、do、 while后无论语句多少都要加花括号
指针的好处:
一种用指针、结构体 (1)能够动态地分配内存。 动态构成的数据结构, (2)能够直接对地址操作。 可方便地进行数据插 将处理的数 (3)调用函数时可以传递多个 入、删除的操作。 据、结果永 数据,也可以得到多个值。 久保存到磁 盘中
本期学习要求
理论30学时+上机14学时+课设20学 时 上课“三到”
a[3][4]之前的 数组元素个数 为 3*6+4。
数组的应用
1.计算n个数据的平均值
2.计算n个数据中的最大最小值
3.排序(冒泡法)
4. 递推数列的计算
5. 矩阵运算 6. 字符串匹配来自百度文库索
练习2
1、指出下面各说明语句中哪个是合法的: ( A ) A. int abcd[0x80]; B. char 9ab[10]; C. char chi[-200]; D. int n,floppy[n]; 2、若定义a[][2]={1,2,3,4,5,6,7}; 则a数组 中行的大小是( C )。 A. 2 B. 3 C. 4. D. 无确定值
考虑如何设计函数参数?
int fun(int n) {int m=0,f=1,i; for(i=1; i<=n; i++) { m += i*f; f=f*(-1); } return m; } void main() { printf("m=%d\n",fun(10) ); }
数组的使用
(1)数组用来处理多个性质相同的数据。
i
n l c by
unsigned int
unsigned long int 0结尾字符串 指针 全局变量
w
dw sz p g_
float
f
静态变量
s_
函数的命名规范
尽量使用英文表达出函数完成的功能 必须使用函数原型声明
函数参数命名规范
参数名称的命名参照变量命名规范 传递大结构的参数,采用指针或引用方 式传递
空行
定义变量与程序块之间 相对独立的程序块之间
空格
逗号后,分号后(for循环) 比较、赋值、算术、逻辑等双目运算符 前后加空格 !、++、--等单目运算符与运行表达式 之间不加空格 ->、.前后不加空格 if、for、while、switch等后面加空格, 突出关键字
变量定义
同一行内不要定义过多变量 同一类的变量在同一行内定义,或相邻 行定义 数组、指针复杂类型定义放在定义区的 最后 变量定义区不做较复杂的变量赋初值
第四部分 可读性
避免使用默认的运算优先级 使用有意义的标识,避免直接使用数字 源程序中关系较为紧密的代码应尽可能 相邻 不要使用难懂的技巧性很高的语句、复 杂的表达式
练习
请同学们课后继续学习有关“编码规范” 的相关内容并将其应用在日后的课程练 习当中。 在“考试平台”下练习,进一步熟悉规 范要求。