首页
登录
从业资格
阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。 【说明】
阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。 【说明】
资格题库
2022-08-02
61
问题
阅读以下说明和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 行没有错误。
转载请注明原文地址:https://tihaiku.com/congyezige/2427572.html
本试题收录于:
初级程序员题库软件水平考试初中高级分类
初级程序员
软件水平考试初中高级
相关试题推荐
使用()开发的程序称为Revit插件,也称为二次开发。A.Revitret B
通过应用程序菜单按钮-【选项】-【ViewCube】来对ViewCube外观进行
根据《建筑工程设计信息模型分类和编码标准》,分类对象编码由表编码、大类代码、中类
下列选项中,属于BIM协调性功能之一,并且该功能通过BIM三维可视化控件及程序自
解答服务对象的健康问题,帮助其澄清观念、做出决策的人际传播形式称为A.咨询B.个
程序语言若规定程序中的变量必须先定义(或声明)再引用,则违反此规定的程序在()时
IE浏览器能够正确解析()代码。A.ASP B.HTML C.JSP D
若程序P经编译并连接后可执行,则()。A.P是正确的程序 B.P中没有语法
若程序中定义了局部变量与全局变量,则()。A.在函数内只能访问局部变量,而不能访
若程序中使用的变量未设置初始值,则()。A.编译时会一定出错 B.运行时一定出
随机试题
In1947agroupoffamouspeoplefromtheartworldheadedbyanAustrianco
MargaretSpellings,thesecretaryofeducation,announcedapilotreformto
TheHealthRisksofSmallApartm
Ialwayshaveasmileonmyface,______(这带给我许多好处).whichhasdonemealotofgoo
TheInternethasenabledthespreadofinformationatlightningspeed.This
资料(一) 嘉特汽车股份有限公司总部位于中国内地,成立于1992年,由国
共用题干 Rainmaking1Theideaofrainmaking
1948年4月毛泽东《在晋绥干部会议上讲话》中完整地提出了新民主主义革命总路线,
一住店客人未付房钱即想离开旅馆去车站。旅馆服务员揪住他不让走,并打报警电话。客人
根据《建设工程监理规范》(GBT50319-2013),监理规划应在()编
最新回复
(
0
)