首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: sizeof(str1)=5 sizeof(str2)=10 sizeof(str3)=1
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: sizeof(str1)=5 sizeof(str2)=10 sizeof(str3)=1
admin
2018-10-23
27
问题
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为:
sizeof(str1)=5
sizeof(str2)=10
sizeof(str3)=1
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
(1)不能删除assert()语句;
(2)只能修改后面的数字。
提示:assen()函数如果为假,则会产生一个中断异常。
1 #include<iostream.h>
2 #include<assert.h>
3 void main()
4 {
5 char* str1=’’abc’’;
6 //********error********
7 assert(siZeof(strl)==3);
8 cout<<’’sizeof(str1) = 5’’<<end1;
9 char str2[10]=’’ab’’;
10 //********error********
11 assert(sizeof(str2)==2);
12 cout<<’’sizeof(str2)=10’’<<end1;
13 char str3=23;
14 //********error********
15 assert(sizeof(str3)==4);
16 cout<<’’sizeof(str3)=1’’<<end1;
17 return;
18 }
选项
答案
(1)assert(sizeof(str1)==4); (2)assert(sizeof(str2)==10); (3)assert(sizeof(str3)==1);
解析
本题的功能是利用assert()函数,则会产生一个中断异常。从已定源程序的main主函数开始入手,依次执行程序中的语句,输出题目中要求的输出值。本题在调试的时候并不会产生错误,它的错误是逻辑错误。
(1)assert()函数如果为假,则会产生一个中断异常。所以要让它正常执行输出结果,那么assert()函数就要为真,才不会产生中断异常。“assert(sizeof(str1)==3);”语句中“sizeof(str1)==3”为假,这个会使程序产生异常,不能正常执行。因为str1的值为abe但是它还有一个尾符,所以它的长度应该是4,而不是3,所以第1个标识下修改为“assert(sizeof(str1)==4);”。
(2)同(1),str2[10]说明,str2的空间为10,第2个标识下修改为“assert(sizeof(str2)==10);”。
(3)同(1),char str3=23;语句说明23是字符,占空间为1,所以修改为“assert(sizeof(str3)==1);”。
转载请注明原文地址:https://kaotiyun.com/show/2wAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的运行结果是main(){inta=2,c=5;cout<<"a="<<a<<"b="<<c<<endl;}
__[12]__是一系列相关函数的模型或样板,这些函数的__[13]__形式相同,只是所针对的__[14]__不同。
内联函数是通过______来实现的,因此内联函数是真正的函数。
数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为______。
下列程序的运行结果是()。#include<iostream.h>intx=5;intfun(intA){intC;C=X*a;returnC;}voidmain()
对于语句cout<<setfilll(’*’)<<setw(10)<<1<<setill(’*’)<<setw(2)<<2;的输出结果是()。
若已定义inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;则对数组元素的不正确的引用是()。
下列程序输出的结果是()。#include<stdio.h>un1(chara,charb){charc;c=a;a=b;b=c;}fun2(char*a,charb){charc;c=*a;*a=b;b=c;}
下列有关拷贝构造函数的描述中错误的是()。
以下定义数组中错误的是
随机试题
深龋备洞时,下列哪项措施是错误的?()
法的清理(中国人民大学2012年考研题)
某境外企业拟在国内投资建设没备制造项目,决定采用公开招标方式选工程咨询单位开展项目可行性研究工作,有A、B、c、D、E5家咨询单位通过了资格预审。在后续工作中发生了下列事件:事件1:因招标人原因需延长投标有效期,招标人及时通知了A、B、C、D、E5家投标
下列汽车库、修车库中,应设置2个汽车疏散出口的是()。
甲、乙、丙、丁、戊5名发起人募集设立了某股份有限公司。公司股本共计3000万股,其中甲持股20%,任公司总经理。公司章程对股东大会的召集方式及表决程序未作规定。2016年8月4日,甲提议召开公司临时股东大会,讨论公司增资方案。公司董事会于2016年8月5日
反映政府在干预经济过程中的投资活动的预算模式是()。
甲、乙、丙、丁四个人去图书馆借书,甲每隔5天去一次,乙每隔11天去一次,丙每隔17天去一次。丁每隔29天去一次。如果5月18日他们四个人在图书馆相遇.问下一次四个人在图书馆相遇是几月几号?
职业技能与职业道德二者之间没有必然联系。()
2003年,我国总人口约为多少人?( )根据上表所列数据,下列说法错误的是( )。
得道多助:失道寡助
最新回复
(
0
)