首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。例如: 输入:
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。例如: 输入:
admin
2019-05-29
47
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。例如:
输入:This is great!
输出:Tllis grea!
注意:不能修改程序的其他部分,只能补充fun()函数。
1 #include<iostream.h>
2 #define MAXLEN 1024
3 void convert(char* des,char*str)
4 {
5
6 }
7 void main()
8 {
9 char sour[MAXLEN];
10 char dest[MAXLEN];
11 cout<<’’Please input a string:’’<<end1;
12 cin.getline(sour,MAXLEN);
13 convert(dest,sour);
14 cout<<dest<<end1;
15 return;
16 }
选项
答案
1 int 1,j; 2 bool ToAdd; 3 des[0]=0; 4 for(i=0;str[i]!=NULL;i++) 5 { 6 ToAdd=true; 7 for(j=0; des[j]!=NULL; j++) 8 { 9 if(str[i]==des[j]) 10 { 11 ToAdd=false;//des数组中已存在该元素,将标志位设置为假,说明不用再添加 12 break;//des数组中已存在该元素,跳出循环 13 } 14 } 15 if(ToAdd)//des数组中不存在,添加进来 16 { 17 des[j]=str[i]; 18 des[j+1]=0; 19 } 20 }
解析
convert(char*des,char*str)函数的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。原来的字符串存放在str指向的数组中,新字符串存放在des指向的数组中,因此可逐个读取str指向的数组里面的字符,把不同的字符放入des指向的数组中,即每次读str指向的数组一个字符,就在des指向的数组里面查找是不是已经有该字符了,如果已经有了则不添加进来,反之则把该字符加入到des指向的数组中。
(1)由审题分析可知,需要两重循环,外层循环不断读取str中的元素,内循环在des数组中查找读到的str中的字符,如果找到了des数组中己存在该元素不需要添加,如果没找到则添加到des数组中。
(2)在外循环体内,先设置bool型的标志变量ToAdd为真,假设在des数组中str
不存在,然后再内循环中,用str
和des[j]比较,如果相同说明已经存在了,将ToAdd设置为假,des[j]后面的元素不需要再比较了,跳出内循环。
(3)通过判断ToAdd可知,str
是否存在des数组中,如果ToAdd为真,则说明des数组中不存在str
,将str
添加到des数组中。
转载请注明原文地址:https://www.kaotiyun.com/show/rB8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
A、 B、 C、 D、 B数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。
A、 B、 C、 D、 C此题考查的是函数的性质。当调用无参函数时主函数并不将数据传送给被调函数,且可以带回或不带回函数值。函数的递归调用就是直接或间接的调用自己。
A、 B、 C、 D、 C派生类的构造函数定义的一般格式为:派生类名(参数总表):基类名(参数表){派生类新增数据成员的初始化语句}在生成对象b时,就自动给基类构造函数传递实参1
A、 B、 C、 D、 Ccin是istream输入流类的派生类istream_withassign对象。cout是ostream输出流类的派生类ostream_withassign对象。
A、 B、 C、 D、 Cfun()的第一个参数是传值调用,第二个是传址调用,故在函数中修改形参的值会被传回到实参中,故结果为0和2。
A、 B、 C、 D、 C根据对二叉树根的访问先后顺序不同,分别称为前序遍历、中序遍历和后序遍历。这3种遍历都是递归定义的,即在其子树中也按照同样的规律进行遍历。下面就是前序遍历方法的递归定义。当二叉树的根不
面向对象程序设计主要经历了结构化设计和面向对象的程序设计阶段,面向对象在现在的程序设计中得到广泛的应用。
下列关于栈的叙述中,正确的选项是()。A)在栈中只能删除数据B)在栈中只能插入数据C)栈是先进先出的线性表D)栈是先进后出的线性表
虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序:#include<iostream>usingnamespaees
有如下两个类声明classAA{public:intm;};classBB:protectedAA{intn;};在类BB中,数据成员m的访问属性是_____,数据成员n
随机试题
质地疏松的全草类药材用
该病例可能诊断是合理的治疗是
多用途地籍,也被称作()。
需要进行社会评价的投资项目主要包括( )。
管道系统试验前管道上的膨胀节( ),管道已按试验要求进行加固。
【背景资料】A公司在冬季承接了一室外压缩空气管网系统的安装,系统工作压力为2.5MPa。由于工期较紧,A公司将系统中部分规格的直管分包给B公司。A公司和B公司均具备与承包管道系统相符的压力管道施工许可证,管道及管件均由业主提供。管道系
个人住房贷款的计息、结息方式,由中国人民银行统一规定。()
市场风险主要包括()风险。
有些人把别人的思想和理论拿来,当做唬人的幌子,装自己的门面,实际只是_______,并非真有所得。填入画横线部分最恰当的一项是:
AttendingaCollegeorUniversityintheUSAEachyear,manyforeignstudentswishtogotothecollegesanduniversitiesin
最新回复
(
0
)