桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY计算机软件基础第一篇C语言程序设计基础第一章C语言基础桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY一、计算机语言、算法、程序的概念1.计算机语言:是人与计算机进行交流的一种语言。2.算法:是解决问题的方法、步骤和思路。如:求a、b两数中的最大数的算法及C程序开始输入a、babmax=amax=b输出max结束YN桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY一、计算机语言、算法、程序的概念3.程序:用某种计算机语言描述解决问题的方法步骤。4.算法与程序的区别:(1)算法是有穷的,而程序可以是无穷的;(2)算法和程序的描述方法不同;(3)算法一般情况是不可执行的,而程序是可执行的;桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY二、计算机解题过程计算机解题过程:注意:C语言编写的程序,一般要经过编辑、编译、连接和运行才能得到程序的结果。提出问题构造模型选择方法编写程序调试运行分析结果桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY三、C的基本数据类型整型数据类型基本类型构造类型指针类型枚举类型空类型实型字符型数组型结构型共用型桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY三、C的基本数据类型1.常量:在程序运行过程中,其值固定不变的量。十进制常量整型实型字符型字符串型八进制十六进制定点实数浮点实数一般形式字符型转义字符型桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY三、C的基本数据类型表1-1整型常量整型常量分类书写形式示例备注十进制通常整数的写法100-300(1)证书前面的“+”可以省略;(2)占2个字节,数值范围是:-32768~32767八进制以0开头,后跟八进制数码0~7067012十六进制以0x或0X开头,后跟十六进制数码0~9、a~f0x10aoXABC桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY三、C的基本数据类型表1-2实型常量实型常量分类书写形式示例备注定点实数正负号+整数+小数点+小数部分-3.4.21-5.整数部分或小数部分可以省略浮点数前置数+e(或E)+指数1.2e3-2.34e-21E-2(1)指数必须是十进制整数(2)前置数不能省略桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY三、C的基本数据类型表1-3字符型、字符串型常量常量类型分类书写形式示例备注字符型常量一般字符型用一对单撇号括起来的单个字符‘B’‘b’字母区分大小写转义字符型以“\”开头的“控制字符”\n\101占1个字节的空间字符串型常量用一对双撇号括起来的单个或多个字符“a”“abc”桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY三、C的基本数据类型2.变量:在程序运行过程中,其值不断变化的量。(1)类型:整型变量、实行变量和字符型变量。(2)变量名:以字母或下划线开头,由字母、数字和下划线组成,而且不能为C语言中的保留字。(3)变量定义的一般形式:类型说明符变量1,变量2,…变量n;(4)变量初始化:在定义变量时,预先给变量设置初值。注意:不能写成:charch1=cha2=‘a’;。桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY三、C的基本数据类型表1-4变量类型说明符变量类型分类类型说明符占用字节数整型变量基本整型int2长整型long4短整型short2实型变量单精度实型float4双精度实型double8字符型变量字符型变量char1桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY四、算术预算符和算数表达式1.基本的算术运算符:名称运算符优先级备注加法+优先级相同,但低于乘、除和求余的优先级;同级运算时自左向右进行减法-乘法*优先级相同;同级运算时自左向右进行(1)两整数相除,商为整数;(2)参与求余运算的两个对象必须是整数,其结果也是整数。除法/求余%桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY四、算术预算符和算数表达式2.书写算术表达式注意事项:(1)乘号*不能省略;(2)所有括号必须是圆括号,而且必须配对;(3)函数自变量用圆括号括起来;(4)三角函数的自变量必须用弧度。桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY四、算术预算符和算数表达式3.不同类型量混合运算原则:(1)自动转换原则转换顺序为:如:3+2.0(2)强制转换原则charintlongfloatdouble如:3+(int)2.0桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY五、赋值预算符和赋值表达式1.赋值表达式(1)书写形式:变量名=表达式;如:a=b=c=0,等价于a=(b=(c=6)),最后结果是a为6。(2)执行过程:首先计算表达式的值,然后转换为“=”左边变量的类型,最后将转换后的结果保存在变量的存储空间中。注意:inta=b=a=6;是错的桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY五、赋值预算符和赋值表达式2.复合赋值运算符名称运算符运算规则结合性示例(inta=3,b=2;)加赋值+=a+=b(等价于a=a+b)从右到左a+=b(最后结果是a中的值为5)减赋值-=a-=b(等价于a=a-b)a-=b(最后结果是a中的值为3)乘赋值*=a*=b(等价于a=a*b)a*=b(最后结果是a中的值为6)除赋值/=a/=b(等价于a=a/b)a/=b(最后结果是a中的值为3)余赋值%=a%=b(等价于a=a%b)a%=b(最后结果是a中的值为0)桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY五、赋值预算符和赋值表达式3.自加、自减运算符名称表达式形式运算规则示例备注自增i++i++(等价于i=i+1)inti=1,j=2,m=3,n=4;写出表达式(i++)*(++j)*(m--)*(--n)的值,及变量的值。表达式的值:27变量的值:i=2;j=3;m=2;n=3.在使用i后,使i的值加1++i++i(等价于i=i+1)在使用i前,使i的值加1自减i--i--(等价于i=i-1)在使用i后,使i的值减1--i--i(等价于i=i-1)在使用i前,使i的值减1桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY六、逗号运算符和逗号表达式1.逗号表达式的一般形式表达式1,表达式2,表达式3,…表达式n;如:a=3,b=a+2,c=a+b,c=a+b+c;该逗号表达式的值为16。2.执行过程从左到右逐个计算各个表达式的值,并将最后一个表达式的值作为该逗号表达式的值。桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY历年真题演练1.(2009.4,单选)下列合法的C语言标识符是()A.staticB.3abcC.abc_2D.am&t2.(2010.4,单选)已知intx=17,y=5;,则表达式x/y的值是()A.0B.2C.3D.3.43.(2010.4,填空)已知inta=1,b=2,d;执行语句d=a0||b2&&(a=3);后,a的值是()。桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评1.下列常量中,不正确的是()A.0021B.0.0C.0.12E5D.E22.关于C语言主函数的描述正确的是()A.C程序可以有多个main函数;B.C程序必有一个而且只能有一个main函数;C.C程序可以没有main函数;D.C程序的执行不一定在main函数开始执行。桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评3.若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()A.2.500000B.2.750000C.3.500000D.0.0000004.C语言中,已知:inta,b,c;下列运算符使用错误的是()A.a++B.b--C.++cD.3++桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评5.C语言中,字符串在计算机中结束的标记是()A.空格B.换行C.\nD.\t6.C语言中,j=i++;等价于()A.j=i;i=i+1;B.i=i+1;j=i;C.j=i;j=j+1;D.j=i;j=i+1;7.C语言中,赋值语句的赋值号“=”()A.可以是常数B.可以是变量名C.只能是表达式D.可以是常数或表达式桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评8.已知有如下程序:main(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}请选择程序正确输出的结果()。A.9,11,9,10B.8,10,9,11C.9,11,9,11D.8,8,11,10桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评9.已知有如下程序:main(){inti=6;a+=a-=a*a;printf(“%d”,a);}A.36B.0C.-24D.-60请选择程序正确输出的结果()。桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评9.下列程序的运行结果是()#includestdio.h#includemath.hmain(){inta=5;a=3+a%4+sqrt(16);a=a/3;a++;printf(“%d\n”,a);}A.2B.2.6C.3D.4桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评10.已知:inti=5,a;当a=++i;语句执行后,变量i和a的值分别是()A.55B.56C.65D.6611.用C语言表示算式2(a+b)/(cd),正确的表达式是()A.2*(a+b)/(cd)B.2(a+b)/(c*d)C.2*(a+b)/(c*d)D.2(a+b)/(cd)桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评12.若有intx;floaty;下面结果为整数型的表达式有()A.(float)(x+y)B.(int)x+yC.2.3+xD.x+(int)y13.已知字符型变量定义:chara;则下列哪一个正确的字符变量赋值操作()A.chara=‘3’;B.chara=“3”;C.chara=%;D.chara=*;桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评14.下列四个选项中,哪一个可以作为字符型常量使用()A.\r\nB.“a”C.\997D.6515.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=52,k=16)后,x的值为()A.4B.16C.32D.52桂林电子科技大学GUILINUNIVERSITYOFELECTRONICTECHNOLOGY同步跟踪测评16.