首页 C语言小结

C语言小结

举报
开通vip

C语言小结C语言小结 C语言小结 1、​ C语言结构 1、主函数用main作为函数名,每个C程序都必须包含且仅含一个main函数,C程序的执行是从主函数中的第一句开始,到主函数中的最后依据结束 2、头文件的引用#include或#include“name.h” 3、函数由函数首部和函数体组成:函数首部,即函数的第一行,包括函数名、函数类型、函数参数名和参数类型,一个函数后面必须跟一对圆括号;函数体,及函数首部下面的花括号{}内的部分,如果一个函数内有多个花括号,最外层的一对{}为函数体的范围 2、​ 数据类型及其运算 1、标...

C语言小结
C语言小结 C语言小结 1、​ C语言结构 1、主函数用main作为函数名,每个C程序都必须包含且仅含一个main函数,C程序的执行是从主函数中的第一句开始,到主函数中的最后依据结束 2、头文件的引用#include或#include“name.h” 3、函数由函数首部和函数体组成:函数首部,即函数的第一行,包括函数名、函数类型、函数参数名和参数类型,一个函数后面必须跟一对圆括号;函数体,及函数首部下面的花括号{}内的部分,如果一个函数内有多个花括号,最外层的一对{}为函数体的范围 2、​ 数据类型及其运算 1、标识符:标识符可作变量名、符号名、函数名、数组名、文件名以及具有特定含义的名字。合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,C语言区分字母大小写 2、数据类型 分类: 整型: int,长整型以long int或long 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示;实型:单精度float、双精度double、长双精度型long double; 字符型:char 结构体:用户定义的一种数据结构,它包含若干个不同数据类型(当然也可以相同)的数据项,这些数据之间有内在的联系 共用体:使几个不同的变量共占同一段内存的结构 指针类型:专门用来存放地址的数据类型 空类型:在定义的时候不确定数据类型,而在使用的时候通过强制转换来确定的数据类型 定义:结构体如:struct student {int num;char name[20];}student1,student2; 共用体:union共用体名{成员表列}变量表列; 空类型:基本型 *指针变量名 如float *p; 3、C运算符的种类、运算优先级和结合性 见课本365面(很重要) 4、数据转换:自动转化(内存长度低的向高转) 强制转换: 将结果转换成所需要的数据类型,如;float s=1.23; int a; a=(int)s; 5、 C表达式类型和求值规则: 赋值表达式:<变量><赋值运算符><表达式> 算术表达式 关系表达式:一般表达式:<表达式1><关系运算符><表达式2>(“真”用1表示“假”用0表示) 逻辑表达式:一般形式<表示式1><逻辑运算符><表达式2>(真1、假0) 条件表达式:一般形式:表达式1?表达式2:表达式3 逗号表达式:一般形式:表达式1,表达式2,……,表达式n。整个逗号表达式的值为表达式n的值 例:已有定义:int x=7,y=8,z=9;,则表达式!(x+y)+z-1&&y+z/2的值为1 3、​ 基本语句 1、简单语句: 空语句: “;”占一个语句位置,但并不执行任何操作 说明语句:这是对数据和函数进行描述的语句,如定义变量语句、外部变量申明和函数声明等。所有说明语句都必须放在其他非说明语句(或执行语句)之前 表达式语句:一定要有分号,分号是语句的一部分 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 控制语句:分为两类:构成流程的控制语句,如if语句、switch语句和while语句、do-while语句、for语句;流程转向语句,如break语句、continue语句、return语句和goto语句 复合语句:复合语句之后不必再用分号结束 2、数据的输入与输出:输入;getchar()函数 作用是从终端设备接受一个字符,只有按下Enter键时,读入才开始;scanf(格式控制符串,输入项地址表);输出:putchar()函数 作用是向终端输出一个字符;printf(格式控制字符串,输出表链); 格式字符:f格式符:%m.nf指定输出的数据共占m列,其中有n位小数,如果数值长度小于m,则左端补空格; o格式符:以八进制数形式输出整数; x格式符:以十六进制数形式输出整数; u格式符:用来输出unsigned类型数据,即无符号数,以十进制形式输出 四、选择结构程序设计 1、if语句:(1)、if(表达式)语句 (2)、if(表达式) 语句1 else 语句2 (3)、if(表达式1)语句1 (4)、 if(表达式1) else if(表达式2)语句2 if(表达式2)语句1 else if(表达式3)语句3 else 语句2 …… else else if(表达式m)语句m if(表达式3)语句3 else 语句n else 语句4 (注意:else总是和它上面的最近的未配对的if配对) 2、switch语句: (1)、 (2)、switch(表达式1) switch(表达式) {case 常量表达式1-语句1 {case 常量表达式1-语句1 case 常量表达式2:switch(表达式2)语句2 case 常量表达式2-语句2 case 常量表达式3:switch(表达式3)语句3 …… …… case 常量表达式n-语句n case 常量表达式n:switch(表达式n)语句n default :语句n+1 default :语句n+1 } } 五、循环结构程序设计 1、for循环结构:一般表达式为:for(表达式1;表达式2;表达式3){……} 可以改为while循环:表达式1; while(表达式2) {语句 表达式3; } (注:“ for(;;) ”相当于“ while(1) ” 2、while和do-while循环结构: while语句的一般形式:while(表达式) do-while就语句的一般形式:do {语句} {循环体语句} while(表达式); 3、continue语句和break语句: (1)、continue语句的一般形式为:continue; 其作用是结束本次循环,即跳过循环体内continue语句后面尚未执行的语句,接着进行下一次是否执行循环的判定 (2)、break语句的一般形式是:break; 跳出循环体,即提前结束循环,接着执行循环后面的语句,break语句不能用于循环语句和switch语句之外的任何其他语句 注:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环,不再判断执行循环体的条件是否成立。 4、循环的嵌套:(1)、while() (2)、do (3)、for(; ;) { … {… {… while() do for(; ;) {…} {…} {…} } while(); } } (4)、while() (5)、for(; ;) (6)、do {… {… {… do while() for(; ;) {…} {…} {…} while(); … } … } while(); } 6、​ 数组的定义和引用 1、数组的定义与引用:定义数组时,[ ]不能写成(),数组长度必须明确指定; 赋初值时,可以不明确说明数组长度(注:不能使用如下形式数组元素赋以相同的初值:如int a[8]={8*0};) 2、字符数组:系统对字符串常自动加一个作为结束’\0’标志 (#include) 字符串处理函数:printf()函数,一般形式是:printf(“%m.ns”,字符类型指针); puts()函数,一般形式是:puts(字符类型指针); scanf()函数,一般形式是:scanf(“%ms”,字符类型指针); gets函数,一般形式是:gets(字符类型指针); 字符串连接函数strcat()函数,一般形式是:strcat(字符数组1,字符数组2);(数组必须足够大) 字符拷贝函数strcpy()函数,一般形式是:strcpy(字符数组1,字符串2); (作用是将字符串2复制到字符数组1中去) 字符串比较函数strcmp()函数,一般形式是:strcmp(字符串1,字符串2)(串1=串2,返回0;串1>串2,返回一正整数;串1<串2,返回一负整数) strlen()函数,一般形式是:strlen(字符型指针);(测字符串的实际长度) 7、​ 函数 1、有参函数的定义:类型标识符 函数名 (形式参数列表) { 声明部分 语句 } “定义”是指对函数功能的确立,包括指定函数函数名、函数类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位 “声明”的作用则是把函数名、函数类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)但int型可不声明 2、函数的返回值:return;如此使用return语句时,只起控制流程的作用,不带回任何值,故次时函数亦为void型 return 表达式; 此表达式的值就是函数的返回值 3、形参、实参和参数值的传递:参数值传递分为:值传递和传地址。值传递不改变实参的值,传地址一般是指指针变量作形参(改变实参的值) 4、函数的调用:函数不能嵌套定义,但可以嵌套调用、递归调用 5、静部变量用“static”声明 ,寄存器变量用进行“register”声明 ,外部变量用“extern”声明,自动变量用“auto”声明,“auto”可省略 ,在函数类型(名)加extern表示外部函数 8、​ 编译预处理 1、宏定义:不带参的一般形式为:#define 标识符字符串 带参的一般形式为:#define 宏名(参数表)字符串 可以用#undef命令终止宏定义的作用域 宏定义只代换不分配内存,宏定义不存在类型问题,宏定义不占运行时间,只占编译时间每展开一次都使程序增长,而函数调用不会使程序变长 2、条件编译的几种形式(1)、# ifdef标识符 (2)、# ifndef标识符 (3)、# if表达式 程序段1 程序段1 程序段1 # else # else # else 程序段2 程序段2 程序段2 # end if # end if # end if 9、​ 指针 1、地址即指针,一般定义为:基本类型 *指针变量名 2、只有整型变量的地址才能放到指向整型变量的指针变量中 3、指针变量作为函数参数:不能企图通过改变指针形参的值而使指针实参的值改变 4、数组与指针:如果指针变量p一指向数组中的一个元素,则p+1指向同一数组中的下一个元素 p+i和a+i就是a[i]的地址 指向数组的指针变量,p[i]与*(p+i)等价 数组a代表数组首元素的地址,它是一个指针常量,所以a++是无法实现的 *p++等价于*(p++) 如果用指针变量作实参,必须先使指针变量有确定值,指向一个已定义的单元 二维数组a[2]值就是&a[2][0] a[0]+1和*(a+0)+1都是&a[0][1] *(a[i]+j)或*(*(a+i)+j)是a[i][j]的值 *(a+i)和a[i]等价 a[i][j]的地址为&a[0][0]+i*m+j 字符数组可以在定义时整体赋初值,但不能在赋值语句中整体赋值 5、p+i代表地址计算:p+c*i,c为字节数 不应把一个整数赋给指针变量,只能将变量的地址赋给指针变量 10、​ 位运算 1、如有一个整数a(2字节),想要其中的低字节,只需将a与八进制数377按位与即可,如想取其高字节,只需c=a&0177400(0177400表示八进制数的177400) 2、假如a=3,b=4.想要a和b的值互换,可以用如下赋值语句实现: a=a^b; b=b^a; a=a^b; (课本325页例12.2也比较重要) 11、​ 文件操作 1、分为ASCII文件和二进制文件 文件型指针:FILE *fp; 2、了解常用函数的格式: 打开一个文件:if((fp=fopen(“file1”,r))==NULL) {printf(“cannot open this file\n”); Exit(0); } fputc函数的功能是把一个字符写到磁盘文件上,一般形式是fputc(ch,fp) ch是要输出的字符,fp是文件指针变量 fgets函数的功能是从指定的文件读入一个字符串,一般形式是fgets(str,n,fp); str是字符数组,n为要求得到的字符个数,fp是文件指针变量 fscanf()函数的功能是根据文本文件中的格式输入数据,一般形式是:fscanf(文件指针,格式控制字符串,输出列表); fprintf()函数的功能是将内存中的数据转换,并以ASCII码形式输出到文本五文件中,起调用的一般形式为:fprintf(文件指针,格式控制字符串,输出表列) 12、​ 特别提醒 1、3种基本结构:顺序结构,选择结构,循环结构 2、不能把一个字符串常量赋给一个字符变量 3、注意++,--(右结合性) (i的值为3)(i++)+(i++)+(i++)的值为9; (++i)+(++i)+(++i)的值 4、课本48页 表3-3,81页 表4-1, 243页 表10-2,276页 表10-4,333页 表13-1,347页 表13-3,364页 附录A,365页 附录C 13、​ 速做机试 1、windows 操作可使用快捷键(如:Ctrl+c复制,Ctrl+v粘贴,选中后按F2重命名),能快速使用键盘也是件好事,使用鼠标打开最好双击,不要点右健,再点打开那样会很慢 2、改错、填空:类推,比方说:若i=0;那行错了,则很可能是i=1; 3、程序设计:牢记 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 上一些基本程序,比方说:排序,公倍数公约数,同构数,素数 例 :水仙花数 (一个三位正整数,其个位数字的立方和等于该数本身) 若i是一个三位数,则百位数为a=i/100 十位数为b=i/10%10 个位数为c=i%10 1)、 for (a=1;a<=9;a++) for (b=0;b<=9;b++) for (c=0;c<=9;c++) if (a*100+b*10+c==a*a*a+b*b*b+c*c*c) s+=a*100+b*10+c; 素数 1)、for (i=101;i<500;i+=2) 2)、isp(int a) { {int t,j; j=1;t=2; for (j=2;j<=i/2;j++) while((t<=a/2)&&j) if (i%j==0) break; { if(a%t==0) j=0; if (j>i/2 && i%10!=3) s+=i; else t=t+1; } } return(j); } 计算1+2+3+4+…+n<2000的最大n的值 int n=0,s=0; while(s<2000) s = s + (++n); n--; s=1+1/12+1/123+1/1234+1/12345 for (i=1;i<=5;i++) { t=t*10+i; s=s+1.0/t; } 计算100以内的全部同构数之和(同构数即:它出现在它的平方数的右端) for(i=1;i<100;i++) if( ( (i*i-i) % (i<10?10:100)==0 )) s=s+i; int i,s=4; for (i=1;i<8;i++) s=(s+2)*3; 完全数:(一个数如果恰好等于它的因子(自身除外)之和) do {if(k%i==0) sum+=I; i++;} while(i<=k/2); 最大公约数和最小公倍数 int fun1(int m,int n) int fun2(int x,int y) {int t,r; {return((x*y)/fun1(x,y)); if(m>n) } {t=n; n=m; m=t;} while(m!=0) {r=n%m; n=m; m=r;} return(n); } 3*3二维矩阵的转置 for(i=0;i<3;i++) for(i=0;i<2;i++) for(j=0;j<4;j++) for(j=i+1;j<3;j++) y[j][i]=x[i][j]; {t=p[i][j]; p[j][j]=p[j][i]; p[j][i]=t;} 折半查找法 while((!sign)&&(top<=bott)) {mid=(bott+top)/2; if(numble==a[mid]) {printf(“it’s position is %d\n”,mid+1); sign=1;} else if(numblea[i+1]) for(j=i+1;j<10;j++) {t=a[i]; if(a[min]>a[j]) min=j; a[i]=a[i+1]; t=a[i]; a[i]=a[min]; a[min]=t; a[i+1]=t; } } 杨辉三角 for(i=1;i(b)?(a):(b) ) pintd(“max=%d\n”,MAX(MAX(a,b),c) ); 字符串排序 void sortstr(char **p) if(strcmp(s[i],s[i+1])>0) {int i.j; char *temp; {strcpy(tepm,s[i]); for(i=0;i<5;i++) strcpy(s[i].s[i+1]); {for(j=i+1;j<5;j++) strcpy(s[i+1],temp); {if(strcmp(*(p+i),*(p+j))>0) } (char temp[]; ) {temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp;} } } } 数据循环左(右)移 左移c=(value>>(16-n))|(value<>n)|(value<<(16-n)) 求补码 unsign int getbites(unsign value) {unsign int z; z=value&0100000; if(z==0100000) z=~value+1; else z=value; return(z); } 求s=a+aa+aaa+…aa…a的值 while(i<=n) {tn=tn+a; sn=sn+tn; a=a*10; ++I; } 十四、小 知识点 高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载 小结 1、​ 对换两边的数据类型必须相同 malloc(sizeof( struct aa)) 2、​ 计算机算法分为数值运算算法和非数值运算算法 3、​ 一个算法的特点:有穷性,确定性,零个或多个输入,一个或多个输出,有效性 4、​ 以ox开头的数是十六进制数 5、​ 一个int型的变量值的范围是-327668~32767 6、​ 指数形式:字母E(或e)之前必须有数字,且e后面的指数必须为整数 如:6.344e+003 7、​ 浮点型数据是按照指数形式存储的 float型变量只能接收七位有效数字 8、​ 初始化不是在编译阶段完成的(静态存储变量和外部变量除外),而是在程序运行时执行本函数时赋初值的,相当于有一个赋值语句 9、​ scanf(“%3d%3d”,&a,&b); 输入123456 则123赋给a,456赋给b 输入数据时不能 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 精度,即scanf(“7.2f”,&a);是不合法的 10、​ 在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入 11、​ 全局变量在程序的全部执行过程中都在用存储单元 12、​ 一个变量只能声明为一种存储类别 13、​ (定义时不赋初值)对静态局部变量来说,编译时自动赋值0(对数值型变量)或空字符(对字符变量),而自动变量,不赋值则它的值是一个不确定的值 14、​ 全局变量用static声明,则该变量的作用域只限于本文件模版 15、​ 内部函数static int fun(int a,int b) 外部函数extern int fun(int a,int b) 16、​ 只能对结构体变量中的各个成员分别进行输入和输出 17、​ 结构体变量.成员名 (*p).成员名 p->成员名 三者等价 18、​ typedef int NUM[100];(声明NUM为整型数组类型) typedef可以声明各中类型名,但不能用来定义变量,没有创造新类型 19、​ “按位与”(&),如果两个相应的二进制位都为1,则该位的结果为1;“或”(|)只要有一个为1,则为1;“异或”(^)同号为0;“取反”(~) 游侠儿
本文档为【C语言小结】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_314884
暂无简介~
格式:doc
大小:164KB
软件:Word
页数:9
分类:计算机考试
上传时间:2010-12-20
浏览量:24