首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi 1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: sizeof(strl)=5 sizeof(str2)=10 sizeof(str3)=l
使用VC6打开考生文件夹下的源程序文件modi 1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: sizeof(strl)=5 sizeof(str2)=10 sizeof(str3)=l
admin
2019-07-10
29
问题
使用VC6打开考生文件夹下的源程序文件modi 1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为:
sizeof(strl)=5
sizeof(str2)=10
sizeof(str3)=l
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。
(1)不能删除assert()语句;
(2)只能修改后面的数字。
提示:assert()函数如果为假,则会产生一个中断异常。
1 #include
2 #include
3 void main()
4 {
5 char*strl=”abc”;
6 //********error********
7 assert(sizeof(strl)==3);
8 cout<<"sizeof(strl) = 5"<
9 char str2[10]="ab";
10 //********error********
11 assert(si zeof(str2)==2);
12 cout<<"sizeof(str2)=10"<
13 char str3=23 ;
14 //********error********
15 assert(sizeof(str3)==4);
16 cout<<"si zeof(str3)=1"<
17 return;
18 }
选项
答案
(1)assert(Si zeof(strl)==4); (2)assert(Sizeof(str2)==10); (3)assert(Sizeof(str3)==1);
解析
本题的功能是利用assert()函数,则会产生一个中断异常。从已定源程序的main主函数开始入手,依次执行程序中的语句,输出题目中要求的输出值。本题在调试的时候并不会产生错误,它的错误是逻辑错误。
[解题思路]
(1)assert()函数如果为假,则会产生一个中断异常。所以要让它正常执行输出结果,那么assert()函数就要为真,才不会产生中断异常。“assert(sizeof(strl)==3);”语句中“sizeof(strl)==3”为假,这个会使程序产生异常,不能正常执行。凶为strl的值为abc但是它还有一个尾符,所以它的长度应该是4,而不是3,所以第1个标识下修改为“assert(sizeof(str 1)==4);”。
(2)同(1),str2[10]说明,str2的空间为10,第2个标识下修改为“assert(sizeof(str2)--lO);”。
(3)同(1),char str3=23;语句说明23是字符,占空间为l,所以修改为“assert(sizeof(str3)==1);”。
转载请注明原文地址:https://kaotiyun.com/show/LW8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序是一个函数模板,用于把数组a的每个元素按照逆序放入数组b中。请填空完成该函数模板的定义template<classType>voidFunc(Typea[],Typeb[],【 】){for(in
由于常对象不能被更新,所以()。
若有以下定义:chara:intb;floatc;doubled;则表达式a*b+dc的值的类型为______。
关于模板函数与函数模板的说法,正确的是()。
下面程序的运行结果为#include<iostream.h>voidmain(){chara=’3’;switch(a){case’3’:cout<<"3"
对下列二叉树进行中序遍历的结果______。
tb此题考查的是对象的定义。对象的定义格式如下:类名对象名(参数表);所以题目中的tb是对象名标识符,而ta被定义成类MA的指针,故空格处应填tb。
函数fun的功能是将一个数字字符串转换为一个整数,请将函数补充完整。intfun(char*str){inthum=0;while(*str){num*=10;num+=______str++;}
下列选项中不属于软件生命周期开发阶段任务的是()。
随机试题
下列关于信用证的说法,正确的有
急性糜烂性胃炎治疗不应使用
关于生态影响保护与恢复措施的说法,正确的有()。
下列关于手持电动工具的安全使用要求中,正确的是()。
铁路施工测量质量特性分为一级质量特性和二级质量特性,下列施工测量二级质量特性中属于一级质量特性观测的有()。
人体最大的籽骨是________,位于股骨下端前面。
根据以下资料,回答下列问题。2009年单位GDP消耗、单位工业增加值能耗和单位GDP电耗由高到低排列,列表中均在前5位的地区有几个?
传统的交换机作为第二层设备,只能识别并转发(26)地址,要支持VLAN间的通信只能借助于具有(27)功能的网络设备。具有这种功能的设备有路由器和三层交换机。当用路由器解决VLAN通信时,路由器得到一个VLAN包后,根据目的IP地址,获得目的MAC地址及相应
下列叙述中,错误的是()。
Whatisthetopicofthenewsitem?
最新回复
(
0
)