亚洲中文精品a∨在线,国产在线精品在线精品,国产亚洲欧美一区,欧美肉肉丝视频一区二区

您當(dāng)前位置: 唯學(xué)網(wǎng) » 計(jì)算機(jī)等級考試培訓(xùn) » 三級專題

計(jì)算機(jī)三級網(wǎng)絡(luò)技術(shù)上機(jī)模擬題及答案解析

來源:唯學(xué)網(wǎng)•教育培訓(xùn)(slhrvoh.cn)  【唯學(xué)網(wǎng) • 中國教育電子商務(wù)平臺】 加入收藏

2013年的計(jì)算機(jī)等級考試已經(jīng)在去年9月份結(jié)束了,離2014年上半年計(jì)算機(jī)等級考試還有2個(gè)月的時(shí)間,需要參加計(jì)算機(jī)考試的考生應(yīng)抓緊時(shí)間復(fù)習(xí),需要提醒的是在復(fù)習(xí)前應(yīng)該了解考試大綱,有重點(diǎn)、有計(jì)劃、有目的的進(jìn)行,小編希望考生都能順利通過考試。

讀函數(shù)ReadDat()實(shí)現(xiàn)從文件ENG52.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中。請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用寫函數(shù)WriteDat()把結(jié)果xx輸出到文件PS52.DAT中。

替代關(guān)系:f(p)=p*11 mod 256(p是數(shù)組xx中某一個(gè)字符的ASCII值,f(p)是計(jì)算后新字符的ASCII值),如果計(jì)算后f(p)的值小于等于32或f(p)對應(yīng)的字符是小寫字母,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。

注意:部分源程序已給出。

原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符。

請勿改動(dòng)主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。

試題程序:

#include

#include

#include

#include

unsigned char xx[50][80];

int maxline = 0; /* 文章的總行數(shù) */

int ReadDat(void);

void WriteDat(void);

void encryptChar()

{ }

void main()

{

system("CLS");

if(ReadDat())

{

printf("數(shù)據(jù)文件ENG52.IN不能打開!\n\007");

return;

}

encryptChar();

WriteDat();

}

int ReadDat(void)

{

FILE *fp;

int i = 0;

unsigned char *p;

if((fp = fopen("ENG52.IN", "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;

fp = fopen("PS52.DAT", "w");

for (i = 0; i < maxline; i++)

{

printf("%s\n", xx[i]);

fprintf(fp, "%s\n", xx[i]);

}

fclose(fp);

}

【答案】

void encryptChar()

{

int i,j; /*定義循環(huán)控制變量*/

int str; /*存儲字符串的長度*/

char ch; /*存儲當(dāng)前取得的字符*/

for(i=0;i

{

str=strlen(xx[i]); /*求得當(dāng)前行的字符串長度*/

for(j=0;j

{

ch=xx[i][j] *11%256;

if ((ch>='a' && ch<='z') || ch<=32)

/*如果計(jì)算后的值小于等于32或?qū)?yīng)的字符是小寫字母*/

continue;

else

xx[i][j]=ch; /*否則用新字符來替代這個(gè)字符*/

}

}

}

【解析】本題要對二維數(shù)組中的字符元素按行來處理。

首先用strlen()函數(shù)得到當(dāng)前行所包含的字符個(gè)數(shù)。

然后再利用一個(gè)循環(huán)來依次訪問該行中的所有字符。對于每一個(gè)字符,先按照題目中的函數(shù)替代關(guān)系"f(p)=p*11 mod 256"計(jì)算出相應(yīng)的fp值,再用一條if語句判斷該值是否符合本題給定的條件:"計(jì)算后f(p)的值小于等于32或f(p)對應(yīng)的字符是小寫字母"。如果符合條件,則該字符不變,否則用f(p)所對應(yīng)的字符對其進(jìn)行替代。

如若獲知更多關(guān)于計(jì)算機(jī)等級考試培訓(xùn)的資訊,請隨時(shí)關(guān)注唯學(xué)網(wǎng)計(jì)算機(jī)培訓(xùn)欄目,小編會為您在第一時(shí)間做出相關(guān)報(bào)道。

0% (0)
0% (10)
已有條評論
新聞瀏覽排行