二級(jí)C語言筆試考點(diǎn)相關(guān)真題(答案解析版)_第1頁
二級(jí)C語言筆試考點(diǎn)相關(guān)真題(答案解析版)_第2頁
二級(jí)C語言筆試考點(diǎn)相關(guān)真題(答案解析版)_第3頁
二級(jí)C語言筆試考點(diǎn)相關(guān)真題(答案解析版)_第4頁
二級(jí)C語言筆試考點(diǎn)相關(guān)真題(答案解析版)_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第1章 C語言概述1.1 C語言基礎(chǔ)知識(shí)1.【2011年9月選擇題第11題】以下敘述中錯(cuò)誤的是_。A)C語言編寫的函數(shù)源程序,其文件名后綴可以是CB)C語言編寫的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件 。C)C語言編寫的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行D)一個(gè)C語言程序只能有一個(gè)主函數(shù)參考答案:C【解析】C語言編寫的每個(gè)函數(shù)可以被獨(dú)立編譯,但是除主函數(shù)外不能獨(dú)立執(zhí)行。2.【2011年3月選擇題第11題】計(jì)算機(jī)高級(jí)語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是A)C語言程序僅可以編譯執(zhí)行B)C語言程序僅可以解釋執(zhí)行C)C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D)以上說法都不對 參考答

2、案:A【解析】解釋程序是將源程序(如BASIC)作為輸入,解釋一句后就提交計(jì)算機(jī)執(zhí)行一句,并不形成目標(biāo)程序。編譯程序是把高級(jí)語言(如FORTRAN、COBOL、Pascal、C等)源程序作為輸入,進(jìn)行翻譯轉(zhuǎn)換,產(chǎn)生出機(jī)器語言的目標(biāo)程序,然后再讓計(jì)算機(jī)執(zhí)行這個(gè)目標(biāo)程序,得到計(jì)算結(jié)果。3.【2011年3月選擇題第12題】以下敘述中錯(cuò)誤的是A)C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的B)用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行C)通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行D)在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件 參考答案:D【解析】C語言的可執(zhí)行程序是由一系

3、列機(jī)器指令組成的,用C語言編寫的源程序必須經(jīng)過編譯生成二進(jìn)制目標(biāo)代碼,再經(jīng)過連接才能運(yùn)行,并且可以脫離C語言集成開發(fā)環(huán)境。故答案為D)。1.2 常量、變量和數(shù)據(jù)類型4.【2011年9月選擇題第13題】以下選項(xiàng)中關(guān)于C語言常量的敘述錯(cuò)誤的是。A)所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量B)常量分為整型常量、實(shí)型常量、字符常量和字符串常量C)常量可分為數(shù)值型常量和非數(shù)值型常量D)經(jīng)常被使用的變量可以定義成常量 參考答案:D【解析】常量是其值不可變化的量。常量分為數(shù)字常量和字符常量。在C語言中,常量多是通過符號(hào)常量來表示的。數(shù)字常量又包括整形常量和浮點(diǎn)型常量,浮點(diǎn)型常量又稱實(shí)數(shù)。在程序中不

4、希望被改變的變量才定義為常量,而不是經(jīng)常使用的變量。5.【2011年9月選擇題第14題】若有定義語句:int a=10;double b=3.14;,則表達(dá)式A+a+b值的類型是_。A)char B)int C)double D)float參考答案:C【解析】本題考查數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換,C語言語法規(guī)定,當(dāng)不同的變量相加時(shí)按最長的變量對齊,即轉(zhuǎn)換優(yōu)先級(jí)為:char < int < float < double。6.【2011年9月選擇題第21題】以下不能輸出字符A的語句是(注:字符A的ASCII碼值為65,字符a的ASCII碼值為97)_。 A)printf("%cn

5、",'a'-32);B)printf("%dn",'A'); C)printf("%cn",65);D)printf("%cn",'B'-1);參考答案:B【解析】A)、C)、D)三個(gè)選項(xiàng)的輸出格式都是%c,只有B)的輸出格式是%d,只會(huì)輸出數(shù)字65,所以應(yīng)選擇B)。7.【2011年9月填空題第12題】有以下程序 #include <stdio.h> main() int c3=0,k,i; while(k=getchar()!='n') ck-&#

6、39;A'+; for(i=0;i<3;i+) printf("%d",ci); printf("n"); 若程序運(yùn)行時(shí)從鍵盤輸入ABCACC<回車>,則輸出結(jié)果為_【12】_。 參考答案:213【解析】當(dāng)輸入A時(shí),a0+;當(dāng)輸入B時(shí),a1+;當(dāng)輸入C時(shí),a2+;直到遇到回車循環(huán)停止,題中共輸入2個(gè)A,1個(gè)B,3個(gè)C,所以輸出結(jié)果為213。8.【2011年3月選擇題第13題】以下選項(xiàng)中不能用作C程序合法常量的是A)1,234B) '123'C)123D)"x7G" 參考答案:A【解析】常量是在

7、程序運(yùn)行過程中,其值不能被改變的量。常量類型包括:整型常量、實(shí)例常量、字符常量、字符串常量和符號(hào)常量。A)含有逗號(hào),容易理解為逗號(hào)表達(dá)式,所以不能作為常量;B)選項(xiàng)為字符常量,表示八進(jìn)制數(shù)123代表的ASCII字符;C)選項(xiàng)為整型常量;D)選項(xiàng)為字符串常量。9.【2011年3月選擇題第14題】以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是A).1e0B)3.0e0.2C)E9D)9.12E 參考答案:A【解析】浮點(diǎn)型常量有十進(jìn)制小數(shù)形式和指數(shù)形式。指數(shù)形式要求字母e(或者E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。B)、C)、D)都是不合法的指數(shù)形式,故答案為A)。10.【2011年3月填空題第8題】有

8、以下程序(說明:字符0的ASCIl碼值為48)#include<stdio.h>main() char c1,c2;scanf("%d",&c1);c2=c1+9;printf("%c%cn",c1,c2);若程序運(yùn)行時(shí)從鍵盤輸入48<回車>,則輸出結(jié)果為 【8】 。 參考答案:09【解析】本題中通過ASCII碼對字符變量賦值,由于字符0的ASCII碼是48,因此字符變量c1為0,c2的ASCII碼比c1大9,因此c2為9。11.【2010年9月選擇題第13題】以下敘述中錯(cuò)誤的是A)C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式

9、進(jìn)行B)C程序在運(yùn)行過程中所有計(jì)算都以十進(jìn)制方式進(jìn)行C)所有C程序都需要編譯鏈接無誤后才能運(yùn)行D)C程序中整型變量只能存放整數(shù),實(shí)型變量只能存放浮點(diǎn)數(shù) 參考答案:B【解析】C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式進(jìn)行,所以A)正確B)錯(cuò)誤。所有C程序先編譯再鏈接,全都無誤后才能運(yùn)行。C程序中整型變量用于存放整數(shù),實(shí)型變量用于存放浮點(diǎn)數(shù)。所以,本題答案為B)。12.【2010年9月選擇題第15題】以下選項(xiàng)中能表示合法常量的是A)整數(shù):1,200 B)實(shí)數(shù):1.5E2.0 C)字符斜杠:'' D)字符串:"007"參考答案:D【解析】A)選項(xiàng)中1,200不能表示

10、整數(shù)1200。B)選項(xiàng)中應(yīng)表示為1.5E2。在C語言中,反斜杠是轉(zhuǎn)義符,其后必須跟有其他字符,所以選項(xiàng)C)也是錯(cuò)誤的。D)選項(xiàng)正確。13.【2010年3月選擇題第13題】以下C語言用戶標(biāo)識(shí)符中,不合法的是A)_1 B)AaBc C)a_b D)a-b 參考答案:D【解析】標(biāo)識(shí)符由字母、下劃線、數(shù)字三個(gè)方面組成,開頭必須是字母或下劃線。14.【2010年3月選擇題第16題】以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是A)若要準(zhǔn)確無誤差地表示自然數(shù),應(yīng)使用整數(shù)類型B)若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型C)若要處理如"人員信息"等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型

11、D)若只處理"真"和"假"兩種邏輯值,應(yīng)使用邏輯類型 參考答案:D【解析】C語言中沒有邏輯類型,若只處理"真"或"假"兩種邏輯值,可以使用整型數(shù)"1"或"0"表示,故選D。15.【2009年9月選擇題第12題】以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是_。A)void B) 8_8C)_0_ D)unsigned 參考答案:C【解析】 C語言的標(biāo)識(shí)符命名規(guī)則為:只能由字母、數(shù)值和下劃線3種字符組成;第一個(gè)字符必須是字母或下劃線;不能與C語言中的關(guān)鍵字或保留字相同。16.【2009年9月

12、選擇題第22題】有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是_。A)chara='a'B)chara='n'C)chara='aa'D)chara='x2d' 參考答案:C【解析】 aa是字符串,不用加上單引號(hào)。17.【2009年3月選擇題第11題】以下選項(xiàng)中合法的標(biāo)識(shí)符是_。A)1_1 B)1-1 C)_11 D)1_ _ 參考答案:C【解析】標(biāo)識(shí)符命名規(guī)則:標(biāo)識(shí)符必須由字母(az或AZ)或下劃線(_)開頭;標(biāo)識(shí)符的其他部分可以用字母、下劃線或數(shù)字(09)組成;大小寫字母表示不同意義,如cout和Cout代表不同的標(biāo)識(shí)符;在定義標(biāo)識(shí)

13、符時(shí),雖然語法上允許用下劃線開頭,但是,我們最好避免定義用下劃線開頭的標(biāo)識(shí)符,因?yàn)榫幾g器常常定義一些下劃線開頭的標(biāo)識(shí)符。因此,本題正確答案為C)。18.【2009年3月選擇題第12題】若函數(shù)中有定義語句:int k;,則_。A)系統(tǒng)將自動(dòng)給k賦初值0B)這時(shí)k中的值無定義C)系統(tǒng)將自動(dòng)給k賦初值-1D)這時(shí)k中無任何值 參考答案:B【解析】用int方法定義變量時(shí),編譯器僅為變量開辟存儲(chǔ)單元,并沒有在存儲(chǔ)單元中存放任何值,此時(shí)變量中的值是無確定的,稱變量值"無意義"。因此,本題正確答案為B)。19.【2009年3月選擇題第13題】以下選項(xiàng)中,能用作數(shù)據(jù)常量的是_。A)o115

14、B)0118C)1.5e1.5D)115L 參考答案:D【解析】 整型常量和實(shí)型常量統(tǒng)稱為數(shù)值型常量。本題中A)項(xiàng)是數(shù)字和字符的組合,不能構(gòu)成數(shù)值型常量。B)項(xiàng)以0開頭代表該常量是一個(gè)8進(jìn)制數(shù),但其后面的數(shù)字中又出現(xiàn)了"8",因此不正確。C)項(xiàng)用指數(shù)形式表示實(shí)型常量,但e后面必須為整數(shù),不正確。D)項(xiàng)中一個(gè)常量后面加字母L表示長整型數(shù)據(jù)。因此,本題答案為D)。第2章 運(yùn)算符與表達(dá)式2.1 C語言運(yùn)算符簡介20.【2010年9月選擇題第38題】有以下程序#include<stdio .h>main()int s,t,A=10;double B=6; s=sizeo

15、f(A); t=sizeof(B); printf("%d,%dn",s,t);在VC6平臺(tái)上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是A)2,4 B)4,4 C)4,8 D)10,6 參考答案:C【解析】sizeof的作用就是返回一個(gè)對象或者類型所占的內(nèi)存字節(jié)數(shù)。在VC6中整型占4個(gè)字節(jié),雙精度實(shí)型占8個(gè)字節(jié),所以選C)。2.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式21.【2011年9月填空題第7題】以下程序運(yùn)行后的輸出結(jié)果是_【7】_。 #include <stdio.h> main() int a=37; a%=9;printf("%dn",a); 參考答案:

16、1【解析】本題考查的是取余運(yùn)算。37%9 商為4,余數(shù)為1,所以輸出的值為1。22.【2011年3月選擇題第18題】有以下程序#include<stdio.h>main() int x=011;printf("%dn",+x);程序運(yùn)行后的輸出結(jié)果是A)12B)11C)10D)9 參考答案:C【解析】x=011表示把八進(jìn)制的11賦值給變量x,因此x的值為十進(jìn)制的9,程序運(yùn)行的結(jié)果輸出變量x自加運(yùn)算后的十進(jìn)制值,即10。23.【2011年3月填空題第6題】以下程序運(yùn)行后的輸出結(jié)果是 【6】 。#include<stdio.h>main() int a;

17、a=(int)(double)(3/2)+0.5+(int)1.99*2);printf("%dn",a); 參考答案:3【解析】本題中3/2=1,(double)(3/2)=1,(int)1.99*2=1*2=2,因此(int)(1+0.5+2)=(int)3.5=3。24.【2010年3月選擇題第12題】以下關(guān)于C語言的敘述中正確的是A)C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間B)C語言中的變量可以在使用之前的任何位置進(jìn)行定義C)在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致D)C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示 參考答案:A【解析】C語言

18、中注釋可以放在任何位置,但不能夾在變量名或關(guān)鍵字中間,選項(xiàng)A正確;C語言中的變量要在使用之前定義,C標(biāo)準(zhǔn)規(guī)定定義位置在相關(guān)程序塊的首部,選項(xiàng)B錯(cuò)誤;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進(jìn)行強(qiáng)制類型轉(zhuǎn)換,選項(xiàng)C錯(cuò)誤;C語言數(shù)值常量中不允許存在空格,選項(xiàng)D錯(cuò)誤。25.【2010年3月填空題第13題】以下程序的功能是:將值為三位正整數(shù)的變量x中的數(shù)值按照個(gè)位、十位、百位的順序拆分并輸出。請?zhí)羁铡?include<stdio.h>main()int x=256; printf("%d-%d-%dn",【13】,x/10%10,x/100); 參考答案:x%10【解析】

19、x=256,x%10=6。26.【2009年9月選擇題第14題】表達(dá)式:(int)(double)9/2)-(9)%2的值是_。A)0 B)3 C)4 D)5 參考答案:B【解析】 (int)(double)9/2)的值為4,(9)%2的值為1,因此(int)(double)9/2)-(9)%2的值為3。27.【2009年9月填空題第6題】若有定義語句:int a=5;,則表達(dá)式:a+的值是_【6】_。 參考答案:5【解析】 a+的含義是在使用a值以后,使a值加1,所以a+的值為5。28.【2009年9月填空題第7題】若有語句double x=17;int y;,當(dāng)執(zhí)行y=(int)(x/5)

20、%2;之后y的值為_【7】_。 參考答案:1【解析】 y=(int)(x/5)%2=(int)(3.4)%2=3%2=1。29.【2009年3月填空題第6題】表達(dá)式(int)(double)(5/2)+2.5)的值是_【6】_。 參考答案:4【解析】計(jì)算5/2=2,其結(jié)果先轉(zhuǎn)換為double類型,即2.000000,然后加上2.5為4.5000000,再轉(zhuǎn)換為int型,所以結(jié)果為4。2.3 賦值運(yùn)算符和賦值表達(dá)式30.【2011年9月選擇題第15題】若有定義語句:int x=12,y=8,z;,在其后執(zhí)行語句z=0.9+x/y;,則z的值為_。A)1.9 B)1 C)2 D)2.4參考答案:B

21、【解析】x的值為12,y的值為8,那么x/y的值就是1,因?yàn)閦的類型是int,所以0.9+1變成int的值就是1,所以選擇B)。31.【2011年3月選擇題第15題】若有定義語句:int a=3,b=2,c=1;,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);參考答案:A【解析】在A)選項(xiàng)中,賦值語句b=4先把4賦值給整型變量b,之后執(zhí)行(b=4)=3是把常量3賦值給常量4,但是由于C語言規(guī)定賦值運(yùn)算符的左側(cè)只能是變量,不能是常量或者表達(dá)式,因此A)選項(xiàng)錯(cuò)誤。32.【2010年9月選擇題第14題】有以下定義:int

22、a;long b;double x,y;則以下選項(xiàng)中正確的表達(dá)式是A)a%(int)(x-y) B)a=x!=y; C)(a*y)%b D)y=x+y=x 參考答案:B【解析】A)選項(xiàng)中如果x與y的值相等那么取余時(shí)就會(huì)有除數(shù)為0的情況。C)選項(xiàng)中取余的兩個(gè)數(shù)據(jù)都應(yīng)為整數(shù),不能有一方為實(shí)型變量,而a*y的結(jié)果為double型。D)選項(xiàng)表達(dá)式本身就錯(cuò)誤,不能給表達(dá)式賦值。所以,本題答案為B)。33.【2009年9月選擇題第15題】若有定義語句:intx=10;,則表達(dá)式x-=x+x的值為_。A)-20 B)-10 C)0 D)10參考答案:B【解析】 x-=x+x可化為:x=x-(x+x),由于x

23、初始值為10,所以計(jì)算后,x=10-20=-10,因此選B)。34.【2010年9月選擇題第16題】表達(dá)式a+=a-=a=9的值是A)9 B)-9 C)18 D)0 參考答案:D【解析】題干中的表達(dá)式可以分解為以下表達(dá)式: a=9; a=a-a 即a=9-9,此時(shí)a的值為0; a=a+a 即a=0+0,此時(shí)a的值為0。故本題的答案為D)。35.【2009年3月選擇題第14題】設(shè)有定義:int x=2;,以下表達(dá)式中,值不為6的是_。A)x*=x+1B)x+,2*x C)x*=(1+x)D)2*x,x+=2參考答案:D【解析】 本題考察逗號(hào)運(yùn)算符的運(yùn)算方式,逗號(hào)運(yùn)算符的作用是將若干表達(dá)式連接起來

24、,它的優(yōu)先級(jí)別在所有運(yùn)算符中是最低的,結(jié)合方向?yàn)?quot;自左至右"。A)項(xiàng)和C)項(xiàng)的結(jié)果是一樣的,可展開為:x=x*(x+1)=2+,因?yàn)?運(yùn)算符有自加功能,逗號(hào)之前執(zhí)行后x的值為3,逗號(hào)后的值就是整個(gè)表達(dá)式的值,即6;D)項(xiàng)逗號(hào)之前并未給x賦值,所以表達(dá)式的值就是x+=2的值,即4。因此,本題答案為D)。2.4 位運(yùn)算36.【2011年9月選擇題第38題】有以下程序 #include <stdio.h> main() int a=2,b; b=a<<2;printf("%dn",b); 程序運(yùn)行后的輸出結(jié)果是_。A)2 B)4 C)6

25、 D)8 參考答案:D【解析】考查移位操作,b的值是由a左移兩位,所以b的值為2×2×2=8。37.【2011年3月選擇題第39題】有以下程序#include<stdio.h>main() unsigned char a=8,c;c=a>>3;printf("%dn",c);程序運(yùn)行后的輸出結(jié)果是A)32B)16C)1D)0 參考答案:C【解析】本題中將8賦值給字符變量a,則a的二進(jìn)制為"00001000",a>>3的位運(yùn)算是把a(bǔ)向右移動(dòng)三位,結(jié)果為"00000001",輸出其十

26、進(jìn)制的值1。38.【2010年9月選擇題第40題】有以下程序#include<stdio .h>main()short c=124; c=c; printf("%dn",c);若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是A)>>2 B)| 248 C)&0248 D)<<1 參考答案:D【解析】短整型在存儲(chǔ)時(shí)占用16位,按照移位運(yùn)算如果右移兩位就等于原數(shù)除以4,結(jié)果為31,如果左移一位相當(dāng)于原數(shù)乘以2結(jié)果為248,所以選擇D)。39.【2010年3月選擇題第39題】有以下程序#include<stdio.h>ma

27、in()int a=2,b=2,c=2; printf("%dn",a/b&c);程序運(yùn)行后的輸出結(jié)果是A)0 B)1 C)2 D)3參考答案:A【解析】對于a/b&c,先求a/b,得到1,然后求1&c(即按位與操作),顯然得0。40.【2009年9月選擇題第39題】若有以下程序段:intr=8;printf("%dn",r>>1);輸出結(jié)果是_。A)16 B)8 C)4 D)2 參考答案:C【解析】 8用二進(jìn)制表示為1000,右移1位后為0100,即十進(jìn)制4。41.【2009年3月選擇題第39題】有以下程序:#inc

28、lude <stdio.h> main() int a=5,b=l,t; t=(a<<2)|b;printf("%dn",t); 程序運(yùn)行后的輸出結(jié)果是_。A)2l B)11 C)6 D)1 參考答案:A【解析】按位或運(yùn)算符"|"是雙目運(yùn)算符,其功能是參與運(yùn)算的兩數(shù)各對應(yīng)的二進(jìn)位相或。左移運(yùn)算符"<<"是雙目運(yùn)算符,其功能把"<<"左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由"<<"右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。將5變換為二進(jìn)

29、制數(shù)為101,左移2位后為10100,1轉(zhuǎn)換為二進(jìn)制數(shù)為00001,10100與00001進(jìn)行或運(yùn)算后為10101,再將其轉(zhuǎn)換為十進(jìn)制數(shù)為21。因此,本題答案為A)。第3章 基本語句3.1 C語句概述42.【2009年9月選擇題第16題】有以下程序:#include <stdio.h>main()inta=1,b=0; printf("%d,",b=a+b); printf("%dn",a=2*b);程序運(yùn)行后的輸出結(jié)果是_。A)0,0 B)1,0 C)3,2 D)1,2 參考答案:D【解析】 執(zhí)行第一個(gè)printf語句時(shí),b=a+b=1,所

30、以輸出1,執(zhí)行第二個(gè)printf語句時(shí),a=2*b=2,所以輸出結(jié)果為2。3.2 賦值語句3.3 輸入輸出概念及其實(shí)現(xiàn)3.4 單個(gè)字符的輸入與輸出3.5 數(shù)據(jù)格式的輸入與輸出43.【2011年9月選擇題第16題】若有定義:int a,b;,通過語句scanf("%d;%d",&a,&b);,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是_。A)35 B)3,5 C)3;5 D)35 參考答案:C【解析】在C語言中scanf函數(shù)中輸入數(shù)據(jù)時(shí)要嚴(yán)格按照所規(guī)定的樣式輸入。44.【2011年9月填空題第6題】若程序中已給整型變量a和b賦值10和20,請寫出按以下格式

31、輸出a、b值的語句_【6】_。 *a=10,b=20* 參考答案:printf("*a=%d,b=%d*",a,b);【解析】本題考查的是printf函數(shù)的用法, prinrf函數(shù)實(shí)際上是將所有參數(shù)按字符輸出。45【2010年9月填空題第6題】以下程序運(yùn)行后的輸出結(jié)果是【6】。#include<stdio.h>main()int a=200,b=010; printf("%d%dn",a,b); 參考答案:2008【解析】整型變量a的值為200,b的值"010"是用八進(jìn)制表示的"10"即十進(jìn)制的&quo

32、t;8",最后輸出格式均為%d,即十進(jìn)制格式,所以輸出為"2008"。46【2010年9月填空題第7題】有以下程序#include<stdio.h>main()int x,y; scanf("%2d%1d",&x,&y);printf("%dn",x+y);程序運(yùn)行時(shí)輸入:1234567,程序的運(yùn)行結(jié)果是【7】。 參考答案:15【解析】可以指定輸入數(shù)據(jù)所占列寬,系統(tǒng)自動(dòng)按所指定的格式截取所需數(shù)據(jù)。%2d即將輸入數(shù)據(jù)的2個(gè)列寬的數(shù)據(jù)賦給變量 x ,因?yàn)檩斎氲臑?quot;1234567",

33、所以前兩個(gè)列寬的數(shù)據(jù)為12,即x的值為12,同理%1d即把輸入數(shù)據(jù)中前兩個(gè)列寬所在數(shù)據(jù)后的一個(gè)列寬的數(shù)據(jù)賦給變量y,所以y的值為3 ,所以x+y的值為15。47【2010年3月選擇題第15題】有以下程序#include<stdio.h>main()char a,b,c,d; scanf("%c%c",&a,&b); c=getchar();d=getchar(); printf("%c%c%c%cn",a,b,c,d);當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第1列開始,<CR>代表回車,注意,回車也是一個(gè)字符)12&

34、lt;CR>34<CR>則輸出結(jié)果是A)1234 B)12 C)12 D)12 3 34 參考答案:C【解析】程序根據(jù)用戶輸入分別給字符型變量a、b、c、d賦值為'1'、'2'、'<CR>'、'3',因此輸出到屏幕得到選項(xiàng)C中的格式。48【2010年3月選擇題第22題】有以下程序,其中k的初值為八進(jìn)制數(shù)#include<stdio.h>main() int k=011; printf("%dn",k+);程序運(yùn)行后的輸出結(jié)果是A)12 B)11 C)10 D)9 參考答

35、案:D【解析】011轉(zhuǎn)換成十進(jìn)制為9,并且k+表示先使用k的值,再使k的值加1,所以輸出值為9。49【2009年9月選擇題第13題】閱讀以下程序:#include <stdio.h>main()int case;float printF; printf("請輸入2個(gè)數(shù):"); scanf("%d%f",&case,&printF); printf("% d%fn",case,printF);該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是_。A)定義語句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符B)定義語句出錯(cuò),

36、printF不能用作用戶自定義標(biāo)識(shí)符C)定義語句無錯(cuò),scanf不能作為輸入函數(shù)使用D)定義語句無錯(cuò),printf不能輸出case的值 參考答案:A【解析】 標(biāo)識(shí)符不能與C編譯系統(tǒng)已經(jīng)預(yù)定義的、具有特殊用途的保留標(biāo)識(shí)符(即關(guān)鍵字)同名,否則程序在編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤。題目源程序中使用了已經(jīng)預(yù)定義的關(guān)鍵字case,所以將出現(xiàn)錯(cuò)誤。50【2009年9月選擇題第23題】有以下程序:#include <stdio.h>main()char cl,c2; cl='A'+'8'-'4' c2='A'+'8'-'

37、5' printf("%c,%dn",cl,c2);已知字母A的ASCIl碼為65,程序運(yùn)行后的輸出結(jié)果是_。A)E,68 B)D,69 C)E,D D)輸出無定值 參考答案:A【解析】 c1輸出字符的ASCII碼比字母A大4,即字母E;c2以十進(jìn)制數(shù)字形式輸出,因此可以判斷本題答案為A)。51【2009年3月選擇題第15題】程序段:int x=12;double y=3.141593;printf("%d%8.6f",x,y);的輸出結(jié)果是_。A)123.141593B)12 3.141593C)12,3.141593D)123.1415930

38、 參考答案:A【解析】 本題考查printf函數(shù)的輸出格式控制符,%m.nf表示指定輸出的實(shí)型數(shù)據(jù)的寬度為m(包含小數(shù)點(diǎn)),并保留n位小數(shù)。當(dāng)輸出數(shù)據(jù)的小數(shù)位大于n時(shí),截去右邊多余的小數(shù),并對截去的部分的第一位小數(shù)做四舍五入處理;當(dāng)輸出數(shù)據(jù)的小數(shù)位小于n時(shí),在小數(shù)的最右邊補(bǔ)0,輸出數(shù)據(jù)的小數(shù)部分寬度為n。若給出的總寬度m小于n加上整數(shù)位數(shù)和小數(shù)點(diǎn),則自動(dòng)突破m的限制;反之,數(shù)字右對齊,左邊補(bǔ)空格。本題中3.141593數(shù)值長度為8,小數(shù)位數(shù)為6,因此左端沒有空格,故正確答案為A)。52【2009年3月選擇題第23題】有以下程序: #include <stdio.h> main()

39、int a1, a2; char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); printf("%d,%c,%d,%c",a1,c1,a2,c2); 若想通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出結(jié)果是:12,a,34,b。正確的輸入格式是(以下代表空格,<CR>代表回車)_。A)12a34b<CR> B)12a34b<CR>C)12,a,34,b<CR> D)12a34b<CR&

40、gt; 參考答案:A【解析】 當(dāng)輸入整數(shù)或?qū)崝?shù)等數(shù)值型數(shù)據(jù)時(shí),輸入的數(shù)據(jù)之間必須用空格、回車、制表符等間隔符號(hào)隔開,間隔符個(gè)數(shù)不限。但整數(shù)和字符之間不用空格隔開,因?yàn)榭崭駮?huì)被當(dāng)作一個(gè)字符讀入。因此,本題答案為A)。53【2009年3月填空題第7題】若變量x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf(_【7】_,x/y); 補(bǔ)充完整,使其輸出的計(jì)算結(jié)果形式為:x/y=11。 參考答案:"x/y=%d"【解析】printf語句中,除了格式轉(zhuǎn)換說明外,字符串中的其他字符(包括空格)將按原樣輸出54【2009年3月填空題第8題】有以下程序: #inc

41、lude <stdio.h> main() char c1,c2 ; scanf("%c",&c1); while(c1<65|c1>90) scanf("%c",&c1); c2=c1+32; printf("%c,%cn",c1,c2); 程序運(yùn)行輸入65回車后,能否輸出結(jié)果、結(jié)束運(yùn)行(請回答能或不能)_【8】_。 參考答案:不能【解析】c1,c2被定義為字符類型,當(dāng)輸入65時(shí)是以字符形式讀入,只能讀到字符6,6的ASCII碼值是54,滿足while(c1<65|c2>90),所

42、以執(zhí)行scanf("%c",&c1),即不能輸出結(jié)果。第4章 選擇結(jié)構(gòu)4.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式55【2011年9月選擇題第19題】下列條件語句中,輸出結(jié)果與其他語句不同的是_。A)if(a) printf("%dn",x); else printf("%dn",y);B)if(a=0) printf("%dn",y); else printf("%dn",x);C)if(a!=0) printf("%dn",x); else printf("%dn&q

43、uot;,y);D)if(a=0) printf("%dn",x); else printf("%dn",y); 參考答案:D【解析】考查if語句中的判斷,可以由A)、B)、C)三個(gè)選項(xiàng)看出,都是表示,只有當(dāng)a不等于0時(shí)輸出x,否則輸出y,D)選項(xiàng)正好相反,所以選擇D)。56【2010年9月選擇題第17題】若變量已正確定義,在if(W)printf("%dn",k);中,以下不可替代W的是A)a<>b+c B)ch=getchar() C) a=b+c D)a+ 參考答案:A【解析】在C語言中,表示不等于不能用"

44、<>",而只能使用"!="。其他選項(xiàng)均滿足題目的要求。4.2 邏輯運(yùn)算符和邏輯表達(dá)式57【2011年9月選擇題第17題】若有定義語句:int k1=10,k2=20;,執(zhí)行表達(dá)式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分別為_。A)0和1 B)0和20 C)10和1 D)10和20 參考答案:B【解析】考查運(yùn)算符的相關(guān)知識(shí),邏輯與運(yùn)算符的規(guī)則是如果第一個(gè)參數(shù)的值為0,那么就不會(huì)執(zhí)行第二個(gè)參數(shù)的內(nèi)容,在本題中,程序執(zhí)行到第一個(gè)括號(hào)時(shí),k1的值變?yōu)?,且括號(hào)內(nèi)的值為0 ,所以不會(huì)執(zhí)行第二個(gè)括號(hào)中的語句,即k

45、2仍然保持原值,所以答案為0,20。58【2010年3月選擇題第14題】若有定義:double a=22;int i=0,k=18;,則不符合C語言規(guī)定的賦值語句是A)a=a+,i+; B)i=(a+k)<=(i+k);C)i=a%11; D)i=!a; 參考答案:C【解析】C語言中取余運(yùn)算符兩側(cè)的操作數(shù)只能是整型(若為char型,則會(huì)自動(dòng)轉(zhuǎn)換成整型)。59【2010年3月選擇題第17題】若a是數(shù)值類型,則邏輯表達(dá)式(a=1)|(a!=1)的值是A)1 B)0C)2 D)不知道a的值,不能確定 參考答案:A【解析】當(dāng)A=1時(shí),(A=1)|(A!=1)為真;當(dāng)A!=1時(shí),(A=1)|(A!

46、=1)也為真,故正確答案為A。60【2010年3月填空題第6題】在C語言中,當(dāng)表達(dá)式值為0時(shí)表示邏輯值"假",當(dāng)表達(dá)式值為【8】時(shí)表示邏輯值"真"。 參考答案:非0【解析】本題一定要明確一個(gè)概念,即:所有非0的數(shù)(并不只是"1"),在c語言中都表示邏輯值為"真"。61【2009年9月選擇題第21題】有以下程序:#include <stdio.h>main()intn=2,k=0; while(k+&&n+>2); printf("%d%dn",k,n);程序運(yùn)行

47、后的輸出結(jié)果是_。A)02 B)13 C)57 D)12 參考答案:D【解析】 本題考查邏輯運(yùn)算符的"短路"現(xiàn)象,由于k的值為0,表達(dá)式首先去求k+的值,因?yàn)楸磉_(dá)式k+的值為0,系統(tǒng)完全可以確定邏輯表達(dá)式的運(yùn)算結(jié)果總是為0,因此將跳過n+2,不再對它進(jìn)行求值,即k的值加1,n的值不變。62【2009年9月填空題第8題】以下程序運(yùn)行后的輸出結(jié)果是 _【8】_。#include <stdio.h>main()intx=20; printf("%d",0<x<20); printf("%dn",0<x&

48、&x<20); 參考答案:1 0【解析】 第一個(gè)printf語句輸出的結(jié)果是邏輯表達(dá)式(x>0|x<20)的值,顯然為真,即為1;第二個(gè)printf語句輸出的是邏輯表達(dá)式(x>0&&x<20)的值,該值為假,即為0。63【2009年3月填空題第10題】下列程序運(yùn)行時(shí),若輸入1abcedf2df<回車> 輸出結(jié)果為_【10】_。 #include<stdio.h> main() char a=0,ch; while(ch=getchar()!=n) if(a%2!=0&&(ch>=a&&a

49、mp;ch<=z) ch=ch-a+A; a+;putchar(ch); printf("n"); 參考答案:1AbCeDf2dF【解析】本題考查邏輯運(yùn)算和ASCII碼。While循環(huán)的功能是對輸入的第偶數(shù)個(gè)且為小寫字母的字符進(jìn)行處理,將小寫字母轉(zhuǎn)化為大寫,因此答案為1AbCeDf2dF。4.3 if語句和if選擇結(jié)構(gòu)64【2011年9月選擇題第18題】有以下程序 #include <stdio.h> main() int a=1,b=0; if(-a) b+; else if(a=0)b+=2; else b+=3; printf("%dn&q

50、uot;,b); 程序運(yùn)行后的輸出結(jié)果是_。 A)0 B)1 C)2 D)3 參考答案:C【解析】本題考查運(yùn)算符和選擇語句,執(zhí)行到if語句時(shí),-a為0,所以不會(huì)執(zhí)行后面的語句,但是會(huì)執(zhí)行else if 后面的語句,所以執(zhí)行后,b=2,選項(xiàng)C)正確。65【2011年3月選擇題第17題】if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于"表達(dá)式"值的敘述中正確的是A)必須是邏輯值B)必須是整數(shù)值C)必須是正數(shù)D)可以是任意合法的數(shù)值 參考答案:D【解析】if語句中的表達(dá)式可以是邏輯值也可以是任意合法的數(shù)值,表達(dá)式的運(yùn)算結(jié)果為非0(真)或者0(假)。66【2011年3月選擇題第2

51、7題】有以下程序#include<stdio.h>main() int x=1,y=0;if(!x)y+;else if(x=0)if(x)y+=2;else y+=3;printf("%dn",y);程序運(yùn)行后的輸出結(jié)果是A)3B)2C)1D)0 參考答案:D【解析】根據(jù)在ifelse語句中,else總是和最近的if配對的原則,本題中層次關(guān)系是:if (!x)與else if(x=0)是一組,在最外層。而if(x)與else是一組,位于else if(x=0)條件的內(nèi)層。據(jù)此所有條件均不成立,所以y未進(jìn)行任何操作,仍為0。67【2011年3月填空題第7題】有以

52、下程序#include<stdio.h>main() int x;scanf("%d",&x);if(x>15)printf("%d",x-5);if(x>10)printf("%d",x);if(x>5)printf("%dn",x+5);若程序運(yùn)行時(shí)從鍵盤輸入12<回車>,則輸出結(jié)果為 【7】 。 參考答案:1217【解析】本題中輸入12時(shí),第一條if的條件x>15不滿足因此不執(zhí)行,第二條if的條件x>10滿足因此輸出12,第三條if的條件x>

53、5滿足因此輸出17。68【2011年3月填空題第10題】以下程序運(yùn)行后的輸出結(jié)果是 【10】 。#include<stdio.h>main() int x=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf("%d%dn",x,y); 參考答案:20 0【解析】本題中if選擇的條件x=y不滿足,因此直接執(zhí)行后面的x=y和y=t,則x的值為20,y的值為0。69【2010年9月選擇題第18題】有以下程序#include<stdio.h>main() int a=1,b=0; if(!a)b+; else if(a=0) if(a

54、) b+=2; else b+=3; printf("%dn",b);程序運(yùn)行后的輸出結(jié)果是A)0 B)1 C)2 D)3 參考答案:A【解析】根據(jù)在ifelse語句中,else總是和最近的if配對的原則,本題中層次關(guān)系是:if(!a)與else if(a=0)是一組,在最外層。而if(a)與else是一組,位于else if(a=0)條件的內(nèi)層。據(jù)此所有條件均不成立,所以b未進(jìn)行任何操作仍為初始值0。70【2010年3月選擇題第19題】有如下嵌套的if語句if(a<b) if(a<c)k=a; else k=c;else if(b<c)k=b; else

55、 k=c;以下選項(xiàng)中與上述if語句等價(jià)的語句是A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?(b<c)?a:b):(b>c)?b:c);C)k=(a<b)?(a<c)?a:c):(b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c; 參考答案:C【解析】嵌套的if語句功能是將k賦值為a、b、c中的最小值,選項(xiàng)A中沒有比較a、c的大小,選項(xiàng)B中語句"(b<c)?a:b):(b>c)?b:c)"錯(cuò)誤,選項(xiàng)D中沒有比較b、c大小。71【2010年3月填空題第7題】有以下程序#include<stdio.h>main() int a=1,b=2,c=3,d=0; if(a=1) if(b!=2) if(c=3)d=1; else d=2; else if(c!=3)d=3; else d=4; else d=5; printf("%dn",d);程序運(yùn)行后的輸出結(jié)果是【7】。 參考答案:4【解析】a=1為真,b!=2為假,c!=3為假,所以d=4。72【2009年9月選擇題第17題】設(shè)有定義:inta=1,b=2,c=3;,以下語句中執(zhí)行效果與其他三個(gè)不同的是_。A)if(a>b)c=a,a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論