首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定的程序中,函数fun()的功能是;将s所指字符串中出现的n所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如:当s所指字符串中所指的内容为 abcdabfab,t1所指字符串中
下列给定的程序中,函数fun()的功能是;将s所指字符串中出现的n所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如:当s所指字符串中所指的内容为 abcdabfab,t1所指字符串中
admin
2010-05-05
37
问题
下列给定的程序中,函数fun()的功能是;将s所指字符串中出现的n所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如:当s所指字符串中所指的内容为 abcdabfab,t1所指字符串中的内容为ab,t2所指字符串中的内容为99时,结果在w所指的数组中的内容应为99cd99f99。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <string.h>
/*************found**************/
int fun (char *s, char *t1, char *t2, char *w)
{
int i; char *p,*r,*a;
strcpy(w,s);
while (*w)
{p=w; r=t1;
/*************found**************/
while (r)
if (*r= =*p) {r++;p++;}
else break;
if (*r= =’\0’)
{a=w; r=t2;
/*************found**************/
while (*r){*a=*r;a++;r++}
w+=strlen(t2);
}
else w++;
}
}
main()
{char s[100],t1[100],t2[100],w[100];
clrscr();
printf("\nPlease enter string S: ");
scanf("%s",s);
printf("\nPleaseentersubstring t1: ");
scanf ("%s", t1);
printf("\nPlease enter substring t2: ");
scanf ("%s",t2);
if (strlen(t1)= =strlen(t2))
{
fun (s,t1,t2,w);
printf("\nThe result is : %s\n",w);
}
else printf("Error : strlen(t2)\n");
}
选项
答案
(1)错误:int fun(char *s,char *t1,char *t2, char *w) 正确:void fun(char *s,char *t1,char *t2, char *w) (2) 错误:while(r) 正确:while(*r) (3) 错误:r++ 正确:r++;
解析
在int fun(char *s,char *t1,char *t2, char *w)中,用int型定义指针数组。ANSI标准要求动态分配系统返回void指针。 void指针具有一般性,它们可以指向任何类型的数据。但目前绝大多数C编译所提供的这类函数都返回char指针。无论以上两种情况的哪一种,都需要强制类型转换的方法把char指针转换成所需的类型。该程序段应该是void fun(char *s,char *t1, char *t2, char *w),另外,while(r)和r++都是简单的逻辑和语法错误,只要加强了C语言的基础,这样的错误明显是“送分”的。
转载请注明原文地址:https://kaotiyun.com/show/zXID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面关于蛋白质分子结构与功能的叙述。错误的是()。
2014年种种信号和变化,表明我国经济发展出现了趋势性、不可逆的新常态。经济进入新常态,是30多年高速发展的必然结果,是客观经济规律作用的体现。“新常态经济”的主要特征是()。
根据我国《宪法》规定,决定战争与和平问题的职权由()。
公开审判是指法院对案件的审理过程和判决结果向群众、向社会公开的制度,包括公开审理和公开宣判。下列关于公开审判制度的表述,哪一项是正确的?()
中国古代有个统一王朝,它最先在全国范围内推行了郡县制.建立起中央集权制的政治模式。据此判断,这个王朝是()。
编号从1到10的10个白球排成一行,现按照如下方法涂红色:①涂2个球:②被涂色的2个球的编号之差大于2。那么不同的涂色方法有多少种?
如下图所示,正方形ABCD的边长是14厘米,其中,BE=CE=7厘米。如果点P以每秒2厘米的速度沿着边线CD从点C出发到点D,那么三角形AEP的面积将以每秒()平方厘米的速度增加。
我国《行政处罚法》规定,行政机关在调查或进行检查时,执法人员不得少于两人,并应当向当事人或有关人员出示证件。这体现了行政处罚程序中的()。
随机试题
A.支气管扩张B.肺脓肿C.慢性支气管炎伴发肺气肿D.肺癌E.支气管哮喘慢性咳嗽、咳痰、气短8年余,并进行性加重
下述各项中违背医学伦理学尊重原则的是
我国规定,首次公开发行股票以协商定价方式确定股票发行价格。()
()是银行最重要的无形资产。
当地方性法规与部门规章的有关规定相抵触时()。
对于需要冷藏、保温或加温的货物,虽不够整车运输条件,但也应按整车托运。()
在人们的理想中,最根本的、起主导作用的理想是()
Manyteachersbelievethattheresponsibilitiesforlearningliewiththestudent.(1)_____alongreadingassignmentisgiven,
在支持______地址空间的操作系统环境下,能运行比该计算机主存容量还大的程序。
计算机之所以能按人们的意图自动进行工作,最直接的原因是因为采用了_______。
最新回复
(
0
)