版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年山西省陽(yáng)泉市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價(jià)的賦值語(yǔ)句是()。
A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;
3.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序運(yùn)行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
4.
5.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
6.以下說(shuō)法錯(cuò)誤的是()。
A.C語(yǔ)言標(biāo)識(shí)符中可以有多個(gè)字母、數(shù)字和下劃線字符
B.C語(yǔ)言標(biāo)識(shí)符中下劃線字符可以出現(xiàn)在任意位置
C.C語(yǔ)言標(biāo)識(shí)符不能全部由數(shù)字組成
D.C語(yǔ)言標(biāo)識(shí)符必須以字母開(kāi)頭
7.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序運(yùn)行后的輸出結(jié)果是()。
A.18,34,100B.24,34,92C.24,34,100D.18,34,92
8.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}執(zhí)行后輸出結(jié)果是()A.28B.22C.16D.4
9.在面向?qū)ο蠓椒ㄖ?,不屬于“?duì)象”基本特點(diǎn)的是A.一致性B.分類性C.多態(tài)性D.標(biāo)識(shí)唯一性
10.以下說(shuō)法正確的是()。
A.C程序總是從第一個(gè)函數(shù)開(kāi)始執(zhí)行
B.在C程序中,被調(diào)用的函數(shù)必須在main函數(shù)中定義
C.C程序總是從main函數(shù)開(kāi)始執(zhí)行
D.C程序中的main函數(shù)必須放在程序的開(kāi)始部分
11.堆的形狀是一棵_______。
A.二叉排序樹(shù)B.滿二叉樹(shù)C.完全二叉樹(shù)D.平衡二叉樹(shù)
12.下列敘述中正確的是()。
A.在switch語(yǔ)句中不一定使用break語(yǔ)句
B.在switch語(yǔ)句中必須使用default語(yǔ)句
C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用
D.break語(yǔ)句只能用于switch語(yǔ)句
13.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過(guò)程中可以出棧,則下列不可能的一個(gè)出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
14.請(qǐng)選出以下程序的輸出結(jié)果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
15.標(biāo)準(zhǔn)庫(kù)函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長(zhǎng)度為n的字符串存入字符數(shù)組s中
B.從文件file中讀取長(zhǎng)度不超過(guò)n-1個(gè)字符的字符串放到字符數(shù)組s中
C.從文件file中讀取n個(gè)字符串存入字符數(shù)組s中
D.從文件file中讀取長(zhǎng)度為n-1個(gè)字符的字符串存入字符數(shù)組s中
16.以下是根據(jù)文件大小分配存儲(chǔ)空間的一個(gè)算法偽代碼,請(qǐng)問(wèn)其空間復(fù)雜度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))
17.下列敘述中正確的是()。
A.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句
B.eotinue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同
D.從多層循環(huán)嵌套中退出時(shí),只能使用got0語(yǔ)句
18.定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是A)B)369C)0.369D)A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}
19.數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
20.有以下程序:#include<stdio.h>main(){intx=8;for(;x>0;x--){ if(x%3) { printf(“%”d,x--); continue; }printf(“%d,”,--x);}}程序的運(yùn)行結(jié)果是()。
A.7,4,2,B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,
二、2.填空題(20題)21.若有以下程序:
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后的輸出結(jié)果是【】。
22.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對(duì)象有外部特征,而不知道也無(wú)須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱為對(duì)象的______。
23.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。
24.以下sum函數(shù)的功能是計(jì)算下列級(jí)數(shù)之和。請(qǐng)給函數(shù)中的各變量正確賦初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
25."print("%d\n",strlen("\t\"\023\xABC\n"));”語(yǔ)句的輸出結(jié)果是______。
26.有一個(gè)已排好序的數(shù)組,今輸入一個(gè)數(shù),要求按原來(lái)的順序規(guī)律將它插入到數(shù)組中。算法是:假設(shè)排序順序是從小到大,對(duì)輸入的數(shù),檢查它在數(shù)組中哪個(gè)數(shù)之后,然后將比這個(gè)數(shù)大的數(shù)順序后移一個(gè)位置,在空出的位置上將該數(shù)插入。請(qǐng)?jiān)诔绦蛑械目瞻滋幪钌弦粭l語(yǔ)句或一個(gè)表達(dá)式。
#defineN100
main()
{floata[N+1],x;
inti,p;
for(i=0;i<N;i++)
scanf("%f"&a[i]);
scanf("%f",&x);
for(i=0,p=N;i<N;i++)
if(x<a[i])
{【】;
break;}
for(i=N-1;【】;i-)
a[i+1]=a[i];
a[p]=x;
for(i=0;【】;i++)
{printf("%8.2f",a[i]);
if(i%5=0)
printf("\n");
}
}
27.以下程序的功能是:輸出100以內(nèi)(不含100)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,j
for(i=0;【】;i++)
{j=i*10+6;
if(【】)continue:
Printf("%d”",j);
}
}
28.\13'在內(nèi)存中占1個(gè)字節(jié),"\12"在內(nèi)存中占______個(gè)字節(jié)。
29.耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。
30.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
31.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除一個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。
32.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于[]。
33.以下程序運(yùn)行后的輸出結(jié)果是______。
#include<string.h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abcdefg";
fun(s,3,strlen(s));puts(s);
}
34.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do{k*=n%10*r;n/=10;r++;}while(n);
35.已知a=1,b=2,則表達(dá)式(a&B)&b||b的結(jié)果為()。
36.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
37.設(shè)有以下定義和語(yǔ)句,sizeof(a)的值是【】,sizeof(b)的值是【】。
struct{intday;Charmonth;intyear;}a,*b;
b=&a;
38.以下函數(shù)用來(lái)求出兩整數(shù)之和,并通過(guò)形參將結(jié)果傳回,請(qǐng)?zhí)畛渫暾?/p>
voidfunc(intx,inty,【】z)
{*z=x+y;
}
39.軟件生命周期包括8個(gè)階段。為了使各時(shí)期的任務(wù)更明確,又可分為3個(gè)時(shí)期:軟件定義期、軟件開(kāi)發(fā)期、軟件維護(hù)期。編碼和測(cè)試屬于【】期。
40.近年來(lái)形成了軟件開(kāi)發(fā)的多種模式,大致有3種類型:基于瀑布模型的結(jié)構(gòu)化生命周期方法、基于動(dòng)態(tài)定義需求的【】方法和基于結(jié)構(gòu)的面向?qū)ο蟮能浖_(kāi)發(fā)方法。
三、1.選擇題(20題)41.如果需要打開(kāi)一個(gè)已經(jīng)存在的非空文件“Demo"進(jìn)行修改下面正確的選項(xiàng)是
A.fp=fopen("Demo","r");
B.fp=fopen("Demo","ab+");
C.fp=fopen("Demo","w+");
D.fp=fopen("Demo","r+");
42.在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7
43.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為()。A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
44.設(shè)有定義:intk=1,m=2;floatf=7;則下列選項(xiàng)中錯(cuò)誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
45.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是
A.線性鏈表B.棧C.循環(huán)鏈表D.順序表
46.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語(yǔ)句后輸出的結(jié)果為()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無(wú)定值
B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
47.下列敘述中正確的是()。
A.程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)
B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D.以上三種說(shuō)法都不對(duì)
48.下列關(guān)于棧的描述中錯(cuò)誤的是()
A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入與刪除操作中,不需要改變棧底指針
49.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與實(shí)體間的聯(lián)系可以表示成()。
A.屬性B.關(guān)系C.鍵D.域
50.若有程序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
51.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時(shí),從鍵盤(pán)輸入:01<回車(chē)>,程序執(zhí)行后的輸出結(jié)果是
A.anothernumber
B.anothernumberanother
C.anothernumbernumber
D.numbernumber
52.有以下程序intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){returnf2(x)-f1(x);}main(){inti;i=f(fa,fb,2);pfintf(“%d\n”,i);}程序運(yùn)行后的輸出結(jié)果是
A.-4B.1C.4D.8
53.有以下程序:#include<stdio.h>#include<string.h>typedefstruct{charname[9];charsex;floatscore[2]}STU;STUf(STUA){STUb={"Zhao",'m',85.0,90.0};inti;strcpy(,b.namC);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];returna;}main(){STUc={"Qian",'f',95.0,92.0},d;d=f(C);pintf("%s,%c,%2.of.%2.of\n",,d.sex,d.score[0],&score[1]);}程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,m,85,90D.Zhao,C95,92
54.以下程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}
A.8B.3C.1D.7
55.沒(méi)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式為R-(R-S)表示的是
A.RDSB.R-SC.RUSD.R÷S
56.設(shè)函數(shù)fun的定義形式為voidfun(charch,floatx){…}則以下對(duì)函九fun的調(diào)節(jié)器用語(yǔ)句中,正確是
A.fun("abc",3.0);
B.t=fun('D',16.5);
C.fun('65',2.8):
D.fun(32,32);
57.語(yǔ)句int(*ptr)()的含義是()。
A.ptr是一個(gè)返回值是血的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)血型數(shù)據(jù)
D.ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
58.下列敘述中,不屬于軟件需求規(guī)格說(shuō)明書(shū)的作用的是()
A.便于用戶,開(kāi)發(fā)人員進(jìn)行理解和交流
B.反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)
D.便于開(kāi)發(fā)人員進(jìn)行需求分析
59.若有說(shuō)明語(yǔ)句:inta,b,c,*d=&c;,則能正確從鍵盤(pán)讀入3個(gè)整數(shù)分別賦給變量a、b、c的語(yǔ)句是()。
A.scanf("%d%d%d",&a,&b,d);
B.scanf("%d%d%d",&a,&b,&d);
C.scanf("%d%d%d",a,b,d);
D.scanf("%d%d%d",a,b,*d);
60.若有下面的說(shuō)明和定義:unionun{chars[10];longd[3];}ua;struetstd{charc[10];doubled;inta;unionunvb;}a;則printf("%d\n",sizeof(structstd)+sizeof(unionun));輸出的值為_(kāi)_____。
A.34B.52C.54D.64
四、選擇題(20題)61.
62.有以下程序
#include<stdio.h>
main()
{charcl,c2;
c1=A+8-4
c2=A+8-5;
printf("%C,%d\n",cl,c2);
}
已知字母A的ASCIl碼為65,程序運(yùn)行后的輸出結(jié)果是()。
A.E,69B.D,69C.E,DD.輸出無(wú)定值
63.有以下程序:
若運(yùn)行時(shí)輸入:246<;回車(chē)>;,則輸出結(jié)果為()。
A.204B.200C.240D.246
64.執(zhí)行語(yǔ)句“for(i=1;i++<;4;);”后,變量i的值是()。
A.3B.4C.5D.不定
65.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過(guò)程設(shè)計(jì),其中軟件的過(guò)程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過(guò)程描述C.軟件層次結(jié)構(gòu)D.軟件開(kāi)發(fā)過(guò)程
66.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)果是()。
#include<stdio.h>
#include<string.h>
voidmain()
{charss[10]="12345",
gets(ss);strcat(ss,"6789");
printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
67.已有定義intx=3,y=4,z=5;則表達(dá)式“!(x+y)+z-1y+z/2”的值是________。
A.6B.0C.2D.1
68.以理對(duì)枚舉類型名的定義中正確的是______。
A.enuma={one,two,three);
B.enuma{one=9,two=1three};
C.enuma={"one","two","three"};
D.enuma{"one","two"."three"};
69.
70.為了避免流程圖在描述程序邏輯時(shí)的靈活性,提出了用方框圖來(lái)代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為()。
A.PAD圖B.N—S圖C.結(jié)構(gòu)圖D.數(shù)據(jù)流圖
71.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是()。
72.以下程序的功能是
#include<stdio.h>
main()
{FILE*fp1;*fp2;
fp1=fopen("file1","r");
fp2=fopen("file2","w");
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
A.將磁盤(pán)文件的內(nèi)容顯示在屏幕上
B.將兩個(gè)磁盤(pán)文件合為一個(gè)
C.將一個(gè)磁盤(pán)文件復(fù)制到另一個(gè)磁盤(pán)文件中
D.將兩個(gè)磁盤(pán)文件合并后送屏幕
73.有3個(gè)關(guān)系R、S和T如下.
則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并
74.(27)程序流程圖(PFD)中的箭頭代表的是()
A.數(shù)據(jù)流
B.控制流
C.調(diào)用關(guān)系
D.組成關(guān)系
75.下列排序方法中,最壞情況下比較次數(shù)最少的是()。
A.簡(jiǎn)單選擇排序B.冒泡排序C.堆排序D.直接插入排序
76.若x=5,y=3則y*=x+5;y的值為_(kāi)__________.
A.10B.20C.15D.30
77.
78.有以下程序:
程序的運(yùn)行結(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,
79.以下程序的輸出結(jié)果是()。
main
{intx=0.5;charz='a';
printf("%d\n",(x&1)&&(z<'2'));}A.A.0B.1C.2D.3
80.
五、程序改錯(cuò)題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過(guò)長(zhǎng)的剩余字符接在C所指的數(shù)組的尾部。例如,當(dāng)a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)“a4b3c2dlef9”;而當(dāng)a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)該為“l(fā)g2f3e4dcba”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),該函數(shù)的功能是:實(shí)現(xiàn)B=A+A',即把矩陣A加上A的轉(zhuǎn)置,存放在矩陣B中。計(jì)算結(jié)果在main()函數(shù)中輸出。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
參考答案
1.D
2.B解析:本題考核的知識(shí)點(diǎn)是for循環(huán)次數(shù)的計(jì)算.本程序中for循環(huán)的次數(shù)為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開(kāi)始s的值為a,故4個(gè)選項(xiàng)中選項(xiàng)B符合題意.
3.A本題中,首先創(chuàng)建一個(gè)動(dòng)態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同.的變量。分別給a、b、c所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量
4.B
5.C解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦韌值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對(duì)自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語(yǔ)句。本題在程序開(kāi)頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過(guò)來(lái)的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。
6.DC語(yǔ)言的合法的標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線組成,并且第1個(gè)字符必須是字母或下劃線。選項(xiàng)D錯(cuò)誤。本題答案為D選項(xiàng)。
7.D程序中S1和S2都是宏定義。S1(a+b)宏展開(kāi)后的表達(dá)式為4*a+b+4*(a+b),即4*1+2+4*(1+2),結(jié)果為18;S2(a,b)宏展開(kāi)后的表達(dá)式為4*(a)*(b)+b*a,即4*(1)*(2)+2*1,結(jié)果為10;S1(3)宏展開(kāi)后的表達(dá)式為4*3+4*(3),結(jié)果為24;32(3+a,b+3)宏展開(kāi)后的表達(dá)式為4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,結(jié)果為92。最終輸出:18,34,92。故本題答案為D選項(xiàng)。
8.A解析:f(4+4)/f(2+2)=4+4*4+4/2+2*2+2=28。
9.A對(duì)象具有如下特性:標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性。
10.C解析:C程序是由main函數(shù)開(kāi)始運(yùn)行,通過(guò)main函數(shù)調(diào)用其他函數(shù),所以,選項(xiàng)A)錯(cuò)誤;在C程序中,函數(shù)不能嵌套定義,即不能在一個(gè)函數(shù)中定義另一個(gè)函數(shù),選項(xiàng)B)錯(cuò);C程序總是從main函數(shù)開(kāi)始執(zhí)行,但main函數(shù)不必放在最前面,故選項(xiàng)D)錯(cuò)。
11.C
12.Adefault語(yǔ)句在switch語(yǔ)句中可以省略,所以B選項(xiàng)錯(cuò)誤;switch語(yǔ)句中并非每個(gè)case后都需要使用break語(yǔ)句,所以C選項(xiàng)錯(cuò)誤;break語(yǔ)句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
13.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說(shuō)明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。
14.B
15.B解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說(shuō)明:“s”可以是一個(gè)字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個(gè)數(shù);“fp”是指向該文件的文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長(zhǎng)度不超過(guò)n-1個(gè)字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會(huì)自動(dòng)在字符串末尾加入“'\\0'”結(jié)束符,表示字符串結(jié)束。
16.C
17.A本題考查循環(huán)跳出的知識(shí)點(diǎn):①break語(yǔ)句可以出現(xiàn)在switch循環(huán)體內(nèi)及語(yǔ)句體內(nèi),它的作用是跳出循環(huán)體,不能用于其他的語(yǔ)句;②continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,而接著判定循環(huán)條件是否成立,確定下一次循環(huán)是否繼續(xù)執(zhí)行,執(zhí)行contiune語(yǔ)句不會(huì)使整介循環(huán)終止;③循環(huán)體內(nèi)使用break語(yǔ)句會(huì)使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時(shí),可以使用90t0語(yǔ)句或者break語(yǔ)句。
18.B
19.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對(duì)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開(kāi)發(fā)的角度來(lái)看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)所具有的兩個(gè)特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級(jí)數(shù)據(jù)庫(kù)模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫(kù)系統(tǒng)的功能(動(dòng)態(tài)特性)。
20.Dcoutimie語(yǔ)句的作用是跳出循環(huán)體中剩余的語(yǔ)句而進(jìn)行下一次循環(huán)。第1次循環(huán),x的值為8,循環(huán)體中if條件成立,輸出X的值8后將x減1,再執(zhí)行continue語(yǔ)句,跳出本次循環(huán)。第2次循環(huán),x的值為6,不滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“--x”的操作,即輸出5后跳出循環(huán)。第3次循環(huán),x的值為4,滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“x--”的操作,即輸出4后將x值減一,執(zhí)行continue語(yǔ)句,跳出本次循環(huán)。第4次循環(huán),x的值為2,滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“x--”的操作,輸出2后將x減1,執(zhí)行continue語(yǔ)句,跳出本次循環(huán)。在進(jìn)行for條件表達(dá)式中第3個(gè)表達(dá)式“x--”的操作后,x的值為0,不滿足條件,結(jié)束循環(huán)。所以運(yùn)行結(jié)果為8,5,4,2,。故本題答案為D選項(xiàng)。
21.99解析:f(3,4)=(4-3)×3=3,f(3,5)=(5-3)×3=6,所以d=f(f(3,4),f(3,5))=f(3,6)=(6-3)×3=9。
22.封裝性封裝性解析:對(duì)象具有下列5個(gè)基本特點(diǎn):①標(biāo)識(shí)惟一性;②分類性:③多態(tài)性;④封裝性;⑤模塊獨(dú)立性好。其中,封裝性是指從外面看只能看到對(duì)象的外部特征,對(duì)象的內(nèi)部特征即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見(jiàn)的,對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。
23.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在C語(yǔ)言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
24.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或給abs賦1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或給a,b,s賦1或1.0或1.解析:sum函數(shù)的功能是求表達(dá)式s的級(jí)數(shù)之和,該函數(shù)的大致思路是:在該函數(shù)中,定義了—個(gè)整型變量i用作循環(huán)計(jì)數(shù)器,定義一個(gè)變量a用來(lái)表示各個(gè)子項(xiàng)的分子,初始為第一個(gè)子項(xiàng)的分子,故為1,定義了一個(gè)變量b用來(lái)表示各個(gè)子項(xiàng)大分母,初始為第一個(gè)子項(xiàng)的分母,故為1,定義一個(gè)變量s存放累加和,初始為第一個(gè)子項(xiàng)的值即為1,然后給各個(gè)定義的變量初始化,然后通過(guò)一個(gè)for循環(huán)將題目中的數(shù)學(xué)表達(dá)式的各個(gè)子項(xiàng)求出來(lái)并累加到s中,所以說(shuō),在該題的空格處應(yīng)該填寫(xiě)將a、b和s賦初值的語(yǔ)句,即為a=1;b=1;s=1:(說(shuō)明:語(yǔ)句的順序可任意)或a=b=s=1;(說(shuō)明:變量的順序可任意)或a=1,b=1,s=1(說(shuō)明:賦值表達(dá)式的順序可任意)給a,b,s賦1或1.0或1都可以。
25.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長(zhǎng)度并作為函數(shù)的返回值,這里的長(zhǎng)度不包括串尾的結(jié)束標(biāo)志,\'\\0\'。
\'\\t\',是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\\''是轉(zhuǎn)義字符,代表雙引號(hào);\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符:\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符:\'\\n\'是轉(zhuǎn)義字符,代表回車(chē)換行。’
5個(gè)子符常量各代表一個(gè)字符,再加上字母C,所以返回的長(zhǎng)度是6。
26.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開(kāi)始己經(jīng)按從小到大順序排序排好。在插入時(shí),首先要查到第一個(gè)大于恃插入數(shù)的數(shù)組下標(biāo),即當(dāng)待插入元素小于數(shù)組中當(dāng)前元素時(shí),記下數(shù)組的當(dāng)前下標(biāo)p,并結(jié)束循環(huán),故第一空目的是為了記下數(shù)組下標(biāo),應(yīng)填p=i;插入排序的第二部是將大于待插入元素的所有元素都向后移動(dòng)—位,故在循環(huán)時(shí),要從最后一個(gè)元素到第p個(gè)元素都要后移一位,因此第二空應(yīng)填>i=p。最后一個(gè)循環(huán)是將N+1個(gè)元素都輸出,故最后一空應(yīng)為i<=N。(注:本題有多種答案,以上僅提供一種)
27.i<10或i<9j%3!=0或j%3i<10或i<9\r\nj%3!=0或j%3解析:程序中的j用于存放符合條件的整數(shù),j=i,10+6;求得個(gè)位數(shù)為6的整數(shù),由此可得出程序的循環(huán)次數(shù)為i<10,所以[15]處填i<10。然后通過(guò)if語(yǔ)句判斷整數(shù)是否能被3整除,若不能則繼續(xù)下一次循環(huán),若能則輸出該整數(shù),所以[16]處填j%3!=0。
28.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個(gè)字符,占一個(gè)字節(jié);而”\\12”是個(gè)字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個(gè)字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個(gè)字節(jié)。
29.內(nèi)聚內(nèi)聚
30.存儲(chǔ)結(jié)構(gòu)
31.n/2n/2解析:刪除一個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。
32.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊(duì)列也是線性表,也町以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
33.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語(yǔ)言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長(zhǎng)度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實(shí)現(xiàn)的功能簡(jiǎn)單來(lái)說(shuō)就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長(zhǎng)度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個(gè)字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因?yàn)閟[5]為'\\0',所以后面的字符不會(huì)輸出)。
34.00解析:本題考查的是do厀hile循環(huán)。第一次執(zhí)行循環(huán)體,因?yàn)閗=1,r=1,n=20,所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4,所以k的值為0。
35.1
36.33解析:C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因?yàn)閤不大于y,所以執(zhí)行printf('%d\\n',z);語(yǔ)句。
37.52
38.int*int*解析:從函數(shù)體中可看出,2是一個(gè)指向整型的指針,該函數(shù)的形參z是傳地址調(diào)用。
39.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期可以分為3個(gè)時(shí)期:軟件定義期,包括問(wèn)題定義、可行性研究和需求分析3個(gè)階段;軟件開(kāi)發(fā)期,包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段;軟件維護(hù)期,即運(yùn)行維護(hù)階段。編碼和測(cè)試屬于軟件開(kāi)發(fā)階段。
40.原型化原型化
41.D解析:此題考查文件打開(kāi)方式對(duì)文件操作的影響。由于打開(kāi)文件進(jìn)行修改,可見(jiàn)選項(xiàng)A)是錯(cuò)誤的,因?yàn)榇朔N方式打開(kāi)時(shí),只能讀,不能寫(xiě),當(dāng)然無(wú)法修改。選項(xiàng)B)是以追加方式“ab+”打開(kāi)文件讀寫(xiě)。以這種方式打開(kāi)時(shí),新寫(xiě)入的數(shù)據(jù)只能追加在文件原有內(nèi)容之后,但可以對(duì)以前的數(shù)據(jù)讀出。換言之,“ab+”或“a+”方式打文件后,對(duì)于寫(xiě)操作,文件指針只能定位在文件的原有內(nèi)容之后,但對(duì)于讀操作,文件指針可以定位在全文件范圍內(nèi),可見(jiàn),按此種方式打開(kāi)文件不能實(shí)現(xiàn)文件內(nèi)容的修改。選項(xiàng)C)以“w+”方式打開(kāi)文件,此時(shí),原文件中已存在的內(nèi)容都被清除。但新寫(xiě)入文件的數(shù)據(jù)可以被再次讀出或再次寫(xiě)入,故也不能實(shí)現(xiàn)對(duì)文件的修改。只有以“r+”方式打開(kāi)文件時(shí),才允許將文件原來(lái)數(shù)據(jù)讀出,也允許在某些位置上再寫(xiě)入,從而實(shí)現(xiàn)對(duì)文件的修改。
42.B解析:在長(zhǎng)度為64的有序線性表中,其中的64個(gè)數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個(gè)數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個(gè)數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類推,直到性表中查找到該數(shù)據(jù)或查找到線性表的最后一個(gè)元素,算法才結(jié)束。因此,在長(zhǎng)度為64的有序線性表十進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項(xiàng)B。
43.C數(shù)據(jù)結(jié)構(gòu)與算法:數(shù)據(jù)結(jié)構(gòu)的基本概念[評(píng)析]邏輯結(jié)構(gòu)反映數(shù)據(jù)元素之間的邏輯關(guān)系,線性結(jié)構(gòu)表示數(shù)據(jù)元素之間一對(duì)一的關(guān)系,非線性結(jié)構(gòu)表示數(shù)據(jù)元素之間一對(duì)多或多對(duì)一的關(guān)系。線性結(jié)構(gòu)和非線性結(jié)構(gòu)是根據(jù)數(shù)據(jù)元素之間關(guān)系的不同特性加以分類的,即是從邏輯上加以分類的。
44.C解析:在C語(yǔ)言中,求余運(yùn)算符“%”兩邊的運(yùn)算對(duì)象都應(yīng)為整型數(shù)據(jù),所以需要對(duì)變量f進(jìn)行強(qiáng)制類型轉(zhuǎn)換,正確的寫(xiě)法為k%(int)f。在C語(yǔ)言中,邏輯運(yùn)算符與賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符之間從高到低的運(yùn)算優(yōu)先次序是:!(邏輯“非”)、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、&&(邏輯“與”)、||(邏輯“或”)、賦值運(yùn)算符。根據(jù)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性,對(duì)于選項(xiàng)A),先計(jì)算k>=k的值(為真,即1),再用1對(duì)k進(jìn)行賦值。對(duì)于選取項(xiàng)B),先計(jì)算k++的值,再對(duì)其取負(fù)數(shù)。對(duì)于選項(xiàng)D),先計(jì)算k>=f的值(為假,即0),再用0與出進(jìn)行比較,故最終結(jié)果為0。
45.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊(duì)列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊(duì)列組織數(shù)據(jù)的原則。
46.C解析:第1個(gè)printf函數(shù),格式說(shuō)明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,所以對(duì)于多余的輸出項(xiàng)k不予輸出;第2個(gè)pfintf函數(shù),有兩個(gè)%說(shuō)明,第1個(gè)%后面的字符要原樣輸出。注意:本題考查printf函數(shù)的格式。①“%x”和“%o”分別表示以十六進(jìn)制和八進(jìn)制無(wú)符號(hào)型輸出整型數(shù)據(jù)(不帶前導(dǎo)Ox或O):②printf函數(shù)中格式說(shuō)明符之前插入的任何字符都原樣輸出:⑧格式說(shuō)明與輸出項(xiàng)的個(gè)數(shù)也要相等,如果格式說(shuō)明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),則對(duì)于多余的輸出項(xiàng)不予輸出。
47.A本題考查程序效率。程序效率是指程序運(yùn)行速度和程序占用的存儲(chǔ)空間。影響程序效率的因素是多方面的,包括程序的設(shè)計(jì)、使用的算法、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)等。在確定數(shù)據(jù)邏輯結(jié)構(gòu)的基礎(chǔ)上,選擇一種合適的存儲(chǔ)結(jié)構(gòu),可以使得數(shù)據(jù)操作所花費(fèi)的時(shí)間少,占用的存儲(chǔ)空間少,即提高程序的效率。因此,本題選項(xiàng)A的說(shuō)法是正確的。
48.B解析:在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照先進(jìn)后出(FILO,F(xiàn)irstInLastOut)或后進(jìn)先出(LIFO,LastInFirstOut)的原則組織數(shù)據(jù)的,因此,棧也被稱為先進(jìn)后出表或后進(jìn)先出表。由此可以看出,棧具有記憶作用。答案B錯(cuò)在帶鏈的棧的結(jié)點(diǎn)存儲(chǔ)順序與其邏輯順序是可以不一致的。
49.B解析:將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的主要工作。從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體和聯(lián)系都可以表示成關(guān)系。
50.A解析:static聲明的外部變量只限于彼本文件引用,而不能被其他文件引用。用static來(lái)聲明一個(gè)變量的作用有:①對(duì)局部變量用static聲明,則為該變量分配的空間在整個(gè)程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第一個(gè)fun,其兩個(gè)實(shí)參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結(jié)束返回15。第二次調(diào)用fun時(shí),由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。
51.C解析:switch語(yǔ)句的執(zhí)行過(guò)程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時(shí),就執(zhí)行后面的語(yǔ)句.如果在該語(yǔ)句的后面沒(méi)有break語(yǔ)句,則繼續(xù)執(zhí)行下一個(gè)case,直到遇到break語(yǔ)句或switch多分支的結(jié)束,在switch語(yǔ)句中,break語(yǔ)句的作用是使流程跳出switch結(jié)構(gòu),終止Switch語(yǔ)句的執(zhí)行.本題中在for循環(huán)中嵌套了swish語(yǔ)句,每循環(huán)一次通過(guò)scanf()函數(shù)從鍵盤(pán)上輸入一個(gè)k值,然后執(zhí)行switch語(yǔ)句。for循環(huán)共循環(huán)了2次,當(dāng)i=1時(shí),從鍵盤(pán)上輸入0,使得k的值為0,執(zhí)行switch語(yǔ)句中case:0后面的語(yǔ)句,輸出another,接著執(zhí)行case:0下面的語(yǔ)句輸出number,退出switch語(yǔ)句,當(dāng)i=2時(shí),從鍵盤(pán)上輸入1,使得k的值為1,執(zhí)行switch語(yǔ)句中case1后面的語(yǔ)句,輸出number,退出switch語(yǔ)句.當(dāng)i=3時(shí)退出循環(huán).故最后的輸出為another、number和number,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
52.C解析:函數(shù)f()有3個(gè)形式參數(shù)f1、f2和x,其中f1、f2是指向函數(shù)的指針變量。在main()函數(shù)中執(zhí)行了函數(shù)調(diào)用“f(fa,fb,2)”,從而使f()的形式參數(shù)f1指向了fa,形式參數(shù)f2指向了fb,把實(shí)參2傳給了形參變量x。函數(shù)f()中的return語(yǔ)句相當(dāng)于“fb(2)-fa(2)”(fb(2)的返回值為2*2*2=8,fa(2)返回值為2*2=4)即(8-4),值為4。函數(shù)f()執(zhí)行后把返回值4賦給了i,輸出i的值是4。
53.C解析:本題的f()函數(shù)中,首先定義了一個(gè)STU結(jié)構(gòu)體變量b并初始化為{'Zhao',\'m\',85.0,90.0},然后分別通過(guò)strcpy()庫(kù)函數(shù)、賦值語(yǔ)句和for循環(huán),將b中所有成員分別賦給形參a的相應(yīng)成員,最后返回a。所以,無(wú)論傳遞給函數(shù)fun()的參數(shù)是什么,結(jié)果返回的都會(huì)是函數(shù)中定義的STU結(jié)構(gòu)體b的內(nèi)容{'Zhao',\'m\',85.0,90.0}。故最終輸出結(jié)果為:Zhao,m,85,90;應(yīng)該選擇C。
54.D解析:strcpy()函數(shù)的作用是把第二個(gè)參數(shù)代表的字符串,復(fù)制到第一個(gè)參數(shù)指向數(shù)組中。首先定義了兩個(gè)字符數(shù)組b1和b2,并用一個(gè)字符串給b1賦初值,然后定義了一個(gè)字符型指針變量pb,通過(guò)賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strcpy(b2,pb);”后,b2中的內(nèi)容為“cdefg”;第二次判斷條件“--pb>=b”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“bcdefg”第三次判斷條件“--pb>:b1”使pb的值為“b1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長(zhǎng)度,顯然是7。(這里還有一個(gè)關(guān)鍵點(diǎn):就是每當(dāng)執(zhí)行一次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,使得指針pb自減1,即前移一位)。
55.A解析:R-S表示屬于R但不屬于S,R-(R-S)表示屬于R但不屬于(R-S),即相當(dāng)于R∩S。
56.D解析:本題考查了函數(shù)的定義。題目中定義的函數(shù)fun()有兩個(gè)參數(shù),一個(gè)是字符型變量ch,另一個(gè)是浮點(diǎn)型變量x,函數(shù)類型是void即無(wú)返回值。選項(xiàng)A調(diào)用fun的第1個(gè)參數(shù)是字符串常量與字符變量不匹配,所以不正確。選項(xiàng)B是有返回值函數(shù)的調(diào)用形式,不正確。選項(xiàng)C的第1個(gè)參數(shù)是錯(cuò)誤的字符常量,字符常量是用單引號(hào)括起來(lái)的一個(gè)字符(是轉(zhuǎn)義字符可能有多個(gè)字符),故也不正確。選項(xiàng)D使用兩個(gè)整型常量調(diào)用fun這在C語(yǔ)言中是允許的。因?yàn)檎偷阶址涂梢宰詣?dòng)轉(zhuǎn)換,整型到浮點(diǎn)型也可以自動(dòng)轉(zhuǎn)換。故應(yīng)該選擇D。
57.C解析:本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標(biāo)識(shí)符(指針變量名)()?!邦愋蜆?biāo)識(shí)符”為函數(shù)返回值的類型。
58.D解析:軟件需求規(guī)格說(shuō)明書(shū)SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開(kāi)發(fā)中的重要文檔之一。它有以下幾個(gè)方面的作用,①便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流;②反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。
59.A解析:選項(xiàng)B中d已經(jīng)為地址,不應(yīng)在加上求地址符號(hào)“&”,故選項(xiàng)B不正確;選項(xiàng)C中,a和b都為變量不是地址,應(yīng)該在a和b之前加上求地址符號(hào)“&”,故選項(xiàng)C不正確:選項(xiàng)D中指針d所指向的存儲(chǔ)空間的位置為變量c的值,不為地址,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中A為所選。
60.B解析:結(jié)構(gòu)體中的每個(gè)成員分別占用獨(dú)立的存儲(chǔ)空間,因此它所占的內(nèi)存字節(jié)數(shù)是其成員所占字節(jié)數(shù)的總和;共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個(gè)成員相等。
61.B
62.A\n本值輸出兩個(gè)值,%c為輸出一個(gè)字母,0/4d輸出一個(gè)數(shù)字。“A”的ASCIl碼為65,再加4之后為69,也就是字母E,所以本題A正確。
\n
63.A本題中輸入的3個(gè)數(shù)據(jù)2,4,6分別賦值給了x[0[0],x[1][0],x[2][0]。x[o][1]仍為初始時(shí)的0,所以打印輸出時(shí)的結(jié)果為A選項(xiàng)。
64.Cfor循環(huán)結(jié)束時(shí),i++的值應(yīng)為4,i自加后此時(shí)應(yīng)為5,故選擇C選項(xiàng)。
65.B軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)接口設(shè)計(jì)和過(guò)程設(shè)計(jì)。其中軟件結(jié)構(gòu)設(shè)計(jì)主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫(xiě)成文檔;數(shù)據(jù)接口設(shè)計(jì)的任務(wù)是為每個(gè)子系統(tǒng)設(shè)計(jì)其與其他子系統(tǒng)間的接口,并編寫(xiě)成文檔,這個(gè)接口要是一個(gè)無(wú)二義的接口,不需要子系統(tǒng)的操作知識(shí)就可以使用;過(guò)程設(shè)計(jì)是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過(guò)程描述。
66.Astrcat函數(shù),gets函數(shù);首先將輸入的字符串賦給ss,然后將字符串“6789”連接到ss得后面
67.D
68.B解析:聲明枚舉類型用enum開(kāi)頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);
說(shuō)明:1、在C編譯中,對(duì)枚舉元素按常量處理,同時(shí)可以改變他們的值。2、枚舉值可以用來(lái)做判斷比較。3、一個(gè)整數(shù)不能直接賦給一個(gè)枚舉變量。
69.C
70.BN-S圖的定義;在使用過(guò)程中,人們發(fā)現(xiàn)流程線不一定是必需的,為此,人們?cè)O(shè)計(jì)了一種新的流程圖,它把整個(gè)程序?qū)懺谝粋€(gè)大框圖內(nèi),這個(gè)大框圖由若干個(gè)小的基本框圖構(gòu)成,這種流程圖簡(jiǎn)稱N-S圖
71.A變量不能充當(dāng)數(shù)組定義的長(zhǎng)度。所以A)錯(cuò)誤。
72.C本題主要考查文件的操作。在本題的程序中,首先定義了兩個(gè)文件指針fp1和fp2,然后用指針fp1指向一個(gè)以讀方式打開(kāi)的文件file1,用指針fp2指向一個(gè)以寫(xiě)方式打開(kāi)的文件file1,接著執(zhí)行while循環(huán),循環(huán)的結(jié)束條件是(!feof(fp1))為假,即feof(fp1)為真,表示對(duì)文件fp1的操作讀取到結(jié)束符,因此,循環(huán)結(jié)束的條件是對(duì)文件file1的讀取結(jié)束,循環(huán)體語(yǔ)句fputc(fgetc(fp1),fp2);中用到了fgetc和fputc函數(shù),C語(yǔ)言提供這兩個(gè)函數(shù)對(duì)文本文件進(jìn)行字符的讀寫(xiě)操作。fgetc(fp1)函數(shù)的作用是從輸入流fp1的當(dāng)前位置返回一個(gè)字符,并將文件指針指示器移到下一個(gè)字符處;fputc(ch,fp2)函數(shù)的作用是將字符ch的值寫(xiě)入所指定的流文件的當(dāng)前位置處,并將文件指針后移一位。
根據(jù)上面的分析,可以知道循環(huán)結(jié)束后,即將指針fp1指向的文件復(fù)制到指針fp2指向的文件中,然后關(guān)閉兩個(gè)操作的文件。因此,本題程序的作用是將一個(gè)磁盤(pán)文件復(fù)制到另一個(gè)磁盤(pán)文件中,本題正確答案選C。
73.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。
74.B
75.C\n在最壞情況下,冒泡排序、簡(jiǎn)單選擇排序和直接插入排序需要的比較次數(shù)都是n(n一1)/2,堆排序需要比較的次數(shù)為nlog2n,這也是堆排序的最大優(yōu)點(diǎn)。
\n
76.D
77.D
78.A在c語(yǔ)言中函數(shù)參數(shù)的傳遞是”傳值”的,即形參和實(shí)參是兩個(gè)沒(méi)有關(guān)系的變量,函數(shù)fun雖然看似交換了參數(shù)值,但是只交換了形參的值,其結(jié)果不會(huì)傳遞給實(shí)參,因此數(shù)組c沒(méi)有變化。主函數(shù)中給數(shù)組c元素賦值l,2,…,9,0。第一個(gè)for循環(huán)語(yǔ)句中調(diào)用fun函數(shù),該函數(shù)功能是交換變量的數(shù)值,注意循環(huán)變量i的增量。第二個(gè)for循環(huán)語(yǔ)句將數(shù)組c中元素的值進(jìn)行輸出。
79.B(x&1)&&(z<'2')=(0.5&1)&&('a'<'z')=1&&1=1,故選擇B選項(xiàng)。
80.A
81.
82.
【解析】矩陣與其逆置矩陣的關(guān)系為:逆置矩陣中某一位置上的元素值為原矩陣中,行下標(biāo)與列下標(biāo)互換后的位置上的元素。根據(jù)這個(gè)特點(diǎn)求出各個(gè)位置上逆置矩陣中對(duì)應(yīng)的值,進(jìn)行相加并放在該位置上。
2021-2022年山西省陽(yáng)泉市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價(jià)的賦值語(yǔ)句是()。
A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;
3.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序運(yùn)行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
4.
5.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
6.以下說(shuō)法錯(cuò)誤的是()。
A.C語(yǔ)言標(biāo)識(shí)符中可以有多個(gè)字母、數(shù)字和下劃線字符
B.C語(yǔ)言標(biāo)識(shí)符中下劃線字符可以出現(xiàn)在任意位置
C.C語(yǔ)言標(biāo)識(shí)符不能全部由數(shù)字組成
D.C語(yǔ)言標(biāo)識(shí)符必須以字母開(kāi)頭
7.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序運(yùn)行后的輸出結(jié)果是()。
A.18,34,100B.24,34,92C.24,34,100D.18,34,92
8.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}執(zhí)行后輸出結(jié)果是()A.28B.22C.16D.4
9.在面向?qū)ο蠓椒ㄖ?,不屬于“?duì)象”基本特點(diǎn)的是A.一致性B.分類性C.多態(tài)性D.標(biāo)識(shí)唯一性
10.以下說(shuō)法正確的是()。
A.C程序總是從第一個(gè)函數(shù)開(kāi)始執(zhí)行
B.在C程序中,被調(diào)用的函數(shù)必須在main函數(shù)中定義
C.C程序總是從main函數(shù)開(kāi)始執(zhí)行
D.C程序中的main函數(shù)必須放在程序的開(kāi)始部分
11.堆的形狀是一棵_______。
A.二叉排序樹(shù)B.滿二叉樹(shù)C.完全二叉樹(shù)D.平衡二叉樹(shù)
12.下列敘述中正確的是()。
A.在switch語(yǔ)句中不一定使用break語(yǔ)句
B.在switch語(yǔ)句中必須使用default語(yǔ)句
C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用
D.break語(yǔ)句只能用于switch語(yǔ)句
13.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過(guò)程中可以出棧,則下列不可能的一個(gè)出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
14.請(qǐng)選出以下程序的輸出結(jié)果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
15.標(biāo)準(zhǔn)庫(kù)函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長(zhǎng)度為n的字符串存入字符數(shù)組s中
B.從文件file中讀取長(zhǎng)度不超過(guò)n-1個(gè)字符的字符串放到字符數(shù)組s中
C.從文件file中讀取n個(gè)字符串存入字符數(shù)組s中
D.從文件file中讀取長(zhǎng)度為n-1個(gè)字符的字符串存入字符數(shù)組s中
16.以下是根據(jù)文件大小分配存儲(chǔ)空間的一個(gè)算法偽代碼,請(qǐng)問(wèn)其空間復(fù)雜度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))
17.下列敘述中正確的是()。
A.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句
B.eotinue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同
D.從多層循環(huán)嵌套中退出時(shí),只能使用got0語(yǔ)句
18.定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是A)B)369C)0.369D)A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}
19.數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
20.有以下程序:#include<stdio.h>main(){intx=8;for(;x>0;x--){ if(x%3) { printf(“%”d,x--); continue; }printf(“%d,”,--x);}}程序的運(yùn)行結(jié)果是()。
A.7,4,2,B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,
二、2.填空題(20題)21.若有以下程序:
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后的輸出結(jié)果是【】。
22.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對(duì)象有外部特征,而不知道也無(wú)須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱為對(duì)象的______。
23.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。
24.以下sum函數(shù)的功能是計(jì)算下列級(jí)數(shù)之和。請(qǐng)給函數(shù)中的各變量正確賦初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
25."print("%d\n",strlen("\t\"\023\xABC\n"));”語(yǔ)句的輸出結(jié)果是______。
26.有一個(gè)已排好序的數(shù)組,今輸入一個(gè)數(shù),要求按原來(lái)的順序規(guī)律將它插入到數(shù)組中。算法是:假設(shè)排序順序是從小到大,對(duì)輸入的數(shù),檢查它在數(shù)組中哪個(gè)數(shù)之后,然后將比這個(gè)數(shù)大的數(shù)順序后移一個(gè)位置,在空出的位置上將該數(shù)插入。請(qǐng)?jiān)诔绦蛑械目瞻滋幪钌弦粭l語(yǔ)句或一個(gè)表達(dá)式。
#defineN100
main()
{floata[N+1],x;
inti,p;
for(i=0;i<N;i++)
scanf("%f"&a[i]);
scanf("%f",&x);
for(i=0,p=N;i<N;i++)
if(x<a[i])
{【】;
break;}
for(i=N-1;【】;i-)
a[i+1]=a[i];
a[p]=x;
for(i=0;【】;i++)
{printf("%8.2f",a[i]);
if(i%5=0)
printf("\n");
}
}
27.以下程序的功能是:輸出100以內(nèi)(不含100)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,j
for(i=0;【】;i++)
{j=i*10+6;
if(【】)continue:
Printf("%d”",j);
}
}
28.\13'在內(nèi)存中占1個(gè)字節(jié),"\12"在內(nèi)存中占______個(gè)字節(jié)。
29.耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。
30.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
31.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除一個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。
32.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于[]。
33.以下程序運(yùn)行后的輸出結(jié)果是______。
#include<string.h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abcdefg";
fun(s,3,strlen(s));puts(s);
}
34.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do{k*=n%10*r;n/=10;r++;}while(n);
35.已知a=1,b=2,則表達(dá)式(a&B)&b||b的結(jié)果為()。
36.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
37.設(shè)有以下定義和語(yǔ)句,sizeof(a)的值是【】,sizeof(b)的值是【】。
struct{intday;Charmonth;intyear;}a,*b;
b=&a;
38.以下函數(shù)用來(lái)求出兩整數(shù)之和,并通過(guò)形參將結(jié)果傳回,請(qǐng)?zhí)畛渫暾?/p>
voidfunc(intx,inty,【】z)
{*z=x+y;
}
39.軟件生命周期包括8個(gè)階段。為了使各時(shí)期的任務(wù)更明確,又可分為3個(gè)時(shí)期:軟件定義期、軟件開(kāi)發(fā)期、軟件維護(hù)期。編碼和測(cè)試屬于【】期。
40.近年來(lái)形成了軟件開(kāi)發(fā)的多種模式,大致有3種類型:基于瀑布模型的結(jié)構(gòu)化生命周期方法、基于動(dòng)態(tài)定義需求的【】方法和基于結(jié)構(gòu)的面向?qū)ο蟮能浖_(kāi)發(fā)方法。
三、1.選擇題(20題)41.如果需要打開(kāi)一個(gè)已經(jīng)存在的非空文件“Demo"進(jìn)行修改下面正確的選項(xiàng)是
A.fp=fopen("Demo","r");
B.fp=fopen("Demo","ab+");
C.fp=fopen("Demo","w+");
D.fp=fopen("Demo","r+");
42.在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7
43.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為()。A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
44.設(shè)有定義:intk=1,m=2;floatf=7;則下列選項(xiàng)中錯(cuò)誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
45.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是
A.線性鏈表B.棧C.循環(huán)鏈表D.順序表
46.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語(yǔ)句后輸出的結(jié)果為()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無(wú)定值
B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
47.下列敘述中正確的是()。
A.程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)
B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D.以上三種說(shuō)法都不對(duì)
48.下列關(guān)于棧的描述中錯(cuò)誤的是()
A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入與刪除操作中,不需要改變棧底指針
49.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與實(shí)體間的聯(lián)系可以表示成()。
A.屬性B.關(guān)系C.鍵D.域
50.若有程序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
51.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時(shí),從鍵盤(pán)輸入:01<回車(chē)>,程序執(zhí)行后的輸出結(jié)果是
A.anothernumber
B.anothernumberanother
C.anothernumbernumber
D.numbernumber
52.有以下程序intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){returnf2(x)-f1(x);}main(){inti;i=f(fa,fb,2);pfintf(“%d\n”,i);}程序運(yùn)行后的輸出結(jié)果是
A.-4B.1C.4D.8
53.有以下程序:#include<stdio.h>#include<string.h>typedefstruct{charname[9];charsex;floatscore[2]}STU;STUf(STUA){STUb={"Zhao",'m',85.0,90.0};inti;strcpy(,b.namC);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];returna;}main(){STUc={"Qian",'f',95.0,92.0},d;d=f(C);pintf("%s,%c,%2.of.%2.of\n",,d.sex,d.score[0],&score[1]);}程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,m,85,90D.Zhao,C95,92
54.以下程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}
A.8B.3C.1D.7
55.沒(méi)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式為R-(R
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度大學(xué)教師國(guó)際化交流與聘用協(xié)議4篇
- 二零二四年度智能溫室大棚租賃與農(nóng)產(chǎn)品加工合同3篇
- 2025年度電子元器件賒購(gòu)銷(xiāo)售合同3篇
- 二零二四年度員工績(jī)效評(píng)估與勞動(dòng)合同調(diào)整協(xié)議3篇
- 二零二五年度產(chǎn)業(yè)園租賃與產(chǎn)業(yè)升級(jí)合同3篇
- 二零二五年度MCN藝人海外市場(chǎng)拓展合同3篇
- 二零二四商鋪買(mǎi)賣(mài)合同附件清單解讀3篇
- 2025年中國(guó)鋸齒螺釘市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)厚漿型環(huán)氧煤焦瀝青漆市場(chǎng)調(diào)查研究報(bào)告
- 基于大數(shù)據(jù)的功率預(yù)測(cè)技術(shù)-深度研究
- 2023年浙江省紹興市中考科學(xué)真題(解析版)
- 語(yǔ)言學(xué)概論全套教學(xué)課件
- 大數(shù)據(jù)與人工智能概論
- 《史記》上冊(cè)注音版
- 2018年湖北省武漢市中考數(shù)學(xué)試卷含解析
- 測(cè)繪工程產(chǎn)品價(jià)格表匯編
- 《腎臟的結(jié)構(gòu)和功能》課件
- 裝飾圖案設(shè)計(jì)-裝飾圖案的形式課件
- 護(hù)理學(xué)基礎(chǔ)教案導(dǎo)尿術(shù)catheterization
- ICU護(hù)理工作流程
- 天津市新版就業(yè)、勞動(dòng)合同登記名冊(cè)
評(píng)論
0/150
提交評(píng)論