版權(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ì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.算法的時(shí)間復(fù)雜度是指()A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法程序中的指令條數(shù)D.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)
2.以下不能作為合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
3.若一組記錄的排序碼為(7,9,3,5,1,2,10),則利用堆排序的方法建立的初始堆為()
A.10,7,9,3,5,1,2
B.10,9,7,5,1,2,3
C.10,9,7,5,3,2,1
D.10,9,7,3,2,1,5
4.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999
5.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7B.10C.8D.9
6.設(shè)x,y,t均為int型變量,執(zhí)行語(yǔ)句:
x=y=3;
t=++x||++y;
完成后,y的值為A.A.不確定B.4C.3D.1
7.以下敘述中錯(cuò)誤的是()。
A.C語(yǔ)言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的
B.用C語(yǔ)言編寫(xiě)的源程序不能直接在計(jì)算機(jī)上運(yùn)行
C.通過(guò)編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行
D.在沒(méi)有安裝C語(yǔ)言集成開(kāi)發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件
8.算法的時(shí)間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)
9.判定一個(gè)循環(huán)隊(duì)列qu(最多元素為MaxSize)為空的條件是()。
A.QU->rear-QU->front==MaxSize
B.QU->rear-QU->front-1==MaxSize
C.QU->front==QU->rear
D.QU->front==QU->rear+1
10.下列敘述中正確的是______。
A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹(shù)是線性結(jié)構(gòu)
11.在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過(guò)發(fā)送()。A.調(diào)用語(yǔ)句B.命令C.口令D.消息
12.
13.對(duì)于“if(表達(dá)式)語(yǔ)句”,以下敘述正確的是()。
A.“表達(dá)式”不能是變量
B.“表達(dá)式”的值只能是整數(shù)值
C.“表達(dá)式”可以是常量
D.“表達(dá)式”中不可以出現(xiàn)字符型變量的比較
14.非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。
A.一對(duì)多關(guān)系B.多對(duì)多關(guān)系C.多對(duì)一關(guān)系D.一對(duì)一關(guān)系
15.
16.設(shè)有以下語(yǔ)句
charx=3,y=6,z;
z=x^y<<2;
則z的二進(jìn)制值是
A.00010100B.00011011C.00011100D.00011000
17.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運(yùn)行時(shí)在第1列開(kāi)始輸入ab@并按<Enter>鍵,則運(yùn)行結(jié)果是()。
A.7,1B.3,2C.0,5D.5,0
18.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤(pán)輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
19.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}
A.求字符串的長(zhǎng)度B.求字符串存放的位置C.比較兩個(gè)字符串的大小D.將字符串x連接到字符串y后面
20.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運(yùn)行結(jié)果是()。
A.6B.3C.8D.12
二、2.填空題(20題)21.下面程序的運(yùn)行結(jié)果是______。
typedefunionstudent
{
charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{
STUa[5];
printf("%d\n",sizeof(A));
}
22.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
23.按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。
24.用以下語(yǔ)句調(diào)用庫(kù)函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間。
st=(char*)【】;
25.多媒體計(jì)算機(jī)所用的CD-ROM是【】。
26.以下程序運(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);
}
27.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。
28.結(jié)構(gòu)化程序設(shè)計(jì)的三種基本邏輯結(jié)構(gòu)為順序、選擇和【】。
29.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為_(kāi)_____。
30.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語(yǔ)句“k=B*20;”(k為int型變量)后,k的值是______。
31.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。
32.以下程序運(yùn)行后,若輸入:3,abcde<回車(chē)>,則輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
33.函數(shù)ssbc叩()的功能是對(duì)兩個(gè)字符申進(jìn)行比較。當(dāng)s所指字符串和t所指字符申相等時(shí),返回值為0;當(dāng)s所指字符串大于t所指字符串時(shí),返回值大于0;當(dāng)s所指字符串小于t所指字符串時(shí),返回值小于0(功能等同于庫(kù)函數(shù)strcmp())。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
intsstrcmp(char*s,char*t)
{
while(*s&&*t&&*s==)
{s++;t++;}
return
}
34.已有定義:charc=‘’;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為()。
35.設(shè)有定義:intn,*k=&n;以下語(yǔ)句將利用指針變量k讀寫(xiě)變量n中的內(nèi)容,請(qǐng)將語(yǔ)句補(bǔ)充家整。
seanf("%d",【】);
printf("%d\n",【】);
36.與表達(dá)式a+=b等價(jià)的另一書(shū)寫(xiě)形式是______。
37.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對(duì)象稱為【】。
38.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計(jì)算它們的和值。和值通過(guò)形參傳回主函數(shù)輸出。請(qǐng)?zhí)羁铡?/p>
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
for(i=0;i<N;i++)
{k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=a[k][i];
}
*sum=s;
}
main()
{intx[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(【】);
printf("%d\n",s);
}
39.以下程序運(yùn)行后的輸出結(jié)果是()。
intf(inta[],intn)
{if(n>=1)returnf(a,n-1)+a[n-1];
elsereturn0;
}
main()
{intaa[5]={1,2,3,4,5),s;
s=f(aa,5);printf("%d\n",s);
}
40.下列程序的循環(huán)次數(shù)是______。
x=2;
do
{x=x*x;}
while(!x);
三、1.選擇題(20題)41.庫(kù)函數(shù)strcpy用以復(fù)制字符串,若有以下定義和語(yǔ)句:charstr1[]="china",str2[10],*str3,*str4="china";則對(duì)庫(kù)函數(shù)strcpy的正確的調(diào)用是_______。
A.strcpy(strl,"people");
B.strcpy(str2,"people");
C.strcpy(str3,"people");
D.strcpy(str4,"people");
42.有以下程序main(){inta=i,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",B);}程序運(yùn)行后的輸出結(jié)果是
A.3B.4C.5D.6
43.下列程序的運(yùn)行結(jié)果為()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}
A.500B.5C.4D.400
44.有以下程序
main()
{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf("%d,",a[i][i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,
45.若某二叉樹(shù)的前序遍歷訪問(wèn)順序是abdgcefh,中序遍歷訪問(wèn)順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問(wèn)順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
46.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()
A.程序的效率第一,清晰第二B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息
47.閱讀下列程序,當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67,則輸出為()。#include<sldio.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!=")str[j++]=str[i];str[j]='\0';}main(){charstr[81];intn;printf("Inputastring:");gets(str);fun(str);printf("%s\n",str);}
A.asdafaaz67B.asdafaaz67C.asdD.z67
48.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。
A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)
49.以下數(shù)據(jù)結(jié)構(gòu)中屬于線性數(shù)據(jù)結(jié)構(gòu)的是
A.集合B.線性表C.二叉樹(shù)D.圖
50.當(dāng)下面的程序運(yùn)行后,變量c的值為_(kāi)_____。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
51.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10,
D.1,10,3,8,5,6,7,4,9,2,
52.結(jié)構(gòu)化程序有3種基本結(jié)構(gòu)組成,3種基本結(jié)構(gòu)組成的算法______。
A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡(jiǎn)單的任務(wù)
53.下面程序的功能是輸出以下形式的金寧塔圖案:*************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下劃線處應(yīng)填入的是
A.iB.2*i-1C.2*i+1D.i+2
54.設(shè)有定義:intk=1,m=2;floatf=7;則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
55.為了使模塊盡可能獨(dú)立,要求()。
A.內(nèi)聚程度要盡量高,耦臺(tái)程度要盡量強(qiáng)
B.內(nèi)聚程度要盡量高,耦合程度要盡量弱
C.內(nèi)聚程度要盡量低,耦合程度要盡量弱
D.內(nèi)聚程度要盡量低,耦合程度要盡最強(qiáng)
56.數(shù)據(jù)庫(kù)是()的集合,它具有統(tǒng)一的結(jié)構(gòu)格式并存放于統(tǒng)一的存儲(chǔ)介質(zhì),可被各個(gè)應(yīng)用程序所共享
A.視圖B.消息C.數(shù)據(jù)D.關(guān)系
57.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。
A.無(wú)確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值
58.軟件開(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ì)
59.以下程序的運(yùn)行結(jié)果是______。main(){chart=02;printf("%d\n",t=++t>>2);}
A.0B.1C.2D.3
60.設(shè)以下變量均為int類型,表達(dá)式的值不為7的是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+1,x=y,x+1)
四、選擇題(20題)61.下列敘述中正確的是()。
A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大
B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
D.上述三種說(shuō)法都不對(duì)
62.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計(jì)算機(jī)結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯(cuò)
63.
64.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.一1C.1D.7
65.
66.
67.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.9C.6D.8
68.以下敘述中錯(cuò)誤的是()。
A.C語(yǔ)句必須以分號(hào)結(jié)束
B.復(fù)合語(yǔ)句在語(yǔ)法上被看作一條語(yǔ)句
C.空語(yǔ)句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行
D.賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語(yǔ)句
69.設(shè)fun函數(shù)的定義形式為
voidfun(charch,floatx){…}
則下列對(duì)函數(shù)fun的調(diào)用語(yǔ)句中,正確的是()。A.A.fun("abc",3.0);B.t=fun('D'.16.5);
C.fun('65',2.8);
D.fun(32,32);
70.
71.設(shè)有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語(yǔ)句中錯(cuò)誤的是()
A.a++;B.b++C.c++;D.d++;
72.有3個(gè)關(guān)系R、S和T如下.
則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并
73.
74.C源程序中不能表示的數(shù)制是()。
A.十六進(jìn)制B.八進(jìn)制C.十進(jìn)制D.二進(jìn)制
75.若有以下程序
#include<stdio.h>
inta[]={2,4,6,8};
main()
{inti;
int*p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序的輸出結(jié)果是
A.6B.8
C.4D.2
76.在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.可行性分析報(bào)告B.軟件需求規(guī)格說(shuō)明書(shū)C.概要設(shè)計(jì)說(shuō)明書(shū)D.集成測(cè)試計(jì)劃
77.有以下程序
#include<stdio.h>
voidfun(char**p)
{++p;printf("%s",*p);}
main
{char*a[]={"Morning","Afternoon","Evening","Night");
fun(a);
}
程序的運(yùn)行結(jié)果是()。A.A.AfternoonB.fternoonC.MorningD.orning
78.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.PrphsbnB.ProhsbnC.ProgsbnD.Program
79.以下程序運(yùn)行后的輸出結(jié)果是()。
A.2011B.99C.209D.1111
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,fun()函數(shù)的功能是:從整數(shù)1~50中,選出能被3整除且有一位上的數(shù)是5的數(shù),并把這些數(shù)放b所指的數(shù)組中,這些數(shù)的個(gè)數(shù)作為函數(shù)值返回。規(guī)定,函數(shù)中a1放個(gè)位數(shù),a2放十位數(shù)。
請(qǐng)修改函數(shù)中的錯(cuò)誤,得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.編寫(xiě)函數(shù)fun,其功能是:求出1~1000之間能被7或11整除,但不能同時(shí)被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。
注意:部分原程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填人你編寫(xiě)的若干語(yǔ)句。
參考答案
1.D解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫(xiě)算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算工具以及程序員的水平無(wú)關(guān)。
選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤。因?yàn)樗惴ㄋ帉?xiě)的程序長(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫(xiě)出的程序其長(zhǎng)度可能會(huì)大不相同。
選項(xiàng)C錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序程序中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。
所以,本題的正確答案為D。
2.A字符常量是使用單引號(hào)標(biāo)注的單個(gè)字符,選項(xiàng)A錯(cuò)誤;選項(xiàng)B屬于浮點(diǎn)數(shù)常量,正確;選項(xiàng)C屬于轉(zhuǎn)義字符常量,正確;選項(xiàng)D屬于轉(zhuǎn)義字符,代表八進(jìn)制數(shù)011的ASCII值的字符,正確。本題答案為A選項(xiàng)。
3.B
4.C本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實(shí)現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過(guò)調(diào)用fun函數(shù),按上面的規(guī)則對(duì)數(shù)組a重新賦值,最后輸出數(shù)組a。
5.D調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。
6.Ct=++x或++y,當(dāng)++x不為0的時(shí)候,即++x為真,則不需要再繼續(xù)判斷++y,那么y就不再執(zhí)行自加,因此y=3.
7.Dc語(yǔ)言的可執(zhí)行程序是由一系列機(jī)器指令組成的。用C語(yǔ)言編寫(xiě)的源程序必須經(jīng)過(guò)編譯生成二進(jìn)制目標(biāo)代碼,再經(jīng)過(guò)連接才能運(yùn)行,并且可以脫離c語(yǔ)言集成開(kāi)發(fā)環(huán)境。故答案為D)。
8.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫(xiě)算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無(wú)關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉?xiě)的程序長(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫(xiě)出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。
9.C
10.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹(shù)是非線性結(jié)構(gòu)。
11.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^(guò)對(duì)象與對(duì)象間彼此的相互合作來(lái)推動(dòng)的,對(duì)象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
12.B
13.CC語(yǔ)言中沒(méi)有規(guī)定“if(表達(dá)式)語(yǔ)句”中的“表達(dá)式”的形式,其可以是任意合法的表達(dá)式。故本題答案為C選項(xiàng)。
14.B
15.B
16.B本題主要考查位運(yùn)算?!鞍次划惢颉边\(yùn)算(^)是雙目運(yùn)算符,其功能是把參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)制位相異或,它在操作時(shí),兩對(duì)應(yīng)位相同結(jié)果為0,不同則為1。“左移”運(yùn)算(<<)的功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)制位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。左移時(shí),若左端移出的部分不包含有效二進(jìn)制數(shù)1,則每左移一位,相當(dāng)于移位對(duì)象乘以2。
本題中,有三個(gè)字符型的變量x,y,z,其中x和y的值分別為3和6。先轉(zhuǎn)換為二進(jìn)制數(shù)分別為00000011和00000110。本題中需要注意的是邏輯左移運(yùn)算符的優(yōu)先級(jí)比按位異或運(yùn)算符的優(yōu)先級(jí)高,因此,先將y進(jìn)行運(yùn)算邏輯左移2位操作,得到的結(jié)果為00011000,然后進(jìn)行按位異或運(yùn)算,得到最后的結(jié)果是00011011。本題正確的答案選B。
17.Dfun函數(shù)接收兩個(gè)整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來(lái)決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對(duì)a、b指向的值各自自增1、自減1。main函數(shù)定義并初始化實(shí)參i的值為0,實(shí)參j的值為5,調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數(shù)執(zhí)行完畢,main函數(shù)輸出5,0。故本題答案為D選項(xiàng)。
18.D本題主要考查do—while循環(huán),因?yàn)樽兞縯的初始值等于1,經(jīng)過(guò)第一次do-while循環(huán)后,執(zhí)行t=t-1這條語(yǔ)句一次,所以變量t的值為-1,判斷關(guān)系表達(dá)式t!=n是否成立,如果關(guān)系表達(dá)式成立,則執(zhí)行第二次循環(huán),如果關(guān)系表達(dá)式不成立,退出循環(huán)。由此可見(jiàn),只要輸入變量n的值為負(fù)奇數(shù),則一定會(huì)使t==n成立,故退出do-while循環(huán)。
19.A解析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長(zhǎng)度。
20.A本題中,fun函數(shù)第1次調(diào)用為fun(8,fun(5,6))。因?yàn)閒un(5,6)的返回值為5,所以第2次調(diào)用為fun(8,5),即返回值為6。故本題答案為A選項(xiàng)。
21.8080解析:本題考查的知識(shí)點(diǎn)是共用體數(shù)組變量所占內(nèi)存的長(zhǎng)度。數(shù)組a是共用體變量,共用體類型變量所占的內(nèi)存長(zhǎng)度為最大成員的長(zhǎng)度,即單精度數(shù)組的長(zhǎng)度,為4×4=16,因此,數(shù)組a所占的內(nèi)存長(zhǎng)度為5×16=80,所以最后輸出的s的值為80。
22.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
23.棧棧解析:棧和隊(duì)列都是—種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進(jìn)行插入或刪除操作,是—種“先進(jìn)后出”的線性表;而隊(duì)列只允許在表的—端進(jìn)行插入操作,在另—端進(jìn)行刪除操作,是—種“先進(jìn)先出”的線性表。
24.malloc(11)或malloc(sizeof(char*)11)malloc(11)或malloc(sizeof(char*)11)解析:該題主要考查malloc函數(shù)的使用。一個(gè)字符在內(nèi)存中占一個(gè)字節(jié),因此malloc的參數(shù)為11。也可按指向字符指針的大小來(lái)分配。
25.只讀光盤(pán)只讀光盤(pán)
26.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ì)輸出)。
27.物理獨(dú)立性數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說(shuō),數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩級(jí)。
28.重復(fù)(或循環(huán))重復(fù)(或循環(huán))
29.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個(gè)表達(dá)式的值:x=(a=4,6*2)=2*6=12。
30.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過(guò)程為:k=B*20=(A+3)*20=(2+3)*20=100。
31.n/2性表的任何位置插入一個(gè)元素的概率相等,即概率為p=1/(n+1),則插入一個(gè)元素時(shí)所需移動(dòng)元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
32.cdeabcdeab解析:程序中的move函數(shù)的作用是保存輸入數(shù)組中的最后一個(gè)元素,然后從最后一個(gè)數(shù)組元素開(kāi)始,依次向后移動(dòng)一個(gè)位置,再把保存的最后一個(gè)元素置于首位,循環(huán)次數(shù)由n控制。輸入3,abcde<回車(chē)>后主函數(shù)開(kāi)始執(zhí)行,其中n=3,s[50]={'abcde'},z=5。第一次循環(huán),i=1時(shí),調(diào)用move(s,5)函數(shù),temp=str[4]語(yǔ)句把數(shù)組中最后一個(gè)元素\'e\'保存在temp中,然后i從4開(kāi)始循環(huán),將str[3](字符\'d\')賦給str[4],str[2](字符\'c\')賦給str[3],……,循環(huán)結(jié)束時(shí)str所指字符串為'aabcd',再將保存在temp中的\'e\'置于首位,字符串變?yōu)?eabcd';i=2時(shí),調(diào)用move函數(shù),字符串為'deabc';i=3時(shí),調(diào)用move函數(shù),字符串為'cdeab'。最后輸出結(jié)果為'cdeab'。
33.*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]解析:本題考查的知識(shí)點(diǎn)是字符型指針變量作為函數(shù)的參數(shù)以及序符串大小的比較.函數(shù)sstrcmp()有兩個(gè)字符型指針變量,用來(lái)指向兩個(gè)字符串。比較兩個(gè)字符串的大小方法是:從第一個(gè)字符開(kāi)始依次向后比較,若對(duì)應(yīng)的字符相等則接著比較下一個(gè)字符,一直到兩個(gè)字符串中對(duì)應(yīng)字符不等,或者有一個(gè)為'\\0',此對(duì)應(yīng)字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為'\\0'。且*s和*t相同,第一處應(yīng)填“*t”或其他等價(jià)形式。根據(jù)題意可知第二處應(yīng)填“*s-*t”或其等價(jià)形式。
34.00解析:空格字符的ASCⅡ碼值為32,所以!c—o,那么0與任何值相與的結(jié)果都為0,可得b的值為0。
35.k[7]*kk[7]*k解析:scanf()函數(shù)有兩個(gè)參數(shù),第—個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號(hào)和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空格處位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號(hào)分隔開(kāi))。而第二個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*K。
36.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。
37.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨菩再|(zhì)的一組對(duì)象。所以,屬性與操作相似的一組對(duì)象稱為類。
38.x&sx,&s解析:函數(shù)SumColumMin中變量k存放一列數(shù)組元素中值最小的數(shù)組元素的行標(biāo),函數(shù)通過(guò)形參sum帶回值,sum是指針變量,將s中的值賦給*sum??諡楹瘮?shù)調(diào)用,函數(shù)SumColumMin有兩個(gè)形參,二維數(shù)組和指針變量,故空中應(yīng)填x,&s。
39.1515解析:通過(guò)遞歸調(diào)用f函數(shù)實(shí)現(xiàn)了數(shù)組各元素之和,即a[4]+a[2]+a[1]+a[0]=15。
40.11解析:do…while語(yǔ)句的功能是:首先執(zhí)行循環(huán)體語(yǔ)句,然后檢測(cè)循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語(yǔ)句,否則退出循環(huán);do…while語(yǔ)句的特點(diǎn)是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。
41.B解析:strcpy(字符數(shù)組1,字符串2)其作用是將字符串2復(fù)制到字符數(shù)組1中去。注:(1)字符數(shù)組1必須定義得足夠大;(2)“字符數(shù)組1”必須寫(xiě)成數(shù)組名的形式;(3)復(fù)制時(shí)連同字符串后面的'\\0'一起復(fù)制到字符數(shù)組1中。
42.B解析:在一個(gè)循環(huán)體中,若執(zhí)行到break則跳出循環(huán)體,執(zhí)行循環(huán)體后面第一條語(yǔ)句;若執(zhí)行到continue則開(kāi)始下一次循環(huán)體的執(zhí)行。本題中a的初始值為1,在循環(huán)體中首先判斷a,如果>=8就用break跳出循環(huán),接下來(lái)的判斷語(yǔ)句a%2==1,是判斷a除以2的余數(shù)是否為1,即a是否為奇數(shù),是的話給a累加一個(gè)5,然后用continue開(kāi)始下一次循環(huán).若兩個(gè)條件都不滿足就讓a自減一個(gè)3.因此第1次循環(huán)開(kāi)始a為1不大于8,且是奇數(shù),所以a被累加5開(kāi)始下一次循環(huán);第2次循環(huán)開(kāi)始a為6不大于8,不是奇數(shù),所以a被減去3;第3次循環(huán)開(kāi)始a為3不大于8,是奇數(shù),所以a被加上一個(gè)5;第4次開(kāi)始a為8,滿足第一個(gè)條件跳出循環(huán)。b在第1次循環(huán)時(shí)等于1,以后每次累加1,所以最后輸出為4,選項(xiàng)B正確.
43.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:(x)>(y)?(x):(y)是x>y時(shí)輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時(shí),(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。
44.A解析:本題利用多重for循環(huán)的嵌套來(lái)實(shí)現(xiàn)對(duì)二維數(shù)組元素的按列排序。利用最外層循環(huán)來(lái)實(shí)現(xiàn)對(duì)列的控制。內(nèi)部循環(huán)利用選擇法對(duì)數(shù)組元素按照從小到大的順序進(jìn)行排列,最后輸出對(duì)角線上的元素值。
45.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹(shù);②訪問(wèn)根結(jié)點(diǎn);③遍歷右子樹(shù)。前序遍歷的遞歸算法定義:①訪問(wèn)根結(jié)點(diǎn);②遍歷左子樹(shù);③遍歷右子樹(shù)。后序遍歷的遞歸算法定義:①遍歷左子樹(shù);②遍歷右子樹(shù);③訪問(wèn)根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹(shù)的結(jié)點(diǎn),e、c、h、f是右子樹(shù)的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹(shù)的根,由cefh可知,c是a右邊子樹(shù)的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹(shù)的結(jié)點(diǎn),b右邊子樹(shù)無(wú)結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹(shù)的根,g是以d為根的子樹(shù)的右結(jié)點(diǎn)。至此,a的左子樹(shù)已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹(shù)的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。
46.A解析:本題考查軟件工程的程序設(shè)計(jì)風(fēng)格。軟件在編碼階段,力求程序語(yǔ)句簡(jiǎn)單、直接,不能只為了追求效率而使語(yǔ)句復(fù)雜化。除非對(duì)效率有特殊的要求,程序編寫(xiě)要做到清晰第一、效率第二。
人們?cè)谲浖嫫谝?jīng)常閱讀程序,特別是在軟件測(cè)試和維護(hù)階段,編寫(xiě)程序的人和參與測(cè)試、維護(hù)的人都要閱讀程序,因此要求程序的可讀性要好。
正確的注釋能夠幫助讀者理解程序,可為后續(xù)階段進(jìn)行測(cè)試和維護(hù)提供明確的指導(dǎo)。
所以注釋不是可有可無(wú)的,而是必須的,它對(duì)于理解程序具有重要的作用。
I/O信息是與用戶的使用直接相關(guān)的,因此它的格式應(yīng)當(dāng)盡可能方便用戶的使用。在以交互式進(jìn)行輸入/輸出時(shí),要在屏幕上使用提示符明確提示輸入的請(qǐng)求,指明可使用選項(xiàng)的種類和取值范圍。經(jīng)過(guò)上述分析可知,選項(xiàng)A是不符合良好程序設(shè)計(jì)風(fēng)格要求的。
47.A解析:本題題意是刪除字符串中所有空格。由于C語(yǔ)言中沒(méi)有直接刪除字符的操作,所以刪除字符的操作都是采用“留下”字符的算法來(lái)實(shí)現(xiàn)。從串頭str[0]到串尾逐一比較,判斷其是否為空格,若不是空格,則將其保存在str[j]中,最后加串結(jié)束符“\\0”。
48.A解析:和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存?chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對(duì)而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。注意:這3種運(yùn)算方法在各種存儲(chǔ)結(jié)構(gòu)中的應(yīng)用。
49.B解析:所謂的線性結(jié)構(gòu):如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件,即
1)有且只有一個(gè)根結(jié)點(diǎn);
2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。同時(shí)滿足兩個(gè)條件的只有線性表,而其他三種數(shù)據(jù)結(jié)構(gòu)的結(jié)點(diǎn)可能存在多個(gè)前件或后件,所以不是線性結(jié)構(gòu)。
50.A
51.C解析:本題考核的知識(shí)點(diǎn)是程序中算法的基本分析。sort()函數(shù)作用是將數(shù)組aa中的下標(biāo)為偶數(shù)的元素按大到小排序.主函數(shù)中首先定義了一個(gè)長(zhǎng)度為10的數(shù)組并賦值,然后調(diào)用sort()函數(shù),將數(shù)組aa中奇數(shù)個(gè)元素的值按大到小排序,因此執(zhí)行完該函數(shù)后,數(shù)組中奇數(shù)個(gè)元素的值為9,7、5、3和1,故主函數(shù)中最后通過(guò)一個(gè)for循環(huán)輸出數(shù)組aa中各元素的值為9、2、7、4、5、6、3、8、1和10,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
52.A解析:結(jié)構(gòu)化程序的3種基本結(jié)構(gòu)是順序、循環(huán)、選擇,任何復(fù)雜的任務(wù)都可以通過(guò)這3種結(jié)構(gòu)來(lái)實(shí)現(xiàn)。
53.B解析:通過(guò)觀察可知圖形共四行,上函數(shù)中通過(guò)一個(gè)for循環(huán)四次,輸出4行。第一行輸出3個(gè)空格和1個(gè)“*”,第2行輸出2個(gè)空格和3個(gè)“”,第3行輸出3個(gè)空格和5個(gè)“*”,第四行輸出7個(gè)“*”,主函數(shù)中通過(guò)第二個(gè)循環(huán)控制每行的輸出空格數(shù),第三個(gè)for循環(huán)控制輸出的“*”的個(gè)數(shù),總結(jié)規(guī)律:每行輸出的“*”的個(gè)數(shù),總比前一行的多2個(gè),且第一行的個(gè)數(shù)為1,可以斷定每行輸出的“*”的個(gè)數(shù)組成了一個(gè)公差為2的等差數(shù)列,所以每行輸出“*”的個(gè)數(shù)即該等差數(shù)列的通項(xiàng),故該空格處應(yīng)該填寫(xiě)2*i-1,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
54.C解析:A、D選項(xiàng)是關(guān)系運(yùn)算表達(dá)式,在C語(yǔ)言中,只要關(guān)系運(yùn)算符兩邊是合法的表達(dá)式就可以了。C選項(xiàng)中,%只能對(duì)整型進(jìn)行運(yùn)算,其中對(duì)f進(jìn)行了強(qiáng)制類型轉(zhuǎn)換,但是轉(zhuǎn)換的表達(dá)式錯(cuò)了,應(yīng)為:(int)(f)。
55.B
56.C解析:數(shù)據(jù)庫(kù)是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復(fù)雜的關(guān)系。
57.B解析:本題考查函數(shù)返回值的知識(shí)。函數(shù)返回值是通過(guò)函數(shù)中的return語(yǔ)句獲得,return語(yǔ)句中的表達(dá)式的值就是所求函數(shù)的值。此表達(dá)式的值必須與函數(shù)首部所說(shuō)明的類型一致。若類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)進(jìn)行轉(zhuǎn)換。
58.A解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。它可以分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。
59.A解析:t的二進(jìn)制形式是00000010,前置加之后,t值的二進(jìn)制形式為00000011,右移兩位,最后兩個(gè)1將移出,t值最后是0。
60.C解析:本題考查逗號(hào)表達(dá)式的用法。C語(yǔ)言中逗號(hào)“,”也是一種運(yùn)算符,稱為逗號(hào)運(yùn)算符。其功能是把兩個(gè)表達(dá)式連接起來(lái)組成一個(gè)表達(dá)式,稱為逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表達(dá)式n,其值為表達(dá)式n的值。
61.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。
62.AC語(yǔ)言規(guī)定,注釋語(yǔ)句可以換行寫(xiě),并且一個(gè)“/*”和其后緊跟的第一個(gè)“*/”中間的部分是注釋內(nèi)容,并且注釋部分的內(nèi)容不參與程序的執(zhí)行,因此本題中沒(méi)有執(zhí)行“b=20”;這條語(yǔ)句。
63.D
64.Ba一一的含義是先用后減l,所以當(dāng)a的值為0時(shí),跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。
65.D
66.B
67.C主函數(shù)中調(diào)用f函數(shù),同時(shí)將數(shù)值3傳遞給變量x,執(zhí)行條件不滿足條件if(x==0IlX==1);跳過(guò)re—turn(3);,直接執(zhí)行語(yǔ)句Y=X}X—f(x一2);這里f(x一2)為函數(shù)的遞歸調(diào)用,再次訶用f函數(shù),此時(shí)x=1,判斷條件成立,返回3給f(1),Y=3}3—3=6,最后將6返回主函數(shù),并進(jìn)行輸出。因此c選項(xiàng)正確。
68.C解析:C語(yǔ)句必須以分號(hào)結(jié)束,選項(xiàng)A是正確的。復(fù)合語(yǔ)句在語(yǔ)法上被看作一條語(yǔ)句,選項(xiàng)B也是正確的??照Z(yǔ)句也算是一條語(yǔ)句,因此如果空語(yǔ)句出現(xiàn)在條件或者循環(huán)語(yǔ)句中,一樣會(huì)被當(dāng)作條件子句或者循環(huán)體來(lái)看待,所以選項(xiàng)c是錯(cuò)誤的。賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語(yǔ)句,選項(xiàng)D正確。故本題應(yīng)該選擇C。
69.C由題目的已知條件函數(shù)fun的定義形式voidfun(charch,floatx){…)可知第一個(gè)形參為字符型,所以A不符合,第二個(gè)形參為精度型,所以D不符合,函數(shù)fun定義為void型(無(wú)論返回值型),故其沒(méi)有返回值,所以選項(xiàng)B錯(cuò)誤。選項(xiàng)C的第一個(gè)實(shí)參的類型為字符型,第二個(gè)實(shí)參的類型為單精度型,與函數(shù)fun的形式參數(shù)的類型相符合,所以選項(xiàng)C為正確答案。
70.C
71.D++是自增運(yùn)算符,作用是使變量的值增加1,選項(xiàng)D中的d不是變量,而是一個(gè)標(biāo)識(shí)符,它代表常量2,常量是不允許進(jìn)行自增運(yùn)算的。故本題答案為D。
72.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。
73.D
74.D在C語(yǔ)言中整型常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制等形式表示,但不包括二進(jìn)制,所以選擇D。
75.D本題中,程序開(kāi)始定義了一個(gè)全局?jǐn)?shù)組a,并對(duì)這個(gè)數(shù)組進(jìn)行賦初值。在主函數(shù)中,定義一個(gè)整型變量i和一個(gè)整型指針變量p,并使指針變量p指向全局?jǐn)?shù)組a的首地址。然后執(zhí)行for循環(huán),循環(huán)變量i的初值為0,循環(huán)結(jié)束條件為變量i的值大于等于4,循環(huán)變量i的值每循環(huán)一次自加1,通過(guò)這些分析我們知道,循環(huán)執(zhí)行了4次結(jié)束。
第一次循環(huán)時(shí),由于*p表示數(shù)組的第一個(gè)元素值2,那么執(zhí)行a[i]=*p;語(yǔ)句,即將數(shù)組的第一個(gè)元素變?yōu)?;第二次循環(huán)時(shí),由于i為1,即將數(shù)組的第二個(gè)元素變?yōu)?,同理,第三次與第四次循環(huán)分別將數(shù)組的第三和第四個(gè)元素值變?yōu)?。
循環(huán)結(jié)束,程序執(zhí)行輸出語(yǔ)句,這時(shí)數(shù)組中所有元素的值都為2。因此,程序最后的輸出結(jié)果是2。
76.BA項(xiàng)錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C項(xiàng)錯(cuò)誤,概要設(shè)計(jì)說(shuō)明書(shū)是總體設(shè)計(jì)階段產(chǎn)生的文檔。D項(xiàng)錯(cuò)誤,集成測(cè)試計(jì)劃是在概要設(shè)計(jì)階段編寫(xiě)的文檔。B項(xiàng)正確,需求規(guī)格說(shuō)明書(shū)是后續(xù)工作如設(shè)計(jì)、編碼等需要的重要參考文檔。
77.A執(zhí)行fun(a)語(yǔ)句時(shí),P指向的是字符串?dāng)?shù)組a的第一個(gè)字符串“Morning”,p自加1之后,p指向字符串?dāng)?shù)組a的第2個(gè)字符串“Afternoon”。
78.B(*q)++是q所指的字符加l,q++就是指針移到下一個(gè)字符。因此B選項(xiàng)正確。
79.Astden返回的是不包括\\0在內(nèi)的數(shù)組
80.D
81.
【解析】(1)根據(jù)題目中要求,第一個(gè)標(biāo)識(shí)下fun()函數(shù)的定義為“intfun(int*b);”。在C語(yǔ)言中規(guī)定,函數(shù)的定義格式,不應(yīng)以分號(hào)結(jié)束,所以應(yīng)把末尾分號(hào)去掉。
(2)題干中要求在1~50之間選出符合條件的整數(shù),循環(huán)條件表達(dá)式的起始應(yīng)當(dāng)是j=1,而不是j=10,所以第二個(gè)標(biāo)識(shí)下應(yīng)改為“for(j=1;j<=50;j++)”。
(3)變量i是標(biāo)識(shí)數(shù)組b的下標(biāo),也就是數(shù)組的個(gè)數(shù)。題目“returnj”返回的是循環(huán)條件表達(dá)式中的變量,所以這里應(yīng)改為“returni”。
82.
【考點(diǎn)分析】
本題考查:if語(yǔ)句,用來(lái)判斷能被7整除或者能被11整除,但是又不能同時(shí)被7和11整除的數(shù),在這里充分理解”邏輯與”和”邏輯或”的區(qū)別;for循環(huán)語(yǔ)句的循環(huán)變量用來(lái)控制取值范圍。
【解題思路】
該題需要運(yùn)用循環(huán)判斷結(jié)構(gòu)來(lái)實(shí)現(xiàn),其中循環(huán)語(yǔ)句比較容易,只要確定循環(huán)變量的范圍即可,下面來(lái)看判斷語(yǔ)句,題目要求找出能被7或11整除,但不能同時(shí)被7和11整除的所有整數(shù)。能同時(shí)被7和ll整除的整數(shù)一定能被77整除,且不能被
77整除的數(shù)不一定就是能被7或11整除的數(shù),所以可得出程序中的if語(yǔ)句。注意:(i%7==0||i%11==0)兩邊必須要有小括號(hào)。2021年福建省莆田市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.算法的時(shí)間復(fù)雜度是指()A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法程序中的指令條數(shù)D.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)
2.以下不能作為合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
3.若一組記錄的排序碼為(7,9,3,5,1,2,10),則利用堆排序的方法建立的初始堆為()
A.10,7,9,3,5,1,2
B.10,9,7,5,1,2,3
C.10,9,7,5,3,2,1
D.10,9,7,3,2,1,5
4.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999
5.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7B.10C.8D.9
6.設(shè)x,y,t均為int型變量,執(zhí)行語(yǔ)句:
x=y=3;
t=++x||++y;
完成后,y的值為A.A.不確定B.4C.3D.1
7.以下敘述中錯(cuò)誤的是()。
A.C語(yǔ)言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的
B.用C語(yǔ)言編寫(xiě)的源程序不能直接在計(jì)算機(jī)上運(yùn)行
C.通過(guò)編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行
D.在沒(méi)有安裝C語(yǔ)言集成開(kāi)發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件
8.算法的時(shí)間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)
9.判定一個(gè)循環(huán)隊(duì)列qu(最多元素為MaxSize)為空的條件是()。
A.QU->rear-QU->front==MaxSize
B.QU->rear-QU->front-1==MaxSize
C.QU->front==QU->rear
D.QU->front==QU->rear+1
10.下列敘述中正確的是______。
A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹(shù)是線性結(jié)構(gòu)
11.在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過(guò)發(fā)送()。A.調(diào)用語(yǔ)句B.命令C.口令D.消息
12.
13.對(duì)于“if(表達(dá)式)語(yǔ)句”,以下敘述正確的是()。
A.“表達(dá)式”不能是變量
B.“表達(dá)式”的值只能是整數(shù)值
C.“表達(dá)式”可以是常量
D.“表達(dá)式”中不可以出現(xiàn)字符型變量的比較
14.非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。
A.一對(duì)多關(guān)系B.多對(duì)多關(guān)系C.多對(duì)一關(guān)系D.一對(duì)一關(guān)系
15.
16.設(shè)有以下語(yǔ)句
charx=3,y=6,z;
z=x^y<<2;
則z的二進(jìn)制值是
A.00010100B.00011011C.00011100D.00011000
17.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運(yùn)行時(shí)在第1列開(kāi)始輸入ab@并按<Enter>鍵,則運(yùn)行結(jié)果是()。
A.7,1B.3,2C.0,5D.5,0
18.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤(pán)輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
19.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}
A.求字符串的長(zhǎng)度B.求字符串存放的位置C.比較兩個(gè)字符串的大小D.將字符串x連接到字符串y后面
20.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運(yùn)行結(jié)果是()。
A.6B.3C.8D.12
二、2.填空題(20題)21.下面程序的運(yùn)行結(jié)果是______。
typedefunionstudent
{
charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{
STUa[5];
printf("%d\n",sizeof(A));
}
22.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
23.按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。
24.用以下語(yǔ)句調(diào)用庫(kù)函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間。
st=(char*)【】;
25.多媒體計(jì)算機(jī)所用的CD-ROM是【】。
26.以下程序運(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);
}
27.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。
28.結(jié)構(gòu)化程序設(shè)計(jì)的三種基本邏輯結(jié)構(gòu)為順序、選擇和【】。
29.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為_(kāi)_____。
30.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語(yǔ)句“k=B*20;”(k為int型變量)后,k的值是______。
31.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。
32.以下程序運(yùn)行后,若輸入:3,abcde<回車(chē)>,則輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
33.函數(shù)ssbc叩()的功能是對(duì)兩個(gè)字符申進(jìn)行比較。當(dāng)s所指字符串和t所指字符申相等時(shí),返回值為0;當(dāng)s所指字符串大于t所指字符串時(shí),返回值大于0;當(dāng)s所指字符串小于t所指字符串時(shí),返回值小于0(功能等同于庫(kù)函數(shù)strcmp())。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
intsstrcmp(char*s,char*t)
{
while(*s&&*t&&*s==)
{s++;t++;}
return
}
34.已有定義:charc=‘’;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為()。
35.設(shè)有定義:intn,*k=&n;以下語(yǔ)句將利用指針變量k讀寫(xiě)變量n中的內(nèi)容,請(qǐng)將語(yǔ)句補(bǔ)充家整。
seanf("%d",【】);
printf("%d\n",【】);
36.與表達(dá)式a+=b等價(jià)的另一書(shū)寫(xiě)形式是______。
37.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對(duì)象稱為【】。
38.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計(jì)算它們的和值。和值通過(guò)形參傳回主函數(shù)輸出。請(qǐng)?zhí)羁铡?/p>
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
for(i=0;i<N;i++)
{k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=a[k][i];
}
*sum=s;
}
main()
{intx[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(【】);
printf("%d\n",s);
}
39.以下程序運(yùn)行后的輸出結(jié)果是()。
intf(inta[],intn)
{if(n>=1)returnf(a,n-1)+a[n-1];
elsereturn0;
}
main()
{intaa[5]={1,2,3,4,5),s;
s=f(aa,5);printf("%d\n",s);
}
40.下列程序的循環(huán)次數(shù)是______。
x=2;
do
{x=x*x;}
while(!x);
三、1.選擇題(20題)41.庫(kù)函數(shù)strcpy用以復(fù)制字符串,若有以下定義和語(yǔ)句:charstr1[]="china",str2[10],*str3,*str4="china";則對(duì)庫(kù)函數(shù)strcpy的正確的調(diào)用是_______。
A.strcpy(strl,"people");
B.strcpy(str2,"people");
C.strcpy(str3,"people");
D.strcpy(str4,"people");
42.有以下程序main(){inta=i,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",B);}程序運(yùn)行后的輸出結(jié)果是
A.3B.4C.5D.6
43.下列程序的運(yùn)行結(jié)果為()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}
A.500B.5C.4D.400
44.有以下程序
main()
{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf("%d,",a[i][i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,
45.若某二叉樹(shù)的前序遍歷訪問(wèn)順序是abdgcefh,中序遍歷訪問(wèn)順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問(wèn)順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
46.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()
A.程序的效率第一,清晰第二B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息
47.閱讀下列程序,當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67,則輸出為()。#include<sldio.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!=")str[j++]=str[i];str[j]='\0';}main(){charstr[81];intn;printf("Inputastring:");gets(str);fun(str);printf("%s\n",str);}
A.asdafaaz67B.asdafaaz67C.asdD.z67
48.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。
A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)
49.以下數(shù)據(jù)結(jié)構(gòu)中屬于線性數(shù)據(jù)結(jié)構(gòu)的是
A.集合B.線性表C.二叉樹(shù)D.圖
50.當(dāng)下面的程序運(yùn)行后,變量c的值為_(kāi)_____。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
51.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10,
D.1,10,3,8,5,6,7,4,9,2,
52.結(jié)構(gòu)化程序有3種基本結(jié)構(gòu)組成,3種基本結(jié)構(gòu)組成的算法______。
A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡(jiǎn)單的任務(wù)
53.下面程序的功能是輸出以下形式的金寧塔圖案:*************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下劃線處應(yīng)填入的是
A.iB.2*i-1C.2*i+1D.i+2
54.設(shè)有定義:intk=1,m=2;floatf=7;則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
55.為了使模塊盡可能獨(dú)立,要求()。
A.內(nèi)聚程度要盡量高,耦臺(tái)程度要盡量強(qiáng)
B.內(nèi)聚程度要盡量高,耦合程度要盡量弱
C.內(nèi)聚程度要盡量低,耦合程度要盡量弱
D.內(nèi)聚程度要盡量低,耦合程度要盡最強(qiáng)
56.數(shù)據(jù)庫(kù)是()的集合,它具有統(tǒng)一的結(jié)構(gòu)格式并存放于統(tǒng)一的存儲(chǔ)介質(zhì),可被各個(gè)應(yīng)用程序所共享
A.視圖B.消息C.數(shù)據(jù)D.關(guān)系
57.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。
A.無(wú)確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值
58.軟件開(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ì)
59.以下程序的運(yùn)行結(jié)果是______。main(){chart=02;printf("%d\n",t=++t>>2);}
A.0B.1C.2D.3
60.設(shè)以下變量均為int類型,表達(dá)式的值不為7的是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+1,x=y,x+1)
四、選擇題(20題)61.下列敘述中正確的是()。
A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大
B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
D.上述三種說(shuō)法都不對(duì)
62.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計(jì)算機(jī)結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯(cuò)
63.
64.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.一1C.1D.7
65.
66.
67.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.9C.6D.8
68.以下敘述中錯(cuò)誤的是()。
A.C語(yǔ)句必須以分號(hào)結(jié)束
B.復(fù)合語(yǔ)句在語(yǔ)法上被看作一條語(yǔ)句
C.空語(yǔ)句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行
D.賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語(yǔ)句
69.設(shè)fun函數(shù)的定義形式為
voidfun(charch,floatx){…}
則下列對(duì)函數(shù)fun的調(diào)用語(yǔ)句中,正確的是()。A.A.fun("abc",
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)個(gè)人年度工作計(jì)劃
- 冀教版小學(xué)五年級(jí)上冊(cè)數(shù)學(xué)教學(xué)計(jì)劃
- 幼兒教學(xué)計(jì)劃模板
- 年化妝品銷(xiāo)售工作計(jì)劃范文
- 2025年女工個(gè)人工作計(jì)劃范文
- 年度教育工作計(jì)劃
- 2025年辦公室秘書(shū)工作計(jì)劃
- 辦公室秘書(shū)年度工作計(jì)劃例文
- 美團(tuán)芒果杯 推廣計(jì)劃
- 《氧化還原滴定》課件
- 《文明禮儀概述培訓(xùn)》課件
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范
- 跨文化溝通心理學(xué)智慧樹(shù)知到期末考試答案2024年
- 《中華民族共同體概論》考試復(fù)習(xí)題庫(kù)(含答案)
- 標(biāo)準(zhǔn)的指令性目標(biāo)問(wèn)題解決型案例
- (完整版)園林景觀工程進(jìn)度計(jì)劃?rùn)M道圖
- ppt素材――小圖標(biāo) 可直接使用
- 穿越220kV線路施工方案
- 2011辛卯年風(fēng)水布局概述
- 養(yǎng)殖戶糞污污染情況整改報(bào)告2篇
- Q-FT B039-2006汽車(chē)產(chǎn)品油漆涂層技術(shù)條件
評(píng)論
0/150
提交評(píng)論