首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(char*s,char*s1,char水s2)中形参字符串s1和s2有相同的字符个数,且sl中各字符互不相同。该函数实现将已知字符串S中所有在字
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(char*s,char*s1,char水s2)中形参字符串s1和s2有相同的字符个数,且sl中各字符互不相同。该函数实现将已知字符串S中所有在字
admin
2021-09-05
38
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(char*s,char*s1,char水s2)中形参字符串s1和s2有相同的字符个数,且sl中各字符互不相同。该函数实现将已知字符串S中所有在字符串sl中也存在的字符,都用字符串s2中的对应位置的字符代替。
例如:设字符串S、s1和s2分别为:
S[]="ABCABC",
sl[]="AC",
s2[]="ZX"
则s2中的字符Z和X分别对应sl中的字符C和A,函数调用fun(s,s1,s2)将字符串S的内容变为”ZBXZBX”。
注意:不能修改程序的其他部分,只能修改fun()函数。
1 #include
2 void fun(char*S,char*S1,char *s2)
3 {
4
5 }
6 void main()
7 {
8 char S[]="ABCABC";
9 fun(S,"AC","ZX");
10 std::cout<
11 return;
12 }
选项
答案
1 char *p,*q; 2 for(;*s ; s++) //在串s中找符合条件的字符,然后替换 3 { 4 for(p=s1,q=s2 ;*p ; p++,q++) //让指针p,q分别指向s1和s2 5 { 6 if(*p==*s) //如果s中存在s1中p指向的字符 7 { 8 *s=*q ; //那么用q指向的s2中的字符替换 9 } 10 } 11 }
解析
(1)该程序功能是将已知字符串s中所有在字符串s1中也存在的字符,都用字符串s2中的对应位置的字符代替。它的解题思路,首先是找到符合替换条件的字符,然后进行替换。
(2)从已给部分源程序的main主函数开始入手,核心函数void fun(chat*s,char*s1,char*s2)中的s1,s2参数为要替换的字符串,s为要被替换的字符串。
[解题思路]
(1)让指针P,q分别指向s1和s2。
(2)然后利用for循环对s中的每一个当前字符与p指向的字符进行比较。
(3)如果(2)中的比较结果相等,那么用q指向s2中对应的字符替换。
转载请注明原文地址:https://jikaoti.com/ti/akc0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()。
有如下程序:#include<iostream>voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={23,42};fun(a[1],a[0]);std::cout<<a[0]
下列关于运算符函数的描述中,错误的是()。
在软件开发中,需求分析阶段可以使用的工具是()。
下列描述中,错误的是()。
己知函数FA调用FB,若要把这两个函数定义在同一个文件中,则()。
下列模板声明中,有语法错误的是()。
关于关键字class和typename,下列表述中正确的是()。
有函数模板声明和一些变量定义如下:temp1ate<c1assT1,c1assT2,c1assT3>T1sum(T2,T3);doubled1,d2;则下列调用中,错误的是()。
下列关于二叉树的叙述中,正确的是( )。
随机试题
社会主义初级阶段的基本经济制度是()
在Word中,设置段落缩进不能使用()。
Itwaslastnight______Iseethecomet.
下列不符合肾盂肾炎的病因发病的描述是
影像增强器的光放大倍数是
疝手术病人入院时血压150/96mmHg。针对此血压值正确的处理是
根据《中华人民共和国合同法》,属于建设工程合同的是()。
在相携相伴的风雨同行中,一批人走过风华正茂,正在经行而立不惑;一批人领略了春夏的______而收获着金秋的______。填入画横线部分最恰当的一项是
某班有学生50人,其中参加篮球队的有38人,参加足球队的有34人,参加排球队的有32人,篮球、足球都参加的有28人,足球、排球都参加的有24人,篮球、排球都参加的有26人,三项都参加的有20人。只参加一项的人比三项都没参加的人多几人?
计算下列各题:(Ⅰ)设(Ⅱ)设(Ⅲ)设y=,其中a>b>0,求y′.
最新回复
(
0
)