第 1 頁(yè):選擇題 |
第 3 頁(yè):程序修改題 |
第 4 頁(yè):程序設(shè)計(jì)題 |
>>>2017年計(jì)算機(jī)等級(jí)考試備考經(jīng)驗(yàn)及應(yīng)試技巧匯總
>>>2017全國(guó)計(jì)算機(jī)等級(jí)考試考前必做試題及答案匯總
>>>2017年9月全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言考試試題及答案匯總
點(diǎn)擊查看:2017年9月計(jì)算機(jī)二級(jí)考試C語(yǔ)言考前預(yù)測(cè)卷匯總
一、選擇題(每小題1分,共40分)
1[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.12 7
B.12 12
C.11 11
D.11 7
參考答案:D
參考解析:本題考查宏定義的用法,宏定義只是做個(gè)簡(jiǎn)單的替換,所以本題中執(zhí)行f(2)=(2*N+1)=11,執(zhí)行f(1+1)=(1+1*N+1)=7。選項(xiàng)D正確。
2[單選題] 有以下程序:
執(zhí)行后的輸出結(jié)果是( )。
A.28,0
B.28,1
C.16,0
D.16,-1
參考答案:D
參考解析:分析程序可知,d0語(yǔ)句1…whi1e(語(yǔ)句2),每次循環(huán)在語(yǔ)句1中a的值減1,在語(yǔ)句2中判斷a的值后,a的值又減1,所以在每次循環(huán)體執(zhí)行完后,b累加的a的值分別為7,5,3,1,a的值分別為6,4,2,0,最后當(dāng)a為O時(shí),whi1e判斷條件為fa1se,此時(shí)a的值再減1,為-1,到此循環(huán)結(jié)束,所以b的值為16,a的值為-1,故答案選D。
3[單選題] 設(shè)棧的存儲(chǔ)空間為S(1:50),初始狀態(tài)為top=51,F(xiàn)經(jīng)過一系列正常的人棧與退棧操作后,top=50,則棧中的元素個(gè)數(shù)為( )。
A.1
B.0
C.50
D.49
參考答案:A
參考解析:棧是一種特殊的線性表,它所有的插入與刪除都限定在表的同一端進(jìn)行。入棧運(yùn)算即在棧頂位置插人一個(gè)新元素,退棧運(yùn)算即取出棧頂元素賦予指定變量。棧為空時(shí),棧頂指針top=0,經(jīng)過入棧和退棧運(yùn)算,指針始終指向棧頂元素。初始狀態(tài)為top=51,當(dāng)top=50時(shí),則棧中S(50:51)存儲(chǔ)著元素,51-50=1.元素個(gè)數(shù)為l。故本題答案為A選項(xiàng)。
4[單選題] 程序執(zhí)行后的輸出結(jié)果是( )。
A.1
B.2
C.3
D.4
參考答案:C
參考解析:該程序中int * p1=&a,*p2=&b,*P=&c;指定義三個(gè)指針變量,并賦值,即使p1指向a;p2指向 b;p指向c。*P=*p1*(*p2);該條語(yǔ)句是給P所指的存1儲(chǔ)單元c賦值,就是p1所指的存儲(chǔ)單元的值,即a的值,與p2所指的存儲(chǔ)單元b的值相乘,也就是c=a×b,等價(jià)于c=1×3=3;因此C選項(xiàng)正確。
5[單選題] 以下不能使指針s所指存儲(chǔ)單元的值增1的選項(xiàng)是( )。
A.(*s)++;
B.*s=*s+1;
C.*s++;
D.++*s;
參考答案:C
參考解析:選項(xiàng)A首先獲取s指向的存儲(chǔ)單元的值,使用完該值后,將該值自增1,正確;選項(xiàng)B首先獲取s指向的存儲(chǔ)單元的值,并將該值加1后重新賦給該存儲(chǔ)單元,正確;選項(xiàng)D首先獲取s指向的存儲(chǔ)單元的值,然后將該值自增1,再使用加1后的新值,正確;選項(xiàng)C中,*s++的含義是首先獲取s指向的存儲(chǔ)單元的值,然后再將指針s向后移動(dòng)一位,所以答案為C。
6[單選題] 以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是( )。
A.可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序
B.把程序分成若干相對(duì)獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊
C.把程序分成若干相對(duì)獨(dú)立的模塊,可便于編碼和調(diào)試
D.可采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序
參考答案:A
參考解析:程序模塊化思想中,可以采用自頂向下、逐步細(xì)化的方法。所以選項(xiàng)A中“自底向上”的說法是錯(cuò)誤的。
7[單選題] 以下選項(xiàng)中,當(dāng)X為大于1的奇數(shù)時(shí),值為0的表達(dá)式是( ):
A.x%2==0
B.x/2
C.x%2!=0
D.x%2==1
參考答案:A
參考解析:算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符的優(yōu)先級(jí),所以當(dāng)X為大于1的奇數(shù)時(shí),A選項(xiàng)的值為假,即0。B選項(xiàng)的值為不定值,但絕對(duì)不是0。C選項(xiàng)的值為真,即1。D選項(xiàng)的值為真,即1。
8[單選題] 若有定義語(yǔ)句:
int a[2][3],*p[3];
則以下語(yǔ)句中正確的是( )。
A.p=a;
B.p[0]=8;
C.p[0]=&a[1][2];
D.p[1]=&a;
參考答案:C
參考解析:A選項(xiàng)錯(cuò)誤,因?yàn)閜是指向一個(gè)指針數(shù)組,作為數(shù)組名,不能指向別的地方。B選項(xiàng)錯(cuò)誤,因?yàn)閜[0]是一個(gè)int指針,也就是int*;而a是一個(gè)指向指針的指針int**。C選項(xiàng)正確,因?yàn)閜[0]是一個(gè)int*a[1][2]是int,&a[1][2]是int*,類型吻合。D選項(xiàng)錯(cuò)誤,因?yàn)閍作為數(shù)組名,不能取地址。即使能取,P[1]是int*,&a是int***,類型不對(duì)。因此C選項(xiàng)正確。
9[單選題] 以下不合法的字符常量是( )。
A.'\\'
B.'\"'
C.'\018'
D.'\xcc'
參考答案:C
參考解析:轉(zhuǎn)義字符中,八進(jìn)制的表示形式為\ddd,但是八進(jìn)制中不能包含數(shù)字8,所以C選項(xiàng)不合法。
10[單選題] 設(shè)有以下語(yǔ)句:
則下面敘述中正確的是( )。
A.CIN是struct TT類型的變量
B.TT是struct類型的變量
C.可以用TT定義結(jié)構(gòu)體變量
D.可以用CIN定義結(jié)構(gòu)體變量
參考答案:D
參考解析:本題考查typedef重新聲明一種結(jié)構(gòu)體類型,其中CIN為結(jié)構(gòu)體類型名,而不是結(jié)構(gòu)體變量,所以D選項(xiàng)正確。
11[單選題] 有以下程序:
執(zhí)行后的輸出結(jié)果是( )。
A.678
B.666
C.654
D.456
參考答案:C
參考解析:由于main函數(shù)for循環(huán)中k的取值為0,1,2,所以for循環(huán)三次調(diào)用fun()函數(shù),每次調(diào)用函數(shù)fun,形參a的值為2(實(shí)參a傳人),局部變量b初始化為2(fun函數(shù)中初始化),靜態(tài)局部變量c保留上一次函數(shù)調(diào)用結(jié)束后的值,所以第一次調(diào)用fun(),形參a=2,b=2,c=2,然后執(zhí)行b自增1,c自減1,返回值為:2+3+l=6;第二次調(diào)用fun(),形參a=2,b=2,c=1,然后執(zhí)行b自增1,c自減1,返回值為:2+3+0=5;第三次調(diào)用fun(),形參a=2,b=2,c=0,然后執(zhí)行b自增1,c自減1,返回值為:2+3-1=4,所以結(jié)果為:654,答案為C。
12[單選題] 有以下程序::
程序運(yùn)行后的輸出結(jié)果是( )。
A.0
B.1
C.4
D.8
參考答案:C
參考解析:fun函數(shù)中的x為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時(shí)仍可保留上次調(diào)用時(shí)的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時(shí)有效,從第二次調(diào)用開始,X的定義相當(dāng)于不存在,直接使用X的值。主函數(shù)中調(diào)用兩次fun函數(shù):第一次調(diào)用:x=1,x=x*2=2,s=2;第二次調(diào)用:(直接用上次x的值)x=x*2=4,s=4。因此C選項(xiàng)正確。
13[單選題] 若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是( )。
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ù)組名[常量表達(dá)式];注意定義數(shù)組時(shí),元素個(gè)數(shù)不能是變量。因此應(yīng)該選B選項(xiàng)。
14[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.7
B.8
C.9
D.10
參考答案:C
參考解析:首先main函數(shù)中的局部變量a和f()函數(shù)中的靜態(tài)局部變量a的作用域都只限在其所在的函數(shù)中,相互之間不影響,看作兩個(gè)不同的變量即可。另外,f()函數(shù)中的靜態(tài)局部變量a只在第一次調(diào)用f()函數(shù)時(shí)初始化一次,其他調(diào)用都會(huì)保留上一次調(diào)用結(jié)束時(shí)的值。分析main函數(shù)可知,第一次調(diào)用時(shí)將f(a)的返回值賦給s,所以語(yǔ)句可以改寫為:s=f(a)+f(a),即main函數(shù)中調(diào)用兩次f(a),傳人的參數(shù)a取值都為3,第一次調(diào)用時(shí),靜態(tài)局部變量初始化為1,所以n=4并返回,a自增為2;第二次調(diào)用時(shí)靜態(tài)局部變量a取上一次調(diào)用結(jié)束時(shí)的值2,所以n=5并返回,a自增為3。所以在main()函數(shù)中,s=4+5=9,所以函數(shù)執(zhí)行完輸出結(jié)果為9,答案為C。
15[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.0
B.-1
C.1
D.7
參考答案:B
參考解析:a--的含義是先用后減1,所以當(dāng)a的值為0時(shí),跳出循環(huán),但是仍要執(zhí)行a--,a的值變?yōu)?1。
16[單選題] 以下選項(xiàng)中能正確定義二維數(shù)組的選項(xiàng)是( )。
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
參考解析:如果第一維的長(zhǎng)度沒有指定.則定義的同時(shí)需要完成初始化,否則不知道分配多大的內(nèi)存空間給它,所以選項(xiàng)B、C錯(cuò)誤;二維數(shù)組a[2][3]中只有兩個(gè)元素,都是一維數(shù)組,一維下標(biāo)最大只能是a[1],所以選項(xiàng)D錯(cuò)誤;若完成初始化的二維數(shù)組,第一維的長(zhǎng)度沒有指定,則第一維的大小按如下規(guī)則確定:若初值個(gè)數(shù)能被第二維大小整除,所得的商就是第一維的大小;若不能整除,則所得的商加l作為第一維的大小,所以選項(xiàng)A相當(dāng)于:double a[1][3]={6};其中a[0][0]=6,其他元素賦值0,故選項(xiàng)A正確,答案為A。
17[單選題] 有定義語(yǔ)句:int i;char s1[10],s2[10]=“Program”;則能正確給s1數(shù)組賦字符串的語(yǔ)句是( )。
參考答案:A
參考解析:首先字符數(shù)組只有在初始化的時(shí)候整體賦值,否則只能對(duì)字符數(shù)組逐個(gè)賦值,所以選項(xiàng)B錯(cuò)誤;字符數(shù)組名s1、s2是常量,不能改變,故選項(xiàng)C錯(cuò)誤;字符串 “Program”包含結(jié)尾的‘\0’,選項(xiàng)D中在處理到s2[i]=‘\0’時(shí),跳出循環(huán),未將‘\0’賦給s1,所以選項(xiàng)D也是錯(cuò)誤的;由于“Program”包含結(jié)尾的‘\0’總共有8個(gè)字符,所以選項(xiàng)A是正確的,答案為A。
18[單選題] 以下敘述中正確的是( )。
A.當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失B)打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
B.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù)
C.C語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
參考答案:A
參考解析:文件一旦使用完畢,應(yīng)該使用關(guān)閉文件函數(shù)把文件關(guān)閉,以避免出現(xiàn)文件數(shù)據(jù)丟失等錯(cuò)誤,所以選項(xiàng)A正確;若使用fopen打開文件函數(shù)打開文件時(shí),指定打開方式為 ‘a(chǎn)’,則可以向文件追加信息,而不是覆蓋原文件內(nèi)容,故B選項(xiàng)錯(cuò)誤;在文件被打開后,使用文件定位函數(shù)rewind或fseek函數(shù),可以將文件指針移到文件的任何位置,所以在寫操作完成后,可以直接將文件指針定位到文件首,接著讀數(shù)據(jù),而不需要先關(guān)閉文件,再打開讀取,故C選項(xiàng)錯(cuò)誤;使用文件定位函數(shù)可以隨機(jī)讀寫文件,故D選項(xiàng)錯(cuò)誤。所以本題答案為A。
19[單選題] 關(guān)于程序模塊化,以下敘述錯(cuò)誤的是( )。
A.程序模塊化可以提高程序運(yùn)行的效率
B.程序模塊化可以提高程序編制的效率
C.程序模塊化可以提高程序代碼復(fù)用率
D.程序模塊化可以提高調(diào)試程序的效率
參考答案:A
參考解析:程序模塊化的目的是為了降低程序的復(fù)雜度,使程序設(shè)計(jì)、調(diào)試和維護(hù)等操作簡(jiǎn)單化,降低程序的復(fù)雜度可以提高程序的編制效率和調(diào)試效率,每個(gè)模塊可以復(fù)用,提高了程序代碼的復(fù)用率,故選項(xiàng)B、C、D正確;程序的運(yùn)行效率與程序的算法、實(shí)現(xiàn)有關(guān),與程序模塊化無關(guān),故答案選A。
20[單選題] 以下程序中函數(shù)f的功能是:當(dāng)flag為1時(shí),進(jìn)行由小到大排序;當(dāng)flag為0時(shí),進(jìn)行由大到小排序。
程序運(yùn)行后的輸出結(jié)果是( )。
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
參考解析:本題重點(diǎn)考察函數(shù)的參數(shù)傳遞,函數(shù)的參數(shù)傳遞分為傳值和傳地址兩種情況。本題就是結(jié)合數(shù)組考查參數(shù)傳遞的情形。函數(shù)f完成的功能是對(duì)數(shù)據(jù)進(jìn)行排序,語(yǔ)句f(&a[2],5,0)的作用是對(duì)從a[2]開始的5個(gè)元素進(jìn)行從大到小排序。注意:這里傳遞的是地址&a[2],所以排序操作可看作是直接對(duì)數(shù)組a操作,執(zhí)行后的結(jié)果為5,4,7,6,3,2,1,8,9,10。語(yǔ)句f(a,5,1)對(duì)數(shù)組a的前5個(gè)元素從小到大排序,排序后數(shù)組為:3,4,5,6,7,2,1,8,9,10。因此B選項(xiàng)正確。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2017年全國(guó)計(jì)算機(jī)等級(jí)考試時(shí)間|教材目錄(2017年版)
2017年9月計(jì)算機(jī)等級(jí)考試真題|計(jì)算機(jī)等級(jí)考試答案
各地2017年9月計(jì)算機(jī)等考成績(jī)查詢時(shí)間|免費(fèi)查分提醒
計(jì)算機(jī)等級(jí)考試成績(jī)?cè)u(píng)定流程及標(biāo)準(zhǔn)|合格證書樣本及證書說明
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |