點擊查看:2018年9月計算機二級C語言考試章節(jié)習(xí)題及答案匯總
第2章 C程序設(shè)計的初步知識
2.5 算術(shù)表達(dá)式
1 [單選題] 以下不能正確計算代數(shù)式 值的C語言表達(dá)式是( )。
A.1/3*sin(1/2)*sin(1/2)
B.sin(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
參考答案:A
2 [單選題] 若a是數(shù)值類型,則邏輯表達(dá)式(a==1)||(a!=1)的值是( )。
A.1
B.0
C.2
D.不知道a的值,不能確定
參考答案:A
參考解析:
邏輯或”||”要求只要兩邊的運算對象有一個非零,結(jié)果就為真。雖然不知道a的值,但是若a為l,則左邊運算對象為1;若a的值不是1,則右邊運算對象的值為1,所以總能保證一邊非零,所以結(jié)果為真,即1。
3 [單選題] 設(shè)變量x為float型且已賦值,則以下語句中能將x中的數(shù)值保留到小數(shù)點后兩位,并將第三位四舍五入的是( )
A.x=x*100+0.5/100.0;
B.x=(x*100+0.5)/100.0;
C.x=(int)(x*100+0.5)/100.0;
D.x=(x/100+0.5)*100.0;
4 [單選題] 表達(dá)式3.6-5/2+1.2+5%2的值是( )。
A.4.3
B.4.8
C.3.3
D.3.8
參考答案:D 。
參考解析:
此題考核的是算術(shù)運算符的運算規(guī)則,算術(shù)運算符的結(jié)合方向為“自左至右”,先按運算符的優(yōu)先級別高低次序執(zhí)行,同時在C中兩個整數(shù)相除或求余數(shù)其結(jié)果依舊為整數(shù)。計算后結(jié)果為3.8。
5 [單選題] 已知字母A的ASCIl代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達(dá)式是
A.kk>='A'&&kk<='Z'
B.!(kk>='A'||kk<='Z')
C.(kk+32)>='a'&&(kk+32)<='z'
D.isalpha(kk)&&(kk<91)
參考答案:B
6 [單選題] 當(dāng)變量 c 的值不為 2、4、6時,值也為“真”的表達(dá)式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
參考答案:B
參考解析:
條件語句if(a>B.不成立,所以語句a=b;不執(zhí)行,語句c=a;執(zhí)行后, c=3,此時條件語句if(C!=A.不成立,所以語句c=b;不執(zhí)行。結(jié)果為a=3,b=5,c=3。
7 [單選題]
參考解析:
C語言中*和/處于同一優(yōu)先級中,且按由左向右結(jié)合順序,由此判斷本題D選項不符合。
8 [單選題] 若有表達(dá)式(w)?(--x):(++y),則其中與w等價的表達(dá)式是 ( )
A.w=-1
B.w=-0
C.w!=1
D.w!=0
參考答案:D
參考解析:
由條件表達(dá)式:的執(zhí)行情況來判斷,表達(dá)式(W)和表達(dá)式W!=0的邏輯值是一致的,所以本題選D選項。
9 [單選題] 有以下程序
( )
A.21
B.11
C.6
D.1
參考答案:A
參考解析:
a左移兩位與b值求或,a左移兩位結(jié)果為20,b值為1,a和b求或得值為21。所以A為正確選項。
10 [單選題] 表達(dá)式:(int)((double)9/2)-(9)%2的值是 ( )
A.0
B.3
C.4
D.5
收藏本題
參考答案:B
參考解析:
(int)((double)9,/2)的值為4,(9)%2的值為1,則整個表達(dá)式的值為3。
11 [單選題] 若有定義語句:intx=10;則表達(dá)式x-=x+X的值為 ( )
A.-20
B.-10
C.0
D.10
參考答案:B
參考解析:
x-=x+X,即x=x-(x+x),x=-X,故x=-10。
12 [單選題] 有以下程序:
#include
void main()
{
int s;
scanf("%d",&s);
while(s>0)
{
switch(s)
{
case 1:printf("%d",s+5);
case 2:printf("%d",s+4);break;
case 3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
運行時,若輸入1 2 3 4 5 0<回車>,則輸出結(jié)果是
A.6566456
B.66656
C.66666
D.6666656
參考答案:A
參考解析:
這道試題主要考察了switch和break語句,當(dāng)變量S的值為1時,執(zhí)行case1、case 2兩條語句,輸出65;當(dāng)變量S的值為2時,執(zhí)行case 2語句,輸出6;變量s的值為3時,執(zhí)行case3、default兩條語句,輸出64;變量S的值為4時,執(zhí)行defauR語句,輸入5;變量s的值為5時,執(zhí)行default語句,輸出6;變量S的值為0時,程序運行結(jié)束。
13 [單選題] 有以下程序
#include
main()
{
char a='H';
a=(a>='A'&&a<='Z')?(a-'A'+'a'):a;
printf("%c\n",a);
}
程序運行后的輸出結(jié)果是
A.A
B.a
C.H
D.h
參考答案:D
參考解析:
由于a 的值為'H',符合(a>='A'&&a<='Z'),所以條件表達(dá)式的值等于(a-'A'+'a'),即'h'。
14 [單選題] 若有定義語句 int b=2; 則表達(dá)式(b<<2)/(3||b)的值是
A.4
B.8
C.0
D.2
參考答案:B
參考解析:
變量b 的值等于2,其向左移動2 位,其值等于8,即b<<2 的值等于8。而3||b 做或運算的結(jié)果等于1。所以表達(dá)式(b<<2)/(3||b)的值等于8。
15 [填空題]
本題型不支持在線作答,請電腦操作演示,部分試題“考生文件夾”是指考試時答題指定的保存位置。
參考解析:1-a
16 [填空題]
下列 y 的值是 。
int y;y=sizeof(2.25*4);
參考解析:
解析:sizeof(2.25*4)為sizeof(9.00)值為8,C語言規(guī)定浮點型常量當(dāng)雙精度處理,雙精度實數(shù)的存儲單元為 8 個字節(jié)。
17 [填空題]
若int x=1,y=2;則計算表達(dá)式y(tǒng)+=y-=x*=y后的y值是_________。
參考解析:0
【解析】對表達(dá)式從右向左進行計算x+=y得x=2,則Y+=y.=2,右邊即y一.2得y=0,則y+=0得y=0。
18 [填空題]
若S是int型變量,且s=8,則s%3+(s+1)%3表達(dá)式的值為________。
參考解析: 2
【解析】考查基本表達(dá)式的計算,“%”運算符的功能是取余。題中條件s=8,則s%3=2,(s+1)%3=9%3=0,所以表達(dá)式s%3+ (s+1)%3=2+0=2。
19 [填空題]
以下程序的輸出結(jié)果是( )。
#include
main()
{ int a=37;
a+=a%=9; printf(“%d\n”,a);
}
參考解析:
2 a+=a%=9;其中a%=9等價于a=a%9;結(jié)果為1,所以a+=a%=9等價于a=a+1,故答案為2.
20 [填空題]
請寫出與 !(a<=B)等價的C語言表達(dá)式 。
參考解析:
(a<=b)||(a>b) 表達(dá)式!(a<=b)含義是對a 小于等于b 取非,所以與其等價的表達(dá)式是(a<=b)||(a>b)。
21 [單選題] 下面程序段的輸出結(jié)果是( )。
#include
main()
{
float x = 1.236547;
printf("%f\n",(int)(x*1000+0.5)/(float)1000);
}
A.1.237000
B.輸出格式說明與輸出項不匹配,輸出無定值
C.1.236000
D.1.24
參考答案:A
參考解析:
本題中,(int)(x*1000+0.5)的結(jié)果為1237,(float)1000是將1000強制轉(zhuǎn)換成float類型;整個表達(dá)式(int)(x*1000+0.5)/(float)1000的結(jié)果為1.237000,再以實數(shù)(6位小數(shù))形式輸出。
22 [單選題] 以下選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式為( )。
A.x%2==1
B.x/2
C.x%2!=0
D.x%2==0
參考答案:D
參考解析:
當(dāng)x為大于1的奇數(shù)時,x對2求余的結(jié)果為1,不為0,所以選項D)中表達(dá)式的值為0。
23 [單選題] 若x,i,j和k都是int型變量,則計算表達(dá)式x=(i=4,j=16,k=32)后,X的值為( )。
A.4
B.16
C.32
D.52
參考答案:C
參考解析:
本題考查逗號表達(dá)式的運用。x=(i--4,j=16,k=32)中的i=4j=16,k=32構(gòu)成一個逗號表達(dá)式,整個表達(dá)式的值取最后一項的值,即32,所以x的值為32。
24 [單選題] 以下不能正確表示代數(shù)式4cd/ab的C語言表達(dá)式縣( ).
A.4*c*d/a/b
B.c*d/a/b*4
C.c/a/b*d*4
D.4*c*d/a*b
收藏本題
參考答案:D
參考解析:
c語言中算術(shù)運算符的結(jié)合性均為自左向右。選項D中表達(dá)式計算結(jié)果是4cdb/a,和題目要求的代數(shù)式不一致,因此選項D不能正確表示題目所給代數(shù)式的內(nèi)容。
25 [單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.0
B.-1
C.1
D.7
參考答案:B
參考解析:
a--的含義是先用后減1,所以當(dāng)a的值為0時,跳出循環(huán),但是仍要執(zhí)行a--,a的值變?yōu)?1。
26 [單選題] 已有定義:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判斷e中的字符是否為大寫字母的表達(dá)式是( )。
A.isupper(c)
B.'A' <= c <= 'Z'
C.'A'<= c&&c <= 'Z'
D.c <= ('z' - 32)&&('a' - 32) <= c
參考答案:B
參考解析:
解析:在本題中,選項B,實際是先計算關(guān)系表達(dá)式“‘A <= c’” 的值是0還是1,再比較該值與字符‘Z’之間的大小關(guān)系,顯然不能實現(xiàn)題目所要求的功能,而選項 A,C,D都可以。
27 [單選題] 有以下定義:int a;long b;double x,y;則以下選項中正確的表達(dá)式是( )。
A.a%(int)(x-y)
B.a=x!=y;
C.(a*y)%b
D.y=x+y=x
參考答案:B
參考解析:
選項中如果x與Y的值相等那么取余時就會有除數(shù)為0的情況。C)選項中取余的兩個數(shù)據(jù)都應(yīng)為整數(shù),不能有一方為實型變量,而a*y的結(jié)果為double型。 D)選項表達(dá)式本身就錯誤,不能給表達(dá)式賦值。所以,本題答案為B)。
收起筆記 28 [單選題] 設(shè)有定義:int x=3;,以下表達(dá)式中,值不為l2的是( )。
A.x*=x+1
B.x++,3*x
C.x*=(1+x)
D.2*x.x+=6
參考答案:D
參考解析:
本題考查逗號運算符的運算方式,逗號運算符的作用是將若干表達(dá)式連接起來,它的優(yōu)先級別在所有運算符中是最低的,結(jié)合方向為”自左至右”。A)選項和c)選項的結(jié)果是一樣的,可展開為:x=x*(x+1)=3*4=12;B)選項中先執(zhí)行x++,因為++運算符有自加功能,逗號之前執(zhí)行后x的值為4,逗號后的值就是整個表達(dá)式的值,即12;D)選項逗號之前并未給x賦值,所以表達(dá)式的值就是x+=6的值,即9。因此,本題答案為D)。
29 [單選題]
參考答案:A
參考解析:
本題考查的是C語言表達(dá)式。如果算術(shù)運算符”/”中參與運算的變量都是整型變量,則”/”表示整除運算,所以”l/3”的值應(yīng)為0,故選項A)的表達(dá)式值為0,而事
能正確計算題目所要求的代數(shù)式。
30 [單選題] 下面程序的運行結(jié)果是( )。
main()
{
int y = 5, x = 14 ; y = ((x=3*y,x+6),x-1);
printf("x = %d,y = %d",x,y);
}
A.x=27,y=27
B.x=12,y=13
C.x=15,y=14
D.x=y=27
收藏本題
參考答案:C
參考解析:本題考查的是逗號表達(dá)式。逗號表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個逗號表達(dá)式的值就是最后一個表達(dá)式N的值。表達(dá)式(x=3 * y,x+6)中,x=15。表達(dá)式y(tǒng)=x—1=14。
31 [單選題] 執(zhí)行語句X=(a=10,b=a--.后,x、a、b的值依次為( )。
A.10,10,9
B.10,9,9
C.9,10,9
D.10,9,10
參考答案:D
參考解析:
表達(dá)式a一一的值為10,a的值遞減為9,所以b=10,x的值為逗號表達(dá)式的值,x=10。因此x=10,a=9.b=10。
32 [單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.1,0
B.0,1
C.0,0
D.1,1
參考答案:A
參考解析:
n=b>a,n=1,判斷到此,邏輯或為真.后面的J=a
33 [單選題] 表示關(guān)系M<=N<=P的C語言表達(dá)式為( )。
A.(M<=N.AND(N<=P.
B.(M<=N.&&(N<=P.
C.(M<=N<=P.
D.(M<=N.&(N<=P.
參考答案:B
參考解析:
M<=N和N<=P是邏輯與的關(guān)系,應(yīng)使用運算符&&。
34 [單選題] 若x=4,y=5,則x&y的結(jié)果是( )。
A.0
B.4
C.3
D.5
參考答案:B
參考解析:
本題主要考查按位與運算的知識點。按位與足對兩個運算最相應(yīng)的位進行邏輯與, “&”的規(guī)則與邏輯與“&&”相同。x=4的二進制為00000100,y=5的二進制為00000101,x&y=00000100,轉(zhuǎn)化為十進制即為4。
35 [單選題] 若運行時給變量X輸入12,則以下程序的運行結(jié)果是( )
main()
{
int x,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%d\n",y);
}
A.0
B.22
C.12
D.10
參考答案:A
參考解析:
本題考查三目運算符“?:”。表達(dá)式“x>127x+10:x.12”即,如果x>12成立,則x+10的值即為此表達(dá)式的值,否則x.12即為此表達(dá)式的值。因為x=12,所以x>12不成立,所以執(zhí)行y=x-12=0。
36 [單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.2
B.4
C.6
D.8
參考答案:D
參考解析:
本題考查位運算符,題目中將a向左移兩位,左移兩位表示乘以4,所以答案為8,選項D正確。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2018年全國計算機等級考試復(fù)習(xí)知識點匯總(各科目)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |