版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年江西省吉安市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>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);}程序的運行結(jié)果是()。
A.55B.50C.45D.60
2.在下面的字符數(shù)組定義中,哪一個有語法錯誤()。A.chara[20]=”abcdefg”;
B.chara[]=”x+y=55.”;
C.chara[15];
D.chara[10]=’5’;
3.若有說明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為abcdefghi
B.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新勾defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
4.有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(“%d\n”,m);}intf(intx){returnx*2;}程序的運行結(jié)果是()。
A.8B.2C.4D.1
5.對于哈希函數(shù)H(key)=key%13,被稱為同義詞的關(guān)鍵字是_______
A.35和41B.23和39C.15和44D.25和51
6.以下非法的賦值語句是
A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;
7.任何一棵二叉樹的葉子結(jié)點在前序、中序和后序遍歷序列中的相對次序()。
A.不發(fā)生改變B.發(fā)生改變C.不能確定D.以上都不對
8.函數(shù)原形中,下列()是不必要的。
A.函數(shù)的類型B.形式參數(shù)名C.函數(shù)名D.形式參數(shù)類型
9.以下不構(gòu)成無限循環(huán)的語句或語句組的是()。
A.n=0;do{++n;}while(n<=0);
B.n=0;while(1){n++;}
C.n=10;while(n);{n--;}
D.for(n=0,i=1;i++)n+=i;
10.對于線性表(7,34,55,25,64,46,20,10)進行散列存儲時,若選用H(K)=K%9作為散列函數(shù),則散列地址為1的元素有()個。
A.1B.2C.3D.4
11.有以下程序:voidfunl(char*p)程序執(zhí)行后的輸出結(jié)果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program
12.在位運算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
13.在一個鏈?zhǔn)疥犃兄?,假設(shè)f和r分別為隊頭和隊尾指針,則插入S所指結(jié)點的運算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.S->next=rr=s;
D.r->next=f;f=s;
14.若變量已正確定義為int型,要通過語句“scanf(“%d,%d,%d”,&a,&b,&c);”將a賦值為1、將b賦值為2、將c賦值為3,以下輸入形式中錯誤的是(注:□代表一個空格符)()。
A.1,2,3<Enter>
B.□□□1,2,3<Enter>
C.1,□□□2,□□□3<Enter>
D.1□2□3<Enter>
15.以下選項中的表達式調(diào)用庫函數(shù)依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
16.設(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;
17.程序中若有如下說明和定義語句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下選項中對函數(shù)Fun的正確調(diào)用語句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);
18.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
19.下列定義中,不正確的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
20.
二、2.填空題(20題)21.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
22.寫出下列程序的輸出結(jié)果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
23.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性維護。
24.以下程序的輸出結(jié)果是______。
intfun(int*x,int*y)
{staticintm=4;
m=*X+*y;*x-=m;*y+=m;
returnm;
}
main()
{inta=2,b=6,n;
n=fun(&a,&B);printf("%d,",n);
n=fun(&a,&B);printf("%d\n",n);
}
25.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個數(shù),累加的和值放入x所指的存儲單元中。請?zhí)羁铡?/p>
fun(intb[],intn,int*x)
{intk,r=0;
for(k=0,k<n;k++)r=【】;
【】=r;
}
26.以下程序的輸出結(jié)果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
27.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
28.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{intn=12345,d;
while(n!=0){d=n%10;printf("%d",D);n/=10;}
}
29.模式/內(nèi)模式映射為數(shù)據(jù)庫提供了【】數(shù)據(jù)獨立性。
30.閱讀程序:
#include<string.h>
#include<strdio.h>
strle(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!='0')num++;
while(b[n])
{*(a+num)=b[n];num++;n++;}
return(num);
}
main()
{charstrl[81],str2[81],*p1=strl,*p2=str2;
gets(p1);gets(p2);
prinf("%d\n",strle(p1,p2));
}
運行上面的程序,如果從鍵盤上輸入字符串qwerty和字符串a(chǎn)bcd,則程序的輸出結(jié)果是【】。
31.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。
32.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。
33.下列程序的循環(huán)次數(shù)是______。
x=2;
do
{x=x*x;}
while(!x);
34.下面程序的運行結(jié)果是______。
#defineN10
#defines(x)x*x
#definef(x)(x'x)
main()
{
inti1,i2;
i1-1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
35.下面程序的功能是將一個字符串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);}
36.下面程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
37.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為()。
38.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},<1,3,5,7}},則初始化后,a[2][2]得到的初值是______。
39.以下程序的定義語句中,x[1]的初值是(),程序運行后輸出的內(nèi)容是()。#include<stdio.h>main(){intx[]={1,2,3,4,5,6,7,8,9,10,1l,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1],printf("q%d”,p[i][0]);}printf("\n");}
40.實體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學(xué)校有許多教師,而一個教師只歸屬于一個學(xué)校,則實體集學(xué)校與實體集教師之間的聯(lián)系屬于【】的聯(lián)系。
三、1.選擇題(20題)41.軟件系統(tǒng)生命周期的第一個階段是______。
A.軟件分析階段B.軟件設(shè)計階段C.軟件運行階段D.軟件維護階段
42.下列敘述中,錯誤的是()。
A.在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量
B.在main()函數(shù)體內(nèi)定義的變量是全局變量
C.形參是局部變量,函數(shù)調(diào)用完成即失去意義
D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內(nèi)不起作用
43.若有定義inta[10],*p=a,則p+6表示()。
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
44.在E-R圖中,用來表示實體的圖形是
A.矩形B.橢圓形C.菱形D.三角形
45.下列選項中,不屬于模塊間耦合的是()
A.內(nèi)容耦合B.異構(gòu)耦合C.控制耦合D.數(shù)據(jù)耦合
46.執(zhí)行下面的程序后,a的值為()。main(){inta,b;for(a=1,b=1;a<=10;a++){if(b%3==1){b+=3;continue;}b=5;}}
A.7B.8C.9D.10
47.設(shè)計軟件結(jié)構(gòu)是在軟件生命周期的()。
A.軟件定義期B.軟件開發(fā)期C.軟件維護期D.以上3個都不是
48.有以下程序:#include<stdio.h>intf1(intx,inty){returnx>y?x:y;}intf2(imx,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(e,d));g=a+b+e+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
49.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入出沒有輸出
50.下面各選項中,均是C語言合法標(biāo)識符的選項組是
A.33weautoB._23me_3ewC._433e_elseD.ER-DF32
51.下列語句組中,不正確的是()。
A.char*s;s="Olympic";
B.chars[]="Olympic";
C.char*s;s={"Olympic"};
D.chars[]={"Olympic"};
52.設(shè)有以下語句:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];則表達式的值是6的為______。
A.p++->nB.p->n++C.(*p).n++D.++p->n
53.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個函數(shù)中定義另一個函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
54.下列選項中,值為1的表達式是()。
A.1-'0'B.1-'\0'C.'1'-0D.'\0','0'
55.下列不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
56.在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關(guān)鍵碼值11,所需的關(guān)鍵碼比較次數(shù)為______。
A.2B.3C.4D.5
57.請選出正確的程序段
A.int*p;scanf("%d",p);…
B.int*s,k;*s=100;…
C.int*s,k;char*p,c;s=&k;p=&c;*p=′a′;…
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…
58.以下程序的輸出結(jié)果是______。#include<stdio.h>structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s\n",(*p).name);}main(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};fun(students+2);}
A.ZhangB.ZhaoC.WangD.18
59.下列程序的輸出結(jié)果是()。
#include<stdio.h>
#defineF(x)2.84+x
#definew(y)printf("%d",(int(y))
#defineP(y)w(y)pmchar('\n'》
main()
{intx=2;
P(F(5)*x);
}
A.12B.13C.14D.16
60.下列程序的輸出結(jié)果是______。main(){intn[5]={0,0,0},i,k=2;for(i=0;i
A.不確定的值B.2C.1D.0
四、選擇題(20題)61.
以下程序的輸出結(jié)果是()。
voidfun(int*a,inti,inti)
{intt;
if(i<i)
{t=a[i[;a[i]=a[j];a[j]一t;
i++;j--;fun(a,i,j);
}
}
main
{intK[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<1;i++)printf("%2d",x[i]);
printf("\n");
}
A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2
62.有以下程序
63.
64.
65.有以下程序
66.
67.下列程序的輸出結(jié)果是()。
A.a=4,b=4
B.a=4,b=5
C.a=5,b=4
D.a=5,b=5
68.
69.在以下給出的表達式中,與while(E)中的(E)不等價的表達式是()。
70.
71.下列選項中屬于軟件生命周期開發(fā)階段任務(wù)的是()。
A.可行性研究
B.需求分析
C.詳細設(shè)計
D.軟件維護
72.
73.以下程序運行后的輸出結(jié)果是()。
A.2B.4C.6D.3
74.
75.
76.有以下程序:
程序運行后的輸出結(jié)果是()。
A.2B.4C.6D.8
77.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的
B.算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)
C.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
D.算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量
78.
設(shè)有下列程序段:
charstr[]="HelloWorld":
char*plr;
ptr=str:
執(zhí)行上面的程序段后,*(ptr+10)的值為()。
A.\0B.0C.不確定的值D.0的地址
79.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(工具軟件)。下面屬于應(yīng)用軟件的是().
A.學(xué)生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)
80.以下敘述中正確的是()。
A.程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試
B.程序設(shè)計的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C.程序設(shè)計的任務(wù)就是確定所用算法
D.以上三種說法都不完整
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。
例如,輸入opdye,則應(yīng)輸出deopy。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include%string.h>
#include%stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
intproc(charstr[])
{
charC;
unsignedi,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j4-+)
if(str[i]>str[j])
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=C;
}
}
voidmain
{
charst/[81];
system("CLS");
printf("\nPleaseenteracharacter
string:");
gets(str);
printf("\nknBeforesorting:\n%s",str);
proc(str);
printf("\nAftersortingdecendingly:\n
%S",str);
}
六、程序設(shè)計題(1題)82.實現(xiàn)字符串拷貝的函數(shù)strcpy為()。
參考答案
1.D靜態(tài)變量是始終存在的,當(dāng)函數(shù)變量退出后,靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項。
2.D
3.Dstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串的末尾,要保證s1有足夠的空間容納下連接后的字符串。
4.A第1次調(diào)用為m=f(f(f(1))),第2次調(diào)用為m=f(f(2)),第3次調(diào)用為m=f(4),即返回值為8。故本題答案為A選項。
5.D
6.C解析:本題考查的知識點是賦值語句的基本知識。在表達式的運算中,雙目賦值運算符的格式為“變量二表達式”,單目運算符一般形式為“運算符表達式”或“表達式運算符”。常量和表達式是不能被賦值的。選項A為復(fù)合表達式,首先計算(i=2,++i)的值,然后賦值給n,故選項A正確;選項B為簡單自加運算,故選項B正確;選項C在表達式++(i+1);中,(i+1)不是變量,該表達式的值為常量,而在++運算中,其運算對象必須為變量,故選項C錯誤;選項D中為復(fù)合賦值表達式,正確.所以應(yīng)當(dāng)選擇C。
7.A
8.A
9.AA選項中do后面的語句只執(zhí)行了一次便結(jié)束了循環(huán);B選項中條件while(1)永遠成立,所以是死循環(huán);C選項中n的值為10,而循環(huán)體為空語句,所以while(n)永遠為真,進入死循環(huán);D選項中for語句第2個表達式為空,所以沒有判斷條件,進入死循環(huán)。故本題答案為A選項。
10.D
11.A本題中使用了函數(shù)的調(diào)用,由funl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內(nèi)容增加1,而從主函數(shù)傳到函數(shù)時是從下標(biāo)為3開始傳,因此當(dāng)調(diào)用函數(shù)執(zhí)行完后,傳過去的字符串為hsbn,前面不變。
12.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。例如,a<<4是把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。
13.B
14.D在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時,輸入數(shù)據(jù)之間必須用空格、回車符、制表符等間隔符隔開,間隔符個數(shù)不限。scanf的格式控制字符串也可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配,所以逗號必須輸入。故本題答案為D選項。
15.C
16.Cmark為結(jié)構(gòu)體中的數(shù)組,不能直接賦值,所以C選項錯誤。故本題答案為C選項。
17.A解析:題中將函數(shù)fun的入口地址賦給了指針變量f1,這時f1和fun都指向函數(shù)的開頭,調(diào)用*f1就是調(diào)用函數(shù)fun。
18.C解析:解答本題,首先要明白在對指針進行加、減運算的時候,數(shù)字“1”不是十進制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。
19.C
20.D
21.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
22.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加l,即程序結(jié)束后得到n=4,但輸出的是3。
23.完善性軟件維護活動包括以下幾類:改正性維護,適應(yīng)性維護、完善性維護和預(yù)防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
24.88。8,8。解析:本題考查靜態(tài)局部變量值的特點,請參考第10章有關(guān)習(xí)題的解析。
25.r+b[k]*x
26.本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉(zhuǎn)換類型轉(zhuǎn)換運算符,將一個表達式轉(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.完整性控制完整性控制
28.5432154321解析:在while循環(huán)中,d=n%10;語句每次求得的結(jié)果是n個位上的數(shù)值,例如12345÷10所得的余數(shù)就是個位上的5。接下來輸出得到的個位數(shù)字d,然后執(zhí)行n/=10;語句,該語句等價于n=n/10;。在C語言中,如果/運算的兩個運算分量都是整數(shù),那所得的結(jié)果也截尾取整,所以12345/10=1234,即n-=n/10;語句的作用是讓n截去個位上的數(shù)字。由此可知,隨著while循環(huán)的繼續(xù),n依次為12345、1234、123、12、1,而每次輸出n的個位數(shù)字將為5、4、3、2、1。故本題應(yīng)填543210。
29.物理物理
30.10
31.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機制和區(qū)別。
32.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。
33.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。
34.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
35.k-1k\r\n-1解析:顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]還位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個空框處應(yīng)填入k。
36.1-21,-2解析:考查嵌套的循環(huán)結(jié)構(gòu)。題中外層while循環(huán)的循環(huán)條件是\ue008y--!=-1\ue009,即y>=0;內(nèi)層do厀hile循環(huán)的循環(huán)條件是y--,即y-->0,y>=1。
37.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。在國家標(biāo)準(zhǔn)“計算機軟件開發(fā)規(guī)范”中,把軟件生命周期劃分為8個階段,即可行性研究與計劃、需求分析、概要設(shè)計、詳細設(shè)計、實現(xiàn)、綜合測試、確認(rèn)測試、使用與維護,對每個階段,都明確規(guī)定了該階段的任務(wù)、實施方法、實施步驟和完成標(biāo)志,其中特別規(guī)定了每個階段需要產(chǎn)生的文檔。
38.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a(0][1]、a[0][2]、a[0][3]
39.2246822468解析:p為指向數(shù)組的指針變量,數(shù)組x[1]為數(shù)組x[]的第二個元素,值為2;進入for循環(huán)i=0時,p[0]=&x[1]…直到循環(huán)完畢,指針分別指向數(shù)組x[]中的第2、4、6、8個元素,所以第二個空白處應(yīng)填2468。
40.一對多一對多解析:實體之間的聯(lián)系可歸結(jié)為一對一、一對多與多對多的聯(lián)系。如一個學(xué)校有許多教師,一個教師只歸屬于一個學(xué)校,則實體集學(xué)校與實體集教師之間的聯(lián)系屬于一對多的聯(lián)系。
41.A解析:軟件工程的第一個階段是軟件分析階段。軟件分析階段的工作是由軟件分析員和用戶一起來做的。軟件分析的結(jié)果是分析人員寫出的分析報告,該分析報告實際上就是軟件系統(tǒng)的系統(tǒng)總體設(shè)計方案。
42.B解析:本題考查函數(shù)調(diào)用時變量的作用域。形參是局部變量,函數(shù)調(diào)用完就失去意義了,所以在同一個C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變量的位置開始到本源文件結(jié)束.
43.C解析:指針中存放的是變量的地址,指針也可以進行加減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中p+6指的是將指針向后移動了6個存儲單元,指向a[6],存放的是a[6]的地址。
44.A解析:在E-R圖中,用三種圖框分別表示實體、屬性和實體之間的聯(lián)系,其規(guī)定如下:用矩形框表示實體,框內(nèi)標(biāo)明實體名;用橢圓狀框表示實體的屬性,框內(nèi)標(biāo)明屬性名;用菱形框表示實體間的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名。所以,選項A正確。
45.B\nB)【解析】耦合可以分為下列幾種,它們之間的耦合度由高到低排列:
\n內(nèi)容耦合——若一個模塊直接訪問另一模塊的內(nèi)容,則這兩個模塊稱為內(nèi)容耦合。
\n公共耦合——若一組模塊都訪問同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱為公共耦合。
\n外部耦合——若一組模塊都訪問同一全局?jǐn)?shù)據(jù)項,則稱為外部耦合
\n控制耦合——若一模塊明顯地把開關(guān)量、名字等信息送入另一模塊控制另一模塊的功能,則稱為控制耦合。
\n標(biāo)記耦合——若兩個以上的模塊都需要其余某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)時,不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱為標(biāo)記耦合。
\n數(shù)據(jù)耦合——若一個模塊訪問另一個模塊,被訪問模塊的輸入和輸出都是數(shù)據(jù)項參數(shù),則這兩個模塊為數(shù)據(jù)耦合。
\n直接耦合——若兩個模塊沒有直接關(guān)系,它們之間的聯(lián)系完全是通過程序的控制和調(diào)用來實現(xiàn)的,則稱這兩個模塊為非直接耦合,這樣的耦合獨立性最強。
\n
46.D解析:continue語句的作用是結(jié)束本次循環(huán),直接進入到下次循環(huán)中。
47.BB?!窘馕觥吭O(shè)計軟件結(jié)構(gòu),是在軟件概要設(shè)計階段進行的,而概要設(shè)計屬于軟件開發(fā)期。
48.A解析:函數(shù)f1的功能是返回兩個數(shù)中的較大數(shù),熳的功能是返回兩個數(shù)中較小的數(shù)。具體執(zhí)行過程如下:
①執(zhí)行f1(a,b),即f1(4,3),返回值引執(zhí)行f1(c,d),即f1(5,2),返回值5;執(zhí)行e=f2(f1(a,b),f1(c,d)),即f2(4,5),返回值4。
②執(zhí)行f2(a,b),即f2(4,3),返回值3;執(zhí)行f2(c,d),即f2(5,2),返回值2;執(zhí)行f=f1(f2(a,b),f2(c,d)),即f1(3,2),返回值3。
③執(zhí)行g(shù)=a+b+c+d+e+f,即g=7。所以,程序輸出結(jié)果為4,3,7。
49.C解析:算法是指為解決某個特定問題而采取的確定且有限的步驟。一個算法應(yīng)當(dāng)具有以下五個特性:有窮性;確定性;可行性;有零個或多個輸入;有一個或多個輸出。所以,4個選項中選項C符合題意。
50.B解析:合法的標(biāo)識符是由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線,用戶定義的標(biāo)識符不能與關(guān)鍵字相同。選項A),數(shù)字不能為第一個字母,auto為關(guān)鍵字;選項C)中,也是數(shù)字不能為第一個字母,else為關(guān)鍵字;選項D)中負(fù)號不合法。
51.C
52.D解析:本題主要考查結(jié)構(gòu)體變量的定義和應(yīng)用,以及運算符的優(yōu)先級。
53.A解析:本題考查C語言的綜合基礎(chǔ)知識。構(gòu)成C程序的基本單位是函數(shù),一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨立的,在定義函數(shù)時,一個函數(shù)內(nèi)不能定義另一個函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
54.B解析:在C程序中,字符量可參與任何整數(shù)運算。字符參與運算時,首先要將字符轉(zhuǎn)換為對應(yīng)的ASCII碼值再參與整數(shù)運算。字符'1'對應(yīng)的ASCII碼值是49,字符'0'對應(yīng)的ASCII碼值是48,字符'\\0'是字符串結(jié)束標(biāo)識符NULL,其對應(yīng)的ASCII碼值是0。
55.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
56.C解析:二分法查找是一種線性查找方法,其基本方法是:首先要用要查找的關(guān)鍵碼與線性表中間位置結(jié)點的關(guān)鍵碼值進行比較,這個中間結(jié)點把線性表分為兩個子表,比較相等則查找完畢,不等則根據(jù)查找結(jié)果確定下一步的查找應(yīng)該在哪一個子表中進行,如此下去,直到找到滿足條件的結(jié)點:或者確定表中沒有這樣的結(jié)點。用二分法查找關(guān)鍵碼值11的順序如下所示,其中[]內(nèi)為本次栓索的子表,()內(nèi)為該子表的中間結(jié)果。從圖中可以看出,經(jīng)四次查找后,確定表中沒有這樣的結(jié)點。因此本題正確答案為選項C(4)。
第一次:[3,6,8,10,12,(15),16,18,21,25,30]
第二次:[3,6,(8),10,12],15,16,18,21,25,30
第三次:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 政府廣告安裝合同范例
- 基于數(shù)學(xué)游戲的小學(xué)數(shù)學(xué)教學(xué)設(shè)計研究
- 四川城市職業(yè)學(xué)院《數(shù)字短視頻創(chuàng)作》2023-2024學(xué)年第一學(xué)期期末試卷
- 高新技術(shù)企業(yè)的產(chǎn)業(yè)園投資策略
- 漁塘租用合同范例
- 終止魚池租賃合同范例
- 醫(yī)院醫(yī)用耗材SPD服務(wù)項目投標(biāo)方案
- 建筑資料合同范例
- 躉船買賣合同范例
- 小飯店裝修合同范例
- 風(fēng)濕免疫科醫(yī)療質(zhì)量控制指標(biāo)(2022版)
- 微型營養(yǎng)評估MNA表完整優(yōu)秀版
- 籃球比賽記錄表(上下半場)
- 左右江水土流失及石漠化綜合治理項目實施方案
- 雞毛信說課PPT課件
- 機場基本組成
- 《臟腑辨證護理》ppt課件.pptx
- 2021年高考真題--化學(xué)(江蘇卷)(附解析)
- 團隊管理培訓(xùn)課件12114
- 整理版鉸接式護坡施工指南
- 酒店各部門員工考核標(biāo)準(zhǔn)評分表
評論
0/150
提交評論