英语文章
余年寄山水
828次浏览
2020年07月30日 23:57
最佳经验
本文由作者推荐
狄玉明-肄业什么意思
ASCII值, f(p)是计算后无符号的整型值(注意:中间变量定义成整型变量), 如果
原字符是大写字母或计算后f(p)值小于等于32,则该字符不变, 否则用f(p)替代
所对应的字符。
注意: 部分源程序存放在PROG1.C中, 原始数据文件存放的格式是:每行的宽
度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
【参考答案】
void encryptChar()
{ int i,j,val; /* 定义变量 */
for(i=0;i
{ val=xx[i][j]*11%256; /* 替代关系 */
if(xx[i][j]>='A'&&xx[i][j]<='Z'||val<=32) /* 判断条件 */
continue;
else xx[i][j]=val;
}
}
第14套:
函数ReadDat()实现从文件中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件中。替代关系:f(p)=p*11 mod 256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:中间变量定义成整型变量),如果计算后f(p)值小于等于32或f(p)对应的字符是"0"至"9",则该字符不变,否则用f(p)替代所对应的字符。
注意:部分源程序存放在PROG1.C中,原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
【参考答案】
void encryptChar()
{ int i,j,val; /* 定义变量 */
for(i=0;i
{ val=xx[i][j]*11%256; /* 替代关系 */
if(val<=32||val>='0'&&val<='9') /* 判断条件 */
continue;
else xx[i][j]=val;
}
}
第16套:
函数ReadDat()实现从文件中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件中。替代关系:f(p)=p*13 mod 256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:中间变量定义成整型变量),如果计算后f(p)值小于等于32或是偶数,则该字符不变,否则用f(p)替代所对应的字符。
注意:部分源程序存放在PROG1.C中,原始数据文件存放的格式是:每行
的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
【参考答案】
void encryptChar()
{ int i,j,val; /* 定义变量 */
for(i=0;i
{ val=xx[i][j]*13%256; /* 替代关系 */
if(val<=32||val%2==0) /* 判断条件 */
continue;
else xx[i][j]=val;
}
}
第17套:
函数ReadDat()实现从文件中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOL(),其函数的功能是:以读入文章的行为单位,以空格或标点符号(数据文件中仅含","或"."作为标点符号)作为分隔符,对行中所有单词进行倒排,单词间必须以空格作为分隔符,之后把已处理的字符串(分隔符只包含空格)仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件中。
例如:原文:tYou He Me
I am a student. I like study.
结果:tMe He You
study like I student a am I
提示:先把每一行的标点符号变为空格符号,每一行单词之间全部是以空格为分隔符,对于每一行字符串可以先提取最后一个单词,再提取倒数第二个单词,直至第一个单词,单词之后采用空格为分隔符,连接成一行新的字符串。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在PROG1.C中。原字符串中第1个单词和最后1个单词在构造新的字符串时不能遗漏。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
void StrOL(void)
{ int i,j; /* 定义变量 */
char str[80];
for(i=0;i
for(j=strlen(xx[i])-1;j>=0;j--)
if(!isalpha(xx[i][j])) /* 提取单词 */
{ if(isalpha(xx[i][j+1]))
{ strcat(str,xx[i]+j+1); /* 保存单词 */
strcat(str," ");
}
xx[i][j]='0'; /* 设置行尾 */
}
strcat(str,xx[i]); /* 保存第一个单词 */
strcpy(xx[i],str); /* 复制字符串 */
}
}
第23套:
函数ReadDat()实现从文件中读取一篇英文文章存入到字符串数组xx中;请编制函数SortCharD(),其函数的功能是:以行为单位对字符按ASCII码从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件中。
例:原文:tdAe
,BfC.
CCbbAA
结果:tfedCBA.,
bbCCAA
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在PROG1.C中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
void SortCharD(void)
{ unsigned int i,j,k; /* 定义变量 */
int temp;
for(i=0;i
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
第25套:
函数ReadDat()实现从文件中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件中。替代关系:f(p)=p*11 mod 256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:中间变量定义成整型变量),如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则用f(p)替代所对应的字符。
注意:部分源程序存放在PROG1.C中,原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
【参考答案】
void encryptChar()
{ int i,j,val; /* 定义变量 */
for(i=0;i
{ val=xx[i][j]*11%256; /* 替代关系 */
if(xx[i][j]%2==0||val<=32) /* 判断条件 */
continue;
else xx[i][j]=val;
}
}
第20套:
函数ReadDat()的功能是实现从文件中读取一篇英文文章存入到字符串数组xx中。请编制函数CharConvA(),其功能是:以行为单位把字符串中的所有字符的ASCii值右移4位二进制位,高位补0后加倒数第二个字符的ASCII值,得到最后一个新的值,倒数第二个字符的ASCII值右移4位二进制位,高补位0后加倒数第三个字符的ASCII值,得到倒数第二个新的值,依此类推一直处理到第二个字符。注意:第一个新的值与上述处理不同,第一个字符的ASCII值加元最后一个字符的ASCII值,得到第一个新的值。得到的新字符仍存入到原字符串对应的位置上,之后把已处理的结果仍按行重新存入数组xx中。最后调用函数WriteDat()把结果xx输出到文件中。
注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符
,含标点符号和空格。请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
【参考答案】
int i, j;
char tmp;
/*对文章的每一行字符串按照题目的要求进行处理*/
for(i = 0; i < maxline; i++)
{
tmp = xx[i][(int) strlen(xx[i]) - 1]; //把第i行字符串的最后一个字符赋给字符tmp
/*通过for循环对每行数组进行移位和求和ASCII码值计算*/
for(j = (int) strlen(xx[i]) - 1; j >= 1; j--)
xx[i][j] = (xx[i][j] >> 4) + xx[i][j - 1];
/*第i行字符串的最后一个字符的ASCII码值与第i行字符串的第一个字符的ASCII码值之和赋给第一个字符*/
xx[i][0] += tmp;
}