版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年云南省昆明市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.C語(yǔ)言中的基本數(shù)據(jù)類型所占存儲(chǔ)空間長(zhǎng)度的順序是()
A.char<=int<=float<=double<=long
B.int<=char<=float<=long<=double
C.int<=long<=float<=double<=char
D.char<=int<=float<=long<=double
2.對(duì)于哈希表,如果將裝填因子α定義為表中裝入的記錄數(shù)與表的長(zhǎng)度之比,那么向表中加入新紀(jì)錄時(shí),()
A.α的值隨時(shí)沖突次數(shù)的增加而遞減
B.α越大發(fā)生沖突的可能性越大
C.α等于1時(shí)不會(huì)再發(fā)生沖突
D.α低于0.5時(shí)不會(huì)發(fā)生沖突
3.
4.在一個(gè)具有n個(gè)結(jié)點(diǎn)的有序單鏈表中插入一個(gè)新結(jié)點(diǎn)并仍然保持有序的時(shí)間復(fù)雜度是()。
A.O(1)B.O(n)C.O(n2)D.O(nlog2n)
5.
6.下面函數(shù)的功能是()intfunl(char*X){char*y=X;whar(*y++);return(y-x-1);}
A.求字符串的長(zhǎng)度B.比較兩個(gè)字符串的大小C.將字符串x復(fù)制到字符串y中D.將字符串x連接到字符串y后面
7.當(dāng)變量c的值不為2、4、6時(shí),值為“真”的表達(dá)式是()。
A.(c>=2&&c<=6)&&(c%2!=1)
B.(c==2)||(c==4)||(c==6)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)||(c!=3)||(c!=5)
8.軟件生命周期中的活動(dòng)不包括()
A.軟件維護(hù)B.市場(chǎng)調(diào)研C.軟件測(cè)試D.需求分析
9.若有定義語(yǔ)句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。
A.7B.8C.9D.10
10.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2||c--!=3) printf(“%d,%d,%d\n”,a,b,c); elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序的運(yùn)行結(jié)果是()。
A.1,3,2B.1,3,3C.1,2,3D.3,2,1
11.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價(jià)的循環(huán)語(yǔ)句是()。A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
12.以下涉及字符串?dāng)?shù)組、字符指針的程序段中,沒(méi)有編譯錯(cuò)誤的是()。A.char*str,name[1];str=“Hello”;
B.char*str,name[1];name=“Hello”;
C.charstrl[10]=“ex1.c”,str2[6];str2=str1;
D.charhead_line[];head_line=“\\0”;
13.在單鏈表中,增加頭結(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)
14.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括A.順序結(jié)構(gòu)B.GOTO跳轉(zhuǎn)C.選擇(分支)結(jié)構(gòu)D.重復(fù)(循環(huán))結(jié)構(gòu)
15.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)
16.有以下程序#include<stdio.h>voidfun(intx){if(x/2>1)fun(x/2);printf("%d",x);}main{fun(7);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.137B.731C.73D.37
17.已知有如下結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有P=&data,則對(duì)data的成員a引用正確的是()。A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)
18.下面程序的輸出結(jié)果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}
A.SOB.SPC.SPOPKD.SHOB
19.下面程序中算法的時(shí)間復(fù)雜度是()A.O(n)B.O(n^2)C.O(logn)D.O(n*logn)
20.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;執(zhí)行該程序段后,k的值是()。
A.3B.2C.1D.0
二、2.填空題(20題)21.x、y、x均為int型變量,描述“x、y和z中至少有兩個(gè)為正數(shù)”的表達(dá)式是______。
22.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
23.函數(shù)count(head)統(tǒng)計(jì)鏈表的結(jié)點(diǎn)個(gè)數(shù),head為表頭指針,閱讀程序,要求將整個(gè)if語(yǔ)句改成while循環(huán)控制結(jié)構(gòu),其形式為【】。
#include<stdio.h>
intcount(NODE*head)
{intn=0;
if(head!=NULL)
do
{n++;
head=head->next;
}while(head!=NULL);
returnn;}
24.下列語(yǔ)句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
25.某二叉樹中度為2的結(jié)點(diǎn)有n個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
26.下列執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0
for(i=0;i<10;i++)atr[i]=i
for(i=1,i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
27.二叉樹按某順序線索化后,其結(jié)點(diǎn)均有指向其前趨和后繼的線索,該說(shuō)法是【】的。
28.以下程序的輸出結(jié)果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
29.以下程序運(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);
}
30.函數(shù)mystrlen(char*s)的功能是求字符串s的長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>
mystrlen(char*s)
{char*t:
t=s;
while(【】)t++;
return(t-s);
}
31.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
32.下列程序的功能是對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
33.若有以下定義,則不移動(dòng)指針p,且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
34.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為______。
35.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
36.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
37.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過(guò)程。
38.若有說(shuō)明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。
39.下列程序執(zhí)行后輸出的結(jié)果是【】。
f(intA)
{staticc=0;
c=a+c++;
return(c);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
40.二叉樹的遍歷可以分為三種:前序遍歷、()遍歷和后序遍歷。
三、1.選擇題(20題)41.設(shè)有語(yǔ)句:“inta=1,b=2,*p1=&a,*p2=&b;”,則使指針p1指向變量b的賦值語(yǔ)句是______。
A.p1=*p2B.*p1=p2C.p1=p2D.*p1=*p2
42.以下非法的賦值語(yǔ)句是
A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;
43.以下關(guān)鍵字序列用快速排序法進(jìn)行排序,速度最慢的是______。
A.{23,27,7,19,11,25,32}
B.{23,11,19,32,27,35,7}
C.{7,11,19,23,25,27,32}
D.{27,25,32,19,23,7,11}
44.有以下定義
#include<stdio.h>
chara[10],*b=a;
不能給a數(shù)組輸入字符串的語(yǔ)句是
A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);
45.下列關(guān)于棧的敘述中正確的是()
A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧是先進(jìn)先出的線性表D.棧是先進(jìn)后出的線性表
46.下列所述中,是軟件調(diào)試技術(shù)的是()。
A.錯(cuò)誤推斷B.集成測(cè)試C.回溯法D.邊界值分析
47.以下能正確定義一維數(shù)組的選項(xiàng)是
A.inta[5]={0,1,2,3,4,5}
B.chara[]={'0','1','2','3','4','5','\0'};
C.chara={'A','B','C'};
D.inta[5]="0123";
48.已知形成鏈表的存儲(chǔ)結(jié)構(gòu)如下圖所示,則下述類型描述中的空白處應(yīng)填______。structlink{chardata;______;}node;
A.Structlinknext
B.link*next
C.structnextlink
D.Structlink*next
49.有以下程序:#include<stdlo.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dat","w+")for(i=1;i<6;i++){fprintf(fp."%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp."%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);
A.00B.12345C.14D.1
50.下列說(shuō)法中不正確的是()。
A.指針是一個(gè)變量B.指針中存放的是數(shù)值C.指針可以進(jìn)行加、減等算術(shù)運(yùn)算D.指針變量占用存儲(chǔ)空間
51.下面程序段的運(yùn)行結(jié)果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
52.下列程序的輸出結(jié)果是()main(){charch[2][5]={"6934","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.6385B.69825C.63825D.693825
53.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展
54.對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
55.下列選項(xiàng)中正確的語(yǔ)句是
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
56.若某二叉樹的前序遍歷訪問(wèn)順序是abdgcefh,中序遍歷訪問(wèn)順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問(wèn)順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
57.
有下列程序:
fun(intX,inty){return(x+y);}
main
{inta=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
執(zhí)行后的輸出結(jié)果是()。
A.6B.7C.8D.9
58.以下程序輸出結(jié)果是#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",a);}
A.21B.32C.33D.11
59.下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
60.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d",a,b);}
A.6,1B.2,1C.6,0D.2,0
四、選擇題(20題)61.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
62.
63.有以下程序
#include<stdio.h>
voidfun(char**p)
{p=p+2;
printf("%s\n",*p);
}
main()
{char*a[]={"Morning","Afternoon","Evening","Night"};
fun(a);
}
程序的運(yùn)行結(jié)果是
A.rning
B.a(chǎn)fternoon
C.ternoon
D.Evening
64.
65.C語(yǔ)言中用于結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)是A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
B.if、switch、break
C.for、while、do-while
D.if、for、continue
66.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指-個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
67.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
68.設(shè)有以下函數(shù):
voidfun(intn,char}s){……}
則下面對(duì)函數(shù)指針的定義和賦值均正確的是()。
A.void(*pf)(int,char);pf=&fun;
B.void+pf();pf=fun;
C.void*pf();*pf=fun;
D.void(*pf)(int,char*);pf=fun;
69.
70.
71.
下列程序執(zhí)行后的輸出結(jié)果是()。
voidfunc(int*a,intb[])
{b[0]=*a+b;}main
{inta,b[5];
a=0.b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
A.6B.7C.8D.9
72.閱讀下面程序段,則執(zhí)行后的結(jié)果為()。
A.64B.8C.56D.0
73.有以下程序:
#include<stdi0.h>
#include<string.h>
structA
{inta;charb[10];doubleC;);
voidf(structAt);
main()
{structAa={"1001,"ZhangDa",l098,0};
f(a);printf("%d,%S,%6.1f\n",a.a(chǎn),a.b,a.c);}
voidf(structAt)
{t.a(chǎn)=1002;strcpy(t.b,"ChangRon9");t.c=1202.0;}
程序運(yùn)行后的輸出結(jié)果是()。
A.1001,ZhangDa,1098.0
B.1002,ChangRong,1202.0
C.1001,ChangRong,1098.0
D.1002,ZhangDa,1202.0
74.
75.定義如下變量和數(shù)組:
則下面語(yǔ)句的輸出結(jié)果是()。
A.951B.741C.753D.963
76.以下不合法的字符常量是()。
A."、、"B.’\”’C.’\018’D.\xcc"
77.作為信息處理熱點(diǎn)技術(shù)之一的“多媒體技術(shù)”中的媒體,強(qiáng)調(diào)的是()。
A.存儲(chǔ)媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺(jué)媒體
78.
79.以下選項(xiàng)中,合法的一組c語(yǔ)言數(shù)值常量是()。
A.12.0Xa234.5e0
B.028.5e…30xf
C.1774el.50abe
D.0x8A10,0003.e5
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個(gè)整數(shù)m是否是素?cái)?shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main)函數(shù),不得增行或刪行,也不得,t更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)proc(),它的功能是:使字符串中前部的*號(hào)不得多余m個(gè);若多余m個(gè),則刪除多余的*號(hào);若少于或等于m個(gè),則什么也不做,字符串中間和尾部的*號(hào)不刪除。例如,字符串中的內(nèi)容為****A*BC*DEF*G****,若m的值為2,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是**A*BC*DEF*G****;若m的值為4,則字符串中的內(nèi)容仍為****A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫函數(shù)時(shí),不得使用c語(yǔ)言提供的字符串函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:
參考答案
1.A
2.B
3.A
4.B
5.D
6.A
7.D邏輯或運(yùn)算中只要有一個(gè)運(yùn)算量為真,結(jié)果就為真。當(dāng)“c>=2&&c<=6”條件不成立時(shí),c的值肯定不是2、3、4、5、6,“c!=3”與“c!=5”均成立,所以D選項(xiàng)的結(jié)果一定為真。故本題答案為D選項(xiàng)。
8.B【答案】:B
【知識(shí)點(diǎn)】:軟件生命周期
【解析】:一個(gè)軟件產(chǎn)品或軟件系統(tǒng)要經(jīng)歷孕育、誕生、成長(zhǎng)、成熟、衰亡等階段,一般稱為軟件生命周期。它把整個(gè)軟件生存周期劃分為若干階段,使得每個(gè)階段有明確的任務(wù),使規(guī)模大,結(jié)構(gòu)復(fù)雜和管理復(fù)雜的軟件開發(fā)變的容易控制和管理。通常,軟件生存周期包括可行性分析與開發(fā)項(xiàng)計(jì)劃、需求分析、設(shè)計(jì)(概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、編碼、測(cè)試、維護(hù)等活動(dòng),可以將這些活動(dòng)以適當(dāng)?shù)姆绞椒峙涞讲煌碾A段去完成。故選B。
9.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結(jié)束符\0的長(zhǎng)度。故選A。
10.Belse總是和最近的if配對(duì)。進(jìn)入第1個(gè)if語(yǔ)句進(jìn)行條件判斷時(shí),因?yàn)槭沁x輯與操作,需要兩邊運(yùn)算對(duì)象的值均為非零值才為真,所以需要逐個(gè)執(zhí)行判斷。結(jié)果為1,進(jìn)入第2個(gè)if語(yǔ)句進(jìn)行條件判斷。因?yàn)椤癰!=2”條件成立,所以整個(gè)條件表達(dá)式的值為真,不再執(zhí)行邏輯或的第2個(gè)運(yùn)算對(duì)象“(c--!=3)”變量c的值不變,也不再執(zhí)行第1個(gè)else語(yǔ)句。輸出a的值1,b的值3,c的值3。故本題答案為B選項(xiàng)。
11.C當(dāng)循環(huán)結(jié)束時(shí),w的值應(yīng)為-1,而其他選項(xiàng)中w的值為0,故選擇c選項(xiàng)。
12.AC語(yǔ)言中,字符指針變量可以直接使用字符串賦值,而字符數(shù)組不能直接使用字符串或字符數(shù)組賦值,選項(xiàng)B、C、D錯(cuò)誤,選項(xiàng)A正確。故本題答案為A選項(xiàng)。
13.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
14.BB【解析】1966年Boehm和JaCopini證明了程序設(shè)計(jì)語(yǔ)言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。
15.B通過(guò)—維數(shù)組名或指向維數(shù)組元素的指針來(lái)引用數(shù)組元素有兩種寫法: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。
16.D本程序主要考查遞歸函數(shù)。fun(7),首先將參數(shù)代入函數(shù),因?yàn)?7/2)>1,所以執(zhí)行f(3),依此類推直到f(1.5),(1.5/2)<1,所以執(zhí)行打印函數(shù),此時(shí)X值為3,然后退出f(1.5),返回f(3),打印x值即7。所以選D。
17.B本題主要考查結(jié)構(gòu)指針:P=&data,訪問(wèn)結(jié)構(gòu)體的成員。它可以通過(guò)結(jié)構(gòu)變量訪問(wèn),即data,可以用等價(jià)的指針形式:(*p).a(chǎn)和P->a來(lái)訪問(wèn)結(jié)構(gòu)體變量中的成員。
18.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串中的第一個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
19.C
20.B解析:因?yàn)閍<b成立,所以條件表達(dá)式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因?yàn)閗=2>c=3不成立,所以條件表達(dá)式k>c?c:k的值等于k的值等于2。把條件表達(dá)式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項(xiàng)B)為正確答案。
21.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個(gè)為正數(shù)”,即x、y和x這3個(gè)數(shù)中必須有兩個(gè)是正數(shù),且這3個(gè)數(shù)中的哪兩個(gè)數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
22.8888解析:C語(yǔ)言規(guī)定,以0開頭的整型常量為八進(jìn)制。另外,在primf()函數(shù)中,%X表示以十六進(jìn)制無(wú)符號(hào)形式輸出一個(gè)整數(shù),且十六進(jìn)制中的ABCDEF為大寫字母。本題的輸出應(yīng)該是八進(jìn)制210的十六進(jìn)制形式。將八進(jìn)制轉(zhuǎn)換為十六進(jìn)制,可以先將其轉(zhuǎn)換為二進(jìn)制。因?yàn)?位八進(jìn)制表示3位二進(jìn)制,4位二進(jìn)制表示1位十六進(jìn)制。(210)8=(10001000)2=(88)16,故本題輸出為880
23.while(p!=NULL){n++;head=head→next;}while(p!=NULL){n++;head=head→next;}解析:do…while循環(huán)轉(zhuǎn)化為while循環(huán),循環(huán)體執(zhí)行的內(nèi)容應(yīng)該是一致的,不同的是do…while結(jié)構(gòu)是先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否滿足,而while循環(huán)則是先判斷循環(huán)條件是否滿足,滿足則執(zhí)行循環(huán)體。所以do…while循環(huán)結(jié)構(gòu)若想轉(zhuǎn)換為while循環(huán)結(jié)構(gòu),必須在do…while循環(huán)之前先對(duì)循環(huán)條件進(jìn)行一個(gè)判斷,即此題中的if(head!=NULL)。注意:3種循環(huán)結(jié)構(gòu)的比較。
24.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動(dòng)覆蓋字符數(shù)組sp末尾的\'\\0\'。
25.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為0的結(jié)點(diǎn)多一個(gè)。
26.1212解析:本題的第—個(gè)for循環(huán)用于始數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
27.錯(cuò)誤錯(cuò)誤解析:線索二叉樹是利用二叉鏈表存儲(chǔ)結(jié)構(gòu)中的空鏈域來(lái)存放其前趨或后繼。由于二叉樹度為2的非終端結(jié)點(diǎn)無(wú)空鏈域,因此它沒(méi)有空鏈域用來(lái)存放前趨和后繼。
28.1313解析:函數(shù)fun是一個(gè)遞歸函數(shù)。執(zhí)行fun(3);,x=3,x/2=1>0,又調(diào)用f(1),此時(shí),x=1,x/2=0,不滿足繼續(xù)遞歸調(diào)用的條件,輸出1,返回到fun(3)中,輸出3。所以本題的輸出結(jié)果為13。
29.30253025解析:本題考核的知識(shí)點(diǎn)是變量的存儲(chǔ)屬性和算術(shù)運(yùn)算的應(yīng)用。本題涉及了自動(dòng)變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個(gè)外部變量a,它是一個(gè)全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲(chǔ)空間在程序的整個(gè)運(yùn)行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個(gè)一個(gè)靜態(tài)變量a,此靜態(tài)變量a是個(gè)靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動(dòng)變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過(guò)程中自動(dòng)進(jìn)行的,auto是自動(dòng)變量的存儲(chǔ)類別標(biāo)識(shí)符,如果省略auto,系統(tǒng)隱含認(rèn)為此變量為auto,本題中main()中intc=20定義了一個(gè)自動(dòng)變量c,此自動(dòng)變量c是個(gè)靜態(tài)的局部變量.算術(shù)運(yùn)算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個(gè)ptine('%d',a)中a=a+b=10+20=30,第二個(gè)printf('%d',a)中a=a+c=5+20=25,即輸出3025。
30.*t*t解析:通過(guò)while循環(huán)掃描字符串,遇到字符‘\\0’結(jié)束,并用t統(tǒng)計(jì)字符串的長(zhǎng)度。
31.軟件開發(fā)
32.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒(méi)有換行),所以條件為(c=getchar())!='\\n'。
33.*(p+5)或p[5]*(p+5)或p[5]
34.繼承繼承
35.00解析:對(duì)于一個(gè)unsignedshort來(lái)說(shuō),它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。
36.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)
37.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)
38.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對(duì)字符數(shù)組s2和字符數(shù)組s1進(jìn)行比較。如果s1<s2,則返回負(fù)數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。
39.77解析:在程序執(zhí)行時(shí),static變量?jī)H初始化一次,下次使用時(shí)將使用上次保存的值。
40.中序中序解析:二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問(wèn)根
41.D解析:對(duì)于定義int*p,*q;,可以通過(guò)賦值語(yǔ)句p=q;,把指針變量q中的地址值賦給指針變量p,從而使這兩個(gè)指針變量指向同一地址。
42.C解析:本題考查的知識(shí)點(diǎn)是賦值語(yǔ)句的基本知識(shí)。在表達(dá)式的運(yùn)算中,雙目賦值運(yùn)算符的格式為“變量二表達(dá)式”,單目運(yùn)算符一般形式為“運(yùn)算符表達(dá)式”或“表達(dá)式運(yùn)算符”。常量和表達(dá)式是不能被賦值的。選項(xiàng)A為復(fù)合表達(dá)式,首先計(jì)算(i=2,++i)的值,然后賦值給n,故選項(xiàng)A正確;選項(xiàng)B為簡(jiǎn)單自加運(yùn)算,故選項(xiàng)B正確;選項(xiàng)C在表達(dá)式++(i+1);中,(i+1)不是變量,該表達(dá)式的值為常量,而在++運(yùn)算中,其運(yùn)算對(duì)象必須為變量,故選項(xiàng)C錯(cuò)誤;選項(xiàng)D中為復(fù)合賦值表達(dá)式,正確.所以應(yīng)當(dāng)選擇C。
43.C
44.B解析:函數(shù)gets()的調(diào)用形式為gets(str_adr);str_adr是存放字符串的起始地址??梢允亲址麛?shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來(lái)從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。換行符讀入后,不作為字符串的內(nèi)容。本題中定義一個(gè)長(zhǎng)度為10的字符數(shù)組,和一個(gè)指針變量b,并且通過(guò)賦值讓它指向數(shù)組a。gets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址。
45.D解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個(gè)新元素只能從棧頂一端進(jìn)入,刪除時(shí),只能刪除棧頂?shù)脑?,即剛剛被插入的元素,所以棧也被稱為“先進(jìn)后出”表或“后進(jìn)先出”表。
46.C解析:軟件調(diào)試技術(shù)包括強(qiáng)行排錯(cuò)法、回溯法和原因排除法。邊界值分析、錯(cuò)誤推斷都是黑盒測(cè)試的方法。
47.B解析:選項(xiàng)A)中,定義的初值個(gè)數(shù)大于數(shù)組的長(zhǎng)度;選項(xiàng)C)中,數(shù)組名后少了中括號(hào);選項(xiàng)D)中,整型數(shù)組不能賦予字符串。
48.D解析:在單向鏈表中,由于每個(gè)結(jié)點(diǎn)需要存儲(chǔ)下一個(gè)結(jié)點(diǎn)的地址,且下一個(gè)結(jié)點(diǎn)的數(shù)據(jù)類型與前一個(gè)結(jié)點(diǎn)的數(shù)據(jù)類型完全相同,故應(yīng)為structlink*next。
49.D解析:在for循環(huán)中用fpfinff(fp,'%d',i);將循環(huán)變量的值1~5輸出到fp指向的文件data.dat中,輸出3個(gè)數(shù)后換行。執(zhí)行rewind(fP)使文件指針重新返回到文件的開頭,再執(zhí)行fscanf(fp,'%d%d',&k,&n)將磁盤文件中的前兩個(gè)數(shù)輸入給變量k,n,并將其輸出到屏幕上。
50.B解析:指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是—個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。
51.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個(gè)字符串,然后將指針變量p加3,即使其指向字符串的第四個(gè)元素。然后執(zhí)行輸出語(yǔ)句,通過(guò)輸出語(yǔ)句的輸出格式我們可以知道,最后輸出的是一個(gè)十進(jìn)制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。
strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復(fù)制到目的地址中,這種復(fù)制將覆蓋原來(lái)的字符串。strcat函數(shù)的功能是將源地址的字符串復(fù)制到目的地址字符串的后面。
strlen的調(diào)用格式是:strlen(字符串地址),其功能是返回字符串中字符的個(gè)數(shù)。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個(gè)數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結(jié)果是4。因此本題正確的答案是C。
52.A
53.C解析:軟件工程的基本概念。軟件工程概念的出現(xiàn)源自于軟件危機(jī)。為了消除軟件危機(jī),通過(guò)認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識(shí)到軟件工程是使計(jì)算機(jī)軟件走向工程科學(xué)的途徑,逐步形成了軟件工程的概念。
54.CC?!窘馕觥繉?duì)線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。
55.D解析:本題考核的知識(shí)點(diǎn)是字符欺組初始化及字符型指針的應(yīng)用。字符數(shù)組初始化可以有兩種方式:方式一,按單個(gè)字符的方式賦初值。方式二,把一個(gè)字符串作為初值賦給字符數(shù)組。比如:charch[5]=rabc”),選項(xiàng)A屬于這種情況,但是選項(xiàng)A定義的字符數(shù)組長(zhǎng)度為8,由于最后還要加一個(gè)“\\0”做結(jié)束標(biāo)志,所以賦給他的字符串長(zhǎng)度應(yīng)小于等于7,所以選項(xiàng)A不正確;在給字符數(shù)組賦初值的時(shí)候,應(yīng)該用花括號(hào)“{”和“}”將字符串括起來(lái),故選項(xiàng)C不正確。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時(shí)就給其賦初值,比如:char*p='student';二是給指針變量賦值,比如:p='student';(p已經(jīng)被定義為字符型指針變量;),故選項(xiàng)D正確,而選項(xiàng)C中的花括號(hào)是多余的,應(yīng)該去掉,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
56.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問(wèn)根結(jié)點(diǎn);③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問(wèn)根結(jié)點(diǎn);②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問(wèn)根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點(diǎn),e、c、h、f是右子樹的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點(diǎn),b右邊子樹無(wú)結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點(diǎn)。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。
57.C解析:函數(shù)fun(intx,inty)的功能是返回兩個(gè)整型數(shù)據(jù)的和。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號(hào)表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用子函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等8。所以變量sum的值等于8。
58.B解析:break語(yǔ)句只能在循環(huán)體和switch語(yǔ)句體內(nèi)使用。本題程序?yàn)樵趙hile循環(huán)中嵌套for循環(huán)。先看內(nèi)層for循環(huán),該循環(huán)的3個(gè)表達(dá)式全部省略,循環(huán)條件始終為真,但循環(huán)體內(nèi)的break語(yǔ)句為終止循環(huán)的條件。首先,由初始條件判斷外層循壞while括號(hào)內(nèi)表達(dá)式的值,該值為真,執(zhí)行本次while循環(huán),即執(zhí)行循環(huán)體內(nèi)的訂語(yǔ)句,判斷該表達(dá)式后面括號(hào)里表達(dá)式的值為真,執(zhí)行break語(yǔ)句,跳出內(nèi)層循環(huán),執(zhí)行下面的語(yǔ)句,此時(shí)i和a的值均變?yōu)?1;回到外層循環(huán),判斷表達(dá)式“i<20”仍為真,執(zhí)行內(nèi)層循環(huán)語(yǔ)句,此時(shí)if條件不滿足,執(zhí)行else語(yǔ)句,i的值為10,繼續(xù)內(nèi)層循環(huán),if語(yǔ)句條件滿足,執(zhí)行break語(yǔ)句,跳出內(nèi)層循環(huán),執(zhí)行下面的語(yǔ)句后,i和a的值分別是21和32。再判斷外層循環(huán)的條件為假,結(jié)束循環(huán).所以,4個(gè)選項(xiàng)中B為所選。
59.A解析:本題考查默認(rèn)函數(shù)的函數(shù)值的類型。在函數(shù)調(diào)用時(shí),盡管y的類型是float,x的類型是double,但是因?yàn)楹瘮?shù)定義時(shí)省去類型說(shuō)明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計(jì)算后的y的類型是int型。
60.B解析:在表達(dá)式的值作為邏輯值時(shí),非0值一律為1,0值才為0。
61.D結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn):①采用自頂向下、逐步求精的程序設(shè)計(jì)方法;②任何程序
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)建筑工程機(jī)械行業(yè)物流配送體系優(yōu)化與成本分析報(bào)告
- 2026年語(yǔ)言學(xué)習(xí)理論與實(shí)踐外語(yǔ)教學(xué)方法及跨文化交際試題集
- 2026年電工技術(shù)等級(jí)考試題庫(kù)及答案
- 雨水排放口設(shè)置標(biāo)準(zhǔn)方案
- 建筑垃圾生態(tài)修復(fù)應(yīng)用方案
- 結(jié)構(gòu)防腐檢測(cè)與評(píng)估方案
- 數(shù)據(jù)價(jià)值溝通技巧
- 第一書記積極傳承民俗活動(dòng)
- 2026年旅游管理專業(yè)英語(yǔ)能力測(cè)試模擬題
- 2026年體育教練員資格考試運(yùn)動(dòng)訓(xùn)練與運(yùn)動(dòng)員權(quán)益保護(hù)題目
- 口述史研究活動(dòng)方案
- 別克英朗說(shuō)明書
- 地下管線測(cè)繪課件
- 房屋租賃合同txt
- 珍稀植物移栽方案
- THBFIA 0004-2020 紅棗制品標(biāo)準(zhǔn)
- GB/T 34336-2017納米孔氣凝膠復(fù)合絕熱制品
- GB/T 20077-2006一次性托盤
- GB/T 10046-2008銀釬料
- GA 801-2019機(jī)動(dòng)車查驗(yàn)工作規(guī)程
- 中層管理干部領(lǐng)導(dǎo)力提升課件
評(píng)論
0/150
提交評(píng)論