- 相關(guān)推薦
全國計算機二級《C語言》預(yù)測試題及答案2016
(1)有以下程序:
程序運行后的輸出結(jié)果是( )。
A、1*1=1 1$2=2 1*3=3
(2)有以下程序:
程序運行后的輸出結(jié)果是( )。
A,*2*6
B.}3*5一
C.}5
D.*7
(3)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.500
B.401
C.503
D.1404
(4)若有以下函數(shù)首部:
int fun(double x[10],int*n)
則下面針對此函數(shù)的函數(shù)聲明語句中正確的是( )。
int fun(double,int);
B.int fun(double木,int*);
C.int mn(double*x,int n);
D.int fun(double x,intint*n)
(5)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.2,1,1,2
B.1,2,1,2
C.2,1,2,1
D.1,2,2,1
(6)若有以下定義:
int x[10],* pt=x;
則對x數(shù)組元素的正確引用是( )。
A.pt+3
B.}&x[10]
C.*(pt+10)
D.*(x+3)
(7)有以下程序:
程序執(zhí)行后的輸出結(jié)果是( )。
A.20
B.25
C.45
D.36
(8)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.1,O,7,0,
B.1,2,3,4,
C.1,4,5,9,
D.3,4,8,10,
(9)設(shè)有定義:char*C;以下選項中能夠使C正確指向一個字符串的是( )。
A.char str( )=”strin9”;C=str;
B.scanf(”%s”,C.;
C.c=getchar( );
D.*c=”strin9”;
(10)若有定義語句:
char S[10]=”1234567\0\0”;則strlen(s)的值是( )。
A.7
B.8
C.9
D.10
(11)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.11
B.9
C.6
D.7
(12)有以下程序(說明:字母A的ASCIl碼值是65):
程序運行后的輸出結(jié)果是( )。
A.BT
B.YE
C.YT
D.BY
(13)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.120
B.11
C.6
D.21
(14)有以下程序:
程序運行后的輸出結(jié)果是( )。、
A.A B E F
B.C D E F
C.A B C D
D.C D A B
(15)以下關(guān)于typedef的敘述錯誤的是( )。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代替
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通?梢栽黾映绦虻目勺x性
(16)程序中已構(gòu)成如下圖所示的不帶頭結(jié)點的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點,指針變量s總是作為指針指向鏈表的第一個結(jié)點。
若有以下程序段:
該程序段實現(xiàn)的功能是( )。
A.刪除尾結(jié)點
B.尾結(jié)點成為首結(jié)點
C.刪除首結(jié)點
D.首結(jié)點成為尾結(jié)點
(17)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.33
B.197
C.143
D.28
(18)若有以下程序段:
程序運行后的輸出結(jié)果是( )。
A.16
B.8
C.4
D.2
(19)以下敘述中錯誤的是( )。
A.gets函數(shù)用于從終端讀人字符串
B.getehar函數(shù)用于從磁盤文件讀人字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
(20)有以下程序:
以上程序執(zhí)行后abc.dat文件的內(nèi)容是( )。
A.China
B.Chinang
C.ChinaBeijing
D.BeijingChina
參考答案與解析
(1)A
【解析】外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為1,打印1 *1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。
(2)D
【解析】d0...whi1e語句是先執(zhí)行后判斷,所以第一次先執(zhí)行循環(huán)體,判斷i%3==1的條件,由于i為5,所以余數(shù)為2,條件不成立,執(zhí)行i++,i的值為6,判斷whi1e條件為真;第二次執(zhí)行循環(huán)體,同第一次循環(huán)的執(zhí)行過程一樣,i的值變?yōu)?,判斷whi1e條件為真;第三次執(zhí)行循環(huán)體,此時i%3==1,條件成立,再判斷i%5==2也成立,打印*與i的值,即*7,然后執(zhí)行break語句,跳出循環(huán)。所以選擇D選項。
(3)C
【解析】本題重點考察函數(shù)的定義和調(diào)用,第一次循環(huán),a=0,i=0,返回值a=0*0+1+0=1;第二次循環(huán),a=1,i=10,返回值a=10*10+1+1=102;第三次循環(huán),a=102,i-20,返回值a=20*20+1十102=503;第四次循環(huán),a=503,i=30;不符合i<30,跳出循環(huán),最后結(jié)果輸出a=503。
(4)B
【解析】函數(shù)聲明的一般形式為:“類型說明符被調(diào)函數(shù)名(類型形參,類型形參,……);”或“類型說明符被調(diào)函數(shù)名(類型,類型,……);”由于函數(shù)首部為int fun(doub1e x[10],int*n),因此B選項正確。
(5)D
【解析】intm=1,n=2,* P=&m,。q=&I1,*r;即指針變量P指向m,指針變量q指向n,r=P;P=q;q=。;即
通過指針變量r,將指針P和指針q的指向交換。因此最后輸出1,2,2,1。
(6)D
【解析】沒有A選項的引用形式。+與&放在一起作用抵消,所以B選項錯誤,最大只能引用到X[9]。+(pt+i)表示引用指針pt所指元素后的第i個元素,所以c選項錯誤,最大只能為+(pt+9)。因此D選項正確。
(7)B
【解析】統(tǒng)計1~9九個數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此·(t+i)代表數(shù)組的第i+1個元素。程序運行的結(jié)果是1+3+5+7+9=25。
(8)A
【解析】該程序首先在定義變量時,對二維數(shù)組a[][N]進(jìn)行賦值操作;調(diào)用函數(shù)fun,函數(shù)fun的功能是將二維數(shù)組中的a[0兒0]、a[1][1]、a[2][2]和a[3][3]賦值給一維數(shù)組,最后將一維數(shù)組元素1,0,7,0,輸出。
(9)A
【解析】A選項為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時為其分配確定地址)。C選項錯誤,getchar()函數(shù)只能輸入一個字符給字符型變量,而不是字符指針。B選項和D選項有類似的錯誤,兩個選項并無語法錯誤,但運行時可能會出現(xiàn)問題。因為在B選項和D選項中,字符指針沒有被賦值,是個不確定的值,指向一個不確定的內(nèi)存區(qū)域,這個區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個不確定的區(qū)域重新存放字符串,可能會發(fā)生無法預(yù)知的錯誤。因此A選項正確。
(10)A
【解析】str1en()函數(shù)在計算字符串長度時,遇到結(jié)束標(biāo)識為止,且長度不包括結(jié)束標(biāo)識。本題中字符串,從第一個字符開始,遇到第一個結(jié)束標(biāo)識‘\0’為止,注意‘\0’不占字符串長度,所以字符串長度為7。因此A選項正確。
(11)C
【解析】strcpy:字符串拷貝函數(shù);str1en:求字符串長度函數(shù)(注意:不包含字符串結(jié)束標(biāo)識符‘、0’);strcat:字符串連接函數(shù)。執(zhí)行完語句strcat(P,r);后,P數(shù)組中存儲的元素為a,b,c,d,a,b,C,d,8;執(zhí)行語句strcpy(P+str1en(q),q);得到的結(jié)果是將q所指向的字符串拷貝至P+str1en(q)開始的存儲位置,因為str1en的值為3,即從P+3開始存儲q中的元素。所以執(zhí)行完strcpy(P+str|en(q),q)語句后,字符數(shù)組P[20]的存儲元素為a,b,c,a,b,o;所以str1en(P)的結(jié)果為6。因此C選項正確。
(12)B
【解析】本題中執(zhí)行fun(a)時,會取字符串a(chǎn)的第一個字母B,因為字母B的ASCI1碼值為66,所以不會輸出字母8,函數(shù)只會輸出ASCI1碼值為奇數(shù)的字母,字母Y的ASCI1碼值為89,字母T的ASCI1碼值為84,字母E的ASCII碼值為69。因此B選項正確。
(13)D
【解析】fun函數(shù)中的變量X為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可以保留上次調(diào)用時的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,x的定義相當(dāng)于不存在,直接使用上次X的值。fun函數(shù)被調(diào)用了5次,每次調(diào)用后的返回值累加到s上。5次調(diào)用后,x的值為6,8的值為1+2+3+4+5+6=21。因此D選項正確。
(14)B
【解析】本題考察的是變量的作甩范圍。如果在同一個源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量被“屏蔽”,即不起作用:奉題中,在fun1()和main()函數(shù)內(nèi)訪問的是全局變量a和b,在fun2()函數(shù)中訪問的是形參變量a和b。所以,main()函數(shù)中的prinff()函數(shù)輸出的是在fun1()函數(shù)中被改變的全局變量a和b的值c、D,而fun2()函數(shù)中輸出的是傳遞給它的實參值E、F。因此B選項正確。
(15)A
【解析】typedef并不是增加了新類型,面是用一個新名字替代已存在的類型,不能為變量說明一個新名,使用typedef可以增強程序的可移植性。所以A選項錯誤:
(16)D
【解析】本題考查鏈表的操作,本題中首先是s指向了它的下個結(jié)點,題目中說明了s總是指向鏈表的第一個結(jié)點,然后whi1e循環(huán)找到鏈表的最后一個元素,然后最后一個元素指向了之前鏈表的頭結(jié)點,之前頭結(jié)點指向了空結(jié)點,所以本題實現(xiàn)的功能是使首結(jié)點成為尾結(jié)點。選項D正確。
(17)C
【解析】本題考查帶參數(shù)的宏定義,s為帶參數(shù)的宏定義,運行S(k+j)為4*(k+j)*k+j+1=143,選項C正確。
(18)C
【解析】本題考查位運算,屬于基礎(chǔ)知識,題目中將整型變量8,二進(jìn)制表達(dá)為00(301000,右移一位為00000100,即4,選項c正確。
(19)B
【解析】本題考查字符處理函數(shù)和文件操作函數(shù)。屬于基礎(chǔ)知識,其中B選項getchar函數(shù)是用于從終端讀人一個字符。
(20)B
【解析】本題考查文件操作函數(shù),fwrite和rewind函數(shù),題目中先是將s2字符串寫入adc.dat中,然后將寫指針回到文件開頭,然后寫入s1字符串,那么s1字符串就將前5個字符覆蓋,所以最終結(jié)果為Chinang,選項B正確。
【全國計算機二級《C語言》預(yù)測試題及答案】相關(guān)文章:
計算機二級C語言預(yù)測試題及答案10-30
全國計算機二級《C語言》鞏固試題及答案06-10
2015計算機二級《C語言》預(yù)測試題及答案05-21
計算機二級《C語言》預(yù)測試題及答案201611-08
2016計算機二級《C語言》預(yù)測試題及答案10-27
全國計算機二級《C語言》測試題及答案10-28