ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:47.42KB ,
资源ID:17457532      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17457532.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言知识点整理2.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言知识点整理2.docx

1、C语言知识点整理2一维数组的定义和引用定义一般形式: 类型说明符 数组名常量表达式例: int a10; /*整型数组a,有10个元素*/ float b5; /*实型数组b,有5个元素*/ char c20; /*字符型数组c,有20个元素*/注意点:C语言中规定数组的下标从0开始; 例如:int a5 表示数组a有5个元素 5个元素分别为: a0,a1,a2,a3,a4不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。一维数组元素的引用数组元素引用形式:数组名下标下标:只能为整型常量或整型表达式例如,a5、ai+j、ai+输入10位学生的成绩(整数),并将其反序输出。

2、main() int score10,i; for(i=0;i=0;i-) printf(%d ,scorei); getch();输入10位学生的成绩(整数),并求出平均成绩输出。main() float s=0,score10; int i; for(i=0;i=9;i+) scanf(%f,&scorei); for(i=0;i=9;i+) s=s+scorei; s=s/10; printf(The average is:%f,s); getch();数组初始化赋值 数组初始化赋值:在数组定义时给数组元素赋予初值。初始化赋值一般形式为: 类型说明符 数组名常量表达式=值,值值; 例:

3、int a10= 0,1,2,3,4,5,6,7,8,9 ;相当于a0=0; a1=1;. a9=9;可以只给部分元素赋初值。当 中值的个数少于元素个数时,只给前面部分元素赋值。 例如: int a10=0,1,2,3,4; 表示只给a0a45个元素赋值,而后5个元素自动赋0值。当 中值的个数多于元素个数时,系统出错数组的初始赋值的几点注意:只能给元素逐个赋值,不能给数组整体赋值。 例如给十个元素全部赋值1 ,只能写为: int a10=1,1,1,1,1,1,1,1,1,1; 而不能写为: int a10=1; 注意点 C 语言中规定数组的下标从0开始 例如:int a5 表示数组a有5个元

4、素 5个元素分别为: a0,a1,a2,a3,a4main() int a11; int i,j,t; printf(n input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); for(j=1;j=9;j+) for(i=1;iai+1) t=ai; ai=ai+1; ai+1=t; printf(the sorted number:n); for(i=1;i11;i+) printf(%d,ai);二维数组二维数组定义的一般形式是:类型说明符 数组名常量表达式1常量表达式2;例:int a34; 定义了一个3行4列的数组,数组名为a,该数组的元

5、素共有34=12个,即: a00, a01, a02, a03 a10, a11, a12, a13 a20, a21, a22, a23二维数组元素的引用二维数组的元素的引用形式为: 数组名下标下标其中下标应为整型常量或整型表达式例:a23表示a数组第三行第四列的元素分析下列两行程序的功能: float b34; 定义一个三行四列的二维数组 b12=3; 第二行第三列的数是3初始化说明可以只对部分元素赋初值,未赋初值的元素自动取0值。 例如:int a33=1,2,3; 是对每一行的第一列元素赋值,未赋值的元素取0值。将一个二维数组行和列互换,存到另一个数组中。 1 2 3a= 4 5 6

6、1 2b= 3 45 6b00=a00b01=a10b21=a12bij=ajimain() int a23=1,2,3,4,5,6; int b32,i,j; printf(narray a:nn); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji=aij; printf(n); printf(narray b:nn); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); getch();有一个34的矩阵,要求编程求出其中值最大的那个元素,以及其所在的行号和列号1 2

7、 3 4 9 8 7 6-10 10 -5 2main() int i,j,row=0,colum=0,max; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%d,max,row,colum);字符数组 用来存放字符数据的数组称为字符数组。字符数组的定义 数组类型 数组名常量表达式 例:char c10; /*定义有10个元素的数组*/ char ch510; /*定义5*10 的二维

8、字符数组*/ 字符数组的初始化字符数组也可在定义时作初始化赋值。例:char 11=c, ,p,r,o,g,r,a,m; 赋值后各元素的值为:c program,其中c9、c10未赋值,系统则自动赋予为空字符0 值。当对全体元素赋初值时也可以省去长度说明。 如下两语句等价:char a =I, ,a,m, ,h,a,p,p,y;char a10=I, ,a,m, ,h,a,p,p,y;字符串和字符串结束标志在语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串结束标志为0;因此当把一个字符串存入一个数组时, 也把结束符0存入数组,并以此作为该字符串是否结束的标志例:char

9、c = a,b,c,0; char c10= a,b,c; /*后面元素自动填充空字符0*/以字符串对字符数组初始化语言允许用字符串的方式对数组作初始化赋值例:char c =C, ,p,r,o,g,r,a,m,0; 可写为:char c =C program; 或去掉写为:char c =C program;字符数组的输入输出可用printf函数和scanf函数中使用“%s”格式控制符一次性输出/输入一个字符数组中的字符串 main() char c =BASICndBASE; printf(%sn,c); 而在输出表列中给出数组名则可。 不能写为: printf(%s,c );main()

10、 char st15; printf(input string:n); scanf(%s,st); /* 注意此处没有取地址符& */ printf(%sn,st);本例中由于定义数组长度为15, 因此输入的字符串长度必须小于15,以至少留出一个字节用于存放字符串结束标志0注意点定义一个字符数组,如果不作初始化赋值,则必须说明数组长度当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符。 例如上例scanf(“%s”,st); 当输入:this is a book的字符串时, 则只有 this 输入到数组st中。字符串常用函数使用说明关于字符串输入输出的函数,必须包

11、含头文件stdio.h关于字符串处理函数,必须包含头文件string.h字符串常用函数字符串输出函数 puts 格式: puts(str) ;功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示。 它等价于: printf(%s,str);字符串输入函数 gets 格式: gets(str);功能:从键盘上输入一个字符串直到回车键结束。 将输入的字符串加上结束标志0,存放到数组或字符指针所指向的一片存储单元。#includemain()说明:当输入的字符串中含有空格时,输出仍为全部字符串。这是与scanf函数不同的。 char c10; printf(Please input a stri

12、ng:); gets(c); puts(c);字符串连接函数strcat格式: strcat(str1,str2) 功能:把字符数组str2中的字符串连接到字符数组str1 中字符串的后面,并删去字符串1后的串标志“0”。本函数返回值是符数组1的首地址。字符串拷贝函数strcpy格式: strcpy(str1,str2);功能:把字符数组str2中的字符串拷贝到字符数组str1中。串结束标志“0”也一同拷贝。str2也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组main() char c110=111111,c210=222; strcpy(c1,c2); puts(c1);

13、其内存储存是:2220110000程序运行结果:222注意:本函数要求字符数组1应有足够的长度,否则不能全部装入所拷贝的字符串。 字符串比较函数strcmp格式: strcmp(str1,str2)功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。 str1=str2, 返回值0 str1str2, 返回值0(一般为1) str1str2, 返回值0(一般为-1)例: strcmp(“ABC”,”ABB”); 比较的是其字符串的ASCII码,+号是个字 strcmp(“36+55”,”abcd”); 符,不是运算符作用本函数也可用于比较两个字符串常量,或比较数组和字

14、符串常量。#include main() char str20; printf(“ Please input the passed:”); scanf( “%s “,str); if ( strcmp(str, “1234”)=0) printf(“Passedn”); else printf(“Deniedn”);程序的功能:输入密码测字符串长度函数strlen格式: strlen(str);功能:测字符串的实际长度(不含字符串结束标志0) 并作为函数返回值字符大写转小写函数strlwr格式: strlwr(str) 功能:将字符串str中的大写字母转换为小写字母。字符小写转大写函数stru

15、pr格式: strupr(str) 功能:将字符串str中的小写字母转换为大写字母。编程实现从键盘输入10位学生的成绩,统计出最高分、最低分、和平均分。main()float a10,i,max=-1,min=101,sum=0; for(i=0;imax) max=ai; if(aimin) min=ai; sum=ai+sum; printf(max=%f,min=%f,average=%f,max,min,sum/10); getch();用数组来处理Fibonacci数列,输出其前20项。main() int i; int f20=1,1; for(i=2;i20;i+) fi=fi-

16、2+fi-1; for(i=0;i20;i+) if(i%5=0) printf(n);/*规定换行,规整格式*/ printf(%12d ,fi); getch();从键盘输入10个数存在一个数组中,再将其反序复制到另一个数组中。(有多解)main() int a10,b10,i; for(i=0;i=9;i+) scanf(%d,&ai); b9-i=ai; for(i=0;i10;i+) printf(%dn,bi); getch(); 输入10个数,求平均值及高于平均值的数main() float ave,s=0,a10,i; for(i=0;i10;i+) scanf(%f,&ai)

17、; s=s+ai; ave=s/10; printf(%fn,ave); for(i=0;iave) printf(%f,ai); getch();由键盘输入10个数,放在一个数组中,并将其排好序后放在第二个数组中。main() int a11,b11,i,j,t; for(i=1;i11;i+) scanf(%d,&ai); for(j=1;j10;j+) for(i=1;iai+1) t=ai;ai=ai+1;ai+1=t; for(i=1;i11;i+) bi=ai; printf(%d ,bi); getch();有两个4X3的矩阵,将其相加,并输出。提示:即将两个4行3列的二维数组对

18、应元素相加到第三个二维数,输出。main() int a43,b43,c43,i,j; for(i=0;i4;i+) for(j=0;j3;j+) scanf(%d,&aij); for(i=0;i4;i+) for(j=0;j3;j+) scanf(%d,&bij); for(i=0;i4;i+) for(j=0;j3;j+) cij=aij+bij; printf(%2d ,cij); printf(n); getch();编写一个程序,求一个字符在一个字符串中的位置.#include main() char s20,ch; int i; printf(Input string:n); g

19、ets(s); /*scanf 具有缓冲区 会把换行符缓存而影响下面的运行*/ printf(Input the char:n); ch=getchar(); for(i=0;si!=ch;i+); printf(%d,i+1); getch();编写一个程序,将两个字符串连接起来.main() char s140,s220; int i,j; printf(Input s1:n); gets(s1); printf(Input s2:n); gets(s2); for(i=0;s1i!=0;i+); for(j=0;s2j!=0;j+) s1i+j=s2j; printf(The strin

20、g is:%s,s1); getch();输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。算法:变量word来作为判别是否单词开始的标志,若 word=0表示末出现单词,若出现单词,则word置成1。#include stdio.hmain() char c,string80;int i,num=0,word=0;gets(string);for(i=0;(c=stringi)!=0;i+) if(c= ) word=0; else if(word=0) word=1; num+;printf(There are %d word in the line.n,num);getch();

21、编写一个程序,求一个字符在一个字符串中的位置.#include main() char s20,ch; int i; printf(Input string:n); gets(s); printf(Input the char:n); ch=getchar(); for(i=0;si!=ch;i+); printf(%d,i+1); getch();有一已经从小到大排好序的数组,今输入一数,要求按原来排序的规律将它插入数组中。main() int a10=1,3,5,7,9,11,13,15,17; int i,j,k,num; printf(Array a:n); for(i=0;ia8)

22、a9=num; else for(j=0;jnum) for(k=9;k=j;k-) ak=ak-1; aj=num; break; for(j=0;j10;j+) printf(%d ,aj); getch();有一已经从小到大排好序的数组,今输入一个数,若该数在数组里面有,即将该数从数组中删除。main() int a10=1,2,3,4,5,6,7,8,i,j,b; for(i=0;i10;i+) printf(%d ,ai); scanf(%d,&b); for(i=0;i10;i+) if(b=ai) break; for(j=i;j9;j+) aj=aj+1; for(i=0;i1

23、0;i+) printf(%d ,ai); getch();编写一个将一字符串逆转的程序。#include #include main() char s120,s220; int i,j; printf(Input string:n); gets(s1); i=strlen(s1); for(j=0;s1j!=0;j+) s2i-1-j=s1j; s2i=0; printf(The reverse string:n%s,s2); getch();一个学习小组有5个人,每个人有三门课的考试成绩。求全组各分科的平均成绩和各位同学的平均成绩,并保存起来。各人成绩如下: 语 数 英 张 80 75 9

24、2 王 61 65 71 李 59 63 70 赵 85 87 90 周 76 77 85并可分别按科目、或平均分进行排序。#include main() int i,j,k,s,a54=80,75,92,61,65,71,59,63,70,85,87,90,76,77,85; int v3,xz,m; int t4; for(j=0;j3;j+) s=0; for(i=0;i5;i+) s=s+aij; vj=s/5; for(i=0;i5;i+) for(j=0;j3;j+) ai3=ai3+aij; ai3= ai3/3; s:printf(1: 各科平均分 2:各位同学平均分n3:按平均分排序 4:显示n); printf(请选择:); scanf(%d,&xz); switch(xz) case 1:printf(语文 数学 英语n%4d %4d %4d,v0,v1,v2);break; case 2:printf(学号 成绩n); for(i=0;i=4;i+) printf(%4d %4dn,i+1,ai3); break; case 3:for(i=0;i=3;i+) for(j=0;jaj+13) for( k=0;k4;k+) tk=ajk; ajk=aj+1k; aj+1k=tk;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2