2017年計(jì)算機(jī)二級(jí)《C語言》考前試題及答案2

字號(hào):


    (21)有以下程序:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    (22)有以下程序:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.02356
    B.0235
    C.235
    D.2356
    以下關(guān)于retllm語句的敘述中正確的是( )。
    A.一個(gè)自定義函數(shù)中必須有一條return語句
    B.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條retum語句
    C.定義成void類型的函數(shù)中可以有帶返回值的return語句
    D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處
    (24)已定義以下函數(shù):
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    fun函數(shù)的返回值是( )。
    一個(gè)整數(shù)
    B.不確定的值
    C.形參P中存放的值
    D.形參P的地址值(25)以下程序段完全正確的是( )。
    int * p;scanf(”%d”,&p);
    B.int*p;scanf(”%d”,P);
    C.int k,* P:&k;scanf(’’%d”,P);
    D.int k,*p;*P=&k;scanf(”%d”,P);
    (26)設(shè)有定義:
    double a[10],*s=a;
    以下能夠代表數(shù)組元素a[3]的是( )。
    A.($s)[3]
    B.}(s+3)
    C.*s[3]
    D.}s+3
    27、有以下程序
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.6,2,3,4,5,
    B.2,2,3,4,5,
    C.1,2,3,4,5,
    D.2,3,4,5,6,
    (28)有以下程序:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.4
    B.34
    C.31
    D.32
    (29)以下選項(xiàng)中正確的語句組是( )。
    A.char*s;8={1.BOOK!”}i
    B.char*s;8=”BOOK!”;
    C.char S[10];S=”BOOK!”;
    D.char S[];S=”BOOK!”;(30)若有定義語句:
    char}sl=‘’0K”,:It s2=”ok”;
    以下選項(xiàng)中,能夠輸出“OK”的語句是( )。
    A.if(strcmp(sl,s2)!=0)puts(s2);
    B.if(strcmp(sl,s2)!=0)puts(s1);
    C.if(strcmp(sl,s2)==1)puts(s1);
    D.if(strcmp(sl,s2)==0)puts(s1);
    (31)有以下程序:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.Afternoon
    B.ftemoon
    C.Morning
    D.oming
    (32)有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.ab cd EFg!
    B.Ab Cd EFg!
    C.ab cd EFG!
    D.aB cD EFG!
    (33)有以下程序:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.0
    B.9
    C.6
    D.8
    (34)有以下程序:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序執(zhí)行后的輸出結(jié)果是( )。
    A.55.
    B.50
    C.45
    D.60
    (35)有以下結(jié)構(gòu)體說明、變量定義和賦值語句:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    則以下scanf函數(shù)調(diào)用語句有錯(cuò)誤的是( )。
    scanf(”%s”,s[0].name);
    B.scanf(”%d”,&s[0].a(chǎn)ge);
    C.scanf(”%c”,&(ps一>sex));
    D.scanf(”%d”,ps一>age):
    (36)若有以下語句:typedef struct S{int 9;char h;}T;以下敘述中正確的是( )。
    A.可用s定義結(jié)構(gòu)體變量
    B.可用T定義結(jié)構(gòu)體變量
    C.S是struct類型的變量
    D.T是struct S類型的變量
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.1002,ZhangDa,1202.0
    B.1002,ChangRon9。1202.0
    C.1001,ChangRon9,1098.0
    D.1001,ZhangDa,1098.0
    (38)設(shè)有宏定義:
    #define IsDIV(k,n)((k%1"1==1)?1:O)且變量m已正確定義并賦值,則宏調(diào)用:
    IsDIV(m,5)&&IsDIV(m,7)為真時(shí)所要表達(dá)的是( )。
    判斷m是否能被5和7整除
    B.判斷m被5和7整除是否都余l(xiāng)
    C.判斷m被5或者7整除是否余1
    D.判斷m是否能被5或者7整除
    (39)有以下程序:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.3
    B.1
    C.2
    D.0
    (40)有以下程序:
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    2016年計(jì)算機(jī)二級(jí)C語言考前20天必做題(6)
    程序運(yùn)行后的輸出結(jié)果是( )。
    A.1 2
    B.1 4
    C.123 4
    D.123 456
     
     
     
    (21)B【解析】第一次執(zhí)行外循環(huán),i的值為3,第一次執(zhí)行內(nèi)循環(huán)j的值為1,j&1t;=2條件成立,打印i+j的值,即4;第二次執(zhí)行內(nèi)循環(huán)J的值為2,j&1t;=2條件成立,打印i+j的值,即5;再判斷條件不成立,打印回車換行符,跳出內(nèi)循環(huán)。第二次執(zhí)行外循環(huán),i的值為2,內(nèi)循環(huán)的執(zhí)行同第一次一樣,所以打印3和4,打印回車換行,結(jié)束內(nèi)循環(huán)。第三次執(zhí)行外循環(huán)i的值為1,同理內(nèi)循環(huán)中打印2和3,打印回車換行符,結(jié)束內(nèi)循環(huán)。
    (22)C【解析】k的值為5,逐個(gè)對caBe語句進(jìn)行匹配,均不匹配,執(zhí)行defau1t下的語句n=0;k一一。再執(zhí)行case2:ca804:后面的語句n+=2;k一一;。執(zhí)行break語句跳出switch判斷,打印n的值,即2。經(jīng)過第一次循環(huán)后,k的值為3,然后進(jìn)行k>0&&11&1t;5條件判斷為真。第二次執(zhí)行循環(huán)體,執(zhí)行case3:后面的語句n+=1;k一一;。再執(zhí)行break語句跳出循環(huán),此時(shí)打印n的值3,此時(shí)k的值為2。第三次執(zhí)行循環(huán)體k的值為2,滿足條件,執(zhí)行case2:case4:后面的語句n+=2;k一一;。執(zhí)行break語句跳出循環(huán)體。打印n的值5。此時(shí)n不滿足條件k>0&&n&1t;5,所以結(jié)束循環(huán)。整個(gè)程序的打印結(jié)果為235。
    (23)B【解析】在函數(shù)中允許有多個(gè)Iett1r11語句,但每次調(diào)用只能有一個(gè)return語句被執(zhí)行,因此只能返回一個(gè)函數(shù)值。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,c選項(xiàng)描述錯(cuò)誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會(huì)自動(dòng)返回到調(diào)用處,A、D選項(xiàng)描述錯(cuò)誤。因此B選項(xiàng)正確。
    (24)A【解析】返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型。因此A選項(xiàng)正確。
    (25)C【解析】A選項(xiàng)中錯(cuò)在沒有對指針進(jìn)行初始化,是無效指針,并且在scanf(”%d”,&p)中無需再進(jìn)行取地址操作;B選項(xiàng)中沒有對指針進(jìn)行初始化,是無效指針;D選項(xiàng)中語句+P=&k;的左端t pt是指針?biāo)竷?nèi)存空間的值,&k是地址,應(yīng)為P=&k。因此C選項(xiàng)正確。
    (26)B【解析】語句·s=a;表示指針變量s指向一維數(shù)
    組a的首地址。a[3]表示引用數(shù)組a的第4個(gè)元素,+(s+i)表示引用指針8所指數(shù)組a的第i+1個(gè)元素,選項(xiàng)A、C、D的表示方法錯(cuò)誤,只有B選項(xiàng)正確。
    (27)A【解析】本題考查的是函數(shù)的地址調(diào)用,將數(shù)組名作為數(shù)組首地址進(jìn)行傳遞,然后取首個(gè)數(shù)組元素值進(jìn)行加1運(yùn)算,循環(huán)5次。因此A選項(xiàng)正確。
    (28)C【解析】本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4.0,這樣對應(yīng)定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對s[i][j]進(jìn)行操作實(shí)際上就是對主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中的那個(gè)元素。因此C選項(xiàng)正確。
    (29)B【解析】A選項(xiàng)去掉大括號(hào)就正確了;c選項(xiàng)和D選項(xiàng)應(yīng)在定義時(shí)賦初值。因此B選項(xiàng)正確。
    (30)B【解析】strcmp(s1,s2)是字符串比較函數(shù),比較規(guī)則是兩個(gè)字符串自左向右逐個(gè)字符相比(按照ASCI1碼值大小),-以第一個(gè)不相同的字符的大小作為比較結(jié)果。因?yàn)?。O。&1t;10.,所以strcmp(s1,s2)為負(fù)值,只有B選項(xiàng)正確。
    (31)A【解析】本題主函數(shù)中定義了一個(gè)指針數(shù)組a,可以將它看成一個(gè)以字符指針為元素的一維數(shù)組。和一般的一維數(shù)組名能賦給同類型指針變量一樣,該字符指針數(shù)組也可以賦給指向字符指針的指針,所以數(shù)組名a可以用做函數(shù)fun()的實(shí)參。在fun()函數(shù)中,++P操作使形參P往后移動(dòng)一個(gè)字符指針的位置,即指針a[1]的位置。故最后通過礎(chǔ)nd()函數(shù)輸出的字符串為“Afternoon”。因此A選項(xiàng)正確。
    (32)D【解析】調(diào)用缸函數(shù)后,實(shí)參數(shù)組名s1傳給形參指針P,P也指向數(shù)組s1。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個(gè)字符是空格并且前一個(gè)字符是小寫字母的話,就把前一個(gè)字符轉(zhuǎn)換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉(zhuǎn)換為大寫。因此D選項(xiàng)正確。
    (33)C【解析】主函數(shù)中調(diào)用f函數(shù),同時(shí)將數(shù)值3傳遞給變量x,執(zhí)行條件不滿足條件if(x==0I1X==1);跳過re—turn(3);,直接執(zhí)行語句Y=X}X—f(x一2);這里f(x一2)為函數(shù)的遞歸調(diào)用,再次訶用f函數(shù),此時(shí)x=1,判斷條件成立,返回3給f(1),Y=3}3—3=6,最后將6返回主函數(shù),并進(jìn)行輸出。因此c選項(xiàng)正確。
    (34)D【解析】內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。m(a,5)的值是15,再次調(diào)用后Ⅲm=15,所以fun(b,4)=45,s=45+15=60。因此D選項(xiàng)正確。
    (35)D【解析】本題考查結(jié)構(gòu)體的相關(guān)知識(shí),題目中需要輸入一個(gè)變量,scanf要求參數(shù)為指針,而D選項(xiàng)中ps一>age為一個(gè)變量,不是指針,所以錯(cuò)誤。
    (36)B【解析】本題考查typ1edef重新聲明一種結(jié)構(gòu)體類型,那么T為結(jié)構(gòu)體類型,而不是結(jié)構(gòu)體變量,所以B選項(xiàng)正確。
    (37)B【解析】本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù),題目雖然看似復(fù)雜,其實(shí)比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對參數(shù)重新賦值并返回,所以該題目的答案為B選項(xiàng)。
    (38)B【解析1本題考查邏輯運(yùn)算符的相關(guān)概念,邏輯與若要為真,那么兩邊都要為真,即m都能被5和7整除都余1,所以選項(xiàng)B正確。
    (39)A【解析】本愿考查位運(yùn)算符以及相關(guān)運(yùn)算,‘為按位或,&為按位與,部么a'b為3,再與c按位與仍然為3,所以答案為A選項(xiàng)。
    (40)D【解析】fprintf()函數(shù)向文本文件輸出數(shù)據(jù),將輸出的內(nèi)容按格式輸出翻硬盤的文本文件中。執(zhí)行兩次fprintf后。文件中的內(nèi)容為。123 456”,所以D選項(xiàng)正確。