C程序结构:
1、预处理指令
2、main()函数
3、函数调用
4、注释
函数:
1、函数是C的基本模块
2、函数的结构
3、函数体和语句块
声明:
1、变量及其声明
2、变量的赋值
3、标识符
调试和错误:
1、调试
2、语法错误
3、语义错误
关键字:
1、体统保留特定用途的词汇
C程序的基本结构:
预处理指令中的#include<>表示对头文件的引用。头文件内一般包含编译器创建可执行程序时要用的信息(标准库函数信息、预定义常量及其其它与编译代码信息)
预处理:C语言在编译源代码时会提前对这些代码进行相关处理。
函数是C程序的基本模块。函数可以提高开发效率,实现可重用的代码。这些函数具备特定的功能,并且能够被程序员在编程过程中重复调用。
main()函数是整个可执行程序的入口。
特定格式:int main(){}
int main(){}中:int类型表示函数的返回值类型,
int main(){}的圆括号:表示参数列表,
int main(){}的花括号:表示main函数的功能代码块。
变量:
变量是C语言中用于表示存储在内存中的特定数据单元,在给一些变量命名时可以使用一些有意义的名称,这种名称也叫做标识符。
使用变量之前必须先进行变量及类型的声明。
例如:
int a;
int是C语言的关键字,不能用作标识符
标识符:
由大小写字母、数字、下划线组成。(标识符的第一个字符必须是字母或者下划线,不能是数字)
语句是程序设计中表达具体含义的最小单位,通常使用分号作为结尾。
语法错误和语义错误:
1、语法错误:
编程时候没有遵循C语言的语法规范而造成的错误。
2、语义错误
即在语法上是正确的,但是其表达的含义和逻辑关系存在错误。
C语言的基本模块是什么:
C语言的基本模块是函数。函数是能够实现特定功能的语句块,当用户按照函数的特定格式完成这个基本模块后,就可以在后续的开发中重复使用这个功能模块,从而提高开发效率。
经典例题:
1、将2英寻转换为英尺
#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!
2、编写一个程序
调用一次printf()函数,把你的名字和姓打印在一行,
调用一次printf()函数,把你的名字和姓分别打印在两行,
调用两次printf()函数,把你的名字和姓分别打印在一行。
#include<stdio.h>
#define NAME "Gustav"
#define SURNAME "Mahler"
int main(void)
{
printf("%s %s\n", NAME, SURNAME);
printf("%s\n%s\n", NAME, SURNAME);
printf("%s", NAME);
printf("%s\n",SURNAME);
return 0;
}
运行结果:
Gustav Mahler
Gustav
Mahler
GustavMahler
3、编写一个程序,打印你的姓名和地址
分析:
程序要求打印姓名和地址,因此可以通过调用printf()函数实现这个功能。
姓名和地址可以使用预编译指令定义,这样可以简化程序中函数的调用方式。
#include<stdio.h>
#define NAME "老六"
#define ADDRESS "内蒙古自治区鄂尔多斯市东胜区"
int main(void)
{
printf("%s\n", NAME);
printf("%s\n", ADDRESS);
return 0;
}
运行结果:
老六
内蒙古自治区鄂尔多斯市东胜区
4、编写一个程序,将年龄转换成天数,并显示年龄和天数,这里不用考虑闰年问题
#include<stdio.h>
#define DAYS_PER_YEAR 365
//使用预编译指定一年的天数
int main(void)
{
int age = 0;
int days=0;
printf("Please input your age:");
scanf("%d", &age);
days = age * DAYS_PER_YEAR;
printf("Your age is %d,and It is %d days.\n", age, days);
return 0;
}
运行结果:
Please input your age:24
Your age is 24,and It is 8760 days.
5、编写一个程序,生成以下输出:
Baby for you!
Baby for you!
Baby for you!
I love you!
除了main()函数外,该程序还要调用两个自定义函数,一个名为jolly(),用于打印前3条消息,
调用一次打印一条;另一个函数名为deny(),用来打印最后一条消息。
分析:
程序的功能是通过两个函数jolly()和deny(),分别打印4条消息,
其中前3条消息是用jolly()函数3次打印的,
最后一条消息是调用deny()函数打印的。
即jolly()函数只打印一条Baby for you!
deny()函数只打印I love you!
#include<stdio.h>
int jolly();
int deny();
int main(void)
{
//调用函数
jolly();
jolly();
jolly();
deny();
return 0;
}
int jolly(void)
{
printf("Baby for you!\n");
return 0;
}
int deny(void)
{
printf("I love you!\n");
return 0;
}
运行结果:
Baby for you!
Baby for you!
Baby for you!
I love you!
6、编写一个程序生成以下输出:
France,England,china,America
china,America
France,England
除main()函数外,该程序还要调用两个自定义函数:一个名为br(),调用一次打印一次"France,England"
另一个名为ic(),调用一次打印一次"china,America"
#include<stdio.h>
int br(void);
int ic(void);
int main(void)
{
br();
printf(", ");
ic();
printf("\n");
ic();
printf(", \n");
br();
printf("\n");
return 0;
}
int br(void)
{
printf("France,England");
return 0;
}
int ic(void)
{
printf("china,America");
return 0;
}
运行结果:
France,England, china,America
china,America,
France,England
7、编写一个程序,创建一个整型变量toes,并将toes设置为10,程序中还要计算toes的两倍和toes的平方。
该程序应打印3个值,并分别描述以示区别。
分析:
程序的功能是分别计算并打印一个变量、变量的2倍和变量的平方。C语言中的变量应当声明再使用。
在使用printf()函数打印时可以直接使用乘法算式,也可以先计算结果,并保存在变量中,然后再打印.
#include<stdio.h>
int main(void)
{
int toes;
toes = 10;
printf("The Variable toes = %d.\n", toes);
printf("double toes = %d\n", 2*toes);
printf("toes square = %d.\n", toes * toes);
return 0;
}
运行结果:
The Variable toes = 10.
double toes = 20.
toes square = 100.
8、很多研究表明微笑益处多多。编写一个程序,生成以下格式的输出。
Smile!Smile!Smile!
Smile!Smile!
Smile!
该程序要定义一个函数,调用该函数打印一次"Smile!",根据程序的需要使用该函数
分析:
程序功能是实现指定格式的打印,考虑到函数调用一次只能打印一个"Smile!",
输出格式中一行内的"Smile!"个数不相同,因此换行需要在main()函数中单独控制
int smlie(void);
#include<stdio.h>
int main(void)
{
smlie(); smlie(); smlie();
printf("\n");
smlie(); smlie();
printf("\n");
smlie();
printf("\n");
return 0;
}
int smlie(void)
{
printf("Smile!");
return 0;
}
运行结果:
Smile!Smile!Smile!
Smile!Smile!
Smile!
9、在C语言中,一个函数可以调用另一个函数。编写一个程序,用于调用一个名为one_three()的函数,
该函数打印一行"One",再调用另一个函数two(),然后在另一行打印单词"three"。
two()函数打印一行"two",
main()函数在调用one_three()函数前要打印短语"Staring now:",并在调用完毕后显示短语"Done!"
输出如下:
Staring now:
one
two
three
Done!
分析:
除main()函数之外,程序内还有两个函数——one_three()和two()。two()函数只打印单词"two",
one_three()函数内通过调用two()函数,打印one、two、three这3个单词。其它部分在main()函数内实现。
#include<stdio.h>
int one_three(void); //函数的声明
int two(void);
int main(void)
{
printf("Staring now:\n");
one_three();
printf("Done!");
return 0;
}
int one_three(void)
{
printf("one\n");
two();
printf("three\n");
return 0;
}
int two(void)
{
printf("two\n");
return 0;
}
运行结果:
Staring now:
one
two
three
Done!