当前位置:等级考试首页 >> 等考真题 >> 计算机三级C语言上机试题总结

计算机三级C语言上机试题总结 (5)

[2006-09-11 11:58:39]  [来自:系分之路]  [字体: ]

x pomz
vojrvf lfzt. Fps fybnqmf, jg zpv tqfdjgz uibu uif fnqmpzff
ovncfst bsf
vojrvf, ISAM pomz mfut zpv bee sfdpset up uif gjmf gps, ps
dibohf
ovncfst up, fnqmpzff ovncfst uibu ep opu bmsfbemz fyjtu jou
gjmf.

字符串处理之三
code:
/*
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到
字符串数组xx中; 请编制函数SortCharA( ), 其函数的功能是: 以
行为单位对字符按从小到大的顺序进行排序, 排序后的结果仍按行
重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把
结果xx输出到文件OUT1.DAT中。
例: 原文: dAe,BfC.
CCbbAA
结果: ,.ABCdef
AACCbb
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含

标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函
数WriteDat()的内容。
*/
#include
#include
#include

char xx[50][80] ;
int maxline = 0 ; /* 文章的总行数 */

int ReadDat(void) ;
void WriteDat(void) ;

void SortCharA(void)
{/**/
int i,j,k,m,n; char ch;
for(i=0; i < maxline; i++)
{ j=strlen(xx[i]);
for(m=0; m < j-1; m++)
{ k=m;
for(n=m+1; n < j; n++)
if(xx[i][k] > xx[i][n]) k=n;
if(k!=m)
{ ch=xx[i][k]; xx[i][k]=xx[i][m]; xx[i][m]=ch; }
}
}
/**/
}

void main()
{
clrscr() ;
if(ReadDat()) {
printf("数据文件IN.DAT不能打开!n07") ;
return ;
}
SortCharA() ;
WriteDat() ;
}

int ReadDat(void)
{
FILE *fp ;
int i = 0 ;
char *p ;

if((fp = fopen("IN.DAT", "r")) == NULL) return 1 ;
while(fgets(xx[i], 80, fp) != NULL) {
p = strchr(xx[i], 'n') ;
if(p) *p = 0 ;
i++ ;
}
maxline = i ;
fclose(fp) ;
return 0 ;
}

void WriteDat(void)
{
FILE *fp ;
int i ;

clrscr() ;
fp = fopen("OUT1.DAT", "w") ;
for(i = 0 ; i < maxline ; i++) {
printf("%sn", xx[i]) ;
fprintf(fp, "%sn", xx[i]) ;
}
fclose(fp) ;
}

out1.dat 文件内容如下(注意每行的前面有若干空格):
,Yaaaaabccddddeeeeeeeeeffiiilllnnnnnnoooorrsssttuuvxy
,,.Taaaaaeeeeeeefghhhhknnooooooprrrrsssttttttttuuwyy
aaaccccccddddeeeeeeeeffiiiiiikkllnnnnoooopqrrsssssstuuwxyy
.AAIMSaacdeeeeeeeffffggiiilllnnnnooooooopqrrrrrrssssttuuy
,.Aaaaaccdddddddeeeeeeeeeeeffhiiiiilnnnnnnnnooosttttuvxxy
.aacdddeeeeehhinnnooooorrrrsstttx
Yaaaaaccddddeeeeeefffhhiiiiiiilllmnnnnnoooqrrtttttuuuwyyy
,.EFaaccddeeeeeeeeeeffhhhiilllllmmmnoooooopprrrrrrrstttxy
Naabbddeeeeeeffghiiiiilmmmnnnnoooooqrrssssttttuuuuuwy
,aabddeeeeeeeeeeeeffghhiilmmnnnnnooooprrrrrsssssttttuuvyy
.Iabcdddeeeeeefffgghhiiiillmmnnnooooooooprrrsstttuwyyy
,abccddeeeeeeeeeeefffghhhiiiiiiilllmmnnnoooppqrssssttttuuuvy
.acccdeeeeeehhhhooorrrrrtttuvwy
,Iaacddddeeeeeffffhhiiiilmnnnoooooqrrrssttttuuuuuvyy
aaccdddeeeeeeeeeeeehhhhhhiikmmnnnoooorrrrrssttttttuuwyyy
,..Iaaaacccdeeeeeffghhhiiiimnnnnnoooooorrrrssssttttttttuuwy
,Iaaacddeeeeffhhhiiiiklnnnooooooqrrrstttuuuuuuvwwyyyy
,AIMSaaaaccccdddeeeefhhiiiiiikllllllnnnnnnoooprssttttuwwyy
,.Faaabceeeeeeeeeeeffhhiiikllmmmnnooopppqrrrssstttuuuuxyyyy
,,AIMSaaccdddeeeeeeffghhiilllnnnooooooqrrrrsstttuuuyy
,.aaabbddeeeeeeeefhiiillllmmmnnnnooooprrrsssttttttuuxyy

字符串处理之四
code:
/*
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到
字符串数组xx中; 请编制函数StrCharJL( ), 其函数的功能是: 以
行为单位把字符串中的所有字符的ASCII值左移4位, 如果左移后,
其字符的ASCII值小于等于32或大于100, 则原字符保持不变, 否则
就把左移后的字符ASCII值再加上原字符的ASCII值, 得到新的字符
仍存入原字符串对应的位置上,之后把已处理的字符串仍按行重新
存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果
xx输出到OUT7.DAT文件中。
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含
标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函
数WriteDat()的内容。
*/
#include
#include
#include

char xx[50][80] ;
int maxline = 0 ; /* 文章的总行数 */

int ReadDat(void) ;
void WriteDat(void) ;

void StrCharJL(void)
{/**/
int i,j; char m;
/****老王注:此题的关键是定义 char m 。记得往年的考试类似题可以不必定义,
如果要定义的话,则必须定义为 int 结果才能正确。看来理解出题
者的意图是机试的难点之一。 ****/
for(i=0; i < maxline; i++)
for(j=0; j < strlen(xx[i]); j++)
{ m=xx[i][j]<<4;
if((m>32)&&(m<=100))
xx[i][j]+=m;
}
/**/
}

void main()
{
clrscr() ;
if(ReadDat()) {
printf("数据文件IN.DAT不能打开!n07") ;
return ;
}
StrCharJL() ;
WriteDat() ;
}

int ReadDat(void)
{
FILE *fp ;
int i = 0 ;
char *p ;

if((fp = fopen("IN.DAT", "r")) == NULL) return 1 ;
while(fgets(xx[i], 80, fp) != NULL) {
p = strchr(xx[i], 'n') ;
if(p) *p = 0 ;
i++ ;
}
maxline = i ;
fclose(fp) ;
return 0 ;
}

void WriteDat(void)
{
FILE *fp ;
int i ;

clrscr() ;
fp = fopen("OUT7.DAT", "w") ;
for(i = 0 ; i < maxline ; i++) {
printf("%sn", xx[i]) ;
fprintf(fp, "%sn", xx[i]) ;
}
fclose(fp) ;
}

字符串处理之五
code:
/*
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到
字符串数组xx中; 请编制函数StrCharJR( ), 其函数的功能是: 以
行为单位把字符串中的所有字符的ASCII值右移4位, 然后把右移后
的字符ASCII值再加上原字符的ASCII值, 得到新的字符仍存入原字
符串对应的位置上,之后把已处理的字符串仍按行重新存入字符串
数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文
件OUT8.DAT中。
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含
标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函
数WriteDat()的内容。
*/
#include
#include
#include

char xx[50][80] ;
int maxline = 0 ; /* 文章的总行数 */

int ReadDat(void) ;
void WriteDat(void) ;

void StrCharJR(void)
{/**/
int i,j;
for(i=0; i
for(j=0; j
xx[i][j]+=xx[i][j]>>4;
/**/
}

void main()
{
clrscr() ;
if(ReadDat()) {
printf("数据文件IN.DAT不能打开!n07") ;
return ;
}
StrCharJR() ;
WriteDat() ;
}

int ReadDat(void)
{
FILE *fp ;
int i = 0 ;
char *p ;

if((fp = fopen("IN.DAT", "r")) == NULL) return 1 ;
while(fgets(xx[i], 80, fp) != NULL) {
p = strchr(xx[i], 'n') ;
if(p) *p = 0 ;
i++ ;
}
maxline = i ;
fclose(fp) ;
return 0 ;
}

void WriteDat(void)
{
FILE *fp ;
int i ;

clrscr() ;
fp = fopen("OUT8.DAT", "w") ;
for(i = 0 ; i < maxline ; i++) {
printf("%sn", xx[i]) ;
fprintf(fp, "%sn", xx[i]) ;
}
fclose(fp) ;
}

out8.dat 文件内容应当如下:
^u|"igt"iykg{k"gt"otjk"ut"gt€"lokrj."ut"zk}kygr"lokrjz"{u"hk"|zkj

{umk{nky."uy"ut"wgy{z"{nkykul."{ng{"€u|"~gt{"{u"|zk"gz"g"qk€0"Ynk

qk€z"ot"otjkkz"grru~"€u|"x|oiq"giikzz"{u"zwkioloi"ykiuyjz"gtj"jklotk

uyjkyz"luy"zkx|kt{ogr"wyuikzzotm"ul"g"MXEQ"lork0"El{ky"€u|"tu"rutmky

tkkj"gt"otjk."€u|"igt"jkrk{k"o{0"Ejjo{out"gtj"otjkkz"ng}k"tu"kllki{

ut"{nk"jg{g"ykiuyjz"uy"ut"u{nky"otjkkz0
^u|"sg€"~gt{"g"lokrj"ot"lokrj"ot"kgin"ykiuyj"{u"|tox|kr€"ojkt{ol€"{ng{

ykiuyj"lyus"grr"u{nky"ykiuyjz"ot"{nk"lork0"Juy"kgswrk."{nk"Iswru€kk

R|shky"lokrj"oz"|tox|k"ol"€u|"ju"tu{"gzzomt"{nk"zgsk"t|shky"{u"{~u

jollkykt{"kswru€kkz."gtj"€u|"tk}ky"ykgzzomt"{nkzk"t|shkyz"{u"u{nky

kswru€kkz0"Ml"€u|"~ozn"{u"lotj"uy"sujol€"{nk"ykiuyj"hkrutmotm"{u"g

zwkioloi"kswru€kk."{noz"|tox|k"lokrj"zg}kz"{nk"{nu|hrk"ul"jk{kysototm

~nk{nky"€u|"ng}k"{nk"iuyyki{"ykiuyj0
Ml"€u|"ju"tu{"ng}k"g"|tox|k"lokrj."€u|"s|z{"lotj"{nk"loyz{"ykiuyj

{nk"sg{inkz"€u|y"qk€"gtj"jk{kysotk"~nk{nky"{nk"ykiuyj"oz"{nk"utk"€u|

~gt{0"M

[1] [2] [3] [4] [5] [6] [7]

发表评论】 【Email给朋友】 【打印本页】 【关闭窗口】 【返回顶部

·全国计算机软件专业技术资格(水平)考试,又称资格水平考试,简称软考。
评分: 1 2 3 4 5

    
  • 请您注意
  • 本站经营许可证编号:冀ICP备05012436号
  • 尊重网上道德,遵守中华人民共和国的法律法规
  • 承担一切因您的行为而直接或间接导致的法律责任
  • 本站有权保留或删除留言中的任意内容
  • 您在本站留言板发表的作品,本站有权转载或引用
  • 发表评论即表明您已经阅读并接受上述条款
  • 爱国 守法 自律 真实 文明
 
最新文章
推荐文章
热点文章
论坛新贴
论坛热贴