DSP学习4存储器与通用IO端口精文档格式.docx
《DSP学习4存储器与通用IO端口精文档格式.docx》由会员分享,可在线阅读,更多相关《DSP学习4存储器与通用IO端口精文档格式.docx(11页珍藏版)》请在冰点文库上搜索。
a:
4:
{i:
0;s:
23876:
"CDMA移动通信系统网络优化的论文副本@#@@#@毕业设计(论文)@#@题目CDMA移动通信系统的网络优化@#@学院(部)电子信息工程学院@#@专业电子信息工程系@#@学生姓名周万福@#@学号200810312140年级2008级@#@指导教师赵静职称讲师@#@二〇一一年九月@#@CDMA通信系统网络优化@#@摘要:
@#@CDMA(CodeDivisionMultipleAccess)码分多址是在数字技术的分支——扩频通信技术基础上发展起来的一种崭新而成熟的无线通信技术。
@#@CDMA通信系统具有扩频通信系统的特点,抗干扰性强,频谱利用率高,容量大。
@#@它是第三代移动通信系统的主要空中接口技术。
@#@移动通信网是一个不断变化的网络,因此需要对网络不断进行优化以适应各种变化,排除网络中不断出现的各种故障,优化网络资源配置,改善网络运行性能,提高服务质量,从而使网络始终处于最佳的运行状态。
@#@@#@本文对CDMA无线网络的优化技术的概况和发展趋势,网络优化中常见的问题进行研究,并提出了一些优化调整措施和参数配置的建议。
@#@@#@本文主要内容分为:
@#@@#@1、介绍CDMA通信原理及技术@#@2、介绍CDMA通信系统网络优化在国内外的现状,及其网络优化的意义。
@#@@#@3、研究CDMA无线网络故障的分析,针对干扰问题、接入失败、掉话问题等几种典型的无线通信网络故障问题进行具体的分析,从而得到一些CDMA网络优化方面的解决方案,最终达到提高CDMA通信系统网络质量的要求。
@#@@#@关键词:
@#@CDMA移动通信网络优化@#@NetworkoptimizationCDMAcommunicationsystem@#@Abstract:
@#@CDMA(CodeDivisionMultipleAccess)isadigitaltechnologyinthebranch-spreadspectrumcommunicationstechnologydevelopedonthebasisofanewandsophisticatedwirelesscommunicationstechnology.CDMAcommunicationsystemwithspreadspectrumcommunicationsystemischaracterizedbystronganti-interference,spectrumefficiency,high-capacity.Itisthethirdgenerationmobilecommunicationsystem,themainairinterfacetechnology.Mobilecommunicationnetworkisaconstantlychangingnetwork,sotheneedforongoingoptimizationofthenetworktoadapttochanges,excludeavarietyofemergingnetworkfailure,optimizenetworkresources,improvetheperformanceofnetworkoperations,improveservicequality,sothatthenetworkalwaysinthebeststateofoperation.@#@Inthispaper,CDMAwirelessnetworkoptimizationtechnology,progressanddevelopmenttrend,acommonprobleminnetworkoptimizationstudies,andmadesomeadjustmentsandparameterstooptimizetheconfigurationoftheproposal.@#@Thispaperisdividedinto:
@#@@#@1,theintroductionofCDMAcommunicationtheoryandtechnology@#@2,networkoptimizationCDMAcommunicationsystemdescribedinthestatusquoathomeandabroad,andthesignificanceofnetworkoptimization.@#@3,ofCDMAwirelessnetworkfaultanalysisforinterference,theaccessfails,theproblemofdroppedcallsandothertypesoftypicalwirelesscommunicationnetworkproblemsthatarespecificanalysistogetsomeoftheCDMAnetworkoptimizationsolutions,andultimatelytoimproveCDMAcommunicationsystemnetworkqualityrequirements.@#@Keyword:
@#@CDMAMobileCommunicationNetworkoptimization@#@@#@ @#@@#@摘要2@#@第一章绪论@#@1.1研究意义@#@1.2国内外研究现状@#@1.3优化的主要内容@#@第二章基本原理及关键技术@#@2.1CDMA定义@#@2.2CDMA原理@#@2.2.1CDMA系通信模型统@#@2.2.2扩频通信技术@#@2.3CDMA系统的构成@#@2.4CDMA特点@#@2.5CDMA中的关键技术@#@2.5.1统一频率复用@#@2.5.2功率控制@#@2.5.3软容量@#@2.5.4切换技术@#@2.5.5分集接收技术@#@2.5.6CDMA系统中的PN码同步技术@#@第三章CDMA网络优化中的问题及解决方案@#@3.1干扰问题@#@3.1.1邻集列表丢失引起的干扰及解决方案@#@3.1.2突发强PN干扰及解决方案@#@3.1.3共PN干扰及解决方案@#@3.1.4导频污染及解决方案@#@3.1.5室内分布系统对网络的干扰及解决方案@#@3.2接入问题@#@3.2.1接入流程@#@3.2.2接入失败分析及解决方案@#@3.3掉话问题@#@3.3.1掉话机制@#@3.3.2前向干扰引起的掉话及解决方案@#@3.3.3覆盖不足引起的掉话及解决方案@#@3.3.4前反向链路不平衡引起的掉话及解决方案@#@3.3.5业务信道发射功率受限导致的掉话及解决方案@#@3.3.6接入/切换掉话及解决方案@#@3.4.1单通问题及解决方案@#@3.4.2断续问题及解决方案@#@3.4.3串音问题及解决方案@#@3.4.4回音问题及解决方案@#@总结与展望@#@致谢@#@参考文献@#@第一章@#@1.1研究的意义@#@网络优化是项高层次的维护工作,是通过采用新技术手段以及优化工具对正式投入运行的移动通信网络进行参数的修改及网络资源进行合理的分配,使网络达到最佳运行状态,从而提高移动网络质量。
@#@作为移动通信用户,希望在任何地方一打电话就通,而且通话质量要好。
@#@但要做到这些,运营商们所提供的网络必须能提供足够的业务容量。
@#@业务容量与每个用户的业务量有关,也与无线信道的呼损有关,国外运营者呼损率一般在2%,而我国由于经济原因,在郊区时呼损率往往在5%左右。
@#@@#@覆盖是我们在网络优化中重点考虑的因素,覆盖不理想,将会对系统许多方面造成不良的影响。
@#@控制覆盖是优化中比较重要的,所以移动通信网络应提供尽可能大的覆盖范围。
@#@移动通信的网络传播决定了在覆盖区内不可能是100%覆盖,我们只能期望在覆盖区内死角越少越好。
@#@@#@随着用户数量的日益增加,使得通信网络在规模上、结构上不断地向多协议功能、多层面平台演进。
@#@随着通信市场竞争的加剧,使得广大用户对网络质量的要求和业务需求越来越高,如何改善网络运行的性能,提高网络服务的质量,已经成为通信市场企业掌握主动权和增强竞争力的前提。
@#@若能充分利用好自己的设备资源和频率资源,就能使企业获得最大的利益。
@#@与此同时,多变的外界因素也会影响到移动网络的无线环境,使得CDMA这个动态的网络处在不平衡状态,因此,网络优化工作势在必行,它的作用对网络的运行维护、网络规划及工程建设日趋重要,它是一项对网络系统不间断的精雕细琢的工程。
@#@@#@1.2国内外研究的现状@#@国际上通信网络优化行业起步较早,从网络建设进程和市场需求而言,北美,西欧等发达国家通信网络已趋于饱和,各大通信运营商网络建设固定投资由网络搭建、设备投入等基本投入转向网络运维和网络优化投入。
@#@进入21世纪,随着用户数量不断上升,运营商运营业务每年以超过5%的速度增长,对通信网络建设投入更多,至2009年,北美、西欧等发达国家总体移动用户平均普及率已达到90%以上,用户新增规模已出现下降。
@#@@#@通信行业大规模投资逐渐转向新兴的亚洲、非洲等发展中国家,近五年网络建设大规模投入,移动通信网络优化投入比例逐渐上升到10%左右,已逐渐向发达国家靠拢。
@#@@#@目前我国移动网络的建设呈现日新月异的变化,各大运营商都在积极建设自己的网络以达到强大的竞争力,但网络规模的扩大并不意味着网络的完善、在竞争中具有威慑力。
@#@真正意义上竞争力的提高,应靠运营商在不断的工程建设以及摸索中对网络进行不断的优化而提升。
@#@@#@目前全国移动通信网络优化行业的市场结构以服务为主、产品为辅,其中服务约占市场规模的70%。
@#@2006年网络优化服务的市场规模为56.82亿元,到2011年其市场规模可达到106.17亿元,5年的年复合增长率为16.92%.。
@#@指标优化服务仍然是主流业务,占网络优化服务市场的70%以上,业务与用户感知优化服务的增长速度快于测试评估服务和指标优化服务,所占市场份额逐年提高。
@#@@#@第二章基本概念及关键技术@#@2.1CDMA定义@#@CDMA是码分多址数字无线通信技术的英文缩写(codedivisionmultipleaccess),他是在数字技术的分支——扩频技术上发展起来的一种全新的无线通信技术。
@#@该技术得到广泛的应用,美国移动通信公司首选CDMA。
@#@目前全球的CDMA用户已超过1亿多。
@#@国际电信联盟(itu)已将CDMA定为未来移动电话的统一标准。
@#@码分多址是一种利用扩频技术所形成的不同的码序列实现的多址方式。
@#@它不像FDMA、TDMA那样把用户的信息从频率和时间上进行分离,它可在一个信道上同时传输多个用户的信息,也就是说,允许用户之间的相互干扰。
@#@其关键是信息在传输以前要进行特殊的编码,编码后的信息混合后不会丢失原来的信息。
@#@有多少个互为正交的码序列,就可以有多少个用户同时在一个载波上通信。
@#@每个发射机都有自己唯一的代码(伪随机码),同时接收机也知道要接收的代码,用这个代码作为信号的滤波器,接收机就能从所有其他信号的背景中恢复成原来的信息码(这个过程称为解扩)。
@#@@#@2.2CDMA原理@#@CDMA是码分多址的英文缩写(CodeDivisionMultipleAccess),它是在数字技术的分支--扩频通信技术上发展起来的一种崭新而成熟的无线通信技术。
@#@CDMA技术的原理是基于扩频技术,即将需传送的具有一定信号带宽信息数据,用一个带宽远大于信号带宽的高速伪随机码进行调制,使原数据信号的带宽被扩展,再经载波调制并发送出去。
@#@接收端使用完全相同的伪随机码,与接收的带宽信号作相关处理,把宽带信号换成原信息数据的窄带信号即解扩,以实现信息通信。
@#@@#@2.2.1CDMA系通信模型统@#@CDMA移动通信系统中,最重要的要素是无线网络的覆盖、容量、质量、频谱利用率和传输效率等。
@#@从上图可以看到,这些网络要素有效的达成,涉及到从信源编码到射频收发等全程技术;@#@各种技术的良好配合和运用,都会对这些网络要素产生重要作用。
@#@@#@2.2.2扩频通信技术@#@扩频通信技术(扩展频谱通信)它与光纤通信、卫星通信,一同被誉为进入信息时代的三大高技术通信传输方式。
@#@扩频技术是指系统将所需传输的信号用一个带宽远大于信号带宽的高速伪随机编码信号去调制它,使得信息数码的带宽大大扩展;@#@解扩技术是接收端使用与发送端完全相同的伪随机码,与接收的宽带信号作相关处理,把宽带信号解扩为原始数据信息。
@#@CDMA系统中一般采用直扩方式,降低了空口信噪比要求,提高了系统容量和频率利用率真。
@#@@#@下图表明了整个扩频与解扩频过程@#@1.信息数据经过常规的数据调制,变成窄带信号(假定带宽为B1)。
@#@@#@2.窄带信号经扩频编码发生器产生的伪随机编码(PN码:
@#@PseudoNoiseCode)扩频调制,形成功率谱密谋极低的宽带扩频信号(假定带宽为B2,B2远大于B1)。
@#@窄带信号以PN码所规定的规律分散到宽带上后,被发射出去@#@3.在信号传输过程中会产生一些干扰噪声(窄带噪声、宽带噪声)。
@#@@#@4.在接收端,宽带信号经与发射时相同的伪随机编码扩频解调,恢复成常规的窄带信号。
@#@即依照PN码的规律从宽带中提取与发射对应的成份积分起来,形成普通的窄带信号。
@#@再用常规的通信处理方式将窄带信号解调成信息数据。
@#@干扰噪声则被解扩成跟信号不相关的宽带信号。
@#@@#@2.3CDMA系统构成@#@CDMA系统构整个系统由移动终端MT(MobileTerminal)、基站收发信机BT(BaseTransceiver)、基站控制器BSC(BaseStationControl)和移动交换中心MSC(MobileSwitchingCenter)、分组控制功能PCF(PacketControlFunction)模块及分组数据服务节点PDSN(PacketDataSeverNode)等部分组成。
@#@一个集中的BSC和若干个BTS组成基站子系统(BSS),简称基站BS(BaseStation)。
@#@BTS完成无线信号的接收和发送,BSC的功能是对BTS进行控制,使基站和移动台能相互可靠的传输语音数据与信令,实现对空中信道的分配管理,完成呼叫控制、移动性管理和功率控制等功能。
@#@@#@2.4CDMA特点@#@CDMA是扩频通信的一种,具有扩频通信的以下特点:
@#@@#@1)抗干扰能力强。
@#@这是扩频通信的基本特点,是所有通信方式无法比拟的。
@#@@#@2)宽带传输,抗衰落能力强。
@#@@#@3)由于采用宽带传输,在信道中传输的有用信号的功率比干扰信号的功率低得多,因此信号好像隐蔽在噪声中;@#@即功率话密度比较低,有利于信号隐蔽。
@#@@#@4)利用扩频码的相关性来获取用户的信息,抗截获的能力强。
@#@@#@5)多个用户同时接收,同时发送.@#@ 另外在扩频CDMA通信系统中,由于采用了新的关键技术而具有一些新的特点:
@#@@#@
(1)采用了多种分集方式。
@#@除了传统的空间分集外。
@#@由于是宽带传输起到了频率分集的作用,同时在基站和移动台采用了RAKE接收机技术,相当于时间分集的作用。
@#@@#@
(2)采用了话音激活技术和扇区化技术。
@#@因为CDMA系统的容量直接与所受的干扰有关,采用话音激活和扇区化技术可以减少干扰,可以使整个系统的容量增大。
@#@@#@(3)采用了移动台辅助的软切换。
@#@通过它可以实现无缝切换,保证了通话的连续性,减少了掉话的可能性。
@#@@#@(4)采用了功率控制技术,这样降低了平准发射功率。
@#@@#@(5)具有软容量特性。
@#@可以在话务量高峰期通过提高误帧率来增加可以用的信道数。
@#@@#@(6)兼容性好。
@#@由于CDMA的带宽很大,功率分布在广阔的频谱上,功率话密度低,对窄带模拟系统的干扰小,因此两者可以共存。
@#@即兼容性好。
@#@@#@(7)CDMA的频率利用率高,不需频率规划,这也是CDMA的特点之一。
@#@@#@(8)CDMA高效率的OCELP话音编码在保证有较好话音质量的前提下,大大提高了系统的容量。
@#@@#@2.5CDMA中的关键技术@#@2.5.1统一频率复用@#@CDMA仍然采用传统的蜂窝覆盖,但每个小区使用相同的频率(或称为载频),CDMA20001x中,每个载频的带宽是1.25MHz,所有小区中的所有用户使用相同的载频通信。
@#@由于频率统一,每个用户对于其它的用户来说是一个干扰。
@#@系统通过一种长度为215-1的伪随机码(一种PN码,又称为短码)来区分不同小区,通过Walsh码来区分不同的信道,通过一种长度为242-1的PN码(又称为长码)来区分来自不同终端的信道。
@#@@#@2.5.2功率控制@#@如果小区中的所有用户均以相同功率发射,则靠近基站的移动台到达基站的信号强;@#@远离基站的移动台到达基站的信号弱,导致强信号掩盖弱信号。
@#@在CDMA系统中某个用户信号的功率较强,对该用户的信号被正确接收是有利的,但却会增加对共享频带内其它的用户的干扰,甚至淹没有用信号,结果使其它用户通信质量劣化,导致系统容量下降。
@#@为了克服这个问题,必须根据通信距离的不同,实时地调整发射机所需的功率,这就是“功率控制”。
@#@@#@CDMA功率控制分为:
@#@前向功率控制和反向功率控制,反向功率控制又分为开环和闭环功率控制。
@#@@#@反向开环功率控制:
@#@反向开环功率控制是移动台根据在小区中所接收功率的变化,迅速调节移动台发射功率。
@#@其目的是试图使所有移动台发出的信号在到达基站时都有相同的标称功率。
@#@开环功率控制是为了补偿平均路径衰落的变化和阴影、拐弯等效应,它必须有一个很大的动态范围。
@#@@#@反向闭环功率控制:
@#@闭环功率控制的目的是使基站对移动台的开环功率估计迅速做出纠正,以使移动台保持最理想的发射功率。
@#@功率控制比特是连续发送的,速率为每比特1.25ms(即800bit/s)。
@#@“0”比特指示移动台增加平均输出功率,“1”比特指示移动台减少平均输出功率,步长为1dB/比特。
@#@一个功率控制比特的长度正好等于前向业务信道两个调制符号的长度(即104.66us)。
@#@每个功率控制比特将替代两个连续的前向业务信道调制符号,这个技术就是通常所说的符号抽取技术。
@#@@#@前向功率控制@#@基站周期性地降低发射到移动台的发射功率,移动台测量误帧率,当误帧率超过预定义值时,移动台要求基站对它的发射功率增加1%,每15~20ms进行一次调整。
@#@下行链路低速控制调整的动态范围是±@#@6dB。
@#@移动台的报告分为定期报告和门限报告。
@#@@#@2.5.3软容量@#@对于CDMA系统,用户数与服务级别存在比较灵活的关系,运营商可在话务量高峰期将误帧率稍微提高,来增加可用信道数,提高系统容量。
@#@软容量是通过CDMA系统的呼吸功能来实现的。
@#@呼吸功能是CDMA系统中特有的改善用户相互干扰、合理分配基站容量的功能。
@#@它是指相邻基站间,如果某基站覆盖区正在通话的用户数量较多时,该基站的用户之间会产生较大的干扰,这时,该基站可通过降低该基站的导频信道的发射功率使部分用户通过软切换切换到负荷较轻相邻基站中去,从而降低该基站的负荷,减轻该基站的干扰,这是所谓的“呼”功能;@#@当该基站的用户数量减少、干扰减轻时,该基站又可增加导频信道的发射功率,将相邻基站的用户通过软切换纳入自己的覆盖区域,这是所谓的“吸”功能。
@#@CDMA系统实现呼吸功能的本质在于其可以方便的控制各个基站的覆盖范围和系统能够实现软切换,通过改变基站的覆盖范围来调整各个基站下面的用户容量,CDMA系统通过呼吸功能,实现相邻基站之间的容量均衡,降低各个基站内部的用户干扰,从整个系统考虑是增加了容量。
@#@@#@2.5.4切换技术@#@1)硬切换@#@硬切换是移动终端只能连接到一个基站的切换,硬切换一般发生在不同频率的CDMA信道间。
@#@@#@CDMA网中硬切换工作过程:
@#@@#@硬切换发生时,移动台(MS)必须在接收新基站(BS)的信号之前,中断与原BS的通信才能获得新BS分配的信道,切换过程发生在两个BS的过渡区域或一个BS的两个扇区之间。
@#@但往往由于在与原BS链路切断后,MS不能立即得到与新BS之间的链路,使通信中断,掉话率非常高。
@#@另外,当硬切换区域面积狭窄时,会出现新BS与原BS之间来回切换的“乒乓效应”,影响业务的传输。
@#@@#@在硬切换过程中,UE先断开与NodeB1的信令和业务连接,再建立与NodeB2的信令和业务连接,也即UE在某一时刻始终只与一个基站保持联系。
@#@@#@下面就详细的介绍一下硬切换的工作过程。
@#@@#@ @#@@#@ @#@@#@第一步:
@#@UE与NodeB1在进行正常通信;@#@@#@第二步:
@#@当UE需要切换并且网络通过对UE候选小区的测量找到了切换目标小区时,网络向UE发送切换命令,UE就与目标小区建立上行同步,然后UE在与NodeB1保持信令和业务连接的同时,与NodeB2建立信令连接;@#@@#@ 第三步:
@#@当UE与NodeB2信令连接建立之后,UE就删除与NodeB1的业务连接;@#@@#@ 第四步:
@#@UE尝试建立与NodeB2的业务连接,一旦UE与NodeB2的业务连接建立,UE删除与NodeB1的信令连接,这时UE与NodeB1之间的业务和信令连接全部断开了,而只与NodeB2保持了信令和业务的连接,切换完成。
@#@@#@2)软切换@#@软切换是建立在CDMA系统宏分集接收基础上的一项新技术,它已成功应用于IS-95/CDMA系统,并被第三代移动通信系统所采纳。
@#@所谓软切换就是当移动台需要跟一个新的基站通信时,并不先中断与原基站的联系,当移动台与目标小区取得联系时,才断开和原基站的链接。
@#@软切换只能在相同频率的CDMA信道间进行。
@#@@#@ @#@@#@ @#@@#@@#@@#@ @#@@#@软切换的特点:
@#@@#@软切换的主要优点是前向和反向业务信道的路径分集。
@#@因为在前向和反向链路上只需要较小的功率就可以获得分集增益,这意味着总的系统干扰减少了。
@#@结果提高了系统的平均容量。
@#@当一部手机处于软切换状态下,同时将会有两个甚至更多的基站对它进行监测,系统中的基站控制器将逐帧比较来自各个基站的有关这部手机的信号质量报告,并选用最好的一帧。
@#@可见CDMA的软切换是一个“建立—比较—释放”的过程。
@#@软切换可以是同一基站控制器下的不同基站或不同基站控制器下不同基站之间发生的切换。
@#@软切换的呼叫过程可以分为三步。
@#@@#@
(1)移动台与原小区基站保持通信链路。
@#@@#@
(2)移动台与原小区基站保持通信链路同时,与新的目标小区的基站建立通信链路。
@#@@#@(3)移动台只与新小区基站保持通信链路。
@#@@#@这个交换过程可以减小呼叫中断的可能性,并减少了在切换过程中切换信令的乒乓效应。
@#@@#@软换存在的问题@#@由于软切换同时占用多个信道资源而增加了设备投资和系统复杂性,主要有以下几个方面的变化:
@#@基站中需要增加额外的RAKE接收机信道单元;@#@基站和无线网络控制器RNC(RadioNetworkController)间需要增加额外的传输线路;@#@移动台需要增加额外的RAKE解调器;@#@基站内不同扇区间需增加额外的链路等等。
@#@@#@软切换与硬切换的比较@#@与硬切换相比,CDMA系统中提出的软切换很好的利用了直接扩频系统的特点,具有更好的性能。
@#@@#@
(1)软切换发生时,移动台只有在取得了与新基站的链接之后才会中断与原基站的联系,大大降低通信中断的概率。
@#@@#@
(2)软切换进行过程中,移动台和基站均采用分集接收的思想,有抵抗衰落的能力,不用过多增加移动台的发射功率;@#@同时,基站宏分集接收保证在参与软切换的基站中,只需要有一个基站能正确接收移动台的信号就可以进行正常的通信,由于通过反向功率控制,可以使移动台的发射功率降至最小,进一步降低了移动台对系统的干扰。
@#@@#@(3)进入软切换区域的移动台即使不能立即得到与新基站的链路,也可以进入切换等待的排列队列,从而减少了系统的阻塞率。
@#@@#@3)更软切换@#@这种切换发生在同一基站具有相同频率的不同扇区之间。
@#@更软切换是由基站完成的,并不通知MSC(移动交换中心)。
@#@对于同一移动台,不同扇区天线的接收信号对基站来说就相当于不同的多径分量,经过不同的射频模块(FRMA";i:
1;s:
11498:
"CPUdesign@#@ @#@@#@CPUSystemDesign@#@ @#@@#@Purpose@#@ThepurposeofthisprojectistodesignasimpleCPU.ThisCPUhasbasicinstructionset,andwewillutilizeitsinstructionsettogenerateaverysimpleprogram.Forsimplicity,wewillonlyconsidertherelationshipamongtheCPU,registers,memoryandinstructionset.weonlyneedconsiderthefollowingitems:
@#@Read/WriteRegisters,Read/WriteMemoryandExecutetheinstructions.@#@Tasks@#@CPUOrganization@#@FetchInstructions:
@#@TheCPUmustreadinstructionsfrommemory@#@InterpretInstructions:
@#@Theinstructionmustbedecodedtodeterminewhatactionisrequired.@#@FetchData:
@#@TheexecutionofaninstructionmayrequirereadingdatafrommemoryorI/Omodules.@#@ProcessData:
@#@Theexecutionofaninstructionmayrequireperformingsomearithmeticorlogicoperationondata.@#@WriteData:
@#@TheresultsofanexecutionmayrequiringwritingdatatomemoryoranI/Omodule@#@InternalRegistersandMemory@#@MAR(MemoryAddressRegister)containsthememorylocationofthewordtobereadfromthememoryorwrittenintothememory.Here,READoperationisdenotedastheCPUreadsfrommemory,andWRITEoperationisdenotedastheCPUwritestomemory.Inourdesign,MARhas8bitstoaccessoneof256addressesofthememory.@#@MBR(MemoryBufferRegister)containsthevaluetobestoredinmemoryorthelastvaluereadfrommemory.MBRisconnectedtotheaddresslinesofthesystembus.Inourdesign,MBRhas16bits.@#@PC(ProgramCounter)keepstrackoftheinstructionstobeusedintheprogram.Inourdesign,PChas8bits.@#@IR(InstructionRegister)containstheopcodepartofaninstruction.Inourdesign,IRhas8bits.@#@BR(BufferRegister)isusedasaninputofALU,itholdsotheroperandforALU.Inourdesign,BRhas16bits.@#@ACC(Accumulator)holdsoneoperandforALU,andgenerallyACCholdsthecalculationresultofALU.Inourdesign,ACChas16bits.@#@MR(MultiplierRegister)isusedforimplementingtheMPYinstruction,holdingthemultiplieratthebeginningoftheinstruction.Whentheinstructionisexecuted,itholdspartoftheproduct.@#@DR(DivisionRegister)isusedforimplementingtheDIVinstruction,youcandefineitaccordingtoyourdivisionalgorithm.@#@LPM_RAM_DQisaRAMwithseparateinputandoutputports,itworksasmemory,anditssizeis256×@#@16.Althoughit’snotaninternalregisterofCPU,weneedittosimulateandtesttheperformanceofCPU.@#@ALU(ArithmeticLogicUnit)isacalculationunitwhichaccomplishesbasicarithmeticandlogicoperations.Inourdesign,someoperationsmustbesupportedwhicharelistedasfollows@#@CPUDesign@#@YoushoulddeterminethecontrolsignalsaccordingtotheCPUarchitectureandyourdesign.Anexampleisgivenbelowtoshowtheprocedure,thisexampledescribesthecontrolunitdesignfortheLOADinstruction.@#@ @#@@#@TheoverallconnectionofthesimulatedprinterandPOCexpressedinthetopmoduleform@#@ctl@#@thecontrolsignalfromCUtoalltheregisters@#@reset@#@asignaltoresetCPU@#@clk@#@clocksignal@#@Thesignalfromoneelementtoeachotherisdefinedasfollowed:
@#@@#@MBR@#@Signals@#@functions@#@IN@#@ACCMBR[15..0]@#@receivethedatafromACC@#@PC[7..0]@#@receivetheinstructionaddressfromPC@#@BRMBR[15..0]@#@receivethedatafromBR@#@RAMin[15..0]@#@receivethedatafromRAM@#@OUT@#@RAMout@#@sendthedatatoRAM@#@MBR@#@sendthedatatoBR,PC,MARandIR@#@WR@#@asignaltoRAMtodeterminereadingorwriting@#@MAR@#@Signals@#@functions@#@IN@#@MBR[15..0]@#@receivetheaddressofdatafromMBR@#@PC[7..0]@#@receivetheaddressofinstructionfromPC@#@SSMAR[7..0]@#@receivetheaddressofstack@#@OUT@#@RAMadd[7..0]@#@sendtheaddresstoRAM@#@PC@#@Signals@#@functions@#@IN@#@MBR[15..0]@#@receivetheaddressofnextinstructionfromMBR@#@OUT@#@PC[7..0]@#@sendtheaddressofinstructiontoMAR@#@IR@#@Signals@#@functions@#@IN@#@MBR[15..0]@#@receiveinstructionsfromMBR@#@OUT@#@IR[7..0]@#@sendinstructionstoCU@#@BR@#@Signals@#@functions@#@IN@#@MBR[15..0]@#@receivedatafromMBR@#@OUT@#@BR[15..0]@#@senddatatoACCandALU@#@BRMBR[15..0]@#@senddatatoMBR@#@ACC@#@Signals@#@functions@#@IN@#@ALUACC[15..0]@#@receivedatafromALU@#@BR[15..0]@#@receivedatafromBR@#@OUT@#@ACC[15..0]@#@senddatatoACC@#@ACCMBR[15..0]@#@senddatatoMBR@#@CU@#@Signals@#@functions@#@IN@#@IR[7..0]@#@receiveinstructionsfromBR@#@flagsCU[7..0]@#@receiveflagsfromFlags@#@s@#@asignalfromALUtoproceedCU@#@OUT@#@ROM[4..0]@#@sendtheaddressofM-instructioninROM@#@ALUctl[3..0]@#@acontrolsignaltoALUtodeterminetheoperate@#@Thesimplemicro-instructionsetinROMisdesignedasfollowed:
@#@@#@Micro-I@#@NUM(HEX)@#@Meanings@#@c0@#@·@#@0000@#@nooperation@#@c1@#@·@#@0001@#@MBR<@#@-PC@#@c2@#@·@#@0002@#@MAR<@#@-PC@#@c3@#@·@#@0004@#@PC<@#@-MBR@#@c4@#@·@#@0008@#@IR<@#@-MBR;@#@BR<@#@-MBR@#@c5@#@·@#@0010@#@MBR<@#@-RAM@#@c6@#@·@#@0020@#@ALU<@#@-BR@#@c7@#@·@#@0040@#@ALU<@#@-ACC@#@c8@#@·@#@0080@#@MAR<@#@-MBR@#@c9@#@·@#@0100@#@ACC<@#@-ALU@#@c10@#@·@#@0200@#@ACC<@#@-BR@#@c11@#@·@#@0400@#@MBR<@#@-ACC@#@c12@#@·@#@0800@#@RAM<@#@-MBR@#@c13@#@·@#@1000@#@PC<@#@-PC+1@#@c14@#@·@#@2000@#@MBR<@#@-BR@#@c15@#@·@#@4000@#@MAR<@#@-SS@#@c16@#@·@#@8000@#@SS<@#@-SS+1@#@Flags@#@Signals@#@functions@#@IN@#@ALUflags[7..0]@#@receiveflagsfromALU@#@OUT@#@flagsALU[7..0]@#@sendflagstoALU@#@flagsCU[7..0]@#@sendflagstoCU@#@Theeachbitofflagsisdesignedasfollowed:
@#@@#@Flags@#@ @#@ @#@0@#@CF@#@whenneedcarry->@#@1@#@1@#@BF@#@whenneedborrow->@#@1@#@2@#@PF@#@whenshiftACC->@#@0/1@#@3@#@ZF@#@whenanswer=0->@#@1@#@4@#@OF@#@whenoverflow->@#@1@#@5@#@SF*@#@whenanswerisnegative->@#@1@#@6@#@IF*@#@whendisableinterupt->@#@1@#@7@#@/@#@ @#@Notes:
@#@‘*’meansdoesn’tuseinthisdesign.‘/’meanshasnodefinition.Thesameasfollowed.@#@SS@#@Signals@#@functions@#@OUT@#@SSMAR[7..0]@#@sendtheaddressofstacktoMAR@#@ALU@#@Signals@#@functions@#@IN@#@BR[15..0]@#@receivedatafromBR@#@ACC[15..0]@#@receivedatafromACC@#@ALUctl[3..0]@#@acontrolsignalformCUtodeterminetheoperate@#@flagsALU[7..0]@#@receiveflagsfromflags@#@OUT@#@ALUACC[15..0]@#@sendtheanswertoACC@#@ALUflags[7..0]@#@sendflagstoflags@#@s@#@asignaltoproceedCU@#@ThecontrolsignalfromCUtoALUisdesignedasfollowed:
@#@@#@ALU@#@NUM(binary)@#@ Functions@#@ADD@#@·@#@0100@#@plus@#@ADC@#@·@#@0101@#@pluswithflags@#@SUB@#@·@#@0110@#@subtract@#@SBB@#@·@#@0111@#@subtractwithflags@#@AND@#@·@#@1000@#@and@#@OR@#@·@#@1001@#@or@#@NOT@#@·@#@1010@#@not@#@XOR@#@·@#@1011@#@xor@#@SHL@#@·@#@1100@#@shiftACCtoleft1bit@#@SHR@#@·@#@1101@#@shiftACCtoright1bit@#@SRL@#@·@#@1110@#@shiftACCtoleft1bit,logic@#@SRR@#@·@#@1111@#@shiftACCtoright1bit,logic@#@MPY@#@·@#@0010@#@MPY@#@DIV@#@·@#@0011@#@DIV@#@ @#@@#@Asimpleinstructionsetisdesignedasfollowed:
@#@@#@Instruction@#@Control@#@(765432)@#@MicroOpcode(c)@#@FetchIandD(10)@#@直接@#@间接@#@无@#@·@#@01@#@·@#@10@#@·@#@00@#@LOADX@#@·@#@000010@#@410@#@ @#@ @#@/@#@STOREX@#@·@#@000011@#@1112@#@ @#@ @#@/@#@ADDX@#@·@#@001000@#@467N9@#@ @#@ @#@/@#@SUBX@#@·@#@001010@#@467N9@#@ @#@ @#@/@#@ANDX@#@·@#@001100@#@467N9@#@ @#@ @#@/@#@ORX@#@·@#@001101@#@467N9@#@ @#@ @#@/@#@NOTX@#@·@#@001110@#@467N9@#@ @#@ @#@ @#@XORX@#@·@#@001111@#@467N9@#@ @#@ @#@/@#@SRL@#@·@#@011000@#@7N9@#@/@#@/@#@ @#@SRR@#@·@#@011010@#@7N9@#@/@#@/@#@ @#@ @#@·@#@@#@ @#@ @#@ @#@ @#@ADCX@#@·@#@001001@#@467N9@#@ @#@ @#@/@#@SBBX@#@·@#@001011@#@467N9@#@ @#@ @#@/@#@SHL@#@·@#@011001@#@7N9@#@/@#@/@#@ @#@SHR@#@·@#@011011@#@7N9@#@/@#@/@#@ @#@ @#@·@#@@#@ @#@ @#@ @#@ @#@MPYX@#@·@#@010100@#@467N9@#@ @#@ @#@/@#@DIVX@#@·@#@010101@#@467N9@#@ @#@ @#@/@#@JMPGEZX@#@·@#@010001@#@32@#@ @#@ @#@/@#@JMPX@#@·@#@010000@#@32@#@ @#@ @#@/@#@ @#@·@#@@#@ @#@ @#@ @#@ @#@HALT@#@·@#@000000@#@/@#@/@#@/@#@ @#@CALLX@#@·@#@100000@#@11512143@#@ @#@ @#@/@#@RET@#@·@#@100001@#@161553@#@/@#@/@#@ @#@PUSH@#@·@#@100010@#@151112@#@/@#@/@#@ @#@POP@#@·@#@100011@#@16155410@#@/@#@/@#@ @#@ @#@@#@Simulationresults@#@TheprogramintheRAMiswrittenbeforehandonthebaseofinstructionset.@#@Program@#@CALLCAL@#@LOADA4@#@MPYA4@#@PUSH@#@DIVA8@#@POP@#@HALT@#@ @#@CAL:
@#@LOAD10@#@STOREA4@#@LOADA2@#@STOREA3@#@LOOP:
@#@LOADA4@#@ADDA3@#@STOREA4@#@LOADA3@#@SUBA1@#@STOREA3@#@JMPGEZLOOP@#@RET@#@ @#@@#@Thesimulationresultisdisplayasthenextfigure.@#@Figure1:
@#@TheanswerofplusfromonetoahundrediswrittentoRAM@#@Figure2:
@#@Thefirststepoftheprogram“CALL50”@#@Figure3:
@#@Begintocalculateplusfromonetoahundred@#@ @#@@#@Figure4:
@#@Calculating13BAmultiply13BA@#@Figure5:
@#@Calculating13BAdivide0008@#@Figure6:
@#@HALTandwaitforaresetsignal@#@ConclusionsandDiscussions:
@#@@#@1.IsthePOCyoudesigninaccordwiththetheory?
@#@@#@Yes,mydesignofCPUcanshowthebasicfunctionofarealCPUandsimulateawholeprogram.@#@2.Arethereanyplacesyoucanrevisetoimproveyourdesign?
@#@@#@Toimprovemydesign,IcanoptimizethedesignofALU.Intheresentdesign,therearesometemporaryregistersintheALU.However,itshouldbeasimplelogicelectriccircuit.Therefore,IcanrevisetoimprovemydesignbydesigningtheALUagain.@#@3.Whatarethecharacterizationsofyourdesign?
@#@@#@ThecharacterizationofmydesigncanbeconcludedasdesigningaoverallconnectionfirstanduseVHDLtofillineachelement.TheelementofCUisthemostimportantpartofthewholeprojectanddeterminingthemicrocontrolinstructionisthefirstworktofinishbyme.@#@4.Whatdoyoulearnfromthisdesign?
@#@@#@IlearnedhowtodesignaprojectandthegrammarofVHDL.Ofcourse,IamfamiliarwithasimpleprocessofaCPU,understandinghowaCPUfetchinstructionsandexecutethemconcludingADD,SUB,JMPandsoon.@#@ @#@@#@Appendix@#@MBR@#@libraryieee;@#@@#@useieee.std_logic_1164.all;@#@@#@useieee.std_logic_unsigned.all;@#@@#@entityMBRis@#@port(@#@ACC_in:
@#@instd_logic_vector(15downto0);@#@@#@PC_in:
@#@instd_logic_vector(7downto0);@#@@#@BR_in:
@#@instd_logic_vector(15downto0);@#@@#@RAM_out:
@#@outstd_logic_vector(15downto0);@#@@#@RAM_in:
@#@instd_logic_vector(15downto0);@#@@#@MBR_out:
@#@outstd_logic_vector(15downto0);@#@@#@ctl:
@#@instd_logic_vector(15downto0);@#@@#@WR:
@#@outstd_logic;@#@@#@reset:
@#@instd_logic;@#@@#@clk:
@#@instd_logic@#@);@#@@#@endMBR;@#@@#@architecturefunction_MBRofMBRis@#@begin@#@process(clk)@#@variableMBR_t:
@#@std_logic_vector(15downto0);@#@@#@variableRAM_t:
@#@std_logic_vector(15downto0);@#@@#@variablex:
@#@integerrange0to1;@#@@#@begin@#@if(clk='@#@1'@#@andclk'@#@event)then@#@";i:
2;s:
22413:
"C语言习题@#@第一章C语言概述@#@一、选择题:
@#@@#@
(1)一个C程序总是从()开始执行。
@#@@#@A.程序的第一条执行语句B.主函数C.子程序D.主程序@#@
(2)以下叙述正确的是()。
@#@@#@A.C语言允许直接访问物理地址,可以直接对硬件进行操作@#@B.C语言程序不必编译,即可在计算机上运行@#@C.C语言不允许直接访问物理地址,不可直接对硬件进行操作@#@D.C语言程序只需编译,不需要连接即可在计算机上运行@#@(3)在一个C程序中()。
@#@@#@A.main函数出现在所有函数之前。
@#@C程序不必都有main函数@#@B.main函数可以在任何地方出现。
@#@一个C程序必须有且仅有一个main函数@#@C.main函数必须出现在所有函数之后。
@#@一个C程序只能有一个main函数@#@D.main函数出现在固定位置。
@#@一个C程序可以有多个main函数@#@(4)C语言程序由()组成。
@#@@#@A.子程序B.主程序和子程序C.函数D.过程@#@(5)源程序要正确地运行,必须要有()函数。
@#@@#@A.printf函数B.自定义的函数C.main函数D.不需要函数@#@(6)要把高级语言编写的源程序转换为目标程序,需要使用()。
@#@@#@A.编辑程序B.驱动程序C.诊断程序D.编译程序*@#@(7)以下叙述正确的是()。
@#@@#@A.C语言比其他语言高级@#@B.C语言可以不用编译就能被计算机识别执行@#@C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式@#@D.C语言出现的最晚、具有其他语言的一切优点@#@(8)能将高级语言编写的源程序转换成目标程序的是()。
@#@@#@A.链接程序B.解释程序C.编译程序D.编辑程序@#@(9)用C语言编写的代码程序()。
@#@@#@A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行(10)以下叙述中正确的是()。
@#@@#@A.用C程序实现的算法必须要有输入和输出操作@#@B.用C程序实现的算法可以没有输出但必须要有输入@#@C.用C程序实现的算法可以没有输入但必须要有输出@#@D.用C程序实现的算法可以既没有输入也没有输出@#@(11)C语言是一种()。
@#@@#@A.机器语言B.汇编语言C.高级语言D.低级语言@#@(12)下列各项中,不是C语言的特点是()。
@#@@#@A.语言简洁、紧凑,使用方便B.数据类型丰富,可移植性好@#@C.能实现汇编语言的大部分功能D.有较强的网络操作功能@#@(13)下列叙述正确的是()。
@#@@#@A.C语言源程序可以直接在DOS环境中运行@#@B.编译C语言源程序得到的目标程序可以直接在DOS环境中运行@#@C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行@#@D.TurboC系统不提供编译和连接C程序的功能@#@(14)下列叙述错误的是()。
@#@@#@A.C序中的每条语句都用一个分号作为结束符@#@B.C程序中的每条命令都用一个分号作为结束符@#@C.C程序中的变量必须先定义,后使用@#@D.C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写@#@(15)一个C程序的执行是从()。
@#@@#@A.本程序的main函数开始,到main函数结束@#@B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束@#@C.本程序文件的第一个函数开始,到本程序main函数结束@#@D.本程序的main函数开始,到本程序文件的最后一个函数结束@#@(16)以下叙述不正确的是()。
@#@@#@A.一个C源程序必须包含一个main函数B.一个C源程序可由一个或多个函数组成C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面@#@(17)C语言规定:
@#@在一个源程序中,main函数的位置()。
@#@@#@A.必须在程序的开头B.必须在系统调用的库函数的后面@#@C.可以在程序的任意位置D.必须在程序的最后@#@(18)一个C语言程序是由()。
@#@@#@A.一个主程序和若干个子程序组成B.函数组成@#@C.若干过程组成D.若干子程序组成@#@(19)一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。
@#@@#@A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性@#@(20)以下叙述正确的是()。
@#@@#@A.C语言的源程序不必通过编译就可以直接运行。
@#@@#@B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
@#@@#@C.C语言源程序经编译形成的二进制代码可以直接运行。
@#@@#@D.C语言中的函数不可以单独进行编译。
@#@@#@(21)为解决某一特定问题而设计的指令序列称为()。
@#@@#@A.文档B.语言C.程序D系统@#@(22)用高级程序设计语言编写的程序称为()。
@#@@#@A.目标程序B.可执行程序C.源程序D.伪代码@#@(23)能将高级语言编写的源程序转换成目标程序的是()。
@#@@#@A.编辑程序B.编译程序C.驱动程序D.链接程序@#@(24)下列叙述中正确的一条是()。
@#@@#@A.计算机语言中,只有机器语言属于低级语言。
@#@@#@B.高级语言源程序可以被计算机直接执行。
@#@@#@C.C语言属于高级语言。
@#@@#@D.机器语言与所用机器无关的。
@#@@#@(25)设有以下定义:
@#@@#@inta=0;@#@doubleb=1.25;@#@charc=’A’;@#@@#@#defined2则下面语句中,错误是()。
@#@@#@A.a++;@#@B.b++;@#@C.c++;@#@D.d++;@#@@#@(26)以下对C语言的描述中正确是()。
@#@@#@A.C语言源程序中可以有重名的函数。
@#@@#@B.C语言源程序要求每行只能书写一条语句。
@#@@#@C.注释可以出现在C语言源程序中的任何位置。
@#@@#@D.最小的C语言源程序中没有任何内容@#@(27)以下说法中正确的是()。
@#@@#@A.#define和printf都是C语句。
@#@B.#define是C语句,而printf不是。
@#@@#@C.printf是C语句,但#define不是。
@#@D.#define和printf都不是C语句。
@#@@#@(28)C语言是在()语言的基础上产生的。
@#@@#@A.AB.BC.DD.E@#@(29)在C语言中,每个语句必须以()结束。
@#@@#@A.回车符B.冒号C.逗号D.分号@#@(30)用C语言编写的源文件经过编译,若没有产生编译错误,则系统将()。
@#@@#@A.生成可执行目标文件B.生成目标文件C.输出运行结果D.自动保存源文件@#@(31)下列说法中正确的是()。
@#@@#@A.由于C源程序是高级语言程序,因此一定要在TC软件中输入@#@B.由C源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C.由于C程序是高级语言程序,因此输入后即可执行@#@D.由于C程序是高级语言程序,因此它由命令组成@#@(32)下列说法中正确的是()。
@#@@#@A.C语言程序由主函数和0个或多个函数组成@#@B.C语言程序由主程序和子程序组成@#@C.C语言程序由子程序组成@#@D.C语言程序由过程组成@#@(33)下列说法中错误的是()。
@#@@#@A.主函数可以分为两个部分:
@#@主函数说明部分和主函数体@#@B.主函数可以调用任何非主函数的其他函数@#@C.任何非主函数可以调用其他任何非主函数@#@D.程序可以从任何非主函数开始执行@#@(34)标识符和关键字间,要用()隔开。
@#@@#@A.回车符B.冒号C.空格D.分号@#@(35)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为()。
@#@@#@A.连接、编译B.连接、运行C.编译、运行D.编译、连接@#@(36)以下并非C语言的特点的是()。
@#@@#@A.C语言简洁和紧凑B.能够编制出功能复杂的程序@#@C.C语言可以直接对硬件进行操作D.C语言移植性好@#@(37)下列说法正确的是()。
@#@@#@A.在执行C程序时不是从main()函数开始的@#@B.C程序书写格式限制严格,一行内必须写一个语句@#@C.C程序书写格式比较自由,一个语句可以分行写在多行上@#@D.C程序书写格式严格要求一行内必须写一个语句,并要求行@#@(38)C程序中能直接让机器执行的文件是()。
@#@@#@A.编辑后的.c源文件B.通过编译的.obj文件@#@C.通过连接的.exe文件D.编辑后的.bak文件@#@(39)以下叙述不正确的是()。
@#@@#@A.C程序由函数构成B.一个C程序至少包含一个main函数@#@C.main函数可以调用main函数D.main函数是每个程序执行的起始点@#@(40)下列语言中,CPU能直接识别的是()。
@#@@#@A.自然语言B.高级语言C.汇编语言D.机器语言@#@二、判断题:
@#@@#@
(1)C语言程序总是从main函数第一条可执行语句开始执行,在main函数结束。
@#@()@#@
(2)main函数必须写在一个C程序的最前面。
@#@(×@#@)@#@(3)一个C程序可以包含若干个函数。
@#@(√)@#@(4)C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
@#@但是可以增加程序的可读性。
@#@(√)@#@(5)C程序的注释只能是一行。
@#@(×@#@)@#@(6)C程序的注释不能是中文文字信息。
@#@(×@#@)@#@(7)可以使用TurboC来编译和连接一个C程序。
@#@(√)@#@(8)可以使用TurboC来运行一个C程序。
@#@(√)@#@(9)可以使用TurboC来实时调试(即动态调试)一个C程序。
@#@(√)@#@(10)Vasualc++6.0中可以使用“//”和“/**/”注释程序,注释部分不编译。
@#@(√)@#@(11)将C程序编译成目标文件,其扩展名为EXE。
@#@(×@#@)@#@(12)C语言具有简洁明了的特点。
@#@(√)@#@(13)预处理命令的前面必须加一个“#”号。
@#@(√)@#@(14)C语言是一种具有某些低级语言特征的高级语言。
@#@(√)@#@(15)C语言的应用比较广泛,不仅能够用来编写应用软件,而且能够编写系统软件。
@#@(√)@#@(16)C语言可以中可以有多个函数,但只能有一个主函数。
@#@(√)@#@(17)一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。
@#@(√)@#@(18)C语言采用解释方式将源程序转换为二进制的目标代码。
@#@(×@#@ @#@)@#@(19)用C语言可直接进行位运算和取地址等运算,因此C语言是一种低级语言。
@#@(×@#@)@#@(20)C程序是由函数构成的,每一个函数完成相对独立的功能。
@#@(√ @#@)@#@(21)在C源程序中,之间的注释信息也被编译,但对程序运行运果不发生影响。
@#@(×@#@ @#@)@#@(22)在C语言中,字母的大小写不被区分。
@#@(×@#@ @#@)@#@(23)C语言中没有依存于硬件的I/O语句。
@#@( @#@√)@#@(24)按现代风格设计的C程序中,main中对函数声明的信息与定义此函数时第一行的信息完全相同。
@#@(√ @#@)@#@(25)对C语言中用到的任何一个变量都要规定其类型。
@#@( @#@√)@#@(26)计算机的一切操作都是由程序控制的,离开了程序,计算机将一事无成。
@#@(√)@#@(27)由于计算机能直接识别和接受机器指令,所以机器语言是最适合人们编程的语言。
@#@(×@#@)@#@(28)编译程序可以把用高级语言写的程序转换为机器指令的程序。
@#@(√)@#@(29)一般而言,我们把用高级语言编写的程序称为目标程序。
@#@(×@#@)@#@(30)C语言源程序在生成可执行程序前,应该先编译再连结。
@#@(√)@#@(31)高级语言之所以高级,就在于用它来编写程序可以不遵循任何形式。
@#@(×@#@)@#@(32)语言程序设计自由度大,所以属于非结构化语言。
@#@(×@#@)@#@(33)C语言属于高级语言,不允许直接访问物理地址。
@#@(×@#@)@#@(34)所谓程序就是一组计算机能识别和执行的指令。
@#@(√)@#@(35)函数是C程序的主要组成部分。
@#@(√)@#@(36)C语言俗称"@#@低级语言的高级形式"@#@,这说明C语言的功能不强。
@#@(×@#@)@#@(37)C语言是一种结构化程序设计语言。
@#@(√)@#@(38)C语言是一种面向对象的程序设计语言。
@#@(×@#@)@#@(39)C程序总是从程序的第一条语句开始执行。
@#@@#@(40)C语言的祖先是B语言。
@#@(√)@#@第二章数据类型、运算符与表达式@#@一、选择题@#@
(1)下列叙述正确的是()。
@#@@#@A.C语言中既有逻辑类型也有构造类型数据@#@B.C语言中没有逻辑类型,但有构造类型@#@C.C语言中有逻辑类型,但没有构造类型@#@D.C语言中既没有逻辑类型也没有构造类型@#@
(2)下列关于C语言用户标识符的叙述中正确的是()。
@#@@#@A.用户标识符中可以出现下划线和中划线(减号)@#@B.用户标识符中不可以出现中划线,但可以出现下划线@#@C.用户标识符中可以出现下划线,但不可以放在标识符开头@#@D.用户标识符中可以出现下划线和数字,他们都可以放在标识符开头@#@(3)下列转义字符中,错误的是()。
@#@@#@A.‘\0xa5’B.‘\031’C.‘\b’D.‘\”’@#@(4)字符串“\\\\1234\\\\\n”在内存中占用的字节数是()。
@#@@#@A.14B.9C.10D.1@#@(5)已知梯形的上底为a,下底为b,高为h,用C语言写的正确的面积公式是()。
@#@@#@A.1/2*(a+b)*hB.1.0/2*(a+b)*hC.1.0/2.0(a+b)hD.1.0/2*a+b*h@#@(6)与k=n++完全等价的表达式是()。
@#@@#@A.n=n+1,k=nB.k+=n+1C.K=++nD.k=n,n=n+1@#@(7)在C语言中int,char和shortint三种类型变量所占用的内存大小是()。
@#@@#@A.均为2个字节B.由用户自己定义C.由所用机器的字长决定D.是任意的@#@(8)若有以下类型说明语句chara;@#@intb;@#@floatc;@#@shortintd;@#@则表达式c*b+a*d的结果类型是()。
@#@@#@A.charB.intC.doubleD.float@#@(9)若有说明语句intw=1,x=2,y=3,z=4;@#@则表达试w>@#@x?
@#@w:
@#@z>@#@y?
@#@z:
@#@x的值是()。
@#@@#@A.4B.3C.2D.1@#@(10)设x,y为int型变量,则执行下列语句后y的值是()。
@#@@#@x=5;@#@y=x++*x++;@#@y=--y*--y;@#@@#@A.625B.2401C.1209D.529@#@(11)下面的符号常量定义中,正确的是()。
@#@@#@A.#definePI3.14;@#@B.#includePI3.14;@#@@#@C.#definePI=3.14D.#definePI3.14@#@(12)指出下面合法的标识符()。
@#@@#@A.3abB.intC.ABCD.#abc@#@(13)指出下面()是保留字。
@#@@#@A.charB.abcC.printfD.Int@#@(14)下面()个数据类型不是C语言的基本数据类型。
@#@@#@A.整型B.枚举型C.指针型D.字符型@#@(15)这段程序中,不是常量的有()。
@#@@#@#definePI3.14@#@voidmain()@#@{@#@intsum;@#@@#@sum=10+15;@#@@#@printf("@#@sum=%d\n"@#@,sum);@#@@#@printf("@#@resultis25\n"@#@);@#@@#@}@#@A.10B.sumC.15D.PI@#@(16)如果要把常量327存入变量a中,a不能定义成()类型@#@A.intB.charC.longD.float@#@(17)下面哪个表达式的值为4。
@#@@#@A.11/3B.11.0/3C.(float)11/3D.(int)(11.0/3+0.5)@#@(18)设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是()。
@#@@#@printf(”%d,%d\n”,x--,--y);@#@@#@A.10,3B.9,3C.9,2D.10,2@#@(19)指出下面错误的表达式()。
@#@@#@A.5.6+6.2%3.1B.2C.a=4D.a=5,b=6,c=7@#@(20)已知a为整型变量,那么与表达式a!
@#@=0真假值情况不相同的表达式有()。
@#@@#@A.a>@#@0||a<@#@0B.aC.!
@#@a==0D.!
@#@a@#@(21)下面()是非法的C语言转义字符。
@#@@#@A.'@#@\t'@#@B.'@#@\08'@#@C.'@#@\xaf'@#@D.'@#@\\'@#@@#@(22)若有以下说明语句:
@#@@#@chars='@#@\\\092'@#@;@#@@#@则下面()是正确的.@#@A.使s的值包含2个字符B.说明语句不合法@#@C.使s的值包含6个字符D.使s的值包含4个字符@#@(23)若k,g均为int型变量,则以下语句的输出为()。
@#@@#@intk,g;@#@@#@k=o17;@#@@#@g=111;@#@@#@printf("@#@%d,"@#@,k);@#@@#@printf("@#@%x\n"@#@,g);@#@@#@A.15,6fB.f,6fC.f,111D.15,111@#@(24)请从下面的选项中选出不正确的C语言的转义字符。
@#@()@#@A.'@#@\t'@#@B.'@#@\'@#@'@#@C.'@#@//'@#@D.'@#@\n'@#@@#@(25)()是C语言提供的合法的数据类型关键字。
@#@@#@A.FloatB.signedC.integerD.Char@#@(26)在C语言中,要求参加运算的数必须时整数的运算符是()。
@#@@#@A./B.*C.%D.=@#@(27)在C语言中,字符型数据在内存中以()形式存放。
@#@@#@A.原码B.BCD码C.反码D.ASCII码@#@(28)在C语言中,整型数据在内存中以()形式存放。
@#@@#@A.原码B.BCD码C.反码D.补码@#@(29)下列选项中,合法的C语言关键字是()。
@#@@#@A.VARB.cherC.integerD.default@#@(30)以下有4组用户标识符,其中合法的一组是()。
@#@@#@A.ForB.4dC.f2_G3D.WORD@#@subDOIFvoid@#@CaseSizeabcdefine@#@(31)以下选项中,非法的字符常量是()。
@#@@#@A.‘\t’B.‘\17’C.“n”D.‘\xaa’@#@(32)以下选项中合法的字符常量是()。
@#@@#@A.“B”B.‘\010’C.68D.A@#@(33)在C语言中,合法的长整型常数是()。
@#@@#@A.0LB.4962710C.324562&@#@D.216D@#@(34)下列变量定义中合法的是()。
@#@@#@A.short_a=1-.le+1;@#@B.doubleb=1+5e2.5;@#@@#@C.longdo=0xfdaL;@#@D.float2_and=1-e-3;@#@@#@(35)以下所列的C语言常量中,错误的是()。
@#@@#@A.0xFFB.1.2e0.5C.2LD.‘\72’@#@(36)设有说明语句:
@#@chara=’\72’,则变量a()。
@#@@#@A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法@#@(37)下列不正确的转义字符是()。
@#@@#@A.'@#@\\'@#@B.'@#@\'@#@'@#@C.'@#@074'@#@D.'@#@\0'@#@@#@(39)以下选项中属于C语言的数据类型是()。
@#@@#@A.复数型B.逻辑型C.双精度型D.集合型@#@(40)设有intx=11;@#@则表达式(x++*1/3)的值是@#@A.3B.4C.11D.12@#@(41)下列程序的输出结果是()。
@#@@#@A.3B.3.2C.0D.3.07@#@voidmain()@#@{doubled=3.2;@#@@#@intx,y;@#@@#@x=1.2;@#@@#@y=(x+3.8)/5.0;@#@@#@printf("@#@%d\n"@#@,d*y);@#@@#@}@#@(42)设intx=1,y=1;@#@表达式(!
@#@x||y--)的值是()。
@#@@#@A.0B.1C.2D.–1@#@(43)若变量已正确定义并赋值,下面符合C语言语法的表达式是()@#@A.a:
@#@=b+1B.a=b=c+2Cint18.5%3D.a=a+7@#@(44)C语言中运算对象必须是整型的运算符是()。
@#@@#@A.%=B./C.=D.<@#@=@#@(45)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()。
@#@@#@A.1B.2C.2.0D.2.5@#@(46)若变量a、i已正确定义,且i已正确赋值,合法的语句是@#@A.a==1B.++i;@#@C.a=a++=5;@#@D)a=int(i);@#@@#@(47)若有以下程序段,intc1=1,c2=2,c3;@#@c3=1.0/c2*c1;@#@则执行后,c3中的值是@#@A.0B.0.5C.1D.2@#@(48)能正确表示逻辑关系:
@#@“a≥=10或a≤0”的C语言表达式是()。
@#@@#@A.a>@#@=10ora<@#@=0B.a>@#@=0|a<@#@=10C.a>@#@=10&@#@&@#@a<@#@=0D.a>@#@=10‖a<@#@=0@#@(49)设x、y、t均为int型变量,则执行语句:
@#@x=y=3;@#@t=++x||++y;@#@后,y的值为()。
@#@@#@A.不定值B.4C.3D1@#@(50)若变量c为char类型,能正确判断出c为小写字母的表达式是()。
@#@@#@A.‘a’<@#@=c<@#@=‘z’B.(c>@#@=‘a’)||(c<@#@=‘z’)@#@C.(‘a’<@#@=c)and(‘z’>@#@=c)D.(c>@#@=‘a’)&@#@&@#@(c<@#@=‘z’)@#@二、判断题@#@
(1)C语言程序的变量必须先定义再使用。
@#@(√)@#@
(2)C语言认为名为Student和student的变量是不同变量。
@#@(√)@#@(3)C语言中,字符常量可以用单引号或双引号括起来。
@#@(×@#@)@#@(4)设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确的。
@#@(√)@#@(5)C语言与其他高级语言一样具有结构化的控制语句。
@#@(√)@#@(6)在C程序中对用到的所有数据都必须指定其数据类型。
@#@(×@#@)@#@(7)一个变量在内存中占据一定的存储单元。
@#@(√)@#@(8)一个实型变量的值肯定是精确的。
@#@(×@#@)@#@(9)对几个变量在定义时赋初值可以写成:
@#@inta=b=c=3;@#@(×@#@)@#@(10)自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
@#@(√)@#@(11)在C程序的表达式中,为了明确表达式的运算次序,必须使用括号“()”。
@#@(×@#@)@#@(12)%运算符要求运算数必须是整数。
@#@(√)@#@(13)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。
@#@(×@#@)@#@(14)在C程序中,逗号运算符的优先级最低。
@#@(√)@#@(15)C语言不允许混合类型数据间进行运算。
@#@(×@#@)@#@(16)数据是操作的对象,操作的结果会改变数据的状况。
@#@(√)@#@(17)";i:
3;s:
46:
"DSP学习4存储器与通用IO端口精@#@@#@";}