第一章 數據結構與算法
一.選擇題
1.算法的時(shí)間復雜度是指( )
A. 執行算法程序所需要的時(shí)間
B. 算法程序的長(cháng)度
C. 算法執行過(guò)程中所需要的基本運算次數
D. 算法程序中的指令條數
2.算法的空間復雜度是指( )
A. 算法程序的長(cháng)度
B. 算法程序中的指令條數
C. 算法程序所占的存儲空間
D. 算法執行過(guò)程中所需要的存儲空間
3.下列敘述中正確的是( )
A. 線(xiàn)性表是線(xiàn)性結構 B. 棧與隊列是非線(xiàn)性結構
C. 線(xiàn)性鏈表是非線(xiàn)性結構 D. 二叉樹(shù)是線(xiàn)性結構
4.數據的存儲結構是指( )
A. 數據所占的存儲空間量
B. 數據的邏輯結構在計算機中的表示
C. 數據在計算機中的順序存儲方式
D. 存儲在外存中的數據
5.下列關(guān)于隊列的敘述中正確的是( )
A. 在隊列中只能插入數據 B. 在隊列中只能刪除數據
C. 隊列是先進(jìn)先出的線(xiàn)性表 D. 隊列是先進(jìn)后出的線(xiàn)性表
6.下列關(guān)于棧的敘述中正確的是( )
A. 在棧中只能插入數據 B. 在棧中只能刪除數據
C. 棧是先進(jìn)先出的線(xiàn)性表 D. 棧是先進(jìn)后出的線(xiàn)性表
8.在深度為5的滿(mǎn)二叉樹(shù)中,葉子結點(diǎn)的個(gè)數為( )
A. 32 B. 31 C. 16 D. 15
9.對長(cháng)度為N的線(xiàn)性表進(jìn)行順序查找,在最壞情況下所需要的比較次數為( )
A. N+1 B. N C .(N+1)/2 D. N/2
10.設樹(shù)T的度為4,其中度為1,2,3,4的結點(diǎn)個(gè)數分別為4,2,1,1 .則T的葉子結點(diǎn)數為
A. 8 B. 7 C . 6 D. 5
二.填空題
1. 對長(cháng)度為n的有序線(xiàn)性表中進(jìn)行二分查找,需要的比較次數為( )
2. 設一棵完全二叉樹(shù)共有700個(gè)結點(diǎn),則在該二叉樹(shù)中有( )個(gè)葉子結點(diǎn)
3. 設一棵二叉樹(shù)的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則后序遍歷結果為( )
4. 在最壞情況下,冒泡排序的時(shí)間復雜度為( )
5. 在一個(gè)容量為15的循環(huán)隊列中,若頭指針front=6,尾指針rear=9,則該循環(huán)隊列中共有( )個(gè)元素
第一章參考答案
一.選擇題
1.C 2. D 3. A 4. B 5. C 6. D 7. B 8. B 9. B 10. A
二. 填空題
1) log2n 2) 350 3) DEBFCA 4) N(N-1)/2 5) 3
第二章 程序設計基礎
一. 選擇題
1.結構化程序設計主要強調的是( )
A. 程序的規模 B. 程序的易讀性
C. 程序的執行效率 D. 程序的可移植性
2.對建立良好的程序設計風(fēng)格,下面描述正確的是( )
A.程序應簡(jiǎn)單、清晰、可讀性好 B.符號名的命名只要符合語(yǔ)法
C. 充分考慮程序的執行效率 D. 程序的注釋可有可無(wú)
3.在面向對象方法中,一個(gè)對象請求另一對象為其服務(wù)的方式是通過(guò)發(fā)送( )
A. 調用語(yǔ)句 B. 命令 C. 口令 D. 消息
4.信息隱蔽的概念與下述哪一種概念直接相關(guān)?( )
A. 軟件結構定義 B. 模塊獨立性
C. 模塊類(lèi)型劃分 D. 模塊耦合度
5.下面對對象概念描述錯誤的是( )
A. 任何對象都必須有繼承性 B. 對象是屬性和方法的封裝體C. 對象間的通訊靠消息傳遞 D. 操作是對象的動(dòng)態(tài)屬性
二.填空題
1.結構化程序設計的三種基本邏輯結構為順序、選擇和( )
2.源程序文檔化要求程序應加注釋。注釋一般分為序言性注釋和( )
3.在面向對象方法中,信息隱蔽是通過(guò)對象的( )性來(lái)實(shí)現的
4.類(lèi)是一個(gè)支持集成的抽象數據類(lèi)型,而對象是類(lèi)的( )
5.在面向對象方法中,類(lèi)之間共享屬性和操作的機制稱(chēng)為( )
第二章參考答案
一.選擇題
1.B 2. A 3. D 4. B 5. A
二.填空題
1) 重復(或循環(huán)) 2) 功能性 3) 封裝 4) 實(shí)例 5) 繼承 轉貼
第三章 軟件工程基礎
一. 選擇題
1.在軟件生命令周期中,能準確地確定軟件系統必須做什么和必須具備哪些功能的階段是( )
A.概要設計 B.詳細設計 C.可行性研究 D.需求分析
2.下面不屬于軟件工程的3個(gè)要素的是( )
A.工具 B.過(guò)程 C.方法 D環(huán)境
3.檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱(chēng)為( )
A.確認測試 B.集成測試 C.驗證測試 D.驗收測試
4.數據流圖用于抽象描述一個(gè)軟件的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數據流圖合法圖符的是( ) A.控制流 B.加工 C.數據存儲 D.源和潭
5.下面不屬于軟件設計原則的是
A.抽象 B.模塊化 C.自底向上 D.信息隱蔽
6.程序流程圖(PFD)中的箭頭代表的是( )
A.數據流 B.控制流 C.調用關(guān)系 D.組成關(guān)系
7.下列工具中為需求分析的常用工具的是( )
A. PAD B. PFD C. N-S D. DFD
8.在結構化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是( ) A.詳細設計 B.需求分析 C.總體設計 D.編程調試
9.軟件調試的目的是( )
A. 發(fā)現錯誤 B.改正錯誤 C.改善軟件的性能 D.挖掘軟件的潛能
10.軟件需求分析階段的工作,可以分為四個(gè)方面:需求獲取,需求分析,編寫(xiě)需求規格說(shuō)明書(shū),以及( )
A.階段性報告 B.需求評審 C.總結 D.都不正確
二.填空題
1.軟件是程序、數據和( )的集合.
2.Jackson方法是一種面向( )的結構化方法
3.軟件工程研究的內容主要包括( )技術(shù)和軟件工程管理
4.數據流圖的類(lèi)型有( )和事務(wù)型
5.軟件開(kāi)發(fā)環(huán)境是全面支持軟件開(kāi)發(fā)全過(guò)程的( )集合。
第三章參考答案
一.選擇題
1.D 2. D 3. A 4. A 5. C 6. B 7. D 8. C 9. B 10. B
二.填空題
1) 文檔 2) 數據流 3) 軟件開(kāi)發(fā) 4) 變換型 5) 軟件工具 轉貼
第四章 數據庫設計基礎
一.選擇題
1.在數據管理技術(shù)的發(fā)展過(guò)程中,經(jīng)歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性最高的階段是( )
A.數據庫系統 B.文件系統 C.人工管理 D.數據項管理
2.下述關(guān)于數據庫系統的敘述正確的是( )
A.數據庫系統減少了數據冗余
B.數據庫系統避免了一切冗余
C.數據庫系統中數據的一致性是指數據類(lèi)型一致
D.數據庫系統比文件系統能管理更多的數據
3.數據庫系統的核心是( )
A. 數據庫 B.數據庫管理系統 C.數據模型 D.軟件工具
4.用樹(shù)形結構來(lái)表示實(shí)體之間聯(lián)系的模型稱(chēng)為( )
A. 關(guān)系模型 B.層次模型 C.網(wǎng)狀模型 D.數據模型
5.關(guān)系表中的每一橫行稱(chēng)為一個(gè)( )
A. 元組 B.字段 C.屬性 D.碼
6.按條件f對關(guān)系R進(jìn)行選擇,其關(guān)系代數表達式是( )
A. R|×|R B. R|×|R C. σf(R) D. πf(R)
7.關(guān)系數據管理系統能實(shí)現的專(zhuān)門(mén)關(guān)系運包括( )
A.排序、索引、統計 B.選擇、投影、連接
C.關(guān)聯(lián)、更新、排序 D.顯示、打印、制表
8.在關(guān)系數據庫中,用來(lái)表示實(shí)體之間聯(lián)系的是( )
A.樹(shù)結構 B.網(wǎng)結構 C.線(xiàn)性表 D.二維表
9.數據庫設計包括兩個(gè)方面的設計內容,它們是( )
A.概念設計和邏輯設計 B.模式設計和內模式設計
C.內模式設計和物理設計 D.結構特性設計和行為特性設計
10 將E-R圖轉換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成( )
A.屬性 B.關(guān)系 C.鍵 D.域
二. 填空題
1.一個(gè)項目具有一個(gè)項目主管,一個(gè)項目主管可管理多個(gè)項目,則實(shí)體”項目主管”與實(shí)體”項目”的聯(lián)系屬于( )的聯(lián)系.
2.數據獨立性分為邏輯獨立性和物理獨立性.當數據的存儲結構改變時(shí),其邏輯結構可以不變。因此,基于邏輯結構的應用程序不必修改,稱(chēng)為( )
3.數據庫系統中實(shí)現各種數據管理功能的核心軟件稱(chēng)為( )
4.關(guān)系模型的完整性規則是對關(guān)系的某種約束條件,包括實(shí)體完整性、( )和自定義完整性.
5.在關(guān)系模型中,把數據看成一個(gè)二維表,每一個(gè)二維表稱(chēng)為一個(gè)( )轉貼于
第四章參考答案
一.選擇題
1.A 2. A 3. B 4. B 5. A 6. C 7. B 8. D 9. A 10. B
三. 填空題
1) 一對多(或1:N) 2) 邏輯獨立性 3) 數據庫管理系統 4) 參照完整性 5) 關(guān)系 轉貼于
一、選擇題
(1)下列關(guān)于棧的敘述正確的是
A)棧是非線(xiàn)性結構 B)棧是一種樹(shù)狀結構 ?。牐?span lang="EN-US">C)棧具有先進(jìn)先出的特征 D)棧具有后進(jìn)先出的特征
(2)結構化程序設計所規定的三種基本控制結構是
A)輸入、處理、輸出 B)樹(shù)形、網(wǎng)形、環(huán)形 C)順序、選擇、循環(huán) D)主程序、子程序、函數
(3)結構化程序設計的一種基本方法是A)篩選法 B)遞歸法 C)歸納法 D)逐步求精法
(4)如果對一個(gè)關(guān)系實(shí)施了一種關(guān)系運算后得到了一個(gè)新的關(guān)系,而且新的關(guān)系中屬性個(gè)數少于原來(lái)關(guān)系中屬性個(gè)數,這說(shuō)明所實(shí)施的運算關(guān)系是:A)選擇 B)投影 C)連接 D)并
二、填空題
1.對于輸入為N個(gè)數進(jìn)行快速排序算法的平均時(shí)間復雜度是( ?。?span lang="EN-US">
2.在面向對象方法學(xué)中,直接反映了用戶(hù)對目標系統的要求的模型是( ?。?span lang="EN-US">
3.軟件測試方法中,黑盒測試個(gè)白盒測試法是常用的方法,其中黑盒測試法主要是用于測試( ?。?/font>
4.關(guān)系型數據庫管理系統中存儲與管理數據的基本形式是( ?。?span lang="EN-US">
C語(yǔ)言程序設計
一、選擇題
(1)以下程序的輸入結果是
main( )
{ int i=010,j=10,k=x10;
printf("%d,%d,%d ",i,j,k);
}
A)8,10,16 B)8,10,10 C)10,10,10 D)10,10,16
(2)指針s所指字符串的長(cháng)度
char *s=" "Name Address ";
A)說(shuō)法不合法 B)19 C)18 D)15
(3)C語(yǔ)言中最簡(jiǎn)單的數據類(lèi)型包括
A)整型、實(shí)型、邏輯型 B)整型、實(shí)型、字符型
C)整型、字符型、邏輯型 D)整型、實(shí)型、邏輯型、字符型
(4)為表示關(guān)系x大于等于y大于等于z,應使用C語(yǔ)言表達式
A)(x>=Y)&&(Y>=z) B)(x>=Y)AND(y>=z) C)(x>=Y>=z) D)(x>=Y)&(Y>=z)
(5)下列對C語(yǔ)言字符數組的描述中錯誤的是
A)字符數組可以存放字符串 B)字符數組中的字符串可以整體輸入、輸出
C)可以在賦值語(yǔ)句中通過(guò)賦值運算符“=”對字符數組整體賦值 D)不可以用關(guān)系運算符對字符數組中的字符串進(jìn)行比較
(6)以下說(shuō)法中正確的是
A)C語(yǔ)言程序總是從第一個(gè)定義的函數開(kāi)始執行 B)在C語(yǔ)言程序中,要調用的函數必須在main()函數中定義
C)C語(yǔ)言程序總是從main()函數開(kāi)始執行 D)C語(yǔ)言程序中的main()函數必須放在程序的開(kāi)始部分
(7)以下程序段的輸出結果是
int x=3;
do
{ printf("%3d",x-=2); }
while(!(- -x));
A)1 B)30 C)1 -2 D)死循環(huán)
(8)設有如下定義:
char *aa[2]={"abcd","ABCD"};
則以下說(shuō)法中正確的是
A)aa數組元素的值分別是"abcd"和"ABCD"
B)aa是指針變量,它指向含有兩個(gè)數組元素的字符型一維數組
C)aa數組的兩個(gè)元素分別存放的是含有4個(gè)字符的一維字符數組的首地址
D)aa數組的兩個(gè)元素中各自存放了字符'a'和'A'的地址
(9)設有以下定義:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a, * p=a[0];
則下列能夠正確表示數組元素a[1][2]的表達式是
A)*((* prt + 1)[2]) B)*(*(p+5)) C)(* prt + 1)+2 D)*(*(a+1)+2)
(10)以下程序的輸出結果是
fut( int * *s,int p[2][3])
{ * *s=p[1][1]; }
main( )
{ int a[2][3]={1,3,5,7,9,11},*P;
p=(int * )malloc(sizeof(int));
fut(&p,a);
print("% ",*p);
}
A)1 B)7 C)9 D)11
二、填空題
(1)表示條件:10
(2)下列程序的輸出結果是( )
#include
main( )
{ char b[ ]="ABCDEFG";
char *chp=&b[7];
while(- -chp>&b[0])
putchar(*chp);
putchar(" ");
}
(3)下列程序的輸出結果是( ?。?/font>
int ast( int x,int Y,int * cp,int * dp)
{ * cp=x+y;
* dp=x-y;
}
main( )
{ int a,b,c,d;
a=4;b=3;
ast(a,b,&c,&d);
print("% d % d n",c,d);
}
(4)閱讀程序:
main( )
{ char str1[ ]="how do you do",str2[10];
char *p1=str1,*p2=str2;
scanf("% s",p2);
printf("%s",p2);
printf("%s ",p1);
}
運行上面的程序,輸入字符串 HOW DO YOU DO 則程序的輸出結果是( )
(5)以下程序由終端鍵盤(pán)輸入一個(gè)文件名,然后把從終端鍵盤(pán)輸入的字符依次存放到該文件中,用#作為結束輸入的標志。請填空。
#include
main( )
{ FILE * fp;
char ch,fname [10];
printf("Input the name of file ");
gets(fname);
gets(fname);
if((fp=[5])= =NULL)
{ printf("Cannot open "); exit(0); }
printf("Enter data ");
while((ch=getchar())!='#')
fputc([6],fp);
fclose(fp);
}
三、上機操作題
1.改錯題
下列給定程序中,函數fun的功能是:逐個(gè)比較a、b兩個(gè)字符串對應位置中的字符,把ASCII值大或相等的字符依次存放到c數組中,形成一個(gè)新的字符串。例如:若a中的字符串為:aBCDeFgH,b中的字符串為:ABcd,則c中的字符串應為:aBcdeFgH.請改正程序中的錯誤,使它能得到正確結果,注意:不要改動(dòng)main函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include
#include
void fun (char *p, char *q, char *c)
{ int k=1;
while(*p! = *q)
{ if ( *p!< *q) c[k]= *q;
else c[k]= *p;
if(*p) p++;
if(*q) q++;
k++;
}
}
main( )
{ char a[10]="aBCDeFfH",b[10]="ABcd",c[80]={" 0"};
fun (a,b,c);
printf("The string a:");puts (a);
ptintf("The string b:");puts (b);
printf("The result :");puts(c);
2.編程題
請編寫(xiě)函數fun,它的功能是:求出1到1000之內能被7或11整除、但不能同時(shí)被7和11整除的所有整數并將它們放在a所指的數組中,通過(guò)n返回這些數的個(gè)數。注意:部分源程序給出如下。請勿改動(dòng)主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
# include < conio.h>
# include < stdio.h>
void fun ( int *a, int *n)
{
}
main( )
{ int aa[1000],n,k;
clrscr( );
fun (aa,&n);
for (k=0;k if((k+1)%10= = 0) printf (" ");
else printf("%5d",aa[k]);
}
二級(C語(yǔ)言程序設計)樣題參考答案
一、選擇題
(1)D (2)C (3)D (4)B
二、填空題
(1)[1]O(Nlog2 N)
(2)[2]功能模型
(3)[3]軟件外部功能
(4)[4]二維表
C語(yǔ)言程序設計
一、選擇題
(1)A (2)D (3)B (4)A (5)C (6)C (7)C (8)D (9)D (10)C
二、填空題
(1)[1] (x>10&&x<100)//x<0
或(10或x<0//(x>10&&x<100)
或0>x//(10(并且括號有無(wú)都可以)
(2)[2]GFEDCB
(3)[3] 7 1
(4)[4]HOW how do you do (說(shuō)明:HOW和how之間有無(wú)空格均可)
(5)[5]fopen(fname,"w")
(說(shuō)明:"w"內以w開(kāi)頭的字符串均可)
[6] ch
· (1)已知一棵二叉樹(shù)前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹(shù)的后序遍歷為
A)GEDHFBCA B)DGEBHFCA
C)ABCDEFGH D)ACBFEDHG 正確答案: B
(2)樹(shù)是結點(diǎn)的集合,它的根結點(diǎn)數目是
A)有且只有1 B)1或多于1
C)0或1 D)至少2 正確答案: A
(3)如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是
A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2
D)任意順序 正確答案: B
(4)在設計程序時(shí),應采納的原則之一是 正確答案: D
A)不限制goto語(yǔ)句的使用 B)減少或取消注解行
C)程序越短越好 D)程序結構應有助于讀者理解
(5)程序設計語(yǔ)言的基本成分是數據成分、運算成分、控制成分和
A)對象成分 B)變量成分 C)語(yǔ)句成分
D)傳輸成分
正確答案: D
· 一 、選擇題
(1)下列數據結構中,按先進(jìn)后出原則組織數據的是
A)線(xiàn)性鏈表 B)棧 C)循環(huán)鏈表
D)順序表 正確答案: B
(2)具有3個(gè)結點(diǎn)的二叉樹(shù)有
A)2種形態(tài) B)4種形態(tài)
C)7種形態(tài) D)5種形態(tài)
正確答案: D
(3)設有下列二叉樹(shù):
對此二叉樹(shù)前序遍歷的結果為
A)ZBTYCPXA B)ATBZXCYP
C)ZBTACYXP D)ATBZXCPY
正確答案: B
(4)結構化程序設計主要強調的是 正確答案: D
A)程序的規模 B)程序的效率
C)程序設計語(yǔ)言的先進(jìn)性 D)程序易讀性
(5)程序的3種基本控制結構是
A)過(guò)程、子過(guò)程和分程序
B)順序、選擇和重復
C)遞歸、堆棧和隊列
D)調用、返回和轉移
正確答案: B
(6)下列敘述中,不屬于測試的特征的是
A)測試的挑剔性 B)完全測試的不可能性
C)測試的可靠性 D)測試的經(jīng)濟性
正確答案: C
(7)需求分析中開(kāi)發(fā)人員要從用戶(hù)那里了解
A)軟件做什么 B)用戶(hù)使用界面
C)輸入的信息 D)軟件的規模
正確答案: A
(8)下列關(guān)系模型中,能使經(jīng)運算后得到的新關(guān)系中屬性個(gè)數多于原來(lái)關(guān)系中屬性個(gè)數的是
A)選擇 B)連接 C)投影 D)并
正確答案: B
(9)下列敘述中,正確的是
A)用E-R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系
B)用E-R圖只能表示實(shí)體集之間一對一的聯(lián)系
C)用E-R圖只能表示實(shí)體集之間一對多的聯(lián)系
D)用E-R圖表示的概念數據模型只能轉換為關(guān)系數據模型
正確答案: C
(10)"年齡在18~25之間"這種約束是屬于數據庫當中的
A)原子性措施 B)一致性措施
C)完整性措施 D)安全性措施
正確答案: C
· (11)以下說(shuō)法錯誤的是
A)高級語(yǔ)言都是用接近人們習慣的自然語(yǔ)言和數學(xué)語(yǔ)言作為語(yǔ)言的表達形式
B)計算機只能處理由0和1的代碼構成的二進(jìn)制指令或數據
C)C語(yǔ)言源程序經(jīng)過(guò)C語(yǔ)言編譯程序編譯之后生成一個(gè)后綴為.EXE的二進(jìn)制文件
D)每一種高級語(yǔ)言都有它對應的編譯程序
正確答案: C
(12)算法是指為解決某個(gè)特定問(wèn)題而采取的確定且有限的步驟,下面不屬于算法的五個(gè)特性的是
A)有零個(gè)輸入或多個(gè)輸入
B)高效性 C)有窮性 D)確定性
正確答案: B
(13)已知int a=6; 則執行a+=a-=a*a;語(yǔ)句后,a的值為
A)36 B)0 C)-24 D)-60
正確答案: D
(14)下面各選項中,均是C語(yǔ)言標識符的選項組是
A)forchinato B)long_123short56_do
C)voidunion_342 D)text.txt _023_3ew
正確答案: B
(15)下列表達式中,結果為5的是
A)6*5%6 B)5*-2+15
C)5+75%10 D)6+-2/3
正確答案: B
(16)下列常量中,為不合法的實(shí)型常量表示的是
A).0032 B)0.0
C)0.3242E8 D).E3
正確答案: D
(17)關(guān)于C語(yǔ)言的主函數描述正確的是
A)C程序可以有多個(gè)main函數
B)C程序必有一個(gè)而且只能有一個(gè)main函數
C)C程序可以沒(méi)有main函數
D)C程序的執行不一定在main函數開(kāi)始執行
正確答案: B
(18)已知int a=1,b=-1;則語(yǔ)句printf("%d\n",(a--,++b));的輸出結果是
A)-1 B)0 C)1 D)語(yǔ)句錯誤
正確答案: B
(19)已知int a,b;double c;則以下語(yǔ)句中錯誤的函數調用是
A)scanf("%d,%x,%lf",&a,&b,&c);
B)scanf("%d,%d,%le",&a,&b,&c);
C)scanf("%o,%x,%o",&a,&b);
D)scanf("%d,%o,%e",&a,&b,&c);
正確答案: D
(20)已知x,y,z均為整型變量,且值均為1,則執行語(yǔ)句++x||++y&&++z;后,表達式x+y的值為 正確答案: C
A)1 B)2 C)3 D)4
(30)閱讀下面程序,則程序執行后的結果為
#include "stdio.h"
main()
{int a=4,b=6,c=7;
double d,fun(int,int,int);
d=fun(a,b,c);
printf("%lf\n",d);}
double fun(int a,int b,int c)
{double s;
s=a%b*c;
return s;}
A)27 B)27.000000
C)28 D)28.000000
正確答案: D
(31)下列不合法的指針變量的定義是
A)int *_k; B)char *_245;
C)int *p; D)double *5_is
正確答案: D
(32)下列關(guān)于指針變量賦空值的說(shuō)法錯誤的是
A)當賦空值的時(shí)候,變量指向地址為0的存儲單元
B)賦值語(yǔ)句可以表達為變量名=′\0′;
C)賦值語(yǔ)句可以表達為變量名=0;
D)一個(gè)指針變量可以被賦空值
正確答案: A
(33)閱讀下面程序,則執行后輸出的結果為
#include "stdio.h"
void fun(int *a,int *b)
{int m;
m=(*a+*b)*(*a+*b);
m+=(*a-*b)*(*a-*b);
printf("%d\n",m);}
main()
{ int a=5,b=6,*x=&a,*y=&b;
fun(x,y);}
A)120 B)121 C)122
D)123 正確答案: C
(34)閱讀下面程序,則輸出結果是
#include "stdio.h"
void fun(int *a,int *b)
{int c=20,d=25;
*a=c/3;
*b=d/5;}
main()
{ int a=3,b=5;
fun(&a,&b);
printf("%d,%d\n",a,b);}
A)6,5 B)5,6 C)20,25 D)3,5
正確答案: A
(35)以下對一維數組c進(jìn)行正確的定義初始化的語(yǔ)句是
A)int c[10]=0; B)int c[10]={0}*10;
C)int c[1]={0,0,0,0,0,0,0};
D)int c[10]={0}; 正確答案: D
(36)以下二維數組c的定義形式是
A)int c[3][] B)float c[3,4]
C)double c[3][4] D)float c(3)(4)
正確答案: C
(37)閱讀下列程序,則執行后輸出的結果是
#include "stdio.h"
int k=1;
main()
{fun(k);
printf("%d\n",k);}
fun(int k)
{ k++;
k=k*6;} 正確答案: A
A)1 B)2 C)6 D)12
(38)已知#define M 2;的宏定義,執行語(yǔ)句k=M*5;后,k的值是
A)10 B)5 C)2 D)以上答案都不對
正確答案: D
(39)已知:int c[3][4];則對數組元素引用正確的是
A)c[1][4] B)c[1.5][0]
C)c[1+0][0] D)以上表達都錯誤
正確答案: C
(40)現有如下程序段
#include "stdio.h"
void fun(int *a,int *b,int *c)
{*c=*a+*b;}
main()
{int a[2]={12,23},c;
fun(a,a+1,&c);
printf("%d\n",c);}
則程序的輸出結果為
A)23 B)12
C)0 D)35
正確答案: D
(41)若有以下語(yǔ)句,則正確的描述是
char a[]="toyou";
char b[]={′t′,′o′,′y′,′o′,′u′};
A)a數組和b數組的長(cháng)度相同
B)a數組長(cháng)度小于b數組長(cháng)度
C)a數組長(cháng)度大于b數組長(cháng)度
D)a數組等價(jià)于b數組
正確答案: C
(42)已知:char a[15],b[15]={"I love china"};則在程序中能將字符串I love china賦給數組a的正確語(yǔ)句是
A)a="I love china"; B)strcpy(b,a);
C)a=b; D)strcpy(a,b); 正確答案: D
(44)閱讀下面程序,則執行后的結果為
#include "stdio.h"
main()
{ char *str="abcdefghijklmnopq";
while(*str++!=′e′);
printf("%c\n",*str);}
A)f B)a C)e
D)q 正確答案: A
(45)現有如下程序段
#include "stdio.h"
int fun(int k,int *m)
{if(k%3)*m=k*k;
else *m=k/3;}
main()
{ int (*p)(int,int *),m;
p=fun;
(*p)(78,&m);
printf("%d\n",m);}
則程序段的輸出結果為
A)24 B)25 C)26
D)27 正確答案: C
(46)閱讀下列程序,則執行后的輸出結果為
#include "stdio.h"
fun(int x)
{if(x/2>0)fun(x/2);
printf("%d",x%2);}
main()
{ fun(20);
putchar(′\n′);}
A)11100 B)10100 C)10101
D)10110 正確答案: B
(47)閱讀如下程序段,則執行后程序的輸出結果是
#include <stdio.h>
main()
{structa{int x; int y;}num[2]={{20,5},{6,7}};
printf("%d\n",num[0].x/num[0].y*num[1].y);}
A)0 B)28 C)20 D)5 正確答案: B
(48)閱讀程序段,則執行后的輸出結果為
#include "stdio.h"
typedef union{ long x[2];
int y[4];
char z[8];} atx;
typedef struct aa{ long x[2];
int y[4];
char z[8]; } stx;
main()
{printf("union=%d,struct aa=%d\n",sizeof(atx),sizeof(stx));}
A)union=8,struct aa=8
B)union=8,struct aa=24
C)union=24,struct aa=8
D)union=24,struct aa=24
正確答案: B
(49)閱讀下列程序段
#include "stdio.h"
typedef struct aa
{ int a;
struct aa *next; } M;
void set(M *k,int i,int *b)
{ int j,d=0;
for(j=1;j<i;j++)
{ k[j-1].next=&k[j];
k[j-1].a=b[d++]; }
k[j].a=b[d]; }
main()
{ M k[5],*p;
int d[5]={23,34,45,56,67};
set(k,5,d);
p=k+1;
printf("%d\n",table); }
則下面的表達式在table處,能使程序執行后,打印輸出數據45的是
A)p->next->a B)++p->a
C)(*p).a++ D)p++->a
正確答案: A
(50)閱讀下面程序,程序實(shí)現的功能是(a123.txt在當前盤(pán)符下已經(jīng)存在)
#include "stdio.h"
void main()
{FILE *fp;
int a[10],*p=a;
fp=fopen("a123.txt","w");
while( strlen(gets(p))>0 )
{ fputs(a,fp);
fputs("\n",fp);}
fclose(fp);}
A)從鍵盤(pán)輸入若干行字符,按行號倒序寫(xiě)入文本文件a123.txt中
B)從鍵盤(pán)輸入若干行字符,取前2行寫(xiě)入文本文件a123.txt中
C)從鍵盤(pán)輸入若干行字符,第一行寫(xiě)入文本文件a123.txt中
D)從鍵盤(pán)輸入若干行字符,依次寫(xiě)入文本文件a123.txt中
正確答案: D
二 、填空題
(1)排序是計算機程序設計中的一種重要操作,常見(jiàn)的排序方法有插入排序、 【1】 和選擇排序等。 正確答案: 1.(交換排序)
(2)當循環(huán)隊列非空且隊尾指針等于隊頭指針時(shí),說(shuō)明循環(huán)隊列已滿(mǎn),不能進(jìn)行入隊運算。這種情況稱(chēng)為 【2】 。 正確答案: 1.(上溢)(3) 【3】 是一種信息隱蔽技術(shù),目的在于將對象的使用者和對象的設計者分開(kāi)。 正確答案: 1.(封裝)
(4)為了便于對照檢查,測試用例應由輸入數據和預期的 【4】 兩部分組成。 正確答案: 1.(輸出結果)
(5) 【5】 是從二維表列的方向進(jìn)行的運算。
正確答案: 1.(關(guān)系運算)
(6)定義int a=5,b=20;若執行語(yǔ)句printf("%d\n",++a*--b/5%13);后,輸出的結果為 【6】 。 正確答案: 1.(9)
(7)執行程序時(shí)的輸入為123456789,則程序的運行結果為 【7】 。
#include "stdio.h"
main()
{ int a,b;
scanf("%2d%*2d%1d",&a,&b);
printf("%d\n",a-b);}
正確答案: 1.(7)
(8)閱讀下面程序,則在執行時(shí)候的輸出為 【8】 。
#include "stdio.h"
main()
{int x=1,y=2,z=0;
if(x=2)z=x,x=y,y=z;
printf("%d,%d\n",x,y);}
正確答案: 1.(2,2)
(9)語(yǔ)句printf("%d\n",′H′-′0′+64);的執行結果為 【9】 。
正確答案: 1.(88)
(10)閱讀下面程序,則程序的執行結果為 【10】 。
#include "stdio.h"
main()
{ int a=10;
fun(a);
printf("%d\n",a);}
fun(int x)
{ x=50;}
正確答案: 1.(10)
(11)以下程序的輸出結果是 【11】 。
int fun(int x,int y,int *p,int *q)
{ *p=x*y;
*q=x/y;}
main()
{int a,b,c,d;
a=4;b=3;
fun(a,b,&c,&d);
printf("%d,%d\n",c,d);}
正確答案: 1.(12,1)
(12)下面程序是求出數組arr的兩條對角線(xiàn)上元素之和,請填空。
#include "stdio.h"
main()
{int arr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if( 【12】 )a=a+arr[i][j];
for(i=0;i<3;i++)
for( 【13】 ;j>=0;j--)
if( 【14】 )
b=b+ arr[i][j];
printf("%d,%d\n",a,b);}
正確答案: 1.(i==j ) 2.(j=2) 3.(i+j==2)
(13)下面程序的功能是:對字符串從小到大進(jìn)行排序并輸出,請填空。
#include "string.h"
#include "stdio.h"
sort(char *a[],int n)
{ int i,j;
char *p;
for(j=1;j<=n-1;j++)
for(i=0; 【15】 ;i++)
if( 【16】 >0)
{ p=a[i];
a[i]=a[i+1];
a[i+1]=p;}}
main()
{ int i;
char *book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};
sort( 【17】 );
for(i=0;i<6;i++)
printf("%s\n",book[i]);}
正確答案: 1.(i<n-j) 2.(strcmp(a[i],a[i+1])) 3.(book,6)
(14)下面的函數是完成1~n的累加,完成函數。
a(int k)
{if(k<=0)printf("error\n");
if(k==1) 【18】 ;
else 【19】 ;}
正確答案: 1.(return 1) 2.(return(a(k-1)+k))(15)閱讀下列程序,則程序實(shí)現的功能是 【20】 。
#include "stdio.h"
struct node
{ char data;
struct node *next; } *head;
fun(struct node *q)
{ if(head == NULL)
{q->next=NULL;
head=q;}
else
{ q->next=head;
head=q;}}
main()
{char ch;
struct node *p;
head = NULL;
while((ch=getchar())!=′\n′)
{p=(struct node *)malloc(sizeof(struct node));
p->data=ch;
fun(p); }
p=head;
while(p!=NULL)
{printf("%c",p->data);
p=p->next; }}
正確答案: 1.(從鍵盤(pán)輸入一行字符串,調用函數建立反序的鏈表,然后輸出整個(gè)鏈表)
(1)最簡(jiǎn)單的交換排序方法是
A)快速排序 B)選擇排序
C)堆排序 D)冒泡排序
正確答案: D
(2)棧通常采用的兩種存儲結構是
A)線(xiàn)性存儲結構和鏈表存儲結構
B)散列方式和索引方式
C)鏈表存儲結構和數組
D)線(xiàn)性存儲結構和非線(xiàn)性存儲結構
正確答案: A
(3)線(xiàn)性表的順序存儲結構和線(xiàn)性表的鏈式存儲結構分別是
A)順序存取的存儲結構、順序存取的存儲結構
B)隨機存取的存儲結構、順序存取的存儲結構
C)隨機存取的存儲結構、隨機存取的存儲結構
D)任意存取的存儲結構、任意存取的存儲結構 正確答案: B
(4)完全不考慮程序的內部結構和內部特征,而只是根據程序功能導出測試用例的測試方法是
A)黑箱測試法 B)白箱測試法
C)錯誤推測法 D)安裝測試法
正確答案: A
(5)在結構化設計方法中,生成的結構圖(SC)中,帶有箭頭的連線(xiàn)表示
A)模塊之間的調用關(guān)系
B)程序的組成成分 C)控制程序的執行順序 D)數據的流向
正確答案: A
(6)下列選項中,不屬于模塊間耦合的是
A)數據耦合 B)同構耦合
C)異構耦合 D)公用耦合
正確答案: C
(7)一個(gè)關(guān)系中屬性個(gè)數為1時(shí),稱(chēng)此關(guān)系為
A)對應關(guān)系 B)單一關(guān)系
C)一元關(guān)系 D)二元關(guān)系
正確答案: C
(8)為用戶(hù)與數據庫系統提供接口的語(yǔ)言是
A)高級語(yǔ)言
B)數據描述語(yǔ)言(DDL)
C)數據操縱語(yǔ)言(DML)
D)匯編語(yǔ)言
正確答案: C
(9)相對于數據庫系統,文件系統的主要缺陷有數據關(guān)聯(lián)差、數據不一致性和
A)可重用性差
B)安全性差
C)非持久性
D)冗余性
正確答案: D
(10)需求分析階段的任務(wù)是確定
A)軟件開(kāi)發(fā)方法
B)軟件開(kāi)發(fā)工具
C)軟件開(kāi)發(fā)費用
D)軟件系統功能
正確答案: D
3.社會(huì )主義初級階段基本經(jīng)濟制度的確立,在社會(huì )主義所有制理論上實(shí)現了哪些重大的突破和創(chuàng )新?
答:(1)以公有制為主體.多種所有制經(jīng)濟共同發(fā)展,是我國社會(huì )主義初級階段的一項基本經(jīng)濟制度。社會(huì )主義初級階段基本經(jīng)濟制度的確立,體現了黨在所有制理論上的與時(shí)俱進(jìn)
(2)社會(huì )主義初級階段,確立什么樣的基本經(jīng)濟制度的根本問(wèn)題是如確認識非公有制經(jīng)濟在我國經(jīng)濟中的地位和作用,非公有制經(jīng)濟是我國社會(huì )主義市場(chǎng)經(jīng)濟的重要組成部分。這標志著(zhù)我們黨對社會(huì )主義初級階段基本經(jīng)濟制度的認識提升到了一個(gè)新的高度。
(3)從我國社會(huì )主義初級階段的實(shí)際和生產(chǎn)力發(fā)展水平出發(fā),思考所有制結構問(wèn)題。社會(huì )主義建設實(shí)踐的經(jīng)驗與教訓使我們深刻認識到,判斷一種所有制是否有它存在的合理性,是否具有優(yōu)越性,不能從概念出發(fā),而必須從我國的具體國情出發(fā)。
(4)依據馬克思歷史唯物主義原理。建立怎樣的所有制結構,從根本上說(shuō)要看它是否適應當時(shí)當地生產(chǎn)力發(fā)展的要求,是否符合本國的具體國情,而不能簡(jiǎn)單地以公有化程度的高低作為標準。社會(huì )主義初級階段基本經(jīng)濟制度的提出,表明我們黨在改革開(kāi)放的過(guò)程中,始終堅持馬克思主義的基本理論和方法,堅持從中國的實(shí)際出發(fā)解決問(wèn)題,
4.如何認識公有制的性質(zhì)與實(shí)現形式之間的關(guān)系?
答:(1)公有制經(jīng)濟的性質(zhì)和實(shí)現形式是兩個(gè)不同層次的問(wèn)題。公有制經(jīng)濟的性質(zhì)體現在所有權的歸屬上,堅持公有制的性質(zhì),根本的是堅持國家和集體對生產(chǎn)資料的所有權。所有制作為生產(chǎn)關(guān)系的基礎,有公有制與私有制.社會(huì )主義與資本主義的區別。
(2)所有制的實(shí)現形式是采取怎樣的經(jīng)營(yíng)方式和組織形式問(wèn)題,它不具有“公’’與“私”.“社,,與“資,的區分。實(shí)現形式要解決的是發(fā)展生產(chǎn)力的組織形式和經(jīng)營(yíng)方式問(wèn)題,
(3)同樣的所有制可以采取不同的實(shí)現形式,而不同的所有制可以采取相同的實(shí)現形式
(4)鞏固和發(fā)展公有制經(jīng)濟,努力尋找能夠極大促進(jìn)生產(chǎn)力發(fā)展的公有制實(shí)現形式。公有制的實(shí)現形式可以而且應當多樣化,一切反映社會(huì )化生產(chǎn)規律的經(jīng)營(yíng)方式和組織形式都可以大膽利用。
5.結合現階段個(gè)人收入分配制度和按勞分配的理論,對現實(shí)經(jīng)濟生活中個(gè)人收入出現差距的現象進(jìn)行分析。
答:(1).承認和允許人們在收入方面存在差別,并且在一定時(shí)期內收入差距的擴大,有其客觀(guān)必然性。
主要是:①因為勞動(dòng)者的個(gè)人稟賦和家庭負擔的不同,實(shí)行按勞分配原則必然產(chǎn)生收入和富裕程度的不同。
②實(shí)行多種所有制經(jīng)濟和多種分配方式,擁有不同生產(chǎn)要素的不同社會(huì )成員也必然會(huì )產(chǎn)生收入的差距和富裕程度的不同。
③發(fā)展社會(huì )主義市場(chǎng)經(jīng)濟,在價(jià)值規律和競爭的作用下優(yōu)勝劣汰,使具有不同競爭能力的人在富裕程度上必然出現差距。
④城鄉之間.地區之間.腦力勞動(dòng)與體力勞動(dòng)之間,以及不同經(jīng)濟領(lǐng)域和部門(mén)之間客觀(guān)上存在的差別,也必然引起收入的差別和富裕程度的不同。后三個(gè)方面不僅是產(chǎn)生收入差距的經(jīng)濟條件,而且必然在一定時(shí)期內導致收入差距的擴大。這些造成社會(huì )成員收入和富裕程度產(chǎn)生和擴大差距的因素,在社會(huì )主義初級階段都會(huì )長(cháng)期存在著(zhù)
(2).共同富裕的目標只能是一個(gè)逐步實(shí)現的過(guò)程。從我國生產(chǎn)力發(fā)展的實(shí)際出發(fā),如果不談“先富”.只談“共富”,不僅不可能為實(shí)現“共富”逐步創(chuàng )造物質(zhì)基礎,相反地只能回到平均主義的老路上去,導致共同的貧窮。當然,如果不談“共富”.只談“先富”,就可能導致兩極分化,偏離社會(huì )主義的目標。只有實(shí)行鄧小平提出的這個(gè)“先富”與“共富”大政策,才能逐步創(chuàng )造條件,最終達到共同富裕
(3).要深化分配制度改革注重社會(huì )公平,防止兩極分化。(4).規范收入分配秩序,就是要通過(guò)完善分配政策使社會(huì )主義初級階段不可避免存在的收入差距保持在合法和適度的范圍。所謂合法,就是來(lái)自誠實(shí)勞動(dòng)和守法經(jīng)營(yíng)而產(chǎn)生的收入差距;所謂適度,就是使收入差距保持在合理的范圍之內,不使因收入差距擴大而形成的社會(huì )矛盾發(fā)展到尖銳對立的地步
聯(lián)系客服