专接本计算机C语言总复习(课堂).ppt

上传人:hyn****60 文档编号:70679790 上传时间:2023-01-24 格式:PPT 页数:183 大小:697KB
返回 下载 相关 举报
专接本计算机C语言总复习(课堂).ppt_第1页
第1页 / 共183页
专接本计算机C语言总复习(课堂).ppt_第2页
第2页 / 共183页
点击查看更多>>
资源描述

《专接本计算机C语言总复习(课堂).ppt》由会员分享,可在线阅读,更多相关《专接本计算机C语言总复习(课堂).ppt(183页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言总复习一、一、C语言的数据表示语言的数据表示1.1常量常量和和变量变量1.2表达式表达式1.3数据类型数据类型简单类型、结构类型、指针类型1.4输入、输出输入、输出1.1常量和变量常量和变量1.常量常量常量是在程序执行中,值不发生改变的数据。其值预先决定,之后不变。有不同的数据类型。(1)常数例如的:整数:+5、3、017(八进制)、0 x1f(16进制)实数(浮点数):3.14、1.2E3、1E10单个字符:A,占一个字节,转义字符非法77(八进制ASCII码63,?),78非法x3f(十六进制ASCII码63,?)x3g非法字符串:“A”后面有0,占两个字节在程序中inta=0 x6

2、d,是把一个十六进制的数赋给变量a注意这里的0 x必须存在。在程序中inta=06d,是一个八进制的形式。在转义字符中,x6d才是合法的,0不能写,并且x是小写。141是合法的,0是不能写的。108是非法的,因为不可以出现8。,转义字符非法”77(八进制ASCII码63,?),78非法x3f(十六进制ASCII码63,?)x3g非法转义字符占1个字节。(2)符号常量给常量起标识符名字。C语言的符号常量(用宏定义):#definePI3.14159265好处:提高程序易读性;方便修改常量的值;注意:1.一般用大写字母。2,#defineM3不是C语句,后面没有“;”。3.可以做M+1,不能做M+

3、.(3)地址常量当数组在定义时,其变量名为其首地址,是地址常量。inta10;可以做a+1,不能做a+.1.1常量和变量常量和变量2变量变量用各种操作来改变值数据。从“名名”和“值值”两个角度认识变量(1)变量名每个变量,要在使用前定义变量的名字,遵循标识符命名规则。只能用字母、数字和下划线组成。不能以数字开头。不能用保留字(int,main.)。关键字不可以作为用户标识符号。maindefinescanfprintf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。变量定义就是申请数据的存储空间,登记数据的各种存储特性。例如:intm;2个字节

4、2152151(3276832767)longn;4个字节2312311charch;1个字节0255floatx;4个字节3.4(10-381038)doubley;8个字节1.7(10-30810308)可以用sizeof获得字长sizeof(char)=1sizeof(int)=2sizeof(double)=8(2)变量的值)变量的值变量值就是由变量名所指定空间上的存储数据内容。即变量的当前值。数据内容用语言的操作语句来改变。赋值语句;键盘输入语句;charchx;intm;/*变量的定义*/chx=A;m=12*3;/*赋值语句*/scanf(“%d”,&m);/*键盘输入语句*/在

5、程序运行时,将数据存入制定内存空间。变量初始化:变量初始化:定义变量时同时确定变量初值。例如:charchy=a;intweight=2;1.2C语言的语言的表达式表达式1 1、算术表达式、算术表达式2 2、关系表达式、关系表达式3 3、逻辑表达式、逻辑表达式4 4、赋值表达式、赋值表达式5 5、逗号表达式、逗号表达式6 6、条件表达式、条件表达式7 7、其他表达式、其他表达式C语言的语言的表达式表达式:使用规定的运算符运算符,将常量、变量、函数(调用)连结的一个有意义的式子。1、算术表达式、算术表达式用算术运算符来表示对数据的算术运算求值过程。算术运算符:+*/%2/3结果是0,2%3结果是

6、2,2.0%3错注意不同类型运算问题:doublelongunsignedintfloatcharshort高低强制类型转换:强制类型转换:一定是一定是(int)a不是不是int(a),注意类),注意类型上一定有括号的。型上一定有括号的。注意(注意(int)()(a+b)和(和(int)a+b的区别。的区别。前是把前是把a+b转型,后是转型,后是把把a转型再加转型再加b。2 2、关系表达式、关系表达式关系运算符:=0,sin(x)=0.5,(a+b)=(c*d)注意语法合理与数学逻辑错误问题:分析:10=a=15a=910=a=1510=a假00=15真所以要写成10=a&a=15a=bc等价

7、于a=(bc)3、逻辑表达式用逻辑表达式来表示对数据的逻辑关系判断,运算结果是逻辑值“真”1或者“假”0。C逻辑运算符包括:!&|参加逻辑运算的数据必须是逻辑量,可以是逻辑类型的变量、常量,关系表达式或逻辑表达式。C语言中,没有专门的逻辑量,语言中,没有专门的逻辑量,1是真值,是真值,0是是假值。也认为假值。也认为非零非零的值为真值。的值为真值。如:inta=3,b=4,c=-5;(1)!(ab)&!c|1)(2)if(a)printf(“nyes”);a,c均按非0(即真)处理逻辑运算规律在&(与)表达式中,若&的左端为假,则不再计算另一端,该表达式值肯定为0(假)。在|(或)表达式中,若|

8、的左端为真,则不再计算另一端,表达式的值必定为1(真)。nint a=5,b=1nk=a0nk?b?假,后面不算了k=0,b=1判断闰年的条件是:能被4整除但不能被100整除,或能被400整除。(x4=0&x100!=0|x%400=0)水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身(k*100+m*10+n=k*k*k+m*m*m+n*n*n)三角形的基本条件(a+b)c)&(c+b)a)&(c+a)b)4、赋值表达式=,+=,=,*=,/=,+(单目),(单目)级别仅高于逗号表达式,右结合变量变量=表达式表达式inta=3,c=2,ba=b=c;n*=m+2相当于n=n*(m+

9、2)k=i+;先k=i,再i=i+1k=+i;先i=i+1,再k=ic赋值给b,b=2b赋值给a,a=25、条件表达式e1?e2:e3若e1为真,表达式的值为e2,否则为e3.(a=b+)?a:b+51=4Ta=4aa=3表达式的值为3a=5,b=441=5Fb=6b+b=7表达式的值为6a=4,b=5条件表达式的值的类型为e2,e3二者中类型较高者。如果y=5;y3?1.0:2其值为2.06、逗号表达式表达式的值等于最后一个表达式的值,运算等级最低!a=5,b=2,c=3a=7+b+c,a+a=(7+b+c,a+)a=12a=57、强制类型转换表达式(单目)intm;sqrt(float)m

10、);并没有改变m的类型和数值三种取整丢小数的情况:、inta=1.6;、(int)a;、函数返回值位运算总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。例1:chara=6,b;b=ax+y&38%5=y的的值值在容易出错或不确定的地方按照自己的本意给表达式加括号在容易出错或不确定的地方按照自己的本意给表达式加括号38+5x+y&38%5=y4330表达式表达式的求值过程的求值过程301运算符的优先级和结合性运算符的优先级和结合性01.3数据类型数据类型数据类型:数据类型:在高级语言的数据表示机制中,数据类型(datatyPe)是个核心概念。简单类

11、型简单类型构造类型构造类型指针类型指针类型整型整型实型实型字符型字符型数组数组结构体结构体共用体共用体数值型数值型枚举型枚举型空类型空类型1.3数据类型数据类型(1 1)整型)整型(输入、输出格式输入、输出格式 “%d%d”)类型名 字节数 数值范围int2-3276832767 shortshort 2 3276832767 long long 4 -21474836482147483647还有无符号整型(输入、输出格式输入、输出格式 “%u%u”)Unsigned int 2065535Unsigned short 2065535 Unsigned long 4042949672951.简

12、单类型简单类型(2)实型实型(输入、输出格式输入、输出格式 “%f%f”)实型(float)数据的值集是实数集的一个有限子集.3.4e38,3.4e39,3.4E38,3.4E381.简单类型简单类型类型名类型名 字节数字节数 输入、输出格式输入、输出格式 有效数字位有效数字位float4%f%f 7doubule8%lf%lf16longdoubule16%lf%lf19不要以为是长整型E38非法n(3)字符型字符型(输入、输出格式输入、输出格式“%c”)n ASCII码,一个字符占1字节;nchar ca;ca=#;n注意转义字符 的使用。(4)字符串字符串(输入、输出格式输入、输出格式

13、“%s%s”)所谓“字符串字符串”是指若干有效字符的序列。语言字符串可以包括字母、数字、专用字符、转义字符等。字符串常量:使用双引号使用双引号ChinaBASICa+b=cLiLi39.4%dn解放军“字符型的一维数组(相当于字符串变量)charst8,str10;strcpy(st,12345);strcpy(str,st);不能st=“12345”;str=st;2.结构类型“结构”一般可以称为数据元素数据元素,在不同的结构类型中,数据元素会有特定的名称。结构类型的数据由更加基本的成分组成。这些成分称为“数据项”,结构的子成员子成员。1.3数据类型数据类型(1)数组A0A1A2A3A4A5

14、A6A71020304050607080一个数组(array)是由相同类型的若干数组元素构成的有限序列。C语言的数定义:intB8,A8;charC10;2.结构类型例日期类型的定义(2)结构体C语言中实现:structDateintmonth;/*月*/intday;/*日*/intyear;/*年*/;structDatemyd=12,16,1978;系统分配给它的内存是各成员所需内存量的总和。本例是6.(1)指针:)指针:变量名在内存中的存储地址。(2)指针变量)指针变量inti=12,*p;P=&i;把存放变量i的地址的变量p称作指针变量。指针变量的存放内容是数据的地址。3.指针类型(

15、3)指针引用变量)指针引用变量指针变量可以指向各种不同的数据类型,因此指针变量也要有不同的指针类型。如:intm,*p;floatx,*q;inta,*rm=12;p=&m;x=3.14;q=&x;r=a;注意:是否用&1.4输入、输出输入、输出输出:printf(“.”,.)%d,%6d,%ld%c,%s%f,%10.2f,%lf,%20.8lfn=3;printf(“n%d,%d,%d”,n,+n,n+);计算从右到左,输出从左到右。%s是输出以指定首地址到第一个0或空格之间的字符串。chara=“abcdefg”,*p=a;printf(“%s”,*+p);bcd5,5,31.4输入、输

16、出输入、输出输入:scanf(“.”,.)%d,%ld对应intlong%c,%s对应charcharstr%f,%lf对应flaotdoubleScanf(“%d%d%*d%d”,&a,&b,&c);跳过输入的第三个数据。常见错误inta,b;chard,e20;scanf(%d,%fn”,&a,&b);scanf(%d,%f”,a,b);scanf(%7.2f,&a);scanf(%s,&e);scanf(%c,d);格式控制符格式控制符对输对输入的要求入的要求举举例例%d输输入一个十入一个十进进制整数制整数inta;scanf(%d,&a);%x输输入一个十六入一个十六进进制整数制整数i

17、nta;scanf(%x,&a);%o输输入一个八入一个八进进制整数制整数inta;scanf(%o,&a);%u输输入一个十入一个十进进制无符号整数制无符号整数unsignedinta;scanf(%u,&a);%c输输入一个字符入一个字符charch;scanf(%c,&ch);%s输输入一个字符串入一个字符串char*str;scanf(%s,str);%f以小数形式以小数形式输输入一个入一个单单精度精度实实数数floatx;scanf(%f,&x);%e以指数形式以指数形式输输入一个入一个单单精度精度实实数数floatx;scanf(%e,&x);%lf以小数形式以小数形式输输入一个双

18、精度入一个双精度实实数数doublex;scanf(%lf,&x);%le以指数形式以指数形式输输入一个双精度入一个双精度实实数数doublex;scanf(%le,&x);格式化格式化输输入函数入函数scanf输入输入/输出输出输输出出数据数据格式格式控制符控制符输输出格式出格式整数整数%d以十以十进进制形式制形式输输出一个整数出一个整数(正数不(正数不输输出符号)出符号)inta=5;printf(%d,a);%mdinta=5;printf(%3d,a);%-mdinta=5;printf(%-3d,a);%ld以十以十进进制形式制形式输输出一个出一个长长整数整数longa=5;prin

19、tf(%ld,a);%o以八以八进进制形式制形式输输出一个整数出一个整数inta=5;printf(%o,a);%x以十六以十六进进制形式制形式输输出一个整数出一个整数inta=5;printf(%x,a);无符号无符号整数整数%u以十以十进进制形式制形式输输出出一个无符号整数一个无符号整数unsigneda=5;printf(%u,a);%muunsigneda=5;printf(%5u,a);%-muunsigneda=5;printf(%-5u,a);实实数数%f以小数形式以小数形式输输出一个出一个实实数数doublex=3.5;printf(%f,x);%m,nfdoublex=3.5

20、;printf(%5,2f,x);%-m,nfdoublex=3.5;printf(%-5,2f,x);%e以指数形式以指数形式输输出一个出一个实实数数doublex=3.5;printf(%e,x);输入输入/输出输出字符字符%c输输出字符出字符charch=a;printf(%c,ch);%mccharch=a;printf(%3c,ch);%-mccharch=a;printf(%-3c,ch);字符串字符串%s输输出字符串出字符串char*str=abc;printf(%s,str);%mschar*str=abc;printf(%3s,str);%-mschar*str=abc;pr

21、intf(%-3s,str);说明:(说明:(1)负号)负号“-”表示该输出项以左对齐方式输出,缺省表表示该输出项以左对齐方式输出,缺省表示以右对齐方式输出;示以右对齐方式输出;(2)m称字段宽度,表示该输出项所占字符个数;称字段宽度,表示该输出项所占字符个数;(3)n表示小数部分占用的字符个数;表示小数部分占用的字符个数;(4)如果输出项的实际位数小于)如果输出项的实际位数小于m,则用空格补足,如果大,则用空格补足,如果大于于m,则按实际的位数输出。,则按实际的位数输出。输入输入/输出输出(1)表达式语句表达式语句(2)流程控制语句流程控制语句(3)复合语句复合语句C语语言言语语句句 指令语

22、句指令语句 非指令语句非指令语句数据定义语句数据定义语句floatx;intm;编译预处理编译预处理宏定义#definePI3.14159文件包含处理#include二、C语言的程序结构与相关语句表达式语句1.表达式语句的组成:由一个表达式后接一个分号组成的由一个表达式后接一个分号组成的。i=i+1(是表达式,没有构成语句)i=i+1;(是语句)x+y;(是合法语句,但没有实际意义)表达式语句的分类:赋值语句:i=1;c=getchar();函数调用语句:printf(nHello,world!);空语句。其形式为:;逗号表达式语句:+a,b;复合语句:t=a;a=b;b=t;完成一定的控制功

23、能。9种控制语句:判断语句判断语句条件判断语句if()else多分支选择语句switch()case循环语句循环语句循环次数控制语句for()先判断后执行循环控制语句while()先执行后判断循环控制语句dowhile()转移控制语句转移控制语句直接转移语句goto终止语句break(用在循环结构、swicth)跳转语句continue(仅用在循环结构)返回语句return流程控制语句流程控制语句复合语句复合语句一组语句括在一对花括号一对花括号之中,称复合语句复合语句。c=getchar();putchar(c);注意,一个复合语句的后花括号之后一个复合语句的后花括号之后不应再写分号不应再写分

24、号。在语法上是一个整体,相当于一个语句。凡是能够使用简单语句的地方,都可以使用复合语句凡是能够使用简单语句的地方,都可以使用复合语句。一个复合语句中又可以包含另一个或多个复合语句。二、C语言的程序结构与相关语句程序的三种基本结构:顺序结构顺序结构选择结构选择结构if()elseswitch()case循环结构循环结构for().;while();do;while()选择结构单分支结构if(a=b)printf(“yes”);双分支结构if(a=b)printf(“yes”);elseprintf(“no”);else是与最接近的if且没有配对else的相组合的。多分支结构switch_case

25、表达式类型任意 if(表达式表达式)语句语句判断条件必须有括号if(表达式表达式)语句语句1else语句语句2判断条件判断条件表达式成立执行表达式成立执行表达式不成立执行表达式不成立执行必须有括号必须有括号switch(表达式表达式)case 常量表达式常量表达式1:语句语句1 break;case 常量表达式常量表达式2:语句语句2 break;case 常量表达式常量表达式n:语句语句n break;default:语句语句n+1 break;算术表达式(int char)相当于语句标号没有分号多分支选择语句switch(表达式)(表达式)case常量表达式常量表达式1:语句序列语句序列1

26、;break;case常量表达式常量表达式2:语句序列语句序列2;break;case常量表达式常量表达式n:语句序列语句序列n;break;default:语句序列:语句序列n+1;根据“表达式”的值从上至下去寻找与表达式的值相匹配的“case常量表达式”,执行一个分支后,再执行下一个分支,直到break结束,然后执行switch结构后面的程序。找不到匹配的入口标号时,执行“语句序列n+1”,然后结束。顺序向下执行程序。一定要注意有break和没有break的差别,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句。main()inta=

27、1,b=1;switch(a)case1:switch(b)case0:printf(“$”);break;case1:printf(“#”);break;case2:printf(“*”);case2:printf(“”);case3:printf(“”);break;case4:printf(“&”);a=1case1:swtch(1)b=1printf#,break跳出switch(b)结构进入switch(a)结构case2:printfcase2:printfbreak跳出switch(a)结构#for,while,dowhile三种结构循环变量初始化,继续循环条件,改变循环变量是不

28、可缺少的三个环节。for常用于循环次数已知的问题中。括号中的两个“;”不可省。dowhile()循环的最后一个while();的分号一定不能够丢。while与dowhile常用于循环次数未知的问题中。写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。注意在for和while语句之后一般没有分号有分号表示循环体就是分号之前的内容(空循环体)while(i 100);i+;for(i=0;i 100;i+);printf(%d,i);if,swtich,while,for后面的语句只能是一句,因此,多句时别忘了。dowhile()循环的最后一个while();的分号一定不能够丢。在w

29、hile(e)和for(;e;)中的e是循环继续的条件,不能写其它条件!如果缺省,就是死循环!在if(e),while(e)和for(;e;)中e的值是逻辑值(0或非0)e一般是关系表达式,逻辑表达式或变量。if(x=1)if(x=1)main()inti=1;doi;while(i+);printf(“%d”,i);A)1B)0C)1D)陷入死循环break,coutinuebreak只能用于switch和循环语句中,作用提前终止本层次switch和循环。coutinue是跳过循环体内尚未执行的语句,接着执行下次循环。常用的循环算法求素数、水仙花数、最小公倍数、最大公约数、分解多位数的数字,

30、累加,累乘,分解质因数等。各种有规律的图案。while(m)k=m%10;/*求最低位的数字*/m=m/10;/*除去最低位的数字*/分解多位数的数字判断素数main()inti,x,flag=1;scanf(“%d”,&x);for(i=2;i0;x)y*=x;return(y);main()longy;for(y=1;x0;x)y*=x;printf(“%ld”,y);main()intm,n;longcmn,facto();scanf(%d%d,&m,&n);cmn=facto(m)/(facto(n)*facto(m-n);printf(%ldn,cmn);求求C(m,n)=m!/(n

31、!*(m-n)!)嵌套循环嵌套循环就是有循环里面还有循环,这种比较复杂,就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。住两层是处理二维数组的。while(c=getchar())!=n)和while(c=getchar()!=n)的差别先看a=3!=2和(a=3)!=2的区别:(!(!=号的级别高于号的级别高于=号号所以第一个先计算所以第一个先计算3!=2)第一个a的数值是得到的1;第二个a的数值是3。三三数组数组数组要素:数组要素:1.数组名:数组的起始地址数组名:数组的起始地址2.基类型:数组元素的数据

32、类型基类型:数组元素的数据类型3.数组长度:数组元素的个数数组长度:数组元素的个数4.数组的存储:连续的存储单元。二维数组数组的存储:连续的存储单元。二维数组按行存放按行存放数组的定义类型标识符数组名数组长度错误的定义是:或intn;intn=10;scanf(%d,&n);intan;intan;定义inta5时,a0,a1.=?随机数!只有inta5=3后,后面几项自动赋0常量表达式常量表达式数组的初始化合法:inta=1,2,3,4,5;inti3=1,2,3,4,5,6;inta5=1,2,3;intb34=1,3;chara4=“boy”chara3=b,o,y不合法:inta5=,

33、2,4,5;int i2=1,2,3,4,5,6;inta5=;chara4=boy数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写inta=1,2合法。inta4=2,3,4合法。但inta4=2,3,4非法。一维数组元素的引用一维数组元素的引用引用数组元素使用数组名和该元素在数组中的下标。引用数组元素使用数组名和该元素在数组中的下标。数组变量名数组变量名整型常量表达式整型常量表达式 数组下标数组下标数组下标的取值范围是数组下标的取值范围是0,数组长度数组长度1二二维数组元素的引用维数组元素的引用与与一维数组类似一维数组类似分别用三种方法(数组元素下标法、数组名地址法、指针变量法

34、)访问数组元素。#includevoidmain()inta5=1,3,5,7,9,i,*p;for(i=0;i5;i+)printf(%d,ai);/*下标法*/printf(n);for(i=0;i5;i+)printf(%d,*(a+i);/*地址法*/printf(n);for(p=a;pa+5;p+)printf(%d,*p);/*指针变量*/对a10这个数组的讨论。、a表示数组名,是第一个元素的地址,也就是元素a0的地址。、a是地址常量,所以只要出现a+,或者是a=a+2赋值的都是错误的。、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。1.输入与输出例如:对一维数组有in

35、ta10;定义后,输入格式为:for(i=0;i10;i+)scanf(“%d”,&ai);输出格式为:for(i=0;i10;i+)printf(%d,ai);对二维数组有inta32;定义后,输入格式为:for(i=0;i3;i+)for(j=0;j2;j+)scanf(“%d”,&aij);输出格式为:for(i=0;i3;i+)for(j=0;j2;j+)printf(%d,aij);2.数组遍历遍历:下标i+指针p+结束条件:i第一行a1456第二行a2789第三行步骤二:这样作题目时很简单:*(a0+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是。*

36、(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a12元素,所以是6。一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。二维数组中的行指针inta12;其中a现在就是一个行指针,a+1跳一行数组元素。搭配(*)p2指针a0,a1现在就是一个列指针。a0+1跳一个数组元素。搭配*p2指针数组使用还有记住脱衣服法则:a2变成*(a+2)a23变成*(a+2)3再可以变成*(*(a+2)+3)这个思想很重要!数组的操作往往用循环结构.数值数组#defineM10intaM;for(i=0;iM;i+)字符数组#defineM10charaM;for

37、(i=0;ai!=0;i+)数值数组倒序#defineM10main()inti,j,aM;for(i=0;iM;i+)scanf(“%d”,ai);for(i=0,j=M;ij;i+,i)交换ai,aj字符数组倒序main()inti,j;chara50;gets(a);for(i=0,j=strlen(a);ij;i+,i)交换ai,aj用函数实现倒序数值数组voidinv(intx,intn);#defineM10main()inti,j,aM;for(i=0;iM;i+)scanf(“%d”,ai);inv(a,M);for(i=0;iM;i+)printf(“%d”,ai);字符数组

38、voidinv(charx)main()inti,j;chara50;gets(a);inv(a);puts(a);多一个参多一个参数,表示数,表示元素个数元素个数可以整可以整体输入,体输入,输出输出必须单必须单个输入,个输入,输出输出数值数组voidinv(intx,intm)inti,j,k;j=m;for(i=0;ij;i+,i)k=xi;xi=xj;xj=k;字符数组voidinv(intx)inti,j,k;j=strlen(x);for(i=0;ij;i+,i)k=xi;xi=xj;xj=k;顺序查找下面程序在下面程序在a数组中查找与数组中查找与x值相同的元素所在位置,数值相同的元

39、素所在位置,数据从据从a1元素开始存放。元素开始存放。#includevoidmain()inta11,i,x;printf(“输入输入10个整数:个整数:”);for(i=1;i=10;i+)scanf(“%d“,&ai);printf(“输入要找的数输入要找的数x:”);scanf(“%d”,&x);for(i=1;in;i+)if(ai=x)break;if(in)printf(“%d”,i);elseprintf(“找不到要找的数找不到要找的数x:”);费伯那契(Fibonacci)数列各项为1,1,2,3,5,8,13,21,.,求其前40项之和。矩阵基本知识:主对角线i=j副对角线

40、i+j=n1上三角形i=j编一个程序,求一个33矩阵对角线元素之和。main()inti,j,s=0,a33;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);for(i=0;i3;i+)for(j=0;j3;j+)if(i=j|i+j=2)s+=aij;printf(s=%dn,s);主对角线i=j副对角线i+j=2累加(积)#defineM10main()inti,aM,s=0;for(i=0;iM;i+)scanf(“%d”,&ai);for(i=0;iM;i+)s+=ai;printf(“s=%d”,s);#defineM10main()inti,a

41、M,s=1;for(i=0;iM;i+)scanf(“%d”,&ai);for(i=0;iM;i+)s*=ai;printf(“s=%d”,s);求最大(小)值#defineM30main()inti,k,k_i,aM;for(i=0;iM;i+)scanf(“%d”,&ai);k=a0;k_i=0;for(i=1;iM;i+)if(kai)k=ai;k_i=i;printf(“max=%d,maxi=%d”,k,k_i);最小值if(kai)最大值字符数组charstr50;inti;for(i=0;stri!=0,i+)构造新的字符数组(删除,插入,复制,连接,倒序)。1.用和不用字符串函

42、数实现上述功能。2.用指针实现。3.必须注意最后一项一定是:stri=0;或*p=0;编一个程序,输入一个字符串,将组成字符串的所有非英编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。例如:输入文字母的字符删除后输出。例如:输入abc123+xyz.5,应输出应输出abcxyz。#include#includevoidmain()charstr256;inti,j,k=0,n;gets(str);n=strlen(str);for(i=0;i=a&tolower(stri)=z)strk=stri;k+;strk=0;printf(%sn,str);4个函数编制程序,

43、输出字符串的有效长度,并输出该字符串。#includevoidmain()inti=0,len;charstr80=“Happy”;for(i=0;stri!=0;i+);len=i;printf(“len=%dn”,len);for(i=0;stri!=0;i+)putchar(stri);将字符数组s2中的全部字符拷贝到字符数组s1中。#includestdio.hvoidmain()chars120,s2=Goodmorning!;inti=0;while(s1i+=s2i)!=0);printf(%sn,s1);将两个字符串连接起来。#includevoidmain()chara40,

44、b40,c80;inti,j;printf(“分二行输入两个字符串:n”);gets(a);gets(b);for(i=0;ai!=0;i+)ci=ai;for(j=0;bj!=0;j+)ci+j=bj;cj=0;puts(c);实现两个字符串的比较,即自左至右逐个字符按ASCII码大小相比较。如果字符串1=字符串2,结果为0。如果字符串1字符串2,结果为一正整数。如果字符串1字符串2,结果为一负整数。#includevoidmain()chars180,s240;inti=0,j=0;printf(nInputthefirststring:);scanf(%s,s1);printf(nInp

45、utthesecondstring:);scanf(%s,s2);for(i=0;s1i!=0;i+)if(s1i!=s2i)break;printf(%d”s1is2i);双重循环2个排序二维字符数组二维数组在内存中的排列顺序是“按行优先存放”二维数组amn可以视为由n个一维数组am组成的。二维字符数组中m由其中最长的字符串决定。charstu56=“Tom,“Anne,“Mary,“Peter;其中stu0=“Tom“stu1=“Anne字符串函数要用#include字符串拷贝函数strcpy字符串连接函数strcat字符串比较函数strcmp测字符串长度函数strlen函数函数strle

46、n的值为的值为0之前的全部字符个数之前的全部字符个数.它与数组长度不是一个概念它与数组长度不是一个概念.chars6=H,o,w,0,o,kstrlen(s)=3字符串函数的应用字符串赋值字符串比较s1=s2strcpy(s1,s2)s1=s2strcmp(s1,s2)=0s1s2strcmp(s1,s2)0s1s2strcmp(s1,s2)0一函数定义的形式:存储类型存储类型 数据类型数据类型 函数名函数名(形式参数表形式参数表)变量数据定义语句序列;变量数据定义语句序列;可执行语句序列;可执行语句序列;intfun(intx,inty)intz;z=x+y;returnz;函函数数首首部部

47、 函函数数体体四四函数函数类型标识符类型标识符函数名函数名(形参表形参表)语句语句返回值类型返回值类型函数首部(函数头)函数首部(函数头)函函数数体体,可可以以为为空空,但花括号不能省略但花括号不能省略没有分号没有分号形参表可以为空,但括号不能省略形参表可以为空,但括号不能省略函数要先定义后使用(调用)。函数要先定义后使用(调用)。【语法语法】函数定义的一般形式为:函数定义的一般形式为:【语义语义】定义一个函数,编译程序并不为函数定义分配存储空间,在函数定义一个函数,编译程序并不为函数定义分配存储空间,在函数调用时才分配存储空间,然后再运行这个函数。调用时才分配存储空间,然后再运行这个函数。函

48、数定义函数定义1.有返回有返回值值函数函数有返回有返回值值函数在函数函数在函数执执行行结结束后向束后向调调用者返回一个用者返回一个执执行行结结果果,称称为为函数的返回函数的返回值值。【语语法法】有返回有返回值值return语语句的一般形式如下:句的一般形式如下:return(表达式表达式);括号可以省略括号可以省略【语义语义】计算表达式的值,结束函数的执行并将表达式的值作计算表达式的值,结束函数的执行并将表达式的值作为返回值返回给调用者。为返回值返回给调用者。函数定义函数定义2.无返回无返回值值函数函数无返回无返回值值函数只完成某种特定的函数只完成某种特定的处处理,函数理,函数执执行后不向行后

49、不向调调用用者返回函数者返回函数值值。函数首部必须将返回值的类型说明为空类型函数首部必须将返回值的类型说明为空类型(void),函数体中的),函数体中的return语句只结束函数的执行。语句只结束函数的执行。【语语法法】无返回无返回值值return语语句的一般形式如下:句的一般形式如下:return;【语义语义】结束函数的执行。结束函数的执行。函数调用函数调用函数定函数定义义只是按照程序只是按照程序逻辑逻辑将相关将相关语语句句组织组织在一起,要想在一起,要想执执行行这这些些语语句,就需要句,就需要执执行函数,即函数行函数,即函数调调用。用。【语语法法】函数函数调调用的一般形式如下:用的一般形式

50、如下:函数名函数名(实参表实参表);与形参表相对应与形参表相对应实参可以是常量、变量,还可以是表达式,如果实参中存在实参可以是常量、变量,还可以是表达式,如果实参中存在变量,则在函数调用时,变量应该是变量,则在函数调用时,变量应该是“值有定义的值有定义的”;【语义语义】为函数分配存储空间,执行函数。为函数分配存储空间,执行函数。括号不能省略括号不能省略函数的嵌套调用函数的嵌套调用函数可以嵌套调用,函数可以嵌套调用,程序中的函数通过互相调用体现其逻辑关系。程序中的函数通过互相调用体现其逻辑关系。但但函数不能嵌套定义。函数不能嵌套定义。主主函函数数mainABFCED(a)正确正确平行定义平行定义

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁