2022年6月30日周四
(一)简单C程序的格式
#include
int main(void){
语句;
return 0;
}
//大部分语句都是以分号结尾。
(二)提高程序可读性的技巧
#includeint main(void){ 语句; return 0; } //大部分语句都是以分号结尾。
(二)提高程序可读性的技巧
1.选择有意义的函数名和变量名。
2.写注释。
3.在函数中用空格分隔概念上的多个部分,如生命和其他部分分开。
4.每条语句都各占一行。
(三)C90后的新版函数
函数原型(函数声明),函数定义,函数调用。
C标准建议,要为程序中用到的所有函数提供函数原型。标准include文件(包含文件)为标准库函数提供可函数原型。例如,在C标准中,stdio.h 文件包含了printf()的函数原型。#includevoid butler(void);//C函数原型 int main(){ printf("I will summon the butler function.n"); butler(); printf("Yes.Bring me some tea and writeable DVDs.n"); return 0; } void butler(){ printf("You rang,sir?n"); }
(四)所有C程序都从main()开始执行
2022年7月1日周五
(一)程序调试的方法
(一)程序调试的方法
编译器可以检测出语法错误,但是程序里的语义错误只有在编译完之后才能从程序的行为中表现出来。检查程序是否有语义错误要跟踪程序的状态,即程序每执行一步后所有变量的值。
1.自己模拟计算机逐步执行程序。
但是,如果程序中有10000次循环,这种方法恐怕行不通。不过,可以跟踪一小部分循环,看看程序是否按照预期的方式执行。
2.在程序中的关键点插入额外的 printf() 语句,以监视制定变量值的变化。
通过查看值的变化可以了解程序的执行情况。对程序的执行满意后,便可删除额外的 printf()语句,然后重新编译。
3.使用调试器。
调试器(debugger)是一种程序,让你一步一步运行另一个程序,并检查该程序变量的值。调试器有不同的使用难度和复杂度。较高级的调试器会显示正在执行的源代码行号。这在检查有多条执行路径的程序时很方便,因为很容易知道正在执行哪条路 径。
(二)关键字和保留标识符
1.关键字是C语言的词汇。它们对C而言比较特殊,不能用它们作为标识 符(如,变量名)。如果使用关键字不当(如,用关键字作为变量名),编译器会将其视为 语法错误。
2.还有一些保留标识符(reserved identifier),C语言已经指定了它 们的用途或保留它们的使用权,如果你使用这些标识符来表示其他意思会导致一些问题。因此,尽管它们也是有效的名称,不会引起语法错误,也不能随便使用。保留标识符包括那些以下划线字符开头的标识符和标准库函数 名,如printf()。
(三)练习题
#include
int main(){
int olds=0;
int days=0;
int year=0;
scanf("%d",&olds);
year=2022-olds;
for(int i=year;i<2022;i++){
//闰年的判断条件:能被4整除但不能被100整除,或者能被400整除
if((i%4==0&&i%100!=0)||i%400==0)
{
days+=366;
printf("%d ",i);//输出从出生起到目前为止所有的闰年
}else{
days+=365;
}
}
printf("n");
printf("年龄%d岁,天数%d天",olds,days);
return 0;
}
#includevoid jolly(void);//函数原型(函数声明) void deny(void); int main(){ jolly();//函数调用 jolly(); jolly(); deny(); return 0; } void jolly(){ printf("For he's a jolly good fellow!n"); } void deny(){ printf("Which nobody can deny!"); }
#includeint main(){ int toes; toes=10; printf("toes is %d,double toes is %d,square toes is %d",toes,toes*2,toes*toes); return 0; }
#includevoid smile(); int main(){ //外层循环表示行数 for(int i=0;i<3;i++){ //内层循环表示列数 for(int j=3;j>i;j--){ smile(); } printf("n"); } return 0; } void smile(){ printf("Smile!"); }
2022年7月2日周六
(一)输入
scanf("%f", &weight);
scanf()
函数用于读取键盘的输入。
%f
说明
scanf()
要读取用户从键盘输入的浮点数,&weight
告诉
scanf()
把输入的值赋给名为
weight
的变量。
scanf() 函数使用&
符号表明找到
weight
变量的地点。
(二)常量和变量
有些数据类型在程序使用之前已经预先设定好了,在整 个程序的运行过程中没有变化,这些称为常量(constant)。
其他数据类型 在程序运行期间可能会改变或被赋值,这些称为变量(variable)。
如果数据是常量,编译器 一般通过用户书写的形式来识别类型(如,42
是整数,
42.100
是浮点数)。 但是,对变量而言,要在声明时指定其类型。
(三)数据类型关键字
(二)常量和变量 有些数据类型在程序使用之前已经预先设定好了,在整 个程序的运行过程中没有变化,这些称为常量(constant)。 其他数据类型 在程序运行期间可能会改变或被赋值,这些称为变量(variable)。 如果数据是常量,编译器 一般通过用户书写的形式来识别类型(如,42 是整数, 42.100 是浮点数)。 但是,对变量而言,要在声明时指定其类型。 (三)数据类型关键字
_Bool类型表示布尔值(true或false), _complex和_Imaginary分别表示复数和虚数。
2022年7月4日 (一)变量如何获得值? 第 1 种途径是赋值: cows = 112; 第 2 种途径是,通过函数(如, scanf() )获得值。 第 3 种途径是,初始化变量。在C 语言中,初始化可以直接在声明中完成。只需在变量名后面加上赋值运算符(=)和待赋 给变量的值即可。如: int hogs = 21; 简而言之,这种声明不仅为变量创建和标记存储空间,并为其指定初始值(如图 3.4所示) 注:最好不要把初始化的变量和未初始化的变量放在同一条声明中。 int dogs, cats = 94; (二)八进制和十六进制 通常, C 语言都假定整型常量是十进制数。然而,许多程序员很喜欢使用八进制和十六进制数。 在 C 语言中,用特定的前缀表示使用哪种进制。 0x 或 0X 前缀表示十六进 制值,所以十进制数 16 表示成十六进制是 0x10 或 0x10 。与此类似, 0 前缀表 示八进制。例如,十进制数 16 表示成八进制是 020 。 。。。。。。


