




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的輸出結(jié)果是()。main{inta,b,d=25;a=d/10%9;b=a&&(一1);printf("%d,%d\n",a,b);}A.6,1B.2,1C.6,0D.2,0
2.計算機系統(tǒng)的組成是______。
A.主機、外設(shè)B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲器
3.下列關(guān)于線性鏈表的敘述中,正確的是()A.各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致
B.各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)
C.進行出入與刪除時,不需要移動表中的元素
D.以上三種說法都不催
4.在下列幾種排序方法中,空間復(fù)雜度最高的是()
A.歸并排序B.快速排序C.插入排序D.選擇排序
5.若有定義語句“char*s1=“OK”,*s2=“ok”;”,以下選項中,能夠輸出“OK”的語句是()。
A.if(strcmp(s1,s2)!=0)puts(s2);
B.if(strcmp(s1,s2)!=0)puts(s1);
C.if(strcmp(s1,s2)==1)puts(s1);
D.if(strcmp(s1,s2)==0)puts(s1);
6.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運行后的輸出結(jié)果是()。A.-1B.0C.1D.7
7.以下是一個對數(shù)組A(含有n個數(shù)值元素)進行排序的算法偽代碼,請問它的平均時間復(fù)雜度是多少()
A.O(n)B.O(n^2)C.O(1)D.O(log(n))
8.若有說明chars1[30]="Thecity",s2[]="isbeautiful";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為Thecityisbeautiful\0
B.s1的內(nèi)容更新為isbeaut\0
C.s1的內(nèi)容更新為Thecity\0isbeautiful\0
D.s1的內(nèi)容更新為Thecityisbeautiful\0
9.已知函數(shù)的調(diào)用形式為fread(buf,size,count,fp),參數(shù)buf的含義是
A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)
B.一個文件指針,指向要讀的文件
C.一個指針;指向要讀入數(shù)據(jù)的存放地址
D.一個存儲區(qū),存放要讀的數(shù)據(jù)項
10.順序查找法適合于存儲結(jié)構(gòu)為()的線性表。
A.散列存儲B.順序存儲或鏈?zhǔn)酱鎯.壓縮存儲D.索引存儲
11.下面算法的時間復(fù)雜度為()A.O(1)B.O(n)C.O(n*n)D.O(n!)
12.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
13.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
14.
15.以下敘述中正確的是_____。A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
16.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
17.下列排序算法中,其時間復(fù)雜度和記錄的初始排列無關(guān)的是()
A.插入排序B.堆排序C.快速排序D.冒泡排序
18.下述哪一條是順序存儲結(jié)構(gòu)的優(yōu)點()。
A.插入運算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲表示C.存儲密度大D.刪除運算方便
19.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應(yīng)為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF
20.對線性表進行折半查找時,要求線性表必須()。A.A.以順序方式存儲
B.以順序方式存儲,且結(jié)點按關(guān)鍵字有序排列
C.以鏈?zhǔn)椒绞酱鎯?/p>
D.以鏈?zhǔn)椒绞酱鎯?,且結(jié)點按關(guān)鍵字有序排列
二、2.填空題(20題)21.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
22.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。
23.以下程序的運行結(jié)果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%5ld\n",k);}
24.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%\n",p+9);
}
25.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使相同的數(shù)只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)fun返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
2223445666677899101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910。請?zhí)羁铡?/p>
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
26.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
27.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
28.以下程序運行后的輸出結(jié)果是【】。
main()
{intm=011,n=11;
printf("%d%d\n",++m,n++);
}
29.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>
main()
{intx[10],a[9],i;
for(i=0;i<10;i++)scanf("%d",&x[i]);
for([11];i<10;i++)
a[i-1]=x[i]+[12];
for(i=0;i<9;i++)printf("%d",a[i]);
printf("");
}
30.下列循環(huán)的循環(huán)次數(shù)是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
31.有以下程序
intfa(intx){returnx*x;}
intfb(intx){returnx*x*x;}
intf(ing(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2),printf("%d\n",i);}
程序運行后,輸出結(jié)果是【】。
32.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),帶鏈的棧屬于【】。
33.若a的值為1,則表達式!a‖++a的值是______。
34.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
35.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
36.有以下程序:
voidswap1(intc[])
{intt;
t=c[0];c[0]=c[1];c[1]=t;
}
voidswap2(intc0,intc1)
{intt;
t=c0;c0=c1;c1=t;
}
main()
{inta[2]={3,5},b[2]={3,5};
swaplA);swap2(b[0],b[1]);
printf("%d,%d,%d,%d\n",a[0],a[1],b[0],b[1]);
}
其輸出結(jié)果是【】。
37.下列程序段的運行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
38.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和,請?zhí)羁铡?/p>
#include<stdio,h>
main()
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
prinff("sum=%d,count=%d\n",sum,count);
}
39.以下程序運行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q){
p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
40.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
三、1.選擇題(20題)41.下面程序的輸出結(jié)果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}
A.0B.4C.12D.無限次循環(huán)
42.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}
A.252B.1C.0D.運行時出錯,x無定值
43.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]
44.下列程序執(zhí)行后輸出的結(jié)果是______。intd=l;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}
A.8,12B.9,13C.8,4D.9,5
45.X、Y、Z被定義為int型變量,若從鍵盤給X、Y、Z輸入數(shù)據(jù),正確的輸入語句是______。
A.INPUTX,Y,Z;
B.scanf("%d%d%d",&X,&Y,&Z);
C.scanf("%d%d%d",X,Y,Z);
D.read("%d%d%d",&X,&Y,&Z);
46.有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是______。
A.6,1B.2,1C.6,0D.2,0
47.下面不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
48.若有以下調(diào)用語句,則不正確的fun函數(shù)的首部是______。main(){……inta[50],n;fun(n,&a[9]);……}
A.voidfun(intm,intx[])
B.voidfun(kits,kith[41])
C.voidfun(kitp,kit*s)
D.voidfun(intn,inta)
49.下面程序的輸出結(jié)果是()main(){inta[10]={l,2,3,4,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
50.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。
A.概要設(shè)計B.詳細設(shè)計C.可行性分析D.需求分析
51.結(jié)構(gòu)化程序設(shè)計的主要特點是______。
A.模塊化B.每個控制結(jié)構(gòu)具有封裝性C.每個控制結(jié)構(gòu)具有獨立性D.每個控制結(jié)構(gòu)只有一個入口和一個出口
52.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
53.有一函數(shù)以下程序段中不能根據(jù)x值正確計算出y值的是
A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B.y=0;if(x>0)y=1;elseif(x<0)y=-l;
C.y=0;if(x>=0);if(x>0)y=1;elsey=-1;
D.if(x>=0)if(x>0)y=1;elsey=0;elsey=-l;
54.C語言提供的合法關(guān)鍵字是______。
A.swicthB.chanC.CaseD.default
55.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。
A.\bB.\tC.\vD.\f
56.以下程序的運行結(jié)果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}
A.6B.8C.10D.12
57.設(shè)有定義:int(*ptr)();則以下敘述中正確的是()
A.ptr是指向一維數(shù)組的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int數(shù)據(jù)
D.prt是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
58.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
59.以下關(guān)于C語言的敘述中正確的是()。
A.預(yù)處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間
B.C語言中的變量定義須在其他語句之前
C.在C語言程序的書寫中,一個語句必須單占一行
D.一個C語言源程序可以由一個或多個源文件組成,每個源文件可由自己的main函數(shù)
60.假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROGABCDEFGHIJKL<回車>,則輸出結(jié)果為main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}
A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH
四、選擇題(20題)61.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。
main()
/*Beginning*/
{intr;floats;
scanf("%d",&r);
s=*PI*r*r;printf("s=%f\n",s);
}
若想糾正錯誤,應(yīng)該()。
A)更改注釋語句書寫位置B)存放圓半徑的變量r應(yīng)該定義為整型
C)輸出語句中不能加“s=”D)給計算面積的PI變量賦值
62.在軟件設(shè)計中不使用的工具是()。
A.系統(tǒng)結(jié)構(gòu)圖
B.程序流程圖
C.PAD圖
D.數(shù)據(jù)流圖(DFD圖)
63.在面向?qū)ο蠓椒ㄖ校粋€對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
64.若程序有宏定義:#defineNl00,則以下敘述中正確的是()。
A.宏定義中定義了標(biāo)識符N的值為整數(shù)100
B.在編譯程序?qū)源程序進行預(yù)處理時用l00替換標(biāo)識符N
C.對C源程序進行編譯時用100替換標(biāo)識符N
D.在運行時用100替換標(biāo)識符N
65.有以下函數(shù)定義:
voidfun(intn,doublex){……}
若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用的語句是
A.fun(inty,doublem);B.k=fun(10,12.5);
C.fun(x,n);D.voidfun(n,x);
66.有以下程序
67.(12)下列敘述中正確的是______。
A.線性表是線性結(jié)構(gòu)
B.棧與隊列是非線性結(jié)構(gòu)
C.線性鏈表是非線性結(jié)構(gòu)
D.二叉樹是線性結(jié)構(gòu)
68.利用E-R模型進行數(shù)據(jù)庫的概念設(shè)計,可以分成3步:首先設(shè)計局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進行(),得到最終的E-R模型。
A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化
69.有以下程序:
main()
{char*p[]={"3697","2584"};
inti,j;longnum=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!=’\0’)
{if((p[i][j]-’0’)%2==0)num=10*num+p[i][j]-’0’;
j+=2;
}
}
printf("%d\n",num);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37
C.39D.28
70.有以下程序:
#include<stdiO.h>
main()
{FILE*fp;
intk,n,i,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w");
for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);
fclose(fp);
fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);
fclose(fp);
printf("%d\n,%d\n,k,n);
}
程序運行后的輸出結(jié)果是()。
A.1,2
B.3,4
C.5,6
D.123,456
71.設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp),的返回值為()。
A.0B.\0C.非0值D.NULL
72.
73.有以下程序:
程序運行后的輸出結(jié)果是()。
A.500B.401C.503D.1404
74.以下不能定義為用戶標(biāo)識符的是()
A.MainB._0C._intD.sizeof
75.(50)數(shù)據(jù)庫概念設(shè)計的過程中,視圖設(shè)計一般有三種設(shè)計次序,以下各項中不對的是()
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
76.有三個關(guān)系R、S和t如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.笛卡兒積B.交C.并D.自然連接
77.某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點在第1層)()。
A.3B.4C.6D.7
78.在“文件包含,預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
79.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10
80.
五、程序改錯題(1題)81.下列給定程序中函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次逆向取出,構(gòu)成一個新數(shù)放在t中。高位在低位,低位在高位。例如,當(dāng)s中的數(shù)為12345678時,則t中的數(shù)為8642。
請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.B當(dāng)邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
2.C
3.C
試題2分析
結(jié)點的存儲順序和邏輯順序不一定一致,存儲空間也不一定連續(xù)。插入和刪除元素的時候,不需要移動表中的元素。
試題2答案
C
4.A
5.B“strcmp(S1,S2)”是字符串比較函數(shù),比較規(guī)則是兩個字符串自左向右逐個字符相比較(按照ASCII值大?。R驗椤癘K”<“ok”,所以“strcmp(S1,S2)”為負值。故本題答案為B選項。
6.A此題考查a--和--a之間的區(qū)別,當(dāng)while(a--)為真循環(huán)執(zhí)行,a--是執(zhí)行再減1,所以答案選擇A。
7.B
8.D解析:該函數(shù)用來使兩個字符串連接成為一個字符串。strcat(str1,str2)將str2中的字符連接到str1的字符后面,并在最后加一個“\\0”。連接后新的字符串存放在strl中。注意:用于字符串處理的函數(shù)。
9.C解析:這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。
10.B
11.B
12.B
13.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。
[知識拓展]模塊的獨立程序是評價設(shè)計好壞的一個重要標(biāo)準(zhǔn),衡量軟件的模塊獨立性有兩個定性的度量標(biāo)準(zhǔn)。其中內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度最,內(nèi)聚性是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來度量模塊間的聯(lián)系。
14.C
15.C解析:算法的特性中包括“有零個或多個輸入”及“有一個或多個輸出”這兩個特性。一個算法得到的結(jié)果就是算法的輸出,沒有輸出的算法是沒有意義的,所以一千算法必須至少有一個輸出。
16.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。
17.B
18.C
19.D
20.B
21.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應(yīng)用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。
22.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。
23.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
24.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。
25.!=returnj!=returnj解析:函數(shù)fun中,變量j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標(biāo),所以訂語句中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,a[i]要添加到新數(shù)組中。該算法只能用于數(shù)組已排序的題目中。
26.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當(dāng)i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。
27.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調(diào)用相關(guān)知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
28.10111011解析:前綴自增運算時,表達式的值和變量自增之后的值相同;后綴自增運算時,表達式的值為變量自增之前的值。所以,本題程序輸出的兩個結(jié)果分別是m+1和n的值。而m在初始化時使用的是八進制常量011,轉(zhuǎn)換為十進制為9。故輸出結(jié)果是1011。
29.i=1x[i-1]i=1\r\nx[i-1]解析:對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進行9次加法運算,所以空11處應(yīng)填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空12處應(yīng)填入x[i-1]。
30.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關(guān)系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。
31.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb()2)-fa(2),故執(zhí)行i=(fa,fb,2)卮i的值為23-22=4。
32.存儲結(jié)構(gòu)存儲結(jié)構(gòu)解析:帶鏈的棧屬于棧的鏈?zhǔn)酱鎯Y(jié)構(gòu)。
33.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
34.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
35.外模式外模式解析:外模式由概念模式推導(dǎo)而出,給出了每個用戶的局部數(shù)據(jù)描述,即數(shù)據(jù)視圖。
36.53355335解析:函數(shù)swap1的形參是數(shù)組,故形參的改變能夠影響實參,所以執(zhí)行完swap1(a)后,a[0]=5、a[1]=3;函數(shù)swap2的形參是簡單變量,故形參的改變不能夠影響實參,所以執(zhí)行完swap2(b)后,b[0]=3、b[1]=5;正確答案為5335。
37.8208,20解析:本題考查while循環(huán)和++運算符的運用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時y=8。
38.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應(yīng)該填寫地址,由于是循環(huán)輸入,所以填&a[i]。依據(jù)題意第二處應(yīng)該填寫a[i],以實現(xiàn)sum=sum+a[i]的求和。
39.1343113431解析:初始化時,指針p指向m[0]的地址,指針q指向m[4]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[0].k=1,m[4].k=1,此時i=2,指針p指向m[1]的地址,指針q指向m[3]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[1].k=3,k=3,此時i=4,指針q指向m[2]的地址,p==q不滿足循環(huán)條件,則退出循環(huán),m[2].k=4。所以最后輸出為13431。
40.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊列。
41.C解析:本題定義了一個fun函數(shù),用于num求和,具體執(zhí)行過程如下:
num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;
num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0);
num=O:while條件不成立,所以返回k的值12。
42.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個指針變量中存儲的地址是不同的。變量x接受的是一個關(guān)系運算的結(jié)果,因為兩個地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語言中,邏輯值的表示方法。
43.D解析:a是一個2行3列的二維數(shù)組,行下標(biāo)和列下標(biāo)都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標(biāo)最大值為1,列下標(biāo)最大值為2,因此選項A、B、C都是錯誤的引用。計算選項D中數(shù)組元素的下標(biāo)后得a[0][0],為正確的引用。
44.C解析:本題執(zhí)行過程如下:首先調(diào)用fun函數(shù),使得實參a的值3傳遞紿形參p,得到局部變量d=8,打印出局部變量d的值8返回主函數(shù)執(zhí)行“d+=a++””,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對p值的改變并不能引起a的改變),故本題的輸出是8,4。
45.B解析:scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址。選項A不是C語言中的輸入語句,故選項A不正確;選項C中輸入的是變量字符串而不是地址字符串,不滿足scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址,故選項C不正確;選項D不是C語言中的輸入語句,故選項D不正確:所以,4個選項中選項B符合題意。
46.B解析:本題主要考查的是C語言中的整除、求余以及邏輯值的概念。在C語言中,/號的兩邊如果都是整數(shù)的話,返回的結(jié)果也是整數(shù),如果除不凈則舍去小數(shù)部分。%是求余運算,它的運算對象只能是整型,運算結(jié)果是兩數(shù)相除后所得的余數(shù),當(dāng)運算量為負數(shù)時,結(jié)果的符號與被除數(shù)相同。因此,執(zhí)行語句a=d/10%9;后,a=25/10%9=2%9=2。C語言中沒有專門的邏輯值,而是用整型值來代替。當(dāng)整型值作邏輯值使用時,非零即表示“真”,零表示“假”,而邏輯值當(dāng)整型值使用時,“真”等于1,“假”等于0。因此,執(zhí)行語句b=a&&(-1);后b=2&&(-1)=“真”&&“真”=“真”=1。所以,4個選項中選項B符合題意。
47.D解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
48.D
49.A
50.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。
51.D解析:按照結(jié)構(gòu)化設(shè)計方法設(shè)計的程序具有以下特點:(1)程序易于理解、使用和維護,程序員采用結(jié)構(gòu)化編程方法,便于控制、降低程序的復(fù)雜性,因此容易編寫程序,便于驗證程序的正確性。結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試,以確保程序的正確性。程序容易閱讀并被人理解,便于用戶使用和維護。(2)提高了編程工作的效率,降低了軟件開發(fā)成本。由于結(jié)構(gòu)化編程方法能夠把錯誤控制到最低限度,因此能夠減少調(diào)試和查錯時間。結(jié)構(gòu)化是由一些為數(shù)不多的基本結(jié)構(gòu)模塊組成,這些模塊甚至可以由機器自動生成,從而極大地減輕了編程工作量。(3)結(jié)構(gòu)化程序設(shè)計選用的每個控制結(jié)構(gòu)只允許有一個入口和一個出口。
52.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
53.C解析:本題考查的知識點是if語句的嵌套使用.首先檢查訂與else的配對,然后再分析各分支實現(xiàn)的功能.選項A描述的意思是:在x>=O情況下,則y為1,否則;在x=O時,y為0,剩下的x<0時,y為-1,滿足本題中函數(shù)的要求;選項B描述的意思時:初始化y的值為0,在x>0時,給y重新賦值為1,否則,在x<0時,給y重新賦值為-1,滿足本題中函數(shù)的要求;選項C描述的意思是:在x>0情況下,如果x>0,則y為1,否則即“c==0”時,y為-1:剩下的x<0時,y為0.可見答案C實現(xiàn)的結(jié)果不是給定的表達式。選項D中描述的意思是:在x>=0的情況下,如果x>=0,就給y賦值為1,否則就給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求.所以4個選項中C為所選。
54.D
55.C本題考查C語言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案
轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進制數(shù)所代表的字符、\xhh1~2位十六進制數(shù)所代表的字符。
56.A解析:結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,在本題中,structdate中包含year,month,day三個整型變量。通常一個整型變量占2個字節(jié),因此,用sizeof求得該結(jié)構(gòu)體變量的長度為6個字節(jié)。
57.C
58.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char.p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當(dāng)前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是‘6’和‘3’,然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是‘8’和‘5’,同時經(jīng)過轉(zhuǎn)換和相加運算后,結(jié)果s中的值應(yīng)該是6385,所以,正確答案是C)。
59.A解析:源程序中可以有預(yù)處理命令(include命令僅為其中的一種)。C語言中的變量可以在使用之前的任何位置進行定義。C語言程序的書寫中,多個語句可以位于一行,但為了增強可讀性,一般每行只有一條語句。一個C語言源程序可以由一個或多個源文件組成,但僅可以有一個main函數(shù)。
60.D解析:本題中,argc表示參數(shù)的個數(shù),應(yīng)為3,argv是一個指向字符串的指針數(shù)組,指針數(shù)組argv中的元素argv[0]指向字符串'PROG',元素argv[1]指向字符串“ABCDEFGH”,argv[2]指向字符串“IJKL”。在while循環(huán)條件中,先進行自減運算,再執(zhí)行相應(yīng)的printf語句。
61.DPI沒有定義,definePI3.1415
62.D【答案】:D
【知識點】:軟件設(shè)計中使用的工具
【解析】:數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,是在詳細設(shè)計階段用到的。系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示,是在概要設(shè)計階段用到的。程序流程圖是對程序流程的圖形表示,故選D。
63.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管道施工安裝合同范本
- 出國勞動合同范本
- 遼寧省鐵嶺市鐵嶺縣2025屆九年級上學(xué)期12月期末考試數(shù)學(xué)試卷
- 2025年終總結(jié)匯報模板8
- 2025景觀照明工程施工合同書
- 2025年合作經(jīng)營合同模板示例
- 2025建筑吊車租賃合同模板
- 2025成都市房屋租賃合同樣本
- 高一語文新學(xué)案:第二單元《短歌行》
- 2025房屋租賃合同范本授權(quán)標(biāo)準(zhǔn)版
- 機器設(shè)備評估常用數(shù)據(jù)及參數(shù)(最新)
- 零售藥店處方藥銷售自查整改報告word(范文)
- 叉車日常維護保養(yǎng)檢查記錄表
- 東風(fēng)汽車特約店培訓(xùn)資料-WDMS維修系統(tǒng)培訓(xùn)管理(PPT 131頁)
- Q∕GDW 12070-2020 配電網(wǎng)工程標(biāo)準(zhǔn)化設(shè)計圖元規(guī)范
- 汽車半懸掛系統(tǒng)建模與分析(現(xiàn)代控制理論大作業(yè))
- 小學(xué)語文人教課標(biāo)版(部編)三年級下冊習(xí)作:我做了一項小實驗
- 畢業(yè)設(shè)計論文土木工程專業(yè)五層單身宿舍樓框架結(jié)構(gòu)設(shè)計
- 立式水輪發(fā)電機軸線分析及處理
- 蹲踞式起跑PPT
- 1云南省初中綜合素質(zhì),完整版綜合素質(zhì)評定表
評論
0/150
提交評論