版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年遼寧省鐵嶺市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.如果最常用的操作是取第i個結(jié)點及其前驅(qū),則采用()存儲方式最節(jié)省時間。A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.順序表
2.向一個棧頂指針為HS的鏈?zhǔn)綏V胁迦胍粋€s所指的結(jié)點時,則執(zhí)行()。
A.HS->next=s
B.S->next=HS->nextHS->next=s
C.s->next=HSHS=s
D.S->next=HSHS=HS->next
3.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結(jié)果是A.A.0X0
B.0x0
C.0
D.0xABC
4.
5.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。
A.b=double(b);B.(int)a=(int)b;C.a=a++=5;D.a=double(b);
6.若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素
A.可在程序的運行階段得到初值0
B.可在程序的編譯階段得到初值0
C.不能得到確定的初值
D.可在程序的編譯或運行階段得到初值0
7.有嵌套的if語句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下選項中與上述if語句等價的語句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
8.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。
A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)
9.下列關(guān)于標(biāo)識符的說法中錯誤的是
A.合法的標(biāo)識符是由字母、數(shù)字和下劃線組成
B.C語言的標(biāo)識符中,大寫字母和小寫字母被認為是兩個不同的字符
C.C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符
D.用戶標(biāo)識符與關(guān)鍵字不同時,程序在執(zhí)行時將給出出錯信息
10.
11.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試
12.
13.有以下程序
#include<stdio.h>
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf(”%d\n”,m);
}
intf(intx)
{returnx*2;}
程序運行后的輸出結(jié)果是()。A.1B.2C.4D.8
14.計算機能夠直接識別和執(zhí)行的語言是
A.匯編語言B.自然語言C.機器語言D.高級語言
15.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時,花費時間反而最多的是()
A.希爾排序B.堆排序C.冒泡排序D.快速排序
16.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結(jié)果是()。A.xyyxB.yyyyC.yyxxD.yxyx
17.在數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的()結(jié)構(gòu)。
A.邏輯B.存儲C.邏輯和存儲D.物理
18.
19.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8
20.若有運算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序為()
A.%、sizeof、>、<<、=
B.sizeof、%、>、=、<<
C.sizeof、<<、>、%、=
D.sizeof、%、<<、>、=
二、2.填空題(20題)21.若從鍵盤輸入58,則以下程序輸出的結(jié)果是______。
main{)
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
22.請用位運算實現(xiàn)下述目標(biāo)(設(shè)16位二進制數(shù)的最低位為零位):
(1)輸出無符號正整數(shù)m的第i個二進制位的數(shù)值。
(2)將m的第i個二進制位置1,其余的位不變,然后輸出m。
#include"stdio.h"
【】
main()
{
unsignedk,i,m=0;
scanf("%d%d",&m,&i);
k=【】;
printf("%d\n",k);
k=pow(2,i);
m=【】;
printf("%d\n",m);
}
23.以下函數(shù)的功能是求x的y次方,請?zhí)羁铡?/p>
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
24.若運行輸入:3<回車>,則以下程序的輸出結(jié)果是()。main(){inta,b;scanf("%d",&A);b=(a>=0)?a:-a;printf("b=%d",B);}
25.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由文件指針fr指向該文件,則程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{
FILE*fr;charstr[40];
fgets(str,5,fr);
printf("%s\n",str);
fclose(fr);
}
26.在程序設(shè)計階段應(yīng)該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設(shè)計語言寫成程序。
27.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對其中的圖形元素進行確切解釋。
28.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
29.若有定義語句chars[100],d[100];intj=0,i==0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)
while(s[i]=【】;j++;}
d[j]=0;
30.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
31.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
32.在關(guān)系運算中,【】運算是在給定關(guān)系的某些域上進行的運算。
33.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{charm;
m='B'+32;
printf("%c\n",m);
}
34.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標(biāo)。請?zhí)羁铡?/p>
#defineN3
#defineM3
select{inta[N][M],int*n;
{inti,j,row=l,eolum=l;
for(i=0;i<N;i++
forj=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj
max=select(a,&n);
printf("max=%d,line=%d\n",max.n;
}
35.軟件開發(fā)過程中所使用的資源一般包括:【】、軟件資源和硬件資源。
36.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
37.以下程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
38.用復(fù)合的賦值運算符將變量x中的值增大2的賦值表達式是【】。
39.設(shè)a、b、c為整數(shù),且a=2、b=3、c=4,則執(zhí)行完以下語句后,a的值是【】。
a*=18+(b++)-(++c);
40.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。
三、1.選擇題(20題)41.若有說明:inta[][3]={0,0};則不正確的敘述是()。
A.數(shù)組a的每個元素的初值都是0
B.數(shù)組a的第一維大小為1
C.數(shù)組a的行數(shù)為1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
42.下面是對宏定義的描述,不正確的是______。
A.宏不存在類型問題,宏名無類型,它的參數(shù)也無類型
B.宏替換不占用運行時間
C.宏替換時先求出實參表達式的值,然后代入形參運算求值
D.宏替換只不過是字符替代而已
43.C語言庫函數(shù)fgets(str,n,fg)的功能是_______。
A.從中指向的文件中讀取長度n的字符串存入str指向的內(nèi)存
B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內(nèi)存
C.從fp指向的文件中讀取n個字符串存入str指向的內(nèi)存
D.從sb讀取至多n個字符到文件fp
44.有以下程序段
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為
A.55566.0B.566.0C.7777.0D.566777.0
45.有以下程序段:typedefstructNODE{intnum;structNODE*nex;}OLD;以下敘述中正確的是()。
A.以上的說明形式非法B.NODE是一個結(jié)構(gòu)體類型C.OLD是一個結(jié)構(gòu)體類型D.OLD是一個結(jié)構(gòu)體變量
46.下列敘述中正確的是()。
A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的聯(lián)系
B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間相對獨立,相互依賴性小
D.上述3種說法都不對
47.執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{(1,2,3),{4,5,6}}intm,*p;p=aa[0][0];m=p[4];
A.4B.5C.3D.不確定
48.以下4個選項中,不能看作一條語句的是
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
49.已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序______。main(){chara='A';intb=20;printf(%d,%0",(a=a+a,a+b,B),a+'a'-'A',B);}
A.表達式非法,輸出零或不確定值
B.因輸出項過多,無輸出或輸出不確定值
C.輸出結(jié)果為20,141
D.輸出結(jié)果為20,141,20
50.設(shè)有以下語句typedefstructTT{charc;inta[4];}CIN;則下面敘述中正確的是______。A.可以用TT定義結(jié)構(gòu)體變量
B.TT是struct類型的變量
C.可以用CIN定義結(jié)構(gòu)體變量
D.CIN是structTT類型的變量
51.若有定義inta=5,b=7;,則表達式a%=(b%2)運算后,a的值為()。
A.0B.1C.11D.3
52.下列程序的輸出結(jié)果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
53.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
54.需求分析階段的任務(wù)是()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能
55.在C語言中,函數(shù)調(diào)用時()。
A.實參和形參各占獨立的存儲單元
B.實參和形參共用存儲單元
C.由系統(tǒng)自動確定實參和形參是否共用存儲單元
D.由用戶指定實參和形參是否共用存儲單元
56.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
57.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
58.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間
59.若有定義和語句:int**pp,*p,a=20,b=10;pp=&p;p=&a;p=&b;printf(%d,%d\n",*p,**pp);則輸出結(jié)果是()。
A.20,10B.20,20C.10,20D.10,10
60.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段
四、選擇題(20題)61.28.以下敘述中錯誤的是
A.對于float類型數(shù)組,不可以直接用數(shù)組名完成對數(shù)組進行整體輸入或輸出
B.?dāng)?shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值是常量,是不可改變的
C.當(dāng)執(zhí)行程序時,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
62.若運行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運行結(jié)果是()。
A.v0=7,vl=4,v2=7
B.v0=8,vl=4,v2=8
C.v0=11,vl=4,v2=11
D.v0=13,vl=4,v2=12
63.
64.運行下列程序,若從鍵盤輸入字符“a”,則輸出結(jié)果是()。
charc;
c=getchar;
if(c>=a&&c<=g)c=c+4:
elseif(c>=9&&c<=2)c=c-21:
elseprintf("inputerror!\n");
putchar(c);
A.fB.tC.eD.d
65.以下能正確定義一維數(shù)組的選項是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
66.有以下程序:
程序運行后的輸出結(jié)果是()。、
A.ABEFB.CDEFC.ABCDD.CDAB
67.
68.
69.設(shè)inti=2,j=1,k=3,則表達式i&&(i+j)&k|i+j的值是_______。
A.0B.2C.1D.3
70.以下函數(shù)實現(xiàn)按每行8個輸出W所指數(shù)組中的數(shù)據(jù):
在橫線處應(yīng)填人的語句是()。
A.if(i/8==0)printf(”\n”);
B.if(i/8==O)continue;
C.if(i%8==0)prinff(’’\n”);
D.if(i%8==0)continue;
71.結(jié)構(gòu)化程序設(shè)計的主要特征是()。
A)封裝和數(shù)據(jù)隱藏B)集成和重用
C)數(shù)據(jù)和處理數(shù)據(jù)的過程分離D)把數(shù)據(jù)和處理數(shù)據(jù)的過程看成一個整體
72.
73.
74.
75.對于循環(huán)隊列,下列敘述中正確的是()。A.隊頭指針是固定不變的
B.隊頭指針—定大于隊尾指針
C.隊頭指針_定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
76.變量a中的數(shù)據(jù)用二進制表示的形式是01011101,變量b中的數(shù)據(jù)用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運算是()。
A.
B.
C.ab
D.a<<b
77.下列關(guān)于棧的描述中錯誤的是()。
A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針
78.以下變量x、y、z均為double類型且已正確賦值,不能正確表示x/(y*z)的C語言表達式是()。
A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:輸出M行M列整數(shù)方陣,然后求兩條對角線上的各元素之和并將其返回。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù),用來刪除字符串中的所有空格。例如,輸入asdafaaz67,則輸出為asdafaaz67。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.D
2.C
3.C本題考查C語言中的數(shù)據(jù)輸出格式。
題目中定義了兩個整型變量m、n,對這兩個變量賦值,輸入的數(shù)值為十六進制整數(shù),并且有m=n。進行m-n運算后,將減法所得到的值賦給m,并將m值輸出。其中printf的格式字符選用的格式字符為x,即以十六進制形式輸出整數(shù)。注意,0x是表示該數(shù)為十六進制的標(biāo)志,輸出數(shù)據(jù)時,數(shù)據(jù)前面不會自動加上進制的標(biāo)志。
4.B
5.B在C語名中規(guī)定進行強制類型轉(zhuǎn)換的格式是:(類型名)變量名;并且給表達式賦值。
6.C本題主要考查數(shù)組的定義及初始化。在對數(shù)組進行定義和初始化時,需要注意以下事項。
(1)數(shù)組的內(nèi)存空間在編譯時確定,定義數(shù)組時的n值只能使用常量,不能使用變量。
(2)定義數(shù)組時可以不標(biāo)明數(shù)組元素的個數(shù),而是通過賦初值的方式確定,編譯系統(tǒng)將自動計算花括號內(nèi)的數(shù)據(jù)數(shù)量作為數(shù)組的元素個數(shù)。
(3)數(shù)組初始化時,當(dāng)初值的個數(shù)小于整型常量n時,編譯系統(tǒng)會自動補0。一旦給定初值數(shù)超過n,編譯系統(tǒng)將報錯。
(4)初始化數(shù)組的元素類型,必須與定義數(shù)組時的類型一致。
(5)數(shù)組名記錄了數(shù)組在內(nèi)存中的首地址,其值不能更改。
(6)除字符數(shù)組外,不能直接用數(shù)組名對數(shù)組進行整體輸入或輸出。
本題中定義了一個3行4列的數(shù)組,但沒有對其進行賦初值操作,可能我們會想在系統(tǒng)編譯時會自動補0,這只是在初值個數(shù)小于數(shù)組定義大小的情況下的操作,如果沒有進行賦初值操作,數(shù)組中的元素值是不能被確定的。因此,本題答案選C。
7.B題目中嵌套語句的含義是當(dāng)“a<b”且“a<c”成立時,將a的值賦給k。如果“a<b”成立而“a<c”不成立,則將c的值賦給k。如果“a<b”不成立而“b<c”成立,則將b的值賦給k。如果“a<b”不成立且“b<c”也不成立,則將c的值賦給k。判斷條件表達式,只有B選項可以表示這個含義。故本題答案為B選項。
8.D此題考查的是基本的循環(huán),答案為D。
9.D解析:用戶標(biāo)識符與關(guān)鍵字相同時,程序在編譯過程中將給出出錯信息。注意:選項D)應(yīng)該改為用戶標(biāo)識符與關(guān)鍵字相同,程序在編譯時將給出出錯信息。注意:合法的標(biāo)識符第一個字符必須為字母或下劃線。
10.A
11.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細設(shè)計的任務(wù)是:在使用程序設(shè)計語言編制程序以前,對所采用算法的邏輯關(guān)系進行分析,設(shè)計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計階段。
12.A
13.D解析:本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。
14.C
15.D
16.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。
17.A
18.B
19.A本題考查switch語句。當(dāng)i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當(dāng)i=4時,執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。
20.D解析:主要考查運算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、>,優(yōu)先級最低的是“=”。
21.585858585858解析:在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個訂語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>4O,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。
22.#include"math.h"m>>i&1m|k
23.xx解析:函數(shù)的定義形式為;
函數(shù)類型函數(shù)名(形參表)
{
類型說明語句;
執(zhí)行語句;
}
本題中函數(shù)的功能是:累積變量以求得變量的Y次方。
24.b=3b=3解析:條件表達式的基本格式為:“表達式1?表達式2:表達式3”;其功能是:表達式1的值若非0,則計算表達式2的值,且為最終結(jié)果;若表達式1的值為0,則計算表達式3的值,且為最終結(jié)果。因為a=3,則a>=0成立,所以b=a=3。
25.HellHell解析:該函數(shù)有3個參數(shù),第三個參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個參數(shù)是一個整數(shù)(假設(shè)為n),表示從文件中讀取n-1個字符并在其后加一個'\\0',第一個參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取的數(shù)據(jù)保存在其中。可見本題的輸出結(jié)果為Hell。
26.自頂向下自頂向下解析:在程序設(shè)計時,應(yīng)先考慮總體,后考慮細節(jié),逐步使問題具體化,對復(fù)雜的問題,應(yīng)該設(shè)計一些子目標(biāo)作為過渡,上述方法概括為:自頂向下,逐步細化。
27.數(shù)據(jù)字典或DD數(shù)據(jù)字典或DD解析:數(shù)據(jù)流圖用來對系統(tǒng)的功能需求進行建模,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據(jù)詞典(DataDictionary,DD)用于對數(shù)據(jù)流圖中出現(xiàn)的所有成分給出定義,它使數(shù)據(jù)流圖上的數(shù)據(jù)流名字、加工名字和數(shù)據(jù)存儲名字具有確切的解釋。
28.1212解析:本題中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。
29.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實現(xiàn)。
30.33解析:本題考查do…while語句形式:
do循環(huán)體
while表達式
首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。
31.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。
32.投影投影解析:在關(guān)系運算中,投影運算是在給定關(guān)系的某些域上進行的運算。
33.bb解析:本題實現(xiàn)的功能是把大寫字母轉(zhuǎn)換為小寫字母。小寫字母的ASCII碼值比相應(yīng)的大寫字母的ASCII碼值大32。
34.rowa[row][colum]row\r\na[row][colum]解析:通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標(biāo),column的作用是用來記錄最大元素的列下標(biāo)。程序中通過一個循環(huán)求得數(shù)組元素中最大值的行列下標(biāo),分別存放在變量row和colmnn中,根據(jù)題意,應(yīng)該把行下標(biāo)賦值給形參指針變量n指向的變量,把最大值a[row][columa]作為函數(shù)值返回。
35.人員資源人員資源
36.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。
37.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標(biāo)號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。
38.x+=2
39.3232解析:a*=18+(b++)-(++c)即a=a*(18+(b++)-(++c)),++c的值為5,a=2*(18+3-5)=32。b++是先使用b的值在對b加1,++c是先對c加1再使用c的值。
40.內(nèi)模式內(nèi)模式解析:內(nèi)模式又稱為物理模式,它給出?數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。
41.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應(yīng)注意下列兩點:①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當(dāng)初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大??;當(dāng)初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。
42.C解析:宏替換實質(zhì)上就是字符替代,它不可能進行計算,故C錯誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時不會產(chǎn)生類似于函數(shù)調(diào)用的問題,可以說不占用運行時間。
43.B解析:fgets函數(shù)的作用是從指定的文件讀入一個字符串。fgets(str,n,fp);中的n為要求得到的字符的個數(shù),但只從fp指向的文件輸入n-1個字符,然后在最后加一個‘\\0’字符,因此得到的字符串共有n個字符。
44.B解析:本題考查通過scanf函數(shù)輸入數(shù)據(jù)時的格式控制問題。變量j的格式控制為“%2d”,即只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入都會被保存到變量y中,因為y為浮點型數(shù)據(jù),所以輸出結(jié)果為選項B)。
45.C解析:typedef關(guān)鍵字用于聲明一個新的類型名代替已有的類型名。本題中如果沒有用typedef進行定義的話,則structNODE為結(jié)構(gòu)體類型,而用typedef定義后,相當(dāng)于用OLD代表了struetNODE這一結(jié)構(gòu)體類型,故OLD為結(jié)構(gòu)體類型。
46.C解析:正面向?qū)ο蟮某绦蛟O(shè)計中,對象是面向?qū)ο蟮能浖幕灸K。從模塊的獨立性考慮,對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強。由于完成對象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對象之間的耦合通常比較松。所以,選項A與選項B錯誤,選項C正確。
47.B解析:程序中定義了一個指向整型變量的指針變量,并對其賦值為二維整型數(shù)組a的首元素的地址。p[4]等價于*(p+4),即二維數(shù)組a中第四個元素的值,而a是一個2*3的二維數(shù)組,其第四個元素為a[1][1],即5。
48.D解析:選項D)為兩條語句。
49.C解析:本題中首先輸出逗號表達式“a=a+a,a+b,b”的值,即20。然后以八進制的形式輸出a+'a'-'A'的值為97對應(yīng)的八進制數(shù)141,由于最后一個表達式b沒有對應(yīng)輸出格式的輸出項表列就不會輸出。
50.C解析:將題目中的定義語句去掉前面的typedef和后面的CIN(分號保留),就是一條完整的結(jié)構(gòu)體定義語句,其中struct是說明符,TT是結(jié)構(gòu)體名,大括號里面的是結(jié)構(gòu)體成員的定義。此時要聲明該結(jié)構(gòu)體變量時需要使用struct加結(jié)構(gòu)體名一起來聲明,structTT一起構(gòu)成一個結(jié)構(gòu)體類型,就好像字符類型char。若只去掉前面的typedef,就是一條結(jié)構(gòu)體定義同時聲明個結(jié)構(gòu)體變量CIN的語句,因為CIN的前面部分是structTT的完整寫法,可以看作是structTT。C語言允許用typedef說明一種新類型名,其語法格式為:
typedef類型名標(biāo)識符;
以后就可以用該標(biāo)識符來代替被說明的類型名了。因此,當(dāng)前面存在typedef時,該語句就變成了給structTT的定義一個新的名稱CIN。所以,此時的CIN是一個結(jié)構(gòu)體類型,它相當(dāng)于structTT,即可以和char一樣單獨用來聲明該結(jié)構(gòu)體變量,而TT只是一個結(jié)構(gòu)體名,不能單獨用來聲明變量。所以,4個選項中C符合題意。
51.A解析:本題考查'%'運算符的使用。運算符'%'要求兩個運算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達式ao%=(b%2)等價于a=a%o(b%2)=5%(7%2)=5%1=0。
52.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b成立,執(zhí)行下列的復(fù)合語句,得c=a*b=20,b、a的值不變。
53.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
54.DD)【解析】需求分析是軟件定義時期的最后一個階
\n段,它的基本任務(wù)就是詳細調(diào)查現(xiàn)實世界要處理的對象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在這些基礎(chǔ)上確定新系統(tǒng)的功能。
55.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時由用戶定義的形式上的變量,實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。
在函數(shù)調(diào)用時,實參和其所對應(yīng)的形參分別占用不同的存儲單元,彼此之間不影響。
56.C解析:這是一個逗號表達式,它的值應(yīng)為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉(zhuǎn)換的情況下,3/2的值為1,所以x+3/2的值應(yīng)為2.0。
57.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
58.D【解析】算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術(shù),以便盡量減少不必要的額外空間。
59.D解析:本題考查指針變量的賦值。
**pp是定義了一個指向指針的指針變量,語句pp=&p的意思是將pp指向指針p,*p和**pp都是指針p所指的內(nèi)存空間的內(nèi)容,即b的值。
60.B數(shù)據(jù)庫應(yīng)用系統(tǒng)的邏輯設(shè)計包括數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫事務(wù)概要設(shè)計和應(yīng)用程序概要設(shè)計三方面。數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的主要步驟為:將E—R圖轉(zhuǎn)換為初始關(guān)系模式,對初始關(guān)系模式進行優(yōu)化,檢查關(guān)系表對數(shù)據(jù)庫事務(wù)的支持性,確定關(guān)系模式完整性約束,設(shè)計基于關(guān)系模式的用戶視圖。
61.C選項A“對于float類型數(shù)組,不可以直接用數(shù)組名完成對數(shù)組進行整體輸入或輸出”,是正確的。C語言中規(guī)定,只有字符型的數(shù)組才可以用數(shù)組名完成對數(shù)組進行整體輸入或輸出,主要是因為沒有字符串型的變量,通常用一個字符數(shù)組來存放字符串。采用字符串方式后,便可用數(shù)組名對數(shù)組進行整體輸入和輸出。
選項B“數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值是常量,是不可改變的”,是正確的。數(shù)組名本身是沒有方括號和下標(biāo)的,它實際上是表示數(shù)組起始的地址,該地址在數(shù)組初始化時由系統(tǒng)分配。
選項C“當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出‘下標(biāo)越界’的出錯信息”,是錯誤的。在某些編程語言中,下標(biāo)的取值是不允許超出數(shù)組定義中所設(shè)的界限的。但是在C和C++中,編譯器不對下標(biāo)的范圍進行檢查。不檢查下標(biāo)范圍的目的有兩個,一個是提高運行效率,不檢查下標(biāo),程序編譯耗費時間少。另一個是能夠方便指針的使用,數(shù)組名并沒有包含該數(shù)組長度的信息,只包含地址信息,可以看成是一個指針,若檢查下標(biāo),將限制數(shù)組名的使用功能。
選項D“可以通過賦初值的方式確定數(shù)組元素的個數(shù)”是正確的。C語言規(guī)定,如果對數(shù)組中所有的元素賦初值,可以省略定義元素的個數(shù)。
62.D本題考查switch語句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語句的語法格式:
另外,以下幾點關(guān)于s
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 春節(jié)詩韻賞析
- 春節(jié)餐飲消費解碼
- 無線電電報業(yè)務(wù)與特別業(yè)務(wù)
- 二零二五年度二手房買賣合同附租客安置及租金代收服務(wù)3篇
- 21世紀(jì)以來中國健康扶貧研究脈絡(luò)與展望-基于CiteSpace的可視化分析
- 二零二五年度國有企業(yè)股權(quán)轉(zhuǎn)讓與知識產(chǎn)權(quán)保護合同3篇
- Unit8 Birthdays(Period 1)(說課稿)-2023-2024學(xué)年譯林版(三起)英語五年級下冊
- 江蘇省泰州市(2024年-2025年小學(xué)六年級語文)統(tǒng)編版競賽題((上下)學(xué)期)試卷及答案
- 二零二五年度建筑工程合同變更與合同糾紛調(diào)解合同9篇
- 二零二五年度GZ事業(yè)單位合同制聘用員工勞動合同解除及補償合同2篇
- SB/T 10412-2007速凍面米食品
- 數(shù)控線切割機床的手工編程
- -油水井小修工藝技術(shù)課件
- (完整版)兒童醫(yī)學(xué)康復(fù)科疾病護理常規(guī)
- 2022閥門制造作業(yè)指導(dǎo)書
- 科技創(chuàng)新社團活動教案課程
- 建筑結(jié)構(gòu)加固工程施工質(zhì)量驗收規(guī)范表格
- 部編版語文六年級上冊作文總復(fù)習(xí)課件
- 無水氯化鈣MSDS資料
- 專利產(chǎn)品“修理”與“再造”的區(qū)分
- 氨堿法純堿生產(chǎn)工藝概述
評論
0/150
提交評論