第一章微型计算机基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第⼀章微型计算机基础知识
前⾔
全国⾼等教育⾃学考试课程运输管理是物流管理专业的基础课程。
根据全国⾼等教育⾃学考试指导委员会的⽂件精神和《》课程⾃学考试⼤纲以及机电⼀体化专业专科段考试计划的要求,并结合运输管理实践性很强的特点⽽编写的⾃学考试教材;在此基础上,我们综合考虑考试特点和学⽣学习的难点,编写了《微型计算机原理及接⼝技术同步练习》⼀书,供⼴⼤考⽣和辅导教师参考。
本书作为全国⾼等教育⾃学考试物流管理专业和中国物流职业经理资格证书考试专⽤教材之⼀《微型计算机原理及接⼝技术》的应试辅导书,既为应试考⽣总结梳理了教材中考核的知识点,⼜提供了模拟题和案例分析供读者⾃我测试。
⾃学考试是⼀种标准参照考试。
重点考核应试者对基本知识、基本理论和基本技能的掌握程度,以及分析、解决问题的能⼒。
因此应试者在学习时要特别注意以下⼏点:1.以⼤纲为准绳
考试⼤纲是命题的依据,考题不会随意扩⼤或缩⼩考试⼤纲的要求,当教材与⼤纲表述不⼀致时,以⼤纲为准,所以考⽣⼀定要明确⼤纲的要求,尤其要特别注意⼤纲对每个知识点的层次要求。
2.抓住知识点与知识点之间的联系与区别,按⼤纲要求细读教材。
3.通过习题,加深对知识点的理解,检查存在的问题。
练习对于巩固各知识点的掌握是⼀种⾏之有效的⽅法,也是检查⾃⼰对知识点掌握程度的⼀种重要尺度。
适量的练习是必要的,但不可陷⼊题海,甚⾄盲⽬猜题。
全书分为五个部分:
本章内容概要
介绍课程学习重点、学习难点、和考试要求。
从整体上讲述本章的基本脉络,使考⽣快速、全⾯地把握本章基本内容。
典型例题解析
通过单项选择题、多项选择题、名词解释、简答题、计算题、.论述题及案例分析题等形式,从多⽅⾯、多⾓度让学⽣理解课程的内容,特别是案例分析,帮助学⽣学会分析实际问题,以加深对⼤纲内容的理解,测试⾃⼰对考核知识点的掌握程度。
课后习题解答
结合教材对课后习题进⾏解答,帮助考⽣理解记忆。
综合同步练习及解答
根据⼤纲的考试结构,通过本书熟悉题型,认真学习题型分析,举⼀反三地反复练习,以适应不同形式、不同难度的考题,提⾼应试能⼒。
模拟试题及答案
根据试卷的能⼒结构、难度结构、题型结构要求,编制了三套试卷,供考⽣练习,以帮助考⽣了解试卷结构,题序、题量和命题思路。
本书具有如下特点:
●紧扣考试⼤纲的考核要求,对识记的基本概念进⾏了描述,对领会的基本原理
和⽅法进⾏了讲解,着⼒剖析了教材中的重点和难点内容。
●本书采⽤⼤量的图表归纳总结知识要点,便于考⽣的理解和记忆。
●对教材的练习题提供了详细的解答,并补充了⼀些典型习题,使考⽣能够加深
对考核知识点的掌握。
本书有较强的针对性,希望能帮助读者在复习迎考阶段取得事半功倍的效果。
需要注意的是,本书中加“*”的相应内容为⼆级考⽣需要掌握的内容。
第1章微型计算机基础知识
本章内容概要
通过本章学习,应了解微型计算机和单⽚机的发展,掌握计算机中数的表⽰⽅法,各种进制数的转换和有符号数的表⽰⽅法,掌握微型计算机的基本组成原理,了解常⽤的计算机语⾔和计算机的解题过程。
⼀.本章重点
本章重点是计算机的组成和计算机中数的表⽰,计算机解题的⼯作过程。
⼆.本章难点
本章难点是计算机中有符号数的各种表⽰⽅法,机器数和真值的关系。
三.考试内容
1.微处理器和微型计算机的发展。
2.单⽚计算机的发展。
3.计算机中⽆符号数的表⽰,各种进制数的转换。
4.计算机中有符号数的表⽰。
5.字符编码(BCD码和ASCII码)。
6.计算机的基本组成。
7.计算机语⾔(机器语⾔,汇编语⾔,⾼级语⾔)。
8.计算机的解题过程(CPU的结构;指令,指令系统和程序的概念;解题过程)。
课后习题解答
1.将下列⼗进制数转换为⼆进制和BCD数。
(1)67.375 (2)936.5 (3)268.875 (4)218.0625
答:(1)67.375=1000011.011 BCD=0110 0111.0011 0111 0101
(2)936.5=1110101000.1 BCD=1001 0011 0110.0101
(3)268.875=100001100.111 BCD=0010 0110 1000.1000 0111 0101
(4)218.0625=11011010.0001 BCD=0010 0001 1000.0000 0110 0101 2.将下列⼗六进制数转换为⼗进制。
(1)0A6BH (2)FFH (3)4000H (4)5FFFH (5)0400H
答:0A6BH=2667 FFH=255 4000H=16384 5FFFH=24575 0400H=1024 3.⽤补码表⽰法,列竖式计算下列各题。
(1)-75+(-7);(2)-84-(-14)。
答:(1)-75+(-7)= 10110101+11111001=10101110
(2) –84-(-14)= 10101100-11110010=10111010
4. ⽤16位⼆进制,写出下列⼗进制数的原码、反码、补码
(1)+230 (2)-230 (3)+999 (4)-999
答:(1)+230原=0000000011100110 +230反=0000000011100110 +230补=0000000011100110
(2) -230原=1000000011100110-230反=1111111100011001
-230补=1111111100011010
(3) +999原=0000001111100111 +999反=0000001111100111
+999补=0000001111100111
(4) -999原=1000001111100111 -999反=1111110000011000
-999补=1111110000011001
5. ⽤8位、10位、16位长的⼆进制⽆符号数可表⽰⼗六进制数的范围是多少?可表⽰⼗进制数的范围为多少?⽤16位⼆进制补码所表⽰的整数,其相应⼗进数的范围是多少?答:8位⼆进制⽆符号数可表⽰⼗六进制数的范围是0~FF、⼗进制范围为0~255;10位⼆进制⽆符号数可表⽰⼗六进制数的范围是0~3FF、⼗进制范围为0~1023; 16位⼆进制⽆符号数可表⽰⼗六进制数的范围是0~FFFF、⼗进制范围为0~65535。
⽤16位⼆进制补码所表⽰的整数,其相应⼗进数的范围是-32768~+32767
6.已知X、Y的值如下,求[x]补,[y]补,[x+y]补,[x-y]补,并说明结果的正确性,设补码⽤8位⼆进制数表⽰。
答:正数的补码表⽰与原码相同,最⾼位为符号位,⽤“0”表⽰正,其余位为数值位。
⾯负数的补码为其反码,且在最低位加1形成。
8位⼆进制补码所能表⽰的数值为+127~-128;当求补码的真值时,如最⾼位为0时,其余7位即为此数的⼆进值。
当⾼位为1时,需反其余7位求反以后最低位加1,才是它的⼆进制值;当负数采⽤补码时,就可反减法转换为加法。
典型例题分析
1.CPU 主要由运算器与控制器组成,下列说法中正确的是()。
A.运算器主要负责分析指令,并根据指令要求作相应的运算
B)运算器主要完成对数据的运算,包括算术运算和逻辑运算
C)控制器主要负责分析指令,并根据指令要求作相应的运算
D)控制器直接控制计算机系统的输⼊与输出操作
【答案】B
【解析】运算器的功能就是对数据进⾏算术和逻辑运算。
选项A.不符合运算器的定义;选项C)控制器分析指令,并发出执⾏指令的命令,但不直接进⾏运算;选项D)控制器通过指令控制输⼊输出设备进⾏⼯作,再由输⼊输出设备完成系统的输⼊输出,输⼊与输出操作
2.计算机的存储器完整的应包括()。
A.软盘、硬盘B)磁盘、磁带、光盘
C)内存储器、外存储器D)RAM、ROM
【答案】C
【解析】计算机的存储器包括内存和外存,其中内存包括ROM 和RAM,⽽外存包括软盘、光盘、硬盘和磁带。
选项
A.,B)和D)说明的都是其中的⼀部分。
3.下列叙述中正确的是()。
A.指令由操作数和操作码两部分组成
B.常⽤参数xxMB 表⽰计算机的速度
C.计算机的⼀个字长总是等于两个字节
D.计算机语⾔是完成某⼀任务的指令集
【答案】A。
【解析】指令是完成某种操作的命令,其中包括操作码和操作数。
前者说明指令的性质,后者说明操作数或操作数的地址;选项B)计算机的速度是⽤主时钟的频率或每秒执⾏多少条指令来表⽰;选项C)字长是CPU ⼀次直接处理⼆进制数的位数,并不限定为16 位(双字节);选项D)完成某⼀任务的指令集是程序,⽽不能泛称为计算机语⾔。
4.在计算机系统中,可执⾏程序是()。
A.源代码B.汇编语⾔代码C.机器语⾔代码D.ASCII 码
【答案】C
【解析】机器语⾔是计算机惟⼀能够直接识别的语⾔。
选项A.源程序必须经过编译或汇编,⽣成机器语⾔程序之后才能执⾏;选项B)汇编语⾔代码属于源程序,计算机不能直
接执⾏;选项D)ASCII 码不是程序,不能由机器执⾏。
5.和⼗进制数255 相等的⼆进制数是()。
A.11101110 B.11111110 C.10000000 D.11111111
【答案】D
【解析】将⼗进数255 ⽤除2 取余数的⽅法转换成⼆进制数,其结果正好是11111111。
6.微机中,对输⼊输出设备进⾏管理的基本程序模块(BIOS)存放在()。
A.RAM 中B.ROM 中C.硬盘中D.寄存器中
【答案】B
【解析】BIOS 程序与DOS 的3 个基本程序分开存放,固化在ROM 中,因此不在硬盘中,由于需要长期保存,因此也不可能存放在RAM 或寄存器中。
7.将下列⼗进制数分别转换为⾮压缩的BCD 码和压缩的BCD 码:
(1)46 (2)52 (3)99 (4)37
【答案】(1)46 ⾮压缩的BCD 码为0406H,压缩的BCD 码为46H。
(2)52 ⾮压缩的BCD 码为0502H,压缩的BCD 码为52H。
(3)99 ⾮压缩的BCD 码为0909H,压缩的BCD 码为99H。
(4)37 ⾮压缩的BCD 码为0307H,压缩的BCD 码为37H
【解析】⾮压缩的BCD 码⽤⼀个字节来表⽰⼗进制数的⼀个位,其中⽤低4 位表⽰数值,⾼4 位为0。
压缩的BCD 码⽤⼀个字节表⽰两位⼗进制数,⽤⾼ 4 位表⽰⼗进制的⼗位数,低4 位表⽰⼗进制的个位数。
8.求下列⼗进制数对应的8 位⼆进制补码的表⽰形式:
(1)-50 (2)30 (3)-58 (4)-128
【答案】(1)-50 的8 位⼆进制补码为11001110B或CEH。
(2)30 的8 位⼆进制补码为00011110B或1EH。
(3)-58 的8 位⼆进制补码为11000110B或C6H。
(4)-128 的8 位⼆进制补码为10000000B或80H
【解析】⾸先应将⼗进制数转换成⼆进制数的真值。
正数的补码同原码,负数的补码是在原码基础上除符号位外取反加1。
9.将下列⼗六进制数化为⼗进制数和⼆进制数:
(1)0D742H(2)8765H(3)0FFDC H(4)2468H
【答案】
(1)0D742H=55106D=1101011101000010B
(2)8765H=34661D=1000011101100101B
(3)0FFDCH=65500D=1111111111011100B
(4)2468H=9320D=0010010001101000B
【解析】⼗六进制转换为⼗进制数也可以采⽤乘幂法,在乘的过程中⾸先要将每位⼗六进制数转换为⼗进制数,如:
0D742H=13*163+7*162+4*161+2*160=13*4096+7*256+64+2=53248+1792+66=55106D ⼗六进制与⼆进制之间的转换⾮常⽅便。
⼗六进制的每⼀位数则需要⽤4 位⼆进制数表⽰。
例如,⼗六进制数 D ⽤⼆进制表⽰为1101,⼗六进制数7 ⽤⼆进制表⽰为0111,⼗六进制数4 ⽤⼆进制表⽰为0100,⼗六进制数2 ⽤⼆进制表⽰为0010。
因此⼗六进制0D742H ⽤⼆进制表⽰为1101011101000010。
10.计算机的基本结构由哪⼏部分组成,其中各部分的作⽤是什么?
【答案】
【解析】⼀个完整的计算机系统由计算机硬件和计算机软件两⼤部分组成。
硬件各个部分及其作⽤:运算器(⽤来完成计算机的运算);存储器(⽤于记忆原始题⽬、原始数据和中间结果),以及存放使机器能⾃动进⾏运算⽽编制的各种命令;控制器(由它根据事先给定的命令发出各种控制信息,使整个计算过程⼀步步地进⾏);输⼊设备(⽤于输⼊原始数据和命令);输出设备(⽤于输出计算结果)。
软件主要包括系统软件和应⽤软件。
系统软件是为了⽅便⽤户和充分发挥计算机效能,向⽤户提供的⼀系列软件,包括监控程序、操作系统、汇编系统、解释程序、编译程序、诊断程序以及程序库等;应⽤软件是专门为解决某个应⽤领域⾥的具体任务,如进⾏⽣产过程控制或数据处理问题⽽编制的程序。
同步练习
⼀. 填空题
1. 请写出与下列英⽂所对应的计算机部件中⽂名称:ALU_________;Memory_________;ROM_________;
RAM_________。
2. 设(AL)=45H,若是⽆符号数,它代表_________ ,若是带符号数,它代表_________,若是BCD 数,它代表
_________,若是ASCII码,它代表_________。
3. 16位⽆符号定点整数的数值表⽰范围是_________;16位整数(含⼀位符号位)的补码表⽰范围是_________;8位⽆符号整数的数值表⽰范围是
_________;8位整数(含⼀位符号位)的补码表⽰范围是_________。
4. 异或门的运算规则是相异为_________,相同为_________。
⼆、选择题
1. 完整的计算机系统包括()。
A. 硬件系统和软件系统
B.主机和外部设备
C. 主机和应⽤程序
D.运算器、存储器和控制器
2. 在计算机中,表⽰地址通常使⽤()。
A.⽆符号数
B.原码
C.反码
D.补码
3. 若某机器数为10000000B,它代表0,则它是()码形式,它代表- 128,则它是()形式。
A.补码
B.原码
C.反码
D.原码或反码
4. 8位⼆进制补码表⽰的整数数据范围为()。
A.-128~127
B.-127~127
C.-128~128
D.-127~128
5. ⽤8位⼆进制数表⽰“-0”的补码为()。
A.10000000
B.11111111
C.00000000
D.00000001
6. [x1]原=10111101B,[x2]反=10111101B,[x3]补=10111101B三个数中()。
A.x1最⼩
B.x2最⼩
C.x3最⼩
D.x2=x1=x3
7. “与⾮门”中的某⼀个输⼊值为“0”,那么它的输出值为()。
A.为“0”
B.为“1”
C.要取决于其他输⼊端的值
D.取决于正逻辑还是负逻辑
8. 若门电路的两个输⼊量为“1”、“1”,输出量为“0”,不可能完成此功能的是()。
A.“异或”门
B.“与⾮”门
C.“或⾮”门
D.“与”门
综合习题参考答案
⼀. 填空题参考答案:
1.算术逻辑运算单元、存储器、只读存储器、随机存储器
2. 69D、+ 69D、45D、…E?
3. 0 ~65535、- 32768 ~+ 32767、0 ~255、- 128 ~+127
4. 1、0
⼆.选择题参考答案
1. A
2. A 3 . B、A 4. A 5. C 6. C 7.B 8. D
第2章C语⾔概述与最简单的C程序
本章内容概要
通过本章学习,使考⽣了解计算机语⾔的发展与应⽤,明确学习计算机语⾔的⽬的,知道C语⾔的特点,掌握C语⾔数据类型的基本概念与数据类型的定义⽅法,包括字符型、整型和实型(浮点型)常量、变量的表⽰⽅法,算术运算符表⽰⽅法和功能。
通过实验初步了解Turbo C集成化编译软件的应⽤,掌握赋值语句、数据输⼊函数scanf()、数据输出函数printf()及字符输⼊函数getchar()和字符输出函数putchar()的使⽤⽅法,正确编写最简单的C程序。
⼀.本章重点
1.掌握C 语⾔数据类型的基本概念:字符型、整型和实型(浮点型)常量的表⽰⽅法,定义字符型、整型和实型(浮点型)变量
的具体的格式,不同类型数据的特点及应⽤范围,利⽤常量、变量及算术运算符组成合法的算术表达式。
2.熟练掌握⽤赋值语句提供数据和进⾏算术表达式计算的⽅法。
3.熟练掌握数据输⼊函数scanf()和数据输出函printf()的功能及相应格式符的应⽤4.掌握字符输⼊函数getchar()和字符输出函数putchar()的使⽤⽅法。
⼆.本章难点
1.scanf()、printf()、getchar()、putchar()函数的使⽤⽅法。
2.编写最简单C 程序的基本⽅法。
三.考试内容
1.C 语⾔的特点。
2.利⽤⾼级语⾔解题的⼀般过程。
3.C 语⾔的基本数据类型:常量与变量、字符常量、字符串常量与字符变量、整型常量与整型变量、浮点型常量与变量、变量赋初值。
4.C 语⾔的算术运算。
5.C 程序的⼀般组成:仅由⼀个主函数组成的C 程序和由⼀个主函数和若⼲个其他函数组成的C 程序。
6.C 程序的编辑、编译和运⾏。
7.输⼊原始数据的⽅法:赋值的⽅法和键盘输⼊的⽅法--scanf()函数。
8.算术表达式计算。
,
9.数据输出函数--printf()函数。
10.字符输⼊输出函数。
11.简单的C 程序的编写⽅法。
课后习题解答
⼀、将下列代数式写成C 的表达式
1.2
2)2()(x xy -= (x*y)*(x*y)*((-2*x)*(-2*x)) 2. x
z y x 3++= sqrt(x+y+z)/(3*x)
3. y
x x ++|)cos(|1=sqrt(1+abs(cos(x)))/x+y 4.3
121111r r r ++=1/(1/r1+1/r2+1/r3)
⼆、编写简单C程序
1.输⼊矩形的长和宽,计算矩形的⾯积、周长和对⾓线长。
#include
main()
{ float a, h, area; /* 存放矩形长,宽和⾯积的变量 */
printf ("Enter base length and height of triangle!"); /* 输出提⽰信息*/ scanf ("%f%f ", &a,阵&h); /* 输⼊矩形的长和宽,存于变量 a 和 h 中 */ area = a*h; /* 计算⾯积,存于变量 area 中 */
print ("area :%f is %f \n ", a, h, area);
}
2.输⼊圆的半径,计算圆的⾯积、圆的周长、圆的表⾯积和圆的体积。
#include
main()
{ float r; /* 变量r ⽤以存放输⼊的半径数值*/
float mj; /* 变量mj ⽤以存放所求圆⾯积 */
printf ("Enter a value of redius "); /* 输出提⽰信息 */
scanf ("%f ", &r); /* 输⼊半径数值,存于变量r 中 */
printf ("The area of circle is %f \n ", mj);
}
3.输⼊三⾓形的三个边长,计算三⾓形的⾯积。
#include
#include
int main()
{ float a, b, c, s, area;
printf("输⼊三个边长: \n");
scanf("%f %f %f", &a, &b, &c);
s = (a + b + c) / 2;
area = sqrt (s * (s - a) * (s - b) * (s - c));
printf("a = %f, b = %f, c = %f, area = %.3f\n", a, b, c, area);
return 0;
}
4.输⼊⼀个⼩写的英⽂字母,输出它的⼤写及其下两个字符。
例如,输⼊d,输出D、E和F。
#include
main( )
{ char ch;
ch=getchar( );
printf("letter: %c\n",ch);
printf("before letter: %c after letter: %c\n",ch?1,ch+1);
}
5.质点垂直下落,⾼度为ho,初速为vo,输⼊⾼度和初速度,计算下落后的t 时刻,质点距离地⾯的⾼度h。
#include
#include
main()
{ float ho, vo, t, h;
printf("⾼度,初速,时刻: \n");
scanf("%f %f %f", &ho, &vo, &t);
h=ho-(vo*t+0.5*9.8*t*t);
printf("ho= %f,vo = %f, t= %f, h= %f\n", ho, vo, t, h);
}
6.输⼊初速和射⾓,计算初速为v0,射⾓为q度,重⼒加速度为g=9.8时,抛物体的射程s=?#include
#include
main()
{ float v0, q,s;
printf("初速,射⾓: \n");
scanf("%f %f ", &v0, &q);
s=2*v0*v0*sina(q)*cos(q)/9.8
printf("v0 = %f, q= %f, s= %f\n", v0, q, s); }
7.计算机点(x0,y0)到直线ax+by+c=0 的距离的公式为
2
2|
|
b
a c
by
ax
d
++
+
=输⼊点
的坐标x0和y0,计算点(x0,y0)到直线8x-12y+6=0 的距离d=?
#include
main()
{
float x0,y0,d;
int a=8,b=12,c=6;
printf(“请输⼊X0,Y0:\n”);
scanf(“%f%f”,&x0,&y0);
d=abs(a*x0+b*y0+c)/sqrt(a*a+b*b);
printf(“d=%f”,d);
}
典型例题分析
1.以下叙述错误的是()。
A⼀个C源程序可由⼀个或多个函数组成
B⼀个C源程序必须包含⼀个main()函数
CC源程序的基本组成单位是函数
D在C源程序中,注释说明只能位于⼀条语句的后⾯
【答案】本题答案为D。
【解析】A、B、C都是正确的。
⽽注释可以出现在⼀个C源程序的任何地⽅/实际上,在
编译中系统⾃动将C源程序中的所有注释删除,然后再转换成⽬标代码。
所以D是错误的。
2.下列选项中是C语⾔合法标识符的有();是C语⾔关键字的有()。
A ._123
B .main
C .record
D .case
E .8abc
F .my-file
G .OR
H .register I.stdio.h J.good_moming
【答案】标识符有A、B、C、G、J;关键字的有D、H。
【解析】由有关标识符的定义可知,合法的标识符有A、B、C、G、J;由有关关键字的定义可知,是C语⾔关键字的有D、H。
E没有以字母或“_”开头,F中包含有“-”字符,I中包含有/f.”字符,所以它们都不是C语⾔的标识符。
3.可⽤作C语⾔⽤户标识符的⼀组标识是( )。
A. void B.a3-3 C.For D.2a
define _23 _abc DO
WORD if Case sizeof
【答案】本题答案为C。
【解析】在A中void是C语⾔关键字,define是预编译符;在B中a3-3不是合法的标识,if是C语⾔关键字;在D中2a不是合法的标识符,sizeof是C语⾔关键字;只有C 中均是合法的标识符。
4.下例说法正确的是()。
A 在执⾏C程序时不是从main()函数开始
B C程序书写格式限制严格,⼀⾏内必须写⼀个语句
C C程序书写格式⽐较⾃由,⼀个语句可以分写在多⾏上
D C程序书写格式严格,要求⼀⾏内必须写⼀个语句,并要有⾏号
【答案】本题答案为C。
【解析】在C程序中所有的程序都是从main()函数开的所以A是错误的,在C程序中⼀⾏可以写多条语句,只要中间⽤“;”分隔就可以,⽽且不需要⾏号所以B,D都是错误的。
5.程序的3种基本控制结构是________结构、________结构和______结
构。
【答案】本题答案为:顺序,选择(或分⽀),循环(或重复)。
【解析】所有⾼级语⾔的程序结构都分为顺序,选择(或分⽀)if else,循环(或重复)for while 这三种基本结构。
6.C程序的执⾏是从______函数开始的。
【答案】本题答案为:main()。
【解析】⼀个C程序由若⼲个函数构成,其中有且仅有⼀个main()函数,从该函数开始执
⾏程序。
7.指出下⾯字符序列中合法的标识符:
4a1 def a_x_1 $usax 123 0x56 f-123 num# age int 【答案】合法的标识符有:
def a_x_1 age
【解析】C程序标识符不能以数字开头,不能出现+-* /#$,不能是程序的保留关键字。
8.计算机结构化程序设计的3种基本逻辑结构是什么?若要计算m!,请画出其N-S图和程序流程图。
【答案】计算机结构化程序设计的3种基本逻辑结构是:顺序结构、选择(或分⽀)结构和循环(或重复)结构。
计算m!的过程如下:
输⼊m;
i=l,s=l;
while(i<=m)
{
s=s*i;
i=i+l;
}
输出s;
对应的N-S图和程序流程图分别如图a和图b所⽰。
(b)计算m!程序流程图
【解析】计算机结构化程序设计的3种基本逻辑结构是:顺序结构、选择(或分⽀)结构和循环(或重复)结构。
主要考查学⽣对程序流程的掌据,以及对程序算法的理解。
9.⼀个C程序只能包含⼀个.c⽂件吗?
【答案】
【解析】⼀个C程序可以包含⼀个或多个.c⽂件,每个⽂件中包含若⼲个函数,但整个C 程序有且仅有⼀个main()函数。
当⼀个C程序包含多个.c⽂件时,先分别编译各个⽂件产⽣对应的.obj⽂件,然后连接它们⽣成⼀个可执⾏⽂件。
⽣对应的.o均⽂件,然后连接它们⽣成⼀个可执⾏⽂件。
10.举例说明程序的3种控制结构。
【答案】
【解析】C程序的3种控制结构为顺序控制、选择控制和循环控制。
以下为顺序结构⽰例(⽤于求边长为a、b、c的三⾓形⾯积)
a=5,b=8,c=6;
d=(a+b+c)/2;
s=sqrt(s*(s-…)*(s-b)*(s-c);
输出s;
以下为选择结构⽰例
输⼊s;
if (s>=90)
t=?A?
else if(s>=80)
t=?B?
else if{s>=70)
t=?C?
else if(s>=60)
t=?D?
else
t=?E?
输出t;
以下为循环结构⽰例
i=0; s=0;
while(i<=100)
{s=s+i; i=i+1;}
同步练习
⼀.单选题
1.下列数据中属于字符串常量的是()。
A.MICRO B.? MICRO ? C."MICRO"D.? micro ? 2.在内存中应该开辟()个字节来存放字符? \n ? 。
A.1 B.2 C.3 D.4
3.在内存中应该开辟()个字节来存放字符串"CHINA"。
A.5 B.8 C.7 D.6
4.在下⾯的数据中,()是合法的长整型常数。
A.2058764 B.35L C.0.4625 D.2.18E+02 5.下⾯的()不是合法的C 语⾔常量。
A.123 B.? M ? C.0892 D."Flag"
6.下⾯()对变量的说明是错误的。
A.char c1, int x; B.int a, b; float x, y;
C.int a; int b; D.char c1; int x;
7.下⾯()对变量的说明是正确的。
A.Int a, b, c; B.int x, float y; C.int a, x; D.int a, x
8.下⾯的()是合法的C 语⾔字符常量。
A.\ ? 074 ? B.? \x43 ? C.?ab ? D."\n"
9.若有说明int x = 0xDEF;,则下⾯三条语句:
printf ("%4d\n",x);
printf ("%4o\n",x);
printf ("%4x\n",x);
的输出是()。
A.3567 B.3567 C.3567 D.3567
6757 6757 06757 6757
def def 0xdef 0def
10.已知int 类型数据长度为2 字节,那么unsigned int 类型数据的取值范围是()。
A.0~255 B.?32768~32767 C.? 256~255 D.0~65535 11.若w、x、y、z 都是int 型变量。
则执⾏以下语句:
scanf ("%4d+%3d+%2d+%1d", &w, &x, &y, &z);
printf ("%4d+%3d+%2d+%1d\n", w, x, y, z);
后,要求输出为1234+123+12+1 的正确输⼊形式是()。
A.1234123121<回车> B.1234123412341234<回车>
C.1234+1234+1234+1234<回车> D.1234+123+12+1<回车>
⼆、填空题
1.在内存中要⽤________个字节来存储字符串"Double"。
2.字符串"Double"的长度是________ 。
3.字符0 的⼗进制ASCII 码值是48,则字符9 的⼗进制ASCII 码值是________。
4.字符型(char)数据在内存中是以其
________ 的形式存储的。
5.8 位⽆符号⼆进制数能够表⽰的最⼤⼗进制数是________ 。
6.语句printf ("a\bRe\ ? CH\ ? y\\\bou\n");的输出结果是________。
7.若有说明char s1="5"; 那么s1 ⾥包含个字符________。
8.⼗进制数125 在⼀个字节的⼆进制表⽰是________ 。
三、是⾮判断题(在括号内打“√”或“×”)
1.有变量说明语句:unsigned int x=65535;则执⾏printf("%d\n",x);后,输出结果为1。
()
2.字符串长度与字符串在内存所占⽤的字节数是⼀个概念。
()
3.在C 语⾔中,⽤int 或⽤Int 来说明整型变量都是可以的。
()
4.在C 语⾔⾥,"12"就是整型数12。
()
5.在C 语⾔⾥,\014、\xB7 等形式上虽然出现多个字符,但都只代表⼀个字符。
()6.在C 语⾔⾥,是⽤保留字float 来说明实型变量的。
()
7.在格式输⼊语句scanf("x=%d, y=%f", &x, &y);⾥,“x=”、“y=”以及“,”会⾃动显⽰在屏幕上,⽤户只需键⼊数据就可以了。
()
8.C 语⾔⾥,int 等数据类型所占⽤的内存字节数是由所⽤机器的字长来决定的。
()四、程序阅读题
1.下⾯程序的输出结果是什么?已知字母A 的ASCII 码值为65。
#include
main()
{
char c1 = ? B ? ;
int x = 10;
c1 = c1 + x;
printf ("%c, %d\n",c1, x);
}
2.程序:
main()
{
printf("%d\n",NULL);
printf("%d, %c\n",50,50);
printf("%d, %c, %o\n", 48+10,48+10, 48+10); }
的输出结果是:。