2021年廣東省珠海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁(yè)
2021年廣東省珠海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁(yè)
2021年廣東省珠海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁(yè)
2021年廣東省珠海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁(yè)
2021年廣東省珠海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021年廣東省珠海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________一、2.填空題(10題)1.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

2.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。

3.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

unsignedfun6(unslgnednum)

{unsignedk=1;

do{k*=mum%10;num/=10;}

while(num);

returnk;

}

main()

{unsignedn=26;

printf("%d\n",fan6(n));

}

4.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。

5.人員基本信息一般包括:身份證號(hào)、姓名、性別、年齡等。其中可以作為主關(guān)鍵字的是()。

6.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

{inti,n[]={0,0,0,0,0};

for(i=1;i<=4;i++)

{n[i]=n[i-1]*2+1;

printf("%",n[i]);

}

7.在關(guān)系數(shù)據(jù)庫(kù)中把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【】。

8.設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。

9.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。

10.設(shè)有chara,b;,若要通過(guò)a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進(jìn)制是【】。

二、單選題(10題)11.若棧采用順序存儲(chǔ)方式存儲(chǔ),現(xiàn)兩棧共享空間V[1..m],top[i]代表第i個(gè)棧(i=1,2)棧頂,棧1的底在v[1],棧2的底在V[m],則棧滿的條件是()。

A.|top[2]-top[1]|=0

B.top[1]+1=top[2]

C.top[1]+top[2]=m

D.top[1]=top[2]

12.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

13.已知A=10,B=20,下類表達(dá)式正確的是()。

A.C=(A++)*(--B)=200

B.A-=30

C.C=(A++)+(B--)=30

D.C=(++A)*(--B)=210

14.

15.需求分析的主要任務(wù)是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)入員

16.若有說(shuō)明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。

A.s1的內(nèi)容更新為abcdefghi

B.s1的內(nèi)容更新為defghi\0

C.s1的內(nèi)容更新為defghiabc\0

D.s1的內(nèi)容更新為abcdefghi\0

17.同一個(gè)關(guān)系模型的任意兩個(gè)元組值()。

A.可以全相同B.不能全相同C.必須全相同D.以上都不對(duì)

18.若聲明一個(gè)浮點(diǎn)數(shù)數(shù)組如下:froataverage[]=newfloat[30];假設(shè)該數(shù)組的內(nèi)存起始位置為200,average[15]的內(nèi)存地址是()。A.A.214B.215C.260D.256

19.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。

A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)

20.請(qǐng)選出以下程序的輸出結(jié)果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

三、程序設(shè)計(jì)題(10題)21.請(qǐng)編寫一個(gè)函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。

例如,若傳給m的值為70,則程序輸出:

7111421222833354244495556636670

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫的若干語(yǔ)句。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#defineN100

voidproc(intm,int*a,int*n)

{}

voidmain

{

intarr[N],n,k;

system("CLS");

proc(70,arr,&n);

for(k=0;k<n;k++)

if((k+1)%20==0)//每行輸出20個(gè)數(shù)

{printf("%4d",arr[k]);

printf("\n");

}

else

printf("%4d",arr[k]);

printf("\n");

}

22.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),其功能是將放在字符串?dāng)?shù)組中的M個(gè)字符串(每個(gè)字符串的長(zhǎng)度不超過(guò)N),按順序合并成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為|“AAAA”,“BBBBBBB”,“CC”|,則合并后的字符串內(nèi)容應(yīng)該是“AAAABBBBBBBCC”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidfun(chara[M][N],char*b){}voidmain(){ charw[M][N]={“AAAA”,“BBBBBBB”,“CC”}; chara[100]={“##################”}; inti; printf(“Thestring:\n”); for(i=0;i<=""p=""> puts(w[i]); printf(“\n”); fun(w,a); printf(“TheAstring:\n”); printf(“%s”,a); printf(“\n\n”);}

23.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是根據(jù)以下公式計(jì)算S,并將計(jì)算結(jié)果作為函數(shù)值返回,通過(guò)形參傳入。例如,若n的值為11時(shí),函數(shù)的值為1.833333。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn){}voidmain(){ intn; floats; system(“CLS”); printf(“\nPleaseenterN:”); scanf(“%d”,&n); s=fun(n); printf(“Theresultis:%f\n”,s);}

24.下列程序定義了MM的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)proc(inta[][M]),該函數(shù)的功能是:使數(shù)組左下半三角元素中的值全部置成0。例如,a數(shù)組中的值為:

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

25.編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存人xx所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)k返回。

例如,若輸入l7,則應(yīng)輸出:46891012141516。

注意:部分源程序在文件PROGl.C中。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填人你編寫的若干語(yǔ)句。

26.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是求斐波那契數(shù)列中大于t的最小的數(shù),結(jié)果由函數(shù)返回。斐波那契數(shù)列F(n)的定義為F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)例如,當(dāng)t=1000時(shí),函數(shù)值為1597。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<conio.h>#include<math.h>#include<stdio.h>intfun(intt){}main(){intn;n=1000;printf(“n=%d,f=%d\n”,n,fun(n));}27.請(qǐng)編寫函數(shù)proc(),其功能是:計(jì)算并輸出下列多項(xiàng)式的值。

S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+m)

例如,若主函數(shù)從鍵盤給m輸入20后,則輸出為s=1.904762。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

28.使用VC++2010打開考生文件夾析下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫程序,實(shí)現(xiàn)矩陣(3行、3列)的轉(zhuǎn)置(即行列互換)。例如,若輸入下面的矩陣:100200300400500600700800900則程序輸出:100400700200500800300600900注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:11#include<stdio.h>2#include<conio.h>3#include<stdlib.h>4voidfun(intarray[3][3])5{67}8voidmain()9{10FILE*wf;11inti,j;12intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};13system("CLS");14for(i=0;i<3;i++)15{for(j=0;j<3;j++)16printf("%7d",array[i][j]);17printf("\n");18}19fun(array);20printf("Convertedarray:\n");21for(i=0;i<3;i++)22{for(j=0;j<3;j++)23printf("%7d",array[i][j]);24printf("\n");25}26/*********found*********/27wf=fopen("out.datn,"w");28for(i=0;i<3;i++)29{for(j=0;j<3;j++)30fprintf(wf,"%7dn,array[i][j]);31fprintf(wf,"\n");32}33fclose(wf);34/*********found********/35}

29.函數(shù)fun的功能是:將S所指字符串中除下標(biāo)為偶數(shù)同時(shí)ASCIl碼值也為偶數(shù)的字符外,其余的全部刪除;字符串中剩余字符所形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFGl23456”,其中字符A的ASCIl碼值為奇數(shù),因此應(yīng)當(dāng)刪除;字符8的ASCIl碼值為偶數(shù),但在數(shù)組中的下標(biāo)為奇數(shù),因此也應(yīng)當(dāng)刪除;字符2的ASCIl碼值為偶數(shù),在數(shù)組中的下標(biāo)也為偶數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是‘'246”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:

30.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將a、b兩個(gè)兩位正整數(shù)合并成一個(gè)新的整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個(gè)位數(shù)依次放在變量c的千位和十位上,b中的十位數(shù)和個(gè)位數(shù)依次放在變量c的個(gè)位和百位上。例如,當(dāng)a=45,b=12,調(diào)用該函數(shù)后c=4251。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

四、2.程序修改題(10題)31.給定程序MODll.C的功能是:讀入一個(gè)英文文本行,將其中每個(gè)單詞的第一個(gè)字母改成大寫,然后輸出此文本行(這里的“單詞”是指由空格隔開的字符串)。

例如,若輸入:Iamastudenttotaketheexamination.,則應(yīng)輸出:IAmAStudentToTakeTheExamination.。

請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

32.下列給定程序中,函數(shù)fun()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值。

A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=(1/(1+A(n-1))

例如,若p=10,則應(yīng)輸出0.617977。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)mah函數(shù),不得增行或刪行,也不得更改程序的蛄構(gòu).

試題程序:

#include<conio.h>

#include<stdio.h>

/**************found********************/

ihtfun(ihtn)

{floatA=l;inti;

/**************foudn********************/

for(i=2;i<n;i++)

A=1.0/(i+A);

returnA;

}

main()

{intn;

clrscr();

printf("\nPleaseentern:");

$canf("%d",&n);

printf("A%d=%lf\n",n,fun(n));

}

33.下列給定程序中,函數(shù)fun()的功能是::求k!(k<13),所有階乘的值作為函數(shù)值返回。例如:若k=10,則應(yīng)輸出3628800。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更

改程序的結(jié)構(gòu)。

試題程序:

#include<conio.h>

#include<stdio.h>

longfun(intk)

{

/*************found**************/

ifk>0

return(k*fun(k-l));

/*************found**************/

elseif(k=0)

return1;

}

main()

{intk=10;

clrscr();

print,("%d!=%1d\n",k,fun(k));

}

34.給定程序MODll.C中函數(shù)fun的功能是:計(jì)算小于形參k的最大的10個(gè)能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳入,若k的值為500,則函數(shù)值為4622。

請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

35.下列給定程序中,函數(shù)fun()的功能是;將s所指字符串中的字母轉(zhuǎn)換為按字母序列的后續(xù)字母(但Z轉(zhuǎn)化為A,z轉(zhuǎn)化為a),其他字符不變。

請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

voidfun(char*s)

/*************found**************/

{while(*s!='@')

{if(*s>='A'&*s<='z'||*s>='a'&&*s<='z')

{if(*s=='Z')*S='A';

elseif(*S=='z')*s='a';

else*s+=1;

}

/*************found**************/

(*s)++;

}

}

main()

{chars[80];

clrscr();

printf("\nEnterastringwithlength<80:\n\n");gets(s);

printf("\nThestring:\n\n");puts(s);

fun(s);

printf("\n\nTheCords:\n\n");puts(s);

}

36.給定程序MODll.c中函數(shù)fun的功能是;由形參給定n個(gè)實(shí)數(shù),輸出平均值,并統(tǒng)計(jì)在平均值以上(含平均值)的實(shí)數(shù)個(gè)數(shù)。

例如,n=8時(shí),輸入:193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763

所得平均值為:195.838745,在平均值以上的實(shí)數(shù)個(gè)數(shù)應(yīng)為:5

請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

37.下列給定程序中,函數(shù)fun()的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按從小到大的順序進(jìn)行排序。

請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。

[注意]不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

[試題源程序]

#include<stdio.h>

#defineN20

voidfun(inta[],intn)

{

inti,j,t,p;

for(j=0;j<n-1;j++){

/***********found***********/

p=j

for(i=j;i<n;i++)

if(a[i]<a[p])

/***********found***********/

p=j;

t=a[P];

a[p]=a[j];

a[j]=t;

}

}

msin()

{

inta[N]=(9,6,8,3,-1),i,m=5;

printf("排序前的數(shù)據(jù):”);

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

printf("%d",a[i]);

printf("\n");

fun(a,m);

printf("排序后的數(shù)據(jù):");

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

printf("%d",a[i]);

printf("\n");

}

38.給定程序MODll.C中函數(shù)fun的功能是:用下面的公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于指定的數(shù)(參數(shù)num)為止:

例如,程序運(yùn)行后,輸入0.0001,則程序輸出3.1414。

請(qǐng)改正程序中的錯(cuò)誤,使它能輸出正確的結(jié)果。

注意:不要改動(dòng)smain函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

39.下列給定程序中,函數(shù)fun()的功能是:判斷一個(gè)整數(shù)m是否是素?cái)?shù),若是返回l,否則返回0。在main()函數(shù)中,若fun()返回1則輸出YES,若fun()返回0則輸出NO!

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).

試題程序:

#include<conio.h>

#include<stdio.h>

intfun(intm)

{intk=2;

while(k<=m&&(m%k))

/*************found*********************/

k++

/*************found*********************/

if(m=k)

return1;

elsereturnO;

}

main()

{ihtn;

clrscr();

printf("\nPleaseentern:");

scanf("%d",&n);

if(fun(n))printf("YES\n");

elseprintf("NO!\n");

}

40.給定程序MODll.C中函數(shù)fun的功能是:輸出M行M列整數(shù)方陣,然后求兩條對(duì)角線上元素之和,返回此和數(shù)。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

五、程序改錯(cuò)題(2題)41.下列給定程序中函數(shù)fun的功能是:從整數(shù)10到55之間,查找能被3整除且有一位上的數(shù)值是5的數(shù),把這些數(shù)放在b所指的數(shù)組中,這些數(shù)的個(gè)數(shù)作為函數(shù)值返回。規(guī)定函數(shù)中al放個(gè)位數(shù),a2放十位數(shù)。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

42.給定程序MODll.C中,函數(shù)fun的功能是:在有n名學(xué)生,2門課成績(jī)的結(jié)構(gòu)體數(shù)組std中,計(jì)算出第l門課程的平均分,作為函數(shù)值返回。例如,主函數(shù)中給出了4名學(xué)生的數(shù)據(jù),則程序運(yùn)行的結(jié)果為:第l門課程的平均分是:76.125000請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、操作題(2題)43.請(qǐng)補(bǔ)充main()函數(shù),該函數(shù)的功能是:從鍵盤輸入一個(gè)長(zhǎng)整數(shù),如果這個(gè)數(shù)是負(fù)數(shù),則取它的絕對(duì)值,并顯示出來(lái)。例如,輸入:-123456,結(jié)果為:123456。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。試題程序:

44.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的記錄已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是找出成績(jī)最高的學(xué)生記錄,通過(guò)形參將其返回主函數(shù)(規(guī)定只有一個(gè)最髙分)。已給出函數(shù)的首部,請(qǐng)完成該函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defineN10typedefstructss/*定義結(jié)構(gòu)體*/{charnum[10];ints;}STU;fun(STUa[],STU*s){}voidmain(){STUa[N]={{“A01”,81},{“A02”,89},{“A03”,66},{“A04”,87},{“A05”,77},{“A06”,90},{“A07”,79},{“A08”,61},{“A09”,80},{“A10”,71}},m;inti;system(“CLS”);printf(“****Theoriginaldata****”);for(i=0;i<N;i++)printf(“No=%sMark=%d\n”,a[i].num,a[i].s);fun(a,&m);printf(“****THERESULT****\n”);printf(“Thetop:%s,%d\n”,m.num,m.s);}

參考答案

1.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)

2.邏輯關(guān)系邏輯關(guān)系

3.1212解析:循環(huán)語(yǔ)句中,表達(dá)式num%10是取num的個(gè)位。循環(huán)直至num為0結(jié)束,這是逐一求出num+進(jìn)制表示的各位數(shù)字,并累乘于變量k中。函數(shù)最后返回k,所以程序輸出12。

4.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語(yǔ)言表達(dá)式為:(x>-5)&&(x<5)。

5.身份證號(hào)身份證號(hào)解析:主關(guān)鍵字是表中區(qū)別不同記錄的標(biāo)識(shí),在該表中只有身份證號(hào)能具有這個(gè)作用,所以用其作為主關(guān)鍵字。

6.1371513715解析:本題中數(shù)組n有5個(gè)元素且初值為0,以下為for循環(huán)的執(zhí)行過(guò)程。

第1次循環(huán):循環(huán)前i=1,執(zhí)行循環(huán)語(yǔ)句n[1]=n[1-1)*2+1=n[0]*2+1=1,輸出1;

第2次循環(huán):循環(huán)前i=2,執(zhí)行循環(huán)語(yǔ)句n[2]=n[2-1)*2+1=n[1]*2+1=1*2+1=3,輸出3;

第3次循環(huán):循環(huán)前i=3,執(zhí)行循環(huán)語(yǔ)句n[3]=n[3-1]*2+1=n[2]*2+1=3*2+1=7,輸出7;

第4次循環(huán):循環(huán)前i=4,執(zhí)行循環(huán)語(yǔ)句n[4]=n[4-1)*2+1=n[3]*2+1=7*2+1=15,輸出15;

所以程序的運(yùn)行結(jié)果為:13715。

7.關(guān)系或一個(gè)關(guān)系關(guān)系或一個(gè)關(guān)系解析:在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成二維表,而一個(gè)二維表就是一個(gè)關(guān)系。

8.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

9.黑盒軟件測(cè)試的方法有三種:動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試和正確性證明。設(shè)計(jì)測(cè)試實(shí)例的方法一般有兩類:黑盒測(cè)試法和白盒測(cè)試法。在使用黑盒法設(shè)計(jì)測(cè)試實(shí)例時(shí),測(cè)試人員將程序看成一個(gè)“黑盒”,即不關(guān)心程序內(nèi)部是如何實(shí)現(xiàn)的,只是檢查程序是否符合它的“功能說(shuō)明”,所以使用黑盒法設(shè)計(jì)的測(cè)試用例完全是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)的。

10.1000001010000010解析:運(yùn)算“&”的,的規(guī)則是只有當(dāng)兩個(gè)相應(yīng)的二進(jìn)制位都為1時(shí),該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。

11.B

12.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

13.C

14.B

15.A需求分析是軟件開發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題答案為A選項(xiàng)。

16.D解析:strcat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。

17.B關(guān)系具有以下7個(gè)性質(zhì)。①元組個(gè)數(shù)有限性:二維表中元組的個(gè)數(shù)是有限的。②元組的唯一性:二維表中任意兩個(gè)元組不能完全相同。③元組的次序無(wú)關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項(xiàng)。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無(wú)關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說(shuō)列是同質(zhì)的。滿足以上7個(gè)性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項(xiàng)。

18.C

19.A\nA。【解析】頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問(wèn)整個(gè)鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。

\n

20.B21.\n\tvoidproc(intm,int*a,int*n)

\n{

\ninti,j=0;

\nfor(i=1;i<=m;i++)//進(jìn)行m次循環(huán)

\nif(i%7==0||i%11==0)//能被7或11整除的所有整數(shù)

\na[j++]=i;//符合條件的數(shù)放在數(shù)組a中

\n*n=j;//返回這些數(shù)的個(gè)數(shù)

\n}

\n【解析】本題需要先判斷1~m每一個(gè)整數(shù)能否被7或11整除,然后將符合條件的整數(shù)放在數(shù)組a中,最后將符合條件的數(shù)的個(gè)數(shù)通過(guò)形參n返回主函數(shù)。\n22.voidfun(chara[M][N],char*b){ inti,j,k=0; for(i=0;i /*將字符串?dāng)?shù)組中的M個(gè)字符串,按順序存入一個(gè)新的字符串*/ for(j=0;a[i][j]!='V),;j++) b[k++]=a[i][j]; b[k]=‘\0’; /*在字符串最后加上字符串結(jié)束標(biāo)志*/}該題考核的是字符串連接操作。字符串?dāng)?shù)組相當(dāng)于二維字符數(shù)組。字符數(shù)組a是M行N列的二維數(shù)組。通過(guò)兩層for循環(huán)遍歷數(shù)組a,將數(shù)組a中的元素保存到數(shù)組b中。在數(shù)組b的最后一個(gè)元素后添加字符串結(jié)束標(biāo)志‘\\0’。23.floatfun(intn){ inti,s1=0; floats=0.0; for(i=1;i<=n;i++) { s1=s1+i; /*求每一項(xiàng)的分母*/ s=s+1.0/s1; /*求多項(xiàng)式的值*/ } returns;}首先需要根據(jù)題意分析表達(dá)式的規(guī)律,得出通項(xiàng),然后再完成程序語(yǔ)句。本題中公式的規(guī)律類似于求1+2+…+n的倒數(shù)之和??梢酝ㄟ^(guò)for循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)第1項(xiàng)到第n項(xiàng)的變化。先根據(jù)題目要求定義變量,注意該變量的數(shù)據(jù)類型。然后對(duì)其進(jìn)行初始化操作,因?yàn)樵撟兞肯喈?dāng)于累加器,所以初值應(yīng)為0(或0.0,根據(jù)變量數(shù)據(jù)類型來(lái)確定),再通過(guò)for循環(huán)語(yǔ)句來(lái)完成累加過(guò)程。本題中s1用來(lái)表示每一項(xiàng)的分母,每一項(xiàng)的分母都是由前一項(xiàng)分母加項(xiàng)數(shù)得到的。注意,由于s1定義成一個(gè)整型,因此在s=s+1.0/s1語(yǔ)句中不能把1.0寫成1。

24.

【解析】要使數(shù)組左下半三角元素中的值全部置成0,先要找出數(shù)組的下半三角元素,再將其值全部賦值為0。二維數(shù)組中下半三角元素的特點(diǎn)為,其列下標(biāo)小于其行下標(biāo)。根據(jù)這個(gè)特點(diǎn),將二維數(shù)組的下半三角元素都賦值為0。

25.【參考答案】

【考點(diǎn)分析】

本題考查:如何判斷非素?cái)?shù);循環(huán)判斷結(jié)構(gòu);數(shù)組的引用。

【解題思路】

題目要求將l~m之間的非素?cái)?shù)存人數(shù)組中,應(yīng)使用循環(huán)判斷結(jié)構(gòu)。循環(huán)語(yǔ)句用來(lái)遍歷1~m之間的每個(gè)數(shù),判斷語(yǔ)句用來(lái)判斷該數(shù)是否素?cái)?shù),若不是素?cái)?shù),則將其存人數(shù)組中。這道題目是考查一個(gè)數(shù)是否為素?cái)?shù)的簡(jiǎn)單延伸,只要掌握了判斷素?cái)?shù)的方法,問(wèn)題便能順利解決。

【解題寶典】

判定一個(gè)數(shù)是否為素?cái)?shù),即該數(shù)除了能被l和它本身外,不能被任何數(shù)整除。

代碼實(shí)現(xiàn)為:

此語(yǔ)句需要熟記,很多判斷素?cái)?shù)的題目也可通過(guò)此法解決。26.intfun(intt){intf0=0,f1=1,f;do{/*根據(jù)斐波那契數(shù)列的定義求數(shù)值*/f=f0+f1;f0=f1;f1=f;}while(f<t);/*如果求的數(shù)值小于t則繼續(xù)*/</t);returnf;}根據(jù)斐波那契數(shù)列定義不難發(fā)現(xiàn),該數(shù)列最終的結(jié)果由兩個(gè)數(shù)列之和組成,所以可以在循環(huán)內(nèi)部始終把f看成前兩項(xiàng)之和,而f0始終代表第n-2項(xiàng),f1代表第n-1項(xiàng)。退出循環(huán)時(shí)得到的數(shù)f,就是大于指定數(shù)的最小的數(shù)。

27.

【解析】由題目中所給公式可知,多項(xiàng)式的值為m項(xiàng)的和。多項(xiàng)式每一項(xiàng)的分子均為1,第i項(xiàng)的分母為1~i所有整數(shù)的和。根據(jù)這個(gè)特點(diǎn),通過(guò)m次循環(huán)求出多項(xiàng)式的每一項(xiàng)并求和。最后將多項(xiàng)式的和返回到主函數(shù)中。

28.1voidfun(intarray[3][3])2{3inti,j,t;4for(i=0;i<3;i++)/*將上三角和下三角對(duì)換,實(shí)現(xiàn)行列互換*/5for(j=i+l;j<3;j++)6{t=array[i][j];7array[i][j]=array[j][i];8array[j][i]=t;9}10}要實(shí)現(xiàn)矩陣轉(zhuǎn)置,即將上三角數(shù)組元素和下三角數(shù)組元素對(duì)換,本題通過(guò)數(shù)組元素交換方法,完成矩陣轉(zhuǎn)置操作。因?yàn)閷?duì)矩陣轉(zhuǎn)置后仍然存回其本身,所以只能循環(huán)矩陣中的一本程序選擇的是上三角)??刂粕先堑姆椒ㄊ窃趦?nèi)層循環(huán)中從i+1或i開始循環(huán)變量j。

29.

30.voidfun(inta,intb,long*c){/*b%10獲取b的個(gè)位數(shù),a/10獲取a的十位數(shù),a%10獲取a的個(gè)位數(shù),b/10獲取b的十位數(shù)*/ *c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;}本題主要考核如何取出a和b的個(gè)位數(shù)和十位數(shù),取出后如何將其表示成c中相應(yīng)的位數(shù)。由于a和b都是只有兩位的整數(shù),因此分別對(duì)它們除以10可得到它們的十位數(shù),分別用10對(duì)它們求余可得到它們的個(gè)位數(shù)。將得到的數(shù)對(duì)應(yīng)乘以1000、100、10、1,即可得到c的千位數(shù)、百位數(shù)、十位數(shù)、個(gè)位數(shù)。注意使用c時(shí)要進(jìn)行指針運(yùn)算。

31.(1)#include<stdio.h>(2)upfst(char*p)(1)#include<stdio.h>(2)upfst(char*p)解析:本題中函數(shù)的功能是將每個(gè)單詞的第一個(gè)字母改成大寫。該題的解題思路根據(jù)題干中“這里的‘單詞’是指由空格隔開的字符串”可以歸納為主要是對(duì)字符串中空格字符的查找。

32.(1)錯(cuò)誤:intfun(intn)正確:floatfun(intn)(2)錯(cuò)誤:for(i=2;i<n;i++)正確:for(i=2;i<=n;i++)(1)錯(cuò)誤:intfun(intn)正確:floatfun(intn)\r\n(2)錯(cuò)誤:for(i=2;i<n;i++)正確:for(i=2;i<=n;i++)解析:該題中fun()函數(shù)的作用是計(jì)算數(shù)列前n項(xiàng)的和,而數(shù)列的組成方式是:第n項(xiàng)的分母是功口第n-1項(xiàng)的值,分子為1,如果循環(huán)累加按for(i=2;i<n;i++)執(zhí)行的話,當(dāng)我們輸入n=2的時(shí)候會(huì)是什么結(jié)果?循環(huán)會(huì)怎么執(zhí)行呢?循環(huán)不能執(zhí)行,但數(shù)學(xué)思路絕對(duì)正確,這就矛盾了,所以循環(huán)條件應(yīng)該是for(i=2;i<n;i++)。

33.(1)錯(cuò)誤:ifk>0正確:if(k>0)(2)錯(cuò)誤:elseif(k=O)正確:elseif(k==O)(1)錯(cuò)誤:ifk>0正確:if(k>0)\r\n(2)錯(cuò)誤:elseif(k=O)正確:elseif(k==O)解析:由數(shù)學(xué)知識(shí)我們可以知道,0和1的階乘都等于1,ifk>O中是一個(gè)簡(jiǎn)單的語(yǔ)法錯(cuò)誤,if后面沒有“()”說(shuō)明,在elseif(k=0)中,程序想說(shuō)明的是“如果k值為0,則函數(shù)返回1”,轉(zhuǎn)換成c語(yǔ)言語(yǔ)句就是“elseif(k==0)return1”。

34.(1)if((k%13==0)II(k%17==0))(2)}(1)if((k%13==0)II(k%17==0))(2)}解析:該題中函數(shù)功能是求能被13或17整除的自然數(shù)之和。從已給定源程序的main主函數(shù)開始入手,“printf("%d\\n",fun(500));”語(yǔ)句中的fun函數(shù)將500傳給n,計(jì)算小于500的能被13或17整除的自然數(shù)之和。

35.(1)錯(cuò)誤:while(*s!='@')正確:while(*s)(2)錯(cuò)誤:(*s)++;正確:s++;(1)錯(cuò)誤:while(*s!='@')正確:while(*s)\r\n(2)錯(cuò)誤:(*s)+

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論