版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2021-2022年河北省張家口市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.設棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。
A.e1、e2、e3、e4、e5
B.e5、e4、e3、e2、e1
C.e2、e4、e3、e5、e1
D.e3、e4、e1、e2、e5
2.
3.
4.字符串"\\"ABCDEF\"\\”的長度是()。
A.11B.10C.5D.3
5.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序執(zhí)行后的輸出結(jié)果是()。A.7B.3C.2D.0
6.在執(zhí)行()操作時,需要使用隊列做輔助存儲空間。
A.查找哈希(Hash)表B.深度優(yōu)先搜索網(wǎng)C.前序(根)遍歷二叉樹D.廣度優(yōu)先搜索網(wǎng)
7.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序運行后的輸出結(jié)果是()。
A.0B.4C.6D.7
8.
9.以下不能定義為用戶標識符的是()。
A.scanfB.VoidC.3comD.int
10.以下敘述正確的是()。
A.“charc1,*c2,*c3[10];”是合法的變量定義語句
B.數(shù)組說明符的方括號中不能使用表達式
C.數(shù)組元素下標可以是非整數(shù)
D.若有定義“chararray[4];”,則語句“printf(“%c”,array[“3”]);”是合法的
11.棧通常采用的兩種存儲結(jié)構(gòu)是A.A.線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)
B.散列方式和索引方式
C.鏈表存儲結(jié)構(gòu)和數(shù)組
D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
12.對包含N個元素的散列表進行檢索,平均檢索長度________
A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是
13.下列對隊列的敘述正確的是A.隊列屬于非線性表B.隊列按“先進后出”原則組織數(shù)據(jù)C.隊列在隊尾刪除數(shù)據(jù)D.隊列按“先進先出”原則組織數(shù)據(jù)
14.設x和y均為int型變量,且x=10,y=3,則以下語句的輸出結(jié)果是()printf("%d,%d\n",x--,--y);
A.10,3B.9,3C.9,2D.10,2
15.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL
16.下列關于c語言用戶標識符的敘述中正確的是()。
A.用戶標識符中可以出現(xiàn)下劃線和中劃線(減號)
B.用戶標識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線
C.用戶標識符中可以出現(xiàn)下劃線,但不可以放在用戶標識符的開頭
D.用戶標識符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標識符的開頭
17.下列關于字符串的說法中錯誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標志
B.'\0'作為標志占用存儲空間,計入串的實際長度
C.在表示字符串常量的時候不需要人為在其末尾加入'\0'
D.在C語言中,字符串常量隱含處理成以'\0'結(jié)尾
18.已有定義int(*q)(),指針q可以()。
A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
19.若有運算符:>、*=、<<、%、sizeof,則它們按優(yōu)先級(由低至高)的正確排列次序為()。
A.*=<<>%sizeof
B.<<*=>%sizeof
C.%=><<sizeof%
D.*=><<%sizeof
20.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結(jié)果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5
二、2.填空題(20題)21.下面程序的運行結(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--;}}
22.以下程序運行后的輸出結(jié)果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
23.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
24.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。
25.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
26.下列程序執(zhí)行輸出的結(jié)果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(A);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
27.下列程序的運行結(jié)果為【】。
main()
{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("maxvalueis%d\n",maxvalue(3,4,a));
}
maxvalue(m,n,array)
intm,n,array[][4];
{inti,j,max;
max=array[0][0];
for(i=0;i<m;i++)
for(i=0;i<n;j++)
if(max<array[i][j])max=array[i][j];
return(max);
}
28.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
[14]=a;q->next=p;[15]=p;scanf("%d",&a);}
p->next='\0';return(ph);}
main()
{stuctlist*head;head=creatlist();}
29.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內(nèi)存空間中,形成一個新字符串s。
請?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(strl,str2);
printf("%s\n",strl);
}
30.以下sum函數(shù)的功能是計算下列級數(shù)之和。請給函數(shù)中的各變量正確賦初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
31.若a是int型變量,則表達式(a=2*3,a*2),a+6的值為______。
32.某二義樹中度為2的結(jié)點有18個,則該二叉樹中有______個葉子結(jié)點。
33.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
34.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。
35.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整型數(shù)據(jù),成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。
structnode
}intinfo;
【】link;
};
36.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
37.以下程序運行后的輸出結(jié)果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
38.以下程序的輸出結(jié)果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
39.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。
40.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細設計屬于______中的一個階段。
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
42.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d,",*(p++));printf("%d",**q);}
A.2,2B.1,1C.3,4D.1,2
43.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示
44.若有定義inta[10],*p=a,則p+6表示()。
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
45.以下程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}
A.8B.3C.1D.7
46.關于結(jié)構(gòu)化程序設計原則和方法描述錯誤的是()。
A.選用的結(jié)構(gòu)只準許有一個入口和一個出口
B.復雜結(jié)構(gòu)應該用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)
C.不允許使用GOTO語句
D.語言中所沒有的控制結(jié)構(gòu),應該采用前后一致的方法來模擬
47.設變量已正確定義并賦值,以下正確的表達式是()。
A.x=y*5=x+z
B.int(15.8%5.
C.x=y+z+5,++y
D.x=25%5.0
48.以下敘述中正確的是______。
A.C語言比其他語言高級
B.C語言可以不用編譯就能被計算機識別執(zhí)行
C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式
D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點
49.下面程序的輸出結(jié)果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}
A.6B.7C.3D.5
50.設有如下的程序段:inta[]=(1,2,3,4,5),*t;t=a;則下列說法正確的是()
A.a和t的內(nèi)容相同B.a數(shù)組的長度和t所指的字符串長度相等C.a和t完全相同D.指針變量t指向數(shù)組a的第一個元素
51.已知a=15,執(zhí)行fprintf(fp,"%d",a)后,寫入fp指向的文件的是______。
A.15B.1111C.63D.1111
52.
(3)
A.p->nextB.pC.sD.s>next
53.下列程序執(zhí)行后的輸出結(jié)果是()。voidfuncl(inti);voidfunc2(inti);charst[]="hello,friend!";voidfuncl(inti){printf("%C",st[i]);if(i<3){i+=2;func2(i);)}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){inti=0;funcl(i);printf("\n");)
A.hlmB.hloC.helloD.he1
54.若有定義inta[9],*p=a;則p+5表示
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
55.有下列二叉樹,
對此二叉樹前序遍歷的結(jié)果為()。
A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI
56.下面不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
57.有以下程序
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的運行結(jié)果是
A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1
58.若有下面的說明和定義,則sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charul[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
59.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,可實現(xiàn)數(shù)據(jù)共享的是()
A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.系統(tǒng)管理階段
60.在執(zhí)行完下列的C語句段之后,則B的值是()。Chara="A";intb;B=((34&&56)&&(a<'b'));
A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯
四、選擇題(20題)61.
有以下程序:
main
{inti,n=0:
for(i=2;i<5;i++)
{do
{if(i%3)continue:
n++:
}while(!i);
n++:
}
printf("n=%d\n",n);
}
程序執(zhí)行后輸出結(jié)果是()。
A.n=5B.n=2C.n=3D.n=4
62.結(jié)構(gòu)化程序設計所規(guī)定的三種基本控制結(jié)構(gòu)是()。
A.for、while、switchB.輸入、輸出、處理C.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)D.主程序、子程序、函數(shù)
63.
64.
65.
66.設有定義:
67.
68.執(zhí)行下列程序時輸入:123<空格>456<空格>789<回車>輸出結(jié)果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
69.若有條件表達式
則以下表達式中能完全等價于表達式(exp.的是()。
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
70.以下關于結(jié)構(gòu)化程序設計的敘述中正確的是()。
A.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B.結(jié)構(gòu)化程序使用goto語句會很便捷
C.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
71.在數(shù)據(jù)庫管理系統(tǒng)DBMS中,用來定義內(nèi)模式和外模式等一些數(shù)據(jù)庫管理系統(tǒng)中其他結(jié)構(gòu)的語言為
A.CB.BasicC.DDLD.DML
72.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}
A.11B.12C.13D.15
73.以下程序運行后,輸出結(jié)果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
74.設有如下定義:int(*ptr);則以下敘述中正確的是()。
A.ptr是指向一維組數(shù)的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針
75.if語句的基本形式是:if(表達式)語句,以下關于“表=迭式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
76.
77.
78.有以下程序
79.下列程序的運行結(jié)果是()。
#include<stdio.h>
voidfun(int*S,int*p)
{staticintt=3:
*p=s[t];
t--;
}
voidmain
{inta[]={2,3,4,5),k;
intx;
for(k=0,k<4,k++)
{fun(a,&x);
printf("%d,",x);
}
}A.A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5
80.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結(jié)果是A.A.0X0
B.0x0
C.0
D.0xABC
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的作用是:將字符串tt中的大寫字母都改為對應的小寫字母,其他字符不變。
例如,若輸入“I,anl,A,Student”,則輸出“i,am,a,student”。
請修改程序中的錯誤。使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設計題(1題)82.函數(shù)fun的功能是:將s所指字符串中下標為偶數(shù)同時ASCIl值為奇數(shù)的字符刪除,S所指串中剩余的字符形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFGl2345”,其中字符C的ASCIl碼值為奇數(shù),在數(shù)組中的下標為偶數(shù),因此必須刪除;而字符l的ASCIl碼值為奇數(shù),在數(shù)組中的下標為奇數(shù),因此不應當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應是“BDFl2345”。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.D解析:棧是僅在表頭和表尾進行插入和刪除元素操作的線性表,其特點是“先進后出”。本題中,進棧的過程中可以出棧。選項D中,如果第一個出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因為e1先入棧,故e1應在e2后出棧,所以選項D是不可能的出棧順序。
2.D
3.D
4.B解析:本題涉及字符串的兩個最基本的概念。①字符串的長度是指字符串中字符的個數(shù),但不包含字符串結(jié)束符;②以反斜線“\\”開頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個長度。
5.C在函數(shù)funlintx)中,有個if語句判斷,如果參數(shù)x等于0或1時,返回值,否則進入下面的p=x-fun(x-2)遞歸函數(shù)。當在主函勢中調(diào)用fun(7)時,其過程為:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的輸出結(jié)果為2。
6.D
7.D解析:在程序中,當L的值為5和4時,case都沒有與其匹配的值,所以執(zhí)行default語句;當k=3時,執(zhí)行n+=k;得n=3;當L=2時,執(zhí)行case2:然后順序執(zhí)行case3:n+=k;得n=5;當k=1時,執(zhí)行case1:n+=k;得n=6,然后順序執(zhí)行case2:和case3:n+=k;使得n=7。
8.B
9.D解析:標識符是C語言中用來表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構(gòu)名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語句標號等用途的字符序列。標識符由1~32個字符組成,第一個字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標識符不能與C關鍵字相同,并區(qū)分大小寫。選項D)錯誤,因為int是C語言中的關鍵字。
10.AC語言規(guī)定定義數(shù)組時,數(shù)組的長度必須是整型常量,數(shù)組說明符的方括號中表達式只要是常量即合法,因此選項B錯誤。C語言規(guī)定,數(shù)組元素下標必須是非負整數(shù),因此選項C錯誤。選項D中,“chararray[4]”數(shù)組的長度為4,“army[“3”]”中“3”是常量字符串,與C語言規(guī)定數(shù)組的下標必須是非負整數(shù)不符。故本題答案為A選項。
11.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結(jié)構(gòu)中的應用。
12.C
13.D解析:本題考查數(shù)據(jù)結(jié)構(gòu)中隊列的基本知識。隊列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊列具有先進先出的特性。在隊列中,允許插入元素的一端叫做隊尾,允許刪除的一端則稱為隊頭。這與日常生活中的排隊是一致的,最早進入隊列的人最早離開,新來的人總是加入到隊尾。因此,本題中只有選項D的說法是正確的。
14.D
15.D當k=1時,引用的是二維數(shù)組元素w[1][1],值為字符串“FGH”;當k=2時,引用的是數(shù)組元素w[2][2],即字符串“KL”;當k=3時,結(jié)束程序的執(zhí)行。注意:字符串數(shù)組的定義。
16.B解析:在C語言中,合法的標識符由字母,數(shù)字和下劃線組成(故選項A不正確),并且第一個字符必須為字母或者下劃線(故選項B和選項D不正確).所以,B選項為所選.
17.B解析:'\\0'作為標志占用存儲空間,但是不計入串的實際長度。當給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。
18.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。
19.D解析:本題主要考查算術(shù)運算的優(yōu)先級。順序如下:
[*]
注:*=、>、<<、%、sizeof的優(yōu)先級依次遞增。
20.Da、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。
21.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運算等,某字符的大寫字母的ASCII碼值比它對應的小寫字母ASCII碼值小32。
22.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:
類型說明符*指針變量名;
23.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務。
24.棧棧解析:棧和隊列都是—種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進行插入或刪除操作,是—種“先進后出”的線性表;而隊列只允許在表的—端進行插入操作,在另—端進行刪除操作,是—種“先進先出”的線性表。
25.驅(qū)動模塊驅(qū)動模塊解析:在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。
26.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。
27.maxvalueis34
28.p->dataqp->data\r\nq解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。
29.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個字符型數(shù)組strl和str2,并且給str2賦初值“abc&fgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后指針s和指針t都下移到下一個元素。所以空格處應該填*t++或*(t++)。
30.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或給abs賦1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或給a,b,s賦1或1.0或1.解析:sum函數(shù)的功能是求表達式s的級數(shù)之和,該函數(shù)的大致思路是:在該函數(shù)中,定義了—個整型變量i用作循環(huán)計數(shù)器,定義一個變量a用來表示各個子項的分子,初始為第一個子項的分子,故為1,定義了一個變量b用來表示各個子項大分母,初始為第一個子項的分母,故為1,定義一個變量s存放累加和,初始為第一個子項的值即為1,然后給各個定義的變量初始化,然后通過一個for循環(huán)將題目中的數(shù)學表達式的各個子項求出來并累加到s中,所以說,在該題的空格處應該填寫將a、b和s賦初值的語句,即為a=1;b=1;s=1:(說明:語句的順序可任意)或a=b=s=1;(說明:變量的順序可任意)或a=1,b=1,s=1(說明:賦值表達式的順序可任意)給a,b,s賦1或1.0或1都可以。
31.1212解析:本題考查逗號表達式的運算規(guī)則。逗號表達式的基本格式為:“表達式1,表達式2,…”,其整個表達式的結(jié)果取最后一個子表達式的值。本題中首先計算逗號表達式中的第1個表達式a=2*3=6,然后計算第2個表達式a*2,這時整個表達式的值為12,但要注意,因為第2個表達式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達式a+6=12,所以整個表達式最后的值為12。
32.1919解析:二叉樹具有如下性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。根據(jù)題意,度為2的節(jié)點為18個,那么,葉子結(jié)點就應當是19個。
33.數(shù)據(jù)存儲數(shù)據(jù)存儲
34.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
35.struetnode*struetnode*解析:本題中的結(jié)構(gòu)類型名為struetnode,所以空白處應填:structnode*,即定義一個指向自身的結(jié)構(gòu)體指針。
36.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。
37.8181解析:本題的宏調(diào)用S(i+j)將被替換成表達式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本題輸出81。
38.2222解析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個成員進行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結(jié)構(gòu),將b[6],b[7]...b[9]的值相加,結(jié)果為22。
39.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進行比較。如果s1<s2,則返回負數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。
40.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設計、詳細設計、編碼和測試)、軟件維護期(即運行維護階段)。
41.A解析:本題考查的是getchar()函數(shù)。getchar()函數(shù)執(zhí)行時將從鍵盤緩沖區(qū)中讀取用戶的輸入,而不管輸入的是否可打印字符,所以當輸入a<回車>后,鍵盤緩沖區(qū)被輸入的實際上是兩個字符:'a'和'\\n'。故選項A的說法是正確的。
42.D解析:題干中,*(p++)就是數(shù)組元素a[0],輸出a[0],之后指針p的值加1,**q即是數(shù)組元素a[1]。
43.D數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的數(shù)學關系。存儲結(jié)構(gòu)則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關系;在線性表的鏈式存儲中是通過指針域構(gòu)成的邏輯鏈條來表達數(shù)據(jù)的前后件關系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對應的物理實現(xiàn),即數(shù)據(jù)的存儲結(jié)構(gòu)不止一種。因此選項D正確。
44.C解析:指針中存放的是變量的地址,指針也可以進行加減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中p+6指的是將指針向后移動了6個存儲單元,指向a[6],存放的是a[6]的地址。
45.D解析:strcpy()函數(shù)的作用是把第二個參數(shù)代表的字符串,復制到第一個參數(shù)指向數(shù)組中。首先定義了兩個字符數(shù)組b1和b2,并用一個字符串給b1賦初值,然后定義了一個字符型指針變量pb,通過賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strcpy(b2,pb);”后,b2中的內(nèi)容為“cdefg”;第二次判斷條件“--pb>=b”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“bcdefg”第三次判斷條件“--pb>:b1”使pb的值為“b1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長度,顯然是7。(這里還有一個關鍵點:就是每當執(zhí)行一次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,使得指針pb自減1,即前移一位)。
46.C解析:限制使用GOTO語句是結(jié)構(gòu)化程序設計的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項為結(jié)構(gòu)化程序設計的原則。
47.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達式。在選項A)中賦值表達式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達式,所以正確答案為C)。
48.C解析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機識別的二進制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)在1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。
49.B解析:指針變量p指向數(shù)組a的第5個元素,p[3]在原指向基礎上移3個單位,指針變量p將指向第8個元素(下標為7的元素),值為7。
50.D
51.C解析:使用fprintf()函數(shù)時,函數(shù)向文件輸出的是ASCⅡ碼,特別在輸出數(shù)值時,輸出的是該數(shù)值的ASCⅡ碼,而不是數(shù)值本身。
52.B解析:主函數(shù)中,定義了一個結(jié)構(gòu)體型指針變量head,然后將函數(shù)CreatList()的返回值賦給指針變量head,從這里可知函數(shù)CreatList()的返回值為structnode*類型,所以第48處的空格處應該填structnode*,故48題選項C正確;在函數(shù)CreatList()中首先定義三個結(jié)構(gòu)體型指針變量b,p和q。然后調(diào)用malloc()函數(shù)分配了一個結(jié)點空間,并讓指針h指向它,開始指針p、q和h都指向它,然后調(diào)用一個while循環(huán)語句,當?shù)竭_字符串數(shù)組s的末尾結(jié)束循環(huán),在每次循環(huán)中,分配一個結(jié)點空間,并讓p指向它,然后讓該結(jié)點的data域的值等于字符串指針s所指的值,故49處的空格處應填*s,因此第49題的正確的答案為選項A;接下來讓指針q所指結(jié)點的指針城指向結(jié)點p,然后讓指針q指向該指針的所指結(jié)點的下一個結(jié)點即p,所以第50個空格處應該填p,因此第50題應該選擇B。所以48題4個選項中選項C符合題意:第49題4個選項中選項A符合題意;第50題4個選項中選項B符合題意。
53.B解析:本題定義了兩個很相似的子函數(shù)互相調(diào)用,子函數(shù)首先輸出st[i],然后判斷i是否小于3,是的話就讓i增2后調(diào)用另一個子函數(shù)。在主函數(shù)中只調(diào)用了一次funcl(0),funcl()輸出st[0],然后調(diào)用func2(2),func2()輸出st[2],又調(diào)用func1(4),此時i不小于3,所以funcl()只輸出st[4]就返回了。故最終輸結(jié)果為h1o,正確答案為B。
54.B解析:本題考查了通過指針來引用一維數(shù)組元素的方法。題中*p=a;這一賦值語句是指針p指向了數(shù)組a的首地址,p+5是指針p向后移動了5個int類型的存儲單元,所以p+5指向了數(shù)組元素a[5]。
55.C解析:對二叉樹的前序遍歷是指先訪問根結(jié)點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左、右子樹。
56.D解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
57.D解析:本題考查switch語句,首先,x=1符合條件case1,執(zhí)行switch(y)語句,y=0符合case0語句,執(zhí)行a++并跳出switch(y)語句,此時a=1。因為case1語句后面沒有break語句,所以向后執(zhí)行case2語句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。
58.D解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。
59.C解析:本題考查了考生對數(shù)據(jù)庫基礎知識的記憶。數(shù)據(jù)庫技術(shù)的主要目的是有效地管理和存取數(shù)據(jù)資源,包括提供數(shù)據(jù)的共享性,使多個用戶能夠同時訪問數(shù)據(jù)庫中的數(shù)據(jù);減少數(shù)據(jù)的冗余度,以提交數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應用程序的獨立性,從而減少應用程序的開發(fā)和維護代價。數(shù)據(jù)庫的人工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲服務承攬合同三篇
- 管道行業(yè)安全管理工作心得
- 2025年全球及中國丙二醛行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國頭發(fā)護理用神經(jīng)酰胺行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國DHA微囊粉行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國三維足底掃描系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球電動跨式堆垛機行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國介孔二氧化硅微球行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國多相真空萃取機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球豆莢酒店行業(yè)調(diào)研及趨勢分析報告
- 2025年春季學期學校德育工作計劃安排表(完整版)
- 2025年有機肥行業(yè)發(fā)展趨勢分析報告
- 五年級口算題卡每天100題帶答案
- 2024年全國初中數(shù)學聯(lián)合競賽試題參考答案及評分標準
- Hadoop大數(shù)據(jù)開發(fā)實例教程高職PPT完整全套教學課件
- 企業(yè)中層管理人員測評問題
- 人教版高中地理必修一全冊測試題(16份含答案)
- 《民航服務溝通技巧》教案第11課孕婦旅客服務溝通
- 新東方四級詞匯-正序版
- 面向機器人柔順操作的力位精準控制方法研究共3篇
- 《地下工程測試技術(shù)》課程教學大綱
評論
0/150
提交評論