一、選擇題(1~10每小題2分,11~50每小題1分,共60分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應位置上,答在試卷上不得分。
。1)算法的時間復雜度是指()。
A)執(zhí)行算法程序所需要的時間
B)算法程序的長度
C)算法執(zhí)行過程中所需要的基本運算次數
D)算法程序中的指令條數
。2)用鏈表表示線性表的優(yōu)點是()。
A)便于隨機存取 B)花費的存儲空間較順序存儲少
C)便于插入和刪除操作 D)數據元素的物理順序與邏輯順序相同
。3)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是()。
A)ABCED B)DCBEA C)DBCEA D)CDABE
(4) 在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。
A)冒泡排序 B)選擇排序 C)快速排序 D)歸并排序
。5)在設計程序時,應采納的原則之一是
A)不限制goto語句的使用 B)減少或取消注解行
C)程序越短越好 D)程序結構應有助于讀者理解
。6)下列不屬于軟件工程的3個要素的是( )。
A)工具 B)過程 C)方法 D)環(huán)境
。7) 在軟件工程中,白箱測試法可用于測試程序的內部結構。此方法將程序看做是()。
A)路徑的集合B)循環(huán)的集合
C)目標的集合D)地址的集合
(8)下列數據模型中,具有堅實理論基礎的是()。
A)層次模型 B)網狀模型 C)關系模型 D)以上3個都是
。9)下列有關數據庫的描述,正確的是()。
A)數據庫是一個DBF文件 B)數據庫是一個關系
C)數據庫是一個結構化的數據集合 D)數據庫是一組文件
10)下列說法中,不屬于數據模型所描述的內容的是()。
A)數據結構 B)數據操作
C)數據查詢 D)數據約束
(11)一個C語言程序是由
A)一個主程序和若干子程序組成
B)函數組成
C)若干過程組成
D)若干子程序組成
。12)下列數據中,不合法的C語言實型數據是
A)0.123 B)123e3 C)2.1e3.5 D)789.0
。13)已知
int t=0;
while (t=1)
{...}
則以下敘述正確的是
A)循環(huán)控制表達式的值為0
B)循環(huán)控制表達式的值為1
C)循環(huán)控制表達式不合法
D)以上說法都不對
。14)有以下定義語句
double a,b;int w; long c;
若各變量已正確賦值,則下列選擇中正確的表達式是
A) a=a+b=b++ B)w%((int)a+b) C)(c+w)%(int)a D)w=a==b
。15)以下程序的輸出結果是
main()
{inti;
for(i=0;i<3;i++)
switch(i){
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
}
}
A) 022111B)021021C)000122D)012
(16)設有以下程序段:
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
則
A)運行程序段后輸出0
B)運行程序段后輸出1
C)程序段中的控制表達式是非法的
D)程序段執(zhí)行無限次
。17)以下正確的說法是
A)定義函數時,形參的類型說明可以放在函數體內
B)return后邊的值不能為表達式
C)如果函數值的類型與返回值類型不一致,以函數值類型為準
D)如果形參與實參類型不一致,以實參類型為準
。18)以下敘述中不正確的是
A)在不同的函數中可以使用相同的名字的變量
B)函數中的形式參數是局部變量
C)在一個函數內定義的變量只在本函數范圍內有效
D)在一個函數內的復合語句中定義的變量在本函數范圍內有效
。19)以下程序的輸出結果是
main()
{inta=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
A) 2 B)3 C)43 D)44
。20)有以下語句,則對a數組元素的引用不正確的是(0≤i≤9)
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A) a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))
{ int p;
p=*p1;
*p1=*p2;
*p2=p;
}
注意交換*p1和*p2的值是如何實現的,如果寫成下面這樣就有問題了!
swap(int *p1,int*p2)
{ int *p;
*p=*p1; /*此語句有問題*/
*p1=*p2;
*p2=*p;
}
*p1就是a,是整型變量。而*p是指針變量p所指向的變量,但p中并無確切地址,用*p可能會造成破壞系統的正常工作狀態(tài)。應該將*p1的值賦給一個整型變量,用整型變量作為過渡變量實現*p1和*p2的交換。
請注意,不能企圖通過改變指針形參的值而使指針實參的值也改變
swap(int *p1,int*p2)
{ int *p;
p=p1;
p1=p2;
p2=p;
}
程序的原意是交換兩個指針的值。但是C語言中實參變量和形參變量之間的數據傳遞是單向的“值傳遞”方式。指針變量做函數參數也要遵循這一規(guī)則。調用函數不能改變實參指針變量的值,但可以改變實參指針變量所指向變量的值……
當然,明白了以上指針變量的調用方式后,本題便可迎刃而解。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |