C语言数据类型常量中科培训.doc_第1页
C语言数据类型常量中科培训.doc_第2页
C语言数据类型常量中科培训.doc_第3页
C语言数据类型常量中科培训.doc_第4页
C语言数据类型常量中科培训.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

数据类型常量:整型 整数 八进制 0271 010 十进制 250 38 十六进制 0xaf实型 小数 可以用两和方法表示: 直接表示法: 1.23 .23 2. 科学计数法: 1.23e2 2.5e-2 1.23e 2.5e2.3 错误 e 的后面一定要跟上一个整数 字符型 在C里,字符型数据,必须加单引号,所有字符型数据,都是以ASC值进行存储。A 65a 970 48二、输出函数: 在C里,输出是借用一个函数来完成函数的格式: 函数名(参数) main() sqrt(4) 输出函数:printf(参数)printf(格式输出字符串,输出项)printf(“%d”,20) n 换行符 第2课一 进制转换二进制、八进制、十进制、十六进制二进制十进制 2-10 将二进制数从低位到高位依次乘以2的幂次方相加; 10-2 将十进制数除以2得余数依次相连;二进制八进制 一个八进制位对应三个二进制位二进制十六进制 一位十六进制数对应四位二进制码printf(“%xn”,0173);二 变量 值可以改变的 y=x+1 标识符 关键字 系统占用,有特殊用途 预定义标识符 库函数名 用户标识符(由用户自已定义,一般用作变量名,或子函数名) 的命名规则:由字母、数字或下划线组成,并且只能以字母或下划线打头。*在C里,所有的变量,在使用前一定要先定义。 先定义,后使用整型变量:可以用 int 来 定义整型变量 int x,y; 整型变量: 短整型 2B short int 基本整型 4B int 长整型 4B long int实型变量 单精度(float) 4B 双精度(bouble) 8Bfloat x,y;double x,y; 实型数据的取值范围比整型要大,但是往往存在误差,其中,float 型提供67位有效,而double 型提供1516位有效位。第3课一 表达式 算术表达式 算术运算符:+ - * / % % 求余运算 (参加运算的必须是整数) / 如果参加运算的两个数都是整数,该表达式的结果也一定是整数。 5/2 10/3 5./2= 5./2. 强制类型转换: (类型名)表达式 赋值表达式: 赋值运算符:= 变量名=表达式 一定是将表达式的结果赋给该变量 x=3+2-10*5 x=10 = 的左边只能是简单变量,而不能是表达式复合赋值运算:+= -= *= /= %= x+=2; 等价于: x=x+2; 自增自减运算:i+ i-+i -ii+和+i 的共同点:(对于i而言,都是让i加1;都等价于 i=i+1 )而不同点在于:两个表达式本身的值是不相同的,i+ 是先赋值,后再让i 增1;而 +i 是先让i 增1,再赋值。逗号运算符:在C里,逗号运算符的优先级最低,比赋值运算符还要低。逗号运算的整个表达式的结果是取最后一个逗号运算符的结果。 int a;a=3,4,5; 第4课第3章 顺序结构输入函数、输出函数输出函数 函数的格式: 函数名(参数) sqrt(100) main()printf(格式输出字符串,输出项)格式输出字符串: %d 输出一个十进制的整数 %o 输出一个八进制的整数 %x 输出一个十六进制的整数 %f 输出一个实型数据 %c 输出一个字符 %s 输出一个字符串格式输出字符串(分为两类): 变换样式输出的字符:n 普通字符(原样输出): , 输出宽度的控制: int x=1234;printf(%6dn,x);%nd n是个整数,输出的数应该有n个宽度n如果是正数,则左补空格,n如果是负数,则右补空格。如果n 本身比该数宽度还小,n无效double x=123.456;printf(“%8.3fn”,x);%m.nf 小数位数为n ,总的宽度为m 格式输出字符串的个数,跟输出项的个数往往要保持一致。1 格式输出字符串的个数比输出项要少;2格式输出字符串的个数比输出项要多;int a=5,b=8;将a 和 b 中的值进行交换再输出 a 和 b输入函数scanf(格式输入字符串,输入项)输入项: 一定是一个地址 &求地址运算符%d %o %x %c 如果是 float 型,输入用 %f如果是 double型,输入用 %lfscanf(格式输入字符串,输入项)int a,b;scanf(“%d%d”,&a,&b);格式输入字符串中最好不要加任何其它字符;格式输出字符串中最好加一些普通字符,使得输出更加直观。输入一正整数,将其转换成多少小时多少分钟输入一半径 r,输出 圆的面积 s 和 周长 c。跳过输入:%*d 复合语句: 语句1;语句2;.空语句: ; ;第四章 选择结构关系表达式 逻辑表达式表达式结果一定是逻辑值在C里,逻辑真用 1 来表示,逻辑假用 0 来表示,而且达式结果如果不为0,则一律认为是真,即结果为1。关系表达式 关系运算符: = = = = !=逻辑表达式 逻辑运算符: & | ! 与 或 非短路: & |int a,i=0,j=3;a=i+ & +j;由于参加 & 运算的两个表达式,如果确定 &左边的表达式结果为假,则不再执行右边。| 也有短路情况。1 if 语句格式:if(表达式)语句1;如果表达式结果为真,那就执行语句1;如果表达式为假,就不执行语句1。if(a%2!=0).if(a%2).if(a%2=1).表达式 可以是任意表达式,甚至是常量都可以。 式子的结果2 ifelse语句 格式: if(表达式)语句1; else 语句2;如果表达式结果为真,则执行语句1,否则就执行语句2。例:输入 a,b,c三个数,输出最大数。习题: 输入一名同学的年月日,输入今天的日期,输出该同学的实际年龄。1990 10 20 y0 m0 d02010 7 16 y1 m1 d13 ifelse嵌套例:输入一成绩 cj,输出成绩的等级: 90100 A 8090 B 6080 C =90 & cj=80) printf(“Bn”);else if(cj=60) printf(“Cn”); else printf(“Dn”);* else 和 if 配对的问题:else 永远与其上最近的if 语句配对4 多分支结构switch(表达式) case 常量1 :语句1; case 常量2 :语句2; default :语句n;case 后面的常量,往往是表达式计算的结果,由于表达式的结果可能有多种情况,因此就配有多条case语句。输入一成绩 cj,输出该成绩的等级。int cj;scanf(“%d”,&cj);switch(cj/10) case 9 : printf(“An”); case 8 : printf(“Bn”); case 7 : printf(“Cn”); case 6 : printf(“Dn”); default : printf(“En”);break 语句,可以起到退出整个switch结构。5 条件语句:格式: 表达式1?表达式2:表达式3式1如果为真则取式2作为整个表达式的结果,式1如果为假则取式3作为整个表达式的结果。x= (x=0 ? x :-x);第五章 循环结构1 while 2 dowhile 3 for例:要求输出5000个*循环三要素: 初值、终值、步长 三要素可以确定循环执行的次数1 while 语句格式: while(表达式)语句1;语句2; 循环体只要表达式结果为真就执行循环体。输出 1 2 3 4 . 100计算1+2+3+80的和并输出。输入一整数 n,计算 n! 并输出。 1*2*3*4*n 2 dowhile循环格式: do 语句1; while(表达式);dowhile循环 和 while 循环区别: 如果循环初始条件一次也不满足,while循环一次也不能执行,而 do while循环可以执行一次; 但如果循环条件是正常的判断条件,那么while 和 dowhile 两者的功能完全相同。1 - 1/3 + 1/5 1/7 +. 1/101 的和例:1/1 +1/2 +1/3 +.1/n 的和,n由自已输入。int i=1 ,n;double s=0;scanf(“%d”,&n);do s=s+1./i; i+;while(i=n);printf(“s=%fn”,s);输出20003000年间的所有的润年。 (y%400 =0) | (y%4=0 & y%100!=0)while 语句可以控制输入数据的取值范围3 for 语句格式: for(表达式1;表达式2;表达式3)循环体;注:表达式1 一般是初值;表达式2 一般可以理解为终值;表达式3 一般是步长。for(i=1;i=100;i+)s=s+i;猴子吃桃:猴子从山上摘了很多桃子,很高兴,当即吃了一半,后觉不过瘾又多吃了一个;第二天早上又从剩下的桃子中吃了一半,后觉不过瘾又多吃了一个;以后每天早上都吃了前一天留下的桃子一半还多一个;到了第十天,猴子准备再吃桃时发现只剩下一个,问第一天猴子总共摘了多少个桃子。 10 1 9 4 (1+1)*2 8 10 (4+1)*2 (10+1)*24 for 循环嵌套 for(i=1;i=4;i+) for(j=1;j=i;j+)for 循环嵌套 往往存在两种形态: 矩形 三角形在循环中出现 break语句和 continue语句:break退出本层循环(如果只有一个for循环,也可理解为:break退出整个循环体)continue 为结束当前一步循环,如果continue后面还有语句将不再执行,转而执行下一步循环。第6章 字符型常量: 单引号都是以ASC值进行存储。转义字符:一般都是以 开头; n 换行符 0 字符串结束标志 ddd d必须是一个八进制数 等价于: 0ddd xff f是一个十六进制数字符型变量:char x,y;用scanf函数对字符型数据进行输入时,不要乱加空格、回车等普通字符。对于字符的输入和输出,有两个专门的函数:ch=getchar();ch是个变量名,输入一个字符给变量ch。putchar(ch);输出字符ch例:输入若干字符,以 ? 作为结束标志,要求统计共输入了多少个单词。while(ch=getchar()!=!)第7章 函数函数的分类: 1 主函数: main() 2 库函数:printf() pow() fabs() 3 用户函数: 用户自己定义的函数函数的格式: 函数名(参数)用户函数,要求先定义后使用1 函数的定义:函数类型名 函数名(参数类型名 参数名); int fun(int x, int y) int z; z=x+y; return z;2 函数的调用: 格式:函数名(参数名)3 参数: 形式参数 形参 (函数定义时的参数) 实际参数 实参 (函数调用时的参数)参数传递时,一定是由实参传递给形参,是一种单向传递,绝对不会由形参传回给实参。4 返回值当调用子函数,需要一个返回值,那么可以在子函数中用 return 子句; 每一个子函数最多只能有一个返回值。*return 和函数类型的关系:函数调用分为两种形式: 1 c=fun(a,b); 有返回值 2 fun(a,b); 无返回值printf(“%dn”,fun(a,b);函数的类型按类分为两种: 1 int 、double 、char (这种类型的函数往往都有返回值); 2 void (无类型,这类型函数没有返回值)如果函数有返回值,可以用return子句来做,一旦函数有return子句,那么该函数的类型应该是int、double 或 char 中的一种;如果函数无返回值,那么函数中一定不能出现 return 子句,该函数类型往往应该是 void类型。主函数与子函数的位置关系:1 主在前,子在后;(一定要在主函数前字义子函数)2 子在前,主在后; 可以不用额外的去定义子函数主函数: 定义,函数调用,输出;子函数: 完成功能c:wexam24990001第八章 地址和指针地址: int a;正确定义后,C会自动开辟一个4B的空间供a 使用。(电脑中,为了方便操作系统的管理,每一个空间都有地址的。)指针的定义:int *p;定义了一个指针p,该指针只能指向一个整型变量的地址。int *p,a;p=&a;p指向了a的地址,*p就是该地址里的内容。int *x; x 对应的是地址 *x 对应的是值int a,*p=&a;定义时,正确,边定义指针边赋值。指针与函数的应用:main() int a,b,s; scanf(%d%d,&a,&b);s=fun(&a,&b); 实参是变量的地址printf(s=%dn,s);实参如果是地址,形参应该是指针。指针的移动1122334455 p*p+ 等价于 *(p+)*+p+*p在C里,*和+ 的优先级相同,C采取自右向左的结合方式。第九章 数组一维数组、二维数组一个数组可以存放多个元素;1 数组的定义:int a8;定义了一个一维数组,数组名为a;该数组共可存放8个整型数据; 数组组里共存放了8个元素,具体表示到某个元素时,要用下标,C里规定数组的下标从0开始: a0、a1a7int a8;数组一经定义,马上会去开辟8*4个字节供该数组使用,而且这些空间是连续的空间。2 赋初值int a8=1,2,3,4,5,6,7,8;int a8=1,2,3; 对数组赋初值,如果只赋了部分元素,那么其余元素系统会自动赋为0。3 数组的长度 定义一个数组,要求数组的长度必须固定; 数组的长度是整型常量 数组的长度一般不能省略; int a ; 错误 如果边赋初值,边定义时,数组的长度可省。 int a =1,2,3,4,5; 正确4 输入和输出: int a8=1,2,3,4,5,6,7,8; printf(“%d . %d”,a0,a1,.a7); 输出时,建议用 for 循环来做 for(i=0;i8;i+)printf(“%d”,ai);输入:用 for for(i=0;i8;i+)scanf(“%d”,&ai);对一维数的输入和输出,一般要求用for循环来做5 一维数组与指针int a8;数组名 a 就是数组的首地址;数组中第0个元素的地址,&a0与a相等;a+i 就是第i个元素的地址;int a8,*p;p=a;接下来相要表示数组中第i个元素的地址: &ai a+i p+i &pi想要表示数组中的元素:ai *(a+i) *(p+i) piint a8,*p;p=a;p 就是a ,a就是p应用:3 从数组中删除指定元素。4 已知有一有序数组: -7 2 6 11 20 35 49 75 随机输入一 x,把x插入到数组中,要求插入完,数组仍然有序。 25int a10=-7,2,6,11,20,35,49,75;一维数组、指针、函数void fun(int *p) p0void main() int a10=-7,2,6,11,20,35,49,75; fun(a); 实参是一维数组名,数组的首地址如果参数传递时,实参是一维数组名,那么形参必须是一个指针,或者也是一个一维数组。应用:5 输入一个一维数组,要求将整个数组逆序存放。6 对一维数组进行排序for(i=0;i7;i+)for(j=i+1;j8;j+)for(i=0;iN-1;i+)for(j=i+1;jN;j+)6 将十进制转换成二进制输出8 100012 1100二维数组1 定义: int aMN; 定义了一个二维数组,数组名为 a;该数组共有M行,N列,共可存放M*N个元素,而且都是整型数据。 行标和列标定义时都必须固定,都必须是常量;在赋初值时,行标可省。任何时候列标都不能省。2 赋初值int a34=1,2,3,4,5,6,7,8,9,10,11,12;int a34=1,2,3,4,5,6,7,8,9,10,11,12;只赋部分元素:(其余元素

温馨提示

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

评论

0/150

提交评论