




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年湖北省孝感市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下不能將s所指字符串正確復(fù)制到所指存儲空間的是()A.do{*t++=*s++;}while(*s);.
B.for(i=0;t[i]=s[i];i++);
C.while(*t=*s){t++;s++}
D.for(i=0,j=0;t[i++]=s[j++];);
2.若有定義“intk=7,x=12;”,則以下表達式值為3的是()。
A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5
3.
4.用鏈表表示線性表的優(yōu)點是()。
A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序和邏輯順序相同
5.下列結(jié)構(gòu)體類型說明和變量定義中正確的是()。
A.structREC;{intn;charc;};RECt1,t2;
B.typedefstruct{intn;charc;}REC;RECt1,t2;
C.typedefstructREC;{intn=0;charc=‘A’;}t1,t2;
D.struct{intn;charc;}REC;RECt1,t2;
6.下列選項中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。
A.if(stremp(s2,s1)==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(sl,s2)==l)ST;
D.if(sl,s2==O)ST;
7.以下程序是用來計算兩個非負數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個數(shù)的長度為n,基本運算時間復(fù)雜度為O(1),那么該程序的時間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)
8.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結(jié)果是______。
A.58B.56C.45D.24
9.
10.若串S=,software,其子串的數(shù)目是()。
A.8B.37C.36D.9
11.設(shè)有定義“struct{charmark[12];intnum1;doublenum2;}t1,t2;”,若變量均已正確賦初值,則下列語句中錯誤的是()。
A.t1=t2;
B.t2.num1=t1.num1;
C.t2.mark=t1.mark;
D.t2.num2=t1.num2;
12.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.選擇排序C.快速排序D.歸并排序
13.以下敘述中正確的是()。
A.在switch語句中,不一定使用break語句
B.break語句只能用于switch語句
C.break語句必須與switch語句中的case配對使用
D.在switch語句中必須使用default
14.若有運算符:>、*=、<<、%、sizeof,則它們按優(yōu)先級(由低至高)的正確排列次序為()。
A.*=<<>%sizeof
B.<<*=>%sizeof
C.%=><<sizeof%
D.*=><<%sizeof
15.設(shè)無向圖G中有n個頂點e條邊,則其對應(yīng)的鄰接表中的表頭結(jié)點和邊表接點的個數(shù)分別為()。
A.n,eB.e,nC.2n,eD.n,2e
16.
17.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。
A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值
18.在KMP算法中,已知模式串為ADABCADADA,請寫出模式串的next數(shù)組值()
A.0,1,1,2,1,1,2,3,4,3
B.1,2,3,2,1,1,2,4,4,3
C.0,1,1,1,2,1,2,3,4,3
D.2,1,1,2,1,1,2,3,3,4
19.下列敘述中正確的是()。
A.有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B.只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C.循環(huán)鏈表是非線性結(jié)構(gòu)
D.雙向鏈表是非線性結(jié)構(gòu)
20.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為
A.log2nB.n2C.O(n1.5)D.n(n-1)/2
二、2.填空題(20題)21.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
22.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
23.在程序設(shè)計階段應(yīng)該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設(shè)計語言寫成程序。
24.一張3.5英寸軟盤大約能存儲140萬個ASCⅡ字符,若存放漢字大約能存放【】個。
25.問題處理方案的正確而完整的描述稱為______。
26.數(shù)據(jù)流的類型有______和事務(wù)型。
27.下面程序執(zhí)行后輸出的結(jié)果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
28.已知a=1,b=2,則表達式(a&B)&b||b的結(jié)果為()。
29.軟件的需求分析階段的工作,可以概括為四個方面:【】、需求分析、編寫需求規(guī)格說明書和需求評審。
30.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
31.以下sstrcpy()函數(shù)實現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指內(nèi)存空間中,形成一個新字符串s。請?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
32.以下程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
33.以下程序輸出的最后一個值是【】
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i));
}
34.以下程序段用以統(tǒng)計鏈表中元素的個數(shù)。其中first指向鏈表第一個結(jié)點,count用來統(tǒng)計結(jié)點個數(shù)。請?zhí)羁铡?/p>
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
35.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。
36.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡t=(char*)【】;
37.下面程序的運行結(jié)果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
38.下列程序執(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);
}
39.若對長度為90的線性表進行分塊查找,其中每塊子表長度為9。如果在索引表查找過程中進行順序查找,那么平均查找長度為【】。
40.表達式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。
三、1.選擇題(20題)41.有以下程序
intfun(intx[],intn)
{staticintsum=0,i;
for(i=0;i<n;i++)sum+=x[i];
returnsum;
}
main()
{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
}
程序執(zhí)行后的輸出結(jié)果是
A.45B.50C.60D.55
42.有以下程序: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,
43.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為______。
A.12B.11C.10D.編譯出錯
44.一個算法應(yīng)該具有“確定性”等5個特性,下面對另外4個特性的描述中錯誤的是()A.有零個或多個輸入B.有零個或多個輸出C.有窮性D.可行性
45.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
46.以下選項中合法的用戶標識符是A.longB._2TestC.3DmaxD.A.dat
47.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
48.要求通過while循環(huán)不斷讀入字符,當讀入字母N時結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。
A.while((ch=getchar())!='N')printf("%c",ch);
B.while(ch=getchar()!='N')printf("%c",ch);
C.while(ch=getchar()=='N')printf("%c",ch);
D.while((ch=getchar())=='N')printf("%c",ch);
49.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結(jié)果是
A.235B.0235C.02356D.2356
50.有以下程序A:intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;)main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,B),f1(c,D));f=f1(f2(a,B),f2(c,D));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}程序運行后的輸出結(jié)果是()。
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
51.有以下程序:#include<stdio.h>main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);prinff("%d\n",s);
A.45B.20C.25D.36
52.以下選項中不能正確把c1定義成結(jié)構(gòu)體變量的是
A.typedefstruct{intred;intgreen;;intblue;}COLOR;COLORcl;
B.structcolorcl{intred;intgreen;intblue;};
C.struetcolor{intred;intgreen;intblue;}c1;
D.struct{intred;intgreen;intblue;}cl;
53.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
54.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
55.與十六進制數(shù)CD相等的十進制數(shù)是______。
A.205B.206C.207D.208
56.以下程序的輸出結(jié)果為()。#include<stdio.h>main(){char*alpha[6]={"ABCDEFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);printf("\n");}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPQRSTD.AEIM
57.在對下列函數(shù)調(diào)用中,不正確的是()
A.max(a,b);B.max(3,a+b);C.max(3,5)D.intmax(a,b);
58.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()
A.voidfun(double*s)
B.fun(double*s[4])
C.fun(double(*s)[3])
D.voidfun(double(*s)[4])
59.有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}}
該程序的輸出結(jié)果是
A.987B.876C.8765D.9876
60.一個采用順序存儲方式的線性表中,若線性表的第一個元素的存儲地址是200,每一個元素的長度是2,則第6個元素的地址是______。
A.208B.210C.211D.212
四、選擇題(20題)61.
62.下列敘述中正確的是()。A.順序存儲結(jié)構(gòu)的存儲空間一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的
B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu)
C.順序存儲結(jié)構(gòu)能存儲有序表,鏈式存儲結(jié)構(gòu)不能存儲有序表
D.鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
63.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
64.
65.
66.設(shè)有如下三個關(guān)系表
下列操作中正確的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
67.
以下程序的輸出結(jié)果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","
MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);
A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
68.(4)下面描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是______。
A.使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
69.
70.設(shè)整型變量a為5,使b不為2的表達式是()。
A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:1
71.有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結(jié)果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx
72.
73.c語言規(guī)定,在一個源程序中,main函數(shù)的位置()。
A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意D.必須在最后
74.有如下嵌套的語句
75.在C語言中,運算對象必須是整型數(shù)的運算符是()。
A.%B.\C.%和\D.**
76.若變量已確定義,則以下語句的輸出結(jié)果是()。
77.若intk=8;,則執(zhí)行下列程序后,變量k的正確結(jié)果是
main()
{intk=8;
switch(k)
{case8:k+=1;
case10:k+=1;
case11:k+=1;break;
default:k+=1;
}
printf("%d\n",k);
}
A.12B.11
C.10D.9
78.
79.
80.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動變量實質(zhì)上是一個函數(shù)內(nèi)部的局部變量
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。
例如,若輸入“Ab,cD”,則輸出“AB,CD”。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件析下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中值最大的元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的元素已在主函數(shù)中給出。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}
參考答案
1.Ado{*t++=*s++;}while(*s);不能因為當*s=‘\\0'時,while(*s)跳出循環(huán),這樣字符串結(jié)束標志’0\\沒有復(fù)制給*t,造成*t不完整。注意,*t++=*s++是先執(zhí)行t=*s,然后才進行t=t+1,s=s+1。B),C),D)三項都能將“\\0’復(fù)制過去。
2.A選項A中,表達式“x%=k”結(jié)果為5,表達式“k%=5”結(jié)果為2,5-2結(jié)果為3;選項B中,“k%=5”結(jié)果為2,“x%=2”結(jié)果為0;選項C中,“k%5”結(jié)果為2,“k-k%5”結(jié)果為5,“x%5”結(jié)果為2;選項D中,“k%5”結(jié)果為2,“k-k%5”結(jié)果為5,x%5結(jié)果為2。故本題答案為A選項。
3.C
4.C【解析】在鏈表中因為除了存放數(shù)據(jù)元素之外,還要存放指針,所以鏈表花費的存儲空間要比順序表還要多,在插入和刪除數(shù)據(jù)元素時,只需要移動相應(yīng)的記錄指針即可,在鏈表中,數(shù)據(jù)的物理結(jié)構(gòu)與邏輯結(jié)構(gòu)不一定相同,因為是靠指針來實現(xiàn)對數(shù)據(jù)的指定的,所以不能進行隨機存取。
5.B選項A中“structREC”后面不能有分號。C選項中“typedefstructREC”的后面也不能有分號。選項D中“REC”是結(jié)構(gòu)體變量,不能當作結(jié)構(gòu)體類型來使用。故本題答案為B選項。
6.Astrcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCIl表值計算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項A中if(strcmp(s2,sl)==0)ST,若s2等于sl,則返回值0,0等于0,所以邏輯表達式strcmp(s2,sl)==0為真,執(zhí)行ST。
7.B
8.D解析:程序中while語句的循環(huán)條件為i<7&&p[i]%2。當i=0時,條件成立,k=k+p[0]=11;當i=1時,條件仍成立,k=k+p[1]=11+13=24;當i=2時,p[2]%2=0條件不成立,結(jié)束while循環(huán),所以k=24。
9.A
10.B
11.Cmark為結(jié)構(gòu)體中的數(shù)組,不能直接賦值,所以C選項錯誤。故本題答案為C選項。
12.A解析:以下幾種算法的時間復(fù)雜度分別為:冒泡排序(n2);選擇排序(n2);快速排序(nlog2n);歸并排序(nlog2n)。當排序元素序列基本有序的情況下,冒泡排序的交換次數(shù)為0,只是順序掃描數(shù)據(jù)而已,所以其效率是最高的。
13.Aswitch語句中不一定使用break語句,選項A正確;break語句除了用于switch語句,還可以用于循環(huán)語句中,選項B、C錯誤;switch語句不一定需要使用default語句,選項D錯誤。本題答案為A選項。
14.D解析:本題主要考查算術(shù)運算的優(yōu)先級。順序如下:
[*]
注:*=、>、<<、%、sizeof的優(yōu)先級依次遞增。
15.A
16.D
17.B解析:p本身就是一個字符型指針變量,返回p也就是返回變量p中存放的地址值。
18.A
19.B解析:如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個條件:(l)有且只有一個根結(jié)點;(2)每個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu),故A項錯誤。有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu),如二叉樹,B項說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項錯誤。
20.D解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。
21.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。
22.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
23.自頂向下自頂向下解析:在程序設(shè)計時,應(yīng)先考慮總體,后考慮細節(jié),逐步使問題具體化,對復(fù)雜的問題,應(yīng)該設(shè)計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。
24.70萬70萬
25.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。
26.變換型變換型
27.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。
28.1
29.需求獲取需求獲取解析:軟件的需求分析階段的工作,可以概括為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。需求獲取的目的是確定對目標系統(tǒng)的各方面需求;需求分析是對獲取的需求進行分析和綜合,最終給出系統(tǒng)的解決方案和目標系統(tǒng)的邏輯模型;編寫需求規(guī)格說明書作為需求分析的階段成果,可以為用戶、分析人員和設(shè)計人員之間的交流提供方便,可以直接支持目標軟件系統(tǒng)的確認,又可以作為控制軟件開發(fā)進度的依據(jù);需求評審是對需求分析階段的工作進行的復(fù)審,驗證需求文檔的一致性、可行性、完整性和有效性。
30.k-1k,-1解析:顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標變量i和j,i是前端元素的下標,j是后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j。字符串末元素的下標是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個空框處應(yīng)填入k。
31.*t++*t++解析:要使sstrcpy函數(shù)實現(xiàn)字符串復(fù)制,必須將t字符串中的每個字符逐個復(fù)制到s字符串中,可以使用*s=*t;s++;t++,也可以寫成*s++=*t++,因此空格處填*t++。
32.指針P指向數(shù)組a的首地址,執(zhí)行語句p++;后p指向數(shù)組a的第2個元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n
33.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。
②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。
③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。
本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。
34.p!=NULLcount++(*p).next
35.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測試不實際運行軟件。
36.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。
37.1111解析:此題涉及函數(shù)的調(diào)用和if語句。程序先執(zhí)行第二個if語句,然后再執(zhí)行第一個if語句,最后用return返回數(shù)值。
38.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。
39.10.5
40.floatfloat解析:在此表達式中x是float類型的變量,經(jīng)過開方所得到的結(jié)果仍是float類型,再和2.8進行運算時,應(yīng)該先將2.8轉(zhuǎn)換成float類型再運算,最后結(jié)果仍是float型。
41.C解析:內(nèi)部靜態(tài)變量是始終存在的,當函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前調(diào)用時的數(shù)值仍然保留著。Fun(a,5)的值是15,再次調(diào)用后sum=15,所以Fun(b,4)=45,s=45+15=60。
42.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。
43.B解析:執(zhí)行p=&a;后,p指向整數(shù)a,*p即p的目標變量,也就是a;所以a=*p+b等價于a=a+b,可知a的值最終為11。
44.B解析:本題考核的知識點是算法的性質(zhì)。算法是為解決某個特定問題而采取的確定的且有限的步驟,一個算法應(yīng)當具有以下5個基本特性:1.有窮性,就是指一個算法應(yīng)當包含有限個操作步驟。2.確定性,就是說算法中每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。3.有零個或多個輸入。4.可行性,就是說算法中指定的操作,都可以通過已經(jīng)實現(xiàn)的基本運算執(zhí)行有限次實現(xiàn),5.有一個或多個輸出。由此可知選項B不正確,所以,4個選項中選項B符合題意。
45.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:
①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
46.B解析:本題考查C語言標識符的命名.在C語言中,合法的標識符由字母,數(shù)字和下劃線組成,并且第一個字符必須為字母或者下劃線,long為C語言的保留字,不能作為用戶標識符,故選頃A錯誤.3Draax開頭的第一個為數(shù)字,而C語言規(guī)定,第一個字符必須為字母或者下劃線,故選項C錯誤;A.dat中的字符“.”不符合C語言中用戶標識符只能由字母、數(shù)字和下劃線組成的規(guī)定,故選項D錯誤.只有迭項B正確。
47.A解析:數(shù)據(jù)流圖包括4個方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體)。不包括選項中的控制流。
48.A解析:while循環(huán)的執(zhí)行過程如下:(1)計算while后面圓括號中表達式的值.當值為非0時,執(zhí)行步驟(2);當值為0時,執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉(zhuǎn)去執(zhí)行步驟(1)。(4)退出循環(huán)。在選項A)中,表達式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個條件表達式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達式不成立,即輸入的字符等于N,則退出循環(huán).所以選項A)為正確答案。
49.A解析:因為變量的初始值分別為'k=5,n=0',所以程序第一次進入循環(huán)時,執(zhí)行default語句,這時k=4,執(zhí)行'case4:'這個分支,結(jié)果是'n=2,k=3',打印出2;程序然后進行第二次循環(huán),這時'n=2,k=3',執(zhí)行'case3:'這個分支,結(jié)果是'n=3,k=2',打印出3;程序進行第三次循環(huán),這時'n=3,k=2',執(zhí)行'case2:case4:'這兩個分支,結(jié)果是\ue008'n=5,k=1'\ue009,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運行結(jié)束,故輸出結(jié)果為235。
50.A
51.C解析:程序中的*(t+i)相當于t[i]。由于for循環(huán)變量的增量為2,因此i分別取值0,2,4,6,8,因為t[0]=1,t[2]=3,t[4]=5,t[6]=7,t[8]=9,對其進行求和運算,結(jié)果為25。
52.B解析:結(jié)構(gòu)體類型的定義格式為:
stract結(jié)構(gòu)體名
成員說明列表};
結(jié)構(gòu)體變量的定義有3種形式:第一種,定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如:street結(jié)構(gòu)體名{成員說明列表}變量;第二種,先定義一個結(jié)構(gòu)體類型,然后使用該類型來定義結(jié)構(gòu)體變量,如:strectstudent{成員說明列表};student變量;第三種,定義一個無名稱的結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如:strectstudent{成員說明列表}變量;。
53.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細設(shè)計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
54.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達式&a[0][0]+2*i+j-2相當于是地址&a[0][0]加上多少偏移量。
55.A解析:CD=12*16+13=192+13=205。
56.C解析:字符串數(shù)組中的每個元素是一個指向字符串的字符指針,可用一個指向指針的指針來指向一個字符串數(shù)組,題中p即為一個這樣的指針,p[i]則指向了數(shù)組alpha的第i+1各元素。注意:用帶下標的指針變量引用一維數(shù)組中的元素。
57.D
58.D
59.B解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結(jié)果來決定哪一項是正確的。第一次進入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時,n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時,輸出為6,由此可以排除選項C)。
60.B解析:順序結(jié)構(gòu)中,第n個元素的地址為An=A0+(n-1)*L(A為地址,L為元素長度)。
61.B
62.A解析:本題考查的是順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。鏈式存儲結(jié)構(gòu)既可用于表示線性結(jié)構(gòu),也可用于表示非線性結(jié)構(gòu),所以選項B和C不正確;鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)每個元素多了一個或多個指針域,比順序存儲結(jié)構(gòu)要多耗費一些存儲空間,所以選項D也不止確。所以,本題中只有選項A是正確的。
63.A解析:結(jié)構(gòu)化程序的概念首先是從以往編程過程中無限制地使用轉(zhuǎn)移語句而提出的。轉(zhuǎn)移語句可以使程序的控制流程強制性地轉(zhuǎn)向程序的任一處,在傳統(tǒng)流程圖中,就是用上節(jié)我們提到的“很隨意”的流程線來描述這種轉(zhuǎn)移功能。如果一個程序中多處出現(xiàn)這種轉(zhuǎn)移情況,將會導(dǎo)致程序流程無序可尋,程序結(jié)構(gòu)雜亂無章,這樣的程序是令人難以理解和接受的,并且容易出錯。尤其是在實際軟件產(chǎn)品的開發(fā)中,更多的追求軟件的可讀性和可修改性,象這種結(jié)構(gòu)和風(fēng)格的程序是不允許出現(xiàn)的。
64.D
65.B
66.C\n對于兩個關(guān)系的合并操作可以用笛卡爾積表示。設(shè)有n元關(guān)系R和in元關(guān)系s,它們分別有P和q個元組,則R與S的笛卡兒積記為R×S它是一個m+n元
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培養(yǎng)跨行業(yè)技能的重要性計劃
- 七年級下冊《幾何圖形與圖文信息問題》課件與練習(xí)
- 2025年氣體摻混設(shè)備項目建議書
- 2025年中文信息處理平臺項目發(fā)展計劃
- 2025年衛(wèi)星數(shù)據(jù)采集系統(tǒng)項目發(fā)展計劃
- 2025年EMI屏蔽材料項目發(fā)展計劃
- 冷鏈物流溫度監(jiān)控實施細節(jié)
- 電影制作與發(fā)行合作框架
- 2025年活性白土項目建議書
- 案場物業(yè)經(jīng)理年終工作總結(jié)
- 連續(xù)性腎替代治療抗菌藥物劑量調(diào)整專家共識(2024年版)解讀
- 腦梗死臨床表現(xiàn)護理
- 新高考英語|語法專項之括號法突破長難句 講解課件-2025屆高三英語上學(xué)期一輪復(fù)習(xí)專項
- 《光通信技術(shù)簡介》課件
- 2024年廣西區(qū)公務(wù)員錄用考試《行測》真題及答案解析
- 健康體檢基礎(chǔ)知識培訓(xùn)
- 【課件】Unit+6+section+B+1a~2b+課件人教版七年級英語上冊
- Unit 3 We should obey the rules.Lesson 13(教學(xué)設(shè)計)-2023-2024學(xué)年人教精通版英語五年級下冊
- 2024年平面設(shè)計師技能及理論知識考試題庫(附含答案)
- 2024年農(nóng)業(yè)農(nóng)村基礎(chǔ)知識考試題庫(附答案)
- 2023新一代變電站二次系統(tǒng)技術(shù)規(guī)范第3部分:綜合應(yīng)用主機
評論
0/150
提交評論