版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年江西省景德鎮(zhèn)市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
2.以下說法正確的是()。
A.C語言只接受十進(jìn)制的數(shù)
B.C語言只接受八進(jìn)制、十進(jìn)制、十六進(jìn)制的數(shù)
C.C語言接受除二進(jìn)制之外任何進(jìn)制的數(shù)
D.C語言接受任何進(jìn)制的數(shù)
3.
4.用數(shù)組r存儲靜態(tài)鏈表,結(jié)點(diǎn)的next域指向后繼,工作指針j指向鏈中結(jié)點(diǎn),使j沿鏈移動的操作為()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next
5.深度為5的二叉樹至多有C個結(jié)點(diǎn)。
A.16B.32C.31D.10
6.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(a+b){case1:prinf("*\n");.case2+1:printf("**(n");}
B.switch(int)x);{case1:print("*\n");.case2:printf(**\n");}
C.switch(x){case1.0:print("*\n");case2.0:print("*\n");}
D.switch(a+b){case1:print("*\n");.casec:pit(**\n");}
7.若有說明chars1[30]="Thecity",s2[]="isbeautiful";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為Thecityisbeautiful\0
B.s1的內(nèi)容更新為isbeaut\0
C.s1的內(nèi)容更新為Thecity\0isbeautiful\0
D.s1的內(nèi)容更新為Thecityisbeautiful\0
8.
9.
10.若用一個大小為6的數(shù)組來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個元素,再加入兩個元素后,rear和front的值分別為多少()。
A.1和5B.2和4C.4和2D.5和1
11.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列哪一個操作______。A.s->link=p;p->link=s;
B.s->link=p->link;p->link=s;
C.s->link=p->link;p=s;
D.p->link=s;s->link=p;
12.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗(yàn)收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
13.下列運(yùn)算符中優(yōu)先級最低的算符是()。
A.||B.!=C.<;=D.十
14.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5
15.最壞情況下時間復(fù)雜度不是n(n-1)/2的排序算法是()
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
16.冒泡排序在最壞情況下的比較次數(shù)是()。
A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2
17.某某二叉樹的中序序列和后序序列正好相反,則該二叉樹一定是______的二叉樹
A.空或只有一個結(jié)點(diǎn)B.高度等于其結(jié)點(diǎn)數(shù)C.任一結(jié)點(diǎn)無左孩子D.任一結(jié)點(diǎn)無右孩子
18.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
19.數(shù)據(jù)庫設(shè)計(jì)中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫設(shè)計(jì)的()。
A.需求分析階段B.邏輯設(shè)計(jì)階段C.概念設(shè)計(jì)階段D.物理設(shè)計(jì)階段
20.標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是()。A.從fp所指的文件中讀取長度不超過n-1的字符串存入指針str所指的內(nèi)存
B.從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存
C.從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存
D.從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)存
二、2.填空題(20題)21.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為______。
22.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運(yùn)算。
23.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許刪除的一端稱作()。
24.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
25.用鏈表表示線性表的突出優(yōu)點(diǎn)是______。
26.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
27.某二叉樹中度為2的結(jié)點(diǎn)有18個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。
28.下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;
sub(s,7,SIZE-1);
for(I=0;I<SIZE;I++)printf("%c",s[I]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
29.下述函數(shù)通過遞歸方法將字符串倒置,使用時需要指定字符數(shù)組的首地址、起始下標(biāo)和終止下標(biāo)。請?zhí)羁眨?/p>
#include<stdio.h>
voidfun(char*s,intlow,inthigh)
{if(【】)
return;
else
{chart;
fun(【】);
t=s[low];
s[low]=s[high];
s[high]=t;}}
30.以下程序的輸出結(jié)果是______。
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("%d,%d\n",a,b);
}
31.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。
32.以下程序運(yùn)行后輸入:3,abcde<回車>,則輸出結(jié)果是______。
#include<string.h>
move(char*str,intn)
{charcemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1);
str[0]=temp;}
main()
{chars[50];intn,i,z;
scanf(“%d,%s”,&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf(“%s\n”,s);
}
33.有以下程序片段,請問執(zhí)行后的輸出結(jié)果是【】。
intn=10;
while(n>7)
{printf("%d",n--);
}
34.對于長度為n的線性表,若進(jìn)行順序查找,時間復(fù)雜性為【】;若進(jìn)行二分查找,則時間復(fù)雜性為【】。
35.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
36.閱讀程序:
main()
{charstrl[]="howdoyoudo",str2[10];
char*p1=strl,*p2=str2;
scanf("%s”,p2);
printf("%s”,p2);
printf("%s\n",p1);
}
運(yùn)行上面的程序,輸入字符串HOWDOYOUDO則程序的輸出結(jié)果是【】。
37.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
38.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。
39.軟件危機(jī)出現(xiàn)于20時紀(jì)60年代末,為了解決軟件危機(jī),人們提出了()的原理來設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。
40.下列語句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>voidfun(char*c,intD){*c=*c+1;d+=1;printf("%c,%c",*c,D;}main(){chara='F',b='f';fun(&b,A);printf("%c,%c\n",a,B);}程序的輸出結(jié)果為()。
A.g,GF,gB.g,FF,gC.G,fF,GD.f,gf,g
42.字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
43.下述程序的輸出結(jié)果是()。#include<stdio.h>intfun(inta){intb=0;staticintc=3;b++,c++;returna+b+c;}voidmain(){intx=2,i;for(i=1;i<3;i++)printf("%d",fun(x));}
A.56B.67C.78D.89
44.有以下程序:main(){intx[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1)>x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1)=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是______。
A.75310246B.1234567C.76310462D.13570246
45.設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)
A.10□X□20□Y<回車>
B.10□X20□Y<回車>
C.10□X<回車>20□Y<回車>
D.10X<回車>20Y<回車>
46.若有下面的說明和定義:structtest{intm1;charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;則sizeof(stmcttest)的值是()。
A.12B.16C.14D.9
47.執(zhí)行語句“for(n=10;n>0;)printf("%d",--n+n--);”后,下列說法正確的是()
A.循環(huán)體執(zhí)行了5次,最終n的值是-1
B.循環(huán)體執(zhí)行了6次,最終n的值是-1
C.循環(huán)體執(zhí)行了6次,最終n的值是0
D.循環(huán)體執(zhí)行了5次,最終n的值是0
48.數(shù)據(jù)流圖用于抽象地描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
49.有如下程序main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}該程序的輸出結(jié)果是
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
50.有以下程序
#include<string.h>
main()
{charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是
A.9B.6C.11D.7
51.數(shù)據(jù)庫設(shè)計(jì)包括兩個方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
52.軟件的可靠性主要表現(xiàn)在______。
A.能夠安裝多次B.能夠在不同類型的計(jì)算機(jī)系統(tǒng)上安裝和使用C.軟件的正確性和健壯性D.前面都正確
53.設(shè)在C語言中,float類型數(shù)據(jù)占4個字節(jié),則double類型數(shù)據(jù)占()個字節(jié)。
A.1B.2C.8D.4
54.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法描述錯誤的是()。
A.選用的結(jié)構(gòu)只準(zhǔn)許有一個入口和一個出口
B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)
C.不允許使用GOTO語句
D.語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬
55.有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);程序運(yùn)行后的輸出結(jié)果是()。
A.運(yùn)行后報(bào)錯覺B.66C.611D.510
56.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
57.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能
58.有以下程序main(){ints=0,a=1,n;scanf("%d",&n);do{s+=l;a=a-2;}while(a!=n);printf("%d\n",s);若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入不敷出值是
A.-1B.-3C.-5D.0
59.以下能正確定義二維數(shù)組的是()。
A.inta[][3];
B.inta[][3]={2*3};
C.inta[][3]={};
D.inta[2][3]={{1},{2},{3,4}}:
60.下列能正確進(jìn)行字符串賦值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%s",s);
四、選擇題(20題)61.
62.定義如下變量和數(shù)組:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};
則語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是()。
A.159B.147C.357D.369
63.設(shè)有以下定義:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
則下列能夠正確表示數(shù)組元素a【1】【2】的表達(dá)式是()。
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
64.
65.下列說法正確的是()。
A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù)定義元素個數(shù)可變的數(shù)組
B.在c語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機(jī)變動
C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致
D.在C語言中,定義一個數(shù)組后.就確定了它所容納的元素的個數(shù)
66.有以下程序函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作.:
程序運(yùn)行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
67.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.B,C,D,E,B.A,B,C,D,C.C,D,E,F(xiàn),D.B,D,F(xiàn),H,
68.
69.有以下程序:
程序執(zhí)行后變量w中的值是()。
A.5.21B.5C.5.0D.0.0
70.在JavaScript語言中,擁有onsubmit事件的對象是()。
A.documentB.eventC.windowD.form.
71.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表
72.
73.
74.4個元素A、B、C、D依次入棧,入棧過程中允許棧頂元素出棧,假設(shè)某一時刻棧的狀態(tài)是C(棧頂)、B、A(棧底),則不可能的出棧順序是()。
A.D、C、B、A
B.C、B、D、A
C.C、A、D、B
D.C、D、B、A
75.
76.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是
A.EOFB.-1C.1D.NULL
77.
78.對長度為n的線性表排序,在最壞情況下,比較次數(shù)是nlog2n的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
79.有以下程序
80.(29)有以下程序
#include<stdio.h>
main()
{ints;
scanf("%d",&s);
while(s>0)
{switch(s)
{case1:printf("%d",s+5);
case2:printf("%d",s+4);break;
case3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
運(yùn)行時,若輸入123450<回車>,則輸出結(jié)果是
A)6566456
B)66656
C)66666
D)6666656
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:計(jì)算整數(shù)n的階乘。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:除了尾部的*號之外,將字符串中其他*號全部刪除。形參P已指向字符串中最后一個字母。在編寫函數(shù)時,不得使用C語言的字符串函數(shù)。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是abcdefg****。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:
參考答案
1.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。
2.BC語言可以使用格式控制符“%d”“%u”等接受十進(jìn)制的數(shù),使用“%o”接受八進(jìn)制的數(shù),使用“%x”接受十六進(jìn)制的數(shù)。本題答案為B選項(xiàng)。
3.D
4.A
5.C
6.AB)選項(xiàng)中switch((int)x);語句中不應(yīng)該有最后的分號。
7.D解析:該函數(shù)用來使兩個字符串連接成為一個字符串。strcat(str1,str2)將str2中的字符連接到str1的字符后面,并在最后加一個“\\0”。連接后新的字符串存放在strl中。注意:用于字符串處理的函數(shù)。
8.D
9.A
10.B
11.B
12.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗(yàn)收的依據(jù)。
13.AC語言中規(guī)定運(yùn)算符的優(yōu)先順序:一元算術(shù)運(yùn)算符一>二元算術(shù)運(yùn)算符一>關(guān)系運(yùn)算符一>邏輯運(yùn)算符一>賦值運(yùn)算符,A項(xiàng)中為邏輯運(yùn)算符,B項(xiàng)和c項(xiàng)都為關(guān)系運(yùn)算符,D項(xiàng)為一元運(yùn)算符。因此最低的是A項(xiàng)。
14.B本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)調(diào)用時,形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結(jié)果為++x;x=3,則3+1=4。
15.D
16.C冒泡排序的基本思想是:將相鄰的兩個元素進(jìn)行比較,如果反序,則交換;對于一個待排序的序列,經(jīng)一趟排序后,最大值的元素移動到最后的位置,其他值較大的元素也向最終位置移動,此過程稱為一趟冒泡。對于有n個數(shù)據(jù)的序列,共需n-1趟排序,第i趟對從l到n-i個數(shù)據(jù)進(jìn)行比較、交換。冒泡排序的最壞情況是待排序序列逆序,第l趟比較n-1次,第2趟比較n-2次。依此類推,最后趟比較1次,一共進(jìn)行n-l趟排序。因此,冒泡排序在最壞情況下的比較次數(shù)是(n-1)+(n-2)+…+l,結(jié)果為n(n-1)/2。本題的正確答案是選項(xiàng)C。
17.C
18.A解析:本題考查的是getchar()函數(shù)。getchar()函數(shù)執(zhí)行時將從鍵盤緩沖區(qū)中讀取用戶的輸入,而不管輸入的是否可打印字符,所以當(dāng)輸入a<回車>后,鍵盤緩沖區(qū)被輸入的實(shí)際上是兩個字符:'a'和'\\n'。故選項(xiàng)A的說法是正確的。
19.CC?!窘馕觥縀—R(Entity—Relationship)圖為實(shí)體一聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。
20.Afgets函數(shù)的功能是從fp所指文件中讀入n-1個字符放入以str為起始地址的空間內(nèi),讀取長度不超過n-1,讀入結(jié)束后,自動在最后添加’\\0’,選項(xiàng)A正確。本題答案為A選項(xiàng)。
21.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。
22.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運(yùn)算。
23.隊(duì)頭隊(duì)頭解析:隊(duì)列是只允許在一端刪除,在另一端插入的順序表,在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
24.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實(shí)就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。
25.便于插入和刪除操作。便于插入和刪除操作。解析:為了克服順序表中插入和刪除時需要移動大量數(shù)據(jù)元素的缺點(diǎn),引入了鏈?zhǔn)酱鎯Y(jié)構(gòu)。鏈表表示線性表的突出優(yōu)點(diǎn)是插入和刪除操作方便,不必移動數(shù)據(jù)元素,執(zhí)行效率高。
26.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
27.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個。
28.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32。
29.low>=highscow+1high-1low>=high\r\ns,cow+1,high-1解析:本題考查了用指針引用一維數(shù)組元素的方法。函數(shù)fun()通過遞歸調(diào)用的方式將字符串的首位和末位互換,第二位和倒數(shù)第二位互換……,從而實(shí)現(xiàn)了字符串倒置的功能。low和high是字符數(shù)組的下標(biāo)。
30.21
31.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點(diǎn)有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)一管理與控制。
32.cdeabcdeab解析:本題考核的知識點(diǎn)是基本算法的應(yīng)用和程序的綜合分析。從分析知道m(xù)ove()函數(shù)的作用,是將形參str所指的數(shù)組依次向后左移一位,即讓該數(shù)組第一個元素的值等于第二個元素的值,接著讓第二個元素的值等于第三個元素的值,直到該數(shù)組最后第二個元素的值等于最后一個元素的值,然后讓第一個元素等于最后一個元素的值。主函數(shù)中用了一個for循環(huán)調(diào)用move()函數(shù),共循環(huán)三次。當(dāng)i=1時,第一次調(diào)用move()函數(shù),使輸入到數(shù)組的s的字符串“abcde”變?yōu)椤癳abcd”,當(dāng)i=2時,第二次調(diào)用move()函數(shù),使字符串“eabcd”變?yōu)椤癲eabc”,當(dāng)i=3時,第三次調(diào)用move()函數(shù),使字符串“deabc”變?yōu)椤癱deab”,故最后輸出的值為“cdeab”,故該空格處應(yīng)該填“cdeab”。
33.1098
34.O(n)O(log2n)
35.252H252H解析:要解答本題,首先要明白在對指針進(jìn)行加,減運(yùn)算時,數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多少,應(yīng)該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的長度就是位移2個字節(jié);如果存儲單元基類型是float型,則移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。
36.HOWhowdoyoudo
37.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個指向自身的結(jié)構(gòu)體指針。
38.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計(jì)包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。
39.軟件工程學(xué)軟件工程學(xué)解析:為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識到軟件工程是使計(jì)算機(jī)軟件走向工程科學(xué)的途徑。逐步形成了軟件工程的概念,開辟了工程學(xué)的新興領(lǐng)域——軟件工程學(xué)。
40.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。
41.A
42.D解析:將—個字符常量放到一個字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。
43.C解析:本題主函數(shù)中的for循環(huán)會循環(huán)兩次,即輸出連續(xù)兩次調(diào)用fun(2)的返回值。在fun()函數(shù)中定義了一個靜態(tài)變量c,第一次調(diào)用fun()時c被初始化為3,然后自增為4,最后輸出a+b+c為2+1+4=7。由于靜態(tài)變量的生存周期為整個程序執(zhí)行周期,所以第二次調(diào)用fun()時c的值為4,然后自增為5,故最后輸出a+b+c為2+1+5=8。所以程序的輸出結(jié)果是78,應(yīng)該選擇C。
44.A解析:本題中第一次執(zhí)行for循環(huán)后,數(shù)組x中的前四個元素按由大到小的次序排序,即x[0]=7、x[1]=5、x[2]=3、x[3]=1、x[4]=2、x[5]=4、x[6]=6、x[7]=0;第二次執(zhí)行for循環(huán)后,數(shù)組x中的后4個元素按由小到大的次序排序,即此時x[0]=7、x[1]=5、x[2]=3、x[3]=1、x[4]=0、x[5]=2、x[6]=4、x[7]=6。故正確答案為A。
45.D解析:本題中,scanf函數(shù)的格式控制沒有空格,所以,對于選項(xiàng)A)、B)、C),輸入的第一個空格會作為字符賦值給變量c1,而不會被解釋成分隔符。
46.A解析:結(jié)構(gòu)體變量所占的存儲空間是各個分量所占空間的總和。共用體變量中的所有成員占有同一個存儲空間,其字節(jié)數(shù)與成員中占字節(jié)數(shù)最多的那個成員相等。charu1[5]是有5個元素的字符數(shù)組占5個字節(jié),intu2[2]是有2個元素的整型數(shù)組占2*2=4個字節(jié),共用體占5個字節(jié)的存儲空間。int占2個字節(jié),char占1個字節(jié),float占4個字節(jié),因此結(jié)構(gòu)體所占的存儲空間為2+1+4+5=12個字節(jié)。
47.D
48.A解析:數(shù)據(jù)流圖包括四個方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體),不包括選項(xiàng)中的控制流。
49.D解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行。依次執(zhí)行循環(huán)語句。
50.B解析:strcpy()函數(shù)的功能是將字符串q復(fù)制到從p[3]位置開始的存儲單元,同時復(fù)制字符串結(jié)束標(biāo)志'\\0'到p[6]中。函數(shù)strlen()返回的是字符串中不包括'\\0'在內(nèi)的實(shí)際長度,故本題答案為B)
51.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
52.C
53.C
\n在C語言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機(jī)器的位數(shù)有關(guān),16位機(jī)中(也就是在標(biāo)準(zhǔn)c中),若int類型數(shù)據(jù)占2個字節(jié),則float類型數(shù)據(jù)占4個字節(jié),double類型數(shù)據(jù)占8個字節(jié)。
\n
54.C解析:限制使用GOTO語句是結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。
55.A解析:程序中將指針q賦予NULL,即指向了空地址,而對空地址所對應(yīng)的內(nèi)容賦值*q=*(p+5)雖然可以輸出結(jié)果611,但最后是會報(bào)錯的,即輸出提示Nullpointerassignment。
56.B解析:sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標(biāo)識a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了—個枚舉類型enumc,a1,a2為枚舉元素,在C編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。
57.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書
評析,需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。
58.B解析:本題考核的知識點(diǎn)是do-while循環(huán)的簡單應(yīng)用。根據(jù)題目要求,最后要使輸出的s值為2,在程序中改變s的值語句只有循環(huán)體中的s+=1;語句,而初始s的值為0,顯然要使s的值變?yōu)?,該語句必須執(zhí)行兩次,即do-while循環(huán)中的循環(huán)體要執(zhí)行兩次,而在do-while中,首先不進(jìn)行條件而執(zhí)行do后面的循環(huán)體語句,然后在判斷while循環(huán)條件。所以說不管循環(huán)判斷條件是否為真s+=1;語句至少執(zhí)行一次,根據(jù)分析,只需要while后面括號的循環(huán)判斷表達(dá)式的值為真成立一次且只能為真一次,將四個選項(xiàng)中的內(nèi)容依次代入該程序中不難得到只有n=-3剛好使循環(huán)判斷條件a!=n為真一次.故4個選項(xiàng)中選項(xiàng)B符合題意。
59.B解析:(1)二維數(shù)組的定義
二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。
二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。
(2)二維數(shù)組元素的引用
二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)],下標(biāo)可以是整型常量或整型表達(dá)式其范圍為:0~(常量表達(dá)式-1)。
(3)二維數(shù)組的初始化
可以用以下方法對二維數(shù)組元素初始化:
①分行給二維數(shù)組賦初值
例如:inta[2][2]={{1,2},{3,4}};
這種賦值方式比較直觀,把第1個大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。
②可以將所有數(shù)據(jù)寫在一個大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€元素賦初值。
③可以對部分元素賦初值,沒有初始化的元素值為0。
④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。
60.C解析:字符串存儲要有結(jié)束符“\\0”且要占用一個空間,選項(xiàng)A)、B的空間不夠:printf用來輸出字符,不能輸入字符串.
61.B
62.C
63.Da[1][2]的值為6.*ptr的值為1,*ptr+1=2是一個數(shù)組,所以(*ptr+1)[2]表示不正確。P=a,指向1,p+5是指針向后移動5個單元,即指向6,*(p+5)即是6,C項(xiàng)解釋同A,
64.C
65.D在C語言中,數(shù)組元素的個數(shù)是確定的,不允許隨機(jī)變動,數(shù)組定義好后,它所能容納的元素的個數(shù)也就確定了,并且同一個數(shù)組中所有元素都是同一類型。
66.A由函數(shù)fun(int*a,intn)中語句if(a[j]>a[k])k=j;可知當(dāng)前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標(biāo)變量,所以該函數(shù)的作用是對數(shù)組a中的下標(biāo)為偶數(shù)位置的數(shù)據(jù)進(jìn)行從大到小的排序,即對a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進(jìn)行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答案為A)。
67.A函數(shù)ehmlge()的作用將從數(shù)組尾部將數(shù)組內(nèi)的元素值加1。數(shù)組的初始值為ABCD,因此經(jīng)change()后,得到的值為BCDE。故答案為A選項(xiàng)。
68.C
69.C題中變量W的定義為double型,函數(shù)fun2,的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。
70.D
71.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。
\n
72.C
73.B
74.C棧的特點(diǎn)是先進(jìn)后出,所以后入棧的最先出棧。在棧的狀態(tài)是c(棧頂)、B、A(棧底)時,D未入棧,棧頂元素可以出棧,但A不可能比B先出棧,所以c選項(xiàng)錯誤。
75.C
76.C解析:EOF是文本文件的文件結(jié)束標(biāo)志,NULL是打開文件錯誤的時候返回值。foef(fp)用來判斷文件位置指針是否在文件末尾,文本文件和二進(jìn)制文件均可以使用此函數(shù)。如果遇到文件結(jié)束就返回1,否則返回0。
77.B
78.D在最壞情況下,快速排序、冒泡排序和直接插入排序需要的比較次數(shù)都是n(n一1)/2,堆排序需要比較的次數(shù)為nlog2n。
79.A函數(shù)fun的功能是返回字符串?dāng)?shù)組.,各個字符串第一個字母是T的個數(shù),str數(shù)組里有2個,所以選擇A)。
80.A
81.
82.
題目中要求除了尾部的*號之外,將字符串中其他*號全部刪除。首先將所有不是*的字符放在字符串str中,然后將尾部的*接在字符的后面,最后為字符串str加上結(jié)束符。
2022-2023年江西省景德鎮(zhèn)市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
2.以下說法正確的是()。
A.C語言只接受十進(jìn)制的數(shù)
B.C語言只接受八進(jìn)制、十進(jìn)制、十六進(jìn)制的數(shù)
C.C語言接受除二進(jìn)制之外任何進(jìn)制的數(shù)
D.C語言接受任何進(jìn)制的數(shù)
3.
4.用數(shù)組r存儲靜態(tài)鏈表,結(jié)點(diǎn)的next域指向后繼,工作指針j指向鏈中結(jié)點(diǎn),使j沿鏈移動的操作為()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next
5.深度為5的二叉樹至多有C個結(jié)點(diǎn)。
A.16B.32C.31D.10
6.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(a+b){case1:prinf("*\n");.case2+1:printf("**(n");}
B.switch(int)x);{case1:print("*\n");.case2:printf(**\n");}
C.switch(x){case1.0:print("*\n");case2.0:print("*\n");}
D.switch(a+b){case1:print("*\n");.casec:pit(**\n");}
7.若有說明chars1[30]="Thecity",s2[]="isbeautiful";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為Thecityisbeautiful\0
B.s1的內(nèi)容更新為isbeaut\0
C.s1的內(nèi)容更新為Thecity\0isbeautiful\0
D.s1的內(nèi)容更新為Thecityisbeautiful\0
8.
9.
10.若用一個大小為6的數(shù)組來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個元素,再加入兩個元素后,rear和front的值分別為多少()。
A.1和5B.2和4C.4和2D.5和1
11.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列哪一個操作______。A.s->link=p;p->link=s;
B.s->link=p->link;p->link=s;
C.s->link=p->link;p=s;
D.p->link=s;s->link=p;
12.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗(yàn)收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
13.下列運(yùn)算符中優(yōu)先級最低的算符是()。
A.||B.!=C.<;=D.十
14.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5
15.最壞情況下時間復(fù)雜度不是n(n-1)/2的排序算法是()
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
16.冒泡排序在最壞情況下的比較次數(shù)是()。
A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2
17.某某二叉樹的中序序列和后序序列正好相反,則該二叉樹一定是______的二叉樹
A.空或只有一個結(jié)點(diǎn)B.高度等于其結(jié)點(diǎn)數(shù)C.任一結(jié)點(diǎn)無左孩子D.任一結(jié)點(diǎn)無右孩子
18.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
19.數(shù)據(jù)庫設(shè)計(jì)中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫設(shè)計(jì)的()。
A.需求分析階段B.邏輯設(shè)計(jì)階段C.概念設(shè)計(jì)階段D.物理設(shè)計(jì)階段
20.標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是()。A.從fp所指的文件中讀取長度不超過n-1的字符串存入指針str所指的內(nèi)存
B.從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存
C.從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存
D.從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)存
二、2.填空題(20題)21.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為______。
22.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運(yùn)算。
23.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許刪除的一端稱作()。
24.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
25.用鏈表表示線性表的突出優(yōu)點(diǎn)是______。
26.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
27.某二叉樹中度為2的結(jié)點(diǎn)有18個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。
28.下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;
sub(s,7,SIZE-1);
for(I=0;I<SIZE;I++)printf("%c",s[I]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
29.下述函數(shù)通過遞歸方法將字符串倒置,使用時需要指定字符數(shù)組的首地址、起始下標(biāo)和終止下標(biāo)。請?zhí)羁眨?/p>
#include<stdio.h>
voidfun(char*s,intlow,inthigh)
{if(【】)
return;
else
{chart;
fun(【】);
t=s[low];
s[low]=s[high];
s[high]=t;}}
30.以下程序的輸出結(jié)果是______。
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("%d,%d\n",a,b);
}
31.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。
32.以下程序運(yùn)行后輸入:3,abcde<回車>,則輸出結(jié)果是______。
#include<string.h>
move(char*str,intn)
{charcemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1);
str[0]=temp;}
main()
{chars[50];intn,i,z;
scanf(“%d,%s”,&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf(“%s\n”,s);
}
33.有以下程序片段,請問執(zhí)行后的輸出結(jié)果是【】。
intn=10;
while(n>7)
{printf("%d",n--);
}
34.對于長度為n的線性表,若進(jìn)行順序查找,時間復(fù)雜性為【】;若進(jìn)行二分查找,則時間復(fù)雜性為【】。
35.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
36.閱讀程序:
main()
{charstrl[]="howdoyoudo",str2[10];
char*p1=strl,*p2=str2;
scanf("%s”,p2);
printf("%s”,p2);
printf("%s\n",p1);
}
運(yùn)行上面的程序,輸入字符串HOWDOYOUDO則程序的輸出結(jié)果是【】。
37.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
38.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。
39.軟件危機(jī)出現(xiàn)于20時紀(jì)60年代末,為了解決軟件危機(jī),人們提出了()的原理來設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。
40.下列語句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>voidfun(char*c,intD){*c=*c+1;d+=1;printf("%c,%c",*c,D;}main(){chara='F',b='f';fun(&b,A);printf("%c,%c\n",a,B);}程序的輸出結(jié)果為()。
A.g,GF,gB.g,FF,gC.G,fF,GD.f,gf,g
42.字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
43.下述程序的輸出結(jié)果是()。#include<stdio.h>intfun(inta){intb=0;staticintc=3;b++,c++;returna+b+c;}voidmain(){intx=2,i;for(i=1;i<3;i++)printf("%d",fun(x));}
A.56B.67C.78D.89
44.有以下程序:main(){intx[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1)>x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1)=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是______。
A.75310246B.1234567C.76310462D.13570246
45.設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)
A.10□X□20□Y<回車>
B.10□X20□Y<回車>
C.10□X<回車>20□Y<回車>
D.10X<回車>20Y<回車>
46.若有下面的說明和定義:structtest{intm1;charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;則sizeof(stmcttest)的值是()。
A.12B.16C.14D.9
47.執(zhí)行語句“for(n=10;n>0;)printf("%d",--n+n--);”后,下列說法正確的是()
A.循環(huán)體執(zhí)行了5次,最終n的值是-1
B.循環(huán)體執(zhí)行了6次,最終n的值是-1
C.循環(huán)體執(zhí)行了6次,最終n的值是0
D.循環(huán)體執(zhí)行了5次,最終n的值是0
48.數(shù)據(jù)流圖用于抽象地描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
49.有如下程序main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}該程序的輸出結(jié)果是
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
50.有以下程序
#include<string.h>
main()
{charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是
A.9B.6C.11D.7
51.數(shù)據(jù)庫設(shè)計(jì)包括兩個方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
52.軟件的可靠性主要表現(xiàn)在______。
A.能夠安裝多次B.能夠在不同類型的計(jì)算機(jī)系統(tǒng)上安裝和使用C.軟件的正確性和健壯性D.前面都正確
53.設(shè)在C語言中,float類型數(shù)據(jù)占4個字節(jié),則double類型數(shù)據(jù)占()個字節(jié)。
A.1B.2C.8D.4
54.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法描述錯誤的是()。
A.選用的結(jié)構(gòu)只準(zhǔn)許有一個入口和一個出口
B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)
C.不允許使用GOTO語句
D.語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬
55.有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);程序運(yùn)行后的輸出結(jié)果是()。
A.運(yùn)行后報(bào)錯覺B.66C.611D.510
56.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
57.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能
58.有以下程序main(){ints=0,a=1,n;scanf("%d",&n);do{s+=l;a=a-2;}while(a!=n);printf("%d\n",s);若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入不敷出值是
A.-1B.-3C.-5D.0
59.以下能正確定義二維數(shù)組的是()。
A.inta[][3];
B.inta[][3]={2*3};
C.inta[][3]={};
D.inta[2][3]={{1},{2},{3,4}}:
60.下列能正確進(jìn)行字符串賦值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%s",s);
四、選擇題(20題)61.
62.定義如下變量和數(shù)組:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};
則語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是()。
A.159B.147C.357D.369
63.設(shè)有以下定義:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
則下列能夠正確表示數(shù)組元素a【1】【2】的表達(dá)式是()。
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
64.
65.下列說法正確的是()。
A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù)定義元素個數(shù)可變的數(shù)組
B.在c語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機(jī)變動
C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致
D.在C語言中,定義一個數(shù)組后.就確定了它所容納的元素的個數(shù)
66.有以下程序函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作.:
程序運(yùn)行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
67.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.B,C,D,E,B.A,B,C,D,C.C,D,E,F(xiàn),D.B,D,F(xiàn),H,
68.
69.有以下程序:
程序執(zhí)行后變量w中的值是()。
A.5.21B.5C.5.0D.0.0
70.在JavaScript語言中,擁有onsubmit事件的對象是()。
A.documentB.eventC.windowD.form.
71.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表
72.
73.
74.4個元素A、B、C、D依次入棧,入棧過程中允許棧頂元素出棧,假設(shè)某一時刻棧的狀態(tài)是C(棧頂)、B、A(棧底),則不可能的出棧順序是()。
A.D、C、B、A
B.C、B、D、A
C.C、A、D、B
D.C、D、B、A
75.
76.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是
A.EOFB.-1C.1D.NULL
77.
78.對長度為n的線性表排序,在最壞情況下,比較次數(shù)是nlog2n的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
79.有以下程序
80.(29)有以下程序
#include<stdio.h>
main()
{ints;
scanf("%d",&s);
while(s>0)
{switch(s)
{case1:printf("%d",s+5);
case2:printf("%d",s+4);break;
case3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
運(yùn)行時,若輸入123450<回車>,則輸出結(jié)果是
A)6566456
B)66656
C)66666
D)6666656
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:計(jì)算整數(shù)n的階乘。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:除了尾部的*號之外,將字符串中其他*號全部刪除。形參P已指向字符串中最后一個字母。在編寫函數(shù)時,不得使用C語言的字符串函數(shù)。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是abcdefg****。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:
參考答案
1.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。
2.BC語言可以使用格式控制符“%d”“%u”等接受十進(jìn)制的數(shù),使用“%o”接受八進(jìn)制的數(shù),使用“%x”接受十六進(jìn)制的數(shù)。本題答案為B選項(xiàng)。
3.D
4.A
5.C
6.AB)選項(xiàng)中switch((int)x);語句中不應(yīng)該有最后的分號。
7.D解析:該函數(shù)用來使兩個字符串連接成為一個字符串。strcat(str1,str2)將str2中的字符連接到str1的字符后面,并在最后加一個“\\0”。連接后新的字符串存放在strl中。注意:用于字符串處理的函數(shù)。
8.D
9.A
10.B
11.B
12.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗(yàn)收的依據(jù)。
13.AC語言中規(guī)定運(yùn)算符的優(yōu)先順序:一元算術(shù)運(yùn)算符一>二元算術(shù)運(yùn)算符一>關(guān)系運(yùn)算符一>邏輯運(yùn)算符一>賦值運(yùn)算符,A項(xiàng)中為邏輯運(yùn)算符,B項(xiàng)和c項(xiàng)都為關(guān)系運(yùn)算符,D項(xiàng)為一元運(yùn)算符。因此最低的是A項(xiàng)。
14.B本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)調(diào)用時,形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結(jié)果為++x;x=3,則3+1=4。
15.D
16.C冒泡排序的基本思想是:將相鄰的兩個元素進(jìn)行比較,如果反序,則交換;對于一個待排序的序列,經(jīng)一趟排序后,最大值的元素移動到最后的位置,其他值較大的元素也向最終位置移動,此過程稱為一趟冒泡。對于有n個數(shù)據(jù)的序列,共需n-1趟排序,第i趟對從l到n-i個數(shù)據(jù)進(jìn)行比較、交換。冒泡排序的最壞情況是待排序序列逆序,第l趟比較n-1次,第2趟比較n-2次。依此類推,最后趟比較1次,一共進(jìn)行n-l趟排序。因此,冒泡排序在最壞情況下的比較次數(shù)是(n-1)+(n-2)+…+l,結(jié)果為n(n-1)/2。本題的正確答案是選項(xiàng)C。
17.C
18.A解析:本題考查的是getchar()函數(shù)。getchar()函數(shù)執(zhí)行時將從鍵盤緩沖區(qū)中讀取用戶的輸入,而不管輸入的是否可打印字符,所以當(dāng)輸入a<回車>后,鍵盤緩沖區(qū)被輸入的實(shí)際上是兩個字符:'a'和'\\n'。故選項(xiàng)A的說法是正確的。
19.CC?!窘馕觥縀—R(Entity—Relationship)圖為實(shí)體一聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。
20.Afgets函數(shù)的功能是從fp所指文件中讀入n-1個字符放入以str為起始地址的空間內(nèi),讀取長度不超過n-1,讀入結(jié)束后,自動在最后添加’\\0’,選項(xiàng)A正確。本題答案為A選項(xiàng)。
21.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。
22.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運(yùn)算。
23.隊(duì)頭隊(duì)頭解析:隊(duì)列是只允許在一端刪除,在另一端插入的順序表,在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
24.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實(shí)就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。
25.便于插入和刪除操作。便于插入和刪除操作。解析:為了克服順序表中插入和刪除時需要移動大量數(shù)據(jù)元素的缺點(diǎn),引入了鏈?zhǔn)酱鎯Y(jié)構(gòu)。鏈表表示線性表的突出優(yōu)點(diǎn)是插入和刪除操作方便,不必移動數(shù)據(jù)元素,執(zhí)行效率高。
26.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
27.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個。
28.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32。
29.low>=highscow+1high-1low>=high\r\ns,cow+1,high-1
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度產(chǎn)品上樣綠色包裝設(shè)計(jì)合作框架協(xié)議4篇
- 二零二五年環(huán)境監(jiān)測與治理技術(shù)服務(wù)協(xié)議
- 二零二五版環(huán)保公益項(xiàng)目捐款贈與合作協(xié)議3篇
- 二零二五版文化創(chuàng)意產(chǎn)業(yè)合伙投資框架協(xié)議3篇
- 二零二五年度電視劇本委托創(chuàng)作協(xié)議2篇
- 2025年度藝術(shù)品拍賣居間協(xié)議書4篇
- 二零二五版知識產(chǎn)權(quán)侵權(quán)法律顧問聘請服務(wù)協(xié)議3篇
- 2025年度旅游目的地營銷顧問服務(wù)協(xié)議4篇
- 2025年度航空器租賃服務(wù)協(xié)議3篇
- 二零二五年度商業(yè)地產(chǎn)低首付借款及投資合作協(xié)議3篇
- 2023年湖北省武漢市高考數(shù)學(xué)一模試卷及答案解析
- 城市軌道交通的網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)
- 英國足球文化課件
- 《行政職業(yè)能力測驗(yàn)》2023年公務(wù)員考試新疆維吾爾新疆生產(chǎn)建設(shè)兵團(tuán)可克達(dá)拉市預(yù)測試題含解析
- 醫(yī)院投訴案例分析及處理要點(diǎn)
- 燙傷的安全知識講座
- 工程變更、工程量簽證、結(jié)算以及零星項(xiàng)目預(yù)算程序?qū)嵤┘?xì)則(試行)
- 練習(xí)20連加連減
- 五四制青島版數(shù)學(xué)五年級上冊期末測試題及答案(共3套)
- 員工內(nèi)部崗位調(diào)換申請表
- 商法題庫(含答案)
評論
0/150
提交評論