版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2022年江蘇省揚州市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.設有下列二叉樹:
對此二叉樹后序遍歷的結(jié)果為
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
2.棧和隊列的共同點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點
3.下面程序的輸出是()。A.17B.18C.23D.24
4.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][10]={“One”,“Three”,“Five”},*p=str[0];printf(“%s,”,p+10);printf(“%d\n”,strlen(p+=10));}程序運行后的輸出結(jié)果是()。
A.Three,4B.出錯C.Three,5D.Five,5
5.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。
A.7B.6C.8D.無確定值
6.以下不正確的定義語句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5.3]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
7.以下對于C語言的描述中,正確的是:()
A.C語言調(diào)用函數(shù)時,值傳遞方式只能將實參的值傳給形參,形參的值不能傳遞給實參
B.C語言中函數(shù)既可以嵌套定義,也可以遞歸調(diào)用
C.函數(shù)必須有返回值
D.C程序中有調(diào)用關系的所有函數(shù)必須放在同一源程序文件中
8.在非線性結(jié)構(gòu)中,每個結(jié)點()。
A.無直接前趨
B.只有一個直接前趨和個數(shù)不受限制的直接后繼
C.只有一個直接前驅(qū)和后繼
D.有個數(shù)不受限制的直接前驅(qū)和后繼
9.以下程序運行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
10.從未排序序列中依次取出元素與已排序序列中的元素作比較,將取出的元素放入已排序序列中的正確位置上,此方法稱為______。
A.歸并排序B.選擇排序C.交換排序D.插入排序
11.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,
B.數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫設計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎上建立數(shù)據(jù)庫
D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
12.以下函數(shù)的時間復雜度和空間復雜度為()A.T(n)=O(2^n),S(n)=O(n)
B.T(n)=O(1),S(n)=O(1)
C.T(n)=O(2^n),S(n)=O(1)
D.T(n)=O(n),S(n)=O(n)
13.一棵完全二叉樹中根結(jié)點的編號為1,而且23號結(jié)點有左孩子但沒有右孩子,則完全二叉樹總共有____個結(jié)點。
A.24B.45C.46D.47
14.檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。
A.確認測試B.集成測試C.驗證測試D.驗收測試
15.下面程序的運行結(jié)果是()。#include"stdio.h"main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elseprintf("#");}}
A.*#*#*B.#*#*#*C.*#*#D.#*#*
16.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0
17.下面的哪個保留字不能作為函數(shù)的返回類型()。
A.voidB.intC.newD.long
18.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序運行的結(jié)果是()。A.9B.61490C.61D.5
19.
20.
二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
22.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設計軟件,這就是軟件工程誕生的基礎。
23.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。
structnode
{intinfo;
【】link;};
24.耦合和內(nèi)聚是評價模塊獨立性的兩個主要標準,其中______反映了模塊內(nèi)各成分之間的聯(lián)系。
25.最簡單的交換排序方法是______。
26.數(shù)據(jù)模型是用來描述數(shù)據(jù)庫的結(jié)構(gòu)和語義的,數(shù)據(jù)模型有概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型兩類,E-R模型是【】
27.數(shù)據(jù)庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
28.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細設計屬于______中的一個階段。
29.在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
30.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
31.下列程序的運行結(jié)果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
32.以下程序是用遞歸方法求數(shù)組中的最大值及其下標值。請?zhí)羁铡?/p>
#defineM10
voidfindmax(int*a,intn,inti,int*pk)
{if(i<n)
{if(a[i]>a[*pk])【】;
findmax(a,n,i+1,&(*pk));}}
main()
{inta[M],j,n=0;
printf("\nEnter%ddata;\n",M);
for(i=0;i<M;i++)scanf("%d",a+i);
findmax(a,M,0,&n);
printf("Themaxinumis:%d\n",a[n]);
printf("It'sindexis;%d\n",n);}
33.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡t=(char*)【】;
34.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
35.當所有結(jié)點的權(quán)值都相等時,用這些結(jié)點構(gòu)造的二叉排序樹是【】。
36.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。
37.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>
main()
{intx[10],a[9],I;
for(I=0;I<10;I++)scanf("%d",&x[I]);
for(【】;I<10;I++)
a[I-1]=x[I]+【】;.
for(I=0;I<9;I++)printf("%d",a[I]);
printf("");
}
38.數(shù)據(jù)結(jié)構(gòu)分為線性數(shù)據(jù)結(jié)構(gòu)和非線性數(shù)據(jù)結(jié)構(gòu),帶鏈的隊列屬于()。
39.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
40.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。
三、1.選擇題(20題)41.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。
A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m
42.有以下程序:fun(intx){intp;if(x==0‖x=1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7);}執(zhí)行后的輸出結(jié)果是()。
A.7B.3C.2D.0
43.在下列關于C語言的局部變量和全局變量所采取的存儲類別的敘述中,錯誤的一條是()
A.對于動態(tài)局部變量來說,一旦離開函數(shù),其值就消失
B.對于靜態(tài)局部變量來說,離開函數(shù),其值仍保留
C.對于寄存器變量來說,一旦離開函數(shù),其值就消失
D.靜態(tài)外部變量既可在本文件中引用,又可在其他文件中引用
44.在軟件測試設計中,軟件測試的主要目的是()
A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.發(fā)現(xiàn)軟件錯誤而執(zhí)行程序
45.有以下程序:#include<stdio.h>main(){charc[6];inti=0;for(;i<6;c[i]=getchar(),i++);for(i=O;i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結(jié)果為_______。
A.aB.aC.abD.abcdefbbcccdddef
46.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4];
C.#defineN5
D.inta[2][9.5];floata[N][3];
47.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結(jié)果是()。
A.10011000B.10001100C.10101000D.10110000
48.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%d\n",(a+=a-=a*A));}
A.-6B.1C.2D.-12
49.下面程序的輸出結(jié)果是______。main(){unsigneda=32768;printf("a=%d\n",a);}
A.a=32768B.a=32767C.a=-32767D.a=-1
50.以下程序的輸出結(jié)果是()main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1,k<3;k++)printf("%s\n",w[k]);}
A.ABCDFGHKL
B.ABCEFGIJM
C.EFGJKO
D.EFGHIJKL
51.有以下程序#inclUde<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4
A.0987654321B.4321098765C.5678901234D.0987651234
52.下列字符串不屬于標識符的是()
A.sumB.averageC.day_nightD.M,D.JOHN
53.若已定義的函數(shù)有返回值,則以下關于該函數(shù)調(diào)用的敘述中錯誤的是A.函數(shù)調(diào)用可以作為獨立的語句存在
B.函數(shù)調(diào)用可以作為一個函數(shù)的實參
C.函數(shù)調(diào)用可以出現(xiàn)在表達式中
D.函數(shù)調(diào)用可以作為一個函數(shù)的形參
54.若變景均已正確定義井賦值,以下合法的C語言賦值語句是()
A.x=y==5;B.x=n%2.5;C.x+n=i;D.x=5=4+1;
55.有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,B);}程序運行后的輸出結(jié)果是()
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
56.已知有結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。
A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a
57.有以下程序;main(){chars[]={"aaiou"},*ps;ps=s;printf("%c\n",*ps+4);}程序運行后的輸出結(jié)果是()。
A.aB.eC.uD.元素s[4]的地址
58.以下程序的輸出結(jié)果是main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);;}
A.AAAAB.BBBC.BBBCCD.CC
59.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運行后的輸出結(jié)果是()。
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
60.當變量c的值不為2、4、6時,值也為"真"的表達式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
四、選擇題(20題)61.
62.兩個或兩個以上模塊之間關聯(lián)的緊密程度稱為()。
A.耦合度B.內(nèi)聚度C.復雜度D.數(shù)據(jù)傳輸特性
63.
64.設有定義語句int(*f)(int);,則以下敘述正確的是()。
A.f是基類型為int的指針變量
B.f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參
C.f是指向int類型一維數(shù)組的指針變量
D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址
65.
66.有以下定義和語句:
structworkers
{intnum;charname[20];charC;
struct
{intday;intmonth;intyear;)S;
};
structworkersw,*pw;
pw=&w;
能給w中year成員賦1980的語句是()。
A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
67.
68.下列是用戶自定義標識符的是()。
A._wlB.3_xyC.intD.LINE-3
69.軟件測試的目的是()。
A.評估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯誤C.改正程序中的錯誤D.發(fā)現(xiàn)程序中的錯誤
70.數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.加工B.控制流C.數(shù)據(jù)存儲D.數(shù)據(jù)流
71.有以下程序:
程序的運行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
72.若有定義inta[2][3];,則對a數(shù)組的第i行第j列(假設i,j已正確說明并賦值.元素值的正確引用為()。
A.*(*(a+i.+j.B.(a+i.[j]C.*(a+i+j.D.*(a+i.+j
73.
74.有以下程序該程序試圖通過指針p為變量rl讀人數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()。
75.有以下程序:
當運行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
76.以下程序的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,3,4,10,12,14,16,9,10,
C.1,2,6,8,10,12,7,8,9,10,
D.1,2,6,8,10,12,14,16,9,10,
77.某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:
該系統(tǒng)總體結(jié)構(gòu)圖的深度是()。
A.7B.6C.3D.2
78.以下敘述中錯誤的是()。A.C程序在運行過程中所有計算都以二進制方式進行
B.C程序在運行過程中所有計算都以十進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.C程序中整型變量只能存放整數(shù),實型變量只能存放浮點數(shù)
79.
80.軟件生命周期中所花費用最多的階段是()。
A.詳細設計B.軟件編碼C.軟件測試D.軟件維護
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求整數(shù)X的Y次方的低3位值。例如,整數(shù)6的5次方為7776,此值的低3位值為776。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應當是“ABCDEFG”。
注意:部分源程序給出如下。
請勿改動maini)函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(chara)
{
voidmain
{
chars[81];
print{("Enterastring:\n");
gets(s):
fun(S);
printf("Thestringafterdeleted:\n");
puts(s);
}
參考答案
1.D解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷,其遍歷順序應該為:后序遍歷左子樹->,后序遍歷右子樹->,訪問根結(jié)點。按照定義,后序遍歷序列是DEBFCA,故答案為D。
2.C解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的一端進行插入操作,而在另一端進行刪除操作。
3.B
4.Cmain函數(shù)定義一個二維字符數(shù)組str,它包含3個字符串,每個字符串存放在一個長度為10的一維數(shù)組中。指針變量P指向str[0],即第1個字符串“One”。由于“One”存放在長度為10的一維數(shù)組中,因此P+10指向下一個字符串“Three”,長度為5。故本題答案為C選項。
5.A解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1)[1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項為所選。
6.B
7.A
8.D
9.C
10.D
11.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關系,而不管其在計算機中的存儲方式。數(shù)據(jù)的存儲結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計算機存儲器里的實現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。
數(shù)據(jù)庫設計是在數(shù)據(jù)庫管理系統(tǒng)的支持下,按照應用的要求,設計一個結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫及其應用系統(tǒng)。數(shù)據(jù)庫設計包含兩方面的內(nèi)容:一是結(jié)構(gòu)設計,也就是設計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu);二是行為設計,即設計基于數(shù)據(jù)庫的各類應用程序、事務等。因此,選項C的說法是錯誤的。
數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還必須有其他相關軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡系統(tǒng)軟件的支持。因此,選項D的說法是正確的。因此,本題的正確答案是選項A。
12.A
13.C
14.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關的問題。集成測試可以發(fā)現(xiàn)概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設和網(wǎng)絡等其他因素結(jié)合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
15.A解析:分析程序呵知.程序循環(huán)5次,然后利用if語句決定每次循環(huán)時輸出的字符。當i為奇數(shù)時,i%2=1,if(i%2)為真,輸出“*”;當i為偶數(shù)時,i%2=0,if(i%2)為假,執(zhí)行else語句,輸出“#”,所以當i取1、3、5值時輸出“*”,當i取2、4值時輸出“#”。
16.D本題主要考查帶參數(shù)的宏定義,過程如下:由于定義為define(x)x*x沒有括號優(yōu)先級,所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
17.C
18.C在fun函數(shù)中,while循環(huán)的功能是逐個取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將這些數(shù)字組成一個數(shù)保存到變量n中,并返回變量n的值。
19.A
20.C
21.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。
22.軟件工程學軟件工程學
23.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應填:structnode*。即定義一個指向自身的結(jié)構(gòu)體指針。
24.內(nèi)聚內(nèi)聚
25.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。
26.概念數(shù)據(jù)模型概念數(shù)據(jù)模型
27.概念設計階段(數(shù)據(jù)庫概念設計階段)概念設計階段(數(shù)據(jù)庫概念設計階段)
28.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設計、詳細設計、編碼和測試)、軟件維護期(即運行維護階段)。
29.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。
30.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因為i在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應是t*10。
31.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。
32.*pk=a[i]*pk=a[i]解析:通過參數(shù)傳遞,findmax函數(shù)接收到4個參數(shù),分別是數(shù)組a(需要對其中的數(shù)據(jù)按照題目的要求進行計算)、10(數(shù)組a中的元素個數(shù))、0(數(shù)組a的起始位置)、指針變量n(對數(shù)組a中的元素進行遍歷)。我們了解了這些參數(shù)的作用后,再對遞歸調(diào)用的函數(shù)進行分析,就不難得出結(jié)論了。注意:通過對本例中遞歸函數(shù)的分析掌握遞歸算法的執(zhí)行原理。
33.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。
34.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。
35.右子樹(單支樹)右子樹(單支樹)解析:二叉排序樹對于任意新結(jié)點,若大于等于根結(jié)點,則在右子樹上建立。
36.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。
37.I=1x[I-1]I=1,x[I-1]解析:對于10個數(shù),相臨的兩個數(shù)相加取和,總共要進行9次加法運算,所以空14處應填入I=1。相臨的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應填入x[I-1]。
38.線性數(shù)據(jù)結(jié)構(gòu)線性數(shù)據(jù)結(jié)構(gòu)解析:隊列的鏈式存儲稱為鏈隊列,它屬于線性數(shù)據(jù)結(jié)構(gòu)。
39.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。
40.22解析:'\\13':表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標志“'\\0'”,所以共有2個字節(jié)。
41.D
42.C解析:本題的fun()函數(shù)在x等于0或1時返回3,而在其余情況下返回x-fun(x-2),所以本題的遞歸算法可以這樣來表示:在主函數(shù)中輸出的結(jié)果是fun(7),而fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-(5-0)=7-5=2。故本題應該選擇C。
43.B
44.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結(jié)果與實際結(jié)果之間的差別。軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
45.C解析:1.getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符。
2.putchar():此函數(shù)的作用是向終端輸出一個字符,也可以輸出控制字符。
本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。
46.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式,而不能省略第二個方括號中的常量表達式;二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達式][常量表達式]。
47.A解析:本題主要考查運算表達式的運算。3+(int)(x)的結(jié)果是10011010,~3的結(jié)果是11111100,二者邏輯與得10011000。
48.D解析:賦值運算符的結(jié)合方向是自右至左,所以表達式a+=a-=a*a先運算最右邊的a*a得9,再運算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運算a=a-+(-6),即a=(-6)+(-6)=-12。
49.C
50.D
51.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進行首尾互相調(diào)換。所以在主函數(shù)中,當fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。
52.D
53.D解析:本題考查函數(shù)的調(diào)用。在有參函數(shù)調(diào)用中,是將主調(diào)函數(shù)的實參值傳給被調(diào)函數(shù)的形參。按函數(shù)在程序中出現(xiàn)的位置來分,有以下三種函數(shù)調(diào)用形式:
①函數(shù)調(diào)用作為一條語句。例如:fun();這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。故選項A)正確。
②函數(shù)出現(xiàn)在表達式中,這種表達式稱為函數(shù)表達式。這時要求函數(shù)帶回一個確定的值以參加表達式的運算。例如:c=5*max(a,b);函數(shù)max是表達式的一部分,將其值乘以5后賦給c。故選項C)正確。
③函數(shù)調(diào)用作為一個函數(shù)的實參,例如:m=max(a,max(b,c));其中max(b,c)是一次函數(shù)調(diào)用,它的值作為max另一次調(diào)用的實參。故選項B)正確。
函數(shù)調(diào)用不可作為一個函數(shù)的形參,因為函數(shù)調(diào)用參數(shù)的數(shù)據(jù)傳遞是單向傳遞,即實參傳給形參,不能由形參傳給實參。故選項D)錯誤。
54.A解析:“%”運算符的作用是求模,意思是做除法求余,這就要求兩個運算分量均為整數(shù)。選項B中,2.5不是整數(shù),故非法;選項C中,表達式x+n計算后得到的是一臨時值,臨時值不能做左值,故非法;選項D中,由于“=”運算符的結(jié)合性是“從右到左”,故先計算5=4+1,5是常量不能做左值,故選項D也非法。選項A,y==5是一個邏輯表達式,其值為真或假,可以用做右值,所以是合法的。故本題應該選擇A。
55.A
56.B解析:本題主要考查結(jié)構(gòu)指針:p=&data,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即data.a,也可以用等價的指針形式:(*p).a和p->a來訪問結(jié)構(gòu)體變量中的成員。
57.B解析:程序首先定義了一個字符數(shù)組s,然后讓字符指針ps指向該數(shù)組的首地址。最后按字符形式輸出*ps+4的值,即s[0]+4的值,'a'+4='e'。故應該選擇B。
58.B解析:維字符數(shù)組可以看成由若干個一維字符數(shù)組組成,每行是一個一維字符數(shù)組。本題首先定義了一個數(shù)組ch[3][5]并給它們按行賦初值,即相當于給ch[0]賦值“AAAA”,給ch[1]賦值“BBB”,給ch[2]賦值“BBB”,最后輸出轉(zhuǎn)義字符“'\\'”、ch[1]和轉(zhuǎn)義字符“\\”,因此輸出為“BBB”.所以,4個選項中B為所選。
59.B解析:題目中定義了一個指針變量作為函數(shù)f()的參數(shù)。主函數(shù)main()中調(diào)用f()函數(shù),當i=0時,執(zhí)行語句“(*q)++;”,此處*q就代表數(shù)組a[0]的地址,也即將q進行加1操作;當i=1時,q仍指向數(shù)組元素a[0]的地址,因為在函數(shù)f()中并未對指針變量q做任何變動,即*q仍代表數(shù)組元素a[0]的值,所以此次(*q)++即為2+1,a[0]的值變?yōu)?;直到i=4時,執(zhí)行(*q)++后a[0]的值變?yōu)?,最后輸出數(shù)組a的結(jié)果為6、2、3、4、5。
60.B解析:滿足表達式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,選項B中的表達式都為'真'。
61.A
62.A解析:本題考核模塊獨立性的
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工地臨時護欄安裝協(xié)議
- 古鎮(zhèn)裝飾施工合同
- 電力設施廠房施工合同
- 科技館建設民建施工合同
- 西安景區(qū)附近酒店租賃協(xié)議
- 機場航站樓空調(diào)租賃協(xié)議
- 工地用施工升降機購銷合同
- 校園建設建造師聘用合同范例
- 建筑改造施工合同封面
- 大學廣告位租賃合同
- 古代名劇鑒賞學習通超星期末考試答案章節(jié)答案2024年
- 2024年廣西公需科目一帶-路題庫參考答案
- 2024年秋國家開放大學《形勢與政策》大作業(yè):建設中華民族現(xiàn)代文明的路徑是什么?中華民族現(xiàn)代文明有哪些鮮明特質(zhì)?附答案【供參考】
- GB/T 35136-2024智能家居自動控制設備通用技術(shù)要求
- 腕管綜合征護理常規(guī)
- Unit 3 Lesson 13 At School(教學設計)-2024-2025學年冀教版(三起)英語四年級上冊
- 期末達標測試卷(試題)-2024-2025學年人教PEP版英語四年級上冊
- 抗腫瘤治療相關性心肌并發(fā)癥
- GB/T 19752-2024混合動力電動汽車動力性能試驗方法
- 營銷咨詢服務合同(2024版)
- 兒童文學智慧樹知到期末考試答案章節(jié)答案2024年麗水學院
評論
0/150
提交評論