阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。
【说明】
下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算机其位数k,然后将其各位数字逆序转换为字符串保存并输出。若num为负整数,则输出字符串应有前缀“-”。例如,将该程序修改正确后,运行时若输入“14251”,则输出“15241”;若输入“-6319870”,则输出“-0789136”。
下面给出的C程序代码中有五处错误,请指出错误代码所在的行号并给出修改正确后的完整代码行。
【C程序代码】
本题考查 C 程序员查找错误和排除错误的基本能力。 程序中的错误主要分为语法错误和语义错误两类。语法错误是指语言结构上的错误,例如,是否引用了未定义的变量,表达式中缺少操作数等等。语义错误是指语言结构含义不正确或程序的运算逻辑有错误,这类错误可能在编译阶段发现(静态语义),也可能推迟到运行阶段才暴露。例如,表达式中运算符号不能处理所引用的运算对象 ,无穷循环等。
考生需要非常熟悉C语言的基本语法,从而通过走查源代码来发现语法错误。查找语义错误则需要充分理解程序的逻辑,也就是整个程序的结构和每条语句所起的作用。
前 2 行为预处理命令行,对于最常使用的 include 命令,考生应该非常熟悉,以便检查程序中对常用函数的调用是否正确。本程序中前两行无错误。
显然,接下来的四行分别为 mam 函数的首部,函数体的开始符号"{"、变量定义语句和空白行,这里也没有错误。
第 7 行为格式化输入函数 scanf 的调用语句,这是比较容易出错的地方,常见的错误是格式控制串与输入表列中的变量不匹配,或者是丢失变量前的取地址运算符号" &",该行的错误即在这里。
第 8行至第 12 行用于计算所输入整数的位数并用 k 来计算(记录),这几行代码应作为一个整体来理解。程序中首先将num的值备份至 t ,并对k 赋值,然后通过循环对t 进行辗转除以 10 的运算,使 t 每次都丢掉其个位数,即 t 的位数逐渐减少(t 每减少 l位, k 就增加1),直到 t 的值为 0时为止,此时 k 的值即为num的位数。第 9 行的循环条件错误导致了无穷循环(t 等于 0 时也继续循环),由于 t 的初值也可能是负数,因此应将其中的"t>=0" 改为"t!=0"。
第 14 行没有错误。
第 15 行的错误很明显,也很常见,即将"="误用为"=",从而改变其所在语句 的语义,其中的 "pstr=0"则将pstr的值重置为 0,使pstr所记录的字符串存储空间首地址信息丢失,此后针对 pstr[]的运算都会出错。
第 17 行至第 21 行用于处理 num 为负数时输出字符串应包含前缀"一"的要求,这几行没有错误。
第 22 行至第 25 行用于从 num 得到其逆置的数字字符串,其错误在第23行,属于逻辑错误。num%10 的运算结果为 num 的个位数字,而 pstr[]中要存储的是数字字符(即 ASCII 值),因此应将num%10 的运算结果加上字符 '0' (或字符 '0'的 ASCII 码值 48)。
第 26 行用于设置字符串结束标志,需要注意的是串结束标志的位置。由于 num 可能为负数,因此将字符串结束标志字符设置在 k 下标处可能出错,保险的做法是继续用 i作为下标,使得'\0'正好跟在最后一个数字字符的后面。
第 27 行至第 30 行没有错误。
思科路由器的内存体系由多种存储设备组成,其中用来存放IOS引导程序的是( ),运行时活动配置文件存放在( )中。
问题1选项
A.FLASH
B.ROM
C.NVRAM
D.DRAM
问题2选项
A.FLASH
B.ROM
C.NVRAM
D.DRAM
电信运营商提供的ISDN服务有两种不同的接口,其中供小型企业和家庭使用的基本速率接口(BRI)可提供的最大数据速率为( )。供大型企业使用的主速率接口(PRI)可提供的最大数据速率为( )。
问题1选项
A.128Kb/s
B.144Kb/s
C.1024Kb/s
D.2048Kb/s
问题2选项
A.128Kb/s
B.144Kb/s
C.1024Kb/s
D.2048Kb/s
PGP (Pretty Good Privacy)是一种电子邮件加密软件包,它提供数据加密和数字签名两种服务,采用( )进行身份认证,使用( )(128位密钥)进行数据加密,使用( )进行数据完整性验证。
问题1选项
A.RSA公钥证书
B.RSA私钥证书
C.Kerboros证书
D.DES私钥证书
问题2选项
A.IDEA
B.RSA
C.DES
D.Diffie-Hellman
问题3选项
A.HASH
B.MD5
C.三重DES
D.SHA-1
边界网关协议BGP4被成为路径矢量协议,它传送的路由信息是由一个地址前缀后跟( )组成,这种协议的优点是( )。
问题1选项
A.一串IP地址
B.一串自治系统编号
C.一串路由器编号
D.一串子网地址
问题2选项
A.防止域间路由循环
B.可以及时更新路由
C.便于发现最短通路
D.考虑了多种路由度量因素
某公司域名为pq.com,其POP服务器的域名为pop.pq.com,SMTP服务器的域名为smtp.pq.com,配置Foxmail邮件客户端时,在发送邮件服务器栏应该填写( ),在接收邮件服务器栏应该填写( )。
问题1选项
A.pop.pq.com
B.smtp.pq.com
C.pq.com
D.pop3.pq.com
问题2选项
A.pop.pq.com
B.smtp.pq.com
C.pq.com
D.pop3.pq.com
CDMA for cellular systems can be described as follows. As with FDMA, each cell is Allocated a frequency ( ),which is split into two parts; half for reverse (mobile unit to base station) and half for( )(base station to mobile unit). For full-duplex( ), a mobile unit uses both reverse and forward channels. Transmission is in the form of direct-sequence spread( )which uses a chipping code to increase the data rate of the transmission, resulting in an increased signal bandwidth.Multiple access is provided by assigning( )chipping codes to multiple users, so that the receiver can recover the transmission of an individual unit from multiple transmissions.
问题1选项
A.wave
B.signal
C.bandwidth
D.domain
问题2选项
A.forward
B.reverse
C.backward
D.ahead
问题3选项
A.connection
B.transmission
C.compromise
D.communication
问题4选项
A.structure
B.spectrum
C.stream
D.strategy
问题5选项
A.concurrent
B.orthogonal
C.higher
D.lower
结构化布线系统分为六个子系统,其中水平子系统的作用是( ),园区子系统的作用是( )。
问题1选项
A.连接各个建筑物中的通信系统
B.连接干线子系统和用户工作区
C.实现中央主配线架与各种不同设备之间的连接
D.实现各楼层设备间子系统之间的互连
问题2选项
A.连接各个建筑物中的通信系统
B.连接干线子系统和用户工作区
C.实现中央主配线架与各种不同设备之间的连接
D.实现各楼层设备间子系统之间的互连
IPv6的可聚合全球单播地址前缀为( ),任意播地址的组成是( )。
问题1选项
A.010
B.011
C.001
D.100
问题2选项
A.子网前缀+全0
B.子网前缀+全1
C.链路本地地址前缀+全0
D.链路本地地址前缀+全1
DNS服务器中的资源记录分成不同类型,其中指明区域主服务器和管理员邮件地址的是( ),指明区域邮件服务器地址是( )。
问题1选项
A.SOA记录
B.PTR记录
C.MX记录
D.NS记录
问题2选项
A.SOA记录
B.PTR记录
C.MX记录
D.NS记录
采用抓包工具截获的结果如下图所示,图中第1行记录显示的是( ),该报文由( )发出。
问题1选项
A.TCP错误连接响应报文
B.TCP连接建立请求报文
C.TCP连接建立响应报文
D.Urgent紧急报文
问题2选项
A.Web客户端
B.Web服务器
C.DNS服务器
D.DNS客户端