下述關於資料庫系統的正確敘述是
㈠ 全國計算機等級考試二級c語言歷年試題及答案
2010年9月全國計算機等級考試二級C語言筆試試題及答案
一、選擇題((1)-(10)每題2分,(11)-(50)每題1分.共60分))
(1)下列選項中不屬於軟體生命周期開發階段任務的是
A)詳細設計 B)概要設計 C)軟體維護 D)軟體測試
(2)樹是結點的集合,它的根結點數目是
A)有且只有1 B)1或多於1 C)0或1 D)至少2
(3)在面向對象方法中,實現信息隱蔽是依靠
A)對象的繼承 B)對象的多態 C)對象的封裝 D)對象的分類
(4)程序設計語言的基本成分是數據成分、運算成分、控製成分和
A)語句成分 B)變數成分 C)對象成分 D)傳輸成分
(5)冒泡排序在最壞情況下的比較次數是
A)n/2 B)nlog2n C)n(n-1)/2 D)n(n+1)/2
(6)下列敘述中,不屬於軟體需求規格說明書的作用的是
A)作為確認測試和驗收的依據
B)反映出用戶問題的結構,可以作為軟體開發工作的基礎和依據
C)便於用戶、開發人員進行理解和交流
D)便於開發人員進行需求分析
(7)下列敘述中錯誤的是
A)一個C語言程序只能實現一種演算法 B)C程序可以由多個程序文件組成
C)C程序可以由一個或多個函數組成 D)一個函數可單獨作為一個C程序文件存在
(8)下列不屬於軟體工程的3個要素的是
A)方法 B)過程 C)工具 D)環境
(9)下列敘述中正確的是
A)資料庫系統是一個獨立的系統,不需要操作系統的支持
B)資料庫技術的根本目標是要解決數據的共享問題
C)資料庫管理系統就是資料庫系統
D)以上三種說法都不對
(10)下列敘述中正確的是
A)每個C程序文件中都必須有一個main()函數
B)在C程序的函數中不能定義另一個函數
C)C程序可以由一個或多個函數組成
D)在C程序中main()函數的位置是固定的
(11)將E-R圖轉換到關系模式時,實體與聯系都可以表示成
A)屬性 B)關系 C)鍵 D)域
(12)下列定義變數的語句中錯誤的是
A)double int_; B)int _int; C)char For D)float USS
(13)下列敘述中正確的是
A)C語言編譯時不檢查語法 B)C語言的子程序有過程和函數兩種
C)C語言的函數可以嵌套定義 D)C語言的函數可以嵌套調用
(14)以下選項中,合法的一組C語言數值常量是
A) 0x8A B)12 C).177 D) 028
(15)以下敘述中正確的是
A)構成C程序的基本單位是函數
B)可以在一個函數中定義另一個函數
C)main()函數必須放在其他函數之前
D)所有被調用的函數一定要在調用之前進行定義
(16)若在定義語句:int a,b,c,*p=&c;之後,接著執行以下選項中的語句,則能正確執行的語句是
A)scanf("%d",&p); B)scanf("%d%d%d",a,b,c);
C)scanf("%d",p); D) scanf("%d",a,b,c);
(17) 有以下程序
main()
{int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序運行後的輸出結果是
A)2,2,3 B)2,2,2 C)2,3,1 D)2,1,1
(18) 若已定義:int a=25,b=14,c=19;以下三目運算符(?:)所構成語句的執行後a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結果是
A)***a=25,b=13,c=19 B)***a=26,b=14,c=19
C)### a=25,b=13,c=19 D)### a=26,b=14,c=19
(19)下列程序段的輸出結果是
int a=1234;
float b=123.456;
double c=12345.54321;
printf("-,%2.1f,%2.1f",a,b,c);
A)無輸出 B)12,123.5,12345.5 C)1234,123.5,12345.5 D)1234,123.4,1234.5
(20)有以下程序
main()
{int a=0,b=0;
a=10; /*給a賦值
b=20; 給b賦值 */
printf("a+b=%d\n",a+b); /* 輸出計算結果 */
}
程序運行後輸出結果是
A)30 B)a+b=30 C)a+b=0 D)出錯
(21)若運行以下程序時,從鍵盤輸入 ADescriptor(表示回車),則下面程序的運行結果是
#include
main()
{ char c;
int v0=1,v1=0,v2=0;
do{ switch(c=getchar())
{ case ′a′:case ′A′:
case ′e′:case ′E′:
case ′i′:case ′I′:
case ′o′:case ′O′:
case ′u′:case ′U′:v1+=1;
default:v0+=1;v2+=1;
}
} while(c!=′\n′);
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
}
A)v0=11,v1=4,v2=11 B)v0=8,v1=4,v2=8
C)v0=7,v1=4,v2=7 D)v0=13,v1=4,v2=12
(22) 有以下程序
#include
main()
{int y=9;
for( y>0;y--)
if(y%3= =0) printf("%d",--y);
}
程序的運行結果是
A)732 B)433 C)852 D)874
(23) 設有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
則
A)運行程序段後輸出0 B)運行程序段後輸出1
C)程序段中的控製表達式是非法的 D)程序段執行無限次
(24)有以下程序
fun(int x,int y){return(x+y);}
main()
{int a=1,b=2,c=3,sum;
sum=fun((a++,b++b,a+b),c++);
printf("%d\n",sum);
}
執行後的輸出結果是
A)5 B)7 C)8 D)3
(25)執行下面的程序段後,變數k中的值為
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值 B)35 C)31 D)20
(26)以下敘述中錯誤的是
A)改變函數形參的值,不會改變對應實參的值
B)函數可以返回地址值
C)可以給指針變數賦一個整數作為地址值
D)當在程序的開頭包含文件stdio.h時,可以給指針變數賦NULL
(27)以下程序段的描述,正確的是
x=-1;
do
{x=x*x;} while(!x);
A)是死循環 B)循環執行兩次 C)循環執行一次 D)有語法錯誤
(28)有以下程序
fun(int x,int y)
{static int m=0,i=2;
i+=m+1;m=i+x+y; return m;
}
main()
{int j=1,m=I,k;
k=fun(j,m); printf("%d",k);
k=fun(j,m); printf("%d\n",k)
}
執行後的輸出結果是
A)5,5 B)5,11 C)11,11 D)11,5
(29)有以下程序
fun(int x)
{int p;
if(x==0║x= =1) return(3);
p=x-fun(x=2);
retum p;
}main()
{ prinf("%d\n",fun(7));}
執行後的輸出結果是
A)7 B)3 C)3 D)0
(30)在16位編譯系統上,右有定義int a[ ]={10,20,30},*p=&a;,當執行p++;後,下列說法錯誤的是
A)p向高地址移了一個位元組 B)p抽高地址移了一個存儲單元
C)p向高地址移了兩個位元組 D)p與a+1等價
(31)有以下程序
main()
{int a=1,b=3,c=5;
int *p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf("%d\n",c);
}
執行後的輸出結果是
A)1 B)2 C)3 D)4
(32)下列程序執行後的輸出結果是
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{ int i=0; func1(i); printf("\n");}
A)hello B)hel C)hlo D)hlm
(33)在下述程序中,判斷i>j共執行的次數是
main()
{ int i=0, j=10, k=2, s=0;
for (;;)
{ i+=k;
if(i>j)
{ printf("%d",s);
break;
} s+=i;
}
}
A)4 B)7 C)5 D)6
(34)以下函數返回a所指數組中最大值所在的下標值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;iif(a[i]>a[p]);
return(p);
}
在下劃線處應填入的內容是
A)i=p B)a[p]=a[i] C)p=j D)p=i
(35)下列程序執行後的輸出結果是
main()
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=1; i<9; i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
A)3 B)6 C)9 D)隨機數
(36) 有以下程序
#include
void fun(int *a,int n)/*fun函數的功能是將a所指數組元素從大到小排序*/
{int t,i,j;
for(i=0;ifor(j=i+1;jif (a}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for (i=0;i<10;i++) printf("%d,",c);
printf("\n");
}
程序運行的結果是
A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,
C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,
(37)以下程序的輸出結果是#include
void prt (int *x, int*y, int*z)
{ printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{ int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);
}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
(38) 有以下程序:
#include
void fun(char *t,char *s)
{
while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{
char ss[10]=」acc」,aa[10]=」bbxxyy」;
fun(ss,aa);
printf(「%s,%s\n」,ss,aa);
}
程序運行結果是
A) accxyy , bbxxyy B) acc, bbxxyy
C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy
(39) 有以下程序
#include
main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp);
}
程序運行後的輸出結果是
A)20 30 B)20 50 C)30 50 D)30 20
(40) 有以下程序
main()
{int x[3][2]={0},I;
for(I=0;I<3;I++) scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
若運行時輸入:246,則輸出結果為
A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6
(41)有以下程序
int add(int a,int b){return+b};}
main()
{int k,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數調用語句錯誤的是
A)k=(*f)(a,b); B)k=add(a,b); C)k=*f(a,b); D)k=f(a,b);
(41)有以下程序
#include
main(int argc,char *argv[])
{int i=1,n=0;
while(i<arge){n=n+strlen(argv[i]);i++;}
printf(「%d\n」,n);
}
該程序生成的可執行文件名為:proc.exe。若運行時輸入命令行:
proc 123 45 67
則程序的輸出結果是
A)3 B)5 C)7 D)11
(42)有以下程序
void fun2(char a, char b){printi(「%b%c」,a,b);}
char a= 『A』,b= 『B』;
void fun1( ){ a= 『C』l b= 『D』; }
main( )
{ fun1( )
printf( 「%c%c」,a,b);
fun2(『E』, 『F』);
}
程序的運行結果是
A)CDEF B)ABEF C)ABCD D)CDAB
(43)有以下程序
#include
#define N 5
#define M N+1
#define f(x) (x*M)
main()
{int i1,i2;
i1=f(2);
i2=f(1+1);
printf(「%d %d\n」,i1,i2);
}
程序的運行結果是
A)12 12 B)11 7 C)11 11 D)12 7
(44)設有以下語句
typedef struct TT
{char c; int a[4];}CIN;
則下面敘述中正確的是
A)可以用TT定義結構體變數 B)TT是struct類型的變數
C)可以用CIN定義結構體變數 D)CIN是struct TT類型的變數
(45)有以下結構體說明、變數定義和賦值語句
struct STD
{char name[10];
int age;
char sex;
}s[5],*ps;
ps=&s[0];
則以下scanf函數調用語句中錯誤引用結構體變數成員的是
A)scanf(「%s」,s[0].name); B)scanf(「%d」,&s[0].age);
C)scanf(「%c」,&(ps>sex)); D)scanf(「%d」,ps>age);
(46)若有以下定義和語句
union data
{ int i; char c; float f;}x;
int y;
則以下語句正確的是
A)x=10.5; B)x.c=101; C)y=x; D)printf(「%d\n」,x);
(47)若變數已正確定義,則以下語句的輸出結果是
s=32; s^=32;printf(「%d」,s);
A)-1 B)0 C)1 D)32
(48) 若程序中有宏定義行:#define N 100 則以下敘述中正確的是
A)宏定義行中定義了標識符N的值為整數100
B)在編譯程序對C源程序進行預處理時用100替換標識符N
C) 對C源程序進行編譯時用100替換標識符N
D)在運行時用100替換標識符N
(49)以下敘述中正確的是
A)C語言中的文件是流式文件,因此只能順序存取數據
B)打開一個已存在的文件並進行了寫操作後,原有文件中的全部數據必定被覆蓋
C)在一個程序中當對文件進行了寫操作後,必須先關閉該文件然後再打開,才能讀到第1個數據
D)當對文件的讀(寫)操作完成之後,必須將它關閉,否則可能導致數據丟失
(50)有以下程序
#include
main()
{FILE *fp; int i;
char ch[]=」abcd」,t;
fp=fopen(「abc.dat」,」wb+」);
for(i=0;i<4;i++)fwriter&ch[],1,1fp;
fseek(fp,-2L,SEEK_END);
fread(&t,1,1,fp);
fclose(fp);
printf(「%c\n」,t);
}
程序執行後的輸出結果是
A)d B)c C)b D)a
二、填空題(每空2分,共40分)
(1)在面向對象方法中,類之間共享屬性和操作的機制稱為 【1】 。
(2)一個關系表的行稱為 【2】 。
(3)耦合和內聚是評價模塊獨立性的兩個主要標准,其中 【3】 反映了模塊內各成分之間的聯系。
(4)線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構.隊列是一種特殊的線性表,循環隊列是隊列的【4】存儲結構.
(5) 【5】 的任務是診斷和改正程序中的錯誤。
(6) 以下程序的輸出結果是【6】.
#include
main()
{ int n=12345,d;
while(n!=0){ d=n%10; printf("%d",d); n/=10;}
}
(7)以下程序運行後的輸出結果是 【7】 。
main()
{
int m=011,n=11;
printf("%d %d\n",++m,n++);
}
(8)有以下程序,若運行時從鍵盤輸入:18,11,則程序輸出結果是 【8】 。
main()
{ int a,b;
printf("Enter a,b:");scanf("%d,%d",&a,&b);
while(a!=b)
{ while(a>b) a-=b;
while(b>a) b-=a;
}
printf("%3d%3d\n",a,b);
}
(9) 有以下程序段,且變數已正確定義和賦值
for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請填空,使下面程序段的功能為完全相同
s=1.0;k=1;
while(_【9】_______){ s=s+1.0/(k*(k+1)); _【10】_______;}
printf("s=%f\n\n",s);
(10)執行以下程序的輸出結果是【11】______.
#include
main()
{ int i,n[4]={1};
for(i=1;i<=3;i++)
{ n=n[i-1]*2+1; printf("%d",n); }
}
(11)以下程序中函數f的功能是在數組x的n個數(假定n個數互不相同)中找出最大最小數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換.請填空.
#include
viod f(int x[],int n)
{ int p0,p1,i,j,t,m;
i=j=x[0]; p0=p1=0;
for(m=0;m{ if(x[m]>i) {i=x[m]; p0=m;}
else if(x[m]}
t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
t=x[p1];x[p1]= _【12】_______; 【13】______=t;
}
main()
{ int a[10],u;
for(u=0;u<10;u++) scanf("%d",&a);
f(a,10);
for(u=0;u<10;u++) printf("%d",a);
printf("\n");
}
(12)下列程序中的函數strcpy2()實現字元串兩次復制,即將t所指字元串復制兩次到s所指內存空間中,合並形成一個新的字元串。例如,若t所指字元串為efgh,調用strcpy2後,s所指字元串為efghefgh。請填空。
#include
#include
void strcpy2(char *s,char *t)
{ char *p=t;
while(*s++=*t++);
s= 【14】 ;
while( 【15】 =*p++);
}
main()
{ char str1[100]="abcd",str2[]="efgh";
strcpy2(str1 ,str2); printf("%s\n",str1);
}
(13)以下程序統計從終端輸入的字元中大寫字母的個數,num[0]中統計字母A的個數,num[1]中統計字母B的個數,其它依次類推.用#號結束輸入,請填空.
#include
#include
main()
{ int num[26]={0},i; char c;
while((_【16】_______)!='#')
if(isupper(c)) num[c-『A』]+= 【17】_______;
for(i=0;i<26;i++)
Printf("%c:%d\n",i+'A',num);
}
(14)以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請填空。
#include "math.h"
double fun(double x) { return(x*x-2*x+6); }
main()
{
double x,y1,y2;
printf("Enter x:"); scanf("%lf",&x);
y1=fun( 【18】 );
y2=fun( 【19】 );
printf("y1=%lf,y2=%lf\n",y1,y2);
}
(15) 以下程序的輸出結果是_【20】______.
#include
#define M 5
#define N M+M
main()
{ int k;
k=N*N*5; printf("%d\n",k);
}
一、選擇題答案:
1-10:CACDC DADBA 11-20:BDDBA CCCCB 21-30:DCBCA CCBCA
31-40:CCDAB DCDAB 41-50:CABCD BBBDB
二、填空題答案:
1.繼承 2. 元組 3.內聚 4.順序 5. 程序調試
6. 54321 7.10 11 8. 1 9.k<=n k++
10. 3 7 5 11.x[0] x[0] 12.s--,*s++ 13.c=getchar() 14. (x+8),sin(x) 15.55
希望對你有所幫助
㈡ 全國計算機等級考試二級C語言歷年試題及答案
這里有一份最全的考研歷年真題資料分享給你
鏈接:
通過不斷研究和學習歷年真題,為考生沖刺階段復習提分指點迷津,做真題,做歷年真題集,對照考綱查缺補漏,提高實戰素養,制定做題策略,規劃方向;
若資源有問題歡迎追問!
㈢ c語言重點
站長提醒廣大考生:下面的138道題目,在二級考試中命中率極高。
一、選擇題
(1) 下面敘述正確的是(C)
A. 演算法的執行效率與數據的存儲結構無關B. 演算法的空間復雜度是指演算法程序中指令(或語句)的條數C. 演算法的有窮性是指演算法必須能在執行有限個步驟之後終止 D. 以上三種描述都不對
(2) 以下數據結構中不屬於線性數據結構的是(C)
A. 隊列 B. 線性表 C. 二叉樹 D. 棧
(3) 在一棵二叉樹上第5層的結點數最多是(B) 註:由公式2k-1得
A. 8 B. 16 C. 32 D. 15
(4) 下面描述中,符合結構化程序設計風格的是(A)
A. 使用順序、選擇和重復(循環)三種基本控制結構表示程序的控制邏輯 B. 模塊只有一個入口,可以有多個出口 C. 注重提高程序的執行效率 D. 不使用goto語句
(5) 下面概念中,不屬於面向對象方法的是 (D) 註:P55-58
A. 對象 B. 繼承 C. 類 D. 過程調用
(6) 在結構化方法中,用數據流程圖(DFD)作為描述工具的軟體開發階段是(B)
A. 可行性分析 B. 需求分析 C. 詳細設計 D. 程序編碼
(7) 在軟體開發中,下面任務不屬於設計階段的是(D)
A. 數據結構設計 B. 給出系統模塊結構
C. 定義模塊演算法 D.定義需求並建立系統模型
(8) 資料庫系統的核心是(B)
A. 數據模型 B. 資料庫管理系統 C. 軟體工具 D. 資料庫
(9) 下列敘述中正確的是(C)
A.資料庫是一個獨立的系統,不需要操作系統的支持B.資料庫設計是指設計資料庫管理系統C.資料庫技術的根本目標是要解決數據共享的問題 D.資料庫系統中,數據的物理結構必須與邏輯結構一致
(10) 下列模式中,能夠給出資料庫物理存儲結構與物理存取方法的是(A) 註:P108
A. 內模式 B. 外模式 C. 概念模式 D. 邏輯模式
(11) 演算法的時間復雜度是指(C)
A. 執行演算法程序所需要的時間 B. 演算法程序的長度 C. 演算法執行過程中所需要的基本運算次數 D. 演算法程序中的指令條數
(12) 演算法的空間復雜度是指(D)
A. 演算法程序的長度 B. 演算法程序中的指令條數 C. 演算法程序所佔的存儲空間 D. 演算法執行過程中所需要的存儲空間
(13) 設一棵完全二叉樹共有699個結點,則在該二叉樹中的葉子結點數為(B) 註:利用公式n=n0+n1+n2、n0=n2+1和完全二叉數的特點可求出
A. 349 B. 350 C. 255 D. 351
(14) 結構化程序設計主要強調的是(B)
A.程序的規模 B.程序的易讀性
C.程序的執行效率 D.程序的可移植性
(15) 在軟體生命周期中,能准確地確定軟體系統必須做什麼和必須具備哪些功能的階段是(D) 註:即第一個階段
A. 概要設計 B. 詳細設計 C. 可行性分析 D. 需求分析
(16) 數據流圖用於抽象描述一個軟體的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬於數據流圖合法圖符的是(A) 註:P67
A. 控制流 B. 加工 C. 數據存儲 D. 源和潭
(17) 軟體需求分析階段的工作,可以分為四個方面:需求獲取、需求分析、編寫需求規格說明書以及(B) 註:P66
A. 階段性報告 B. 需求評審 C. 總結 D. 都不正確
(18) 下述關於資料庫系統的敘述中正確的是(A)
A. 資料庫系統減少了數據冗餘 B. 資料庫系統避免了一切冗餘
C. 資料庫系統中數據的一致性是指數據類型的一致 D. 資料庫系統比文件系統能管理更多的數據
(19) 關系表中的每一橫行稱為一個(A)
A. 元組 B. 欄位 C. 屬性 D. 碼
(20) 資料庫設計包括兩個方面的設計內容,它們是(A)
A. 概念設計和邏輯設計 B. 模式設計和內模式設計
C. 內模式設計和物理設計 D. 結構特性設計和行為特性設計
(21) 下列敘述中正確的是(A)
A. 線性表是線性結構 B. 棧與隊列是非線性結構
C. 線性鏈表是非線性結構 D. 二叉樹是線性結構
(22) 下列關於棧的敘述中正確的是(D)
A. 在棧中只能插入數據 B. 在棧中只能刪除數據
C. 棧是先進先出的線性表 D. 棧是先進後出的線性表
(23) 下列關於隊列的敘述中正確的是(C)
A. 在隊列中只能插入數據 B. 在隊列中只能刪除數據
C. 隊列是先進先出的線性表 D. 隊列是先進後出的線性表
(24) 對建立良好的程序設計風格,下面描述正確的是(A) 註:P48
A. 程序應簡單、清晰、可讀性好 B. 符號名的命名要符合語法
C. 充分考慮程序的執行效率 D. 程序的注釋可有可無
(25) 下面對對象概念描述錯誤的是(A) 註:P55
A. 任何對象都必須有繼承性 B. 對象是屬性和方法的封裝體
C. 對象間的通訊靠消息傳遞 D. 操作是對象的動態性屬性
(26) 下面不屬於軟體工程的3個要素的是(D) 註:P62
A. 工具 B. 過程 C. 方法 D. 環境
(27) 程序流程圖(PFD)中的箭頭代表的是(B) 註:P81
A. 數據流 B. 控制流 C. 調用關系 D. 組成關系
(28) 在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和資料庫系統階段。其中數據獨立性最高的階段是(A)
A.資料庫系統B. 文件系統 C. 人工管理 D. 數據項管理
(29) 用樹形結構來表示實體之間聯系的模型稱為(B)
A. 關系模型 B. 層次模型 C. 網狀模型 D. 數據模型
(30) 關系資料庫管理系統能實現的專門關系運算包括(B)
A. 排序、索引、統計 B. 選擇、投影、連接
C. 關聯、更新、排序 D. 顯示、列印、製表
(31) 演算法一般都可以用哪幾種控制結構組合而成(D) 註:P3
A. 循環、分支、遞歸 B. 順序、循環、嵌套
C. 循環、遞歸、選擇 D. 順序、選擇、循環
(32) 數據的存儲結構是指(B) 註:P13,要牢記
A. 數據所佔的存儲空間量 B. 數據的邏輯結構在計算機中的表示
C. 數據在計算機中的順序存儲方式 D. 存儲在外存中的數據
(33) 設有下列二叉樹:圖見書P46
對此二叉樹中序遍歷的結果為(B)
A. ABCDEF B. DBEAFC C. ABDECF D. DEBFCA
(34) 在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發送(D) 註:P56
A. 調用語句 B. 命令 C. 口令 D. 消息
(35) 檢查軟體產品是否符合需求定義的過程稱為(A) 註:P95
A. 確認測試 B. 集成測試 C. 驗證測試 D. 驗收測試
(36) 下列工具中屬於需求分析常用工具的是(D) 註:P67
A. PAD B. PFD C. N-S D. DFD
(37) 下面不屬於軟體設計原則的是(C) 註:P73
A. 抽象 B. 模塊化 C. 自底向上 D. 信息隱蔽
(38) 索引屬於(B)
A. 模式 B. 內模式 C. 外模式 D. 概念模式
(39) 在關系資料庫中,用來表示實體之間聯系的是(D)
A. 樹結構 B. 網結構 C. 線性表 D. 二維表
(40) 將E-R圖轉換到關系模式時,實體與聯系都可以表示成(B)
A. 屬性 B. 關系 C. 鍵 D. 域
(41) 在下列選項中,哪個不是一個演算法一般應該具有的基本特徵(C)
A. 確定性 B. 可行性 C.無窮性D. 擁有足夠的情報
(42) 希爾排序法屬於哪一種類型的排序法(B)
A.交換類排序法 B.插入類排序法 C.選擇類排序法 D.建堆排序法
(43) 在深度為5的滿二叉樹中,葉子結點的個數為(C)
A. 32 B. 31 C. 16 D. 15
(44) 對長度為N的線性表進行順序查找,在最壞情況下所需要的比較次數為(B) 註:要牢記
A. N+1 B. N C. (N+1)/2 D. N/2
(45) 信息隱蔽的概念與下述哪一種概念直接相關(B) 註:P74
A.軟體結構定義 B. 模塊獨立性 C. 模塊類型劃分 D. 模擬耦合度
(46) 面向對象的設計方法與傳統的的面向過程的方法有本質不同,它的基本原理是(C)
A. 模擬現實世界中不同事物之間的聯系 B. 強調模擬現實世界中的演算法而不強調概念 C. 使用現實世界的概念抽象地思考問題從而自然地解決問題 D. 鼓勵開發者在軟體開發的絕大部分中都用實際領域的概念去思考
(47) 在結構化方法中,軟體功能分解屬於下列軟體開發中的階段是(C) 註:總體設計也就是概要設計
A. 詳細設計 B. 需求分析 C. 總體設計 D. 編程調試
(48) 軟體調試的目的是(B) 註:與軟體測試要對比著復習
A.發現錯誤 B.改正錯誤 C.改善軟體的性能 D.挖掘軟體的潛能
(49) 按條件f對關系R進行選擇,其關系代數表達式為(C)
A. R|X|R B. R|X|Rf C. бf(R) D. ∏f(R)
(50) 資料庫概念設計的過程中,視圖設計一般有三種設計次序,以下各項中不對的是(D) 註:P127,要牢記
A. 自頂向下 B. 由底向上 C. 由內向外 D. 由整體到局部
(51) 在計算機中,演算法是指(C)
A. 查詢方法 B. 加工方法
C. 解題方案的准確而完整的描述 D. 排序方法
(52) 棧和隊列的共同點是(C) 註:這一共同點和線性表不一樣
A. 都是先進後出 B. 都是先進先出 C. 只允許在端點處插入和刪除元素 D. 沒有共同點
(53) 已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是(A) 註:P38,前提要掌握三種遍歷的方法
A. cedba B. acbed C. decab D. deabc
(54) 在下列幾種排序方法中,要求內存量最大的是(D) 註:要牢記,書中沒有提到。
A. 插入排序 B. 選擇排序 C. 快速排序 D. 歸並排序
(55) 在設計程序時,應採納的原則之一是(A) 註:和設計風格有關
A. 程序結構應有助於讀者理解 B. 不限制goto語句的使用
C. 減少或取消註解行 D. 程序越短越好
(56) 下列不屬於軟體調試技術的是(B) 註:P98
A. 強行排錯法 B. 集成測試法 C. 回溯法 D. 原因排除法
(57)下列敘述中,不屬於軟體需求規格說明書的作用的是(D)註:P71
A. 便於用戶、開發人員進行理解和交流 B. 反映出用戶問題的結構,可以作為軟體開發工作的基礎和依據 C. 作為確認測試和驗收的依據 D. 便於開發人員進行需求分析
(58) 在數據流圖(DFD)中,帶有名字的箭頭表示(C)
A. 控製程序的執行順序 B. 模塊之間的調用關系 C. 數據的流向 D. 程序的組成成分
(59) SQL語言又稱為(C)
A. 結構化定義語言 B. 結構化控制語言
C. 結構化查詢語言 D. 結構化操縱語言
(60) 視圖設計一般有3種設計次序,下列不屬於視圖設計的是(B)
A. 自頂向下 B. 由外向內 C. 由內向外 D. 自底向上
(61) 數據結構中,與所使用的計算機無關的是數據的(C)
A. 存儲結構 B. 物理結構 C. 邏輯結構 D. 物理和存儲結構
(62) 棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是(D)
A. ABCED B. DBCEA C. CDABE D. DCBEA
(63) 線性表的順序存儲結構和線性表的鏈式存儲結構分別是(B)
A. 順序存取的存儲結構、順序存取的存儲結構 B. 隨機存取的存儲結構、順序存取的存儲結構 C. 隨機存取的存儲結構、隨機存取的存儲結構 D. 任意存取的存儲結構、任意存取的存儲結構
(64) 在單鏈表中,增加頭結點的目的是(A)
A. 方便運算的實現 B. 使單鏈表至少有一個結點 C. 標識表結點中首結點的位置 D. 說明單鏈表是線性表的鏈式存儲實現
(65) 軟體設計包括軟體的結構、數據介面和過程設計,其中軟體的過程設計是指(B) 註:P73
A. 模塊間的關系 B. 系統結構部件轉換成軟體的過程描述 C. 軟體層次結構 D. 軟體開發過程
(66) 為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替傳統的程序流程圖,通常也把這種圖稱為(B) 註:P82
A. PAD圖 B. N-S圖 C. 結構圖 D. 數據流圖
(67) 數據處理的最小單位是(C) 註:數據項不可再分割
A. 數據 B. 數據元素 C. 數據項 D. 數據結構
(68) 下列有關資料庫的描述,正確的是(C) 註:P102
A. 資料庫是一個DBF文件 B. 資料庫是一個關系 C. 資料庫是一個結構化的數據集合 D. 資料庫是一組文件
(69) 單個用戶使用的數據視圖的描述稱為(A) 註:P108
A. 外模式 B. 概念模式 C. 內模式 D. 存儲模式
(70) 需求分析階段的任務是確定(D)
A. 軟體開發方法 B. 軟體開發工具 C. 軟體開發費用 D. 軟體系統功能
(71) 演算法分析的目的是(D) 註:書中沒有總結,但要牢記
A. 找出數據結構的合理性 B. 找出演算法中輸入和輸出之間的關系 C. 分析演算法的易懂性和可靠性 D. 分析演算法的效率以求改進
(72)鏈表不具有的特點是(B)
A.不必事先估計存儲空間 B.可隨機訪問任一元素
C.插入刪除不需要移動元素 D.所需空間與線性表長度成正比
(73) 已知數據表A中每個元素距其最終位置不遠,為節省時間,應採用的演算法是(B)
A. 堆排序 B. 直接插入排序 C. 快速排序 D. 直接選擇排序
(74) 用鏈表表示線性表的優點是(A) 註:因為不需要移動元素
A. 便於插入和刪除操作 B. 數據元素的物理順序與邏輯順序相同 C. 花費的存儲空間較順序存儲少 D. 便於隨機存取
(75) 下列不屬於結構化分析的常用工具的是(D) 註:P67
A. 數據流圖 B. 數據字典 C. 判定樹 D. PAD圖
(76) 軟體開發的結構化生命周期方法將軟體生命周期劃分成(A)
A. 定義、開發、運行維護 B. 設計階段、編程階段、測試階段 C. 總體設計、詳細設計、編程調試 D. 需求分析、功能定義、系統設計
(77) 在軟體工程中,白箱測試法可用於測試程序的內部結構。此方法將程序看做是(C) 註:P87
A. 循環的集合 B. 地址的集合 C. 路徑的集合 D. 目標的集合
(78) 在數據管理技術發展過程中,文件系統與資料庫系統的主要區別是資料庫系統具有(D) 註:數據模型採用關系模型(二維表)
A. 數據無冗餘 B. 數據可共享
C. 專門的數據管理軟體 D. 特定的數據模型
(79) 分布式資料庫系統不具有的特點是(B)
A. 分布式 B. 數據冗餘
C. 數據分布性和邏輯整體性 D. 位置透明性和復制透明性
(80) 下列說法中,不屬於數據模型所描述的內容的是(C) 註:P110
A. 數據結構 B. 數據操作 C. 數據查詢 D. 數據約束
(81)根據數據結構中各數據元素之間前後件關系的復雜程度,一般將數據結構分成(C)
A.動態結構和靜態結構 B.緊湊結構和非緊湊結構
C.線性結構和非線性結構 D.內部結構和外部結構
(82)下列敘述中,錯誤的是(B)
A.數據的存儲結構與數據處理的效率密切相關 B.數據的存儲結構與數據處理的效率無關 C.數據的存儲結構在計算機中所佔的空間不一定是連續的 D.一種數據的邏輯結構可以有多種存儲結構
(83)線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是(D)
A.每個元素都有一個直接前件和直接後件 B.線性表中至少要有一個元素 C.表中諸元素的排列順序必須是由小到大或由大到
D.除第一個元素和最後一個元素外,其餘每個元素都有一個且只有一個直接前件和直接後件
(84)線性表若採用鏈式存儲結構時,要求內存中可用存儲單元的地址(D)
A.必須是連續的 B.部分地址必須是連續的
C.一定是不連續的 D.連續不連續都可以
(85)棧通常採用的兩種存儲結構是(A)
A.順序存儲結構和鏈式存儲結構 B.散列方式和索引方式
C.鏈表存儲結構和數組 D.線性存儲結構和非線性存儲結構
(86)下列數據結構中,按先進後出原則組織數據的是(B)
A.線性鏈表 B.棧 C.循環鏈表 D.順序表
(87)樹是結點的集合,它的根結點數目是(C)
A.有且只有1 B.1或多於1 C.0或1 D.至少2
(88)具有3個結點的二叉樹有(D)
A.2種形態 B.4種形態 C.7種形態 D. 5種形態
(89)設一棵二叉樹中有3個葉子結點,有8個度為1的結點,則該二叉樹中總的結點數為(B)
A. 12 B. 13 C.14 D. 15
(90)在結構化程序設計思想提出之前,在程序設計中曾強調程序的效率,現在,與程序的效率相比,人們更重視程序的(C)
A.安全性 B.一致性 C.可理解性 D.合理性
(91)為了提高測試的效率,應該 (D) 註:P85
A.隨機選取測試數據B.取一切可能的輸入數據作為測試數據C.在完成編碼以後制定軟體的測試計劃 D.集中對付那些錯誤群集的程序
(92)軟體生命周期中所花費用最多的階段是(D)
A.詳細設計 B.軟體編碼 C.軟體測試 D.軟體維護
二、填空題
(1) 演算法的復雜度主要包括______復雜度和空間復雜度。 答:時間
(2) 數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的______。答:存儲結構#物理結構
(3) 若按功能劃分,軟體測試的方法通常分為白盒測試方法和______測試方法。答:黑盒
(4) 如果一個工人可管理多個設施,而一個設施只被一個工人管理,則實體"工人"與實體"設備"之間存在______聯系。
答:一對多#1:N#1:n
(5) 關系資料庫管理系統能實現的專門關系運算包括選擇、連接和______。 答:投影
(6) 在先左後右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、______遍歷和後序遍歷。答:中序
(7) 結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。 答:模塊化
(8) 軟體的調試方法主要有:強行排錯法、______和原因排除法。答:回溯法
(9) 資料庫系統的三級模式分別為______模式、內部級模式與外部級模式。答:概念#概念級
(10) 數據字典是各類數據描述的集合,它通常包括5個部分,即數據項、數據結構、數據流、______和處理過程。答:數據存儲
(11) 設一棵完全二叉樹共有500個結點,則在該二叉樹中有______個葉子結點。答:250
(12) 在最壞情況下,冒泡排序的時間復雜度為______。 答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2)
(13) 面向對象的程序設計方法中涉及的對象是系統中用來描述客觀事物的一個______。答:實體
(14) 軟體的需求分析階段的工作,可以概括為四個方面:______、需求分析、編寫需求規格說明書和需求評審。 答:需求獲取
(15) ______是資料庫應用的核心。 答:資料庫設計
(16) 數據結構包括數據的______結構和數據的存儲結構。
答:邏輯
(17) 軟體工程研究的內容主要包括:______技術和軟體工程管理。答:軟體開發 註:P64
(18) 與結構化需求分析方法相對應的是______方法。
答:結構化設計
(19) 關系模型的完整性規則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。答:參照完整性
(20) 數據模型按不同的應用層次分為三種類型,它們是______數據模型、邏輯數據模型和物理數據模型。答:概念 註:P110
(21) 棧的基本運算有三種:入棧、退棧和______。
答:讀棧頂元素#讀棧頂的元素#讀出棧頂元素
(22) 在面向對象方法中,信息隱蔽是通過對象的______性來實現的。答:封裝
(23) 數據流的類型有______和事務型。 答:變換型 註:P77
(24) 資料庫系統中實現各種數據管理功能的核心軟體稱為______。答:資料庫管理系統#DBMS 註:要牢記,重要
(25) 關系模型的數據操縱即是建立在關繫上的數據操縱,一般有______、增加、刪除和修改四種操作。答:查詢 註:要牢記
(26) 實現演算法所需的存儲單元多少和演算法的工作量大小分別稱為演算法的 ______。 答:空間復雜度和時間復雜度
(27) 數據結構包括數據的邏輯結構、數據的 ______以及對數據的操作運算。答:存儲結構 註:P7
(28) 一個類可以從直接或間接的祖先中繼承所有屬性和方法。採用這個方法提高了軟體的______。答:可重用性
(29) 面向對象的模型中,最基本的概念是對象和 ______。 答:類
(30) 軟體維護活動包括以下幾類:改正性維護、適應性維護、______維護和預防性維護。答:完善性 註:要牢記,書中沒有提到
(31) 演算法的基本特徵是可行性、確定性、______和擁有足夠的情報。答:有窮性
(32) 順序存儲方法是把邏輯上相鄰的結點存儲在物理位置______的存儲單元中。答:相鄰
(33) Jackson結構化程序設計方法是英國的M.Jackson提出的,它是一種面向______的設計方法。答:數據結構 註:P67
(34) 資料庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
答:概念設計階段#資料庫概念設計階段
(35) 資料庫保護分為:安全性控制 、______、並發性控制和數據的恢復。答:完整性控制 註:要牢記
(36) 測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發現錯誤的位置並改正錯誤。答:調試
(37) 在最壞情況下,堆排序需要比較的次數為______。
答:O(nlog2n)
(38) 若串s="Program",則其子串的數目是______。答:29
(39) 一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯系屬於______的聯系。
答:1對多#1:N
(40) 資料庫管理系統常見的數據模型有層次模型、網狀模型和______三種。答:關系模型
(41)數據的邏輯結構有線性結構和_______兩大類。 答非線性結構
(42)數據結構分為邏輯結構與存儲結構,線性鏈表屬於_______。答:存儲結構
(43)數據的基本單位是_______。答:元素
(44)長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數為______。
答:n/2
(45)當循環隊列非空且隊尾指針等於隊頭指針時,說明循環隊列已滿,不能進行入隊運算。這種情況稱為______。 答:上溢
(46)在面向對象方法中,類之間共享屬性和操作的機制稱為_______。答:繼承