




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年云南省昆明市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.C語言中的基本數(shù)據類型所占存儲空間長度的順序是()
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.對于哈希表,如果將裝填因子α定義為表中裝入的記錄數(shù)與表的長度之比,那么向表中加入新紀錄時,()
A.α的值隨時沖突次數(shù)的增加而遞減
B.α越大發(fā)生沖突的可能性越大
C.α等于1時不會再發(fā)生沖突
D.α低于0.5時不會發(fā)生沖突
3.
4.在一個具有n個結點的有序單鏈表中插入一個新結點并仍然保持有序的時間復雜度是()。
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.求字符串的長度B.比較兩個字符串的大小C.將字符串x復制到字符串y中D.將字符串x連接到字符串y后面
7.當變量c的值不為2、4、6時,值為“真”的表達式是()。
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.軟件生命周期中的活動不包括()
A.軟件維護B.市場調研C.軟件測試D.需求分析
9.若有定義語句:“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);}程序的運行結果是()。
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;┇則不能與上面程序段等價的循環(huán)語句是()。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.以下涉及字符串數(shù)組、字符指針的程序段中,沒有編譯錯誤的是()。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.在單鏈表中,增加頭結點的目的是______。
A.方便運算的實現(xiàn)B.使單鏈表至少有一個結點C.標識表結點中首結點的位置D.說明單鏈表是線性表的鏈式存儲實現(xiàn)
14.結構化程序所要求的基本結構不包括A.順序結構B.GOTO跳轉C.選擇(分支)結構D.重復(循環(huán))結構
15.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達式是()。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");}程序運行后的輸出結果是()。A.137B.731C.73D.37
17.已知有如下結構體:structsk{inta;floatb;}data,*p;若有P=&data,則對data的成員a引用正確的是()。A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a
18.下面程序的輸出結果是______。#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.下面程序中算法的時間復雜度是()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中至少有兩個為正數(shù)”的表達式是______。
22.以下程序運行后的輸出結果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
23.函數(shù)count(head)統(tǒng)計鏈表的結點個數(shù),head為表頭指針,閱讀程序,要求將整個if語句改成while循環(huán)控制結構,其形式為【】。
#include<stdio.h>
intcount(NODE*head)
{intn=0;
if(head!=NULL)
do
{n++;
head=head->next;
}while(head!=NULL);
returnn;}
24.下列語句的輸出結果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
25.某二叉樹中度為2的結點有n個,則該二叉樹中有【】個葉子結點。
26.下列執(zhí)行后輸出的結果是【】。
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.二叉樹按某順序線索化后,其結點均有指向其前趨和后繼的線索,該說法是【】的。
28.以下程序的輸出結果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
29.以下程序運行后的輸出結果是______。
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í)羁铡?/p>
mystrlen(char*s)
{char*t:
t=s;
while(【】)t++;
return(t-s);
}
31.軟件工程研究的內容主要包括:【】技術和軟件工程管理。
32.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?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.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
34.在面向對象方法中,類之間共享屬性和操作的機制稱為______。
35.以下程序的輸出結果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
36.數(shù)據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
37.數(shù)據字典是各類數(shù)據描述的集合,它通常包括5個部分,即數(shù)據項、數(shù)據結構、數(shù)據流、______和處理過程。
38.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結果是______。
39.下列程序執(zhí)行后輸出的結果是【】。
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.設有語句:“inta=1,b=2,*p1=&a,*p2=&b;”,則使指針p1指向變量b的賦值語句是______。
A.p1=*p2B.*p1=p2C.p1=p2D.*p1=*p2
42.以下非法的賦值語句是
A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;
43.以下關鍵字序列用快速排序法進行排序,速度最慢的是______。
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ù)組輸入字符串的語句是
A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);
45.下列關于棧的敘述中正確的是()
A.在棧中只能插入數(shù)據B.在棧中只能刪除數(shù)據C.棧是先進先出的線性表D.棧是先進后出的線性表
46.下列所述中,是軟件調試技術的是()。
A.錯誤推斷B.集成測試C.回溯法D.邊界值分析
47.以下能正確定義一維數(shù)組的選項是
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.已知形成鏈表的存儲結構如下圖所示,則下述類型描述中的空白處應填______。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.下列說法中不正確的是()。
A.指針是一個變量B.指針中存放的是數(shù)值C.指針可以進行加、減等算術運算D.指針變量占用存儲空間
51.下面程序段的運行結果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
52.下列程序的輸出結果是()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.程序設計方法學的影響B(tài).軟件產業(yè)化的需要C.軟件危機的出現(xiàn)D.計算機的發(fā)展
54.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
55.下列選項中正確的語句是
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
56.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。
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í)行后的輸出結果是()。
A.6B.7C.8D.9
58.以下程序輸出結果是#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.以下程序的輸出結果是______。#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.結構化程序設計的3種結構是()。
A.順序結構、選擇結構、轉移結構
B.分支結構、等價結構、循環(huán)結構
C.多分支結構、賦值結構、等價結構
D.順序結構、選擇結構、循環(huán)結構
62.
63.有以下程序
#include<stdio.h>
voidfun(char**p)
{p=p+2;
printf("%s\n",*p);
}
main()
{char*a[]={"Morning","Afternoon","Evening","Night"};
fun(a);
}
程序的運行結果是
A.rning
B.afternoon
C.ternoon
D.Evening
64.
65.C語言中用于結構化程序設計的三種基本結構是A.順序結構、選擇結構、循環(huán)結構
B.if、switch、break
C.for、while、do-while
D.if、for、continue
66.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。
A.提高耦合性降低內聚性有利于提高模塊的獨立性
B.降低耦合性提高內聚性有利于提高模塊的獨立性
C.耦合性是指-個模塊內部各個元素間彼此結合的緊密程度
D.內聚性是指模塊間互相連接的緊密程度
67.有以下程序:
程序運行后的輸出結果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
68.設有以下函數(shù):
voidfun(intn,char}s){……}
則下面對函數(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í)行后的輸出結果是()。
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í)行后的結果為()。
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,a.b,a.c);}
voidf(structAt)
{t.a=1002;strcpy(t.b,"ChangRon9");t.c=1202.0;}
程序運行后的輸出結果是()。
A.1001,ZhangDa,1098.0
B.1002,ChangRong,1202.0
C.1001,ChangRong,1098.0
D.1002,ZhangDa,1202.0
74.
75.定義如下變量和數(shù)組:
則下面語句的輸出結果是()。
A.951B.741C.753D.963
76.以下不合法的字符常量是()。
A."、、"B.’\”’C.’\018’D.\xcc"
77.作為信息處理熱點技術之一的“多媒體技術”中的媒體,強調的是()。
A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
78.
79.以下選項中,合法的一組c語言數(shù)值常量是()。
A.12.0Xa234.5e0
B.028.5e…30xf
C.1774el.50abe
D.0x8A10,0003.e5
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main)函數(shù),不得增行或刪行,也不得,t更改程序的結構。
試題程序:
六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:使字符串中前部的*號不得多余m個;若多余m個,則刪除多余的*號;若少于或等于m個,則什么也不做,字符串中間和尾部的*號不刪除。例如,字符串中的內容為****A*BC*DEF*G****,若m的值為2,刪除后,字符串中的內容則應當是**A*BC*DEF*G****;若m的值為4,則字符串中的內容仍為****A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫函數(shù)時,不得使用c語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A
2.B
3.A
4.B
5.D
6.A
7.D邏輯或運算中只要有一個運算量為真,結果就為真。當“c>=2&&c<=6”條件不成立時,c的值肯定不是2、3、4、5、6,“c!=3”與“c!=5”均成立,所以D選項的結果一定為真。故本題答案為D選項。
8.B【答案】:B
【知識點】:軟件生命周期
【解析】:一個軟件產品或軟件系統(tǒng)要經歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟件生命周期。它把整個軟件生存周期劃分為若干階段,使得每個階段有明確的任務,使規(guī)模大,結構復雜和管理復雜的軟件開發(fā)變的容易控制和管理。通常,軟件生存周期包括可行性分析與開發(fā)項計劃、需求分析、設計(概要設計和詳細設計)、編碼、測試、維護等活動,可以將這些活動以適當?shù)姆绞椒峙涞讲煌碾A段去完成。故選B。
9.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結束符\0的長度。故選A。
10.Belse總是和最近的if配對。進入第1個if語句進行條件判斷時,因為是選輯與操作,需要兩邊運算對象的值均為非零值才為真,所以需要逐個執(zhí)行判斷。結果為1,進入第2個if語句進行條件判斷。因為“b!=2”條件成立,所以整個條件表達式的值為真,不再執(zhí)行邏輯或的第2個運算對象“(c--!=3)”變量c的值不變,也不再執(zhí)行第1個else語句。輸出a的值1,b的值3,c的值3。故本題答案為B選項。
11.C當循環(huán)結束時,w的值應為-1,而其他選項中w的值為0,故選擇c選項。
12.AC語言中,字符指針變量可以直接使用字符串賦值,而字符數(shù)組不能直接使用字符串或字符數(shù)組賦值,選項B、C、D錯誤,選項A正確。故本題答案為A選項。
13.A\nA?!窘馕觥款^結點不僅標識了表中首結點的位置,而且根據單鏈表(包含頭結點)的結構,只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結點的目的是為了便于運算的實現(xiàn)。
\n
14.BB【解析】1966年Boehm和JaCopini證明了程序設計語言僅僅使用順序、選擇和重復三種基本控制結構就足以表達出各種其他形式結構的程序設計方法。
15.B通過—維數(shù)組名或指向維數(shù)組元素的指針來引用數(shù)組元素有兩種寫法:a[i]和*(a+i),它們是等價的。這是一種運算符之間的等價轉換,就好像a-(b-C)等價于a-b+c一樣。知道了這種轉換,我們可以將之擴展到二維數(shù)組甚至任意維數(shù)組上來。因為[]運算符的結合性是從左至右的,所以w[i][j]等價于(w[i][j],此時可以先將任意一個[]運算符轉換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時轉換:*(*(w+i)+j)。上述幾種形式都完全等價于w[i][j]。選項A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項B小,因為[]運算符的優(yōu)先級高于*運算符,所以*(w+1)[4]等價于*((w+1)[4]等價于*(*((w+1)+4)),即*(*(w+5)+0),它等價于w[5][0],很明顯它超過數(shù)組的范圍了,故不正確。選項C等價于w[1][0],是下確的。選項D中,&w[0][0]是數(shù)組w第1個元素的地址,它等價于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個數(shù),然后再除以這個數(shù)一樣。所以,&w[0][0]等價于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價于w[0][1],這個也是合法的。綜上所述,本題應該選擇B。
16.D本程序主要考查遞歸函數(shù)。fun(7),首先將參數(shù)代入函數(shù),因為(7/2)>1,所以執(zhí)行f(3),依此類推直到f(1.5),(1.5/2)<1,所以執(zhí)行打印函數(shù),此時X值為3,然后退出f(1.5),返回f(3),打印x值即7。所以選D。
17.B本題主要考查結構指針:P=&data,訪問結構體的成員。它可以通過結構變量訪問,即data,可以用等價的指針形式:(*p).a和P->a來訪問結構體變量中的成員。
18.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串中的第一個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
19.C
20.B解析:因為a<b成立,所以條件表達式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因為k=2>c=3不成立,所以條件表達式k>c?c:k的值等于k的值等于2。把條件表達式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項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中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關系。
22.8888解析:C語言規(guī)定,以0開頭的整型常量為八進制。另外,在primf()函數(shù)中,%X表示以十六進制無符號形式輸出一個整數(shù),且十六進制中的ABCDEF為大寫字母。本題的輸出應該是八進制210的十六進制形式。將八進制轉換為十六進制,可以先將其轉換為二進制。因為1位八進制表示3位二進制,4位二進制表示1位十六進制。(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)轉化為while循環(huán),循環(huán)體執(zhí)行的內容應該是一致的,不同的是do…while結構是先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否滿足,而while循環(huán)則是先判斷循環(huán)條件是否滿足,滿足則執(zhí)行循環(huán)體。所以do…while循環(huán)結構若想轉換為while循環(huán)結構,必須在do…while循環(huán)之前先對循環(huán)條件進行一個判斷,即此題中的if(head!=NULL)。注意:3種循環(huán)結構的比較。
24.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。
25.n+1n+1解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為0的結點多一個。
26.1212解析:本題的第—個for循環(huán)用于始數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結果為12。
27.錯誤錯誤解析:線索二叉樹是利用二叉鏈表存儲結構中的空鏈域來存放其前趨或后繼。由于二叉樹度為2的非終端結點無空鏈域,因此它沒有空鏈域用來存放前趨和后繼。
28.1313解析:函數(shù)fun是一個遞歸函數(shù)。執(zhí)行fun(3);,x=3,x/2=1>0,又調用f(1),此時,x=1,x/2=0,不滿足繼續(xù)遞歸調用的條件,輸出1,返回到fun(3)中,輸出3。所以本題的輸出結果為13。
29.30253025解析:本題考核的知識點是變量的存儲屬性和算術運算的應用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結束;靜態(tài)變量的存儲空間在程序的整個運行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進行的,auto是自動變量的存儲類別標識符,如果省略auto,系統(tǒng)隱含認為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術運算中a+=b++相當于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。
30.*t*t解析:通過while循環(huán)掃描字符串,遇到字符‘\\0’結束,并用t統(tǒng)計字符串的長度。
31.軟件開發(fā)
32.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運用函數(shù)c=getchar()從標準輸入設備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。
33.*(p+5)或p[5]*(p+5)或p[5]
34.繼承繼承
35.00解析:對于一個unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實際為0。
36.概念設計階段(數(shù)據庫概念設計階段)概念設計階段(數(shù)據庫概念設計階段)
37.數(shù)據存儲數(shù)據存儲
38.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進行比較。如果s1<s2,則返回負數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。
39.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。
40.中序中序解析:二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根
41.D解析:對于定義int*p,*q;,可以通過賦值語句p=q;,把指針變量q中的地址值賦給指針變量p,從而使這兩個指針變量指向同一地址。
42.C解析:本題考查的知識點是賦值語句的基本知識。在表達式的運算中,雙目賦值運算符的格式為“變量二表達式”,單目運算符一般形式為“運算符表達式”或“表達式運算符”。常量和表達式是不能被賦值的。選項A為復合表達式,首先計算(i=2,++i)的值,然后賦值給n,故選項A正確;選項B為簡單自加運算,故選項B正確;選項C在表達式++(i+1);中,(i+1)不是變量,該表達式的值為常量,而在++運算中,其運算對象必須為變量,故選項C錯誤;選項D中為復合賦值表達式,正確.所以應當選擇C。
43.C
44.B解析:函數(shù)gets()的調用形式為gets(str_adr);str_adr是存放字符串的起始地址??梢允亲址麛?shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。換行符讀入后,不作為字符串的內容。本題中定義一個長度為10的字符數(shù)組,和一個指針變量b,并且通過賦值讓它指向數(shù)組a。gets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址。
45.D解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂?shù)脑?,即剛剛被插入的元素,所以棧也被稱為“先進后出”表或“后進先出”表。
46.C解析:軟件調試技術包括強行排錯法、回溯法和原因排除法。邊界值分析、錯誤推斷都是黑盒測試的方法。
47.B解析:選項A)中,定義的初值個數(shù)大于數(shù)組的長度;選項C)中,數(shù)組名后少了中括號;選項D)中,整型數(shù)組不能賦予字符串。
48.D解析:在單向鏈表中,由于每個結點需要存儲下一個結點的地址,且下一個結點的數(shù)據類型與前一個結點的數(shù)據類型完全相同,故應為structlink*next。
49.D解析:在for循環(huán)中用fpfinff(fp,'%d',i);將循環(huán)變量的值1~5輸出到fp指向的文件data.dat中,輸出3個數(shù)后換行。執(zhí)行rewind(fP)使文件指針重新返回到文件的開頭,再執(zhí)行fscanf(fp,'%d%d',&k,&n)將磁盤文件中的前兩個數(shù)輸入給變量k,n,并將其輸出到屏幕上。
50.B解析:指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是—個存儲單元,而不是一個字節(jié)。
51.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。
strcpy的調用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復制到目的地址字符串的后面。
strlen的調用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數(shù)。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。
52.A
53.C解析:軟件工程的基本概念。軟件工程概念的出現(xiàn)源自于軟件危機。為了消除軟件危機,通過認真研究解決軟件危機的方法,認識到軟件工程是使計算機軟件走向工程科學的途徑,逐步形成了軟件工程的概念。
54.CC?!窘馕觥繉€性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。
55.D解析:本題考核的知識點是字符欺組初始化及字符型指針的應用。字符數(shù)組初始化可以有兩種方式:方式一,按單個字符的方式賦初值。方式二,把一個字符串作為初值賦給字符數(shù)組。比如:charch[5]=rabc”),選項A屬于這種情況,但是選項A定義的字符數(shù)組長度為8,由于最后還要加一個“\\0”做結束標志,所以賦給他的字符串長度應小于等于7,所以選項A不正確;在給字符數(shù)組賦初值的時候,應該用花括號“{”和“}”將字符串括起來,故選項C不正確。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時就給其賦初值,比如:char*p='student';二是給指針變量賦值,比如:p='student';(p已經被定義為字符型指針變量;),故選項D正確,而選項C中的花括號是多余的,應該去掉,所以,4個選項中選項D符合題意。
56.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據前序遍歷的結果可知,a是根結點。由中序遍歷的結果dgbaechf可知,d、g、b是左子樹的結點,e、c、h、f是右子樹的結點。再由前序遍歷的結果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結果dgb可知,d、g是b左邊子樹的結點,b右邊子樹無結點。再由前序遍歷結果dg可知,d為b左子樹的根,g是以d為根的子樹的右結點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結點位置。所以可知后序遍歷的結果是D。
57.C解析:函數(shù)fun(intx,inty)的功能是返回兩個整型數(shù)據的和。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達式“a++,b++,a+b”的值等于5,表達式c++的值為3,調用子函數(shù)的表達式為“fun(5,3);”,其返回值等8。所以變量sum的值等于8。
58.B解析:break語句只能在循環(huán)體和switch語句體內使用。本題程序為在while循環(huán)中嵌套for循環(huán)。先看內層for循環(huán),該循環(huán)的3個表達式全部省略,循環(huán)條件始終為真,但循環(huán)體內的break語句為終止循環(huán)的條件。首先,由初始條件判斷外層循壞while括號內表達式的值,該值為真,執(zhí)行本次while循環(huán),即執(zhí)行循環(huán)體內的訂語句,判斷該表達式后面括號里表達式的值為真,執(zhí)行break語句,跳出內層循環(huán),執(zhí)行下面的語句,此時i和a的值均變?yōu)?1;回到外層循環(huán),判斷表達式“i<20”仍為真,執(zhí)行內層循環(huán)語句,此時if條件不滿足,執(zhí)行else語句,i的值為10,繼續(xù)內層循環(huán),if語句條件滿足,執(zhí)行break語句,跳出內層循環(huán),執(zhí)行下面的語句后,i和a的值分別是21和32。再判斷外層循環(huán)的條件為假,結束循環(huán).所以,4個選項中B為所選。
59.A解析:本題考查默認函數(shù)的函數(shù)值的類型。在函數(shù)調用時,盡管y的類型是float,x的類型是double,但是因為函數(shù)定義時省去類型說明,系統(tǒng)默認函數(shù)值的類型為int型,所以計算后的y的類型是int型。
60.B解析:在表達式的值作為邏輯值時,非0值一律為1,0值才為0。
61.D結構化程序設計的基本要點:①采用自頂向下、逐步求精的程序設計方法;②任何程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京混凝土合同范本
- 各種合同范本app
- 廚房墻壁維修合同范本
- 種植水稻農村土地出租合同范本
- 醫(yī)院租賃合同范本
- 發(fā)廊給干股 合同范本
- 買賣合同范本 中日
- 沖擊鉆合同范本
- 古董繼承合同范例
- 單位之間贈與合同范例
- 2024年OTC焊接機器人基本操作培訓
- 參考消息電子版在線閱讀(角度區(qū))
- 小學五年級《美術》上冊知識點匯總
- 2024年湖南高速鐵路職業(yè)技術學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 2016-2023年湖南鐵路科技職業(yè)技術學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 2023南頭古城項目簡介招商手冊
- 機修知識培訓教材課件
- 跨云平臺的DevOps集成
- 小學綜合實踐活動《察探究活動跟著節(jié)氣去探究》課教案
- 高空作業(yè)事故安全經驗分享
- 勞動用工協(xié)議書范本正規(guī)范本(通用版)1
評論
0/150
提交評論