首頁 - 網(wǎng)校 - 萬題庫 - 美好明天 - 直播 - 導航
您現(xiàn)在的位置: 考試吧 > 計算機等級考試 > 計算機二級考試 > C語言 > 模擬試題 > 正文

2017年12月計算機二級C語言考試考前預測卷(2)

來源:考試吧 2017-12-07 9:05:49 要考試,上考試吧! 萬題庫
“2017年12月計算機二級C語言考試考前預測卷(2)”供考生參考。更多計算機等級考試內容請訪問考試吧計算機等級考試網(wǎng)。
第 1 頁:選擇題
第 3 頁:程序修改題
第 4 頁:程序設計題

  一、選擇題(每小題1分,共40分)

  1[單選題] 有以下程序:

2017年12月計算機二級C語言考試考前預測卷(2)

  程序運行后的輸出結果是( )。

  A.12 7

  B.12 12

  C.11 11

  D.11 7

  參考答案:D

  參考解析:本題考查宏定義的用法,宏定義只是做個簡單的替換,所以本題中執(zhí)行f(2)=(2*N+1)=11,執(zhí)行f(1+1)=(1+1*N+1)=7。選項D正確。

  2[單選題] 有以下程序:

2017年12月計算機二級C語言考試考前預測卷(2)

  執(zhí)行后的輸出結果是(  )。

  A.28,0

  B.28,1

  C.16,0

  D.16,-1

  參考答案:D

  參考解析:分析程序可知,d0語句1…whi1e(語句2),每次循環(huán)在語句1中a的值減1,在語句2中判斷a的值后,a的值又減1,所以在每次循環(huán)體執(zhí)行完后,b累加的a的值分別為7,5,3,1,a的值分別為6,4,2,0,最后當a為O時,whi1e判斷條件為fa1se,此時a的值再減1,為-1,到此循環(huán)結束,所以b的值為16,a的值為-1,故答案選D。

  3[單選題] 設棧的存儲空間為S(1:50),初始狀態(tài)為top=51,F(xiàn)經過一系列正常的人棧與退棧操作后,top=50,則棧中的元素個數(shù)為(  )。

  A.1

  B.0

  C.50

  D.49

  參考答案:A

  參考解析:棧是一種特殊的線性表,它所有的插入與刪除都限定在表的同一端進行。入棧運算即在棧頂位置插人一個新元素,退棧運算即取出棧頂元素賦予指定變量。棧為空時,棧頂指針top=0,經過入棧和退棧運算,指針始終指向棧頂元素。初始狀態(tài)為top=51,當top=50時,則棧中S(50:51)存儲著元素,51-50=1.元素個數(shù)為l。故本題答案為A選項。

  4[單選題] 程序執(zhí)行后的輸出結果是( )。

2017年12月計算機二級C語言考試考前預測卷(2)

  A.1

  B.2

  C.3

  D.4

  參考答案:C

  參考解析:該程序中int * p1=&a,*p2=&b,*P=&c;指定義三個指針變量,并賦值,即使p1指向a;p2指向 b;p指向c。*P=*p1*(*p2);該條語句是給P所指的存1儲單元c賦值,就是p1所指的存儲單元的值,即a的值,與p2所指的存儲單元b的值相乘,也就是c=a×b,等價于c=1×3=3;因此C選項正確。

  5[單選題] 以下不能使指針s所指存儲單元的值增1的選項是(  )。

  A.(*s)++;

  B.*s=*s+1;

  C.*s++;

  D.++*s;

  參考答案:C

  參考解析:選項A首先獲取s指向的存儲單元的值,使用完該值后,將該值自增1,正確;選項B首先獲取s指向的存儲單元的值,并將該值加1后重新賦給該存儲單元,正確;選項D首先獲取s指向的存儲單元的值,然后將該值自增1,再使用加1后的新值,正確;選項C中,*s++的含義是首先獲取s指向的存儲單元的值,然后再將指針s向后移動一位,所以答案為C。

  6[單選題] 以下選項中關于程序模塊化的敘述錯誤的是(  )。

  A.可采用自底向上、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序

  B.把程序分成若干相對獨立、功能單一的模塊,可便于重復使用這些模塊

  C.把程序分成若干相對獨立的模塊,可便于編碼和調試

  D.可采用自頂向下、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序

  參考答案:A

  參考解析:程序模塊化思想中,可以采用自頂向下、逐步細化的方法。所以選項A中“自底向上”的說法是錯誤的。

  7[單選題] 以下選項中,當X為大于1的奇數(shù)時,值為0的表達式是(  ):

  A.x%2==0

  B.x/2

  C.x%2!=0

  D.x%2==1

  參考答案:A

  參考解析:算術運算符的優(yōu)先級高于關系運算符的優(yōu)先級,所以當X為大于1的奇數(shù)時,A選項的值為假,即0。B選項的值為不定值,但絕對不是0。C選項的值為真,即1。D選項的值為真,即1。

  8[單選題] 若有定義語句:

  int a[2][3],*p[3];

  則以下語句中正確的是( )。

  A.p=a;

  B.p[0]=8;

  C.p[0]=&a[1][2];

  D.p[1]=&a;

  參考答案:C

  參考解析:A選項錯誤,因為p是指向一個指針數(shù)組,作為數(shù)組名,不能指向別的地方。B選項錯誤,因為p[0]是一個int指針,也就是int*;而a是一個指向指針的指針int**。C選項正確,因為p[0]是一個int*a[1][2]是int,&a[1][2]是int*,類型吻合。D選項錯誤,因為a作為數(shù)組名,不能取地址。即使能取,P[1]是int*,&a是int***,類型不對。因此C選項正確。

  9[單選題] 以下不合法的字符常量是( )。

  A.'\\'

  B.'\"'

  C.'\018'

  D.'\xcc'

  參考答案:C

  參考解析:轉義字符中,八進制的表示形式為\ddd,但是八進制中不能包含數(shù)字8,所以C選項不合法。

  10[單選題] 設有以下語句:

2017年12月計算機二級C語言考試考前預測卷(2)

  則下面敘述中正確的是( )。

  A.CIN是struct TT類型的變量

  B.TT是struct類型的變量

  C.可以用TT定義結構體變量

  D.可以用CIN定義結構體變量

  參考答案:D

  參考解析:本題考查typedef重新聲明一種結構體類型,其中CIN為結構體類型名,而不是結構體變量,所以D選項正確。

  11[單選題] 有以下程序:

2017年12月計算機二級C語言考試考前預測卷(2)

  執(zhí)行后的輸出結果是(  )。

  A.678

  B.666

  C.654

  D.456

  參考答案:C

  參考解析:由于main函數(shù)for循環(huán)中k的取值為0,1,2,所以for循環(huán)三次調用fun()函數(shù),每次調用函數(shù)fun,形參a的值為2(實參a傳人),局部變量b初始化為2(fun函數(shù)中初始化),靜態(tài)局部變量c保留上一次函數(shù)調用結束后的值,所以第一次調用fun(),形參a=2,b=2,c=2,然后執(zhí)行b自增1,c自減1,返回值為:2+3+l=6;第二次調用fun(),形參a=2,b=2,c=1,然后執(zhí)行b自增1,c自減1,返回值為:2+3+0=5;第三次調用fun(),形參a=2,b=2,c=0,然后執(zhí)行b自增1,c自減1,返回值為:2+3-1=4,所以結果為:654,答案為C。

  12[單選題] 有以下程序::

2017年12月計算機二級C語言考試考前預測卷(2)

  程序運行后的輸出結果是( )。

  A.0

  B.1

  C.4

  D.8

  參考答案:C

  參考解析:fun函數(shù)中的x為靜態(tài)局部變量,占用固定的內存單元,下一次調用時仍可保留上次調用時的值。也就是說,如果多次調用fun函數(shù),x的定義只在第一次調用時有效,從第二次調用開始,X的定義相當于不存在,直接使用X的值。主函數(shù)中調用兩次fun函數(shù):第一次調用:x=1,x=x*2=2,s=2;第二次調用:(直接用上次x的值)x=x*2=4,s=4。因此C選項正確。

  13[單選題] 若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是(  )。

  A.int a[5+5];

  B.int n=10,a[n];

  C.#define n 5 int a[2*n];

  D.#define N 10int a[N];

  參考答案:B

  參考解析:一維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式];注意定義數(shù)組時,元素個數(shù)不能是變量。因此應該選B選項。

  14[單選題] 有以下程序:

2017年12月計算機二級C語言考試考前預測卷(2)

  程序運行后的輸出結果是(  )。

  A.7

  B.8

  C.9

  D.10

  參考答案:C

  參考解析:首先main函數(shù)中的局部變量a和f()函數(shù)中的靜態(tài)局部變量a的作用域都只限在其所在的函數(shù)中,相互之間不影響,看作兩個不同的變量即可。另外,f()函數(shù)中的靜態(tài)局部變量a只在第一次調用f()函數(shù)時初始化一次,其他調用都會保留上一次調用結束時的值。分析main函數(shù)可知,第一次調用時將f(a)的返回值賦給s,所以語句可以改寫為:s=f(a)+f(a),即main函數(shù)中調用兩次f(a),傳人的參數(shù)a取值都為3,第一次調用時,靜態(tài)局部變量初始化為1,所以n=4并返回,a自增為2;第二次調用時靜態(tài)局部變量a取上一次調用結束時的值2,所以n=5并返回,a自增為3。所以在main()函數(shù)中,s=4+5=9,所以函數(shù)執(zhí)行完輸出結果為9,答案為C。

  15[單選題] 有以下程序:

2017年12月計算機二級C語言考試考前預測卷(2)

  程序運行后的輸出結果是(  )。

  A.0

  B.-1

  C.1

  D.7

  參考答案:B

  參考解析:a--的含義是先用后減1,所以當a的值為0時,跳出循環(huán),但是仍要執(zhí)行a--,a的值變?yōu)?1。

  16[單選題] 以下選項中能正確定義二維數(shù)組的選項是(  )。

  A.double a[][3]={2*3};

  B.double a[][3];

  C.double a[][3]={};

  D.double a[2][3]={{1.0},{2.0},{3.0,4.0}};

  參考答案:A

  參考解析:如果第一維的長度沒有指定.則定義的同時需要完成初始化,否則不知道分配多大的內存空間給它,所以選項B、C錯誤;二維數(shù)組a[2][3]中只有兩個元素,都是一維數(shù)組,一維下標最大只能是a[1],所以選項D錯誤;若完成初始化的二維數(shù)組,第一維的長度沒有指定,則第一維的大小按如下規(guī)則確定:若初值個數(shù)能被第二維大小整除,所得的商就是第一維的大小;若不能整除,則所得的商加l作為第一維的大小,所以選項A相當于:double a[1][3]={6};其中a[0][0]=6,其他元素賦值0,故選項A正確,答案為A。

  17[單選題] 有定義語句:int i;char s1[10],s2[10]=“Program”;則能正確給s1數(shù)組賦字符串的語句是(  )。

2017年12月計算機二級C語言考試考前預測卷(2)

  參考答案:A

  參考解析:首先字符數(shù)組只有在初始化的時候整體賦值,否則只能對字符數(shù)組逐個賦值,所以選項B錯誤;字符數(shù)組名s1、s2是常量,不能改變,故選項C錯誤;字符串 “Program”包含結尾的‘\0’,選項D中在處理到s2[i]=‘\0’時,跳出循環(huán),未將‘\0’賦給s1,所以選項D也是錯誤的;由于“Program”包含結尾的‘\0’總共有8個字符,所以選項A是正確的,答案為A。

  18[單選題] 以下敘述中正確的是(  )。

  A.當對文件的讀(寫)操作完成之后,必須將它關閉,否則可能導致數(shù)據(jù)丟失B)打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

  B.在一個程序中當對文件進行了寫操作后,必須先關閉該文件然后再打開,才能讀到第1個數(shù)據(jù)

  C.C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

  參考答案:A

  參考解析:文件一旦使用完畢,應該使用關閉文件函數(shù)把文件關閉,以避免出現(xiàn)文件數(shù)據(jù)丟失等錯誤,所以選項A正確;若使用fopen打開文件函數(shù)打開文件時,指定打開方式為 ‘a’,則可以向文件追加信息,而不是覆蓋原文件內容,故B選項錯誤;在文件被打開后,使用文件定位函數(shù)rewind或fseek函數(shù),可以將文件指針移到文件的任何位置,所以在寫操作完成后,可以直接將文件指針定位到文件首,接著讀數(shù)據(jù),而不需要先關閉文件,再打開讀取,故C選項錯誤;使用文件定位函數(shù)可以隨機讀寫文件,故D選項錯誤。所以本題答案為A。

  19[單選題] 關于程序模塊化,以下敘述錯誤的是(  )。

  A.程序模塊化可以提高程序運行的效率

  B.程序模塊化可以提高程序編制的效率

  C.程序模塊化可以提高程序代碼復用率

  D.程序模塊化可以提高調試程序的效率

  參考答案:A

  參考解析:程序模塊化的目的是為了降低程序的復雜度,使程序設計、調試和維護等操作簡單化,降低程序的復雜度可以提高程序的編制效率和調試效率,每個模塊可以復用,提高了程序代碼的復用率,故選項B、C、D正確;程序的運行效率與程序的算法、實現(xiàn)有關,與程序模塊化無關,故答案選A。

  20[單選題] 以下程序中函數(shù)f的功能是:當flag為1時,進行由小到大排序;當flag為0時,進行由大到小排序。

  

2017年12月計算機二級C語言考試考前預測卷(2)

  程序運行后的輸出結果是( )。

  A.1,2,3,4,5,6,7,8,9,10,

  B.3,4,5,6,7,2,1,8,9,10,

  C.5,4,3,2,1,6,7,8,9,10,

  D.10,9,8,7,6,5,4,3,2,1,

  參考答案:B

  參考解析:本題重點考察函數(shù)的參數(shù)傳遞,函數(shù)的參數(shù)傳遞分為傳值和傳地址兩種情況。本題就是結合數(shù)組考查參數(shù)傳遞的情形。函數(shù)f完成的功能是對數(shù)據(jù)進行排序,語句f(&a[2],5,0)的作用是對從a[2]開始的5個元素進行從大到小排序。注意:這里傳遞的是地址&a[2],所以排序操作可看作是直接對數(shù)組a操作,執(zhí)行后的結果為5,4,7,6,3,2,1,8,9,10。語句f(a,5,1)對數(shù)組a的前5個元素從小到大排序,排序后數(shù)組為:3,4,5,6,7,2,1,8,9,10。因此B選項正確。

1 2 3 4 下一頁

  相關推薦:

  2017年12月計算機等級考試考前必做題匯總

  【考試吧整理】計算機等級考試各科目歷年真題

  2017年12月計算機等考成績查詢入口|免費查分提醒

  2017年計算機等級考試綜合查詢網(wǎng)常見問題匯總

  計算機等級考試成績評定流程及標準|合格證書樣本及證書說明

0
收藏該文章
0
收藏該文章
文章責編:Quchangwei  
看了本文的網(wǎng)友還看了
文章搜索
萬題庫小程序
萬題庫小程序
·章節(jié)視頻 ·章節(jié)練習
·免費真題 ·?荚囶}
微信掃碼,立即獲。
掃碼免費使用
版權聲明:如果計算機等級考試網(wǎng)所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網(wǎng)內容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網(wǎng) 出版物經營許可證新出發(fā)京批字第直170033號 
京ICP證060677 京ICP備05005269號 中國科學院研究生院權威支持(北京)
在線模擬試題
考證通關殺器
考試最新資訊
一次通關技巧