




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022學(xué)年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.有以下程序:
執(zhí)行后輸出結(jié)果是()。
A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday
2.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序運(yùn)行后的輸出結(jié)果是()。
A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy
3.
4.
5.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.654321
B.65432
C.65453452
D.654534521
6.已知有結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有p=&data,則對(duì)data的成員a的正確引用是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.st是結(jié)構(gòu)體類型名
C.x、y、z都是結(jié)構(gòu)體成員名
D.structstr是結(jié)構(gòu)體類型名
7.
8.
9.以下敘述中正確的是()。A.A.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch’語(yǔ)句體內(nèi)
B.continue語(yǔ)句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同
D.break語(yǔ)句只能用于switch語(yǔ)句體中
10.在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是()。
A.文件B.數(shù)據(jù)庫(kù)C.字段D.記錄
11.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的運(yùn)行結(jié)果是()。
A.1B.2C.3D.4
12.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)
二、2.填空題(12題)13.對(duì)于長(zhǎng)度為n的線性表,若進(jìn)行順序查找,時(shí)間復(fù)雜性為【】;若進(jìn)行二分查找,則時(shí)間復(fù)雜性為【】。
14.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%5ld\n",k);}
15.若a=l,b=2,則表達(dá)式!(x=a)||y=b)&&0的值是______。
16.下面程序的運(yùn)行結(jié)果是【】。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
17.下列程序用來(lái)輸出結(jié)構(gòu)體變量ex所占存儲(chǔ)單元的字節(jié)數(shù)。
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
18.數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。
19.執(zhí)行以下程序后sum的值是【】。
main()
{
inti,sum;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
20.算法的基本特征是可行性、確定性、【】和擁有足夠的情報(bào)。
21.函數(shù)sub的功能是根據(jù)下面近似分式求π的值。
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
現(xiàn)在請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求π值的功能。
#include"math.h"
doublesub(longm)
{doublesum=0.0,t;longn;
for(n=1;n<=m;n++)sum+=【】;
t=sqrt(6*sum);
return(t);
}
22.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括選擇、連接和【】。
23.以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤(pán)輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
[14]=a;q->next=p;[15]=p;scanf("%d",&a);}
p->next='\0';return(ph);}
main()
{stuctlist*head;head=creatlist();}
24.下面程序的運(yùn)行結(jié)果是【】。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
]
main()
{intaa[3]={1,2,3),s;
s=f(&aa[0],3);printf("%d\n",s);
}
三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫(xiě)函數(shù)fun,其功能是:計(jì)算并輸出
例如,在主函數(shù)中從鍵盤(pán)給n輸入20后,輸出為:s=534.188884。
注意:要求n的值大于1但不大于100。
部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
26.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:把指定分?jǐn)?shù)范圍之外的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍之外的學(xué)生人數(shù)由函數(shù)值返回。
例如,輸入的分?jǐn)?shù)是80和89,則應(yīng)當(dāng)把分?jǐn)?shù)低于80和高于89的學(xué)生數(shù)據(jù)進(jìn)行輸出,不包含80分和89分的學(xué)生數(shù)據(jù)。主函數(shù)中把80放在low中,把89放在heigh中。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STREC*a,STREC*b,int1,inth)
{
}
main()
{
STRECs[N]={{“GA005”,55},{“GA003”,96},
{“GA002”,80},{“GA004”,68},{“GA001”,88},
{“GA007”,74},{“GA008”,85},{“GA006”,99},
{“GA015”,90},{“GA013”,53},{“GA012”,66},
{“GA014”,82},{“GA0ll”,73},{“GA017”,69},
{“GA018”,64},{“GA016”,86}};
STECh[N],tt;
FILE*out;
inti,j,n,low,heigh,t;
printf(“Enter2integernumberlow&heigh:”);
scanf(“%d%d”,&low,&heigh);
if(heigh<low)
{
t=heigh;
heigh=low;
low=t;
}
n=fun(S,h,low,heigh);
printf(“Thestudent'Sdataout%d--%d:\n”,low,heigh);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
/*輸出指定分?jǐn)?shù)范圍內(nèi)的學(xué)生記錄*/
printf(“\n”);
ut=fopen(“out23.dat”,“w”);
fprintf(out,“%d\n”,n);
n=fun(s,h,70,79);
for(i=0;i<n-1;i++)
/*分?jǐn)?shù)在70~79之外的學(xué)生記錄按分?jǐn)?shù)從低到高排列*/
for(j=i+l;i<n;j十+)
if(h[i].s>h[j].s)
{
tt=h[i];
h[i]=h[j];
h[j]=tt;
}
for(i=0;i<n;i++)
fprintf(out,“%4d\n”,h[i].s);
fprintf(out,“\n”);
fclose(out);
}
27.編寫(xiě)一個(gè)函數(shù),該函數(shù)可以統(tǒng)計(jì)一個(gè)長(zhǎng)度為2的字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為asdasasdfgasdaszx67asdmklo,子字符串為as,則應(yīng)當(dāng)輸出6。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和具他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
intfun(char*str,char*substr)
{
}
main()
{
charstr[81],substr[3];
intn;
clrscr();
printf("輸入主字符串");
gets(str);
printf("輸入子字符串");
gets(substr);
puts(str);
puts(substr);
n=fun(shr,substr);
printf("n=%d\n",n);
}
28.請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,其功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置上的字母轉(zhuǎn)換為大寫(xiě)(若該位置上不是字母,則不轉(zhuǎn)換)。
例如,若輸入“abc4EFg”,則應(yīng)輸出“aBc4EFg”。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
29.已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:找出成績(jī)最低的學(xué)生記錄,通過(guò)形參返回主函數(shù)(規(guī)定只有一個(gè)最低分)。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的蒞括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
30.請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從0到p(含p,p<n-1)的數(shù)組元素平移到數(shù)組的最后。例如:一維數(shù)組中的原始內(nèi)容為:1,2,3,4,5,6,7,8,9,10;p的值為3。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為:5,6,7,8,9,10,1,2,3,4。部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
#include<stdiO.h>
#defineN80
voidfun(int*w,intp,intn)
{
}
main()
{in[a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
inti,p,n=15;
printf("Theodginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
printf("\nEnterp:");
scanf("%d",&p);
fun(a,p,n);
printf("\nThedataaftermoving:\n");
for(i=0;i<n;i++)printf("%3d”,a[i]);
}
31.m個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中。
例如,當(dāng)score數(shù)組中的數(shù)據(jù)為10,20,30,40,50,60,70,80,90時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,below中的數(shù)據(jù)應(yīng)為10,20,30,40。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
intfun(intscore[],intm,intbelow[])
{
}
main()
{
ihti,n,below[9];
intscore[9]={10,20,30,40,50,60,70,
80,90};
clrscr();
n=fun(score,9,below);
printf("\nBelowtheaveragescoreare:");
for(i=0;i<n;i++)
printf("%d",below[i]);
}
32.請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:判斷字符串是否是回文?若是,函數(shù)返回1,主函數(shù)中輸出:YES,否則返回0,主函數(shù)輸出NO?;匚氖侵疙樧x和倒讀都一樣的字符串。
例如,字符串LEVEL是回文,而字符串12312就不是回文。
[注意]部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
[試題源程序]
#include<stdio.h>
#defineN80
intfun(char*str)
{
}
main()
{
chars[N];
printf("Enterastring:")"gets(s);
printf("\n\n");puts(s);
if(fun(s))
printf("YES\n");
else
printf("NO\n");
NONO();
}
NONO()
{
/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*rf,*wf;
inti;chars[N];
rf=fopen("K:\\k06\\24010001\\in.dat","r");
wf=fopen("K:\\k06\\24010001\\out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%s",s);
if(fun(S))
fprintf(wf,"%sYES\n",s);
else
fprintf(wf,"%sNO\n",s);
}
fclose(rf);
fclose(wf);
}
33.請(qǐng)編寫(xiě)函數(shù)fun(),該函數(shù)的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。
例如x有5門課程的成績(jī)是90.5,72,80,61.5,55,則函數(shù)的值為71.80。
注意:部分源程序給出如下.
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
floatfun(float*a,intn)
{
}
main()
{
floatscore[30]=(90.5,72,80,61.5,55},
aver;
aver=fun(score,5);
printf("\nAveragescoreis:%5.2f
\n",aver);
}
34.編寫(xiě)函數(shù)fun(),它的功能是:求出1~1000之內(nèi)能被7或11整除,但不能同時(shí)被7和11整除的所有整數(shù),并將它們放在a所指的數(shù)組中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。
[注意]部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
[試題源程序]
#include<conio.h>
#include<stdio.h>
voidfun(int*a,int*n)
{
}
main()
{
intaa[1000],n,k;
clrscr();
fun(aa,&n);
for(k=0;k<n;k++)
if(k+1)%10==0)
{
printf("%5d",aa[k]);
printf("\n");
}
else
printf("%5d",aa[i]);
}
四、單選題(0題)35.
五、單選題(0題)36.若變量x、y已正確定義并賦值,以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是()。
A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10
六、單選題(0題)37.以下敘述中錯(cuò)誤的是
A.在函數(shù)外部定義的變量在所有函數(shù)中都有效
B.在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用
C.函數(shù)中的形參屬于局部變量
D.在不同的函數(shù)中可以使用相同名字的變量
參考答案
1.CP指向字符串”tuesday”,因此*(P+1)的值為n。s[0]=”monday”。
2.Dmain函數(shù)定義一個(gè)二維字符數(shù)組a,它包含5個(gè)字符串,每個(gè)字符串存放在一個(gè)長(zhǎng)度為10的一維數(shù)組中。指針數(shù)組P包含5個(gè)字符指針元素。for循環(huán)中,每次將*(a+i)賦給P[i],再輸出P[i]和*P[i]。由于*(a+i)等價(jià)于a[i],因此每次都是將下標(biāo)為i的字符串首地址賦給p[i],再輸出該字符串和該字符串的首字符。i=3時(shí),輸出字符串“welcome”和首字符“w”;i=4時(shí),輸出字符串“you”和首字符“y”。綜上,輸出結(jié)果為welcomewyouy。故本題答案為D選項(xiàng)。
3.C
4.B
5.C程序首先定義整型變量a和b,a的初值為123456。接著通過(guò)while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過(guò)switch語(yǔ)句判斷b的值執(zhí)行對(duì)應(yīng)分支語(yǔ)句。所以對(duì)應(yīng)a的每個(gè)個(gè)位數(shù),b的取值為6,5,4,3,2,1。當(dāng)b取值為6時(shí),執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過(guò)break退出switch。執(zhí)行下一次循環(huán),當(dāng)b取值為5時(shí),執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當(dāng)b取值為4時(shí),執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當(dāng)b取值為3時(shí),執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當(dāng)b取值為2時(shí),執(zhí)行case2輸出2,通過(guò)break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。
6.B解析:本題主要考查結(jié)構(gòu)類型的定義:struct是結(jié)構(gòu)體類型的關(guān)鍵字;structstr是結(jié)構(gòu)體類型名;x、y、z都是結(jié)構(gòu)體成員名;st是結(jié)構(gòu)變量名。
7.A
8.D
9.A本題主要考查的知識(shí)點(diǎn)是:break和IContinue語(yǔ)句。break語(yǔ)句可以用于swhitCh或循環(huán)體內(nèi),作用是跳/出switCh或循環(huán)體。Continue語(yǔ)句只能用于循環(huán)體內(nèi),作用是結(jié)束當(dāng)前循環(huán),進(jìn)入下次循環(huán)。故本題中只有選項(xiàng)A)是正確的。
10.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,所以本題答案為D。
11.C該程序中“int*p1=&a,*p2=&b,*p=&c;”定義了3個(gè)指針變量,并賦值。指針變量p1指向a,p2指向b,p指向c。執(zhí)行“*p=*p1*(*p2);”語(yǔ)句,給p所指的存儲(chǔ)單元c賦值。p1所指的存儲(chǔ)單元的值,與p2所指的存儲(chǔ)單元b的值相乘,也就是c=a*b,等價(jià)于c=1*3=3。故本題答案為C選項(xiàng)。
12.B通過(guò)—維數(shù)組名或指向維數(shù)組元素的指針來(lái)引用數(shù)組元素有兩種寫(xiě)法:a[i]和*(a+i),它們是等價(jià)的。這是一種運(yùn)算符之間的等價(jià)轉(zhuǎn)換,就好像a-(b-C)等價(jià)于a-b+c一樣。知道了這種轉(zhuǎn)換,我們可以將之?dāng)U展到二維數(shù)組甚至任意維數(shù)組上來(lái)。因?yàn)閇]運(yùn)算符的結(jié)合性是從左至右的,所以w[i][j]等價(jià)于(w[i][j],此時(shí)可以先將任意一個(gè)[]運(yùn)算符轉(zhuǎn)換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時(shí)轉(zhuǎn)換:*(*(w+i)+j)。上述幾種形式都完全等價(jià)于w[i][j]。選項(xiàng)A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項(xiàng)B小,因?yàn)閇]運(yùn)算符的優(yōu)先級(jí)高于*運(yùn)算符,所以*(w+1)[4]等價(jià)于*((w+1)[4]等價(jià)于*(*((w+1)+4)),即*(*(w+5)+0),它等價(jià)于w[5][0],很明顯它超過(guò)數(shù)組的范圍了,故不正確。選項(xiàng)C等價(jià)于w[1][0],是下確的。選項(xiàng)D中,&w[0][0]是數(shù)組w第1個(gè)元素的地址,它等價(jià)于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個(gè)數(shù),然后再除以這個(gè)數(shù)一樣。所以,&w[0][0]等價(jià)于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價(jià)于w[0][1],這個(gè)也是合法的。綜上所述,本題應(yīng)該選擇B。
13.O(n)O(log2n)
14.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。
15.00解析:根據(jù)運(yùn)算符的運(yùn)算順序可知,該表達(dá)式最后運(yùn)算的是與(&&)運(yùn)算,而任何表達(dá)式與“0”進(jìn)行“與”運(yùn)算,結(jié)果都為0。
16.66解析:經(jīng)過(guò)分析將遞歸函數(shù)寫(xiě)成其數(shù)學(xué)表達(dá)式如下:
本題中定義了一個(gè)長(zhǎng)度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f,由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=1+2+3=6,所以空格處應(yīng)該填6。
17.ex或structstex或structst
18.共享性共享性解析:數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)有以下幾個(gè)方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)一管理與控制。
19.1515解析:程序的功能是求1、2、3、4、5的和即15。
20.有窮性有窮性解析:算法有四個(gè)基本特征:可行性、確定性、有窮性和擁有足夠的情報(bào)。
21.1.0/(n*n)1.0/(n*n)解析:sam中累加的值是1+1/(2*2)+1/(3*3)+…+1//(n*n),如果寫(xiě)為1/(n*n),則會(huì)因?yàn)?和n都為整型,結(jié)果則為實(shí)型,將1變?yōu)?.0,結(jié)果則為實(shí)型。
22.投影專門關(guān)系運(yùn)算包括對(duì)單個(gè)關(guān)系進(jìn)行垂直分解(投影操作)或水平分解(選擇操作)和對(duì)多個(gè)關(guān)系的結(jié)合(連接操作)等。
23.p->dataqp->data\r\nq解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對(duì)結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個(gè)域,一個(gè)是數(shù)據(jù),另一個(gè)是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個(gè)結(jié)點(diǎn)。
24.66解析:經(jīng)過(guò)分析將遞歸函數(shù)寫(xiě)成其數(shù)學(xué)表達(dá)式如下:
f(&a,n)=a[0]+f(&a[1],n-1)n>1
f(&a,n)=a[0]n=1
本題中定義了一個(gè)長(zhǎng)度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f(),由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=1+2+3=6,所以空白處應(yīng)該填6。
25.
解析:該程序功能是對(duì)題干中給出的多項(xiàng)式的求解。根據(jù)題干中給出的數(shù)列,首先推出每一項(xiàng)的表達(dá)式,然后再對(duì)多項(xiàng)式進(jìn)行累加求和。
26.intfun(STREC*aSTREC*bintlinth){intij=0;for(i=0;i<N;i++)if((a[i].s>=0&&a[i].s<1)||(a[i].s>h&&a[i].s<=100))/*將各分?jǐn)?shù)低于1高于h的學(xué)生記錄存于結(jié)構(gòu)體數(shù)組b中*/b[j++]=a[i];returnj;/*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/}intfun(STREC*a,STREC*b,intl,inth)\r\n{\r\ninti,j=0;\r\nfor(i=0;i<N;i++)\r\nif((a[i].s>=0&&a[i].s<1)||(a[i].s>h&&a[i].s<=100))/*將各分?jǐn)?shù)低于1,高于h的學(xué)生記錄存于結(jié)構(gòu)體數(shù)組b中*/\r\nb[j++]=a[i];\r\nreturnj;/*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/\r\n}解析:處理此類分段統(tǒng)計(jì)問(wèn)題,可采用多分支選擇語(yǔ)句或條件選擇語(yǔ)句。此處采用條件選擇語(yǔ)句解答,具體見(jiàn)參考答案。使用條件選擇語(yǔ)句進(jìn)行分段統(tǒng)計(jì)時(shí)應(yīng)當(dāng)注意分段范圍。
27.intfun(char*strchar*substr){intij=0;for(i=0;str[i+1]!='\0';i++)/*如果一個(gè)長(zhǎng)度為2的子字符串在主字符串中出現(xiàn)一次則j+1如此循環(huán)*/if(str[i]==substr[0]&&str[i+1]==substr[1])j++;returnj;/*返回子字符串在主字符串中出現(xiàn)的次數(shù)*/}intfun(char*str,char*substr)\r\n{\r\ninti,j=0;\r\nfor(i=0;str[i+1]!='\\0';i++)/*如果一個(gè)長(zhǎng)度為2的子字符串在主字符串中出現(xiàn)一次,則j+1,如此\r\n循環(huán)*/\r\nif(str[i]==substr[0]&&str[i+1]==substr[1])\r\nj++;\r\nreturnj;/*返回子字符串在主字符串中出現(xiàn)的次數(shù)*/\r\n}解析:該題中subsu只有兩個(gè)字符,所以可以用if語(yǔ)句來(lái)直接進(jìn)行判斷。要注意if())中str組的下標(biāo)為i和i+1,即比較當(dāng)前字符及其以后的一個(gè)字符是否分別與substr中的字符對(duì)應(yīng)相同,若都相同則表示出現(xiàn)了一次。
28.
解析:該程序功能是將字符串中所有下標(biāo)為奇數(shù)位置上的字母轉(zhuǎn)換為大寫(xiě)。其中,同一英文字母的大寫(xiě)和小寫(xiě)的ASCII碼值相差32,因此,要將小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母,只要將其對(duì)應(yīng)的ASCII碼值減去32即可。
29.
解析:該程序功能是求最低分?jǐn)?shù)的學(xué)生。本題是關(guān)于求解結(jié)構(gòu)體中某些成員的最小值,首先將第一個(gè)值設(shè)定為最小值,并在循環(huán)中將其他所有值與該值進(jìn)行比較,求得最小值。
30.voidfun(int*wintpintn){intiJ;inta[N];for(i=0;i<=p;i++)a[i]=w[i]for(i=p+1j=0;i<n;i++j++)w[j]=w[i];for(i=0;i<=p;i++)w[n-p-1+i]=a[i];}voidfun(int*w,intp,intn)\r\n{inti,J;\r\ninta[N];\r\nfor(i=0;i<=p;i++)a[i]=w[i]\r\nfor(i=p+1,j=0;i<n;i++,j++)w[j]=w[i];\r\nfor(i=0;i<=p;i++)w[n-p-1+i]=a[i];\r\n}解析:將數(shù)組后面的元素向前平移,肯定會(huì)將前面的元素覆蓋。因此,可以定義一個(gè)數(shù)組用來(lái)暫時(shí)存放前面的元素??梢韵葘[0]~w[p]依次賦給a[0]~a[p];然后將w[p]~w[n—1)
移到數(shù)組的前面:再將a[0]~a[p)依次賦給w[n-p-1+i]~w[n—1]。
31.intfun(intscore[]intmintbelow[]){intij=0;floatav=0.0;for(i=0;i<m;i++)av=av+score[i]/m;/*求平均值*/for(i=0;i<m;i++)if(score[i]<av)/*如果分?jǐn)?shù)低于平均分則將此分?jǐn)?shù)放入below數(shù)組中*/below[j++]=score[i];returnj;/*返回低于平均分的人數(shù)*/}intfun(intscore[],intm,intbelow[])\r\n{\r\ninti,j=0;\r\nfloatav=0.0;\r\nfor(i=0;i<m;i++)\r\nav=av+score[i]/m;/*求平均值*/\r\nfor(i=0;i<m;i++)\r\nif(score[i]<av)/*如果分?jǐn)?shù)低于平均分,則將此分?jǐn)?shù)放入below數(shù)組中*/\r\nbelow[j++]=score[i];\r\nreturnj;/*返回低于平均分的人數(shù)*/\r\n}解析:該題第1個(gè)循環(huán)的作用是求出平均分av,第2個(gè)循環(huán)的作用是找出低于平均分的成績(jī)并存入below數(shù)組中。
32.intfun(char*str){intin=0fg=1;char*p=str;while(*p){n++;P++;}for(i=0;i<n/2;i++)if(str[i]==str[n-1-i]);else{fg=0;break;}returnfg;}intfun(char*str)\r\n{\r\ninti,n=0,fg=1;\r\nchar*p=str;\r\nwhile(*p)\r\n{\r\nn++;\r\nP++;\r\n}\r\nfor(i=0;i<n/2;i++)\r\nif(str[i]==str[n-1-i]);\r
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司新年開(kāi)工小活動(dòng)方案
- 公司競(jìng)拍活動(dòng)方案
- 公司案例收集活動(dòng)方案
- 公司歡迎回來(lái)活動(dòng)方案
- 公司職工健身房策劃方案
- 公司疫情捐贈(zèng)活動(dòng)方案
- 2025年裝修工程師職業(yè)資格考試試題及答案
- 公共關(guān)系與危機(jī)管理的2025年試卷及答案
- 2025年養(yǎng)老服務(wù)體系建設(shè)考試試卷及答案
- 2025年刑法學(xué)知識(shí)與實(shí)踐應(yīng)用考核題及答案
- 2025年高考真題-英語(yǔ)(全國(guó)一卷) 含答案
- 出租房退房協(xié)議(通用5篇)
- 2023年寧夏銀川市西夏區(qū)北京西路街道社區(qū)工作人員考試模擬題含答案
- GB/T 23932-2009建筑用金屬面絕熱夾芯板
- 防靜電手環(huán)測(cè)試指導(dǎo)書(shū)
- 機(jī)電控制工程
- 碼頭承包經(jīng)營(yíng)合同
- 建筑工程防水(防滲漏)處理PPT
- 溫病學(xué)講義劉景源
- 校企共建校內(nèi)實(shí)訓(xùn)基地協(xié)議模版
- 嵌頓疝病人應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論