版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年寧夏回族自治區(qū)銀川市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下述哪一條是順序存儲(chǔ)結(jié)構(gòu)的優(yōu)點(diǎn)()。
A.插入運(yùn)算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲(chǔ)表示C.存儲(chǔ)密度大D.刪除運(yùn)算方便
2.數(shù)據(jù)的獨(dú)立性是指______。
A.數(shù)據(jù)庫的數(shù)據(jù)相互獨(dú)立
B.DBMS和DB相互獨(dú)立
C.用戶應(yīng)用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨(dú)立
D.用戶應(yīng)用程序與DBMS相互獨(dú)立
3.
4.下列變量聲明合法的是()。
A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=OxfdaL;
D.float2
5.若x、y、z、m均為int型變量,則執(zhí)行下面語句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;
A.1B.2C.3D.4
6.非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。
A.一對(duì)多關(guān)系B.多對(duì)多關(guān)系C.多對(duì)一關(guān)系D.一對(duì)一關(guān)系
7.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。
A.0B.1C.2D.3
8.計(jì)算機(jī)系統(tǒng)的組成是______。
A.主機(jī)、外設(shè)B.運(yùn)算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲(chǔ)器
9.設(shè)一棵二叉樹有3個(gè)葉子節(jié)點(diǎn),有8個(gè)度為1的節(jié)點(diǎn),則該二叉樹中總的節(jié)點(diǎn)數(shù)為()
A.12B.13C.14D.15E.16F.17
10.
11.下面程序段的時(shí)間復(fù)雜度為()。
A.O(n)B.O(n2)C.O(1)D.O(nlog2n)
12.作為信息處理熱點(diǎn)技術(shù)之一的“多媒體技術(shù)”中的媒體,強(qiáng)調(diào)的是()。
A.存儲(chǔ)媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
13.設(shè)有6個(gè)結(jié)點(diǎn)的無向圖,該圖至少應(yīng)有()條邊才能確保是一個(gè)連通圖。
A.7B.5C.8D.6
14.有以下程序:
#include<stdio.h>
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{charss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);
printf("%s,%s\n",ss,aa);
}
程序運(yùn)行結(jié)果是A.A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
15.
16.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)該使用函數(shù)______。A.getc()B.gets()C.getchar()D.scanf()
17.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢是()。
A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)棧空的情況C.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)
18.
19.目前以比較為基礎(chǔ)的內(nèi)部排序方法中,其比較次數(shù)與待排序的記錄的初始排列狀態(tài)無關(guān)的是()
A.插入排序B.快速排序C.二分插入排序D.冒泡排序
20.如果以鏈表作為棧的存儲(chǔ)結(jié)構(gòu),則出棧操作時(shí)()。
A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
22.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請(qǐng)?zhí)羁铡?/p>
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
23.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
24.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
25.在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類的實(shí)例稱為______。
26.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
27.設(shè)有如下定義
#defineMYSWAP(z,x,y){z=x;x=y;y=z;}
floata=5,b=16,c;
MYSWAP(______,a,b);
28.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
29.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下
1
11
121
1331
14641
┇
其構(gòu)成規(guī)律是:
(1)第0列元素和主對(duì)角線元素均為1
(2)其余元素為其左上方和正上方元素之和
(3)數(shù)據(jù)的個(gè)數(shù)每行遞增1
請(qǐng)將程序補(bǔ)充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
30.設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
31.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n"j);}
程序運(yùn)行后的輸出結(jié)果是______。
32.下列程序可以將從鍵盤上輸入的十進(jìn)制數(shù)(10ng型)以二到十六進(jìn)制形式輸出。
#include.<stdio.h>
main()
{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
intc[64],d,i=0,base;
longn;
printf("enteranumber:\n");scanf("%1d",&n);
printf("enternewbase:\n");scanf("%d",&baBe);
do
{c[i]=【】;
i++;n=n/base;
}while(n!=0);
printf("transmitenewbabe:\n");
for{--i;i>=0;--i)
{d=c[i];
printf("%c",b【】);
}
}
33.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
34.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為【】。
35.無論對(duì)于順序存儲(chǔ),還是鏈接存儲(chǔ)的棧和隊(duì)列來說,進(jìn)行插入或刪除運(yùn)算的時(shí)間復(fù)雜性均相同,則為【】。
36.在算法正確的前提下,評(píng)價(jià)一個(gè)算法好壞的2個(gè)因素是時(shí)間復(fù)雜度和【】復(fù)雜度。
37.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。清填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstr1[100],str2[]="abcdefgh";
strcpy(str1,str2);
printf('%s\n",str1);
}
38.下面定義的結(jié)構(gòu)體類型包含3個(gè)成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實(shí)型數(shù)據(jù),成員變量next是指向自身結(jié)構(gòu)體的指針。請(qǐng)將定義補(bǔ)充完整。
structstu
{intx;
【】
【】next;}
39.以下程序運(yùn)行后輸出的結(jié)果是【】。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{
case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
40.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
三、1.選擇題(20題)41.請(qǐng)讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運(yùn)行時(shí)從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。
A.a=98,b=765,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000
D.a=98,b=765.0,c=4321.0
42.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
43.下列標(biāo)識(shí)符不是關(guān)鍵字的是()。
A.breakB.charC.SwitchD.return
44.當(dāng)下面的程序運(yùn)行后,變量c的值為______。main(){inta=45,b=27,c=0;c=max(a,b);}intmax(x,y)intx,y;{intz;if(x>y)z=x;elsez=y;return(z);}
A.45B.27C.0D.72
45.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1if(y<x)break;}printf("x=%d,y=%d,=%d\n",x,y,a);}
A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1
46.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時(shí)輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
47.有如下程序:main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運(yùn)行后的輸出結(jié)果是______。
A.1,1B.2,2C.3,3D.4,4
48.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}
A.6,2B.6,4C.8,4D.8,6
49.若有以下定義,則不能代表字符。的表達(dá)式是______。chars[20]="programming",*ps=s;
A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps
50.有以下程序:main(){intX=3,y=2,z=1;printf("%d\n",x/y&~z);}
A.3B.2C.1D.0
51.若有以下定義,則正確的swish語句是______。floatx;inta,b;
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch(x){case1,2:printf("*\n");case3:printf("**\n");}
C.switch(a+b){case1:printf("\n");case1+2:printf("**\n");}
D.switch(a+b);{case1:printf("*\n");case2:printf("**\n");}
52.設(shè)有下列說明語句:strcutstr{intx;floaty;charz;}st;則下列的敘述中不正確的是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.st是結(jié)構(gòu)體類型名
C.x、y、x都是結(jié)構(gòu)體成員名
D.structstr是結(jié)構(gòu)體類型名
53.已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函數(shù)的功能是()。
A.將P1所指字符串復(fù)制到p2所指內(nèi)存空間,
B.將p1所指字符串的地址賦給指針p2
C.對(duì)p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比較
D.檢查p1和p2兩個(gè)指針?biāo)缸址惺欠裼?\0'
54.以下敘述中正確的是()。
A.局部變量說明為static存儲(chǔ)類,其生存期將得到延長
B.全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲(chǔ)類說明符與局部變量完全相同
55.C語言中while和do-while循環(huán)的主要區(qū)別是
A.do-while的循環(huán)體至少無條件執(zhí)行一次
B.while的循環(huán)控制條件比do-while的循環(huán)控制條件更嚴(yán)格
C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)
D.do-while的循環(huán)體不能是復(fù)合語句
56.有以下程序intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(){doublew;w=fun2(1.1,2.0);......}程序執(zhí)行后變量W中的值是______。A.5.21B.5C.5D.0
57.以下程序的輸出結(jié)果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}
A.1B.2C.3D.4
58.下列合法的數(shù)組定義是______。
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.chars="string";
D.chara[]={0,1,2,3,4,5};
59.以下程序的輸出結(jié)果是main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);;}
A.AAAAB.BBBC.BBBCCD.CC
60.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
四、選擇題(20題)61.
62.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.1212B.117C.1111D.127
63.若程序中有宏定義行:#defineN100則以下敘述中正確的是()。
A.宏定義行中定義了標(biāo)識(shí)符N的值為整數(shù)100
B.在編譯程序?qū)源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識(shí)符N
C.對(duì)C源程序進(jìn)行編譯時(shí)用100替換標(biāo)識(shí)符N
D.在運(yùn)行時(shí)用100替換標(biāo)識(shí)符N
64.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念
65.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.可行性分析報(bào)告B.軟件需求規(guī)格說明書C.概要設(shè)計(jì)說明書D.集成測試計(jì)劃
66.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是()。
A.外模式B.內(nèi)模式C.概念模式D.邏輯模式
67.有以下程序:
main
{
unsignedchara=2,b=4,c=5,d;
d=a|b;d&=c;printf("%d\n",d);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.3B.4C.5D.6
68.執(zhí)行語句printf(“%u\n”,+12345)的輸出結(jié)果是()。
A.12345B.0C.-1D.非定值
69.下列敘述中正確的是()。
A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)
C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)
D.循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)
70.
71.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.10C.20D.出錯(cuò)
72.
當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)C.D.(b=c);E.(a=c)&&(b=c);F.a=c=b;
73.
以下程序的輸出結(jié)果是()。
intf(intA)
{returna%2;}
main
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[8]);i++)d+=s[i];
printf("%d\n",d);
}
A.9B.11C.19D.21
74.
75.有以下程序:
若要按以下形式輸出數(shù)組右上半三角:
則在程序下劃線處應(yīng)填人的語句是()。
A.i-1B.i+1C.iD.4-i
76.關(guān)系模型允許定義三類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A.A.實(shí)體完整性約束B.參照完整性約束C.域完整性約束D.用戶自定義的完整性約束
77.
78.有以下程序
79.下列敘述中正確的是()。
A.棧是一種先進(jìn)先出的線性表B.隊(duì)列是一種后進(jìn)先出的線性表C.棧與隊(duì)列都是非線性結(jié)構(gòu)D.以上三種說法都不對(duì)
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值:A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))例如,若n一10,則應(yīng)輸出0.192582。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將s所指字符串中ASCII值為奇數(shù)的字符刪除,將剩余字符形成的新字符串放在t所指數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,其中字符A的ASCII值為奇數(shù),字符1的ASCII值也為奇數(shù),都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDF24”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}
參考答案
1.C
2.C解析:修改數(shù)據(jù)庫的物理結(jié)構(gòu)或邏輯結(jié)構(gòu)時(shí),通過兩級(jí)映像,可以使得應(yīng)用程序不必修改,保證數(shù)據(jù)的獨(dú)立性。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性。
3.C
4.A解析:解答本題需了解3個(gè)知識(shí)點(diǎn):①標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線;②do是C語言中的一個(gè)關(guān)鍵字,不能再用做變量名和函數(shù)名;③C語言規(guī)定,指數(shù)形式的實(shí)型常量e或E后面的指數(shù)必須是整數(shù)。
5.A解析:?:運(yùn)算符首先執(zhí)行?之前的表達(dá)式,如果表達(dá)式的值為真,則返回?和:之間的表達(dá)式的值,否則返回:之后的表達(dá)式的值。本題中m比x和y都要小,所以,3個(gè)表達(dá)式都沒有改變m的值,故應(yīng)該選擇A。
6.B
7.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。
8.C
9.B
10.C
11.A
12.D媒體分為感覺媒體、表示媒體、存儲(chǔ)媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術(shù)”中的媒體強(qiáng)調(diào)的是感覺媒體。
13.B
14.D
15.D
16.B解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符,且只能接受—個(gè)字符(回車符也算是—個(gè)字符),所以getchar()不能用宋讀入字符串。scanf()函數(shù)要求按—定的格式來輸入,若同時(shí)輸入多個(gè)字符串,則以空格或回車分割,所以空格不能被識(shí)別為—個(gè)字符,也就無法讀入空格字符。函數(shù)gets()的作用是從終端輸入—個(gè)字符串\u3000(包括空格)至字符數(shù)組,直到遇到換行符為止,所以可以用來鍵盤讀入空格字符。
17.A
18.D
19.C
20.B
21.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。
22.ii解析:外循環(huán)是遞減的,方陣中的每個(gè)元素為(j-1)*4+i,因此空格處填i。
23.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
24.21
25.對(duì)象對(duì)象解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類是具有相同的屬性或方法的對(duì)象的抽象,對(duì)象是類的實(shí)例。
26.完善性軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對(duì)軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
27.CC解析:本題關(guān)鍵在考生是不是了解宏的基本運(yùn)用,再使用宏的時(shí)候明顯少了一個(gè)實(shí)參。在定義宏的時(shí)候變量z是用來做中間變量的,題目中缺的變量就是一個(gè)中間變量C。
28.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語句的值應(yīng)當(dāng)為false,即為0。
29.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對(duì)角線上的元素賦值為1顯然在第一個(gè)空中應(yīng)該填入對(duì)角線上的元素即x[i][i],在第二重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對(duì)角線的元素外其他元素為其對(duì)應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。
30.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒有特別說明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。
31.3
32.n%base[d]
33.存儲(chǔ)結(jié)構(gòu)
34.
解析:冒泡排序法是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長度為n,則在最壞的情況下,冒泡排序需要經(jīng)過遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。
35.O(2)
36.空間空間
37.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組str1和str2,并且給str2賦初值“abcdefgh”,接著調(diào)用函數(shù)strcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲(chǔ)空間,然后將指針s和t都移到下一個(gè)元素。所以空白處應(yīng)該填*t++或*(t++)。
38.floaty;structstu*floaty;\r\nstructstu*解析:float定義變量y為實(shí)型變量。要求變量next是指向自身結(jié)構(gòu)體的指針,因此變量next應(yīng)該是結(jié)構(gòu)體stu的指針型變量。
39.2121解析:外層switch語句后面括號(hào)里的x的值為1,所以執(zhí)行從casel:后面的語句開始執(zhí)行,而cascl:后面語句也為switch語句,這個(gè)switch語句后面括號(hào)里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時(shí)a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行casel:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變?yōu)?。所以最后輸出的a和b的值為21。
40.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個(gè)switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個(gè)復(fù)合switch語句:這時(shí)執(zhí)行第二個(gè)switch語句,此時(shí)y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個(gè)switch語句,則整個(gè)case1的復(fù)合語句執(zhí)行完畢,由于在這個(gè)case1的后面沒有break語句使其退出第一個(gè)switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。
41.C解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實(shí)型變量b,把第6、7、8、9位存入單精度實(shí)型變量c,用戶錄入的第10位被scanf()遺棄。這時(shí)變量a、b、c的值分別為:98、765.000000、4321.000000。
42.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部
分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對(duì)這兩部分記錄繼
續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序;插入排序的基本操作是指將無序序列中的各元素依
次插入到已經(jīng)有序的線性表中,從而得到一個(gè)新的序列;選擇排序的基本思想是:掃描整
個(gè)線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對(duì)剩
下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個(gè)或兩個(gè)以上的有序表組合
成一個(gè)新的有序表。
注意:各種排序方法實(shí)現(xiàn)過程及實(shí)現(xiàn)機(jī)制。
43.C解析:break、char、return、switch都是C語言中的關(guān)鍵字,switch不是。因?yàn)镃語言區(qū)分字母的大小寫。
44.A
45.D解析:注意的是x++中x值的引用時(shí),這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:第—次while循環(huán):條件為真,執(zhí)行a=a+1=1;此時(shí),x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);第二次while循環(huán);條件為假,此時(shí)x的值已為5,退出while循環(huán),執(zhí)行printf。
46.A解析:本題考查的是getchar()函數(shù)。getchar()函數(shù)執(zhí)行時(shí)將從鍵盤緩沖區(qū)中讀取用戶的輸入,而不管輸入的是否可打印字符,所以當(dāng)輸入a<回車>后,鍵盤緩沖區(qū)被輸入的實(shí)際上是兩個(gè)字符:'a'和'\\n'。故選項(xiàng)A的說法是正確的。
47.C解析:continue語句是結(jié)束本次循環(huán)。
for循環(huán)語句的執(zhí)行過程為:
第1次循環(huán):循環(huán)前n=0,執(zhí)行n++得n=1,n%3!=0成立,執(zhí)行continue語句結(jié)束本次循環(huán),k=4;
第2次循環(huán):循環(huán)前n=1,執(zhí)行n++得n=2,n%3!=0成立,執(zhí)行continue語句結(jié)束本次循環(huán),k=4;
第3次循環(huán);循環(huán)前n=2,執(zhí)行n++得n=3,n%3!=0不成立,執(zhí)行語句k--得k=3;n<k不成立,結(jié)束整個(gè)for循環(huán)。
所以執(zhí)行完for循環(huán)后k=3、n=3,正確答案為選項(xiàng)C。
48.B解析:本題主要考查結(jié)構(gòu)體和聯(lián)合內(nèi)存使用的區(qū)別:結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個(gè)成員相互獨(dú)立;聯(lián)合所占用的內(nèi)存空間為最長的成員所占用的空間。
49.A解析:ps是指針變量,ps+2是地址值,表示s[2]的地址,并不能代表s[2]的值‘o’;選項(xiàng)B、C、D均能代表s[2]的值‘o’。
50.D解析:本題考核的知識(shí)點(diǎn)是位運(yùn)算符的應(yīng)用。位與運(yùn)算符“&”參加運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)位進(jìn)行“與”運(yùn)算,如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1,否則為0,取反運(yùn)算符“~”,用來對(duì)一個(gè);進(jìn)制按位取反,即將0變1,1變0.在prinft()函數(shù)的表達(dá)式中,“&”前面表達(dá)式的值為1(3/2=1)表示為二進(jìn)制為00000001,而按位取反運(yùn)算符“~”的優(yōu)先級(jí)高于按位與運(yùn)算符“&”,先計(jì)算“&”后面的取反運(yùn)算符“~”。z的二進(jìn)制表示為00000001,取反后為11111110,最后進(jìn)行“&”,即“00000001&11111110”可知結(jié)果為00000000,故最后的值為0,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
51.C解析:switch后必須是整型或字符型的表達(dá)式,因此選項(xiàng)A、B錯(cuò)誤;表達(dá)式的括號(hào)外沒有分號(hào),因此選項(xiàng)D錯(cuò)誤。
52.B解析:本題主要考查結(jié)構(gòu)類型的定義:struct是結(jié)構(gòu)體類型的關(guān)鍵字:structstr是結(jié)構(gòu)體類型名;x、y、z都是結(jié)構(gòu)體成員名:st是結(jié)構(gòu)變量名。
53.A解析:本題中的while((*p2=*p1)!='\\0')語句首先進(jìn)行賦值*p2=*p1,即把p1所指存儲(chǔ)單元的字符逐一復(fù)制到p2所指存儲(chǔ)單元中,然后判斷p1所指單元內(nèi)容是否為'\\0',若判斷條件成立,則指針p1和p2依次指向下一個(gè)字符,繼續(xù)執(zhí)行循環(huán)體語句,否則循環(huán)終止。
54.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲(chǔ)類別,故全局變量說明為static存儲(chǔ)類,和沒有說明為static存儲(chǔ)類其生存期都是一直延長到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲(chǔ)類說明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
55.A解析:while是先判斷條件再執(zhí)行語句;do-while則是先執(zhí)行依次語句再判斷條件從而決定是否繼續(xù)再執(zhí)行循環(huán)體中的語句,這正是二者主要區(qū)別。注意:3種循環(huán)結(jié)構(gòu)的比較。
56.C解析:此題考核的是數(shù)值類型的定義與強(qiáng)制轉(zhuǎn)換。本題在進(jìn)行調(diào)用函數(shù)fun2()時(shí),又對(duì)函數(shù)fun1()進(jìn)行了調(diào)用,由于函數(shù)\u3000fun1()定義為整型,所以第一次調(diào)用fun1()時(shí)返回的值為1,然后再將1賦值給a,此時(shí)由于a為double型,則系統(tǒng)自動(dòng)類型轉(zhuǎn)換,將1轉(zhuǎn)換成了1.000000賦值給了變量a,以此類推,得b的值為4.000000,然后誦過“return(int)(a+b);”將a+b的值強(qiáng)制轉(zhuǎn)換為int型5返回給主函數(shù),此時(shí)又由w的類型為double,所以返回的整型值5又被轉(zhuǎn)換為double型。故輸出結(jié)果為5.0。
57.A解析:該題考查的是遞歸函數(shù)的調(diào)用,題中讀fun函數(shù)進(jìn)行了遞歸調(diào)用,第1次調(diào)用:fun(3)n=3s=3-fun(2);第二次調(diào)用時(shí):fun(2)n=2s=2返回第一次調(diào)用后,s=3-2=1。
58.D解析:選項(xiàng)A錯(cuò)在用字符串對(duì)整型數(shù)組賦值;選項(xiàng)B錯(cuò)在初始化表中數(shù)據(jù)的個(gè)數(shù)多于數(shù)組的最大長度;選項(xiàng)C錯(cuò)在沒有用數(shù)組存儲(chǔ)字符串;選項(xiàng)D的初始化表中雖然是5個(gè)數(shù),但實(shí)際相當(dāng)于把ASCⅡ碼值是這5個(gè)整數(shù)的字符賦值給數(shù)組,因此是正確的。
59.B解析:維字符數(shù)組可以看成由若干個(gè)一維字符數(shù)組組成,每行是一個(gè)一維字符數(shù)組。本題首先定義了一個(gè)數(shù)組ch[3][5]并給它們按行賦初值,即相當(dāng)于給ch[0]賦值“AAAA”,給ch[1]賦值“BBB”,給ch[2]賦值“BBB”,最后輸出轉(zhuǎn)義字符“'\\'”、ch[1]和轉(zhuǎn)義字符“\\”,因此輸出為“BBB”.所以,4個(gè)選項(xiàng)中B為所選。
60.B解析:選項(xiàng)A定義數(shù)組時(shí)省略了長度,而C語言中規(guī)定,只有在定義并同時(shí)進(jìn)行初始化時(shí),數(shù)組的長度才可以省略,數(shù)組的長度為初始化時(shí)候的成員個(gè)數(shù),故選項(xiàng)A錯(cuò)誤;在C語言中規(guī)定,數(shù)組的長度必須是一個(gè)整數(shù)或整型常量表達(dá)式,故選項(xiàng)C不正確:定義時(shí)數(shù)組的長度不能使用變量表示,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
61.C
62.B根據(jù)宏替換的替換規(guī)則,我們可知,
63.B解析:宏定義是預(yù)處理命令,即在C源程序進(jìn)行編譯之前,編譯程序?qū)υ闯绦蜻M(jìn)行編譯預(yù)處理時(shí)所進(jìn)行的一種替換操作。所以選項(xiàng)C和\u3000D可以排除。宏定義是用宏名代替一個(gè)字符串,也就是作簡單的置換,不做正確性檢查。所以選項(xiàng)A的敘述也不正確,宏替換時(shí)100被當(dāng)作一個(gè)字符串來替換宏名的,而不是被看作整數(shù)值100。故本題的正確答案為B。
64.C\n面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵(lì)開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。
\n
65.BA項(xiàng)錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C項(xiàng)錯(cuò)誤,概要設(shè)計(jì)說明書是總體設(shè)計(jì)階段產(chǎn)生的文檔。D項(xiàng)錯(cuò)誤,集成測試計(jì)劃是在概要設(shè)計(jì)階段編寫的文檔。B項(xiàng)正確,需求規(guī)格說明書是后續(xù)工作如設(shè)計(jì)、編碼等需要的重要參考文檔。
66.B數(shù)據(jù)庫有三層模式結(jié)構(gòu),邏輯模式是數(shù)據(jù)的全局邏輯結(jié)構(gòu)的描述,外模式也稱為子模式,是局部數(shù)據(jù)的邏輯結(jié)構(gòu)描述,而內(nèi)模式也稱為存儲(chǔ)模式,是數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)和存取方法的描述。
67.B本題考查的是邏輯運(yùn)算。本題中主要是進(jìn)行位的邏輯運(yùn)算。將a的值轉(zhuǎn)換成二進(jìn)制為:00000010,b的值轉(zhuǎn)換成二進(jìn)制為:00000100,將a、b進(jìn)行按位或運(yùn)算(參加計(jì)算的兩個(gè)位只要有一個(gè)為1,那么運(yùn)算結(jié)果為l),因此此時(shí)d的二進(jìn)制為:00000110,C的值轉(zhuǎn)換成二進(jìn)制為:00000101,接下來將d和C進(jìn)行按位與運(yùn)算(參加計(jì)算的兩個(gè)位都為1,則結(jié)果為1,否則為0),結(jié)果為:00000100,轉(zhuǎn)換成十進(jìn)制數(shù)結(jié)果為4。
68.A"%u"表示輸出無符號(hào)的整數(shù)(如果輸出值前有符號(hào),將自動(dòng)轉(zhuǎn)化為相應(yīng)的無符號(hào)數(shù)輸出)。
69.B本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲(chǔ)結(jié)構(gòu)的隊(duì)列。
70.A
71.CnlaIloc(sizeof(int))的作用是開辟一個(gè)長度為sizeof(int)存儲(chǔ)空間,并通過強(qiáng)制類型轉(zhuǎn)換(int。)將此存儲(chǔ)空間的地址賦給了一個(gè)整型的指針變量P。然后執(zhí)行語句·P=n,使得·p的值為10,并通過return返回此值,即a的值為l0。然后在主函數(shù)中輸出a+ftm(10)=10+10=20。
72.C
\n選項(xiàng)A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項(xiàng)中由于c的值不為0,在將c的值賦給變量a后,表達(dá)式a=c的值為1,不再對(duì)表達(dá)式b=c計(jì)算;對(duì)于c選項(xiàng),表達(dá)式a=c的值為1,再求表達(dá)式b=c的值為1,然后進(jìn)行邏輯與運(yùn)算;D選項(xiàng)將b的值賦給c后再賦給e,故選擇C選項(xiàng)。
\n
73.A
\n在程序中當(dāng)i=0時(shí),s[o]=1,f(s[0])為1,執(zhí)行d+=s[0],d的值為1,i++也變?yōu)?。當(dāng)i=1時(shí),s[1]=3,f(s[1])為1,也為非0,繼續(xù)執(zhí)行后面的表達(dá)式,此時(shí)d的值為1+3=4,繼續(xù)著i++變?yōu)?,接著執(zhí)行for循環(huán),可知for循環(huán)的目的是把S數(shù)組中的奇數(shù)相加,因此最后d的值為1+3+5為9,故選擇A選項(xiàng)。
\n
74.A
75.C此題中嵌套了兩個(gè)for語句,第一個(gè)用來輸出空格,第二個(gè)用來輸出數(shù)字。如此類型的輸出某種格式的考題,一般是采用多重循環(huán)來解決,需要考生找出輸出數(shù)據(jù)的特點(diǎn),并用相應(yīng)的數(shù)學(xué)公式表示出來。
76.C數(shù)據(jù)約束是用來確保數(shù)據(jù)的準(zhǔn)確性和一致性的。常見的四種數(shù)據(jù)約束如下:
(1)實(shí)體完整性約束:規(guī)定表的每一行在表中是唯一的實(shí)體。
(2)域完整性約束:是指表中的列必須滿足某種特定的數(shù)據(jù)類型約束,其中約束又包括取值范圍、精度等規(guī)定。
(3)參照完整性約束:是指兩個(gè)表的主關(guān)鍵字和外關(guān)鍵字的數(shù)據(jù)應(yīng)一致,保證了表之間數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無意義的數(shù)據(jù)在數(shù)據(jù)庫中擴(kuò)散。
(4)用戶定義的完整性約束:不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對(duì)某個(gè)特定關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用必須滿足的語義要求。
在上述四種數(shù)據(jù)約束中,不屬于關(guān)系模型定義的三種數(shù)據(jù)約束的是域完整性約束。
77.A
78.A外層循環(huán)i,值分別為l23,內(nèi)層循環(huán)j分別為l23、23和3,所以答案為A)。
79.D【答案】:D
【知識(shí)點(diǎn)】:棧和隊(duì)列
【解析】:棧和隊(duì)列都是線性結(jié)構(gòu),所以選項(xiàng)C錯(cuò)誤;棧是一種先進(jìn)后出的線性表,故選項(xiàng)A錯(cuò)誤;隊(duì)列是一種先進(jìn)先出的線性表,故選項(xiàng)B錯(cuò)誤,所以選D。
80.D
81.(1)錯(cuò)誤:intA[100];
正確:floatA[100];
(2)錯(cuò)誤:for(i=1;i<=n;i++)
正確:for(i=2;i<=n;i++)
82.voidfun(char*s,chart[]){ inti,j=0,n; n=strlen(s);/*遍歷整個(gè)數(shù)組*/ for(i=0;i<=""p="">/*如果元素的ASCII值為偶數(shù)*/ if(s[i]%2==0) {/*將元素保存到t中*/ t[j]=s[i]; j++; } t[j]=-‘\0’;}要?jiǎng)h除ASCII值為奇數(shù)的字符,也就是要保留ASCII值為偶數(shù)的字符,將ASCII值為偶數(shù)的字符保存到新字符串。所以本題的算法是對(duì)原字符串從頭到尾進(jìn)行掃描,找出ASCII值為偶數(shù)的字符并依次存入數(shù)組。2021-2022年寧夏回族自治區(qū)銀川市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下述哪一條是順序存儲(chǔ)結(jié)構(gòu)的優(yōu)點(diǎn)()。
A.插入運(yùn)算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲(chǔ)表示C.存儲(chǔ)密度大D.刪除運(yùn)算方便
2.數(shù)據(jù)的獨(dú)立性是指______。
A.數(shù)據(jù)庫的數(shù)據(jù)相互獨(dú)立
B.DBMS和DB相互獨(dú)立
C.用戶應(yīng)用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨(dú)立
D.用戶應(yīng)用程序與DBMS相互獨(dú)立
3.
4.下列變量聲明合法的是()。
A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=OxfdaL;
D.float2
5.若x、y、z、m均為int型變量,則執(zhí)行下面語句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;
A.1B.2C.3D.4
6.非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。
A.一對(duì)多關(guān)系B.多對(duì)多關(guān)系C.多對(duì)一關(guān)系D.一對(duì)一關(guān)系
7.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。
A.0B.1C.2D.3
8.計(jì)算機(jī)系統(tǒng)的組成是______。
A.主機(jī)、外設(shè)B.運(yùn)算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲(chǔ)器
9.設(shè)一棵二叉樹有3個(gè)葉子節(jié)點(diǎn),有8個(gè)度為1的節(jié)點(diǎn),則該二叉樹中總的節(jié)點(diǎn)數(shù)為()
A.12B.13C.14D.15E.16F.17
10.
11.下面程序段的時(shí)間復(fù)雜度為()。
A.O(n)B.O(n2)C.O(1)D.O(nlog2n)
12.作為信息處理熱點(diǎn)技術(shù)之一的“多媒體技術(shù)”中的媒體,強(qiáng)調(diào)的是()。
A.存儲(chǔ)媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
13.設(shè)有6個(gè)結(jié)點(diǎn)的無向圖,該圖至少應(yīng)有()條邊才能確保是一個(gè)連通圖。
A.7B.5C.8D.6
14.有以下程序:
#include<stdio.h>
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{charss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);
printf("%s,%s\n",ss,aa);
}
程序運(yùn)行結(jié)果是A.A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
15.
16.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)該使用函數(shù)______。A.getc()B.gets()C.getchar()D.scanf()
17.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢是()。
A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)棧空的情況C.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)
18.
19.目前以比較為基礎(chǔ)的內(nèi)部排序方法中,其比較次數(shù)與待排序的記錄的初始排列狀態(tài)無關(guān)的是()
A.插入排序B.快速排序C.二分插入排序D.冒泡排序
20.如果以鏈表作為棧的存儲(chǔ)結(jié)構(gòu),則出棧操作時(shí)()。
A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
22.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請(qǐng)?zhí)羁铡?/p>
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
23.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
24.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
25.在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類的實(shí)例稱為______。
26.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
27.設(shè)有如下定義
#defineMYSWAP(z,x,y){z=x;x=y;y=z;}
floata=5,b=16,c;
MYSWAP(______,a,b);
28.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
29.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下
1
11
121
1331
14641
┇
其構(gòu)成規(guī)律是:
(1)第0列元素和主對(duì)角線元素均為1
(2)其余元素為其左上方和正上方元素之和
(3)數(shù)據(jù)的個(gè)數(shù)每行遞增1
請(qǐng)將程序補(bǔ)充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
30.設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
31.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n"j);}
程序運(yùn)行后的輸出結(jié)果是______。
32.下列程序可以將從鍵盤上輸入的十進(jìn)制數(shù)(10ng型)以二到十六進(jìn)制形式輸出。
#include.<stdio.h>
main()
{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
intc[64],d,i=0,base;
longn;
printf("enteranumber:\n");scanf("%1d",&n);
printf("enternewbase:\n");scanf("%d",&baBe);
do
{c[i]=【】;
i++;n=n/base;
}while(n!=0);
printf("transmitenewbabe:\n");
for{--i;i>=0;--i)
{d=c[i];
printf("%c",b【】);
}
}
33.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
34.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為【】。
35.無論對(duì)于順序存儲(chǔ),還是鏈接存儲(chǔ)的棧和隊(duì)列來說,進(jìn)行插入或刪除運(yùn)算的時(shí)間復(fù)雜性均相同,則為【】。
36.在算法正確的前提下,評(píng)價(jià)一個(gè)算法好壞的2個(gè)因素是時(shí)間復(fù)雜度和【】復(fù)雜度。
37.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。清填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstr1[100],str2[]="abcdefgh";
strcpy(str1,str2);
printf('%s\n",str1);
}
38.下面定義的結(jié)構(gòu)體類型包含3個(gè)成員,其中成員變量x用來存入整型數(shù)據(jù),成員變量y用來存入實(shí)型數(shù)據(jù),成員變量next是指向自身結(jié)構(gòu)體的指針。請(qǐng)將定義補(bǔ)充完整。
structstu
{intx;
【】
【】next;}
39.以下程序運(yùn)行后輸出的結(jié)果是【】。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{
case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
40.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
三、1.選擇題(20題)41.請(qǐng)讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運(yùn)行時(shí)從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。
A.a=98,b=765,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000
D.a=98,b=765.0,c=4321.0
42.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
43.下列標(biāo)識(shí)符不是關(guān)鍵字的是()。
A.breakB.charC.SwitchD.return
44.當(dāng)下面的程序運(yùn)行后,變量c的值為______。main(){inta=45,b=27,c=0;c=max(a,b);}intmax(x,y)intx,y;{intz;if(x>y)z=x;elsez=y;return(z);}
A.45B.27C.0D.72
45.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1if(y<x)break;}printf("x=%d,y=%d,=%d\n",x,y,a);}
A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1
46.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時(shí)輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
47.有如下程序:main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運(yùn)行后的輸出結(jié)果是______。
A.1,1B.2,2C.3,3D.4,4
48.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}
A.6,2B.6,4C.8,4D.8,6
49.若有以下定義,則不能代表字符。的表達(dá)式是______。chars[20]="programming",*ps=s;
A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps
50.有以下程序:main(){intX=3,y=2,z=1;printf("%d\n",x/y&~z);}
A.3B.2C.1D.0
51.若有以下定義,則正確的swish語句是______。floatx;inta,b;
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch(x){case1,2:printf("*\n");case3:printf("**\n");}
C.switch(a+b){case1:printf("\n");case1+2:printf("**\n");}
D.switch(a+b);{case1:printf("*\n");case2:printf("**\n");}
52.設(shè)有下列說明語句:strcutstr{intx;floaty;charz;}st;則下列的敘述中不正確的是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.st是結(jié)構(gòu)體類型名
C.x、y、x都是結(jié)構(gòu)體成員名
D.structstr是結(jié)構(gòu)體類型名
53.已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函數(shù)的功能是()。
A.將P1所指字符串復(fù)制到p2所指內(nèi)存空間,
B.將p1所指字符串的地址賦給指針p2
C.對(duì)p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比較
D.檢查p1和p2兩個(gè)指針?biāo)缸址惺欠裼?\0'
54.以下敘述中正確的是()。
A.局部變量說明為static存儲(chǔ)類,其生存期將得到延長
B.全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲(chǔ)類說明符與局部變量完全相同
55.C語言中while和do-while循環(huán)的主要區(qū)別是
A.do-while的循環(huán)體至少無條件執(zhí)行一次
B.while的循環(huán)控制條件比do-while的循環(huán)控制條件更嚴(yán)格
C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)
D.do-while的循環(huán)體不能是復(fù)合語句
56.有以下程序intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(){doublew;w=fun2(1.1,2.0);......}程序執(zhí)行后變量W中的值是______。A.5.21B.5C.5D.0
57.以下程序的輸出結(jié)果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}
A.1B.2C.3D.4
58.下列合法的數(shù)組定義是______。
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.chars="string";
D.chara[]={0,1,2,3,4,5};
59.以下程序的輸出結(jié)果是main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);;}
A.AAAAB.BBBC.BBBCCD.CC
60.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
四、選擇題(20題)61.
62.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.1212B.117C.1111D.127
63.若程序中有宏定義行:#defineN100則以下敘述中正確的是()。
A.宏定義行中定義了標(biāo)識(shí)符N的值為整數(shù)100
B.在編譯程序?qū)源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識(shí)符N
C.對(duì)C源程序進(jìn)行編譯時(shí)用100替換標(biāo)識(shí)符N
D.在運(yùn)行時(shí)用100替換標(biāo)識(shí)符N
64.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念
65.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.可行性分析報(bào)告B.軟件需求規(guī)格說明書C.概要設(shè)計(jì)說明書D.集成測試計(jì)劃
66.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是()。
A.外模式B.內(nèi)模式C.概念模式D.邏輯模式
67.有以下程序:
main
{
unsignedchara=2,b=4,c=5,d;
d=a|b;d&=c;printf("%d\n",d);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.3B.4C.5D.6
68.執(zhí)行語句printf(“%u\n”,+12345)的輸出結(jié)果是()。
A.12345B.0C.-1D.非定值
69.下列敘述中正確的是()。
A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)
C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)
D.循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)
70.
71.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.10C.20D.出錯(cuò)
72.
當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)C.D.(b=c);E.(a=c)&&(b=c);F.a=c=b;
73.
以下程序的輸出結(jié)果是()。
intf(intA)
{returna%2;}
main
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[8]);i++)d+=s[i];
printf("%d\n",d);
}
A.9B.11C.19D.21
74.
75.有以下程序:
若要按以下形式輸出數(shù)組右上半三角:
則在程序下劃線處應(yīng)填人的語句是()。
A.i-1B.i+1C.iD.4-i
76.關(guān)系模型允許定義三類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A.A.實(shí)體完整性約束B.參照完整性約束C.域完整性約束D.用戶自定義的完整性約束
77.
78.有以下程序
79.下列敘述中正確的是()。
A.棧是一種先進(jìn)先出的線性表B.隊(duì)列是一種后進(jìn)先出的線性表C.棧與隊(duì)列都是非線性結(jié)構(gòu)D.以上三種說法都不對(duì)
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值:A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))例如,若n一10,則應(yīng)輸出0.192582。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將s所指字符串中ASCII值為奇數(shù)的字符刪除,將剩余字符形成的新字符串放在t所指數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,其中字符A的ASCII值為奇數(shù),字符1的ASCII值也為奇數(shù),都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDF24”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}
參考答案
1.C
2.C解析:修改數(shù)據(jù)庫的物理結(jié)構(gòu)或邏輯結(jié)構(gòu)時(shí),通過兩級(jí)映像,可以使得應(yīng)用程序不必修改,保證數(shù)據(jù)的獨(dú)立性。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性。
3.C
4.A解析:解答本題需了解3個(gè)知識(shí)點(diǎn):①標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線;②do是C語言中的一個(gè)關(guān)鍵字,不能再用做變量名和函數(shù)名;③C語言規(guī)定,指數(shù)形式的實(shí)型常量e或E后面的指數(shù)必須是整數(shù)。
5.A解析:?:運(yùn)算符首先執(zhí)行?之前的表達(dá)式,如果表達(dá)式的值為真,則返回?和:之間的表達(dá)式的值,否則返回:之后的表達(dá)式的值。本題中m比x和y都要小,所以,3個(gè)表達(dá)式都沒有改變m的值,故應(yīng)該選擇A。
6.B
7.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。
8.C
9.B
10.C
11.A
12.D媒體分為感覺媒體、表示媒體、存儲(chǔ)媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術(shù)”中的媒體強(qiáng)調(diào)的是感覺媒體。
13.B
14.D
15.D
16.B解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符,且只能接受—個(gè)字符(回車符也算是—個(gè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校教育服務(wù)行業(yè)相關(guān)項(xiàng)目經(jīng)營管理報(bào)告
- 糞便潛血檢測用化學(xué)試紙項(xiàng)目營銷計(jì)劃書
- 布料除臭行業(yè)經(jīng)營分析報(bào)告
- 去中心化網(wǎng)絡(luò)服務(wù)行業(yè)市場調(diào)研分析報(bào)告
- 獸皮產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 裘皮披肩商業(yè)機(jī)會(huì)挖掘與戰(zhàn)略布局策略研究報(bào)告
- 廢舊汽車回收利用行業(yè)經(jīng)營分析報(bào)告
- 自行車測速計(jì)項(xiàng)目營銷計(jì)劃書
- 自行車前叉市場分析及投資價(jià)值研究報(bào)告
- 嬰兒搖鈴產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- Hellp綜合征專題知識(shí)
- 電動(dòng)葫蘆出廠檢驗(yàn)報(bào)告
- 找次品-華應(yīng)龍老師課件
- 瓦斯超限事故專項(xiàng)應(yīng)急預(yù)案詳解
- 水資源分區(qū)表、等值線圖繪制、年河川徑流系列一致性處理方法、平原區(qū)、山丘區(qū)地下水資源量、水資源總量計(jì)算
- 風(fēng)電工程項(xiàng)目質(zhì)量控制管理
- 變壓器油枕膠囊式和金屬波紋式的區(qū)別
- 公司薪酬管理制度
- 張愛玲完整版課件
- 下穿式隧道建設(shè)工程監(jiān)理實(shí)施細(xì)則
- DB1506T 13-2020 熱力站建設(shè)技術(shù)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論