2016年計算機二級《C語言》沖刺模擬題及答案
為了幫助考生們更好、更有準備地參加計算機二級考試,下面百分網小編為大家搜索整理了關于計算機二級《C語言》沖刺模擬題及答案,歡迎參考練習,希望對大家備考有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!
一、選擇題
1.若有以下數組說明,則i=10;a[a[i]]元素數值是(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]]內層的a[i],由于i=10,因此a[i]即a[10].
a[10]對應下面數組中的元素為9. 因此a[a[i]]即為a[9]
a[9]對應下面數組中的元素為6. 因此a[9]即為6
2.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數組a的第一維的大小為: ( B )
A、2
B、3
C、4
D、無確定值
5 7
D、3 6 9
二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個大括號,數組就有幾行
3.對二維數組的正確定義是(C )
詳見教材P149~152,二維數組的定義、初始化
類型符 數組名 [常量表達式][常量表達式]
二維數組可以看做是矩陣
類型符是指數組中數組元素的類型;數組名要符合標識符命名規則;第一個常量表達式是指數組的行數;第二個常量表達式是指數組的列數;常量表達式的值只能是整數,不可以是變量,而且從1開始計數。
一維數組初始化時可以省略數組長度
二維數組初始化時可以省略行數,但不能省略列數
選項A,B,都省略了列數
選項D,不符合二維數組定義的一般形式,行、列常量表達式應該放在不同的[]中
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];則對數組元素引用正確的是__C___
A、a[2][4]
B、a[1,3]
C、a[2][0]
D、a(2)(1)
詳見教材P150,數組元素的引用
數組名[下標] [下標]
引用數組元素時,[ ]中的下標為邏輯地址下標,只能為整數,可以為變量,且從0開始計數
第一個[下標]表示行邏輯地址下標,第二個[下標]表示列邏輯地址下標。
本題圖示詳見P149圖6.7
因此a的行邏輯地址范圍0~2;a的列邏輯地址范圍0~3;
選項A,列邏輯地址下標超過范圍
選項B,D,的引用形式不正確。
5.C語言中函數返回值的類型是由 A 決定的.
A、函數定義時指定的類型
B、 return語句中的表達式類型
C、 調用該函數時的實參的數據類型
D、形參的數據類型
6. 在C語言中,函數的數據類型是指(A )
A、 函數返回值的數據類型
B、 函數形參的數據類型
C、 調用該函數時的實參的數據類型
D、任意指定的數據類型
7.在函數調用時,以下說法正確的是( B )
A、函數調用后必須帶回返回值
B、實際參數和形式參數可以同名
C、函數間的數據傳遞不可以使用全局變量
D、主調函數和被調函數總是在同一個文件里
8. 在C語言中,表示靜態存儲類別的關鍵字是: ( 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是結構體類型的關鍵字
B、 struct student 是用戶定義的結構體類型
C、 num, score都是結構體成員名
D、 stu是用戶定義的結構體類型名
11.若有以下說明語句:
struct date
{ int year;
int month;
int day;
}brithday;
則下面的敘述不正確的是__C___.
A、 struct是聲明結構體類型時用的關鍵字
B、 struct date 是用戶定義的結構體類型名
C、 brithday是用戶定義的結構體類型名
D、year,day 都是結構體成員名
12. 以下對結構變量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.設有如下定義:
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.設有以下說明語句:
typedef struct stu
{ int a;
float b;
} stutype;
則下面敘述中錯誤的是( D )。
A、struct是結構類型的關鍵字
B、struct stu是用戶定義的結構類型
C、a和b都是結構成員名
D、stutype是用戶定義的結構體變量名
15.語句int *p;說明了 C 。
A、p是指向一維數組的指針
B、p是指向函數的指針,該函數返回一int型數據
C、p是指向int型數據的指針 // 指針的定義教材P223
D、p是函數名,該函數返回一指向int型數據的指針
二、程序填空題
1下列給定程序中,函數fun的功能是:在形參ss所指字符串數組中查找與形參t所指字符串相同的串,找到后返回該串在字符串數組中的位置(即下標值),若未找到則返回-1。ss所指字符串數組中共有N個內容不同的字符串,且串長小于M。
請在程序的下畫線處填入正確的內容并將下畫線刪除,使程序得出正確的結果。
注意:部分源程序給出如下。
不得增行或刪行,也不得更改程序的結構!
試題程序:
參考解析:
【參考答案】
(1)N (2)i (3)一1
【考點分析】
本題考查:for循環語句;函數返回值;if語句條件表達式。
【解題思路】
填空l:變量i是循環變量,它的取值范圍是0一N。
填空2:如果ss所指字符串數組中的字符串與t所指字符串相同,則返回其下標值,即return i;,否則返回一1,即return一1;o
填空3:在main函數中輸出最后結果,判斷函數返回值n,如果n=一1,說明沒有找到,否則輸出n。
三、程序改錯題
2下列給定程序中函數fun的功能是:通過某種方式實現兩個變量值的交換,規定不允許增加語句和表達式。
例如,變量a中的值原為8,b中的值原為3,程序運行后a中的值為3,b中的值為8。
請改正程序中的錯誤,使它得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更
改程序的結構!
試題程序:
參考解析:
【參考答案】
(1)t=*x;*X=Y;(2)return(t);或return t;
【考點分析】
本題考查:指針型變量的使用;通過return語句完成函數值的返回。
【解題思路】
首先,定義變量t作為中間變量,然后進行數據交換,注意參數x是指針變量,交換時應使用*x,最后確定返回值;根據代碼b=fun(8a'b),可以知道返回值將賦給變量b,而b中應存放交換前*x中的值,所以函數應返回變量t。
四、程序設計題
3規定輸入的字符串中只包含字母和*號。編寫函數fun,其功能是:刪除字符串中所有的*號。編寫函數時,不得使用c語言提供的字符串函數。
例如,字符串中的內容為“****A*BC*DEF*G*******”,刪除后,字符串中的內容應當是“ABCDEFG”。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容.僅在函數fun的花括號中填入你編寫的若干語句。
試題程序:
參考解析:
【參考答案】
【考點分析】
本題考查:刪除字符串中所有*號,需用循環語句遍歷字符串,用判斷語句判斷字符是否為*號,由此可以決定該程序應使用循環判斷結構。
【解題思路】
用循環操作從字符串開始往后逐個進行比較,若不是要刪除的字符(用if(aEi]!=’*’)來控制)則保留。變量i和j用來表示原字符串的下標和刪除*號后新字符串的下標。注意,下
標變量J要從0開始,最后還要加上字符串結束標識‘\0’。
【計算機二級《C語言》沖刺模擬題及答案】相關文章:
2016計算機二級《C語言》模擬題及答案09-08
2015年全國計算機二級考試《C語言》沖刺模擬題(三)答案07-22
計算機二級C++模擬題及答案05-12
2016年計算機二級考試C語言沖刺模擬題05-11
2017計算機二級C++模擬題及答案06-22
計算機二級《C語言》試題及答案201610-30
計算機二級C語言模擬試題及答案07-04