




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章C語言概述
1一個C程序的執(zhí)行是從
本程序的main函數(shù)開始,到main函數(shù)結束
本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結束
本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結束
本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結束
2以下敘述正確的是
在C程序中,main函數(shù)必須位于程序的最前面
C程序的每行中只能寫一條語句
C語言本身沒有輸入輸出語句
在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤
3以下敘述不正確的是______
一個C源程序可由一個或多個函數(shù)組成
一個C源程序必須包含一個main函數(shù)
C程序的基本組成單位是函數(shù)
在C程序中,注釋說明只能位于一條語句的后面
4C語言規(guī)定:在一個源程序中,main函數(shù)的位置
必須在最開始
必須在系統(tǒng)調用的庫函數(shù)的后面
可以任意
必須在最后
5一個C語言程序是由______
一個主程序和若干子程序組成
函數(shù)組成
若干過程組成
若干子程序組成
第二章數(shù)據(jù)類型、運算符與表達式
1在C語言中(以16位PC機為例),5種基本數(shù)據(jù)類型的存儲空間長度的排
列
順序為一
char<int<longint〈二float〈double
char=int<longint<=float<double
char<int<longint=float=double
char=int=longint<=float<double
2若x、i、j和k都是int型變量,則執(zhí)行下面表達式后x的值為
x=(i=4,j=16,k=32)
A)4
B)16
C)32
D)52
3假設所有變量均為整型,則表達式(a=2,b=5,b++,a+b)的值是
A)7
B)8
06
D)2
4下列四組選項中,均不是C語言關鍵字的選項是
A)defineB)getcC)includeD)while
IFcharscanfgo
typeprintfcasepow
5下面四個選項中,均是C語言關鍵字的選項是______
auto
switch
signed
if
6下面四個選項中,均是不合法的用戶標識符的選項是
A)AB)floatC)b-aD)-123
P0laOgototemp
do_AintINT
7C語言中的標識符只能由字母、數(shù)字和下劃線三種字符組成.且第一個字
符
不麗為字母
必須為下劃線
必須為字母或下劃線
可我是字母、數(shù)字和下劃線中任一種字符
8下面四個選項中,均是合法整型常量的選項是
A)160
-Oxffff
Oil
B)-0xcdf
Ola
Oxe
c)-Ol
986,012
0668
D)-0x48a
2c5
Ox
9下面四個選項中,均是不合法的整型常量的選項是
--Of1
-Oxffff
0011
-OXcdf
017
12.456
-018
999
5e2
-0x48eg
-068
03f
10下面四個選項中,均是不合法的浮點數(shù)的選項是一
A)160.
0.12
e3
B)123
2e4.2
.e5
0-18
123e4
0.0
D)-e3
.234
lc3
11下面四個選項中,均是合法浮點數(shù)的選項是
A)+le+l
5e-9.4
03e2
B)oabc
017
Oxa
C)010
-Oxll
0x16
D)0al2
7ff
-123
16下面四個選項目,均是正確的八進制數(shù)或十六進制數(shù)的選項是
A)-10
0x8f
-011
B)Oabc
017
Oxc
O0010
一Oxll
Oxfl
D)0a12
-0x123
一Oxa
17下面四個選項中,均是正確的數(shù)值常量或字符常量的選項是_
A)0.0
Of
8.9c
B)“a"
3.9E—2.5
Lei
C)3
011
OxFFOO
0a
D)+001
Oxabcd
2e2
50.
18下面不正確的字符串常量是
A)<abc,
B)“12,12"
C)“0”
D)"“
?^*?|*?1**|^?!*?|**^*?1*
19對應以下各代數(shù)式中,若變量a和x均為double類型,則不正確的語言
表達式是_C—
代數(shù)式C語言表達式
A)eXx_2/2)/2-0.5*piexp(x*x/2)/sqrt(2*3.14159)
B)0.5(ax+(a+x)/4a)1/2*(a*x+(a+x)/(4*a))
sqrt(sinx)2.5
sqrt((pow(sin(x*3.14159/180),2.5))
D)x“2-e5x*x-exp(5.0)
?!*?1**1**f*?!*、/?1**1*?f*?!*?1**1*?i*
20若有代數(shù)式3ae/bc,則不正確的C語言表達式是
a/b/c*e*3
B)3*a*e/b/c
3*a*e/b*c
a*e/c/b*3
21已知各變量的類型說明如下:
intk,a,b;
unsignedlongw=5;
doublex=1.42;
則以下不符合C語言語法的表達式是
x%(-3)
w+=-2
k=(a=2,b=3,a+b)
a+=a-=(b=4)=(a=3)
22已知各變量的類型說明如下:inti=8,k,a,b;
unsignedlong
w=5;
double
x=l.42,y=5.2:
則以下符合C語言語法的表達式是;
Aa+=a-=(b=4)*(a=3)
Ba=a*3=2
Cx%(-3)
Dy=float(i)
23以下不正確的敘述是______
在C程序中,逗號運算符的優(yōu)先級最低
在C程序中,APH和aph是兩個不同的變量
若a和b類型相同,在執(zhí)行了賦值表達式a=b后b中的值將放入a中,
而b中的值不變。
當從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只
能輸入實型數(shù)值。
24以下正確的敘述是______
在C程序中,每行中只能寫一條語句
若a是實型變量,C程序中允許賦值"10,因此實型變量中允許存放整
型數(shù)
在C程序中,無論是整數(shù)還是實數(shù),都能被準確無誤地表示
在C程序中,%是只能用于整數(shù)運算的運算符
25以下符合C語言語法的賦值表達式是
Ad=9+e+f=d+9
Bd=9+e,f=d+9
Cd=9+e,e++,d-9
Dd=9+e++=d+7
26已知字母A的ASCII碼為十進制數(shù)65,且c2為字符型,則執(zhí)行語句
c2='A'+'6'-'3后,c2中的值為
AD
B)68
C不確定的值
DC
27在C語言中,要求運算數(shù)必須是整型的運算符是-
A)/
B)++
C)!=
D)%
28若以下變量均是整型,且num=sum=7;則執(zhí)行表達式sum=num++,sum++,
++num后sum的值為
A)7
B)8
09
D)10
29在C語言中,int,cha門'和short三種類型數(shù)據(jù)在內存中所占用的字節(jié)
數(shù)______
由用戶自己定義
均為2個字節(jié)
是任意的
由所用機器的機器字長決定
30若有說明語句:charc=、\72';則變量c
包含1個字符
包含2個字符
包含3個字符
說明小合法,C的值不確定
31若有定義:Tnta=7;floatx=2.5,y=4.7;則表達式
x+a%3*(int)(x+y)%2/4的值是
A)2.500000
B)2.750000
C)3.500000
D)0.000000
32sizeof(float!是
一個雙精度型表達式
?個整型表達式
一種函數(shù)調用
一個不合法的表達式
33設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f
值的數(shù)據(jù)類型為
int
float
double
不確定
34下面四個選項口,均是非法常量的選項是是______
A)<as,
—Offf
"\0xa
B)'\\'
'01'
12.456
0-0x18
01177
Oxf
Oxabc
'\0'
“a”
..vl*^1*xi*?£z*£z*£xxl*vl*xfzxl*v£*
35若有代數(shù)式sqrt-x+loglOy,則正確的C語言表達式是
sqrt(fabs(pow(Y,x)+log(Y)))
sqrt(abs(pow(Y,x)+tog(Y)))
sqrt(fabs(pow(x,Y)+log(Y)))
sqrt(abs(pow(x,Y)+tog(Y)))
wx^1*wx?zzwx?zx*^*
36若有代數(shù)式|x~3十loglOx|,則正確的C語言表達式是一
fabs(x*3+log(x)J
abs(pow(x,3)+log(x)).
abs(pow(x,3.0)+log(x))
fabs(pow(x,3.0)+log(x))
37在C語言中,char型數(shù)據(jù)在內存中的存儲形式是一
補碼
反碼
原碼
ASCII碼
38點后兩位,第三位進行四舍五入運算的表達式是設變量n為float類型,m
為int類型,則以下能實現(xiàn)將n中的數(shù)值保留小數(shù)
n=(n*100+0.5)/100.0
m=n,100+0.5,n=n/l00.0
n=n*100+0.5/100.0
n=(n/100+0.5;*100.0
39表達式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為
int
float
double
不確定
40設C語言中,一個.int型數(shù)據(jù)在內存中占2個字節(jié),則unsignedint
型數(shù)據(jù)的取值范圍為.
A)0~255
B)0^32767
C)(T65535
D)0^2147483647
41設有說明:chapw;intx;floaty;doublez;則表達式w*x+z-y值
的數(shù)據(jù)類型為
float
char
int
double.
42若有以下定義,則能使值為3的表達式是
intk=7,x=12;
x%=(k%=5)
x%=(k-k%5)
x%=k-k%5
D)(x%=k)一(k%=5;
43設以下變量均為int類型,則值不等于7的表達式是
A)(x=y=6,x+Y,x+1)
B)(x=Y=6,x+Y,y+1)
C)(x=6,x+1,Y=6,x+Y)
D)(Y=6,Y+1,x=Y,x+1)
第三章最簡單的c程序設計
1putchar函數(shù)可以向終端輸出一個_D
整型變量表達式值
實型變量值
字符串
字符或字符型變量值
2以下程序的輸出結果是_D—
mainO
{printf("\n*sl=%15s*","chinabeijing");
printf(〃\n*s2=%-5s*,“chi〃);
A)*s1=chinabeij.ng**s2二**chi*
B)*s1=chinabeijing**s2=chi*
C)*sl=*chinabeijing**s2=chi*
D)*sl=chinabeiing**s2=chi*
3printf函數(shù)中用到格式符寫%5s,其中數(shù)字5表示輸出的字符串占用5列。
如果字符串長度大于5,則輸出按方式[1];如果:字符串長度小于5,則輸出按
方式[2].BC
從左起輸出該字串,右補空格
按原字符長從左向右全部愉出
右對齊輸出該字串,左補空格
輸出錯誤信息
4已有定義inta義;和輸出語句printf("%81x”,a);以下正確的敘述是_
整型變量的輸出格式符只有%d一種
B)%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)
%x是格式符的一種,其變量的值按十六進制輸出,但%81x是錯誤的
%81x不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度
5以下C程序正確的運行結果是_C
mainO
{longy=43456;
printf('y=%81d\n,\Y);
printf(〃y=%-081d\n",Y);
printf(〃y=%081d\n",Y);
printfCY=%+81d\n,\y);
Ay=-43456
Y二一43456
Y二一0043456
Y二一43456
By=43456
Y二一43456
Y=-0043456
y二+—43456
CY二一4s4ss
Y=-43456
Y二一0043456
y=-43456
Dy二一43456
Y=-0043456
y=00043456
產十43456
6以下C程序正確的運行結果是_D—
main()
{inty=2456;
printf(z,y=%3o\n\y);
print(〃y=%8o\n",y);
printf(,,y=%#8o\n,,?y);
}
Ay=2456
y=2456
y=########2456
By=4630
y=4630
Y二與科附###4630
CY=2456
y=2456
y=02456
DY=4630
y=4630
y=04630
7以下C程序正確的運行結果是_A.
main()
(longy=23456;
printf(*y=%3x\nx,y);
printf(〃y=%8x\n",y);
printf(〃y=%#8x\n",y);
)
Ay=5ba0
y=5ba0
y=Ox5baO
By=5ba0
y=5ba0
y=0x5ba0
CY=56a0
y=56a0
y=0x5ba0
DY=5ba0
y=5ba0
y二####5ba0
8若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)
調用語句是_D—
scanf(u%d%lx,%le〃,&x,&y,&z);
B)scanf(a%2d*%d%Ifa,&.x,&y,&z);
scanf(&x,&y,&z);
scanf("%x%o%6.2f“,&x,&y,&z);
9已有如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20”
和B,當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是_A—
intal,a2;charcl,c2
scanf(,%d%c%d%c”,&al,&cl,&a2,&c2);
A)10A20B<CR>B)10A20B<CR>
C)10A20B<CR>D)10A20B<CR>
10已有定義intx;floaty;且執(zhí)行scanf(飛3d%f〃,&x,&y〃)語句,若從
第一列開始輸入數(shù)據(jù)12345678<回車),則x的值為[1],y的值為[2].BB
[1]A)12345B)123C)45D)345
[2]A)無定值B;45.0000000678.000000D)123.000000
11已有如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A和
B,當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是_D—
Intal,a2;charcl,c2;
scanf("%d%d",&al,&a2);
scanf(a%c%c",&cl,&c2);
A)1020AB<CR>
B)1020<CR>
AB<CR>
C1020AB<CR>
D)1020AB<CR>
12已有程序段和輸入數(shù)據(jù)的形式如下,程序中輸入語句的正確形式應當為
main()
(inta;floatf;
printf(z,\nInputnumber:");
輸入語句
printf(〃\nf二%f,a二%d\n〃,f,a);
)
Inputnumber:4.52<CR>
scanf(,z%d,%f〃,&a,&f);
scanf("%f,&a);
scanf(a%d%f,z,&a,&f);
scanf(&f,&a);
13根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為—B—。
已有定義:float
數(shù)據(jù)的輸入方式:4.52
3.5
scanf(a%f,&fl,&f2);
scanf(&fl,&f2);
scant(,'%3.2f%2.lf〃,&fl,&f2);
scanf("%3.2f%2.lf〃,&fl,&⑵;
14閱讀以下程序,當輸入數(shù)據(jù)的形式為25,13,10<CR>正確的輸出結果為
main()
(intx,y,z;
scant(w%d%d%d“,&x,&y,&z);
printf(〃x+y+z二%d\n",x+y+z);
)
Ax+y+z=48
x+y+z=35
x+z=35
不確定值
15閱讀以下程序,若運行結果為如下形式,輸入愉出語句的正確內容是_B
main()
{intx;floaty;
printf(z,enterx,y:“)
輸入語句
輸出語句
)
輸入形式enterx,y:23.4
輸出形式xiy=5.40
Ascanf("%d,%f,&x,&y);
printfC\nx+y=%4.2f〃,x+y);
scanf&x,&y);
printf("\nx+y=%4.2fx+y);
scanf(&x,&y);
prire("\nx+y=%6.If”,x+Y);
scanf(a%d%3.If〃,&x,&y);
printf(〃x+y=%4.2f“,x+Y)
16以下說法正確的是_D
輸入項可以為一實型常量,如scanf(〃%f〃,3.5);
只有格式控制,沒有輸入項,也能進行正確輸入,如scanfCa=%dfb=
%d");
當輸入一個實型數(shù)據(jù)時,格式控制部分應規(guī)定小數(shù)點后的位數(shù),如scarf
(〃%4.2f“,&f);
當輸入數(shù)據(jù)時,必須指明變量的地址,如scanf
17根據(jù)下面的程序及數(shù)據(jù)的輸入方式和輸出形式,程序中輸入語句的正確
形式應該為_A
mainO
(charchi,ch2,ch3;
輸入語句
printf(<<%c%c%cchi,ch2,ch3);
}
輸入形式ABC
輸出形式AB
Scanf(<<%c%c%c,,?&chl,&ch2,&ch3);
a
scanf(%cf%c,%c”,&chl,&ch2,&ch3)
scanf(“%c%c%c“,&chl,&ch2,&ch3)
D)scanf("%c%c”,&chl,&ch2,&ch3);
18有輸入語句:scanf("a=%d,b或d,c=%d〃,&a,&b,&c);為使變量a的值
為l,b為3,C為2,從鍵盤輸入數(shù)據(jù)的正確形式應當是_D—
132〈回車>
1,3,2<回車)
a=lb=3c=2〈回車>
a=l,b=3,c=2<回車)
19以下能正確地定義整型變量a,b和c并為其賦初值5的語句是_A—
inta=b=c=5;
inta,b,c=5;
a=5,b=5,c=5;
a=b=c=5;
20已知ch是字符型變量,下面不正確的賦值語句是_A—
ch='a+b*;
ch='\0
ch='7'+'9';
ch=5+9;
21已知ch是字符型變量,下面正確的賦值語句是_B—
ch='123
ch=;
ch='\08
Ch二〃\〃;
22若有以下定義,則正確的賦值語句是_B—
inta,b;
floatx;
a=l,b=2
B)b++;
C)a=b二5
D)b=int(x);
23設x,y均為float型變量,則以下不合法的賦值語句是_B—
A++x;
B)y=(x%2)/10;
x*=y+8;
x=y=0;
24設x,y和z的值是均為int型變量,則執(zhí)行語句x=(y=(z=10)+5)一5;后,
x、y和z的值是—A
x=10
y=15
z=10
x=10
y=10
z=10
x=10
y=lo
z=15
x=10
y=5
z=10
25設有說明:doubley=0.5,z=1.5;intx=10,則能夠正確使用C語言庫函
數(shù)的賦值語句是_D—
z=exp(y)+fabs(x);
y=loglO(y)+pow;y);
z=sqrt(y一z);
x=(int)(atant2(double)x,y)+exp(y-0.2));
第四章課后習題邏輯運算和判斷選取控制
1邏輯運算符兩側運算對象的數(shù)據(jù)類型_D—
只能是0或1
只能是0或非0正數(shù)
只能是整型或字符型數(shù)據(jù)
可以是任何類型的數(shù)據(jù)
2以下關于運算符優(yōu)先順序的描述中正確的是_C—
關系運算符〈算術運算符〈賦值運算符〈邏輯與運算符
邏輯與運算符〈關系運算符〈算術運算符〈賦值運算符
賦值運算符(邏輯與運算符〈關系運算符〈算術運算符
算術運算符〈關系運算符〈賦值運算符〈邏輯與運算符
3下列運算符中優(yōu)先級最高的是_B—
AX
B)+
0&&
D)!=
4能正確表示“當x的取值在[1,10]和[200,210]范圍內為真,否則為假”
的表達式是_C―
A)(x>=l)&&(x<=10)&&(x>=200)&&(x<=210)
B)(x>=l)||(x<=10)||(x>=200)||(x<=210)
C)(x>=l)&&(x<=10)||(x>=200)&&(x<=210)
D)(x>=l)||(x<=10)&&(x>=200)||(x<=210)
5表示圖中坐標軸上陰影部分的正確表達式是_C―
//////II///////I
//////II///////I
abc
A)(x<=a)&&.(x>=b)&&(x<=c)
B)(x<=a)||(b<=&&x<=c)
C)(x<=a)|(x>=b;&&(x<=c)
D)(x<=a)&&(b<=x<=c)
6判斷char型變量ch是否為大寫字母的正確表達式是_C—
A)'A'<二ch*'Z'B)(ch>='A*)&(ch<='Z')
C)(ch>='A9&a(ch<=CCD)('A'<=ch)AND('Z'>=ch)
7設x,y和Z是int型變量,且x=3,y=4,z=5,則下面表達式中值為。的是
A)'x,&&'v'
x<=Y
x||Y+Z&&y-z
D)!((x<y)&&!z|11)
8已知x=43,ch='A',y=0;則表達式(x>=y&&ch<'B'&&!y)的值是_C
0
語法錯
01
D)“假〃
9若希望當A的值為奇數(shù)時,表達式的值為“真”,A的值為偶數(shù)時,表達
式的值為“假則以下不能滿足要求的表達式是_C—
A%z-=1
B)!(A%2==0)
C)!(A%2)
A%2
10設有:inta=l,b=2,c==3,d=4,m=2,n=2;執(zhí)行(m=a〉b)&&(n二c>d)后
n的值為_B-
A)1
B)2
03
D)4
11判斷char型變量cl是否為小寫字母的正確表達式為_D—
A)<a<<=cl<='z'
C)('a*>=01)||{'z,<=cl)
(cl>=a)&&(cl<=z)
D)(cl>='a〈二'z')
12以下程序的運行結果是_B—
#include“stdio.h〃.
main()
{inta,b,d=241;
a=d/100%9;
b=(-l)&&(-l);
printf("%d,%da,b);
}
A)6,1
B)2,1
C)6,0
D)2,0
13執(zhí)行以下語句后a的值為[l],b的值為[2]CA
int
a,b,c;
a=b=c;
++a||++b&&++c;
【1】A)錯誤B)0C)2D)1
[2]A)1B)2C)錯誤D)0
M執(zhí)行以下語句后a的值為[l],b的值為[2]BA
inta=5,b=6,w=l,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
[11A)5B)0C)2D)1
[2]A)6B)0C)1D)4
15以下不正確的述語句形式是_C—
if(x>y&&x!=y);
if(x==y)x+=y;
if(x!=y)scanf("%d”,&x),elsescanf("%d“,&y);
if(x<y){x++;y+-;}
16下列運算符中優(yōu)先級最低的是[1],優(yōu)先級最高的是[2]AC
A)?:
B)&&
0+
D)!=
17已知intx=10,y=20,z=30;以下語句執(zhí)行后X,y,Z的值是_B
if(x>y)
z=x;z=y;y=Z;
A)x=10,y=20,z=30
x=20,y=30,z=10
B)x=20,y=30,z=30
x=20,y=30,z=20
18以下if語句語法正確的是_B.
A)if(x>0)
printf(4<%f,x)
elseprintf(w%f",~x);
B)if(x>0)
{x=x+Y,printf(“斌〃,x);)
elseprint*(“培f〃,-x);
if(x>0)
{x=x+y;printx);
elseprintf("%f”,-x);
if(x>0)
{x=x+y;print(x)}
elseprintf("%f”,"x);
19請閱讀以下程序:
mai()
{inta=5,b=0,c=0;
if(a=b+c)printf:〃***\n〃);
elseprintf(〃$$$r\n”);
以上程序_D—
有語法錯不能通過編譯
輸出關“
可以通過編譯但不能通過連接
輸出$$$
20以下程序的運行結果是_C—
main()
{int巾=5;
if(m++>5)printf{"%d\n",m);
elseprintf(m―);}
A)4
B)5C)6
D)7
21當a=l,b=3,c=5,d=4時,執(zhí)行完下面一段程序后x的值是B
if(a<b)
if(c<d)x=l;
else
if(a<c)
if(b<d)x=2
elsex=3;
elsex=6
elsex=7;
A)1
B)2c)3D)6
23以下程序的輸出結果是_C—
main()
{inta=100,x=10,\-20,ok1=5,ok2=0;
if(x<y)
if(Y!=10)
if(!okl)
a=l;
else
if(ok2)a=10;
a二一1;
printf("%d\n",a);
)
A)1
B)0
一1
值不確定
24以下程序的輸出結果是_B—
inain()
{intx=2,y=l,z=2:
if(x<Y)
if(Y<0)-z=O;
elsez+=l;
printf("%d\n'',z);}
A)3B)2C)1D)0
25為了避免在嵌套的條件語句if--else中產生二義性,C語言規(guī)定:else
子句總是與_B配對。
縮排位置相同的if
其之后最近的if
其之前最近的if
同一行上的if
26以下不正確的語句為B
if(x>Y);
if(x=y)&&(x!=0)x+=y;
if(x!=Y)scanf(z,%d",&x);elsescarf(",&Y);
if(x<Y){x十+;y++;}
27
請閱讀以下程序:
#include<stdio.h>
main()
{floata,b;
scanf("%f",&a);
if(a<0.0)b=0.0:
elseif((a<0.5)&&(a!=2.0))b=l.0/(a+2.0;;
elseif(a<10.0)b=l.0/x;
elseb=10.0;
printf(^%f\n",Y);
若運行時輸入2.(X回車>,則上面程序的輸H結果是_B—
A)0.000000B)0.500000
01.000000
D)0.250000
28若有條件表達式(exp)?a++:b---,則以下表達式中能完全等價于表
達式(exp)的是_B—
A)(exp-0)
C)(exp==l)
B)(exp!=0)
D)(exp!=l)
29若運行時給變量x輸入12,則以下程序的運行結果是_A—
main()
{intx,Y;
scanf(〃版T,&X);
y=x>12?x+10:x-12;
printf("%d\n",Y);}
0
22
12
10
30以下程序的運行結果是_D—
main(){
Int
k=4,a=3,b=2,c=l;
printf(〃\n%d\n〃,k<a?k:c<b?c:a);}
4
3
2
1
31執(zhí)行以下程序段后,變量a,b,c的值分別是_B—
Int
x=10,Y=9;
Inta,b,c;
a=(-x==Y++)?-x:++y;
b=x++;
c=y;
a=9,b=9,c=9
a=8,b=8,c=10
a=9,b=10,c=9
a=l,b=ll,c=10
32若w,x,y,z,ml均為int型變量,則執(zhí)行下面語句后的m值是_A—
w=l;x=2;y=3;z=4:
m=(w<x)?w:x;
m=(m<Y)?m:y;
m=(m<Z)?m:z;
A)1
B)2
C)3
D)4
33若w=l,x=2,y=3,z=4,則條件表達式wG?w:y<z?y:z的值是_D
4
3
2
1
34執(zhí)行以下程序段后的輸出結果是_C—
intw=3,z=7,x=10;
printf("%d\n,>?x>10?x+100:x-10);
printf("%d\n",w++||z++);
printf(u%d\n!w>z);
printf(w%d\n”,w&&z);
A)0111
mi
0101
0100
第五章課后習題循環(huán)控制
1設有程序段
intk=10;
while(k=0)k=k—1;
則下面描述中正確的是_C_。
while循環(huán)執(zhí)行10次
循環(huán)體語句一次也不執(zhí)行
循環(huán)是無限循環(huán)
循環(huán)體語句執(zhí)行一次
2設有以下程序段
intx=0,s=0;
while(!x!=0)s十=++x;
printf("%d”,s);
則—B—
運行程序段后輸出0
程序段中的控制表達式是非法的
B運行程序段后輸出1
D程序段執(zhí)行無限次
3語句while"E);中的表達式!E等價于_A.
E==o
E!=l
E!=0D)E==l
4下面程序段的運行結果是A
a=l;b=2;c=2;
while(a<b<c){t=a;a=b;b=t;C-;}
printf(a%d,%d,%d”,a,b,c);
A)l,2,0
B2,1,0c)l,2,1D)2,1,1
5下面程序段的運行結果是_D。
X=Y二0;
while(x<15)Y++,x+=++Y;
printf(a%d,%d”,Y,x);
A)20,7B)6,12C)20,8D)8,20
6下面程序段的運行結果是Intn=0;C
while(n++<=2);printfC%dz,,n);
A)2B)3
04
有語法錯
7設有程序段B
t=0;
while(print(〃*〃))
t十+;
if(t<3)break;}
下面描述正確的是
A其中循環(huán)控制表達式與0等價
C其中循環(huán)控制表達式是不合法的
其中循環(huán)控制表達式與'。'等價
以上說法都不對
8下面程序的功能是將從鍵盤輸入的一對數(shù),由小到大排序輸出。當輸入一
對相等數(shù)對結束循環(huán),請選擇填空。B
#include<stdio.h>
main()
inta,b,t;
scanf(&a,&b);
while([l])
if(a>b)
{t=a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf(z,%d%d“,&a,&b);
[1]A)!a=b
B)a!=b
C)a-=bD)a=b
9下面程序的功能是從鍵盤輸入的一組字符中統(tǒng)計出大寫字母的個數(shù)m和
小寫字母的個數(shù)n,并輸出m、n中的較大者,請選擇填空。CA
#include<stdio.h>
mainO
{intm=0,n=0;
charc;
vvhi}e(([l])!=9
{if(C>='A'&&.c<='Z9m++;
if(c>='a'&&c〈二'z9n++;}
printf(//%d\n,\n<n?[2]);
)
[1]A)c=getchar()B)gctchar()C)c=getchar()Dscanfc;
[2]A)n:rnB)m:nC)m:mDn;n
10下面程序的功能是將小寫字母變成對應大寫字母后的第二個字母。其中
Y變成A,z變成B。請選擇填空。DC
#include<stdio.h>
main()
charc;
while((c=getchar())!='\n)
{if(C>='a'&&c〈;'z')
{Li)
if(c>>Z,&&c<='Z'+2)
[2]}
printf("%c”,c);
)
)
[1]c+=2c-=32c=c+32+2c-=30
[2]c=,B'c=?A'c-=26c=c+26
11下面程序的功能是在輸入的一批正整數(shù)中求出最大者,輸入0結束循環(huán),
請B
選擇填空。
#include<stdio.h>
main()
{inta,max=0;
scanf("%d&a);
while([l])
{if(max<a)max=a:
scanf(u%d&a);
}
printf("%d",max);
}
a==0
a
!a==l
!a
12下面程序的運行結果是_C_o
#include<stdio.h>
main()
{intnum=0;
while(num<=2)
{'num+十;
printf('num);
}
)
1
12
123
1234
13若運行以下程序時,從鍵盤輸入2473<CR>(<CR>表示車),則下面程
序的運行結果是A
#include<stdio.h>
main()
{intC;
whi1e((c=getchar0)!=<\n,)
switch(c一*2')
{case0:putchar(c+4);
case1:putchar:c+4);
case2:putchar:c+3);
Case3:putchar[c+2);
break;
printf("\n");}
668977
668966
66778777
6688766
14C語言中while和do-while循環(huán)的主要區(qū)別是A_?
do一while的循環(huán)體至少無條件執(zhí)行一次
B)while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴格
do-while允許從外部轉到循環(huán)體內
do-whi1e的循環(huán)體不能是復合語句
15以下能正確計算1X2X3X〃〃〃X1O的程序段是C
do(i=l;s=l;
S=s*i;
i++;
}while(i<=10);
do{i=l;s=0;
S=S*1;
i++;
}while(i<=10);
i=l;s=l;
do{
S=S*1;
i++;
}while(i<=10);
i=l;s=0;
do{
S=S*1;
i++;
}while(i<=10);
16以下程.序段_C_。
x二一1,
do
{x=x*x;}
while(!x);
是死循環(huán)B)循環(huán)執(zhí)行二次
循環(huán)執(zhí)行一次D)有語法錯誤
17以下描述中正確的是C
由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內
不能使用復合語句
do-while循環(huán)由do開始,用while結束,在while(表達式)后面不能寫分
號
在do-while循環(huán)體中,一定要有能使while后面表達式的值變?yōu)榱?”假")
的操作
do-while循環(huán)中,根據(jù)情況可以省略whi1e
18若有如下語句B
i=3;
do{printf(〃刎\n〃,x一=2);}while(!(---x));
則上面程序段
輸出的是1B)輸出的是1和一2C)輸出的是3和0D)是死循環(huán)
19下面程序的功能是計算正整數(shù)2345的各位數(shù)字平方和,請選擇填空BC
#include<stdia.h>
main()
{intn,sum=0;
n=2345;
do{sum=sum+[l];
n=[2];
}whilc(n);
printf("sum=%d〃,sum)
}
[1]An%10B(n%10)*(n%10)Cn/10D(n/10)*(n/10)
[2]An/1000Bn/100Cn/10Dn%10
20下面程序是從鍵盤輸入學號.然后輸出學號中百位數(shù)字是3的學號,輸入
0時結束循環(huán)。請選擇填空。BC
include<stdio.h>
mainO
(longintnum;
scanf(&口,n);
cio{if([l])printf(,z%dnum);
scanf('",&num);
}while([2]);
[1]A)num%100\10==3
num/100%10—3
Num%10/10==3
num/10%10==3
[2]!Num
Mun>0==0
!num=0
!num!=0
21等比數(shù)列的第一項a=l:公比q=2,下面程序的功能是求滿足前n項和
小于100的最大n,請選擇填空。BD
#include<stdio.h>
mainl()
{inta,g,n,sum};
a=l,g=2;n=sum=C:
do{
[11
++n;a*=g;
}while(sum<100):
[2];
Printf(“%d\n”,n);
)
[1]A)sum+十
B)surn+=a
C)sum=a+aD)a+=sum
[2]
n—n—2
n=n
n++
D)n-=1
22下面程序的功能是把316表示為兩個加數(shù)的和,使兩個加數(shù)分別能被13
和11整除。請選擇填空。B
^includeCstdio.h>
main()
{int=0,J,k;
do{i++;k=316一13*x;}while([l]);
i=k/11;
printf(z,316=13*%d+ll*%di,i);
)
[11A)k/ll
B)k%llC)k/ll==O
k/ll==O
23下面程序的運行結果是D
nclude<stdio.h>
main()
{inty=10;
do{Y---;}while(----Y);
printf("%d\n",Y---);
}
A)—1B)1c)8D)0
24若運行以下程序時,從鍵盤輸入ADescriptorGCR>(?R>表示回車),則
下面程序的運行結果是_D。
#include<stdio.h>
main()
{charc;
intv0=0,vl=0,v2=0;
do{
switch(c=getchar())
{case'atease'A
case'e—ease'E
ease'1tease'I
case'otease0
ease'utease'U4:vl+=l;
default:VO+=1;v2+=l;
)
}while(C!=,\n');
print(〃vo=%d,vl=%d,v2二%d\n",vo,VI,v2);
)
V0=7,vl=4,v2=7B)vo=8,vl=4,v2=8C)C)VO=11,Vl=4,V2=ll
Vo=12,vl=4,v2=12
25下面程序的運行結果是_B。
#include<stdio.h>
main()
{inta=1,b=10:
do
{b一=a;a++;}while(b---<o);
printf(〃a=%d,b=%d\nz/,a,b);
)
A)a=3,b=mB)a=2,b=8C)a=i,b=一1
a=4,b=9
26下面有關for循環(huán)的正確描述是D_。
for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況
for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達式
在for循環(huán)中,不能用break語句跳出循環(huán)體
for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來
27對for(表達式1;表達式3)可理解為B_o
for(表達式1;0;表達式表
C)for(表達式1;表達式1;表達式3)B)for(表達式1;表達式1;表達
式3)
for(表達式1;表達式3;表達式3)
28若t為整型變量,則以下循環(huán)執(zhí)行次數(shù)是B
for(i=2;i==0;)printf(〃機1〃,i—);
無限次B)0次C)1次D)2次
29以下for循環(huán)的執(zhí)行次數(shù)是_C。
for(X—0,y=0;(Y=123)&&(x<4);x十+);
是無限循環(huán)B)循環(huán)次數(shù)不定C)執(zhí)行4次
執(zhí)行3次
30以下不是無限循環(huán)的語句為A_。
for(y=0,x=l;x>++Y;x=i+十)i=x
for(;;x十+=1};
while(1){x++;}
for(i=10;;i---)sum+=i}.
31下面程序段的運行結果是_C。
for(y=l;y<10;)Y=((x=3*Y,x+1),x—1);
printfCx=%d,y=%dw,x,y);A)x=27,Y=27B)x=12,y=13C)x=15,
y=14D)x=y=27
32下面程序段的運行結果是D
for(x=3;x<6;x++)printf((x%2)?(a**%dz,):(a##%d\n"),x);
A)**3B)##3
##4**4
**5##5
C)##3
**4##5
D)**3##4
**5
33下列程序段不是死循環(huán)的是C
Inti=l
while(l)
{i=i%100+1;
if(i>100)break;
}
for(;;);
intk=0
do{十+k;}whi1e(k>=0);
ints=36
while(s);
一S;
34執(zhí)行語句for(i=l;i十十〈4;);后變量i的值是C
A)3B)4C)5D)不定
35有一堆零件(100到200之間),如果分成4個零件一組的若干組,則多2
個
零件;若分成7個零件一組,則多3個零件:若分成9個零件一組,則多5
個
零件。下面程序是求這堆零件總數(shù),請選擇填空。D
#include<stdio.h>
main()
{inti;
for(i=100;l<200:l++)
if((l-2)%4==0;
if(!((i—3)%7)J
if([l])
printf("%d",i);
)
A)1%9=5B)1%9:=5C)(i-5)%9!=0D)1%9==5
36
下面程序的功能是計算1至50中是7的倍數(shù)的數(shù)值之和,請選擇填空D
#include<stdi}.h>
main()
{inti,sum=0;for(i=l;i<=5;i++)
sum十二i;
printf(/z%dsum);)
A)(int)(l/7)==i/7B)(int)l/7==l/7c)l%7=0D)i%7=0
37下面程序的功能是計算1,至10之間的奇數(shù)之和及偶數(shù)之和。請選擇填
空。BC
#include<stdio.h>
main()
{int,b,c,i;
a=c=0:
for(i=0;i<=10:t-=2)
{a十二i;
⑴;
c+=b;
}
printf”偶數(shù)之和或d\n〃,a);
printf"奇數(shù)之和=%d\n",[2]);
(1]A)b=i——B)b=i+lc)b=i++D)b=i-i
[2]A)c—10B)cC)c-llD)c-b
38下面程序的運行結果是_B。
#include<stdio.h>
main()
{inti;
far(i=l;i<=5;i+-)
switch(i%5)
{caseO:printf("*“);break;
case1:printf("#a);break;
default:printf(?\n〃);
case2:printf(〃&〃);}
)
#&&&*
#&&&*
#&&&*
#&*
39下面程序的運行結果是_D。
#include<stdio,h>
main()
intx,i;
for(i=l;i<=100:i++)
{x=i;
if(十十x%2==0)
if(++x%3==o)
if(+十x%7==o>
printf("%d",x);
}
A)3981
B)4284
02668D)2870
40下面程序段的功能是計算i。。。!的末尾含有多少個零。請選擇填空。
(提示:只要算出1000!中含有因數(shù)5的個數(shù)即可)C
for(k=0,i=5;i<=1000;i+=5)
(m二i;
while([1])(k+-;m=m/5;}
(1]A)m%5=0B)m=m%5=0C)m%5==0D)m%5!
=0
41下面程序的功能是求算式xyz十yzz=532中x,y,z的值(其中xyz和
yzz分別表示一個三位數(shù)),請選擇填空。CD
#include<stdio.h>
main()
{intx,Y,z,i,result=532;
for(x=l;x<10;x+-)
for(y=l;y<10;Y+-)
for(II];z<10;z+-)
{i=100*x+10*y+z-100*y+10*z+z;
if([2])printf(〃x=%d,Y=%d,z=%d\n,z,x,Y,z);
)
}
[1]A)z=x
z==l
z==0
z=y
[2]A)i/result==l
i=result
C)i!=resultD;i==result
42下面程序是輸出一個正整數(shù)等差數(shù)列的前十項,此數(shù)列前四項之和及之
積分別是26和880,請選擇填空。CA
#include<stdio.h>
main()
(inta,d,i,s,f,x;/*a是第一項*/
for(a=l;a<30;ah)
for(d=l;[1];d十十)
{S=O;f=l;x=a;
for(i=l;i<=4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- I-AB-MECA-生命科學試劑-MCE
- Cardionogen-2-生命科學試劑-MCE
- 1-Acetylimidazole-生命科學試劑-MCE
- 科技創(chuàng)新與知識產權法律保護的協(xié)同發(fā)展
- 理石訂購合同范本
- 停息掛賬收費合同范本
- 2025浙江嘉興市桐鄉(xiāng)市部分國有企業(yè)招聘員工41人筆試參考題庫附帶答案詳解
- 2025至2030年中國葫蘆形珍珠數(shù)據(jù)監(jiān)測研究報告
- 科技教育引領下的現(xiàn)代農業(yè)生產培訓新思路
- 2025至2030年中國藝術井蓋數(shù)據(jù)監(jiān)測研究報告
- USB-3.1-TYPE-C-培訓資料公開課獲獎課件
- 《機械制圖(多學時)》中職全套教學課件
- 2024-2025學年小學信息技術(信息科技)第二冊電子工業(yè)版(2022)教學設計合集
- 課堂教學質量評價表
- 人工智能通識-課件全套 黃君羨 01-12 初識人工智能 -AIGC安全與倫理
- 執(zhí)業(yè)藥師藥學考試題庫及答案(完整版)
- 婚姻家庭咨詢師服務流程手冊
- 浙江紹興市勘察測繪院下屬國有企業(yè)紹興市勘察測繪有限公司招聘筆試題庫2024
- 第1課《鄧稼先》課件語文七年級下冊2
- 2024-2030年中國納米纖維素技術行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 《C語言程序設計(第5版)》全套教學課件
評論
0/150
提交評論