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