C语言经典实例

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

C语言源程序结构示例一
main()
{
printf("hello world!\n");
}
程序说明
(1)C程序由一系列函数组成,这些函数中必须有一个且只能有一个以main为名的函数,这个函数称为主函数,整个程序从主函数开始执行。在此例程序中,只有一个主函数而无其他函数。
(2)程序第一行中的main是主函数的函数名,main后面的一对小括号是函数的标志,不能省略。
(3)第三行的printf是c语言的格式输出函数,他在屏幕上显示出括号内双引号之间的字符串,其中"\n"代表换行符。注意第三行末尾的分号,他是一个语句结束的标志。
(4)第二行和第四行是一对大括弧,在这里便是函数体的开始和结束,一个函数中所有的执行语句都写在函数体中。
C语言源程序结构示例二
main()
{
int a,b,sum; /*定义三个变量*/
a=1,b=2; /*把1赋值给变量a,把2赋值给变量b*/
sum=a+b; /*求a与b的和,并把结果放入变量sum中*/
printf("sum=%d\n",sum); /*输出变量sum的值*/
}
(1)这个程序是由一个主函数组成
(2)第三行中的int表示定义变量类型为整数,该行定义了三个整数变量,即a,b和sum。
(3)第四行是两个赋值语句,其中的“=”是赋值运算符。
(4)第六行中的“%d”是输入输出函数中“格式字符串”,在这里表示以“十进制整数”的形式输出变量sum的值。程序的运行结果中,“%d”的位置被sum的值取代。
(5)程序中出现的“/*和*/”是注释符,注释内容写在/*和*/之间。注释是写给人看的而不是写给计算机看的,也就是说,/*.....*/部分对程序的编译和运行不起任何作用。但你要知道,在程序的关键地方写上注释是一个非常好的习惯,因为注释能帮助读者读懂源程序。应该养成在适当之处加注释的习惯,这使得程序易于理解,而对程序的理解是进一步修改和调试程序的基础。
C语言源程序结构示例三
main()
{
int num,p;
scanf("%d",&num);
p=f2(num);
printf("%d",p);
}
int f2(n)
int n;
{
int t;
t=n*n;
return(t);
}
程序说明
(1)本程序的作用是求一个数的平方,运行时输入一个整数,屏幕上即显示出该函数的平方值。前面两个例子中都含有一个主函数,而这个程序则由两个函数组成,即主函数main()和被调用的函数f2().
(2)第四行的scanf是格式输入函数,其作用是输入一个十进制整数到变量unm中。
(3)第五行调用f2()函数时,把变量num的值传递给形式参数N.f2()函数返回num的平方,返回值赋值给变量p。
(4)从第八行开始定义了函数f2(),该函数的功能是求N的平方,并返回求得的平方值。注意,f2()函数的定义是独立于main()函数之外的。

总结:
(1)c程序由函数构成,函数是c程序的基本组成单位。一个c源程序中有且只有一个main函数,除main函数之外可以有若干个其他的函数。每个函数实现某一个特定的操作,这样做的好处是让一个复杂的问题由若干个函数共同分担解决,使得“大事化小”。
(2)每个函数的结构如下:
函数名()

语句;

括号内的函数体由若干个语句组成,每个语句必须以分号结束。c语言的书写格式很自由,一行内可以写多个语句,一个语句很长时也可以分写在多行上。
(3)各个函数的定义是相互独立的。主函数可以写在其他的函数定义之前,也可以写在其他函数的定义之后,但程序的执行总是从主函数开始。





同时常量,符号常量较一般常量在程序设计中有什么优势:
1、符号常量的实际值易于修改。
2、符号常量的意义比较明确。
C语言中的基本运算及其表达式
一、算术运算符与算术表达式
二、关系运算符与关系表达式
三、逻辑运算符与逻辑表达式
四、赋值运算符与赋值表达式



输出函数
一、printf函数
1、转换说明符:%C 单个字符 %d 有符号十进制整数 %f 实型数字 %o 无符号八进制整数 %s 字符串 %x 无符号十六进制整数 %% 输出百分号
2、转义字符: \n 回车换行 \b退格 \r回车不换行,光标至当前行的开始 \\ 反斜线 \’单引号 \” 双引号 \ddd 1到3位八进制数所代表的字符
3、普通字符:普通字符是指“输出格式”中非转换说明符、非转义字符的字符。其主要是输出一些说明字符,这些字符可按实际的字符形式输出到屏幕上。如果要输出汉字,可把汉字写在“普通字符”类中,程序运行时,汉字就会输出来了。
例:
printf("重庆苦丁香软件有限公司\n")
三类输出项
1、变量
2、字符数组名
当输出一个字符串数组时,在输出项列表可直接用数组名表示数组。对应的转换说明符应是%s。
例如:
printf("%s",ch);/*ch为一个字符数组*/
3、表达式
二、putchar函数
putchar函数的作用是向屏幕上输出一个字符,其功能也可用带%c的格式符的printf函数来完成。
putchar函数中的输出项可以是字符常量、变量或表达式。但不能是字符串。
例:purchar('a'); /*输出项为字符常量*/
purchar(ch); /*输出项为字符变量*/
purchar('A'+32);/*输出项为表达式*/
purchar('\n'); /*输出项为转义字符*/
/*等同与下面这些程序段*/
printf("a"); /*输出项为字符常量*/
printf("%c",ch); /*输出项为字符变量*/
printf("%c",'A'+32);/*输出项为表达式*/
printf("\n"); /*输出项为转义字符*/
三、puts函数
puts函数专门用于字符串的输出。输出项可

以是字符串常量,字符型数组,还可以是符号常量。
例:
#include
#define PREDEF"这是预定义符号常量"
main()
{
char str[]=“这是初始化字符串”;
prts(“这是直接使用字符串常量”);
prts(str);
}



三种输入函数:
1、scanf()函数
使用格式:
scanf("转换说明符",变量地址列表);
转换说明符:这里的“转换说明符”与printf()函数中的“转换说明符”是一直的,主要用于对所输入数据的数据类型的控制。
例:
scanf("%d",&a); /*向变量a中输入一个整形数值*/
printf("%d",a); /*输出变量a的植*/

scanf("%d%c",&a,&b); /*分别给变量a和b输入确切的值*/
printf("%d,%c",a,b); /*输出变量a和b的值*/

scanf("%s",&c); /*向数组c输入确切的值*/
printf("%s",c); /*输出数组c中各元素的值*/
2、getchar()函数
getchar()函数的功能是返回从键盘输入的一个字符,它不带任何参数。通常把getchar()函数放在赋值运算符“=”的右边,而赋值运算符左边是一个字符型变量,这样,从键盘输入的一个字符,就可
存放在变量当中。
例:
#include
main()
{
char ch;
ch=getchar();
printf("%c\n",ch);
}
3、gets()函数
gets()函数专门用于输入字符串,其中函数参数规定了只能使用数组名而不能是其它。gets函数将拥护键入的换行符之前的所有字符存入字符数组中。
使用格式:
gets(字符数组名);
例:
#include
main()
{
char ch[10];
int i;
gets(ch);
for(i=0;i<10,i++)
printf("ch[%d]=%c",i,ch[i]);
putchar('\n');
}

几个重要的概念:
1,算法:所谓算法,就是为了解决一个特定的问题而采取的确定的有限的步骤,这些步骤是计算机能够完成的。我们编写程序主要的就是编制计算机各种操作的步骤,这一过程叫做算法设计。
2,流程图:是描述算法的工具。
其止框(圆角的四边形):表示算法的开始和结束。
一般处理框(四边形):主要用来表示“赋值”,加减乘除等操作。
判断框(菱形):用来根据给定的条件决定执行几条路径中的某一条路径。
输入输出框(平行四边形):用来表示输入输出操作。
流程线(带箭头的直线):表明了程序流程的方向。
流程图的好处是:用图形来表示流程,形象直观,各种操作一目了然,而且不会产生歧义性。正因为如此,流程图成为描述算法的标准工具。

结构化程序设计方法的要点是:
1、要求程序清晰,可读性强。、2、要求程序设计者按一定规范编写程序。而不能随心所欲地设计程序。
3、结构化程序设计方法规定了几种具有良好特性的”基本结构“,用他们作为构成程序的基本单元。”基本结构“具有以下特点:
.

1只有一个入口
.2只有一个出口
.3没有永远执行不到的语句;
.4没有死循环。
顺序结构,选择结构,循环结构是符合上述特点的基本结构。已经证明,由着三种基本结构所构成的程序可以处理任何复杂问题 。
4、程序开发应当采取”自顶而下“逐步细化和模块化的方法。即将一个大任务先分成若干个子任务,每个子任务就是一个模块。如果一个子任务还是太复杂,就再分解为若干字任务,如此逐层分解,逐步细化。


复合语句:
if语句:
if语句通常的形式是:
if(表达式)
语句;
if(表达式)
{
语句;
语句;
……
}



复合语句:
if语句,包括:保留字if、条件表达式和满足条件时要执行的语句在内,被看成是一条语句,即使它使用复合语句的形式,
仍然如此。


循环语句:
引入循环结构就可以简化程序中大量的重复操作。
在C语言中,循环结构是由while语句,do while语句和for语句来实现的。为了更方便的控制程序流程,C语言还提供了
两个循环辅助语句:break和continue.


while语句的工作过程是:
首先计算括号中的测试表达式,如果表达式的值为真,则执行循环体。循环体中的语句执行完后,返回while处,
重新计算测试表达式。如果测试表达式的值为真,则继续执行循环体;否则,退出测试表达式和循环体构成的循环结构,
执行下面的语句。一次循环,直至测试表达式的值为假,跳出while循环。

循环机构的术语:
循环条件:循环结构中的测试表达式。如:源程序中的while(i<=100)
循环体: 在每个循环周期均要执行一次的语句序列。如:源程序中的while语句下面用花括号括起来的符合语句。
循环控制变量:在循环条件中控制条件是真是假的变量。如:源程序中的变量i。
例:#include
main()
{
int i,sum;
i=1;
sum=0;
while(i<=100)
{
sum=sum=i;
i++;
}
ptintf("1+2+3+……+100=%d",sum);
}






要写出一个正确的循环结构,对控制变量要做三方面的工作:
1、控制变量赋初值;
2、把控制变量写入正确的循环条件;
3、控制变量的更新、调整。
例:求自然数1到n的各数的平方和。(假设n=5)
#include
main(void)
{
int i;
int s;

s=0;
i=1;
while(i<6)
{
s=s+i;
i++;
}
printf("1*1+2*2+...+5*5=%d",s);
}



do while语句
while语句表达的是“当满足条件的时候,一直做某事”。
do while语句表达的是“一直做某事,知道不满足条件为止”。
它的工作过程是:首先执行do下面的语句,开始了第一个循环周期。如果表达式为

真,则返回do语句处,继续执行循环体。
如果表达式为假,则退出do和while构成的循环圈,执行do while语句下面的语句。

不管开始的时候测试条件是真是假,do while循环体都要执行一次,因为循环体是先于测试条件执行的。这是do while
循环与while循环的主要区别。因此,do while循环常用在需要至少执行一次循环体的地方。
练习:
1、打印1到0的整数
2、计算10的阶乘10!


do while应用实例:
这是一个猜数游戏。程序借助do while结构,可以让你探索出隐藏在程序中的一个神秘数字。
#include
#define GOAL 39
void main()
{
int data;
int count;

count=0;
do
{
printf("请输入一个整数:");
scanf("%d",&data);
if(data>GOAL)
printf("%d太大了,请再试一试。\n",data);
else if(dataprintf("%d太小了,请再试一试。\n",data);
else
printf("你猜中了。\n");
count++;
}
while(data!=GOAL);
printf("你一共猜了%d次才猜对。",count);
}


相关文档
最新文档