2017計(jì)算機(jī)二級(jí)C語(yǔ)言鞏固練習(xí)
成績(jī)的取得離不開(kāi)我們平時(shí)的努力,以下是百分網(wǎng)小編為大家整理的2017計(jì)算機(jī)二級(jí)C語(yǔ)言鞏固練習(xí)題,希望對(duì)大家的學(xué)習(xí)起到幫助!
1.下列說(shuō)法正確的是( )。
A.在C語(yǔ)言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù)定義元素個(gè)數(shù)可變的數(shù)組
B.在c語(yǔ)言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)
C.在C語(yǔ)言中,數(shù)組元素的數(shù)據(jù)類(lèi)型可以不一致
D.在C語(yǔ)言中,定義一個(gè)數(shù)組后.就確定了它所容納的元素的個(gè)數(shù)
2.表達(dá)式“~0x11”的值是( )。
A.0xFFEE
B.0x71
C.0x0071
D.0xFFF1
3.下列程序的輸出結(jié)果是( )。
main()
{ int p[8]={11,12,13,14,15,16,17,18},i=0,j =0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%d\n",j);
}
A.42
B.45
C.56
D.60
4.下列程序的輸出結(jié)果是( )。
#included stdi0.h>
#included string.h>
void fun(int b[])
{ static int i=0;
do
{ b[i]+=b[i+1];
}while(++i<2);
}
main()
{ int k,a[5]={1,3,5,4,9};
fun(a);
for(k=0;k<5;k++)printf("%d",a[k]);
}
A.13579
B.48579
C.48549
D.48999
5.有以下程序:
main()
{ int a=1,b=3,C=5,*P;
int*p1=&a,*p2=&b,*p3=&c;
*p=*p1*(*p2);
}
執(zhí)行后的輸出結(jié)果是( )。
A.1
B.2
C.3
D.4
6.有以下程序:
fun(int x)
{ int P;
if(x==0 || x==l)return(3);
p=x-fun(x-2);
return p;
}
main()
{printf("%d\n",fun(7));}
程序執(zhí)行后的輸出結(jié)果是( )。
A.7
B.3
C.2
D.0
7.下述程序的運(yùn)行結(jié)果是( )。
#included stdio.h>
#included strin9.h>
main()
{ char*s1="abDuj";
char*s2="ABdUG";
int t;
t=strcmp(s1,s2);
printf("%d",t);
}
A.正數(shù)
B.負(fù)數(shù)
C.零
D.不確定的值
8.下列程序中c的二進(jìn)制值是( )。
char a=2,b=4,c;
c=a^b>>2;
A.00000011
B.00010100
C.00011100
D.00011000
9.函數(shù)fseek()的正確調(diào)用形式是( )。
A.fseek(位移量,起始點(diǎn),文件類(lèi)型指針);
B.fseek(文件類(lèi)型指針,位移量,起始點(diǎn));
C.fseek(文件類(lèi)型指針,起始點(diǎn),位移量);
D.fseek(起始點(diǎn),位移量,文件類(lèi)型指針);
10.下列敘述正確的是( )。
A.C語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
B.打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)了寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù)
D.當(dāng)對(duì)文件的讀(寫(xiě))操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
11.為了避免在嵌套的條件語(yǔ)句if else中產(chǎn)生二義性,C語(yǔ)言規(guī)定,else子句總是與( )配對(duì)。
A.縮排位置相同if
B.其前面最近的if
C.其后面最近的if
D.同一行上的if
12.設(shè)有下列程序段:
char str[]="HelloWorld":
char* plr;
ptr=str:
執(zhí)行上面的程序段后,*(ptr+10)的值為( )。
A.’\0 ’
B.’0’
C.不確定的值
D.’0’的地址
13.有以下程序:
void swap(char*x,char*y)
{ char t;
t=*x;*x=*y;*y=t;
}
main()
{ char*s1="abe",*s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序執(zhí)行后的輸出結(jié)果是( )。
A.123,abe
B.abc.123
C.1bc,a23
D.321,cba
14.下列程序的運(yùn)行結(jié)果是( )。
#include
main()
{ static char a[]="Languagef",b[]="programe":
char*p1,*p2;int k;
p1=a;p2=b;
for(k=0;k<=8;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k)):
}
A.gae
B.ang
C.program
D.有語(yǔ)法錯(cuò)
15.下列程序的運(yùn)行結(jié)果為( )。
#define MAX(x,y)(x)>(y)?(x):(y)
main()
{ int a=2,b=3,C=1,d=3,t:
printf("%d\n",(MAX(a+h,c+d))*100):
}
A.500
B.5
C.4
D.400
參考答案及解析
1.D。【解析】在C語(yǔ)言中,數(shù)組元素的個(gè)數(shù)是確定的,不允許隨機(jī)變動(dòng),數(shù)組定義好后,它所能容納的元素的個(gè)數(shù)也就確定了,并且同一個(gè)數(shù)組中所有元素都是同一類(lèi)型。
2.A。【解析】本題主要考查按位求反運(yùn)算:十六進(jìn)制整型常量的形式是以數(shù)字Ox開(kāi)頭的十六進(jìn)制字符串;位求反運(yùn)算的規(guī)則是:將二進(jìn)制表示的運(yùn)算對(duì)象按位取反,即將1變0,將0變1。
3.B!窘馕觥緾語(yǔ)言中,數(shù)組的下標(biāo)默認(rèn)為0,因此數(shù)組P的下標(biāo)從0開(kāi)始,所以p[8]的范圍為0~7。第l次循環(huán)i=0,執(zhí)行循環(huán),得出i=1,因此p[i]為p[1]=12,12%2= 0,不執(zhí)行后面的語(yǔ)句;接著進(jìn)行第2次循環(huán),此時(shí)i=1,小于7執(zhí)行循環(huán),并且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執(zhí)行后面的語(yǔ)句;依此類(lèi)推最后退出循環(huán)。最后j 的值為:j=13+15+17=45。
4.C!窘馕觥勘绢}考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實(shí)現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過(guò)調(diào)用fun函數(shù),按上面的規(guī)則對(duì)數(shù)組a重新賦值,最后輸出數(shù)組a。
5.C!窘馕觥勘绢}中指針p1、p2、p3指向a、b、c值所存放的地址空間,然后再將指針變量*p1、*p2中值的乘積賦給指針變量*P,即賦給變量c,輸出c的值3。
6.C。【解析】在函數(shù)funlint x)中,有個(gè)if語(yǔ)句判斷,如果參數(shù)x等于0或1時(shí),返回值,否則進(jìn)入下面的p=x-fun (x-2)遞歸函數(shù)。當(dāng)在主函勢(shì)中調(diào)用fun(7)時(shí),其過(guò)程為:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun (1)))=7-(5-(3—3))=7-5=2”,所以最后的輸出結(jié)果為2。
7.A!窘馕觥勘绢}考查符符串比較函數(shù)和兩個(gè)字符串比較的原則這兩個(gè)知識(shí)點(diǎn)。
(1)兩字符串比較的原則是依次比較兩個(gè)字符串同一位置的一對(duì)字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對(duì)字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個(gè)字符串相等;若一個(gè)字符串全部i個(gè)字符與另一個(gè)字符串的前i個(gè)字符相同,則字符串較長(zhǎng)的較大
(2)strcmp(s1,s2)的返回值,當(dāng)str1str2,返回值為正數(shù)。
8.A。【解析】本題主要者查右移運(yùn)算和按位異或。把b化為二進(jìn)制數(shù)為00000100,右移兩位后為00000001,a的二進(jìn)制為00000010,兩者異或?yàn)?0000011。
9.B。【解析】指針函數(shù)fseek()的調(diào)用形式為:fseek (fp,offset,position);fseek函數(shù)參數(shù)說(shuō)明:“fp”是指向該文件的文件型指針;“offset”為位移量,是指從起始點(diǎn)position 到要確定的新位置的字節(jié)數(shù)。以起點(diǎn)為基準(zhǔn),向前移動(dòng)字節(jié)數(shù)。“position”為起始點(diǎn),指出以文件的什么位置為基準(zhǔn)進(jìn)行移動(dòng),position的值用整型常數(shù)表示,“0”表示文件的開(kāi)頭,“1”表示文件的當(dāng)前位置,“2”表示文件的末尾。
10.D。【解析】在C語(yǔ)言巾,文件的存取方式有兩種:順序存取和直接存取。如果以“a”的方式對(duì)已打開(kāi)的文件進(jìn)
行寫(xiě)操作后,則原文件中內(nèi)容將保存,新的數(shù)據(jù)寫(xiě)在原有內(nèi)容之后。如果以“a+”的方式勾讀和寫(xiě)操作而打開(kāi)文件,則可以對(duì)文件進(jìn)行讀寫(xiě),而且在讀和寫(xiě)操作之間不必關(guān)閉文件,可以從頭開(kāi)始讀。當(dāng)對(duì)文件的讀(寫(xiě))操作完成之后,必須將它關(guān)閉。
11.B!窘馕觥緾語(yǔ)言規(guī)定,在if…else語(yǔ)句中,else總是與它前面的最近的if配對(duì)。
12.A!窘馕觥勘绢}主要考查字符數(shù)組和指針,在c語(yǔ)言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上’\0 ’,所以數(shù)組str有11個(gè)元素;ptr指向數(shù)組str的首地址,ptr+ 10是指向str[10],*(ptr+10)是引用str[10]的值。
13.C!窘馕觥勘绢}考查swap函數(shù),它的作用是把x、Y 所指的內(nèi)容互換,其他的不變,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,僅僅’a’與’1’互換,其他的沒(méi)有變。
14.A!窘馕觥勘绢}考查指針用法,if語(yǔ)句的功能是判斷兩個(gè)數(shù)組中的字符是否相同,如果相同則輸出。
15.A!窘馕觥勘绢}考查帶參數(shù)宏的定義,運(yùn)算符:(x) >(y)?(x):(y)當(dāng)表達(dá)式為真時(shí)輸出X,否則輸出Y,調(diào)用(MAX(a+b,c+d))*100時(shí),(a+b=5)>(c+d=4),輸出a+b=5,所以x=5*100。
【計(jì)算機(jī)二級(jí)C語(yǔ)言鞏固練習(xí)】相關(guān)文章:
計(jì)算機(jī)二級(jí)C語(yǔ)言鞏固練習(xí)題201708-16
計(jì)算機(jī)二級(jí)《C語(yǔ)言》考前鞏固練習(xí)題201609-10
2017計(jì)算機(jī)二級(jí)C語(yǔ)言知識(shí)鞏固題08-23
2017計(jì)算機(jī)二級(jí)C語(yǔ)言知識(shí)鞏固試題05-18
計(jì)算機(jī)二級(jí)C語(yǔ)言練習(xí)題07-18
計(jì)算機(jī)二級(jí)C語(yǔ)言考試沖刺練習(xí)10-06
計(jì)算機(jī)二級(jí)《C語(yǔ)言》真題練習(xí)11-28