// 2-2.c --------把两个fathoms换算成英尺
#include <stdio.h>
int main (void)
{
int feet, fathoms;
fathoms = 2;
feet = 6 * fathoms;
printf ("There are %d feet in %d fathoms !\n",feet,fathoms);
printf ("Yes , I said %d feet !\n",6 * fathoms);
return 0 ;
}
/*运行的结果
There are 12 feet in 2 fathoms !
Yes , I said 12 feet !
*/
/*在程序的开始使用了注释(新注释方法),说明了文件的名称和程序目的。
程序在一条语句中声明了两个变量。为此需要用逗号(,)分开。int feet , fathoms;相当于int feet; int fathoms;
程序进行了一个乘法用*代表乘法符号。feet = 6 * fathoms;意思“查找变量fathoms的值,用6乘变量所的值赋给变量feet”
第一个printf ()的有两个%d被替换。两个值分别是双引号后面的变量的值.注意要输出的变量的列表出面在双引号部分之后的语句结尾且每一项和佘项之间要用一个逗号隔开。
第二个printf ()说明输出不一定是一个变量还有可以是一个具有合适类型的式子。
*/
/* 2-3.c ----在一个文件中使用多个函数 */
#include <stdio.h>
void betler (void);
/*ISO/ANSI C函数原型 */
int main (void)
{
printf ("I will summon the butler functio.\n");
betler ();
printf ("Yes. Bring me some tea and writeable CD-ROMS.\n");
return 0 ;
}
void betler (void)
//函数定义的开始
{
printf ("You rang ,sir?\n");
}
/* 运行结果:
I will summon the butler functio.
You rang ,sir?
Yes. Bring me some tea and writeable CD-ROMS.
*/
/* betler () 函数在程序中出三次:第一次出现在原型中,通知编译器要用到此函数;第二次出现在main () 的函数体中发调用的形式出现
最后,程序给出函数的定义即函数的源代码。
原型是一种声明的形式,即告诉编译器要用到一个特殊的函数,它也指明了函数的属性。如betler () 函数的第一个void 说明betler () 不返回值。
第二个void 意思是betler () 函数没有参数。因此当编译器到达main () 函数中betler () 的调用处时会检查betler () 的使用是否正确。
下一步,通过简单的给出betler () 函数的名字(包换圆括号)就可以在main ()函数中调用它。betler () 函数执行完后接着执行main () 函数的下条语句。
注意betler () 函数执行的时间是由main () 函数调用它的位置决定,而不是由它在文件中的位置决定。所有的函数都从main ()函数开始执行的。
最后betler () 函数的定义方式和main () 函数一样,都是用函数头和括在花括号里的函数体组成。函数头重述函数的原型,函数体执行语句printf () .
*/
/* 2-4.c -----含有错误的程序 */
/*#include <stdio.h>
int main (void)
(
int n, int n2 , int n3;
n = 5;
n2 = n * n;
n3 = n2 * n2;
printf ("n = %d,n squared = %d n cubed = %d\n",n,n2,n3)
return 0;
)
*/
/*语法错误:C的语法错误指把正确的C符号放到错误的位置。如何检查语法错误:在编译前先查看是否有无明显错误如少分号,花括号没有写完整,注释是否写完整等,
其次是看编译器所报的错,什么错,错误在哪等。
语义错误:意思上的错误也就是说结果不正确。如何检查语义错误:方法1比较结果和预期结果。把自己想像成计算机,跟着程序的步骤一步一步的执行(适用于少量代码)
对于数量多的代码可以在程序的关键点处加入额外的printf () 语句监视变量的值。还有一种方法是使用调试器查看正在执行的源代码行和执行的路径。
*/
/*修后的程序*/
#include <stdio.h>
int main (void)
{
int n; int n2 ; int n3 ;
n = 5;
n2 = n * n;
n3 = n * n2;
printf ("n = %d n squared = %d n cubed = %d\n",n,n2,n3);
return 0;
}
/* 运行正确后的结果
n = 5,n squared = 25 n cubed = 125
*/