C语言课程设计海底世界_第1页
C语言课程设计海底世界_第2页
C语言课程设计海底世界_第3页
C语言课程设计海底世界_第4页
C语言课程设计海底世界_第5页
已阅读5页,还剩34页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录 TOC o 1-3 h z u HYPERLINK l _Toc480235288第一部分 简单程序示例: PAGEREF _Toc480235288 h 3 HYPERLINK l _Toc480235289第二部分 整型数据 PAGEREF _Toc480235289 h 6 HYPERLINK l _Toc480235290(1)整型常量(整数) PAGEREF _Toc480235290 h 6 HYPERLINK l _Toc480235291(2)整型变量 PAGEREF _Toc480235291 h 7 HYPERLINK l _Toc480235292 二进制数计算:

2、PAGEREF _Toc480235292 h 8 HYPERLINK l _Toc480235293 十进制数(正常数)转换为二进制数: PAGEREF _Toc480235293 h 8 HYPERLINK l _Toc480235294第三部分 字符型数据 PAGEREF _Toc480235294 h 10 HYPERLINK l _Toc480235295(1)字符型常量:由一对单引号括起来的单个字符(可打印) PAGEREF _Toc480235295 h 10 HYPERLINK l _Toc480235296(2)转义字符:一个反斜杠()后跟限定字符(不可打印) PAGEREF

3、 _Toc480235296 h 10 HYPERLINK l _Toc480235297(3)字符型变量:通过保留字char说明 PAGEREF _Toc480235297 h 11 HYPERLINK l _Toc480235298(4) 字符串常量:用一对双引号括起来的零个或者多个字符的序列。 PAGEREF _Toc480235298 h 11 HYPERLINK l _Toc480235299ASCII码例子 PAGEREF _Toc480235299 h 12 HYPERLINK l _Toc480235300第四部分 实型数据(浮点型数据) PAGEREF _Toc4802353

4、00 h 13 HYPERLINK l _Toc480235301(1)实型常量 PAGEREF _Toc480235301 h 13 HYPERLINK l _Toc480235302(2)实型变量: 双精度(double) PAGEREF _Toc480235302 h 13 HYPERLINK l _Toc480235303第五部分 格式说明符与数据输入与输出 PAGEREF _Toc480235303 h 15 HYPERLINK l _Toc480235304 几个简单常用的格式说明符: PAGEREF _Toc480235304 h 15 HYPERLINK l _Toc48023

5、5305 数据的输入与输出函数: PAGEREF _Toc480235305 h 15 HYPERLINK l _Toc480235306 前格式说明符的扩展说明 PAGEREF _Toc480235306 h 18 HYPERLINK l _Toc480235307第六部分 几个简单的表达式讲解 PAGEREF _Toc480235307 h 20 HYPERLINK l _Toc480235308 算术表达式 PAGEREF _Toc480235308 h 20 HYPERLINK l _Toc480235309 赋值表达式 PAGEREF _Toc480235309 h 20 HYPER

6、LINK l _Toc480235310 复合赋值表达式 PAGEREF _Toc480235310 h 21 HYPERLINK l _Toc480235311 +和 PAGEREF _Toc480235311 h 21 HYPERLINK l _Toc480235312 逗号表达式 PAGEREF _Toc480235312 h 22 HYPERLINK l _Toc480235313 条件表达式 PAGEREF _Toc480235313 h 23 HYPERLINK l _Toc480235314第七部分 关系运算与逻辑运算 PAGEREF _Toc480235314 h 24 HYP

7、ERLINK l _Toc480235315几个简单的关系运算符 PAGEREF _Toc480235315 h 24 HYPERLINK l _Toc480235316几个简单的逻辑运算符 PAGEREF _Toc480235316 h 24 HYPERLINK l _Toc480235317第八部分 if语句(条件语句) PAGEREF _Toc480235317 h 25 HYPERLINK l _Toc480235318格式: PAGEREF _Toc480235318 h 25 HYPERLINK l _Toc480235319格式: PAGEREF _Toc480235319 h

8、26 HYPERLINK l _Toc480235320if的嵌套1 PAGEREF _Toc480235320 h 27 HYPERLINK l _Toc480235321if的嵌套2 PAGEREF _Toc480235321 h 27 HYPERLINK l _Toc480235322第九部分 switch语句(开关语句) PAGEREF _Toc480235322 h 28 HYPERLINK l _Toc480235323第十部分 break与continue的作用 PAGEREF _Toc480235323 h 30 HYPERLINK l _Toc480235324 break语

9、句,用于跳出当前循环语句或开关语句 PAGEREF _Toc480235324 h 30 HYPERLINK l _Toc480235325 continue语句 PAGEREF _Toc480235325 h 31 HYPERLINK l _Toc480235326第十一部分 循环结构 PAGEREF _Toc480235326 h 32 HYPERLINK l _Toc480235327 while语句 PAGEREF _Toc480235327 h 32 HYPERLINK l _Toc480235328 do-while语句 PAGEREF _Toc480235328 h 33 HYP

10、ERLINK l _Toc480235329 for语句 PAGEREF _Toc480235329 h 34 HYPERLINK l _Toc480235330 for语句嵌套 PAGEREF _Toc480235330 h 35 HYPERLINK l _Toc480235331C语言基本构成 PAGEREF _Toc480235331 h 37 HYPERLINK l _Toc480235332标识符 PAGEREF _Toc480235332 h 37 HYPERLINK l _Toc480235333关键字(又叫保留字)(共32个) PAGEREF _Toc480235333 h 3

11、7 HYPERLINK l _Toc480235334 特定字(用于预处理程序中) PAGEREF _Toc480235334 h 39 HYPERLINK l _Toc480235335 字符集 PAGEREF _Toc480235335 h 39 HYPERLINK l _Toc480235336 运算符 PAGEREF _Toc480235336 h 40 HYPERLINK l _Toc480235337ASCII码表 PAGEREF _Toc480235337 h 44 HYPERLINK l _Toc480235338ASCII码 表二 PAGEREF _Toc480235338

12、h 51第一部分 简单程序示例:程序代码:#includeint main(void) /打印文字printf(This is a C programming.n);return 0;程序结果如图: 程序分析:#include是在程序编译之前要处理的内容,称为编译预处理命令;#include叫做预编译指令。C 语言在真正处理程序的语义之前,先做一遍预编译,包括去掉注释和处理预编译指令。编译预处理命令还有很多,它们都以“#”开头,并且不用分号结尾,所以不是c语言的程序语句。stdio.h是C编译系统提供的一个文件名,stdio是“standard input & output”的缩写,即有关标准

13、输入输出的信息。在使用标准函数库中的输入输出函数时,编译系统要求程序提供有关的信息(例如对这些输入输出函数的声明),#include的作用就是用来提供这些信息的int main(void)main是C语言程序中主函数的名称。每一个C语言程序都必须有一个main函数,且main函数是程序执行的起点,程序都是先从main函数执行。int是integer的缩写,代表函数的类型为整型。执行此函数后会产生一个整数的函数值。void :此例中声明函数无返回值每一个函数都要有函数名,也要有函数体(即函数的实体)。函数体由一对大括号括起来。printf(This is a C programming.n);p

14、rintf函数是C编译系统提供的标准函数库中的输出函数,C语言本身没有输入和输出语句。本程序实际上只有第四行printf语句是用户来实现功能的。printf语句中圆括号内双撇号内的字符串原样输出。n是换行符,代表跳到下一行。每个语句后面都必须带有一个分号(; )return 0;把0作为函数的返回值。int main()和return 0;main函数是由操作系统调用的,函数值提供给操作系统,用来判断main函数是否正常结果。如果程序没有正常结束就不会执行return语句,不返回0,系统就会使main函数的值为一个非0值(一般是1)。操作系统就可以知道程序没有正常结束,并采取相应的措施(如输出

15、一个信息)。/表示程序的注释部分,注释可用英文或汉字,注释是给人看,告诉看的人某部分或整个C程序的作用,对程序的编译和运行并不起作用,注释符内容不被执行。第二部分 整型数据(1)整型常量(整数)如:123、123L、123LU十进制整数:一串连续数字表示,最高位非0.范围(32767,-32768)32767:16为整常数最大的整数。-32768:16位有符号整数中最小的数。 八进制整数:以数字零开头,0-7组成的数如:010、011、016错误例子:018(八进制中,不允许出现8)0(0不分进制) 十六进制数:以数字0和字母x开头,a-f不区分大小写。如:0 xde、0 xf错误例子:ox1

16、0(注意0与o不同) 进制转换例1:八进制转换为十进制 010(八进制) 82+81+80*08十进制 =8例2:十六进制转换为十进制0 xde(十六进制) d为13,e为14222(十进制)13*16+14=222所有变量都必须在使用前加以定义或者说明。 有符号(2)整型变量 无符号有符号型整数 标准整型(int)(其值可正可负)短整型(short)长整型(long)无符号整型 标准整型(unsigned int)(其值不可为负) 短整型(unsigned short)长整型(unsigned long)int、short、long三者的区别在于他们表示的整数范围不同,通常以一个机器字来存放

17、一个int型数据,三者满足shortintlong示例:进制数计算与转换详细讲解 二进制数计算:加法 0+0=0,0+1=1+0=1,1+1=10 减法 00=0,10=1,11=0,01=-1,10100-1010=1010 乘法 00=0,01=10=0,11=1 除法 01=0,11=1 十进制数(正常数)转换为二进制数:从下往上看如十进制10转换为二进制1010102=5010101052=2122=1012=01因为是转换为二进制所以除2,如果转换为八进制则除8,其他以此类推 二进制转换为十进制如二进制1010转换为十进制10 1 0 1 0 23 + 22 + 21 + 20=8+

18、0+2+0=10第三部分 字符型数据(1)字符型常量:由一对单引号括起来的单个字符(可打印)如:A x a s #(2)转义字符:一个反斜杠()后跟限定字符(不可打印)注意区分斜杠:/ 与 反斜杠:。转义字符实际上作为一个字符来对待,当反斜杠后面的字符与它不构成转义字符,反斜杠不起作用。(例子如下)举例:printf(“ANbcNdefn”);输出结果如图:(3)字符型变量:通过保留字char说明格式:char c1,c2;每个字符型变量可用来存放一个字符。(4) 字符串常量:用一对双引号括起来的零个或者多个字符的序列。如:”I am a student“或者”x”或者”双引号只充当字符串的分

19、界符,而不是字符串的一部分,所以它并不输出。如果在字符串里面要输出双引号,则需要用转义字符。例:printf(The 042a042 is an idenf art);输出结果如图:字符串中所含字符个数称字符串的长度。如:”XYZ”长度为3。“”长度为0,称为空串。字符串所占的空间=字符串的长度+1增加的那个字节,用来存放字符串0,作为字符串的结尾标识。转义序列也可以出现在字符串中-只当作一个字符看待。如:“I am an student”“x”在电脑中占两个字节,电脑中它为”x0“ASCII码例子例:输出大写字母A和它对应的ASCII码值#includeint main(void)char

20、ch = A;printf(The alphabet is %c,It is ASCII is %dn, ch,ch);return 0;程序结果:第四部分 实型数据(浮点型数据)(1)实型常量非指数型(小数形式):如:+123. +123.45 -123.45等指数型如:.12345e2 12345.0e-3(e/E之前必须要有数字,之后指数必须为整数,且不能有空格) 单精度(float)(2)实型变量: 双精度(double) 长双精度(long double)数据类型有效数字数值范围单精度(float)6-7位(10-38,1038)双精度(double)15-16位(10-308,10

21、308)长双精度(long double)18-19位(10-4932,10-4932)一般在C语言的编译系统里面,一般它都会自动的把程序中的实常量变成双精度型,以达到更准确的目的。第五部分 基础类型强制类型转换强制类型转换语句格式:(类型名) (表达式)例:#includeint main(void)double a = 23.5654;a=(int) (a);printf(%f,a);return 0;结果为23.000000程序分析: 本例中因为只有一个a转换,所以可以去掉a的括号,写成a=(int) a;第五部分 格式说明符与数据输入与输出 几个简单常用的格式说明符:%d:十进制有符号

22、整数虽然float也可以使用%lf,dan但并没有任何好处。如果double用%f还可能出现错误,所以一般建议按照规范来%f: 单精度浮点数%lf:双精度浮点型%c:输出一个字符%e:以指数形式输出%s:输出一个字符串 数据的输入与输出函数:用于用户输入数据函数:scanf、getchar用于输出的函数:printf、putchar例1: #includeint main(void)int a;float b;char c;scanf(%d%f%d,&a,&b,&c);printf(a=%d,b=%f,c=%c,a,b,c);return 0;程序结果如图:程序分析:scanf函数的用法sca

23、nf用来让用户自己输入自己想要的数据给变量。scanf函数的双引号里输入数据对应的格式说明符%d%f%d双引号后加&a,&b,&c,代表取址(记住要加&和变量的名字就行,不用管取址是什么意思。)printf函数的用法printf语句中圆括号内双撇号内的字符串原样输出。(a=%d,b=%f,c=%c双引号里面的内容原样输出,格式说明符%d输出对应的数据)双撇号后面的这几个字母a,b,c,代表前面的格式说明符对应的数据,第一个%d对于a的值,第二个%f对于b的值,第三个%c对于c的值(按照规定好的相应的格式输出)对于第三个数据,定义的时候是定义char c;输入的时候用格式说明符%d,是根据ASC

24、II码表来表示对应的字符。输入字符型数据的ASCII值102。然后在printf函数中则用%c,输出自己想要的字符f。例2:打印出自己输入的字符(版本1)#includeint main()char ch;scanf(%c,&ch);printf(%c,ch);return 0;与例1不同,此例直接用%c输入,而不用%d。在此例中(例2)输入f,则结果显示为f而例1中,要打印出f,第三个数据得输入f对应的ASCII码值102,结果c才会是f例3:打印出自己输入的字符(版本2)#includeint main(void)char ch;ch=getchar();putchar(ch);retur

25、n 0;程序结果如图: 程序分析:ch=getchar();把你输入的字符给ch。putchar(ch);输出ch里面的字符,就算你刚刚输入的那个。getchar和putchar只能用于字符型数据 前格式说明符的扩展说明md :左对齐,若m比实际少时,按实际输出。%ld:输出长整型数据。%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。%-ms:如果串长小于m,则在m列范围内,字符串向左靠,

26、右补空格。%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果nm,则自动取n值,即保证n个字符正常输出。第六部分 几个简单的表达式讲解 算术表达式如:15%8=7 0%5=0双目运算符:操作对象有两个。常用+(加)、-(减)、*(乘)、/(除)、%(取余)注意%只能操作整形。其他变量整型、实型皆可。常用运算符单目运算符:操作对象只有一个。常用+(正)、-(负

27、)注意:若双目运算符两边的类型不一致,系统将自动进行类型转换后再进行运算。优先级:()+(正)-(负) * / % +(加)-(减) 赋值表达式格式:变量名=表达式(两边不可颠倒)例:a=b+7;把b+7的结果/值给a先求右边表达式的值,再把算出来的值给左边。注意:“=”为赋值号,而不是等号 复合赋值表达式例:a=9;a+=a-=a+a;计算过程:a+a=18a-(a+a)=-9a=a+a=-18结果为-18 +和+和都是单目运算符,操作对象只有1个。i+代表i=i+1,自身加1。当+在前,先自身+1,再干别人的事。当+在后,先干别人的事,再自身+1。例1:#includeint main(v

28、oid)int i = 3;printf(%d, +i);return 0;结果为4程序分析:本例中+在前,所以先自身+1,再输出。若改为+在后则先输出3,再自身+1。 逗号表达式 格式:表达式1,表达式2,表达式N 运算顺序:从左到右运算,最终结果取决于最后一个表达式的值。 逗号运算符优先级最低。例1:#includeint main(void)int i = 5,a;a = (i + 8, 7, i + 7);printf(%d, a);return 0;最终结果为12。程序分析a:I值不变,变的是a。a的值取决于最后一个i+7。 条件表达式 格式:表达式1 ?表达式2 :表达式3 C语言

29、中唯一一个三目运算符。(3个操作对象) 求解:当1成立(非0)时,表达式的值就是表达式2的值,否则就是表达式3的值例:12 ?4 :5 因为12是真,所以条件表达式的值为4。第七部分 关系运算与逻辑运算C语言中0代表加,非0代表真。几个简单的关系运算符 = = !=优先级:前四个后两个=这种两个字符组成的中间不可有空格都是双目运算符。几个简单的逻辑运算符 &(与) 一假则假 |(或) 一真则真 ! (非) 非假则真,非真则假第八部分 if语句(条件语句)分类:不含else语句 含else语句注意:if控制离它最近的语句,若需要复合语句,需将语句用括起来。if小括号后面没有分号格式: if(条件

30、表达式) 语句1; else 语句2;例1:#includeint main(void)int a;printf(Please input you score:);scanf_s(%d, &a);if (a 60)printf(You have passn);elseprintf(You have not passn);return 0; 程序分析:如果if里面的条件a60成立,执行离他最近的一条语句。如果不成立,则执行else的语句。格式: if(条件表达式) 语句1;例2:#includeint main(void)int a;printf(Please input you score:)

31、;scanf_s(%d, &a);if (a 60)printf(You have passn);return 0;程序分析:如果if里面的条件a60成立,执行离他最近的一条语句。如果不成立,此程序结束,不执行任何操作,不输出任何语句。if的嵌套1if里面含有if例:if(a60) if(a90)printf(“A”);elseprintf(“B”); elseprintf(“C”);if的嵌套2格式:If()Else if()Else if()Else if()(else)例:if(a=90) printf(“a”);elseif(a=80) printf(“b”);elseif(a=70)

32、 printf(“c”);else printf(“e”)第九部分 switch语句(开关语句)格式:switch(表达式)case 常量表达式1:语句1;case 常量表达式2:语句2;case 常量表达式3:语句3;case 常量表达式N:语句N;注意:常量表达式的值=表达式值Switch语句括号里的须为整型例:#includeint main(void)int A;scanf_s(%d, &A);switch (A / 10)case 10: printf(A);case 9:printf(B);case 8:printf(C);case 7:printf(D);default:代表除以

33、上的几种情况,其他情况皆输出default语句的结果。default:printf(E);return 0;结果: 程序问题:输入80时,如何只让结果输出C。第十部分 break与continue的作用 break语句,用于跳出当前循环语句或开关语句上例程序改进:#includeint main(void)int A;scanf_s(%d, &A);switch (A / 10)case 10: printf(A); break;case 9:printf(B); break;case 8:printf(C); break;case 7:printf(D); break;default:pri

34、ntf(E); break;return 0;加上break后,输入80,输出C后,则会跳出switch循环,不会输出DE continue语句跳过continue下面的语句,返回循环开始的地方进行下一次循环例:#includeint main(void)int k = 1, s = 0;for (; k 5)printf(s=%dn, s);continue;printf(%dn, s);return 0;程序结果:第十一部分 循环结构 while语句格式:while(表达式)循环体while控制和它距离最近的语句理解:如果表达式成立(值非0),则执行循环体。如果不成立,循环结束例:计算1+

35、100的值#includeint main(void)int i = 1, sum = 0;while (i 101)sum += i;i+;printf(sum is %dn, sum);return 0;程序结果: do-while语句格式:do循环体while(表达式);理解:先执行都下面的循环体,得出结果,再进行判断。如果表达式成立,循环继续。如果不成立,循环结束。计算1+100的值#includeint main(void)int i = 1, sum = 0;dosum += i;i+; while (i 101);printf(sum is %dn, sum);return 0;

36、程序结果: for语句格式:for(表达式1;表达式2;表达式)循环体;表达式1:变量的初值。表达式2:判断真假。表达式3:控制变量。例:计算1+100的值#includeint main(void)int i, sum=0;for (i = 0; i = 100; i+)sum += i;printf(sum is %dn, sum);return 0;程序结果:注意:如果表达式为空,须输入分号,代表为空语句如:for(;k=10 ; )注意:如果表达式1或2或3不止有一条语句,而是两条、三条及更多,需用逗号隔开。例:#includeint main(void)int i, k;for (i

37、 = 0, k = 1; i 10, k5; i+, k+)printf(*);return 0;程序结果: for语句嵌套格式:for(表达式1;表达式2;表达式) for(表达式1;表达式2;表达式)循环体;例:让程序输出乘法口角表#includeint main(void)int i, j;for (i = 1; i 10; i+)for (j = 1; j 指向结构体成员运算符 .结构体成员运算符2 !逻辑非运算符 1 (单目运算符) 自右至左 按位取反运算符 + 自增运算符 -自减运算符 -负号运算符 (类型) 类型转换运算符 *指针运算符 &取地址运算符 sizeof长度运算符3

38、*乘法运算符 2(双目运算符) 自左至右 /除法运算符 %求余运算符4 +加法运算符 2(双目运算符) 自左至右 -减法运算符5 右移运算符6 =关系运算符 2(双目运算符) 自左至右7 =等于运算符 2(双目运算符) 自左至右 !=不等于运算符8 &按位与运算符 2(双目运算符) 自左至右9 按位异或运算符 2(双目运算符) 自左至右10 |按位或运算符 2(双目运算符) 自左至右11 &逻辑与运算符 2(双目运算符) 自左至右12 |逻辑或运算符 2(双目运算符) 自左至右13 ? : 条件运算符3(三目运算符)自右至左14 = += -= *= /= %= = = &= = |=赋值运算

39、符 2(双目运算符)自右至左15 ,逗号运算符(顺序求值运算符) 自左至右各类运算符的优先级:初等运算符、单目运算符、算术运算符 (先乘除后加减)、关系运算符、逻辑运算符(不包括!)、条件运算符、赋值运算符、逗号运算符。 C语言中的9种控制语句goto语句:无条件转向; if语句:判断语句; while循环语句; do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环; for语句:循环,可替代while语句,只是用法不同; break语句:跳出本层的循环(只跳出包含此语句的循环); continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句。例:for语句,就直

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论