首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT(),读取in36.dat
下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT(),读取in36.dat
admin
2009-02-24
67
问题
下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT(),读取in36.dat中的字符串,并把结果输出到文件out36.dat中。
例如:s字符串中原有的内容为Mn 123Zxy,则调用该函数后,结果为No 123Ayz。
注意:部分源程序已给出。
请勿改动主函数main()和输入输出函数readwriteDAT()的内容。
试题程序:
#include<stdio. h>
#include<string. h>
# include<conio, h>
# include<ctype, h>
#define N 81
void readwriteDAT ();
void chg(char as)
{
}
main ( )
{
char a [N];
clrscr ();
printf("Enter a string:");
gets (a);
printf ("The original string is :");
puts (a);
chg (a);
printf("The string after modified :");
puts (a);
readwriteDAT ();
}
void readwriteDAT ()
{
int i;
char a [N];
FILE *rf, *wf;
r f=fopen ("in36. dat", "r" );
wf=fopen ("out36. dat", "w" );
for (i=0;i<10; i++)
{
fgets (a, 81, rf);
chg (a);
fprintf (wf, "%s", a);
}
fclose (rf);
fclose (wf);
}
选项
答案
void chg(char *s) { while (*s) if(*s==’z’ | |*s==’z’) /*字母z改成字母a,字母z改成字母A*/ { *s-=25; s++; /*取下一个字母* / } else if(*s>=’a’&& *s<=’y’) /*把小写字母改成该字母的下一个字母*/ { *s+=l; s++; /*取下一个字母*/ } else if (*s>=’A’&& *s<=’Y’) /*把大写字母改成该字母的下一个字母*/ { *s+=l; s++; /*取下一个字母*/ } else s++; /*取下一个字母* / }
解析
本题考查的知识点如下:
(1)英文字母对应的ASCII码的排列规律。
(2)指针的操作。
(3)选择结构中多个条件的布尔运算。
在ASCII码中,大、小写字母的ASCII码是连贯的,a~z对应97~122,A~Z对应65~90。z的ASCII码减去25即得到a的ASCII码,对Z同样适合。所以我们要对字符串中的字符依次进行判断,若是大(小)写字母,则按照ASCII码的规律和题意要求对字符进行转换。在这里,使用指针完成对字符的依次访问,每次将指针的地址加1直至指针为空即可。在选择结构的多个条件中,若需同时满足,则用“与”运算,否则,用“或”运算。
转载请注明原文地址:https://www.kaotiyun.com/show/ARYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
表达实体类型及实体之间联系用的数据结构是
设栈S和队列Q的初始状态均为空,元素e1,e2,e3,e4,e5,e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2,e4,e3,e6,e5,e1,则栈S的容量至少应是()。
设计数据库系统时,在需求分析中采用()、逐步分解的方法分析系统。
用户关系模式R中所有的属性都是主属性,则R的规范化程度至少达到【】。
Oracle数据库系统物理空间的使用是由下列哪一个(些)结构控制的?
对于学生信息表:student(sno,sname,sex,age,dept),如果把学生“张明”的姓名改为“张岩”,则正确的语句是
严格两阶段封锁协议要求事务所持有的所有______必须在事务提交后方可释放。
SQLServer2008支持多种数据库还原级别。下列有关其数据库恢复的说法,错误的是()。
利用程序模拟脱机输入输出时外围控制机的功能,在主机的直接控制下实现脱机的输入输出功能,此时外围操作与CPU对数据的处理同时进行,这种技术称为()。
按密钥的使用个数,密码系统可以分为
随机试题
已知工质的压力和温度,在该温度下,当压力小于饱和压力时,工质所处的状态是()。
调节肾小管Na+-K+交换的激素是______;调节肾小管对水重吸收的激素是______。
A.五味消毒饮B.仙方活命饮C.黄连解毒汤D.犀角地黄汤E.清骨散疮疡内治,清气分热之常用方剂是
某直辖市政府以“摩的”遍地开花影响市容为由发布一项通知,要求凡是从事“摩的”运营的都应当取得市政府的运营许可证。关于此运营许可证,下列说法哪一项是正确的?()
根据土的抗剪强度指标确定地基承载力可按下式计算:fv=Mbγb+Mdγ0d+McCk以下关于上式的适用条件e≤0.033b的解释______项正确。
对于已确认减值损失的可供出售债务工具,在随后的会计期间公允价值已上升且客观上与原减值损失确认后发生的事项有关的,原确认的减值损失应当予以转回,计入()科目。
社区服务站接受街道办事处和社区党组织的(),接受政府职能部门的(),同时接受社区居民委员会的()。
(1)夏朝灭亡(2)商鞅变法(3)统一六国(4)周公吐哺(5)卧薪尝胆
()是指一个人为了实现道德要求,战胜利己的动机作出合理的决定和排除内外障碍坚持道德行为的能力。
设X1,X2,…,Xm为来自二项分布总体B(n,p)的简单随机样本,和S2分别为样本均值和样本方差.若+kS2为np2的无偏估计量,则k=________.
最新回复
(
0
)