您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第一章C语言基础知识-精选
第一章C语言基础知识第一节C语言的基本格式一、一个简单的C语言程序例1:计算两个整数之和第1行:#include“stdio.h”第2行:main()/*主函数*/第3行:{第4行:inta,b,sum;/*变量说明*/第5行:a=10;/*把整数10赋值给变量a*/第6行:b=20;/*把整数20赋值给变量b*/第7行:sum=a+b;/*把两数之和赋值给变量sum*/第8行:printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*把计算结果输出到用户屏幕上*/第9行}函数功能:求两数之和程序说明:第1行是表示包含一个头文件。第2行:main是函数名,表示是主函数,每个C程序都必须有一个主函数,也只能有一个主函数。主函数具体写法为:main(){/*此处写函数的具体执行语句*/}第3行和第9行:一对大括号{}之间的内容是函数的具体内容。第4行:int是英语“整数(integer)”的简写。a,b,sum是变量第5行的意思是让变量a的值为10.第6行的意思是让变量b的值为20第7行表示把变量a加上变量b的和赋值给变量sum.第8行是将计算的结果输出到屏幕上。其它说明:1、程序中的注释:C语言程序用/*开头,用*/结尾表示程序的注释例2:main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf(“a+b=%d\n”,a+b);}输出结果:a+b=102、C语言函数可以分为两大部分:定义部分和执行部分,定义部分应在执行部分的前面,当然两个部分都不是必须的。例3:main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf(“a+b=%d\n”,a+b);}定义部分执行部分例4:main(){printf(“Hello,spels!”);}此例中只有执行部分,没有定义部分执行部分3、C程序中变量必须先定义,后使用。4、C程序中语句后必须有一个分号。5、C程序书写格式自由。一般一条语句写一行,采用缩进格式main(){inta=0,b=0;a=10;b=20;printf(“a+b=%d\n”,a+b);}6、C程序的书写是区分大小写的。如main和Main是不一样的。一、标识符1、命名规则(1)标识符只能由字母、数字、下划线组成。(2)标识符的第一个字符必须是字母或下划线。(3)标识符是区分大小写的。如:Abc和abc是不同的例5:判断下列标识符是否合法axsum3ss3spelsyes?yes-no_to123_123r第二节标识符、常量与变量2、标识符的分类(1)关键字:见书附录二。如:int,float,char,double(2)预定义标识符主要有各种函数名称和编译预处理命令如:printfsinscanfdefineinclude(3)用户自定义标识符:由用户根据需要定义的标识符,主要用于变量和自定义函数的命名。要求:不能和关键字相同,也尽量不要和预定义标识符相同。例6:以下不能定义为用户标识符的是()A)scanfB)VoidC)_3com_D)int分析:int是关键字例7:以下不合法的用户标符是()A)j2_KEYB)DoubleC)4dD)_8_分析:标识符不能以数字开头DC二、常量常量:是指在程序执行过程中其值保持不变的量1、普通常量整型常量如:323100实型常量如:12.32.71828字符常量如:‘a’‘?’(特征:单引号)字符串常量如:“abcd”(特征:双引号)2、符号常量例8:计算圆面积的C语言程序#definePI3.14159main(){floatr,area;r=12.5;area=PI*r*r;/*等价于:area=3.14159*r*r;*/printf(“area=%f\n”,area);}注:习惯上符号常量一般用大写字母书写,以区别于变量名(变量名一般用小写字母书写)。三、变量变量:就是在程序运行过程中其值可以改变的量。例9:变量的应用#include“stdio.h”main(){inta=10,b=20,c;a=30;b=40;c=a+b;printf(“c=%d\n”,c);}例10:下列定义变量的语句中错误的是____A)int_int;B)doubleint_;C)charFOR;D)floatUS$;分析:选项D中变量名不符标识符的定义要求D第三节整型数据一、数制转换数制说明十进制:数码有0,1,2,……9,运算规则为加法逢十进一,减法借一当十二进制:数码有0,1,运算规则为加法逢二进一,减法借一当二八进制:数码有0,1,2……7,运算规则为加法逢八进一,减法借一当八十六进制:数码有0,1,2……9,A,B,C,D,E,F,运算规则为加法逢十六进一,减法借一当十六例:二、八、十、十六进制数大小对照表十进制01234567二进制011011100101110111八进制01234567十六进制01234567十进制89101112131415二进制10001001101010111100110111101111八进制1011121314151617十六进制89ABCDEF表示形式如120D,10111B,347Q,AB9H或(120)10,(10111)2,(347)8,(AB9)161、将十进制数转换成二进制规则:除2取余例:(45)10=()22、将十进制数转换成八进制、规则:除8取余例:(45)10=()8101101553、将十进制数转换成十六进制规则:除16取余例:(45)10=()16练习:请计算100转换成二进制,八进制,十六进制分别是多少?(100)10=()2(100)10=()8(100)10=()162D1100100144644、二进制、八进制、十六进制转十进制规则:按权展开例:(1011011)2=()10(123)8=()10(12B)16=()10练习:(11101)2=()10(37)8=()10(AF)16=()10918329929311755、二进制与八进制、十六进制的转换方法:二进制与八进制转换是三位对应一位二进制与十六进制转换是四位对应一位(13)8=()2(E3)16=()2(1001101)2=()8(1001101)2=()16练习:(24)8=()2(8D)16=()2(111011101)2=()8(111011101)2=()161011111000111154D010100100011017351DD二、整型常量1、十进制常量,如:0,129,-232、八进制常量以数字0开头,如:0127,0343、十六进制常量以0x或0X开头,如:0x23,0xAF注:C语言中不能直接表示二进制数常量例10:以下选项中可作为C语言合法整数的是____A)10110BB)0386C)0XffaD)x2a2例11:不合法的十六进制整数是_____A)0x16B)0XabcC)0x15D)oXF123CD例12:以下程序运行后的输出结果是()main(){intx=0210;printf(“%X\n”,x);}说明:%X表示按十六进制数的形式输出结果输出结果:88三、整型变量整型变量分为)(int)(int)(int)(unsignedlongshort无符号整型长整型基本整型短整型数据类型关键字占用的字节数数值范围基本整型[signed]int4-214783648~214783647短整型[signed]short[int]2-32768~32767长整型[signed]long[int]4-214783648~214783647无符号整型unsigned[int]40~4292967295无符号短整型unsignedshort[int]20~65535无符号长整型unsignedlong[int]40~4292967295不同类型的整型数在内存中所占用的字节数和数值范围四、整数在内存中的存储形式1.有符号正整数有符号正整数的存储形式称为”原码”例:正整数10,在内存中的二进制为:(短整数)15141312111098765432100000000000001010符号位:0表示正,1表示负最小正整数(十进制数是1)00000000000000000000000000000001最大正整数是:(十进制是231-1=214783647)011111111111111111111111111111112.负整数C语言中,负整数以”补码”形式存放.例:求-6的在内存中的存储形式(1)求正整数6在内存中存放的原码为”0000000000000110”(2)求原码的反码:即将原码中的”0”变”1”,”1”变”0”,由此可得反码:1111111111111001(3)将反码加1,就可得-6的补码为:1111111111111010练习:求-10的补码-10的补码是1111111111110110例:已知补码求真值已知补码1111111111111101,求真值方法:(1).将补码各位取反(2)将得到的结果加1(3)将得到的二进制数转换成十进制数(4).根据补码的最高位判断整数的正负.结果为:-3注:四个字节(32位)存放的最小整数为10000000000000000000000000000000(十进制为-214783648)3.无符号整数3130……210……数值位最大的无符号整数是11111111111111111111111111111111(十进制数是232-1=4292967295)和-1的补码在内存中的存放形式一致例:有以下程序main(){unsignedinta;intb=-1;a=b;printf(“%u”,a);/*%u表示按无符号数格式输出*/}程序运行结果是____A)-1B)4292967295C)32767D)-32768B第四节实型数据一、实型常量在C语言中,实型常量有两种表示形式:小数形式和指数形式。(1)小数形式如:3.141590.15812.0.0.36-18.0(2)指数形式1e5(表示数值1×105)1.25E+4(表示数值1.25×104)2.0E-3(表示数值2.0×10-3)注意:指数形式实型常量要求E的前面要有数,E的后面是整数如:e51.25E2.0E1.3都是不正确的。例:以下选项中合法的实型常数是_____A)5E2.0B)E-3C).2E0D)1.3E例:以下选项中,不能作为合法常量的是____A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0CB二、实型变量C语言中,实型变量分为单精度(float)和双精度(double)两种。定义形式如下:floatx,y,z;doublea,b,c;数据类型关键字占用的字节数取值范围有效数字单精度float4-1038~10387双精度double8-10308~1030815~16第五节算术运算符及表达式一、算术运算符和算术表达式1、算术运算符与优先级次序高低()+-(正负号)*/%+-(加、减号)同级同级同级单目运算双目运算符说明:(1)算术运算符两边的运算对象类型必须一致才能运算,运算结果的类型与运算对象类型一致。如:5/2,1/2,2*4(2)如果算术运算符两边的运算对象类型不一致,则低类型向高类型转换。类型从高到低(double,float,long,int,short,char)如:5.0/2,2.5*2(3)%两边的运算对象必须是整数如:5%2,100%3,3%6,而5.4%2是错误的。如果运算对象为负时,运算结果的符号与被除数相同如:-5%2,5%-22、算术表达式就是用算术运算符和圆括号连接起来的式子例:表达式3.6-5/2+1.2+5%2的值是_____A)4.3B)4.8C)3.3D)3.8二、强制类型转换格式:(类型名)表达式如:(int)2.36结果为2(float)5/2结果为2.5D练习:请计算下列表达式的值已知:inta=5,b=25,x=5;(1).a+b%4*(int
本文标题:第一章C语言基础知识-精选
链接地址:https://www.777doc.com/doc-5135396 .html