首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。 【说明】 下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算其位数k,然后将其各位数字逆序转换为字符串保存并输出。若nun为负整数,则输出字符串应有前缀“一”
阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。 【说明】 下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算其位数k,然后将其各位数字逆序转换为字符串保存并输出。若nun为负整数,则输出字符串应有前缀“一”
admin
2013-07-03
60
问题
阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。
【说明】
下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算其位数k,然后将其各位数字逆序转换为字符串保存并输出。若nun为负整数,则输出字符串应有前缀“一”。例如,将该程序修改正确后,运行时若输入“14251”,则输出“15241”;若输入“一6319870”,则输出“一0789136”。
下面给出的C程序代码中有五处错误,请指出错误代码所在的行号并给出修改正确后的完整代码行。
【C程序代码】
行号 代码
1 #include
2 #include
3 int main()
4 {
5 long num=0,t=0;char*pstr,i=0,k=0;
6
7 sancf(“%ld”,&num); /*输入一个整数,存入num*/
8 t=num; k:num!=0?0:1;
9 while(t>=0){ /*计算位数*/
10 t=t/10;
11 k++:
12 }
13
14 pstr=(char * )malloc((k+2)+sizeof(char));
15 If(pstr=0) return一1;
16
17 i=0:
18 if(num<0){
19 num=一num
20 pstr[0]=‘一’;i=1;
21 }
22 for(;k>0;k- -){ /*形成字符串*/
23 pstr[i++]=num%10;
24 num=num/10:
25 }
26 pstr[k]=‘\0’; /*设置字符串结尾*/
27 printf(“%s\n”,pstr);
28 free(pstr);
29 return 0:
30 }
选项
答案
行号 修改正确后的完整代码行 7 sancf(”%ld”,&num) 9 while(t!=0)或while(t) 15 if(pstr=0)或其等价形式 23 pstr[i++]=num.[*94]10+‘0’或其等价形式 26 pstr[i]=‘\0’或其等价形式
解析
本题考查考生对使用C语言编程时常见错误的查找和排除。
程序的第7行是使格式化输入函数scanf()的调用,这是比较容易出错的地方。常见的错误是格式控制串与输入列表中的变量类型不匹配,或是丢失变量前的取地址运算符号“&”。本行的错误就是变量num前丢失了地址运算符号“&.”,应将其改为:sancf(”%ld”,&num)。
程序第8~12行的功能是计算变量num的位数并将其结果以变量k显示。计算一个整数的算法是:将其循环除以10,每次在丢掉其个位数字的同时,其计算位数的变量执行加1操作,直到该整数的值被除到等于0为止。换句话说,只要该整数不为0,就一直执行循环除10操作。因此,第9行的循环条件出错,应改为:while(t! =0)。
程序第14~15行用于为要创建的字符串申请动态存储空间,并判断是否申请成功。第15行存在一个在程序员考试中多次考查的错误,判断内存是否申请成功的条件应改为:if(pstr==0)。
程序第22~25行用于将整数num转化为其逆序的字符串。此处的错误在第23行,因为*pstr中应存储的是字符而非数字字符,而num%10为整数,应在其后加上字符‘0’。因此,第23行的错误应修改为:pstr[i++]=num%10+‘0’。
程序第26行用于设置字符串的结束标志。由于num的值可正可负,将字符串的结束标志设置在k下标处在num的值为负时会出错。修改的方法是用i作为下标,使得‘\0’正好跟在最后一个数字字符的后面。因此,第26行的错误应修改为:pstr
=‘\0’。
转载请注明原文地址:https://kaotiyun.com/show/YnjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Word2010中,要对设定好纸张大小的文档进行每页行数和每行字数调整,可通过页面设置对话框中的()命令进行设置。
计算机操作系统的主要功能是______。
统计报表中常包括填表说明,以指导填表者填写。填表说明中一般不包括______。
许多书上都说,人一次只能记住或处理5~9(7±2)条信息。为了检验这个结论是否正确,宜采用()调查方法。经过多次调查统计研究发现,人一次平均只能记住或处理4条信息。经考证,原来7±2的说法只是一位专家在一个讲演稿中的估计,并不是真正的调研报告,但却
计算机病毒是一段程序,一般隐藏在______中。
为使双击指定类型的文件名就能调用相应的程序来打开处理它,需要将这种文件类型与相应的程序建立文件(23)。
下图是某国多年来统计的出生人数和死亡人数曲线图。从图中看出,该国从________________年以后,死亡人数超过了出生人数,出现了人口危机。
用高级语言编写的程序称为______。
阅读以下说明,回答问题1至问题6,将解答填入答题纸对应的解答栏内。【说明】在Linux下安装配置DHCP服务,DHCP服务程序/usr/sbin/dhcpd需要读取配置文件/etc/d/hcpd.conf,以下是一个DHCP配置文件的主要内容:
综合布线系统由6个子系统组成,将图1-1中(1)~(6)处空缺子系统的名称填写在答题纸对应的解答栏内。为满足公司要求,通常选用什么类型的信息插座?
随机试题
行政组织内部自我管理的制度包括()。
求y"一2y’一3y=xex的通解.
音乐艺术:《蓝色多瑙河》圆舞曲
鸠尾峡的宽度一般为面宽度的________。
A.特殊的螺旋状和端鞭毛B.具有高活性的胞外脲酶C.细胞毒素相关蛋白(CagA)和空胞毒素(VacA)D.细胞壁中的脂多糖(LPS)E.胃黏膜组织有助于HP穿过胃黏膜表面的黏液层与胃黏膜上皮细胞接触的成分是
某呼吸衰竭病人,在应用人工呼吸器和呼吸兴奋剂过程中出现恶心、呕吐、烦躁、颜面潮红、肌肉颤动等现象。应考虑为
下列选项中,不属于输出设备的是()。
关于基金会计核算,下列说法错误的是()。
中国特色社会主义文化建设的根本任务是()。
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】以下程序的功能是计算三角形、矩形和正方形的周长并输出。程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figur
最新回复
(
0
)