首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT(),读取in36.dat
下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT(),读取in36.dat
admin
2009-02-24
30
问题
下列程序的功能是:把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://kaotiyun.com/show/ARYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
下列关于E-R模型向关系模型转换的叙述中,不正确的是()。
对数据库数据的删除是由数据库管理系统的()功能模块实现的。
设二叉树根结点的层次为0,一棵高度为h的满二叉树的结点个数是【】。
S-Designer是一种可视化的数据库设计工具,它的后续版本是Power-Designer,使用它可以完成如下的哪些功能?Ⅰ.可以画数据流图(DFD)Ⅱ.可以画实体联系图(E-R图),即设计概念数据模型(CDM)Ⅲ.可以从概念数据
关于计算机语言,下面叙述不正确的是
下列对进程间相互通信的描述错误的是
对关系模式进行规范化的目的是减少数据冗余,并避免出现【】、【】和【】。
UNIFACE应用开发分成三个步骤,其中对业务规则和处理流程进一步分析、明确、细化的过程是______。
可变分区存储管理方案中,在空闲区表中选择能满足进程内存要求的最大空闲区,分割后分配的算法是
SQLServer2008支持多种数据库还原级别。下列有关其数据库恢复的说法,错误的是()。
随机试题
以下关于病弱儿童的描述,不正确的是()
伦琴发现了X线,居里夫人发现了镭,随后不久放射线被用于临床治疗,从而为肿瘤的治疗开辟了一条新的途径,放疗设备中第一台深部X线机是在_______出现的并治愈了1例喉癌患者
授予执业医师麻醉药品和第一类精神药品处方资格的机构是
根据《房屋建筑工程质量保修办法》,电气系统、设备安装最低保修期限为()年。
下列关于建设项目试生产环境保护的有关规定,说法正确的是()。
转账凭证只登记与货币资金收付无关的经济业务。()
发行人应在创业板招股说明书中审慎分析说明未来发展及在增强成长性和自主创新方面的情况。()
存款是存款人基于对银行的信任而将资金存入的一种()
A.唇面近中面B.近中面远中面C.近中面面D.唇面远中面E.远中面面第—乳磨牙易患龋牙面是()。
国有工程监理企业改制为有限责任公司应当遵循一定的程序,在资产评估后的步骤是(18)。
最新回复
(
0
)