C语言程序设计规范及基础
练习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
模块化程序设计
考虑如何设计函数参数?
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)数组用来处理多个性质相同的数据。
第四部分 可读性
避免使用默认的运算优先级 使用有意义的标识,避免直接使用数字 源程序中关系较为紧密的代码应尽可能 相邻 不要使用难懂的技巧性很高的语句、复 杂的表达式
练习
请同学们课后继续学习有关“编码规范” 的相关内容并将其应用在日后的课程练 习当中。 在“考试平台”下练习,进一步熟悉规 范要求。
函数的使用
函数的调用:通过调用表达式进行。调 用表达式的形式为: 函数名(实参表列) 调用表达式的作用
参数传递 执行函数中的语句 接收函数的返回
函数声明
把函数定义写在函数调用之前 用函数声明语句
函数的使用
#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));
练习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
程序放置顺序
1、#include <C的标准头文件> 2、#include "用户自定义文件" 3、#define 宏定义 4、全局变量定义 5、函数原型声明 6、main函数定义 7、用户自定义函数
第二部分 注释
注释的原则和目的 函数头部应进行注释 进行注释时的注意事项
注释的原则和目的
原则是有助于对程序的阅读理解,注释 不宜太多也不能太少,注释语言必须准 确、易懂、简洁 目的是解释代码的目的、功能和采用的 方法,提供代码以外的信息,帮助读者 理解代码,防止没有必要的重复注释信 息
指针的好处:
一种用指针、结构体 (1)能够动态地分配内存。 动态构成的数据结构, (2)能够直接对地址操作。 可方便地进行数据插 将处理的数 (3)调用函数时可以传递多个 入、删除的操作。 据、结果永 数据,也可以得到多个值。 久保存到磁 盘中
本期学习要求
理论30学时+上机14学时+课设20学 时 上课“三到”
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()函数构成。 函数功能。
练习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); }
}
int f(int a ) { static int c=3; b++;c++; return a+b+c; }
静态局部变量
编写程序计算:m=1-2+3-4+…+9-10
问题分析: 这是一个累加问题。累加的奇数项 为正数,偶数项为负数。且加的项数为 10,可用循环结构的for语句实现。 如何将该计算功能改为函数,实现n项的 累加?
i
n l c by
unsigned int
unsigned long int 0结尾字符串 指针 全局变量
w
dw sz p g_
float
f
静态变量
s_
函数的命名规范
尽量使用英文表达出函数完成的功能 必须使用函数原型声明
函数参数命名规范
参数名称的命名参照变量命名规范 传递大结构的参数,采用指针或引用方 式传递
C语言程序设计基础
理解C程序的基本结构 掌握C语言中数据的描述方法
数据类型 变量与常量 运算符与表达式
掌握C程序的逻辑结构
顺序结构 分支结构(if,if…else…, switch) 循环结构(while, do…while, for)
C语言程序的基本结构特点
#include <stdio.h> void main() { prinf(“Good morning, everyone!\n”); }
函数头部应进行注释
列出:函数的目的/功能、输入参数、输出参 数、返回值、调用关系
/********************************** function:函数名称 description:函数功能描述 calls:被本函数调用的函数清单 called by:调用本函数的函数清单 input:输入参数,每个参数的作用、取值及关系 output:输出参数说明 return:函数返回值的说明 others:其它说明 **********************************/
命名的基本原则
标识符的命名要清晰、明了 对于变量命名,禁止取单个字符i、j等 不要使用数字或较奇怪的字符
变量名的命名规则
使用“匈牙利法则”
变量名=变量类型+变量的英文意思
类型 bool 开头部分 b 类型 double 开头部分 d
int
short int long int char unsigned char
注释时注意事项
注释应与其描述的代码相近,在代码上方或 右方(单条语句注释) 全局变量要有较详细的注释,包括功能、取 值范围、哪些函数存取等 注释与描述内容进行同样的缩排 注释与其上面的代码用空行隔开 对变量定义和分支语句(条件、循环等)必 须编写注释
注释时注意事项
对于switch结构中无break的case,在 下一个case之前注明 在程序块结束行右方加注释标记,表明 某程序块的结束 注释格式尽量统一,使用/*......*/
第三部分 命名规则
三种流行的命名法则 命名的基本原则 变量名的命名规则 函数命名规范 函数参数命名规范
三种流行的命名法则
驼峰命名法(首字母小写)
printEmployeePaychecks print_employee_paychecks
匈牙利命名法m_lpszStr 帕斯卡命名法(与驼峰类似,首字母大写)
耳到 嘴到 手到
上机
填写预习报告 调试记录 课外增加上机
编程规范介绍(一)
——优秀程序员的必备素质
第一部分 排版
严格采用阶梯层次组织程序代码 及时折行 一行只写一条一句 if、for、do、while等语句格式规定 空行 空格 组织程序代码
(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