首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。 【说明】 下面的程序按照以下规则输出给定名词的复数形式。 a.若名词以“y”结尾,则删除y并添加“ies”; b.若名词以“s”、“ch”或“sh”结尾,则添加“es”;
阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。 【说明】 下面的程序按照以下规则输出给定名词的复数形式。 a.若名词以“y”结尾,则删除y并添加“ies”; b.若名词以“s”、“ch”或“sh”结尾,则添加“es”;
admin
2009-05-15
52
问题
阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。
【说明】
下面的程序按照以下规则输出给定名词的复数形式。
a.若名词以“y”结尾,则删除y并添加“ies”;
b.若名词以“s”、“ch”或“sh”结尾,则添加“es”;
c.其他所有情况,直接添加“s”。
【C程序】
#include <stdio.h>
#include <string.h>
char*plural(char *word)
{
int n;
char *pstr;
n=strlen(word); /*求给定单词的长度*/
pstr=(char*)malloc(n+3);/*申请给定单词的复数形式存储空间*/
if (!pstr||n<2)
return NULL;
strcpy(pstr,word); /*复制给定单词*/
if ((1))
{
pstr[n-1]=’i’;pstr[n] =’e’;pstr[n+1]=’s’;(2);
}
else
if(pstr[n-1]==’s’| |pstr[n-1]==’h’&&((3)))
{
pstr[n]=’e’;pstr[n+1]=’s’;pstr[n+2]=’\0’;
}
else
{ pstr[n]=’s’;pstr[n+1]=’\0’;)
(4);
}
main()
{ int i; char *ps;
char wc[9][10]=
{"chair","dairy","boss","circus","fly","dog","church","clue","dish");
for(i = 0;i<9; i++) {
ps= (5) ;
printf("%s: %s\n",wc
,ps); /*输出单词及其复数形式*/
free(ps); /*释放空间*/
}
system("pause");
}
选项
答案
(1)pstr[n-1]=’y’,或*(pstr+n-1)==’y’,或其等价表示 (2)pstr[n+2]=’\0’,或*(pstr+n+2)=’\0’,或其等价表示 (3)pstr[n-2]=’c’||pstr[n-2]=’s’,或其等价表示 (4)return pstr (5)plural(wc[i]),或其等价表示
解析
本题考查C程序设计基本能力和字符串处理基本操作。
C程序中字符串存储在字符数组中,串的结尾需要设置结束标志符号’\0’。若已知串 pstr的长度为n(不包括结束标志),则串中的字符依次存储在pstr[0],pstr[1],...,pstr[n-1]中。因此,名词的最后一个字符pstr[n-1]若等于字符“y”,则按照规则a求其复数形式。下面的if语句处理的是以“y”结尾的名词,因此,空(1)处应填入“pstr[n-1]=’y’”或其等价形式。由于串pstr的长度发生了变化,所以需要设置新的结束标志,空(2)处应填入“pstr[n+2]=’\0’”’或其等价形式。
if( (1) )
{
pstr[n-1]= ’I’; pstr[n]= ’e’; pstr[n+1] = ’s’; (2) ;
}
显然,下面的if语句处理规则b所示的情况,即串的末尾为“s”、“ch”或“sh”的情形,空(3)处应填入“pstr[n-2]=’c’||pstr[n-2]=’s”或其等价形式。
if(pstr[n-1]==’s’||pstr[n-1]==’h’ && ( (3) ))
{
pstr[n] = ’e’; pstr[n+1] =’s’; pstr[n+2]=’\0’;
}
根据函数“char *plural(char *word)”的定义,最后应将求得的给定名词的复数形式返回给主调函数mae,对于串,应返回串空间的首地址,即返回指针pstr,因此空(4)处应填入“return pstr”。
根据以下代码,空(5)处应调用函数plural(char*word)对指定名词求复数,数组 WC初始化时已设置了名词序列,因此,空(5)处应填入“plural(wc
)”。
for(i = 0; i < 9; i++) {
ps= (5) ;
printf("%s: %s\n",wc
,ps); /*输出单词及其复数形式*/
free(ps); /*释放空间*/
}
转载请注明原文地址:https://kaotiyun.com/show/UIjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Word2007中,字符样式应用于__________。
面向社会服务的信息系统突发安全事件时所采取的技术措施中一般不包括(62)________________。
在Excel2010的A1单元格中输入函数“=ABS(ROUND(-1.478,2))”,按回车键后,A1单元格中的值为________________。
计算机中的数据是指________________。
在Excel2010中,设单元格A1、B1、C1、A2、B2、C2中的值分别为1、2、3、4、5、6,若在单元格D1中输入函数“=MAX(A1:A2,B1:C2)”,按回车键后,则D1单元格中的值为(
下列关于Windows7屏幕保护程序的叙述中,不正确的是__________。
假设在Access中已经建立了“学生”表,表中包括“学号”、“姓名”、“性别”和“班级”等字段,如果要统计出每个班级的人数,那么在查询设计视图的“班级”的“总计”行和“学号”的“总计”行中应分别选择(65)。
在Word2010中,要对设定好纸张大小的文档进行每页行数和每行字数调整,可通过页面设置对话框中的()命令进行设置。
计算机操作系统的主要功能是______。
某公司下设4个分公司A、B、C、D,上月各分公司的销售额及其在总公司所占比例如下表所示。由于此表单受潮,有些数据看不清了,但还可以推算出来。根据推算, D公司上月的销售额为(68)万元。
随机试题
公元2世纪,采用了“气质”这一用语并把人的气质分为13种的是罗马医生
A.疏邪透表B.解肌清热C.疏肝解郁D.升阳举陷E.透邪舒郁
患者,男,31岁。因突发肉眼血尿4天作膀胱镜检查,术后出现明显尿频、尿急、尿痛,伴发热39.8℃和腰痛,如做清洁中段尿细菌培养,最可能为以下细菌感染的是
有一名16岁男孩,2小时前3楼掉下,一花盆击伤左顶部,当时有短暂意识障碍,左顶部有1.5cm长头皮不全裂伤,局部头皮肿胀,正侧切位颅片示左顶1.0cm凹陷骨折,头颅CT示左顶凹陷骨折,局部头皮肿胀。
淋病的特点,错误的是
手工铺砂法测试路面构造深度方法测试步骤如下:①用小铲向圆筒中缓缓注入准备好的量砂至高出量筒成尖顶状,手提圆筒上部,用钢尺轻轻叩打圆筒中部3次,并用刮尺边沿筒口一次刮平。②用钢板尺测量其所构成圆的两个垂直方向的直径,取其平均值。③用扫帚或毛刷子将测点附近的路
生产物流计划的核心是生产作业计划的编制工作。()
各种因素对不同幼儿的影响是通过______而实现的。
WheredidGabrielaMistralstartherteachingcareer?
Father’sDayis【T1】______allaroundtheworldtosaythankyoutodads.AnoldEnglishproverbtellshowimportantfathersare.
最新回复
(
0
)