c语言教程:~C语言教程~

介绍一下C的结构特点
1.一个C语言源程序可以由一个或多个源文件组成。
2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。main(){printf("c语言世界http://26.lxyes.cn,您好!\n");}
7,main是主函数的函数名,表示这是一个主函数。每一个C源程序都必须有,且只能有一个主函数(main函数)。函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。printf函数是一个由系统定义的标准函数,可在程序中直接调用。#include "stdio.h"#include "math.h"main(){double x,s;printf("input number:\n");scanf("lf",&x);s=sin(x);printf("sine of lf is lf\n",x,s);}(下面是每一行的注释)include称为文件包含命令扩展名为.h的文件也称为头文件或首部文件定义两个实数变量,以被后面程序使用显示提示信息从键盘获得一个实数x求x的正弦,并把它赋给变量s显示程序运算结果main函数结束程序的功能是从键盘输入一个数,然后求这个数的正弦值,然后输出结果。在main()之前的两行呢就称为预处理命令(以后会讲到,,呵呵,预处理命令还包括几种在这就先不做介绍)。这里的include(是包含的意思) 称为文件包含命令,其意义是把<>或引号""内指定的文件包含到这个程序来,成为这个程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h。因此也称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型(以后会把一些基本函数名发上来,,呵呵,,总怕会写错))。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。在上面那个例子中,使用了三个库函数:输入函数scanf,正弦函数sin,输出函数printf。sin函数是数学函数,其头文件为math.h文件,因此在程序的主函数前用include命令包含了math.h。scanf和printf是标准输入输出函数,其头文件为stdio.h,在主函数前也用include命令包含了stdio.h文件。C语言规定对scanf和printf这两个函数可以省去对其头文件的包含命令。所以在本例中也可以删去第二行的包含命令#include。字符集字符是组成c语言的最基本的元素(这表达貌似不专业)。
8,C语言字符集由1、字母(a~z,A~Z) 2、数字(0至9),3、空白符(空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用, 编译程序对它们忽略。因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性),4、标点和特殊字符(标点和特殊字符C语言词汇在C语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,常量,注释符等。。除库函数的函数名由系统定义外,其余都由用户自定义。
C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线)组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。。
9,下面介绍一些简单的程序:若我们想输出结果为5,6那我们程序应该这样写int a=5,b=6;char str=’c’;printf(“d,d”,a,b,str);在格式输出时一般要求格式说明符与输出项相一致若输出结果为-8,int i=8;printf(“d”,-i++);下面告诉大家怎样随机产生数。(这次内容是我在网上看到,觉得很好,就发来给大家分享分享^_^¥问:怎样产生随机数?答: 在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器。有关如何产生随机数的理论有许多,如果要详细地讨论,需要厚厚的一本书的篇幅。不管用什么方法实现随机数发生器,都必须给它提供一个名为“种子”的初始值。而且这个值最好是随机的,或者至少这个值是伪随机的。“种子”的值通常是用快速计数寄存器或移位寄存器来生成的。下面讲一讲在C语言里所提供的随机数发生器的用法。现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)3) 根据需要多次调用rand(),从而不间断地得到新的随机数;4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。这个过程看起来很简单,问题是如果你每次调用srand()时都提供相同的种子值,那么,你将会得到相同的随机数序列,这时看到的现象是没有随机数,而每一次的数都是一样的了。例如,在以17为种子值调用srand()之后,在首次调用rand()时,得到随机数94。在第二次和第三次调用rand()时将分别得到26602和30017,这些数看上去是很随机的(尽管这只是一个很小的数据点****),但是,在你再次以17为种子值调用srand()后,在对于rand()的前三次调用中,所得的返回值仍然是在对94,26602,30017,并且此后得到的返回值仍然是在对rand()的第一批调用中所得到的其余的返回值。因此只有再次给srand()提供一个随机的种子值,才能再次得到一个随机数。下面的例子用一种简单而有效的方法来产生一个相当随机的“种子”值----当天的时间值:#include<sio.h>#include<slib.h>#include<sys/types.h>#include<sys/timeb.h>void main(void){int i;unsigned int seedVal;suct timeb timeBuf;ftime(&timeBuf);seedVal=((((unsigned int)timeBuf.time&0xFFFF)(unsigned int)timeBuf.millitm)^(unsigned int)timeBuf.millitm);srand((unsigned int)seedVal);for(i=0;i<10; i)printf("mn",rand());}上面的程序先是调用_ftime()来检查当前时间,并把它的值存入结构成员timeBuf.time中,当前时间的值从1970年1月1日开始以秒计算。在调用了_ftime()之后,在结构timeBuf的成员millitm中还存入了当前那一秒已经度过的毫秒数,但在DOS中这个数字实际上是以百分之一秒来计算的。然后,把毫秒数和秒数相加,再和毫秒数进行异或运算。当然也可以对这两个结构成员进行更多的计算,以控制seedVal的取值范围,并进一步加强它的随机性,但上例用的逻辑运算就已经足够了。注意上例中rand()的输出并没有被限制在一个指定的范围,假定要建立一个彩票选号器,其取值范围是从1到44。可以简单地忽略掉rand()所输出的在该范围外的值,但这将花费许多时间去得到所需的全部(例如6个)彩票号码。假如你已经建立了一个随机数发生器,它所产生的随机数范围是从0到32767,而你想把输出限制在1到44之间。下面的例子就说明了如何来完成这项工作:int i,k range;int min,max;double j;min=1;max=44;range=max-min;i=rand();j=((oduble)i/(double)RAND_MAX);i=(int)(j*(double)range);i =min;这个例子把输出的随机数限制在1到44之间,其工作原理如下:1)得到一个在0到RAND_MAX(32767)之间的随机数,把它除以RAND_MAX,从而产生一个在0到1之间的校正值;2)把校正值乘以所需要的范围值(在本例中为43,即44-1)从而产生一个在0到43之间的值3) 把该值和所要求的最小值相加,从而使该值最终落在正确的取值范围----1到44之间。你可以用不同的min和max值来验证这个例子,你会发现它总是会正确地产生在新的min和max值之间的随机数。
提示: 本文来№→Q第~⑤~维Q←※ QQ:872393869[ffg,#FF0000,#FFFFFF]作者辛苦编写.转载请保留此信息[/f
Tags:  c语言入门教程 c语言视频教程 c语言教程

延伸阅读

最新评论

发表评论