版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021年安徽省蕪湖市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下選項中,合法的一組C語苦數(shù)值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
2.以下敘述中錯誤的是()。
A.通過指針變量存取某個變量值的方式稱為“直接存取”方式
B.在程序的開頭包含頭文件stdio.h后,可以給指針變量賦NULL值
C.將一個指針變量中的值賦給另一個指針變量,則這兩個指針變量指向同一地址
D.C語言中函數(shù)返回值的類型可以是簡單的數(shù)據(jù)類型,也可以是指針類型
3.用二分法查找長度為10的、排好序的線性表,查找不成功時,最多需要比較多少次?()
A.3B.4C.5D.6
4.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
5.下列語句組中,正確的是()。
6.線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。已知指針p所指結(jié)點不是尾結(jié)點,若在*p之后插入結(jié)點*s,則應(yīng)執(zhí)行下列()操作。
A.s->next=p;p->next=s;
B.s->next=p->next;p->next=s;
C.s->next=p->next;p=s;
D.p->next=s;s->next=p;
7.
8.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運行后的輸出結(jié)果是
A.12B.123C.234D.345
9.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1,j的值為2,k的值為3,以下選項中正確的輸入語句是A.scanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
10.棧和隊列的共同點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點
11.以下程序的運行結(jié)果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}
A.運行后報錯B.66C.612D.55
12.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
13.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運行結(jié)果是()。
A.6B.3C.8D.12
14.檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
15.關(guān)于地址和指針,以下敘述正確的是()。
A.可以通過強制類型轉(zhuǎn)換讓char型指針指向double型變量
B.函數(shù)指針P指向一個同類型的函數(shù)f時,必須寫成“p=&f;”
C.指針P指向一個數(shù)組f時,必須寫成“P=&f;”
D.—個指針變量P可以指向自身
16.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。A.大寫字母B.下劃線C.數(shù)字字符D.連接符
17.已知有如下結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有P=&data,則對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.在執(zhí)行()操作時,需要使用隊列做輔助存儲空間。
A.查找哈希(Hash)表B.深度優(yōu)先搜索網(wǎng)C.前序(根)遍歷二叉樹D.廣度優(yōu)先搜索網(wǎng)
19.一個順序棧一旦聲明,其占用空間的大小()。
A.已固定B.可以變動C.不能固定D.動態(tài)變化
20.對于棧操作數(shù)據(jù)的原則是()。
A.先進先出B.后進先出C.后進后出D.不分順序
二、2.填空題(20題)21.執(zhí)行以下程序時,若輸入end<回車>,則輸出結(jié)果是【】。
main()
{charch[10]="Begin";
gets(&ch[1]);puts(ch);
}
22.下列程序執(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);
}
23.以下函數(shù)的功能是計算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>
doublefun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++);
{【】;
fac=fac/k
s=s+fac;
}
}
24.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
25.下面程序的輸出結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=0;i<4;i++)k+=arr[i]=i;
printf("%d\n",k);
}
26.以下定義的結(jié)構(gòu)體類型里包含兩個成員,其中成員變量info用來存放整型數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針。請將定義補充完整。
structnode
{intinfo;
【】link;
};
27.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。
28.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。
29.在面向?qū)ο蠓椒ㄖ?,類的實例稱為______。
30.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,
否則返回0。請?zhí)羁铡?/p>
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
31.用指針法求出數(shù)組元素中最大者和最小者。
intmax,min;
voidmax_min_value(array,n)
intarray[],n;
{【】;
max=min=*array;
for(【】;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
main()
{inti,number[20],*p;
p=number;
printf("輸入20個數(shù)據(jù):\n");
for(i=0;i<20;i++,p++)scanf("%d",p);
【】;
max_min_value(p,10);
printf("max=%-10dmin=%d\n",max,rain);
}
32.下面的程序可列指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
33.已有定義:charc=‘’;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為()。
34.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
35.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test,t","rb");
fseek(myf,0,SEEK_END);f1=ftell(myf);
fclose(myf);
printf("%1d\n",f1);
36.已知字母A的ASCⅡ碼為65。以下程序運行后的輸出結(jié)果是()。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
37.當(dāng)輸入19、2時,下列程序的運行結(jié)果為【】;輸入254、16時,則程序的運行結(jié)果是【】。
main()
{chardata_symbols[17]="0123456789abcdefghijklmnopqrstuvwxyz";
inti=0,t,subscript,data_converted[32];
longnumber;
while(1)
{scanf("%ld,%d",&number,&t);
if(number>=O&&t>=2&&t<=16)break;
}
do
{dataconverted[i++]=number%t;
number=number/t;
}
while(number!=0);
for(--i;i>=0;--i)
{subscript=data_converted[i];
printf("%c",data_symbols[subscript]);
}
printf("\n");
}
38.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
39.以下程序的運行結(jié)果是【】。
#include<string.h>
typedefstructstudent{
charname[10];
longsno;
floatscore;
}STU;
main()
STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},
c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(,)>0)d=b;
if(strcmp(,)>0)d=c;
printf("%1d%s\n",d.sno,p->name);
}
40.下列程序的輸出結(jié)果是______。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0‖x==1)
return3;
else
p=x-fun(x-2);
returnp;
}
voidmain()
{printf("\n%d",fun(11));
}
三、1.選擇題(20題)41.已知intt=0;while(t=1){…}則以下敘述正確的是()。
A.循環(huán)控制表達式的值為0B.循環(huán)控制表達式的值為1C.循環(huán)控制表達式不合法D.以上說法都不對
42.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
43.軟件需求分析一般應(yīng)確定的是用戶對軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
44.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。
A.存儲問題B.共享問題C.安全問題D.保護問題
45.以下程序執(zhí)行后sum的值是()。
A.15
B.14
C.不確定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
46.設(shè)有下列語句inta=1,b=2,c;c=a^(b《2);執(zhí)行后,C的值為()。
A.6B.7C.8D.9
47.下列不屬于軟件工程的3個要素的是()。
A.32具B.過程C.方法D.環(huán)境
48.下列語句段中,正確的是()。
A.struct{intx;floaty;inta[2];unsignedb[3];charname[10];};
B.structstu{unsigneda[3];unsignedb[4];}x;int*p=&x.a;
C.streetstu{inta;floatx[4];}y={1,1.0};floatdata=y.x;
D.structnd{inta,b;unsignedc[2]=5;};
49.以下程序:#include<stdio.h>main(){charstr[10];scanf("%s",&str);printf("%s\n",str);}運行上面的程序,輸入字符串howareyou,則程序的執(zhí)行結(jié)果是()。
A.howB.howareyouC.hD.howareyou
50.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換為關(guān)系模式的過程屬于()。
A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段
51.下面的程序輸出結(jié)果是______。#definer16#ifr==16voidp(inta){printf("%x",a);}#elsevoidp(inta){printf("%d",a);}#endifmain(){p(32);}
A.32B.20C.編譯時錯誤D.運行時錯誤
52.若有程序fun(inta,intb}{staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,r,r=fun(y,x+y),z);r=fun(xy);printf("%d\n",r);}上面程序的輸出結(jié)果是_____。
A.23B.15C.19D.18
53.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
54.設(shè)intx=1,y=1;表達式(!x||y--)的值是()。
A.0B.1C.2D.-1
55.有以下程序;charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='7';printf("%c\n",fun(fun(a,B),fun(b,C)));}程序的執(zhí)行結(jié)果是
A.函數(shù)調(diào)用出錯B.8C.9D.7
56.以下程序有錯,錯誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}
A.p和q的類型不一致,不能執(zhí)行*p=*q;語句
B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句
C.q沒有指向具體的存儲單元,所以*q沒有實際意義
D.q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會影響后面語句的執(zhí)行結(jié)果
57.若有定義:intaa[8];則以下表達式中不能代表數(shù)組元素aa[1]的地址是
A.&aa[0]+1B.&aa[1]C.&aa[0]++D.aa+1
58.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}
A.252B.1C.0D.運行時出錯,x無定值
59.對于下列字符串,說明表達式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};
A.10B.1C.6D.7
60.12.以下說法中正確的是()
A.#define和printf都是C語句
B.#define是C語句,而printf不是
C.printf是C語句,但#define不是
D.#define和printf都不是C語句
四、選擇題(20題)61.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進
62.下列敘述中正確的是()。A.順序存儲結(jié)構(gòu)的存儲空間一定是連續(xù)的,鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間不一定是連續(xù)的
B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯Y(jié)構(gòu)只針對非線性結(jié)構(gòu)
C.順序存儲結(jié)構(gòu)能存儲有序表,鏈?zhǔn)酱鎯Y(jié)構(gòu)不能存儲有序表
D.鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
63.
64.(69)單個用戶使用的數(shù)據(jù)視圖的描述稱為()
A.外模式
B.概念模式
C.內(nèi)模式
D.存儲模式
65.對如下二叉樹進行后序遍歷的結(jié)果為()。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
66.
67.
68.下列哪個屬性是用來定義內(nèi)聯(lián)樣式的?()
A.fontB.classC.stylesD.style.
69.HTTP協(xié)議是運行于()協(xié)議之上的應(yīng)用層協(xié)議。
A.FTPB.SMTPC.TCPD.UDP
70.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789
71.結(jié)構(gòu)化分析可以使用的工具是()。
A.N—s圖B.DFD圖C.PAD圖D.程序流程圖
72.下述程序的運行結(jié)果是()。
#includedstdio.h>
#includedstrin9.h>
main
{char*s1="abDuj";
char*s2="ABdUG";
intt;
t=strcmp(s1,s2);
printf("%d",t);
}
A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值
73.若變量已正確定義為int型,要通過語句給a賦值l、+給b賦值2、給c賦值
3,以下輸入形式中錯誤的是()(注:口代表一個空格符)。
74.
75.
76.關(guān)于以下程序段的描述,正確的是
x=-1;
do
{x=x*x-1;}while(!x);
A.是死循環(huán)B.循環(huán)執(zhí)行兩次
C.循環(huán)執(zhí)行一次D.有語法錯誤
77.以下選項中關(guān)于C語言常量的敘述錯誤的是()。
A.經(jīng)常被陡用的變量可以定義成常量
B.常量分為整型常量、實型常量、字符常量和字符串常量
C.常量可分為數(shù)值型常量和非數(shù)值型常量
D.所謂常量,是指在程序運行過程中,其值不能被改變的量
78.下列字符數(shù)組初始化語句中,不正確的是()。
A.charc[]=goodmorning;
B.charc[20]="goodmorning";
C.charc[]={a,b,c,d);
D.charc[]={"ffgoodmorning"};
79.
80.
執(zhí)行下述程序后,輸出的結(jié)果是()。
#include<stdio.h>
#defineS(X)X*X
voidmain
{inta=9,k=3,m=2;
a/=S(k+m)/s(k+m);
printf("%d",a);
}
A.1B.4C.9D.0
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對M名學(xué)生的學(xué)習(xí)成績,按從高到低的順序找出前m(m≤10)名學(xué)生來,并將這些學(xué)生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun(),其功能是除了字符串前導(dǎo)和尾部的*號外,將字符串中其他的*號全部刪除。形參h指向字符串中第一個字母,形參p指向字符串中最后一個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“****A*BC*DEF*G********”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****ABCDEFG********”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}
參考答案
1.B
2.A通過指針變量存取某個變量值的方式稱為“間接存取”方式,選項A錯誤;頭文件stdio.h中定義了NULL,在程序的開頭包含stdio.h后,可以給指針變量賦NULL值,表示一個空指針,選項B正確;將一個指針變量中的值賦給另一個指針變量,這兩個指針變量指向同一地址,選項C正確;C語言中函數(shù)返回值的類型可以是簡單的數(shù)據(jù)類型,也可以是指針類型,選項D正確。故本題答案為A選項。
3.B
4.B
\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標(biāo)相同,所以j=i。
\n
5.A字符型指針變量可以用選項A)的賦值方法:char*s;s=”O(jiān)lympictt;,選項C)的寫法:char*s,s={1.Olympic”};是錯誤的。字符數(shù)組可以在定義的時候初始化:chars[]_IfIOlympic”l;或者chars[]=”O(jiān)lympic'1.都是正確的,但是不可以在定義字符數(shù)組后,對數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址)。所以選項B)和選項D)都是錯誤的。對于本例,選項B)、D)中字符數(shù)組S的大小至少為8,才能存放下字符串(字符串的末尾都有結(jié)束標(biāo)志“\0”)。
6.B
7.D
8.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來看不是線性的,但是在C語言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個指針p指向數(shù)組a的第1個元素a[0][0]。在第一個for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序為其元素賦從0~8九個值,然后用第二個for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個元素的值。所以,4個選項中選項D符合題意。
9.C
10.C解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的一端進行插入操作,而在另一端進行刪除操作。
11.A
12.A解析:希爾排序法的基本思想是:將整個無序列分割成若干小的子序列分別進行插入排序。
13.A本題中,fun函數(shù)第1次調(diào)用為fun(8,fun(5,6))。因為fun(5,6)的返回值為5,所以第2次調(diào)用為fun(8,5),即返回值為6。故本題答案為A選項。
14.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
15.A函數(shù)名代表函數(shù)的入口地址,函數(shù)指針P指向一個同類型的函數(shù)f時,可以寫成“p=f;”,而不能寫成“P=&f;”,選項B錯誤。指針p指向一個數(shù)組f時,可以寫成“p=f;”,數(shù)組名f代表數(shù)組的首地址,選項C錯誤。指針變量指向的是變量的地址,選項D錯誤。char型根據(jù)轉(zhuǎn)化原則可以轉(zhuǎn)化為double類型。故本題答案為A選項。
16.D[解析]C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D)選項中的連接符不合法。
17.B本題主要考查結(jié)構(gòu)指針:P=&data,訪問結(jié)構(gòu)體的成員。它可以通過結(jié)構(gòu)變量訪問,即data,可以用等價的指針形式:(*p).a(chǎn)和P->a來訪問結(jié)構(gòu)體變量中的成員。
18.D
19.A
20.B
21.Bend
22.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。
23.k=k*ik=k*i解析:本題中通過for循環(huán)求s表達式中每一項的和,表達式“fac=fac/k;”求的是每一項的值,所以k的值應(yīng)為n!,在求n!的時候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故本題填k=k*i。
24.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
25.66解析:本題第1個for循環(huán)是為數(shù)組arr元素賦初值。第2個for循環(huán)是分別用i=0,1,2,3給數(shù)組元素arr[0]、arr[1]、arr[2]、arr[3]賦值,再累加到變量k中,k=0+1+2+3=6。
26.structnode*
27.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。
28.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。
29.對象對象解析:類描述的是具有相似性質(zhì)的一組對象。例如,每本具體的書是一個對象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對象。一個具體對象稱為類的實例。
30.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。
31.int*pp=array+1p=numberint*p\r\np=array+1\r\np=number解析:函數(shù)max_min_value()中用到了指針變量p,顯然應(yīng)在第一個空格處填int*p。函數(shù)max_min_value()中的for循環(huán)逐一把數(shù)組中的元素與max和min的當(dāng)前值進行比較。max和rain的初值是數(shù)組的第1個元素值,第1次比較應(yīng)與第2個元素比較,即array+1。第二個空格處應(yīng)填p=array+1。主函數(shù)main()中的指針變量p首先指向數(shù)組number的第1個元素,當(dāng)?shù)?個for循環(huán)結(jié)束時,它指向數(shù)組的最后一個元素。若這時將p作為實參傳給被調(diào)用函數(shù),形參array[]數(shù)組的首址將是number口數(shù)組的最后元素的地址,而number[]數(shù)組的前n-1個元素不能參加比較,這將引起計算出錯。因此,在調(diào)用max_min_value()函數(shù)之前,應(yīng)將指針p指向number[]數(shù)組首址,即在第三個空格應(yīng)填寫p=umber。
32.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當(dāng)前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+l]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
33.00解析:空格字符的ASCⅡ碼值為32,所以!c—o,那么0與任何值相與的結(jié)果都為0,可得b的值為0。
34.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
35.fopen
36.67G67G解析:根據(jù)題意,a=‘A’+‘5’-‘3’=65+2=67,b=67+4=71,71即為字母G的ASCⅡ碼值。程序要求按十進制形式輸出a,按字符形式輸出b,所以結(jié)果為67G。
37.10011fe
38.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個元素進行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。
39.2002Shangxian2002Shangxian解析:本題中首先定義一個結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義了一個結(jié)構(gòu)體指針p,并讓它指向變量do將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量do比較通過函數(shù)strcmp實現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d,第二個if語句strcmp(,)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian。
40.44解析:本題考查函數(shù)的遞歸調(diào)用.在主函數(shù)中第1次調(diào)用于函數(shù)是調(diào)用的fun(11),返回11-fun(9);第2次調(diào)用于函數(shù)是調(diào)用的fun(9),返回9-fun(7);第3次調(diào)用于函數(shù)是調(diào)用的fun(7),返回7-fun(5):第4次調(diào)用子函數(shù)是調(diào)用的fun(5),返回5-fun(3):第5次調(diào)用于函數(shù)是調(diào)用的fun(3),返回3-fun(1):第6次調(diào)用于函數(shù)是調(diào)用的fun(1),返回3??偟姆祷刂凳牵?1-(9-(7-(5-(3-3))))=4.
41.B解析:t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應(yīng)用t==1,注意“=”與“==”的用法。
42.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
43.DD。【解析】軟件需求分析中需要構(gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。
44.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計算機的應(yīng)用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對數(shù)據(jù)共享的要求越來越高。共享的含義是多個用戶、多種語言、多個應(yīng)用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應(yīng)用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術(shù),以便對數(shù)據(jù)庫進行管理。因此,數(shù)據(jù)庫技術(shù)的根本目標(biāo)就是解決數(shù)據(jù)的共享問題。故選項B正確。
45.C解析:C語言中,如果對定義的變量沒有賦初值,那么在后面使用時,變量的值是不確定的。所以,本程序中,沒有對sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語句后,sum的值也不確定的,所以,4個選項中選項C符合題意。
46.D解析:變量b的初值等于2,所以表達式b<<2表示b的值二進制左移兩位,即擴大4倍,所以變量b的等于8。然后與a的值1進行異或運算,得9。
47.D解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段:工具支持軟件的開發(fā)、管理和文檔生成:過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。
48.A解析:本題主要考查的知識點是結(jié)構(gòu)類型的概念和定義,結(jié)構(gòu)定義的一般形式是:
struct結(jié)構(gòu)類型名稱
{數(shù)據(jù)類型成員名1;
數(shù)據(jù)類型成員名2;
…
數(shù)據(jù)類型成員名n;
};
struct為關(guān)鍵字,是結(jié)構(gòu)的標(biāo)識符:{}中包圍的是組成該結(jié)構(gòu)的成員項;每個成員的數(shù)據(jù)類型既可以是簡單的數(shù)據(jù)類型,也可以是復(fù)雜的數(shù)據(jù)類型。整個定義作為一個完整的語句,用分號結(jié)束。結(jié)構(gòu)類型名稱是可以省略的,此時定義的結(jié)構(gòu)稱為無名結(jié)構(gòu)。
49.A解析:當(dāng)從鍵盤輸入bowareyou時,由于scanf輸入函數(shù)的特點是遇到空格時結(jié)束讀入字符,因此,該程序只將how這3個字符送到了字符數(shù)組str中,并在其后自動加上結(jié)束符“\\0”。
50.BB。【解析】數(shù)據(jù)庫設(shè)計階段主要包括需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計。其中邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換為關(guān)系模式。
51.B解析:“#definer16”的作用是指定用標(biāo)識符r來代替16,因此程序編譯時只編譯#if部分,故程序運行時,打印輸出十六進制的32,即20。
52.A解析:static聲明的外部變量只限于彼本文件引用,而不能被其他文件引用。用static來聲明一個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第一個fun,其兩個實參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結(jié)束返回15。第二次調(diào)用fun時,由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。
53.D解析:在C語言中,定義一維數(shù)組的語句一般形式如下:
類型名數(shù)組名[常量表達式];
一維數(shù)組的引用形式為:數(shù)組名[下標(biāo)表達式]。count表示能被2整除或被5整除的個數(shù),i則計算有多少個數(shù)組元素。
54.B
55.D解析:本題考核的知識點是函數(shù)的返回值以及返回值作為函數(shù)的參數(shù)。經(jīng)過分析得出函數(shù)fun()的功能是比較形參x和形參y的大小,返回較小的一個.函數(shù)fun()有兩個參數(shù).本題中,首先定義了三個整型變量a、b和c,分別賦初值為9、8和7.然后執(zhí)行函數(shù)fun(fun(a,b),fun(b,c))。在該函數(shù)中分別將fun(a,b)和fun(b,C)函數(shù)的返回值作為該函數(shù)的兩個實參。在函數(shù)fun(a,b)中,由于a>b,故返回較小值b即8,在函數(shù)fun(b,C)中,由于b<c,故返回較小值c即為7,因此調(diào)用函數(shù)fun(fun(a,b),fun(b,C))相當(dāng)于執(zhí)行函數(shù)fun(8,7),返回較小值即7。所以,4個選項中選項D符合題意。
56.D解析:該程序的執(zhí)行過程是:首先聲明整型指針變量P和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時,q已經(jīng)指向了一個具體的存儲單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語句。
57.C解析:在C語言中,數(shù)組的地址和數(shù)組中的第一個元素的地址相同。數(shù)組中第一個元素地址的表示方法為&aa[0],與其等價的有&aa[0)++;選項A為數(shù)組的第1個元素的地址下移一位即是第二個元素aa[1]的地址;B也為數(shù)組的第二個元素的地址,選項D中aa表示數(shù)組的地址,加1表示數(shù)組首地址后移一位,即代表數(shù)組元素中的第二個元素aa[1]的地址。
58.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個指針變量中存儲的地址是不同的。變
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州城市職業(yè)學(xué)院《銷售終端設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州財經(jīng)大學(xué)《單片機原理及應(yīng)用實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州電力職業(yè)技術(shù)學(xué)院《大學(xué)數(shù)學(xué)Ⅱ微積分》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年-山西省安全員A證考試題庫
- 廣州珠江職業(yè)技術(shù)學(xué)院《氣力輸送與廠內(nèi)運輸》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽學(xué)院《商務(wù)日語口譯》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年湖北建筑安全員《C證》考試題庫及答案
- 廣州應(yīng)用科技學(xué)院《有機化學(xué)實驗二》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025上海市安全員A證考試題庫及答案
- 廣州鐵路職業(yè)技術(shù)學(xué)院《精密機械設(shè)計基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 保密培訓(xùn)記錄表
- 專升本英語寫作專題講解課件
- 平安保險授權(quán)委托書
- 員工安全培訓(xùn)教育制度
- 深圳證券交易所
- 各種管道護理評分標(biāo)準(zhǔn)
- 體育賽事志愿者管理
- 遼寧華電高科環(huán)保技術(shù)有限公司油泥煤循環(huán)流化床協(xié)同資源化工業(yè)化試驗項目環(huán)境影響評價報告書
- 復(fù)旦大學(xué)普物B期末考試試卷
- 剪映教程PPT版本新版剪影零基礎(chǔ)教學(xué)課程課件
- 非煤礦山安全風(fēng)險分級管控與安全隱患排查治理u000b雙重預(yù)防機制建設(shè)知識
評論
0/150
提交評論