- 相關(guān)推薦
計(jì)算機(jī)三級(jí)網(wǎng)絡(luò)技術(shù)上機(jī)考試題
離2016年第一次計(jì)算機(jī)考試只有一個(gè)月了,同學(xué)們的網(wǎng)絡(luò)技術(shù)復(fù)習(xí)得怎么樣了呢?下面小編為大家準(zhǔn)備了最新的網(wǎng)絡(luò)技術(shù)上機(jī)考試題,希望能幫助到大家!
第一題
下列程序的功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入數(shù)組xx。請(qǐng)編寫函數(shù)num(int m,int k,int xx[ ])實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)readwriteDAT( )把結(jié)果輸出到out92.dat文件中。
例如,若輸入17,5,則應(yīng)輸出19,23,29,31,37。
注意:部分源程序已給出。
請(qǐng)勿改動(dòng)主函數(shù)main()和輸入輸出函數(shù)readwriteDAT()的內(nèi)容。
試題程序:
#include
#include
void readwriteDAT();
void num(int m,int k,int xx[])
{
}
void main()
{
int m,n,xx[1000];
system("CLS");
printf("\nPlease enter two integers:");
scanf("%d,%d",&m,&n);
num(m, n, xx);
for(m=0;m printf("%d ",xx[m]);
printf("\n");
readwriteDAT();
}
void readwriteDAT()
{
int m, n, xx[1000],i;
FILE *rf,*wf;
rf=fopen("in92.dat","r");
wf=fopen("out92.dat","w");
for(i=0;i<10;i++)
{
fscanf(rf,"%d %d",&m,&n);
num(m,n,xx);
for(m=0;m fprintf(wf,"%d ",xx[m]);
fprintf(wf,"\n");
}
fclose(rf);
fclose(wf);
}
【參考答案】
void num(int m,int k,int xx[])
{
int i,half,cnt=0; /*定義變量cnt來(lái)統(tǒng)計(jì)已經(jīng)取得的素?cái)?shù)個(gè)數(shù)*/
int data=m+1; /*從大于整數(shù)m的數(shù)開(kāi)始找*/
while(1) /*循環(huán)條件始終為真,所以是無(wú)條件循環(huán)*/
{
half=data/2; /*求出當(dāng)前數(shù)的一半,判斷素?cái)?shù)*/
for(i=2;i<=half;i++)
/*如果該數(shù)依次除以從2到其一半的整數(shù),余數(shù)都不是0,則該數(shù)是素?cái)?shù)*/
if(data%i==0) /*如果余數(shù)為0*/
break; /*則退出循環(huán),取下一個(gè)數(shù)判斷*/
if(i>half)
{
xx[cnt]=data; cnt++; /*確定該數(shù)為素?cái)?shù)后,將該數(shù)存入數(shù)組xx中,并累計(jì)素?cái)?shù)的個(gè)數(shù)*/
}
if(cnt>=k) break; /*如果累計(jì)素?cái)?shù)的個(gè)數(shù)超過(guò)了要求的個(gè)數(shù),則退出循環(huán)*/
data++; /*如果累計(jì)素?cái)?shù)的個(gè)數(shù)小于要求的個(gè)數(shù),則繼續(xù)取下一個(gè)數(shù)*/
}
}
【解析】在本題中,首先要結(jié)合相關(guān)數(shù)學(xué)知識(shí)找出判定一個(gè)數(shù)是否為素?cái)?shù)的方法,從而對(duì)數(shù)據(jù)進(jìn)行篩選。如果數(shù)a依次除以從2到a/2的整數(shù),余數(shù)都不是0,則該數(shù)是素?cái)?shù)。將符合條件的數(shù)存入數(shù)組xx中,使用計(jì)數(shù)器變量cnt來(lái)統(tǒng)計(jì)已經(jīng)取得的數(shù)的個(gè)數(shù)。當(dāng)cnt的值小于等于k時(shí),即表示所獲得素?cái)?shù)的個(gè)數(shù)已經(jīng)達(dá)到了要求,循環(huán)停止。
第二題
下列程序的功能是:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中;它既是完全平方數(shù),又是兩位數(shù)字相同,例如144、676等。請(qǐng)編制函數(shù)實(shí)現(xiàn)此功能,滿足該條件的整數(shù)的個(gè)數(shù)通過(guò)所編制的函數(shù)返回。最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件out.dat中。請(qǐng)勿改動(dòng)主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。
#include
int jsvalue(int bb[])
{
}
main
{
int b[20],num;
num=jsvalue(b);
writeDat(num,b);
}
writeDat(int num,int b[])
{
FILE *out;
int i;
out=fopen(\"out.dat\",\"w\");
fprintf(out,\"%d\\n\",num);
for(i=0;i
fclose(out);
}
-------------------------------------
注:注意在i==(int)sqrt(i)*(int)sqrt(i)中只有當(dāng)i是完全平方數(shù)時(shí)開(kāi)平方后再取整才不會(huì)丟失任何數(shù)據(jù)。
int jsvalue(int bb[])
{
int i,j,k=0,g,s,b;
for(i=100;i<=999;i++)
{
g=i;
s=i/10;
b=i/100;
if((i==(int)sqrt(i)*(int)sqrt(i))&&(g==s//s==b//b==g))
bb[k++]=i;
}
return k;
}
int jsvalue(int bb[])
{
int i,k=0;
for(i=100;i<=999;i++)
if((int)sqrt(i)*(int)sqrt(i)==i && (i/100==i || i/100==i/10 || i/10==i))
bb[k++]=i;
return k;
}
【計(jì)算機(jī)三級(jí)網(wǎng)絡(luò)技術(shù)上機(jī)考試題】相關(guān)文章:
計(jì)算機(jī)等級(jí)考試三級(jí)網(wǎng)絡(luò)技術(shù)上機(jī)模擬試題08-02
自考計(jì)算機(jī)上機(jī)基礎(chǔ)考試題及答案09-25
計(jì)算機(jī)三級(jí)網(wǎng)絡(luò)技術(shù)試卷07-23
計(jì)算機(jī)三級(jí)網(wǎng)絡(luò)技術(shù)專項(xiàng)突破練習(xí)07-28
計(jì)算機(jī)三級(jí)《網(wǎng)絡(luò)技術(shù)》鞏固練習(xí)題03-06
計(jì)算機(jī)等級(jí)考試三級(jí)(C語(yǔ)言)上機(jī)考試試題總結(jié)08-10
2006年計(jì)算機(jī)等級(jí)考試三級(jí)上機(jī)題庫(kù)練習(xí)及答案(5)07-23