版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年遼寧省朝陽市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.順序結(jié)構(gòu)的本質(zhì)特點是()。
A.數(shù)據(jù)元素存儲在地址連續(xù)的內(nèi)存空間
B.數(shù)據(jù)元素緊鄰
C.數(shù)據(jù)元素在內(nèi)存中的相對位置表示數(shù)據(jù)之間的邏輯關(guān)系
D.不使用指針
2.采用表結(jié)構(gòu)來表示數(shù)據(jù)和數(shù)據(jù)間聯(lián)系的模型是()。
A.層次模型B.概念模型C.網(wǎng)狀模型D.關(guān)系模型
3.設(shè)變量已正確定義,則以下能正確計算n!的程序段是______。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
4.
5.有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)ifstrcmp(p[i],p[j])>0{t=p[i]p[i]=p[j];p[j]=t;}}main(){char*p[5]=("abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序運行后的輸出結(jié)果是______。A.2B.3C.6D.4
6.以下是if語句的基本形式:
if(表達(dá)式.語句
其中“表達(dá)式”()。
A.必須是邏輯表達(dá)式B.必須是關(guān)系表達(dá)式C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式D.可以是任意合法的表達(dá)式
7.用向量和單鏈表示的有序表均可使用折半查找方法來提高查找速度()A.是B.否
8.檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
9.下面關(guān)于圖的存儲的敘述中正確的是()。
A.用鄰接表法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點個數(shù)無關(guān)
B.用鄰接表法存儲圖,占用的存儲空間大小與圖中邊數(shù)和頂點個數(shù)都有關(guān)
C.用鄰接矩陣法存儲圖,占用的存儲空間大小與圖中頂點個數(shù)和邊數(shù)無關(guān)
D.用鄰接矩陣存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點個數(shù)無關(guān)
10.下列敘述中正確的是()。
A.測試工作必須由程序編制者自己完成
B.測試用例和調(diào)試用例必須一致
C.一個程序經(jīng)調(diào)試改正錯誤后,一般不必再進(jìn)行測試
D.上述三種說法都不對
11.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序運行后的輸出結(jié)果是()。A.2B.1C.0D.3
12.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為______。
A.0B.1C.真D.假
13.函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應(yīng)填入的選項是()。
A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s
14.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
15.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0
16.排序方法中,將整個無序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
17.若有如下形式的函數(shù):intfun(inta[],int*p,intn){…}調(diào)用函數(shù)之前需要對函數(shù)進(jìn)行聲明,則以下選項中錯誤的是()。
A.intfun(int,int,int);
B.intfun(inta[],int*p,intn);
C.intfun(inta[],int*,int);
D.intfun(int[],int*,int);
18.能正確表示x>=3或者x<1的關(guān)系表達(dá)式是()。
A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1
19.軟件詳細(xì)設(shè)計產(chǎn)生的圖如圖所示。該圖是()。A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
20.下列有關(guān)格式輸入函數(shù)scanf的敘述中正確的是()
A.輸入項可以是C語言中規(guī)定的任何變量,并且在任何變量前必須加地址符號“&”
B.可以只有格式控制項,沒有地址列表項
C.在輸入數(shù)據(jù)時,必須規(guī)定精度。如:scanf("%4.2f",&d);
D.當(dāng)輸入數(shù)據(jù)時,必須指明變量地址
二、2.填空題(20題)21.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
22.以下程序運行后的輸出結(jié)果是【】。
#include<stdio,h>
#include<stating,h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abedefg";
fun(s,3,strlen(s));puts(s);
}
23.耦合和內(nèi)聚是評價模塊獨立性的兩個主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。
24.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf("%d\n",j);}
25.下列語句能循環(huán)______次。
ints=12;
while(s);
--s;
26.以下程序的輸出結(jié)果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
27.在最壞情況下,堆排序需要比較的次數(shù)為()。
28.棧和隊列通常采用的存儲結(jié)構(gòu)是【】。
29.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。
word_num(str
charstr[];
{inti,num=0,word=0;
for(i=0;str[i]!=【】;i++)
if(【】=")word=0
elseif(word=0)
{
word=1;
【】;
}
return(num);
}
30.對軟件是否能達(dá)到用戶所期望的要求的測試稱為【】。
31.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
32.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
33.以下程序的輸出結(jié)果是【】。
main()
{charc='z';
printf("%c",c-25);}
34.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。
35.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{intI;
for(I=0;【】!='\n';I++);
return(I);}
36.下列程序的輸出結(jié)果是______。
main()
{inti,sum;
for(i=1;i<7;i++)
sum+=i;
printf("%d",sum);
}
37.設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式double(1+x/y)的值為【】。
38.以下程序的運行結(jié)果是______。
structexmp{charname[10];
intnumber;
};
structexmptest[3]={{"WangXi",1},{"QiYu",2},{"HuHua",3}};
main()
{printf("%c,%s\n",test[0].name[1],test[2].name+3);
}
39.以下程序運行后的輸出結(jié)果是______。
intf(inta[],intn)
{
if(n>=l)
returnf(a,n-1)+a[n-1];
else
return0;
}
main{)
{
intaa[5]={1,2,3,4,5},s;
s=f(aa,5);
printf{'%d\n",s);
}
40.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,c=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
三、1.選擇題(20題)41.設(shè)已包含頭文件<string.h>,下列程序段的運行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
42.使用白盒測試法時,確定測試數(shù)據(jù)應(yīng)該根據(jù)()和指定的覆蓋標(biāo)準(zhǔn)。
A.程序的內(nèi)部邏輯B.程序的復(fù)雜結(jié)構(gòu)C.使用說明書D.程序的功能
43.關(guān)系代數(shù)運算是以______為基礎(chǔ)的運算。
A.關(guān)系運算B.謂詞運算C.集合運算D.代數(shù)運算
44.判斷char型變量cl是否為大寫字母的正確表達(dá)式是
A.′A′<=cl<=′Z′
B.(cl>=A)&&(cl<=Z)
C.(′A′>=cl)||(′Z′<=cl)
D.(cl>=′A′)&&(cl<=′Z′)
45.能直接與CPU交換信息的功能單元是()。
A.硬盤B.控制器C.主存儲器D.運算器
46.命令“DIRA:*.*/W”的功能是()
A.寬行顯示A盤當(dāng)前目錄的所有文件
B.寬行顯示A盤所有目錄的所有文件
C.寬行顯示A盤的所有目錄
D.顯示A盤中的文件名,每滿一屏后停頓一下
47.已知—個有序表為(12,18,24,35,47,50,62,83,90,115,134),當(dāng)二分查找值為47的元素時,經(jīng)過______次比較后查找成功。
A.1B.2C.3D.4
48.以下程序中與語句k=a>b?(b>c?1:0):0;功能等價的是
A.if((a>b)&&(b>c))k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b<=c)k=1;elsek=0;
D.if(a>b)k=1;elseif(b<c)k=1;
49.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成
A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序
50.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是
A.acbedB.decabC.deabcD.cedba
51.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
52.以下能正確定義一維數(shù)組的選項是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
53.若函數(shù)調(diào)用時的實參為變量時,以下關(guān)于函數(shù)形參和實參的敘述中正確的是()。
A.函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元
B.形參只是形式上的存在,不占用具體存儲單元
C.同名的實參和形參占同一存儲單元
D.函數(shù)的形參和實參分別占用不同的存儲單元
54.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}
D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}
55.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
56.下面程序段的運行結(jié)果是
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A.67B.0C.字符′C′的地址D.字符′C′
57.若x為int型變量,則執(zhí)行以下語句后,x的值為()x=6;x+=x-=x*x;A.36B.-60C.60D.-24
58.設(shè)有以下定義:typedefunion{longi;intk[5];charc,}DATE,structdate{intcat;DATEcow;doubledog;}too;DATEmax;則下列語句的執(zhí)行結(jié)果是()printf("%d",stzeof(structdate)+sizeof(max));
A.25B.30C.18D.8
59.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%ss\n",str);}的輸出是______。
A.xyzabcABCB.zabcABCC.yzbcABCD.xyabcABC
60.設(shè)有以下定義和語句,輸出的結(jié)果是(用small模式編譯,指針變量占2個字節(jié))______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));
A.20B.16C.14D.12
四、選擇題(20題)61.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。
A.aChedB.deCabC.deabeD.Cedba
62.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta=2,b=3,P;
p=f(a,b);
printf(”%d”,p);
}
intf(a,b)
{intc;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-l;
return(c);
}
A.-lB.0C.1D.2
63.
64.有如下程序:main(){intx=23;do{printf(”%d”,x--);}while(!x);}該程序的執(zhí)行結(jié)果是()。A.321B.23C.不輸出任何內(nèi)容D.陷入死循環(huán)
65.
66.設(shè)有以下語句
67.
68.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1.1.3B.2,2,3C.1,2,3D.3,3,3
69.下列關(guān)于指針變量賦空值的說法錯誤的是
A.當(dāng)賦空值的時候,變量指向地址為0的存儲單元B.賦值語句可以表達(dá)為變量名=’\0’;
C.賦值語句可以表達(dá)為變量名=0;D.一個指針變量可以被賦空值
70.
71.若有以下程序段:
輸出結(jié)果是()。
A.2B.4C.8D.16
72.在位運算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
73.有以下程序:
程序的運行結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,1,
D.0,1,2,3,4,5,6,7,8,9,
74.
對兩個數(shù)組a和b進(jìn)行下列初始化:
charm[]1="l234567":
charn[]={1,2,3,4,5,6,7);
則下列敘述正確的是()。
A.數(shù)組m與數(shù)組n完全相同
B.數(shù)組m與數(shù)組n長度相同
C.數(shù)組m比數(shù)組n長1
D.數(shù)組m與數(shù)組n中都存放字符串
75.在單鏈表中,增加頭結(jié)點的目的是()。
A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標(biāo)識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯崿F(xiàn)
76.在軟件設(shè)計中,不屬于過程設(shè)計工具的是()。
A.PDL(過程設(shè)計語言B.PAD圖C.N—S圖D.DFD圖
77.有以下程序
#include"stdio.h"
main()
{structdate
{intnumber;
floatfenzhi;
charname;
}stu;
printf("%d\n",sizeof(stu));
}程序的運行結(jié)果是
A.3B.5
C.7D.8
78.設(shè)有以下程序段:
要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯誤的輸入語句是()。
A.seanf(”%s”Ptrtitle);
B.scanf(”%s”,rec.title);
C.scanf(’’%s”,(*pu).title);
D.scanf(”%s”,ptr->title);
79.以下敘述中正確的是()。A.在c語言中,預(yù)處理命令行都以‘‘#”開頭
B.預(yù)處理命令必須位于c源程序的起始位置
C.#include必須放在c程序的開頭
D.C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能
80.
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。
例如,當(dāng)s中的數(shù)為87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:實現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到
pl所指的字符串的后面。
例如,分別輸入下面兩個字符串:
程序輸出:
注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
參考答案
1.C
2.D關(guān)系模型采用二維表來表示,簡稱表。本題答案為D選項。
3.D解析:A選項,將f賦值為0,結(jié)果得到0,因為0乘任何數(shù)都為0;B選項,i<n,計算的是(n-1)!,C選項將陷入死循環(huán)。
4.D
5.D解析:字符串比較函數(shù)“strcmp(char*s1,char*s2)”的比較規(guī)則是對兩個字符串自左至右逐個字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到到"\\0"為止。如果全部相同,則認(rèn)為相等:若出現(xiàn)不相同的字符,則以第一個不相同的字符的比較結(jié)果為準(zhǔn)。當(dāng)s1<s2,返回值<0;當(dāng)s1=s2時,返回值二0:當(dāng)s1>s2時,返回值>0。故本題經(jīng)過排序后,得到第二個字符串是“abbd”,所以輸出結(jié)果是4。
6.D解析:本題主要考查關(guān)于if語句的說明,if后面圓括號中的表達(dá)式,可是任意合法的C語言表達(dá)式(如:邏輯表達(dá)式、關(guān)系表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等),也可以是任意類型的數(shù)據(jù)(如:整型、實型、字符型、指針型等。)
7.N
8.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(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)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
9.B
10.D解析:測試不是為了證明程序是正確的,而是在設(shè)想程序有錯誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯誤和缺陷,一般應(yīng)當(dāng)避免由開發(fā)者測試自己的程序,因此,選項A錯誤;測試是為了發(fā)現(xiàn)程序錯誤,不能證明程序的正確性,調(diào)試主要是推斷錯誤的原因,從而進(jìn)一步改正錯誤,調(diào)試用例與測試用例可以一致,也可以不一致,選項B錯誤;測試發(fā)現(xiàn)錯誤后,可進(jìn)行調(diào)試并改正錯誤:經(jīng)過調(diào)試后的程序還需進(jìn)行回歸測試,以檢查調(diào)試的效果,同時也可防止在調(diào)試過程中引進(jìn)新的錯誤,選項C錯誤。
11.C在ifelse語句中else,總是與離它最近的配對。本題目中x勸1所以!x為0,所以執(zhí)行else齬句中的內(nèi)容,判斷(x==0)是否成立,因為x為1所以條件不成立,所以else部分的近.else語句不再執(zhí)行,所以y的值還是初始值0。
12.B
13.B函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找最大值并返回。通過for循環(huán)比較,s始終指向最大值的那個元素。取指針的值,使用*P,因此比較使用*P和*s,又因為找最大值,當(dāng)*s<*p時,修改指針s的指向。故本題答案為B選項。
14.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.
15.A[解析]B)與D)選項中取模運算符%的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B)、D)錯誤。C)選項中不能將x+z的值賦給表達(dá)式y(tǒng)*5.所以C)錯誤。
16.A解析:希爾排序法的基本思想是:將整個無序列分割成若干小的子序列分別進(jìn)行插入排序。
17.AC語言中,函數(shù)聲明的函數(shù)名、返回值類型和參數(shù)列表必須與函數(shù)定義相同。其中參數(shù)列表中可以省略參數(shù)名。題干中,fun函數(shù)返回整型,3個參數(shù)分別是:整型指針、整型指針、整型。選項A中,第1個參數(shù)應(yīng)該是整型指針類型,第2個參數(shù)也應(yīng)該是指針類型,錯誤;其他選項都正確。故本題答案為A選項。
18.C
19.CN-S圖(也被稱為盒圖或CHAPIN圖)、PAD(問題分析圖)及PFD(程序流程圖)是詳細(xì)設(shè)計階段的常用工具。E—R圖即實體一聯(lián)系圖,是數(shù)據(jù)庫設(shè)計的常用工具。從題中圖可以看出該圖屬于程序流程圖。
20.D解析:如果是指針型變量或數(shù)組名,則變量前不加地址符號&,所以選項A的說法有誤。必須有地址列表項才能實現(xiàn)正確輸入,所以選項B的說法有誤。在輸入數(shù)據(jù)時,不可以指定實型數(shù)據(jù)的精度,所以選項C的說法有誤。只有選項D的說法正確。
21.x+=1x+=1解析:本題考查“++”,“--”運算符。“++”、“--”只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
22.abcfgabcfg解析:fun函數(shù)中for循環(huán)語句的作用是將s所指的字符串中從第5個字符到第7個字符依次向前移動兩個位置。輸出結(jié)果為abcfg。
23.內(nèi)聚內(nèi)聚
24.4040解析:分析程序,初始時i=10,j=0,這時do循環(huán)中的“i=j+i”
25.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。
26.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉(zhuǎn)換類型轉(zhuǎn)換運算符,將一個表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。
本題可按部就班地逐步運算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
27.O(nlog2n)
28.鏈?zhǔn)酱鎯晚樞虼鎯︽準(zhǔn)酱鎯晚樞虼鎯?/p>
29.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:
①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個字符;
②str[i]代表字符串str中的第i+1個字符;
③整型變量num的值是要記錄的單詞的個數(shù)。
C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結(jié)束符“\\0”,所以在題中第一個空中應(yīng)填寫“\\0”;題中第二個空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。
30.有效性測試有效性測試
31.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
32.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
33.aa解析:“z”的ASCII碼值為122,經(jīng)過c-25運算后得97,以字符形式輸出是a。
34.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2。
35.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。
36.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。
37.11解析:本題考查兩個知識點:一是x/y的值為整型,即為0;二是數(shù)1是double類型。
38.aua。a,ua。解析:test是結(jié)構(gòu)體數(shù)組,每個元素均可看作是一個結(jié)構(gòu)體變量,主函數(shù)將結(jié)構(gòu)體數(shù)組元素test[0]中的name域下標(biāo)為1的元素以字符形式輸出,將結(jié)構(gòu)體數(shù)組元素test[2]中的name域從地址name+3開始以字符串的形式輸出。
39.1515解析:在函數(shù)f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1);,否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3]……直到f(aa,0)返回0.故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。
40.88解析:本程序定義了3個指針變量p1、p2、p,并且將,、b的地址分別賦給P1、p2,則*p1=a=2,*p2=b=4,所以表達(dá)式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。
41.A解析:頭文件<string.h>是字符串處理函數(shù)對應(yīng)的頭文件,要想調(diào)用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應(yīng)的頭文件,否則無法使用庫函數(shù)。
strcpy(s1,s2)把s2中的字符串復(fù)制到s1中,所以結(jié)果就為s2的長度。
42.A白盒測試是把測試對象看作是一個打開的盒子,允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及相關(guān)信息來設(shè)計或選擇測試用例,對程序所有的邏輯路徑進(jìn)行測試。所以,白盒測試的對象基本上是源程序,以程序的內(nèi)
【知識拓展】軟件測試按照功能劃分可以分成白盒(白箱)測試和黑盒(黑箱)測試。其中黑盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進(jìn)行測試和驗證。
43.C解析:關(guān)系代數(shù)是以集合代數(shù)為基礎(chǔ)女發(fā)展起來的,它是以關(guān)系代數(shù)作為運算對象的一組高級運算的集合。它的基本操作是并、交、差、笛卡爾積,另外還包括針對數(shù)據(jù)庫環(huán)境專門設(shè)計的操作,包括對關(guān)系進(jìn)行垂直分割(投影)、水平分割(選擇)、關(guān)系的結(jié)合(連接)等。
44.D解析:本題考查字母大小寫的判斷。字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A到Z是從65到90,所以只要變量c1大于A并且小于Z就能保證其為大寫字母。
45.C運算器和控制器都是CPU的一部分,顯然不可能是正確答案,而硬盤中的程序、數(shù)據(jù)首先要調(diào)入內(nèi)存儲器中,因為它不能直接與CPU打交道。
46.A
47.D
48.A解析:三目運算表達(dá)式的規(guī)則為如果“?”前面的表達(dá)式的值為真,則取“:”前的表達(dá)式的值,否則,取“:”后面表達(dá)式的值。分析題目中給出的表達(dá)式可知,如果a>b和b>c同時成立,k=1,否則k=0。
49.B解析:由?!昂筮M(jìn)先出”的特點可知:A)中e1不可能比e2先出,C)中e1不可能比e2先出,D)中棧是先進(jìn)后出的,所以不可能是任意順序。B)中出棧過程如下圖所示:[*]
50.D解析:中序遍歷的遞歸算法如下:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法如下:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法如下:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。由后序遍歷結(jié)果dabec可知c是根結(jié)點,且無右子樹。再由左子樹的后序遍歷結(jié)果dabe可知,e是左子樹的根結(jié)點,且由左子樹的中序遍歷結(jié)果deba可知,d是左子樹的左子樹結(jié)點,b和a是左子樹的右子樹結(jié)點。再次由后序遍歷結(jié)果ab可知,a是左子樹結(jié)點。b是根結(jié)點。至此,各結(jié)點在樹中的位置已完全確定。
51.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達(dá)式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數(shù)初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(shù)(某字符的ASCII碼值)。選項C定義的初始值表達(dá)式中出現(xiàn)了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。
52.B解析:選項A定義數(shù)組時省略了長度,而C語言中規(guī)定,只有在定義并同時進(jìn)行初始化時,數(shù)組的長度才可以省略,數(shù)組的長度為初始化時候的成員個數(shù),故選項A錯誤;在C語言中規(guī)定,數(shù)組的長度必須是一個整數(shù)或整型常量表達(dá)式,故選項C不正確:定義時數(shù)組的長度不能使用變量表示,故選項D不正確,所以,4個選項中選項B符合題意。
53.D解析:在定義函數(shù)時函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù)(可以是一個表達(dá)式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。故本題應(yīng)該選擇D。
54.C解析:switch后的括號中只能是整型或字符型表達(dá)式,選項A中使用的是浮點型變量x,故不正確。選項B在switch的括號后面多了一個分號,故也不正確。switch的case標(biāo)號后只能是常量或常量表達(dá)式,而不能是變量,所以選項D也不正確。故應(yīng)該選擇C。
55.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計的常用工具,不是需求分析的工具。
56.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標(biāo)志'\\0'的地址,因而*(p+3)的值為0。
57.D結(jié)果為D-24首先,我們拆開來看,按照運算先后順序來,x*x=36然后x=x-(-36)等于x=6-(-36)結(jié)果為-30最后x=x+(-30)等于x=6+(-30)結(jié)果為-24
58.B
59.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC放到了*p1所指向的存儲單元中;strcpy在本題將abcABC復(fù)制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。
60.D解析:sizeof函數(shù)計算已知類型所占的字節(jié)數(shù)。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。指針變量占2個字節(jié),所以cat和*next各占2個字節(jié);double型占8個字節(jié),故too共占12個字節(jié)。
61.D二叉樹的遍歷有3種:前序、中序和后序。①前序遍歷訪問根結(jié)點,然后按左右順序遍歷子結(jié)點;②中序首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;③后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點。本題根據(jù)后序和中序遍歷的結(jié)果可以得出二叉樹的結(jié)構(gòu),然后再對其進(jìn)行前序遍歷,正確答案選項為D。
62.A
\n本題考查if-else語句。if為真則執(zhí)行C=1,if為假則執(zhí)行else中的條件,不符合繼續(xù)執(zhí)行else。
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鎘、鉍相關(guān)常用有色金屬項目發(fā)展計劃
- 2025年度二零二五版1209跨境電商合伙創(chuàng)業(yè)協(xié)議2篇
- 2025年度快遞配送員職業(yè)培訓(xùn)與聘用協(xié)議書3篇
- 二零二五年度grc線條裝飾線條產(chǎn)業(yè)聯(lián)盟與行業(yè)規(guī)范合同2篇
- 2024年瓶裝礦泉水品牌形象設(shè)計與銷售合作協(xié)議3篇
- 2025年度酒店與旅行社會展旅游服務(wù)合作協(xié)議3篇
- 2024年度水泥行業(yè)產(chǎn)能過剩處置購銷合同3篇
- 2024年電子采購合同標(biāo)準(zhǔn)版
- 2024年美團(tuán)電商合作商戶合同版
- 2024年項目監(jiān)管與代理業(yè)務(wù)協(xié)議版B版
- 2024統(tǒng)編版七年級上冊語文期末復(fù)習(xí):名著閱讀 練習(xí)題匯編(含答案解析)
- 2024年物業(yè)管理員(中級)職業(yè)鑒定考試題庫(含答案)
- 統(tǒng)編版(2024版)七年級上冊歷史:期末復(fù)習(xí)課件
- 國開(陜西)2024年《中國制造之高端裝備》形考作業(yè)1-4答案
- 陪診培訓(xùn)課件
- 工會新聞寫作培訓(xùn)課題
- 醫(yī)療行業(yè)銷售內(nèi)勤工作匯報
- 統(tǒng)計年報和定報培訓(xùn)
- 浙江省杭州市西湖區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試語文試卷+
- 物流行業(yè)物流供應(yīng)鏈金融服務(wù)方案
- 兼職客服簽約合同范例
評論
0/150
提交評論