第 1 部分:選擇題 第 2 部分:程序填空題 第 3 部分:程序修改題 第 4 部分:程序設(shè)計題
一,、選擇題
1.若有以下數(shù)組說明,則i=10;a[a[i]]元素數(shù)值是(C ),。 int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; A,、10 B、9 C,、6 D,、5 先算a[a[i]]內(nèi)層的a[i],由于i=10,因此a[i]即a[10]. a[10]對應(yīng)下面數(shù)組中的元素為9. 因此a[a[i]]即為a[9] a[9]對應(yīng)下面數(shù)組中的元素為6. 因此a[9]即為6 2.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數(shù)組a的第一維的大小為: ( B ) A,、2 B,、3 C、4 D,、無確定值 5 7 D,、3 6 9 二維數(shù)組的一維大小,即指二維數(shù)組的行數(shù),,在本題中,,按行對二維數(shù)組賦值,因此內(nèi)層有幾個大括號,,數(shù)組就有幾行 3.對二維數(shù)組的正確定義是(C ) 詳見教材P149~152,,二維數(shù)組的定義、初始化 類型符 數(shù)組名 [常量表達式][常量表達式] 二維數(shù)組可以看做是矩陣 類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標識符命名規(guī)則;第一個常量表達式是指數(shù)組的行數(shù);第二個常量表達式是指數(shù)組的列數(shù);常量表達式的值只能是整數(shù),,不可以是變量,,而且從1開始計數(shù)。 一維數(shù)組初始化時可以省略數(shù)組長度 二維數(shù)組初始化時可以省略行數(shù),,但不能省略列數(shù) 選項A,B,,都省略了列數(shù) 選項D,不符合二維數(shù)組定義的一般形式,,行,、列常量表達式應(yīng)該放在不同的[]中 A、int a[ ][ ]={1,2,3,4,5,6}; B,、int a[2] []={1,2,3,4,5,6}; C,、int a[ ] [3]={1,2,3,4,5,6}; D、int a[2,3]={1,2,3,4,5,6}; 4.已知int a[3][4];則對數(shù)組元素引用正確的是__C___ A,、a[2][4] B,、a[1,3] C、a[2][0] D,、a(2)(1) 詳見教材P150,,數(shù)組元素的引用 數(shù)組名[下標] [下標] 引用數(shù)組元素時,[ ]中的下標為邏輯地址下標,,只能為整數(shù),,可以為變量,且從0開始計數(shù) 第一個[下標]表示行邏輯地址下標,,第二個[下標]表示列邏輯地址下標,。 本題圖示詳見P149圖6.7 因此a的行邏輯地址范圍0~2;a的列邏輯地址范圍0~3; 選項A,,列邏輯地址下標超過范圍 選項B,D,的引用形式不正確,。 5.C語言中函數(shù)返回值的類型是由 A 決定的. A,、函數(shù)定義時指定的類型 B、 return語句中的表達式類型 C,、 調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型 D,、形參的數(shù)據(jù)類型 6. 在C語言中,函數(shù)的數(shù)據(jù)類型是指(A ) A,、 函數(shù)返回值的數(shù)據(jù)類型 B,、 函數(shù)形參的數(shù)據(jù)類型 C、 調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型 D,、任意指定的數(shù)據(jù)類型 7.在函數(shù)調(diào)用時,,以下說法正確的是( B ) A、函數(shù)調(diào)用后必須帶回返回值 B,、實際參數(shù)和形式參數(shù)可以同名 C,、函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量 D、主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個文件里 8. 在C語言中,,表示靜態(tài)存儲類別的關(guān)鍵字是: ( C ) A,、 auto B、 register C,、static D,、extern 9.未指定存儲類別的變量,其隱含的存儲類別為(A ),。 A,、auto B、static C,、extern D,、register 10. 若有以下說明語句: struct student { int num; char name[ ]; float score; }stu; 則下面的敘述不正確的是: (D ) A、 struct是結(jié)構(gòu)體類型的關(guān)鍵字 B,、 struct student 是用戶定義的結(jié)構(gòu)體類型 C,、 num, score都是結(jié)構(gòu)體成員名 D、 stu是用戶定義的結(jié)構(gòu)體類型名 11.若有以下說明語句: struct date { int year; int month; int day; }brithday; 則下面的敘述不正確的是__C___. A,、 struct是聲明結(jié)構(gòu)體類型時用的關(guān)鍵字 B,、 struct date 是用戶定義的結(jié)構(gòu)體類型名 C、 brithday是用戶定義的結(jié)構(gòu)體類型名 D,、year,day 都是結(jié)構(gòu)體成員名 12. 以下對結(jié)構(gòu)變量stul中成員age的非法引用是 B struct student { int age; int num; }stu1,*p; p=&stu1; A,、 stu1.age B、 student.age C、 p->age D,、(*p).age 13.設(shè)有如下定義: struck sk { int a; float b; }data; int *p; 若要使P指向data中的a域,,正確的賦值語句是 C A、 p=&a; B,、 p=datA,、a; C、p=&datA,、a; D、*p=datA,、a; 14.設(shè)有以下說明語句: typedef struct stu { int a; float b; } stutype; 則下面敘述中錯誤的是( D ),。 A、struct是結(jié)構(gòu)類型的關(guān)鍵字 B,、struct stu是用戶定義的結(jié)構(gòu)類型 C,、a和b都是結(jié)構(gòu)成員名 D、stutype是用戶定義的結(jié)構(gòu)體變量名 15.語句int *p;說明了 C ,。 A,、p是指向一維數(shù)組的指針 B、p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù) C,、p是指向int型數(shù)據(jù)的指針 // 指針的定義教材P223 D,、p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針
二、程序填空題
下列給定程序中,,函數(shù)fun的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a[O],、a[1]、a[2]…中,,把奇數(shù)從數(shù)組中刪除,,偶數(shù)的個數(shù)通過函數(shù)值返回。 例如,,若a所指數(shù)組中的數(shù)據(jù)最初排列為:9,、1、4,、2,、3、6,、5,、8、7,,刪除奇數(shù)后,,a所指數(shù)組中的數(shù)據(jù)為:4、2、6,、8,,返回值為4。 請在程序的下畫線處填入正確的內(nèi)容并將下畫線刪除,,使程序得出正確的結(jié)果,。 注意:部分源程序給出如下。 不得增行或刪行,,也不得更改程序的結(jié)構(gòu)! 試題程序:
三,、程序修改題
下列給定程序中,函數(shù)fun的功能是:按以下遞歸公式求函數(shù)的值,。
例如,,當給n輸入5時,函數(shù)值為18;當給n輸入3時,,函數(shù)值為14,。 請改正程序中的錯誤,使它能得出正確的結(jié)果,。 注意:不要改動main函數(shù),,不得增行或刪行,也不得更改程序的結(jié)構(gòu)! 試題程序:
四,、程序設(shè)計題
規(guī)定輸入的字符串中只包含字母和*號,。請編寫函數(shù)fun,其功能是:使字符串中尾部的木號不多于n個,,若多于n個,,則刪除多余的*號;若少于或等于n個,則不做任何操作,,字符串中間和前面的*號不刪除,。 例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,,若n的值為4,,刪除后,字符 串中的內(nèi)容應(yīng)為“****A*BC*DEF*G****”;若n的值為7,,則字符串中的內(nèi)容仍為“,。**** A*BC*DEF*G*******”。n的值在主函數(shù)中輸入,。編寫函數(shù)時,,不得使用c語言提供的字符串函數(shù)。 注意:部分源程序給出如下,。 請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,,僅在函數(shù)fun的花括號中填入你編寫的若干語句,。 試題程序:
|