




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年山東省濰坊市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下說法錯誤的是A.A.高級語言都是用接近人們習(xí)慣的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式
B.計(jì)算機(jī)只能處理由0和1的代碼構(gòu)成的二進(jìn)制指令或數(shù)據(jù)
C.C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.EXE的二進(jìn)制文件
D.每一種高級語言都有它對應(yīng)的編譯程序
2.設(shè)n個待排序的記錄關(guān)鍵字,則在堆排序中需要()個輔助記錄單元。
A.1B.12C.60D.15
3.下列程序的輸出結(jié)果是()。
#include<stdio.h>
intb=2;
intfunc(int*A)
{b+=*a;retumb;}
main()
{inta=1,t=2;
t+=func(&A);
printf("%d\n",t);
}
A.4B.5C.6D.8
4.設(shè)有以下宏定義:#defineN3#defineY(n)((N+1)*n)則執(zhí)行以下語句后,z的值為______。z=2*(N+Y(5+1));A.出錯B.42C.48D.54
5.
6.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績.,則表SC的關(guān)鍵字(鍵或碼)為()
A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績
7.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
8.
9.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”
10.
11.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。
A.77B.88C.810D.1010
12.若有定義“intw[3][5];”,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。
A.*(&w[0][0]+1)B.*(*w+3)C.*(*(w+1))D.*(w+1)[4]
13.有以下程序:#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
14.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數(shù)組x和數(shù)組y等價(jià)B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度
15.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
16.
17.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序運(yùn)行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
18.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}
A.266B.11C.265D.138
19.對于線性表(7,34,55,25,64,46,20,10)進(jìn)行散列存儲時(shí),若選用H(K)=K%9作為散列函數(shù),則散列地址為1的元素有()個。
A.1B.2C.3D.4
20.
二、2.填空題(20題)21.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
22.若線性表的長度經(jīng)常發(fā)生變化,那么該線性表應(yīng)采用的存儲結(jié)構(gòu)是【】。
23.以下程序的運(yùn)行結(jié)果是:【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
24.與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。
25.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
26.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
27.一棵二叉樹第六層(根節(jié)點(diǎn)為第一層)的節(jié)點(diǎn)數(shù)最多為______。
28.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
29.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
30.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
31.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
32.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
33.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機(jī)制稱為______。
34.請?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
seanf("%1f%1f",&x,&y);
pfintf("%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
35.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素的最大值。請?zhí)羁铡?/p>
voidfun(int,int,int(*)[4],int*);
main()
{
inta[3][4]={{12,41,36,28},{19,33,15,27),{3,27,19,1}},b[3],i;
fun(3,4,a,B);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i<m;i++)
{
x=ar[i][0];
for(i=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
______=X;
}
}
36.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
}
}
37.下列程序段的運(yùn)行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
38.下面程序的運(yùn)行結(jié)果是【】。
voidswap(int*a,int*b)
{
int*tp;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
39.下列程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
voidmain()
{ints=0,k;
for(k=7;k>4;k--)
{switch(k)
{case1:
case4:
case7:s++;break;
case2:
case3:
case6:break;
case0:
case5:s+=2;break;}}
printf("s=%d",s);}
40.以下程序運(yùn)行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
三、1.選擇題(20題)41.下面程序段中的循環(huán)體的執(zhí)行次數(shù)是()。for(i=4;i<0;i--)for(j=1;j<=4;j++)sum=sum+j;
A.4B.0C.12D.16
42.下列程序執(zhí)行后的輸出結(jié)果是:main(){chararr[2][4];strcpy(arr'"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}程序的輸出結(jié)果是()。
A.you&meB.meC.youD.err
43.一個C語言的源程序中,______。
A.必須有一個主函數(shù)B.可以有多個主函數(shù)C.必須有主函數(shù)和其他函數(shù)D.可以沒有主函數(shù)
44.設(shè)a和b均為int型變量,且a=6、b=11、c=3,則能使值為3的表達(dá)式是()。
A.b%(c%4)B.b%(c-a%5)C.b%a-a%5D.(b%A)-(a%4)
45.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain(){inta=9,k=3,m=2;a/=S(k+m)/S(k+m);printf("%d",a);}
A.1B.4C.9D.0
46.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的一個出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
47.對于一個正常運(yùn)行的C程序,下列敘述中正確的是()。A.A.程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束
C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
D.程序的執(zhí)行總是從程序中的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
48.數(shù)據(jù)庫設(shè)計(jì)的四個階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和______。A.編碼設(shè)計(jì)B.測試階段C.運(yùn)行階段D.物理設(shè)計(jì)
49.在C程序中,可把整型數(shù)以二進(jìn)制形式存放到文件中的函數(shù)是()。
A.fprintf函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.fputc函數(shù)
50.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。
A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中
51.軟件的可維護(hù)性度量可分解為多種因素的度量,下列選項(xiàng)中的______是可維護(hù)性度量的內(nèi)容。
①可測試性
②可移植性
③可復(fù)用性
④可靠性
A.全部B.①和③C.①、②和④D.②和④
52.有以下程序:main(){intm=3,n=4,x;x;-m++;x=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.5C.-1D.-2
53.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%lf",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%lf",*p);
D.p=&a;scanf("%lf",p);
54.在C語言中,while和do…while循環(huán)的主要區(qū)別是()。
A.do…while的循環(huán)體不能是復(fù)合語句
B.do…while允許從循環(huán)體外轉(zhuǎn)到循環(huán)體內(nèi)
C.while的循環(huán)體至少被執(zhí)行一次
D.do…while的循環(huán)體至少被執(zhí)行一次
55.有以下程序:main(){chara,b,c,*d;a='\';b='\xbc';c='\0xab';d="\017";printf("%c%c%c\n",a,b,c,*d);}編譯時(shí)出現(xiàn)錯誤,以下敘述中正確的是()。
A.程序中只有“a='\';”語句不正確
B.“b='\xbc';”語句不正確
C.“d="\0127";”語句不正確
D.“a='\';”和“c='\0xab';”語句都不正確
56.若有定義和語句:char*sl="12345",*s2="1234";printf("%d\n",strlen(stren(sl,s2)));則輸出結(jié)果()
A.4B.5C.9D.10
57.設(shè)已執(zhí)行預(yù)編譯命令#include<string.h>,以下程序段的輸出結(jié)果是()。chars[]="anapple";printf("%d\n",strlen(s));
A.7B.8C.9D.10
58.設(shè)a和b均為int型變量,且a=6,b=11,則能使值為3的表達(dá)式是()。
A.b%(a%4)B.b%(a-a%5)C.b%a-a%5D.(b%B)-(a%4)
59.線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是______。
A.順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
B.隨機(jī)存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
C.隨機(jī)存取的存儲結(jié)構(gòu)、隨機(jī)存取的存儲結(jié)構(gòu)
D.任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)
60.對下列二叉樹進(jìn)行前序遍歷的結(jié)果為()
A.DYBEAFCZXB.YDEBFZXCAC.ABDYECFXZD.ABCDEFXYZ
四、選擇題(20題)61.
62.下列敘述中正確的是()。
A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)
B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D.以上三種說法都不對
63.運(yùn)行下面程序時(shí),從鍵盤輸入字母H,則輸出結(jié)果是()。
A.
B.
C.
D.
64.有以下程序:
#include<stdio.h>
#defineN3
voidfun(inta[][N],intb[])
{inti,j;
for(i=0;i<N;i++)
{b[i]=a[i][0];
for(j=i;j<N;j++)
if(b[i]<a[i][j])b[i]=a[i][j];
}
}
main()
{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序運(yùn)行后的輸出結(jié)果是(,)。
A.2,4,8,
B.3,6,9,
C.3,5,7,
D.1,3,5,
65.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.4C.6D.7
66.
67.以下程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,1,5,9,
B.1,3,5,1,3,5,
C.1,3,5,0,d,8,
D.1,3,5,-1,3,7,
68.
設(shè)有定義的語句:“charc1=92,c2=92;”,則以下表達(dá)式中的值為零的是()。
A.c1^c2B.c1&c2C.~c2D.c1E.c2
69.有以下程序:
main()
{
chara[7]="a0\OaO\0";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
}
程序運(yùn)行后的輸出結(jié)果是()。
A)22B)76
C)75D)62
70.n個頂點(diǎn)的連通圖中邊的條數(shù)至少為______。A.A.0B.1C.n-1D.n
71.若有以下程序:
上面程序的輸出結(jié)果是()。
A.5B.7C.1D.3
72.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是()。
73.以下4個選項(xiàng)中,不能看作一條語句的是()。
A.;B.a=5,b=2.5,c=3.6;C.if(b!=5)x=2;y=6;D.returnj;
74.
75.有以下程序則輸出結(jié)果是()。A.1245B.1256C.1278D.1267
76.有下列程序:
fun(intx,inty)
{staticintm=0,i=2;
i+=++rn;m=ixy;returnm;
}
main
{intj=l,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j.m);printf(”%d\n”,k);
}
執(zhí)行后的輸出結(jié)果是()。
A.5.5B.5,11C.11,11D.11,5
77.
78.
79.
80.以下程序的輸出結(jié)果是()。
main()
{inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);
}
A.18
B.19
C.20
D.21
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:逐個比較P.q所指兩個字符串對應(yīng)位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的數(shù)組中,形成一個新的字符串。
例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abed”,則C中的字符串應(yīng)為“aBcdeFgH”。請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun(),其功能是:刪除字符串中所有的*號。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入編寫的若干語句。試題程序:
參考答案
1.C本題主要考查我們對C語言一些基礎(chǔ)知識的掌握情況。下面分別分析本題的四個選項(xiàng)。
由于高級程序設(shè)計(jì)語言具有可讀寫、可理解性好等特點(diǎn),這就要求高級程序設(shè)計(jì)語言用接近人們習(xí)慣的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式,選項(xiàng)A的說法正確。
在計(jì)算機(jī)中,機(jī)器可以接受和處理的只能是由0和1組成的二進(jìn)制代碼,用高級語言編寫的程序都需要經(jīng)過編譯和連接,使其轉(zhuǎn)化為二進(jìn)制代碼才能被機(jī)器執(zhí)行。因此,選項(xiàng)B的說法正確。
C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件。因此,選項(xiàng)C的說法不正確。
由于高級語言編寫的程序都需要經(jīng)過編譯和連接,才能被計(jì)算機(jī)執(zhí)行,因此,每一種高級語言都有它對應(yīng)的編譯程序,D選項(xiàng)的說法正確。
2.A
3.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個變量b,所以在函數(shù)體中執(zhí)行時(shí)b=2+1=3,最終t=2+3=5。
4.D
5.A
6.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項(xiàng)。
7.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。
8.A
9.D在C語言中,字符串常量是用雙引號標(biāo)注的字符序列,因此B選項(xiàng)和C選項(xiàng)不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符以“\\”開頭。A選項(xiàng)中包含3個前兩個(\\\\)代表一個“\\”字符,后面一個為“””。因?yàn)閈\”被看作一個“””,所以該字符串缺少一個結(jié)束的“””。因此A選項(xiàng)不正確。D選項(xiàng)的兩個“”之間沒有任何字符,代表的是一個空串,是合法的字符串常量,因此D選項(xiàng)正確。B選項(xiàng)的abc應(yīng)該使用雙引號標(biāo)注。故本題答案為D選項(xiàng)。
10.D
11.C解析:本題考核的知識點(diǎn)是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時(shí)b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
12.DA選項(xiàng)中,“*(&w[0][0]+1)”表示“w[0][1]”;B選項(xiàng)中,“*(*w+3)”表示“w[0][3]”;C選項(xiàng)中,“*(*(w+1))”表示“w[1][0]”;D選項(xiàng)中,“*(w+1)[4]”的正確寫法是“(*(w+1))[4]”,表示“w[1][4]”。故本題答案為D選項(xiàng)。
13.Dmain函數(shù)定義一個二維字符數(shù)組a,它包含5個字符串,每個字符串存放在一個長度為10的一維數(shù)組中。指針數(shù)組P包含5個字符指針元素。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)。
14.C解析:在C語言中,字符串以'\\0'作為結(jié)束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。
15.C在計(jì)算(float)(a4-b)/2時(shí),由于通過強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。在計(jì)算(int)x%(int)y時(shí),先將x和y通過強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,結(jié)果為1。又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級類型從高級類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級別由低到高的排序表示為:char→int→unsigned→log→float→double。
16.C
17.B本題考查分支語句用法加個句號因?yàn)樽兞康某跏贾捣謩e為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時(shí),執(zhí)行default語句,輸出0,k減1;這時(shí)n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時(shí)n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時(shí)n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。
18.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
19.D
20.C
21.概念概念
22.鏈?zhǔn)酱鎯Y(jié)構(gòu)鏈?zhǔn)酱鎯Y(jié)構(gòu)
23.efghefgh解析:函數(shù)*ss的作用是使字符串指針往后移strlen(s)/2個位置。形參指針a指向字符串'abcdefeh',調(diào)用函數(shù)*ss后,指針指向e,所以輸出為efgh。
24.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:與結(jié)構(gòu)化需求分析方法相對應(yīng)的是結(jié)構(gòu)化設(shè)計(jì)方法。結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術(shù)。
25.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
26.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個元素輸出到文件fp中兩次,共10個字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為'1,2,3,0,0,1,2,3,0,0,'。
27.在二叉樹的第k層上,最多有2k-1(k>1)個結(jié)點(diǎn)。
28.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
29.棧棧解析:考查考生對棧和隊(duì)列概念的掌握。按'先進(jìn)后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進(jìn)先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列。
30.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點(diǎn)是通過指針引用數(shù)組元素。98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。
31.123\n056\n009123\\n056\\n009解析:數(shù)組是用于按順序存儲同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),如果有一個一維數(shù)組,它的每一個元素是類型相同的一維數(shù)組,就形成了一個二維數(shù)組。在內(nèi)存中數(shù)組的元素是連續(xù)順序存放的,對;維數(shù)組來說,先存放第一行,再存放第;行,…,因?yàn)槊恳恍卸际瞧鋸V義一維數(shù)組的元素,并且在給出全部數(shù)組元素的初值后,二維數(shù)組的定義中可以將第一維的下標(biāo)省略。本題中,定義了一個元素類型為整型的二維數(shù)組敢a[][3]={1,2,3,4,5,6,7,8,9),它相當(dāng)于一個3*3的矩陣,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;將行下標(biāo)i大于列下標(biāo)j的元素s[1][0],a[2][0],a[2][1]賦值為0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');進(jìn)行換行輸出,所以輸出結(jié)果為
123
056
009
32.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
33.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。
34.doublemax或externdoublemaxdoublemax或externdoublemax解析:函數(shù)聲明是對所用到的函數(shù)的特征進(jìn)行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達(dá)式進(jìn)行檢測,以保證調(diào)用表達(dá)式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:類型標(biāo)識符函數(shù)名(類型標(biāo)識符形參,…);這些信息就是函數(shù)定義中的第一行的內(nèi)容。本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extem說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
35.br[i]或*(br+i)br[i]或*(br+i)解析:求最大值算法要求輸入的一般是一系列數(shù),例如一個數(shù)組,而輸出只有一個值。計(jì)算時(shí)通常的做法是,首先將這一系列數(shù)的笫1個值保存到結(jié)果變量中,然后用一個指針或循環(huán)變量從頭(或從第2個值)至尾遍歷這一系列數(shù),每次比較結(jié)果變量和被遍歷的值,如果該值比結(jié)果大,則將該值保存到結(jié)果中。本題中,3行4列二維數(shù)組a顯然是算法的輸入值,而傳給函數(shù)fun()的3和4在函數(shù)中起到限制循環(huán)次數(shù)的作用,所以它們代表輸入數(shù)據(jù)的行列數(shù).而傳遞給函數(shù)的一維數(shù)組b即沒有初始化,最后又要輸出它,所以數(shù)組b肯定是用來保存每行的最大值。在函數(shù)中是一個二重循環(huán),外循環(huán)首先將ar[i][0]賦給x,然后內(nèi)循環(huán)中比較x和ar[il剛,若x比較小就讓x=ar[i][j],這就說明x是保存結(jié)果的臨時(shí)變量.最后應(yīng)該將x的值輸出到數(shù)組b中,也就是形參br的相應(yīng)位置。故在空格處應(yīng)該填的內(nèi)容為br[i]或者寫成指針方式*(br+i)。
36.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。
37.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時(shí)y=8。
38.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針.變量a和b,a和b分別指向了實(shí)參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實(shí)參的值,所以函數(shù)調(diào)用返回后x和y依舊是原來的值。
39.s=3s=3解析:當(dāng)k=7時(shí),執(zhí)行case7,s++,s的值為1。當(dāng)k=6時(shí),直接break出switch結(jié)構(gòu);當(dāng)k=5時(shí),執(zhí)行case5,s+=2,s的值為3;當(dāng)k=4時(shí)由于不滿足for循環(huán)的條件,所以結(jié)束循環(huán),所以輸出的s的值為3。注意:循環(huán)語句和條件的嵌套使用。
40.30253025解析:本題考核的知識點(diǎn)是變量的存儲屬性和算術(shù)運(yùn)算的應(yīng)用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲空間在程序的整個運(yùn)行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進(jìn)行的,auto是自動變量的存儲類別標(biāo)識符,如果省略auto,系統(tǒng)隱含認(rèn)為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術(shù)運(yùn)算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。
41.B解析:本題是一個雙重循環(huán),而外循環(huán)的循環(huán)條件i<O在剛開始的時(shí)候就不滿足(i的初值為4),所以循環(huán)體一次也不會執(zhí)行。故應(yīng)該選擇B。
42.A解析:本題定義了一個二維字符數(shù)組arr[2][4],該二維數(shù)組可以看成一個含有兩個元素arr[0]、arr[1]的一維字符數(shù)組,分別看成是含有4個元素,也可以看成是以arr為首地址的一個一維字符數(shù)組。函數(shù)strcpy(arr,“you”)是把字符串“you”復(fù)制到arr指向的空間,strcpy(arr[1],“me”)同理,在以arr[0]為首地址的字符數(shù)組中有“you”,在以air[1]為首地址的字符數(shù)組中有“me”。arr[0][3]=‘&’;是給arr[0]為首地址的字符數(shù)組的第4個元素賦值為‘&’。因此輸出為you&me。
43.A
44.D選項(xiàng)D)括號內(nèi)的運(yùn)算分別是b%a=11%6=5和a%c=6%4=2,最后得到5-2=3。
45.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運(yùn)算。本題中宏運(yùn)算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
46.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。
47.A解析:一個C語言源程序無論包括了多少函數(shù),總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。
48.DD)【解析】數(shù)據(jù)庫設(shè)計(jì)目前一段采用生命周期法.即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計(jì)中采用上面幾個階段中的前四個階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。
49.C解析:fprintf是格式文件格式化輸出函數(shù),fread是讀文件,fputc輸出單個字符到文件。只有fwrite可以通過參數(shù)來設(shè)置以二進(jìn)制形式寫文件。
50.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。
51.C
52.D解析:主函數(shù)中首先定義了整型變量m、n和x,并給m和n賦初值為3和4,接著執(zhí)行兩條賦值語句,第一條x=-m++等價(jià)于x=-m,m++,運(yùn)行后x的值為-3,第二條x=x+8/++n等價(jià)于++n,x=x+8/n,即x=-3+8/5=-2,因此最后輸出x的值為-2。所以,4個選項(xiàng)中選項(xiàng)D符合題意。
53.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對。scanf()的輸入變量必須為地址,因此C是錯誤的。
54.D解析:本題考查while和do…while循環(huán)的區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時(shí),才可能執(zhí)行循環(huán)體:在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。
55.D解析:語句a=\'\\\'是錯誤的,因?yàn)閈\是轉(zhuǎn)義字符,應(yīng)該用\\\\來表示,語句“B=\'\\xbc\';”是正確的,它是將一個用十六進(jìn)制表示的轉(zhuǎn)義字符賦給一個字符型變量;語句“c=\\0xab;”是錯誤的,反斜線后的十六進(jìn)制只可由小寫x開頭,不能用0x。語句“d='\\0127';”是正確的,可以給字符型指針變量賦一個字符串常量,其作用是讓該指針變量指向該字符串常量。所以,D選項(xiàng)為所選。
56.A
57.B解析:如果一個字符數(shù)組中存放一個字符串,則函數(shù)strlen的值為“\\0”之前的全部字符個數(shù),也包括空格在內(nèi)。注意:字符串處理函數(shù)的使用。
58.D
59.B【命題目的】考查有關(guān)線性表存儲結(jié)構(gòu)的基本知識。
【解題要點(diǎn)】順序存儲結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計(jì)算得到,從而實(shí)現(xiàn)了隨機(jī)存取。對于鏈?zhǔn)酱鎯Y(jié)構(gòu),要對某結(jié)點(diǎn)進(jìn)行存取,都得從鏈的頭指針指向的結(jié)點(diǎn)開始,這是一種順序存取的存儲結(jié)構(gòu)。
【考點(diǎn)鏈接】順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的定義和性質(zhì),兩種存儲結(jié)構(gòu)的操作方法。
60.C解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的遍歷。根據(jù)對二叉樹根的訪問先后順序不同,分別稱為前序遍歷、中序遍歷和后序遍歷。這三種遍歷都是遞歸定義的,即在其子樹中也按照同樣的規(guī)律進(jìn)行遍歷。下面就是前序遍歷方法的遞歸定義。
當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個操作:
(1)訪問根結(jié)點(diǎn)。
(2)按先序遍歷左子樹。
(3)按先序遍歷右子樹。
根據(jù)如上前序遍歷規(guī)則,來遍歷本題中的二叉樹。首先訪問根結(jié)點(diǎn),即A,然后遍歷A的左子樹。遍歷左子樹同樣按照相同的規(guī)則首先訪問根結(jié)點(diǎn)B,然后遍歷B的左子樹。遍歷B的左子樹,首先訪問D,然后訪問D的左子樹,D的左子樹為空,接下來訪問D的右子樹,即Y。遍歷完B的左子樹后,再遍歷B的右子樹,即E。到此遍歷完A的左子樹,接下來遍歷A的右子樹。按照同樣的規(guī)則,首先訪問C,然后遍歷C的左子樹,即F。C的左子樹遍歷完,接著遍歷C的右子樹。首先訪問右子樹的根結(jié)點(diǎn)X,然后訪問X的左子樹,X的左子樹,即Z,接下來訪問X的右子樹,右子樹為空。到此,把題目的二叉樹進(jìn)行了一次前序遍歷。遍歷的結(jié)果為ABDYECFXZ,故本題的正確答案為選項(xiàng)C。
61.B
62.A本題考查程序效率。程序效率是指程序運(yùn)行速
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年市場營銷學(xué)課件概覽
- 高中軍訓(xùn)總結(jié)600字(31篇)
- DB31∕T 243-2011 種豬場驗(yàn)收標(biāo)準(zhǔn)
- 安全生產(chǎn)法規(guī)知識
- 汽車使用性能與檢測技術(shù)
- 柳宗元散文的藝術(shù)特點(diǎn)賞析教學(xué)教案
- 房地產(chǎn)合伙協(xié)議書
- 城市交通擁堵情況監(jiān)測與分析表
- 臨聘老師勞務(wù)派遣合同
- 品質(zhì)意識培訓(xùn)(課件)
- 沖壓廢料自動輸送裝置設(shè)計(jì)
- 公園棧道棧橋施工方案
- 不規(guī)則抗體篩查與鑒定
- 中國銀行海爾多聯(lián)機(jī)方案書
- 涂布機(jī)初級操作技術(shù)與維修培訓(xùn)課件
- GB/T 8417-2003燈光信號顏色
- GB/T 7984-2001輸送帶具有橡膠或塑料覆蓋層的普通用途織物芯輸送帶
- GB/T 7631.10-2013潤滑劑、工業(yè)用油和有關(guān)產(chǎn)品(L類)的分類第10部分:T組(渦輪機(jī))
- GB/T 7324-2010通用鋰基潤滑脂
- GB/T 28114-2011鎂質(zhì)強(qiáng)化瓷器
- GB/T 15566.1-2020公共信息導(dǎo)向系統(tǒng)設(shè)置原則與要求第1部分:總則
評論
0/150
提交評論