版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年江西省撫州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()A.21,43B.43,21C.43,00D.21,00
2.若有說(shuō)明charc[7]={'s','t','r','i','n','g'};則對(duì)元素的非法引用是()。
A.c[0]B.c[9-6]C.c[4*2]D.c[2*3]
3.有以下函數(shù):intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。
A.將y所指字符串賦給x所指存儲(chǔ)空間
B.查找x和y所指字符串中是否有‘\0’
C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
D.統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)
4.
5.在決定選取何種存儲(chǔ)結(jié)構(gòu)時(shí),一般不考慮()。
A.各結(jié)點(diǎn)的值如何B.結(jié)點(diǎn)個(gè)數(shù)的多少C.對(duì)數(shù)據(jù)有哪些運(yùn)算D.所用的編程語(yǔ)言實(shí)現(xiàn)這種結(jié)構(gòu)是否方便
6.
7.要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。
A.while((ch=getchar())!='N')printf("%c",ch);
B.while(ch=getchar()!='N')printf("%c",ch);
C.while(ch=getchar()=='N')printf("%c",ch);
D.while((ch=getchar())=='N')printf("%c",ch);
8.以下程序的輸出結(jié)果是()。main{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;for(k=1;k<3;k++)printf("%s\n",w[k]);A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
9.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫(xiě)字母的表達(dá)式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
10.折半查找的時(shí)間復(fù)雜性為()
A.O(n2)B.O(n)C.O(nlogn)D.O(logn)
11.
12.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
13.廣義表((a),a)的表頭是()。
A.aB.(a)C.((a))D.()
14.
15.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序運(yùn)行后的輸出結(jié)果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
16.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9
17.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
18.鏈表不具有的特點(diǎn)是()。A.A.不必事先估計(jì)存儲(chǔ)空間
B.可隨機(jī)訪問(wèn)任意元素
C.插入、刪除不需要移動(dòng)元素
D.所需空間與線性表長(zhǎng)度成正比
19.數(shù)據(jù)流圖用于抽象地描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭
20.要求當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為“真”,A的值為偶數(shù)時(shí),表達(dá)式的值為“假”,以下不滿足要求的表達(dá)式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)
二、2.填空題(20題)21.以下程序運(yùn)行后的輸出結(jié)果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}
22.以下程序中函數(shù)huiwen的功能是檢查一個(gè)寧符串是否是回文,當(dāng)字符串是回文時(shí),函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫(xiě)都一樣,例如:adgda。請(qǐng)?zhí)羁誣_____。
#include<string.h>
chat*huiwen(chat*str)
{char*p1,*p2;inti,t=0;
p1=str;p2=【】;
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(!t或t!=0)return("yes!");
elsereturn("no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",huiwen(str));
}
23.下面程序執(zhí)行后輸出的結(jié)果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
24.若有如下程序:
main()
{inta[][2]={1,2,6,9,11},(*t)[2];
t=a;
printf("%d,%d\n",*(t[1]+1),(*t)[1]);
}
則程序運(yùn)行后輸出的結(jié)果是【】。
25.若有如下程序:
main()
{ints=8,a=3,b=5,c=6;
if(a>b)s=a;a=b;b=s;
if(a>c){s=a;a=c;b=s);
if(b>c)s=b;b=c;c=s;
printf("%d,%d,%d\n",a,b,c);
}
則程序運(yùn)行后的輸出結(jié)果是【】。
26.已有定義:charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&Ra;后b的值為_(kāi)_____。
27.軟件是程序、數(shù)據(jù)和【】的集合。
28.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do{k*=n%10*r;n/=10;r++;}while(n);
29.定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為_(kāi)_____。
30.以下函數(shù)用以求x的y次方。補(bǔ)足所缺語(yǔ)句。
Doublefun(doublex,inty)
{inti;doublez=1;
for(i=1;i【】;i++)
z=【】;
returnz;
}
31.算法復(fù)雜度主要包括時(shí)間復(fù)雜度和【】復(fù)雜度。
32.設(shè)Y是int型變量,請(qǐng)寫(xiě)出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。
33.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為【】。
34.一棵二叉樹(shù)第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為_(kāi)_____個(gè)。
35.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運(yùn)行后,從鍵盤(pán)上輸入(<CR>代表回車(chē)符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
36.以下函數(shù)的功能是計(jì)算s=1+1/21+1/3!+…+1/n!,請(qǐng)?zhí)羁铡?/p>
doublefun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++)
{【】;
fac=fac/k;
s=s+fac;
}
}
37.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio,h>
#include<stating,h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abedefg";
fun(s,3,strlen(s));puts(s);
}
38.有以下程序:
main()
{intnum[4][4]={{1,2,3,4),{5,6,7,8),{9,10,11,12),{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<=i;j++)printf("%4c",'');
for(j=______;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式輸出數(shù)組右上半三角:
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是【】。
39.軟件生命周期包括2今階段。為了使各時(shí)期的任務(wù)更明確,又可分為3個(gè)時(shí)期:軟件定義期、軟件開(kāi)發(fā)期、軟件維護(hù)期。編碼和測(cè)試屬于【】期。
40.有一個(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");
}
}
三、1.選擇題(20題)41.已有定義:intx=3,y=4,z=5,則表達(dá)式!(x+y)+z-1&&y+x/2的值是
A.6B.0C.2D.1
42.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}
A.2B.8C.9D.5
43.在C語(yǔ)言中,函數(shù)調(diào)用時(shí)()。
A.實(shí)參和形參各占獨(dú)立的存儲(chǔ)單元
B.實(shí)參和形參共用存儲(chǔ)單元
C.由系統(tǒng)自動(dòng)確定實(shí)參和形參是否共用存儲(chǔ)單元
D.由用戶指定實(shí)參和形參是否共用存儲(chǔ)單元
44.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語(yǔ)法錯(cuò)
45.模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)則是模塊的
A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法
46.軟件開(kāi)發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()
A.定義、開(kāi)發(fā)、運(yùn)行維護(hù)
B.設(shè)計(jì)階段、編程階段、測(cè)試階段
C.總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試
D.需求分析、功能定義、系統(tǒng)設(shè)計(jì)
47.若有以下說(shuō)明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;則數(shù)值為4的表達(dá)式是()
A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]
48.下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printh("OK";}}
A.0B.3C.OKD.沒(méi)有任何輸出
49.用樹(shù)形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型的是
A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個(gè)都是
50.設(shè)有定義:intA,*pA=&A;,以下scanf語(yǔ)句中能正確為變量A讀入數(shù)據(jù)的是______。
A.scanf("%d",pA);
B.scanf("%d",A);
C.scanf("%d",apA);
D.scanf("%d",*pA);
51.下列敘述中正確的是()。
A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大
B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
D.上述三種說(shuō)法都不對(duì)
52.有以下程序:#include<stdio.h>voidfun(char**p){++P;printf("%s\n",*p);}main()char*a[]={"Morning","Afternoon","Evening","Night"};fun(A);}程序的運(yùn)行結(jié)果是()。
A.AfternoonB.fternoonC.MorningD.oring
53.下面的概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。
A.對(duì)象B.繼承C.類(lèi)D.過(guò)程調(diào)用
54.一個(gè)文件的擴(kuò)展名通常表示()
A.由用戶自定義B.文件的版本C.文件的大小D.文件的類(lèi)型
55.以下不屬于對(duì)象的基本特點(diǎn)的是()
A.分類(lèi)性B.多態(tài)性C.繼承性D.封裝性
56.以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,21
D.11,41,21.12,42,22
57.標(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中
58.若有說(shuō)明inti,j=2,*p=&i;,則能完成i=j賦值功能的語(yǔ)句是______。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
59.下列不屬于軟件工程的3個(gè)要素的是______。
A.工具B.過(guò)程C.方法D.環(huán)境
60.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
四、選擇題(20題)61.若有條件表達(dá)式
則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp.的是()。
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
62.
63.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是()。
A.
B.
C.
D.
64.以下敘述中正確的是()。
A.程序設(shè)計(jì)的任務(wù)就是編寫(xiě)程序代碼并上機(jī)調(diào)試
B.程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C.程序設(shè)計(jì)的任務(wù)就是確定所用算法
D.以上三種說(shuō)法都不完整
65.
66.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的
B.算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)
C.算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)
D.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
67.
68.
69.若有說(shuō)明,double*m,n;則能通過(guò)sCanf語(yǔ)句正確給輸入項(xiàng)讀人數(shù)據(jù)的程序段是()。
A.*m=&n;scanf("%lf",m);
B.m=(double*)malloc(10);scanf("%f",m);
C.m=&n;scanf("%lf",n);
D.m=&n;scanf("%le",m);
70.有以下程序:
若從鍵盤(pán)輸入:ijkxyz<回車(chē)>,則輸出結(jié)果是()。
A.ijkk
B.ijkxyz
C.xyzxyz
D.jj
71.有三個(gè)關(guān)系R、S和T如下:
其中關(guān)系T由關(guān)系R和s通過(guò)某種操作得到,該操作為()。
A.選擇B.投影C.交D.井
72.以下程序運(yùn)行后的輸出結(jié)果是()。
A.123B.234C.223D.233
73.以下選項(xiàng)中,能表示邏輯值“假”的是()
A.1B.0.000001C.0D.100.0
74.
75.
76.
77.
78.有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}
A.16B.10C.8D.6
79.以下說(shuō)法中正確的是()。
A.C語(yǔ)言程序總是從第一個(gè)的函數(shù)開(kāi)始執(zhí)行
B.在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義
C.C語(yǔ)言程序總是從main函數(shù)開(kāi)始執(zhí)行
D.C語(yǔ)言程序中的main函數(shù)必須放在程序的開(kāi)始部分
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是根據(jù)整型形參n,計(jì)算如下公式的值:y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(m)例如,n中的值為l0,則應(yīng)輸出0.817962。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.編寫(xiě)函數(shù)fun,其功能是:求ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符為l,則輸出3。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
參考答案
1.As是一個(gè)公用體,d的值分別與ch中的兩個(gè)元素的值相同,d的高位放在chFl]中、低位放在chl-0]中,因此輸出的結(jié)果為21,43。
2.C
3.C本題中由循環(huán)條件可知,遇到‘\\0’或x與y所指的字符不相等時(shí)循環(huán)結(jié)束。所以函數(shù)的功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。故本題答案為C選項(xiàng)。
4.B
5.A
6.D
7.A解析:while循環(huán)的執(zhí)行過(guò)程如下:(1)計(jì)算while后面圓括號(hào)中表達(dá)式的值.當(dāng)值為非0時(shí),執(zhí)行步驟(2);當(dāng)值為0時(shí),執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉(zhuǎn)去執(zhí)行步驟(1)。(4)退出循環(huán)。在選項(xiàng)A)中,表達(dá)式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個(gè)條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個(gè)條件表達(dá)式不成立,即輸入的字符等于N,則退出循環(huán).所以選項(xiàng)A)為正確答案。
8.D當(dāng)k=1時(shí),循環(huán)成立,輸出w[l]的數(shù)組即EFGH,接著執(zhí)行k++后k為2;當(dāng)k=2時(shí),循環(huán)成立,輸出w[2]的數(shù)組即IJKL,接著執(zhí)行k++后,k為3;當(dāng)k=3時(shí),循環(huán)不成立,退出。
9.B解析:C語(yǔ)言的字符以其ASCII碼的形式存在,所以要確定某個(gè)字符是大寫(xiě)字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項(xiàng)A)和C)符合要求。函數(shù)isalpha用來(lái)確定一個(gè)字符是否為字母,大寫(xiě)字母的ASCII碼值的范圍為65到90,所以如果一個(gè)字母的ASCII碼小于91,那么就能確定它是大寫(xiě)字母。
10.D
11.B
12.A解析:定義數(shù)組時(shí),沒(méi)有對(duì)s[1]進(jìn)行初始化,因此s[1]的值不確定,所以k=s[1]*10的值也不確定。
13.B
14.D
15.A本題考查了函數(shù)的調(diào)用。首先主函數(shù)定義了兩個(gè)字符型數(shù)據(jù)b和a,給b賦值為字母a.a(chǎn)賦值為字母A,調(diào)用fun(&.b,a)函數(shù),*C=*c十1,a的ASCIl碼值加1后為b,A的ASCIl碼值加1后為B。輸出第一組值,排除C、D選項(xiàng)。B選項(xiàng)的值此時(shí)為小b,排除B選項(xiàng),所以本題答案為A。
16.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語(yǔ)句為p[5],由數(shù)組a可知輸出的為6。
17.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個(gè)存儲(chǔ)單元,且此存儲(chǔ)單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
18.B鏈表采用的是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來(lái)指示,插入、刪除不需要移動(dòng)數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)也有不足之處:每個(gè)結(jié)點(diǎn)中的指針域需額外占用存儲(chǔ)空間,它是一種非隨機(jī)存儲(chǔ)結(jié)構(gòu)。
19.A解析:數(shù)據(jù)流圖包括四個(gè)方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲(chǔ)文件(數(shù)據(jù)源)(表示處理過(guò)程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體),不包括選項(xiàng)中的控制流。
20.D
21.45794579解析:本題考查的是條件判斷語(yǔ)句。本題特別需要注意的是“;”的問(wèn)題,不能把“t=a;a=c;c=t;”誤認(rèn)為是第一個(gè)if的語(yǔ)句,實(shí)際上,只有“t=a;”才是第一個(gè)if的語(yǔ)句。所以判斷第一個(gè)if語(yǔ)句的表達(dá)式不成立后,執(zhí)行的是“a=c;c=t;”,此時(shí)a=5,c=79。然后判斷第二個(gè)if語(yǔ)句的條件表達(dá)式,表達(dá)式成立,執(zhí)行后面的3條語(yǔ)句,讓a、b、c分別為4、5和79。
22.str+strlen(str)-1str+strlen(str)-1解析:先從main函數(shù)開(kāi)始看,它先讀入字符串,接下來(lái)肯定是要判斷這個(gè)字符串是否是回文,冉看huiwen函數(shù),它的主要思想是用p1指向字符串的首地址,p2指向字符串的尾地址(不包括結(jié)束符‘/0‘),將p1左移,p2右移,直到這兩個(gè)指針相遇,如果在移動(dòng)過(guò)程中發(fā)現(xiàn)p1!=p2,則該字符串不是回文,否則其是同文。因此。在空中填str+strlen(str)-1。
23.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。
24.929,2解析:本題開(kāi)始定義了一個(gè)int型二維數(shù)組a,并賦以5個(gè)初值,系統(tǒng)使數(shù)組的最高維為3,并讓a[0][0]=1,a[0][1]=2,a[1][0]=6,a[1][1]=9,a[2][0]=11,a[2][1]因?yàn)槌踔挡粔蚨跏蓟癁?。然后定義一個(gè)行指針t指向數(shù)組a的首地址,因?yàn)楸磉_(dá)式t[1]表示指向元素a[1][0]的int型指針,t[1]+1表示指向a[1][1]的int型指針,故*(t[1]+1)返回的是a[1][1]的值9。而*t表示指向元素a[0][0]的int型指針,故(*t)[1]返回的是a[0][1]的值2。所以正確答案應(yīng)該為9,2。
25.5685,6,8解析:首先要清楚當(dāng)滿足第1個(gè)if的判斷條件時(shí)只執(zhí)行一條語(yǔ)句“s=a;”,當(dāng)滿足第2個(gè)if的判斷條件時(shí)執(zhí)行一條復(fù)合語(yǔ)句“{s=a;a=c;b=s};”,當(dāng)滿足第3個(gè)if的判斷條件時(shí)只執(zhí)行一條語(yǔ)句“s=b;”。執(zhí)行程序:判斷a>b,由于a=3,b=5則3>5為假,不執(zhí)行“s=a;”,執(zhí)行“a=b;”和“b=s;”,則a=5,b=8。判斷a>c,由于a=5,c=6則5>6為假,不執(zhí)行“{s=a;a=c;b=s};”。判斷b>c,由于b=5,c=6則5>6為假,不執(zhí)行“s=b;”,執(zhí)行“b=c;”和“c=s;”,則b=6,c=8。最后輸出5,6,8。
26.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式!c的值為0,b=0&&1的結(jié)果顯然為0。
27.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。
28.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。
29.用“&&”連接兩個(gè)表達(dá)式時(shí),若第1個(gè)表達(dá)式的值為“假”,則運(yùn)算結(jié)果與第2個(gè)表達(dá)式無(wú)關(guān),此時(shí)第2個(gè)表達(dá)式將不再進(jìn)行計(jì)算。本題中第1個(gè)表達(dá)式“j=!ch”值為0,所以第2個(gè)表達(dá)式i++將不再進(jìn)行計(jì)算,i的值為1。\r\n\r\n
30.<y+1z*x
31.空間空間解析:程序在計(jì)算機(jī)上運(yùn)行時(shí)所耗費(fèi)的時(shí)間由程序運(yùn)行時(shí)所需輸入的數(shù)據(jù)總量、對(duì)源程序進(jìn)行編譯所需時(shí)間、計(jì)算機(jī)執(zhí)行每條指令所需時(shí)間、程序中的指令重復(fù)執(zhí)行的次數(shù)等決定。習(xí)慣上常常把語(yǔ)句重復(fù)執(zhí)行的次數(shù)作為算法運(yùn)行時(shí)間的相對(duì)量度,稱作算法的時(shí)間復(fù)雜度。算法在運(yùn)行過(guò)程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。
32.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
33.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。
34.3232解析:二叉樹(shù)第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。第6層的結(jié)點(diǎn)數(shù)最多是26-1=32。注意區(qū)別“二叉樹(shù)的結(jié)點(diǎn)最多數(shù)”和“某一層的結(jié)點(diǎn)最多數(shù)”。前者的計(jì)算是深度為m的二叉樹(shù)最多有2m-1個(gè)結(jié)點(diǎn)。
35.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來(lái)比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語(yǔ)句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語(yǔ)句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語(yǔ)句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中,然后輸出字符數(shù)組t。
36.k=k*ik=k*i解析:本題中遺過(guò)for循環(huán)求s表達(dá)式中每一項(xiàng)的和,表達(dá)式“fac=fac/k;”求的是每—項(xiàng)的值,所以k的值應(yīng)為n!,在求n!的時(shí)候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故本題填k=k*i。
37.abcfgabcfg解析:fun函數(shù)中for循環(huán)語(yǔ)句的作用是將s所指的字符串中從第5個(gè)字符到第7個(gè)字符依次向前移動(dòng)兩個(gè)位置。輸出結(jié)果為abcfg。
38.ii解析:上三角的情況是對(duì)數(shù)組a[i][j],j≥j的時(shí)候,因此,在j≥i時(shí)應(yīng)輸出所需要的元素,故橫線上應(yīng)填i。
39.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期包括8個(gè)階段:?jiǎn)栴}定義、可行性研究、需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、運(yùn)行維護(hù)。為了使各時(shí)期的任務(wù)更明確,又可以分為3個(gè)時(shí)期:軟件定義期,包括問(wèn)題定義、可行性研究和需求分析3個(gè)階段;軟件開(kāi)發(fā)期,包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段;軟件維護(hù)期,即運(yùn)行維護(hù)階段??芍幋a和測(cè)試屬于軟件開(kāi)發(fā)階段。
40.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。(注:本題有多種答案,以上僅提供一種)
41.D解析:本題中,&&左邊的表達(dá)式!(x+y)為!(3+7),結(jié)果為假,即為0。再加上z,然后減1,相當(dāng)于0+5-1。左邊等于4,&&右邊的表達(dá)式y(tǒng)+z/2相當(dāng)于4+5/2為6,所以整個(gè)表達(dá)式相當(dāng)于4&&6為真,即為1。
42.A解析:本題考查函數(shù)的遞歸調(diào)用。
在函數(shù)遞歸調(diào)用時(shí),fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的計(jì)算結(jié)果為2。
43.A解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時(shí)由用戶定義的形式上的變量,實(shí)參是函數(shù)調(diào)用時(shí),主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。
在函數(shù)調(diào)用時(shí),實(shí)參和其所對(duì)應(yīng)的形參分別占用不同的存儲(chǔ)單元,彼此之間不影響。
44.A解析:考查用指針來(lái)引用字符數(shù)組元素的方法。指針p1+k相當(dāng)于指針p1向后移動(dòng)了k個(gè)字符的位置,指針p2同理。
45.C解析:模塊的獨(dú)立程序是評(píng)價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性這兩個(gè)定性的度量標(biāo)準(zhǔn)。
46.A解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。它可以分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。
47.D
48.D解析:在題中,i的值為3,由于“case3:”后面沒(méi)有break語(yǔ)句,所以繼續(xù)向下執(zhí)行“case4:”后面的語(yǔ)句,由于“case4:”后面的語(yǔ)句為break強(qiáng)行退出switch語(yǔ)句,所以,本題沒(méi)有任何輸出。
49.C解析:在數(shù)據(jù)庫(kù)系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹(shù)結(jié)構(gòu)來(lái)表示的,其中實(shí)體集(記錄型)是樹(shù)中的結(jié)點(diǎn),而樹(shù)中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。
50.A解析:選項(xiàng)B中不是變量A的地址,錯(cuò)誤;選項(xiàng)C是指針pA的地址,錯(cuò)誤;選項(xiàng)D中*pA表示變量A的值,錯(cuò)誤。
51.D解析:時(shí)間復(fù)雜度是指一個(gè)算法執(zhí)行時(shí)間的相對(duì)度量;空間復(fù)雜度是指算法在運(yùn)行過(guò)程中臨時(shí)占用所需存儲(chǔ)空間大小的度量。人們都希望選擇一個(gè)既省存儲(chǔ)空間、又省執(zhí)行時(shí)間的算法。然而,有時(shí)為了加快算法的運(yùn)行速度,不得不增加空間開(kāi)銷(xiāo);有時(shí)為了能有效地存儲(chǔ)算法和數(shù)據(jù),又不得不犧牲運(yùn)行時(shí)間。時(shí)間和空間的效率往往是一對(duì)矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說(shuō)時(shí)間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項(xiàng)A、B、C的說(shuō)法都是錯(cuò)誤的。故本題的正確答案是D。
52.A
53.D解析:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類(lèi)、封裝、繼承、多態(tài)和消息等概念來(lái)構(gòu)造、測(cè)試、重構(gòu)軟件的方法。面向?qū)ο蠓椒◤膶?duì)象出發(fā),發(fā)展出對(duì)象、類(lèi)、消息、繼承等概念。
54.D
55.C解析:對(duì)象的基本特點(diǎn)包括;標(biāo)識(shí)惟一性、分類(lèi)性、多態(tài)性、封裝性和獨(dú)立性等。繼承性不屬于對(duì)象的基本特點(diǎn)。
56.B解析:盡管C語(yǔ)言以傳值方式進(jìn)行函數(shù)調(diào)用,但也可以通過(guò)傳遞指針的值(變量的地址)來(lái)達(dá)到修改實(shí)參變量值的目的,這是此題主要說(shuō)明的問(wèn)題。其次,應(yīng)注意表達(dá)式。(z++)的值是*z,其后的z++在程序中無(wú)實(shí)際作用。函數(shù)調(diào)用時(shí),由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時(shí),*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項(xiàng)B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。注意:指針作為參數(shù)的函數(shù)調(diào)用的執(zhí)行過(guò)程。
57.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é)束。
58.B解析:指針是—種用來(lái)存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級(jí)相同,按自右而左的方向結(jié)合,所以*&j運(yùn)算選進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與j等價(jià)。
59.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過(guò)程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開(kāi)發(fā)、管理和文檔生成;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制和管理。
60.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語(yǔ)句要輸出的值就是a[4]。
61.B條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱三目(元)運(yùn)算符
溫馨提示
- 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年海南建筑安全員知識(shí)題庫(kù)及答案
- 中國(guó)傳統(tǒng)文化主題:對(duì)聯(lián)
- 長(zhǎng)度與時(shí)間的測(cè)量課件
- 《電路中的能量轉(zhuǎn)化》課件
- 石油加工原油組成教學(xué)課件
- 病理生理學(xué)課件凝血和抗凝血平衡紊亂
- 一年級(jí)語(yǔ)文下冊(cè)《語(yǔ)文園地六》課件
- 《心血管急癥》課件
- 固定收益點(diǎn)評(píng)報(bào)告:把握跨年后的信用配置窗口
- 單位管理制度展示大全【職員管理】
- 副院長(zhǎng)兼總工程師的崗位說(shuō)明書(shū)
- 農(nóng)民專(zhuān)業(yè)合作社章程參考
- 十二經(jīng)脈循行原文背誦
- 財(cái)務(wù)會(huì)計(jì)制度及核算軟件備案報(bào)告書(shū)
- 肌骨超聲簡(jiǎn)介
- 高一家長(zhǎng)會(huì)課件ppt
- 神經(jīng)外科臨床實(shí)習(xí)教學(xué)計(jì)劃
- 基本光刻工藝流程
- 胸腔閉式引流護(hù)理-2023年中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)
- 高中體育足球教學(xué)教案 全冊(cè)
- 藝術(shù)概論P(yáng)PT完整全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論