版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
大學計算機應用課程
C語言學習-同步練習訓練題
第1章概論
一、單選題:
1.以下敘述中正確的是
(C)o
A)C語言程序中可以有重名的函數
B)C語言程序中要求每行只能寫
一條語句C)注釋可以出現在C語
言程序中的任何位置
D)最小的C語言程序中可以沒有
main()函數2.以下敘述正確的是
(C)。
A)在C程序中,main函數必須位于程序的最前面
B)C程序的每行中只能寫一條語句
C)C語言本身沒有輸入輸出語句
D)在對一個C程序進行編譯的過程中,可發(fā)現注
釋中的拼寫錯誤3.以下敘述中不正確的是(D)。
A)一個C源程序可由一個或多
個函數組成B)一個C源程序必
須包含一個main函數
C)C程序的基本組成單位是函數
D)在C程序中,注釋說明只能位于一條語句的后面
4.C語言程序的基本單位是
(C)0A)程序行B)
語句C)函數D)字符
5.以下敘述中正確的是(A)。
A)C程序中注釋部分可以出現在程序中任
何合適的地方B)花括號〃{"和"}"只能作為
函數體的定界符
。構成C程序的基本單位是函數,所有函數名都可以由用戶命名
D分號是c語句之間的分隔符,不是
語句的一部分6.以下敘述中正確的是
(C)。
A)C語言比其他語言高級
B)C語言可以不用編譯就能被計算機識別執(zhí)行
C)C語言以接近英國國家的自然語言和數學語言為語言的表達形式
D)C語言出現最晚,具有其他語言的一切優(yōu)點
7.C語言程序的上機步驟中不包括(D)。
A)編輯B)編譯C)連接D)編程
8.算法具有五個特性,以下不屬于算法特
性的是(B)0A)有窮性B)簡潔性
C)可行性D)確定性9.以下說法
錯誤的是(C)。A)一
個算法應包含有限個步驟
B)在計算機上實現的算法是用來處理數據
對象的
C)算法中指定的操作不能通過己經實現的基本運算
執(zhí)行有限次后實現D)算法的目的是為了求解
二、填空題
1一個C語言程序必須有一個—函數。
2一個C語言程序必定從函數開始執(zhí)行。
3函數體由符號—開始,用符號_結束。
4.C語言源程序文件的后綴是,經過編譯后,生成文件的后綴
是經過連接生成文件的后綴是o5.算法的特征是、
、有窮性、個輸出和一個輸入。
參考答案:
2
選擇題:1-5:CCDCA6-9:CDBC
填空題:1.主(或main())2.主(或main())
3.{,}4.c,obj,exe5.確定性,可行性,有窮性,有零個或多個輸入0~n,有一
個或多個輸出
第3章數據類型與表達式
一、單選題:
1.C語言中的標識符只能由字母、數字和下劃線三種字符組成,
且第一個字符(OoA)必須為字母B)必須為下劃線
C)必須為字母或下劃線D)可以是字母、數字和下劃線中的任一字符
2.以下選項中合法的用戶標識符是
(B)oA)longB)_2Test
C)3DmaxD)A.dat3.下列
可作為C語言用戶標識符的一組是
(B)o
A)void,var,wordB)aa,_123,B5C)if,-abc,
defineD)5x,BOT,sizeof4.以下(C)組中的標識符都
是合法的用戶標識符。
A)3ab,A_10,stB)class,X1,gradeC)printf,INT,chartD)b3,a,
unsigned
5.C語言中的基本數據類型包括(B)o
A)整型、實型、邏輯型B)整型、實型、字符型C)
3
整型、字符型、邏輯型D)字符型、實型、邏輯型
6.下列各數據類型不屬于構造類型的是
(A)oA)字符型B)共用型
C)結構型D)數組型7.以下選
項中不屬于C語言的類型說明符的是
(D)o
A)signedshortintB)unsignedlongint
C)unsignedintD)longshort8.以下選項中
可以作為C語言中合法整數的是(C)。
A)10110BB)0386C)OxffaD)x2a2
9.以下選項中,都是正確的八進制數或十六進制數的是(Oo
A)022,018,0x2aB)02a,017,0x2aC)022,0x18,0x2aD)02a,0x2a,
123
io.以下選項中,均是合法整型常量的選項是(A)。
A)123,Oxffff,0123B)0xabc,018,
0x123C)01a,123,012,OxefD)0x22b,3e5,
01611.在16位C編譯系統(tǒng)上,若定義longa;則能給變量a賦值40000
的正確語句是(D)oA)a=20000+20000;B)a=4000*10;
C)a=30000+10000;D)a=4000L*10L;
2已知大寫字母A的ASCH碼值為65,小寫字母a的ASCH碼值為97,則用八進制表
示的字符常量是(A)oA)字符AB)字符aC)字符eD)非法
的常量
以下選項中,非法的字符常量
4
是(C)oA)''t'B)'\117'
C)“\n"D)'\xaa'14.在C語言
中,退格符是(D)o
A)\nB)\tC)\fD)\b
$以下選項中合法的字符常量
是(B)。A)"B"B)'\010'
068D)D
6字符型數據在機器中是用ASCH碼表示的,字符''5〃和''3〃在機器中表示為(C)o
A)1010001101110011B)01000101和01100111C)00110101和00H00110)01100101
和01100011
I下列數據中,(C)是不合法的C語
言實型數據。A)0.123B)123e3
C)1.23e4.5D)123.0
s合法的常量是(C)o
A)2e3.5B)-e-3C)-.5e-3D)'\xfg'
19.C語言中運算對象必須是整型運算
符的是(A)oA)%=B)+C)>
D)*
5
。若變量己正確定義并賦值,以下符合c語言語法的表
達式是(D)oA)a:=b+1B)a=b+2=c+3C)int
20.3%5D)a=b=c+1
2以下非法的賦值語句是(C)o
A)n=(i=2,++i);B)j++;C)++(i+l);
D)x=j>0;
2設x、y均為整型變量,且x=10,y=3,則以下語句的
輸出結果是(D)oprintf(z/%d,%d\n,/,x—,—y);
A)10,3B)9,3C)9,2D)10,2
3若已定義x和y為double類型,則表達式x=l,
y=x+3/2的值是(C)。A)1B)2C)2.0D)2.5
2若變量a是int類型,并執(zhí)行了語句:a='A,+1.6;則正確的敘述是(D)。
A)a的值是字符CB)a的值是浮點型C)不允許字符型和浮點型相加
D)a的值是字符'A'的ASCII值加上1
3以下不正確的敘述是(D)o
A)在C程序中,逗號運算符的優(yōu)先級最低。B)在C程序中,APH和
aph是兩個不同的變量。C)若a和b類型相同,在執(zhí)行賦值表達式a=b
后b中的值將放入a中,而b中的值不變。D)當從鍵盤輸入數據時,
對于整型變量只能輸入整型數值,對于實型變量只能輸入實型數值。
26.若有定義:inta=7;floatx=2.5,y=4.7;則表達式
x+a%3*(int)(x+y)%2/4的值是(A)。A)2.5B)2.75C)3.5D)0.0
2設變量a是int型,b是float型,c是double型,則表達式a+b*c-4值的數據類型為
(C)o
A)intB)floatC)doubleD)不確定
8設變量x為float類型,y為int類型,則以下能實現將x中的數值保留小數點后兩
位、第三位進行四舍五入運算的表達式是(D)o
A)x=x*100+0.5/100.0B)x=(x/100+0.5)*100.0C)x=(x*
100+0.5)/100.0D)y=x*100+0.5,x=y/100.0
9以下選項中,與1<="+完全等價的表
6
達式是(A)oA)k=n,n=n+l
B)n=n+l,k=nC)k=++nD)k+=n+l
0在C語言中,int,char和short三種類型數據在內存中所
占用的字節(jié)數(D)。A)由用戶自己定義B)均為兩個字節(jié)C)
是任意的
D)由所用機器的機器字長決定
J變量x,y,z均為double型且已正確賦值,不能正確表示數學式子x+y+z的C語言表達
式是(A).
A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z
a
3算術式為C表達式,不正確的是(C)。
描述—
b-c
A)a/b/cB)a/(b*c)C)a/b*c
D)(a/b)/c33.不能進行
++和一運算的數據類型為(D)oA)
指針B)整型C)長整型D)常量
34.設以下變量均為int類型,表達式的值不為5的是(C)o
A)x=y=4,x+y,x+1B)x=y=4,x+y,y+1C)x=y=4,x+1,x+yD)y=4,
y+1,x=y,x+135.若a,b,c和d都是int型變量,則計算表達式
a=(b=l,c=2,d=3)后,a的值為(C)。A)1B)2C)3D)6
36.以下敘述正確的是(D)o
A)在C程序中,每行中只能寫一條語句。
B)若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數。
0在C粉中,無論是整雌是實數都能被準確無謝
D)在C程序中,流是只能用于整數運算的運算符。
7
二、填空題
1.定義inta=5,b=4;則執(zhí)行表達式b=++a*b—后,變量b的值為24。
2.C語言標識符由字母、數字和下劃線組成,且必須以字母和下劃線開頭。不能
把關鍵字作為用戶標識符。
3.假定x和y為double型,則表達式x=2,y=x+3/2的值是3.0。
4.數據'5'是一個字符類型的常量。
5.數據40在內存中占_______________________匕個字節(jié),數據40L在內存中占.
個字節(jié)。
6.表達式2+6/(int)3.5的值是4。
7.如果有inta=5,則表達式a+=a-=4的值是2。
8.整數T在內存的二進制碼存儲形式為81111111111的二。
9.數據'A'在內存的存儲形式為01000001。
10.數學表達〃-梟式的C語言表達式是2*x-
(x+y)/(3*y+l)。參考答案:
選擇題:01-05:CBBCB06-10:ADCCAU-15:DACDB16-20:CCCAD21-
25:CDCDD26-30:ACDAD31-35:ACDCC36-40:D
填空題:1.242.字母,下劃線,字母,下劃線,關鍵
字3.3.04.字符5.246.47.2
8.11111111111111119.0100000110.2*x-(x+y)/(3*y+l)
第4章順序
一、單選題:
1己知intk,m=l;執(zhí)行語句k=-m++;后k的值是(A)。(提示:負號與自加運算符
同級,結合方向從右向左)A)-lB)0C)1D)2
2若變量a,b已正確定義,且a,b均已正確賦值,下列選項中合法的語句是(B)
A)a=bB)++a;C)a+=b++=l;D)a=int(b);(提示:a=b只是表達式非語句;
b++是個表達式)3.若有定義intx=4;則執(zhí)行語句x+=x*=x+1;后,
x的值為(C)。
8
A)5B)20040D)無答案
4.若有定義和
語句:ints,
P;
s=p=5;p=s++,++p,p+2,p++;則執(zhí)行語句后
p的值是(C)A)9B)8C)7D)6
5.若有定義:inta,b;則表達式a=4,b=3,a+b+2,a++,
a+b+2的值為(C)。A)12B)llC)10D)無答案
6.若有定義:floata=3.0,b=4.0,c=5.0;則表達式
l/2*(a+b+c)的值為(C)。A)6.0B)6C)0.0D)無答案
7以下程序段的輸出結果是(C)。(提示:a當約束過嚴時,約束失效。
按自由格式輸出。)inta=1234;
printf(,/%2d\n//,a);
A)12B)3401234D)提示出錯,無結果
8下列程序段的輸出結果
是(C)ointa=1234;
floatb=123.456;
double
c=12345.54321;
printf(級2d,%3.2f,%4.1T,a,b,c);
A)無輸出B)12,123.46,12345.5C)1234,123.46,12345.5D)1234,123.45,1234.5
9設x,y均為整型變量,且x=8,y=5,則以下語句的
輸出結果是(D)oprintf("%d,%d\n”,x一,
++y);
A)8,5B)7,5C)7,6D)8,6
9
0以下程序的輸出結果是
(A)ovoidmain()
{inta=20,b=10;printf
(〃%d,%%d\n〃,a+b,a-
b);}
A)30,%dB)30,10C)30,%10D)以上答案均不正確
i下列程序的運行結果
是(A)ovoidmain()
{float
x=2.5;
inty;y=
(int)x;
printf(,,x=%f,y=%d〃,x,y);}
A)x=2.500000,y=2B)x=2.5,y=2C)x=2,y=2D)x=2.500000,y=2.000000
2己知intk=10,m=3,n;則下列語句的輸
出結果是(B)oprintf(〃%d\n〃,n=
(k%m,k/m));
A)2B)3C)4D)5
2以下程序的輸出結果
是(A)。voidmain()
{charc='z';
printf(〃%c〃,c-
25);}
A)aB)zC)z-25D)y
4下面程序的輸出結果
是(C)ovoidmain()
{double
d=3.2;int
x=l.2,y;
y=(x+3.8)/5
io
.0;
printf(//%d\n,/,d*y);}
A)3B)3.2C)0D)3.07
15.printfC%d,%d,%d\n”,010,0x10,10);輸
出結果是(C)。A)10,10,10B)16,8,10
08,16,10D)無答案
16.下面程序的輸出結果是(C)。(提示:輸
出時無定界符)voidmain()
{intk=17:
printf(z/%d,%o,%x\n”,k,
k,k);)
A)17,17,17B)17,021,0x11C)17,21,11D)17,0x11,021
17.若有以下程序
段:intm=32767,
n=032767;
printf("%d,%o\n”,m,n);執(zhí)行后的輸出結果是
(A)oA)32767,32767
B)32767,032767C)32767,77777
D)32767,077777
18.若有以下程序
段:int
m=0xabc,
n=0xabc;
m-=n;printf("%x\n",m);執(zhí)行后的結果是(C)。
A)0X0B)0x0C)0D)Oxabc
o下列程序執(zhí)行后的輸出結果
是(C)。voidmain()
{charx=0xFFFF;
printf(級d\n”,x
—);}
ii
A)-32767B)FFFEC)-lD)=-32768
2printf("a\bre\'hi\'y\\\bou\n");的輸
出結果是(C)。A)a\bre\'hi\'y\\\bou
B)a\bre\'hi\'y\bouC)re'hi'you
D)abre'hi'y\bou
2有定義語句:intx,y;若要通過scanf("%d,%d",&x,&y);語句使變量x得到數值11,
變量y得到數值12,下面四組輸入形式中錯誤的是(A)o
人)11<空格〉12〈回車>B)ll,(空格>12〈回車》C)ll,12〈回車〉
D)11,〈回車》
12〈回車〉
23.有以下程
序段:int
m=0,n=0;
charc='a';
scanf&m,
&c,&n);
printf("%d,%c,%d\n”,m,c,n);
若從鍵盤上輸入:10A10〈回車》,則輸出
結果是(A)。A)10,A,10B)16,a,10
C)10,a,0D)10,A,0
a若變量已正確說明為int類型,要通過語句scanf("%d%d%d”,&a,&b,&c);給a賦值
l,b賦值2,c賦值3,不正確的輸入形式是(B)o
A)1〈空格>2〈空格>3〈回車>B)1,2,3(回車》C)1〈回車》D)1〈空格》2〈回
車》
2〈空格>3〈回車》3〈回車》
sa,b.c被定義為int型變量,若從鍵盤給a,b,c輸入數據,正確的輸入語句是(D)
A)inputa,b,c;B)read(,,%d%d%d,z,&a,&b,&c);C)scanf("%d%d%d”,a,b,c);
D)scanf("%d%d%d",&a,&b,&c);26.已知a,b,c為int型變量,若從鍵盤輸入:1,2,3<回
車》,使a的值為1,b的值為2,c的值為3,以下選項中正確的
輸入語句是(B)o
12
A)scanf(〃%2d,%2d,%2d〃,a,b,c);B)scanf(〃%d,%d,%d〃,&a,&b,&c);
C)scanf(〃%d%d%d〃,&a,&b,&c);
D)scanfC,i=%dj=%d,k=%d,/,&
a,&b,&c);27.執(zhí)行下程序時輸入:123<空格>456〈空
格>789〈回車〉,輸出結果是(D)ovoidmain()
{chars;
intc,
i;
scanf(〃%c〃,&c);scanf&i);
scanf("%c〃,&s);printf("%c,%d,%c\n〃,
c,i,s);}A)123,456,789
B)1,456,789
01,23,456,789D)
1,23,4
二、填空題
1.有以下程
序:void
main()
{intm,n,p;scanf(,/m=%dn=%dp=%d/,,&m,&n,
&p);printf(,z%d%d%d\n/z,m,n,p);}
若想從鍵盤上輸入數據,使變量口中的值為123,n中的值為456,p中的值為789,則正
確的輸入是,
13
m=123n=456p=789_o
2.以下程序段的輸出結果是
28ovoid
main()
{inta=2,b=3,
c=4;a*=16
+(b++)-(++c);
printf(〃%d〃,a);}
3.以下程序段的輸出結果是5
14
intx=17,y=26;
printf(〃%d〃,y/=
(x%=6));
4以下程序的輸出結果是—
8,10ovoidmain()
{inti=010,j=10;printf
C%d,%d\n,z,i,j);)
s下列程序的輸出結果為一
12ovoidmain()
{intx=3,y=5;
printf(〃%d〃,x=(x--)*(--y));}
6.以下程序段的輸出結果是1234。
inta=1234;
printf(〃%2d\n〃,
a);
7.若有以下程序:
voidmain()
{chara;
a='H'-'A'+O;
printf(〃%c,%d\n〃,a,a);}
執(zhí)行后的輸出結果是7,55o
8.以下程序段的輸出結果是
261ovoid
main()
{inta=177;printf
(〃%o\n〃,a);)
9.以下程序的輸出結果是
voidmain()
{unsignedshorta=65536;int
15
b;printf(z/%d\n,z,b=a);}
解釋:無符號短整型占2個字節(jié),最大值65535,二進制全lo65536多1,進位成1
0000000000000000,存到2字
節(jié)整型為0000000000000000
參考答案:
選擇題:01-05:ABCCC06-10:CCCDA
U-15:ABACC16-20:CACDC21-
25:CAABD26-30:BD
填空題:1.m=123n=456p=7892.283.54.8,10
5.126.12347.7,558.2619.0
第5章選擇
一、選擇題
1已知a=10,b=20,則表達式!a<b的值是(C)。
A)真B)假C)1D)0
2數學關系式xWyWz可用C語言表達式(C)表示。
A)x<=y<=zB)x<=yANDy<=zC)x<=y&&y<=zD)(x<=y)&(y<=z)
3若有定義和語句:inta=10,b=5,x;charc='A';x=a&&b&.&c<'a';則x值是
(D)o
A)真B)假C)OD)1
4設intx=l,y=2,則表達式(一x||y++)
的值是(B)oA)0B)1C)2
D)-l
16
5設x,y,t均為int型變量,則執(zhí)行語句
x=y=3;t=++x||++y;后y的值為(C)。A)不一定B)4
03D)1
6設x,y,t均為int型變量,則執(zhí)行語句x=y=l;t=-x&&
++y;后y的值為(D)。A)不一定B)0C)2D)1
7設a、b、c均為int型變量,則執(zhí)行下面程序段后,a值為(C),b值
為(C),c值為(C)。a=b=c=l;++b&&++c||++a;
A)0B)2C)1D)錯誤
A)0B)1C)2D)錯誤
A)0B)1C)2D)錯誤
8有定義語句:inta=l,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x
的值不等于3的是(C)。A)if(c<a)x=l;B)if(a<3)x=3;
elseif(b<a)x=2;elseif(a<2)
x=2;elsex=3;elsex=l;
C)if(a<3)x=3;D)if(a<b)x=b;
if(a<2)x=2;if(b<c)x=c;
if(a<l)x=l;if(c<a)x=a;
9以下程序運行后的輸出結果
是(C)ovoidmain()
{inta=l,
b=2,m=0,n=0,k;
k=(n=b>a)||
(m=a<b);
printf(z/%d,%d\n”,k
,m):)
A)0,0B)0,1C)l,0D)1,1
10.有以下程
序:void
main()
{inti=l,j=l,k=2;
17
if((j++1Ik++)&&i++)
printf(z/%d,%d,%d\n〃,i,
j,k);}執(zhí)行后輸出結果是(C)0
A)l,1,2B)2,2,1C)2,2,2D)2,2,3
i以下程序的輸出結果
是(C)ovoidmain()
{inta=-l,b=l,k;
if((++a<0)&&!(b--<=0))printf
(〃%d%d\n〃,a,b);elseprintf
(〃%d%d\n〃,b,a);}
A)-11B)01C)10D)00
2如果從鍵盤上輸入3,則以下程序的輸出
結果是(B)ovoidmain()
{intx;scanf
&x);
if(x--<3)printf
-x);elseprintf
(〃%d〃,x++);}
A)1B)2C)3D)4
3以下程序的輸出結果
是(C)。voidmain()
{inta=2,b=-l,
c=2;if(a<b)
if(b<0)c=0;
18
elsec++;
printf(〃%d\n〃,
c);}
A)0B)1C)2D)3
i在執(zhí)行下程序時,為了使輸出的結果為:t=4,則給a和b輸入的值
應滿足的條件是(OoA)a>bB)a<b<0C)0<a<bD)0>a>b
voidmain()
{ints>t,a,b;
scanf("%d,斷T,&a,
&b);s=l;t=l;
if(a>0)s
=s+l;if
(a>b)
t=s+l;
elseif(a==b)
t=5;else
t=2*s;
printf("t=%d\n”,t);}
$以下程序的輸出結果
是(C)ovoidmain()
{floatx=2.0,
y;if(x<0.0)
y=0.0;
elseif(x<10.0)
y=l.0/x;else
y=l.0;
printf("%f\n",y);}
A)0.000000B)0.250000C)0.500000D)1.000000
6當a=l,b=3,c=5,d=4時,執(zhí)行下面一段程序后,x的值為(B)o(提示:重點
搞清if-else配對的情況)if(a<b)
19
if(c<d)
x=l;else
if(a<c)
if(b<d)
x=2;else
x=3;
elsex=4;
elsex=5;
A)1B)2C)3D)4
T若有定義:floatw;inta,b;則合法的
switch語句是(D)oA)switch(w)
B)switch(a)
{caseLO:printf(〃*\n〃);{case1printf(〃*\n〃);
case2.0:printf(〃**\n〃);}case2
printf(〃*\n〃);}C)switch(b);
D)switch(a+b)
{case1:printf(〃*\n〃);{case
Lprintf(〃\n〃);
default:printf(〃\n〃);case
2:printf(〃**\n〃);case
1+2:printf(〃**\n〃);}default:
printf(〃\n〃);}
困若有定義:floatw;inta,b;則合法的switch
20
語句是(B)oA)switch(w)B)switch(a+b)
{case1.0:printf(〃*\n〃);{case1:printf(〃*\n〃);
case2.0:printf(〃狂\n〃);}case2:
printf(〃**\n〃);}C)switch(w+1.76)
D)switch(a);
{case1:printf(〃*\n〃);{case
l:printf(W);
default:printf(〃\n〃);case
2:printf(〃**\n〃);
21
casel+2:printf(〃***\rT);}default:printf(〃\n〃);}
9以下程序運行后的輸出結果
是(D)。voidmain()
{inta=15,
m=0;
switch
(a%3)
{case0:
m++;case
1:m++;
default:m++;
}
printf("d\n〃,
m);)
A)0B)1C)2D)3
20.以下程序運行后的輸出結
果是(B)ovoidmain()
{int
a=10,m=0;
switch(a
/3)
{default:m++;
case0:m++;
break;case1:
m++;}
printf(〃%d\n〃,
m);}A)1B)2
C)3D)0
2以下程序運行后的輸出結果
是(D)。voidmain()
22
{inta=10,b=21,
m=0;switch
(a%3)
{case0:
m++;break;
case1:m++;
switch(b%2)
{default:m++;
case0:
m++;break;
case2:m++;}
printf(〃%d\n〃,m);}
A)1B)2C)3D)4
2設口、n、x均為int型變量,則執(zhí)行下面程序段后,x值為(C),m
值為(C),n值為(C)。m=6;n=5;x=--m==n++?--m:++n;
A)7B)6C)4D)5
A)5B)6C)4D)7
A)7B)5C)6D)4
2假定w,x,y,z,m均為int型變量,如有
以下程序段:w=4;x=3;y=2;z
=1;
m=(w<x)?w:x;m=(m<y)?m:y;m=
(m<z)?m:z;則該程序段運行后,m的
值是(D)o
A)4B)3C)2D)1
二、填空題
1.設inta=5,b=6,表達式(++a==b—)?++a:―b的值是7
23
2.設y是int型,請寫出y為奇數的關系表達式(y%2)==l或(y%2)!=0。
3.以下程序的輸出結果是L0
24
voidmain()
{inta=4,b=5,c=0,d;
d=!a&&!b||c;printf(〃%d,%d\n〃,
b,d);}
4.以下程序運行后的輸出結果是—
20
voidmain()
{intx=10,y=20,
t=0;if(x==y)
t=x;x=y;y=t;
printf(〃%d,%d\n〃,x,
y);}5.下列程序段的
輸出結果是passwarn
intn='c';
switch(n++)
{default:printf
("error");break;case
‘a"
case'A':
case'b':
case'B':printf
("good");break;case'c':
case'C':printf
(pass);cased:
case<D,:printf("warn");
)
6以下程序運行后的輸出結果是—
_3ovoid
main()
{intp=30;
25
printf(〃%d\n〃,(p/3>0?p/10:p
%3));}
7.以下程序輸出的結果是一0.
_ovoidmain()
{inta=5,b=4c=3,d;
d=(a>b>c);
printf("%d〃,d);)
a以下程序運行后的結果是一
_yesovoid
main()
{inta=l,b=3,c=5;
if(c=a+b)
printf(〃yes\n〃);
elseprintf(〃no\n〃);
)
9.若有以下
程序:void
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf(〃%d%d%d”,a,b,c
);)
執(zhí)行后的輸出結果為_503o
10.以下程序的功能是將學生的百分制成績轉換成等級制
(100^90-'A'),請?zhí)羁?。voidmain()
{floatscore;/*score用來存放學生的百分制成績*/
26
chargrade;/*grade用來存放學生的等
級制成績*/inttemp;
scanf(〃%f〃,
&s);t=s/10;
if(t<6)t=5;
switch(t)
{case10:
case9:g='A';
break;case8:
g=;break;
case7:g=;
break;case6:
g='D';break;
case5:g=、E';
)
printf(zz%.Ifto%c\n〃,score,grade);}
11.下面程序的功能:模擬簡單計算器計算表達式alopa2的值,其中al,a2為數
值,。P為運算符號+、-、*、/,請補充完整。
voidmain()
{floatal,a2;
charop;
scanf(〃%f%c%f〃,&al,
&op,&a2);switch(op)
{ca,+':printf(,,al+a2=%f\n/,,al+a2);break;
se
case':printf(,zal-a2=%f\nz,,
al-a2);break;case,*':printf
(〃al*a2=%f\n〃,al*a2);break;case
':if(a2==0)printf(〃除數為零!
/n〃);
27
elseprintf("al/a2=%f\n",
al/a2);break;default:printf("不認識的
運算符號\n〃);
})
參考答案:
選擇題:01-05:CCDBC06-10:D(CCC)CCC11-15:CBCCC
16-20:BDCDB21-25:D(CCC)CD填空題:1.72.(y%2)==l或
(y%2)!=03,5,0
4.20,05.passwarn6.37.08.yes
9.50310.s/10,t=5
11.char,枇J
第6章循環(huán)
一、選擇題:
1.C語言中用于結構化程序設計的三種基
本結構是(A)。A)順序結構、選擇結構、
循環(huán)結構
B)ifswitch>break
C)for>while,do-whileD)if>for>
continue2.有以下程序段:
intk=0;
while(k=l)
k++;
while循環(huán)執(zhí)行的次數是(A)o
A)無限次B)有語法錯誤,不能執(zhí)行
28
C)一次也不執(zhí)行D)執(zhí)行1次
3.x為int類型,進入下面的循環(huán)之前,x的值為0.
while(x=2){…}則以下敘述中正確
的是(B)。A)循環(huán)控制表達式的值為
0B)循環(huán)控制表達式的值為1
C)循環(huán)控制表達式的值為2D)循環(huán)控制表達式不合法
4以下程序段的輸出結果
是(B)ointn=10;
while(n>7){n-;printf(線d\n”,n);)
A)B)901D)9
100
9898
8787
76
5執(zhí)行語句:for(i=l;i++<4;);后,變量i
的值是(C)oA)3B)4C)5D)不定
6有如下程序段,其中s,a,b,c均已經定義為整型變量,且a,c
均己經賦值(c大于0):for(b=l;b<=c;b++)s=s+l;
則與上述程序段功能等價的賦值語
句是(C)。A)s=a+b;B)s=a+c;
C)s=s+c;D)s=b+c;7.以下程序
執(zhí)行后sum的值是(D)o
voidmain()
{inti,sum;
for(i=l;i<5;i++)
sum+=i;
printf(級d\n”,
sum);}
29
A)15B)10C)5D)不確定
8以下程序段的輸出結果
是(D)ointi,j,m=0;
for(i=l;i<=15;
i+=4)m++;
printf("%d\n”,m);
A)5B)5C)3D)4
9以下程序的輸出結果是(D).(提示:從最內層if開始進
行分析,逐層排除)voidmain()
{intx,i;
for(i=l;i<=100;i++)
{x=i;
if(++x%2==
0)
if(++x%3=
=0)
if(++x%7==0)
printf(z,%d”,x);
)
printf("\n");}
A)3981B)4284C)2668D)2870
0當執(zhí)行以下程序段時,
(A)ox=~l;
do{x=x*x;}while(!x);
A循環(huán)體執(zhí)行一次B)循環(huán)體執(zhí)行兩次C)循環(huán)體執(zhí)行無限次
D)系統(tǒng)將提示有語法錯誤11.有如下程序:(提示:先判斷出循環(huán)幾次時,
結果才能得2。然后再以此為依據,求出n的值)
30
voidmain()
{int
s=0,a=l,n;
scanf("/d",
&n);
do{s+=l;a=a-2;}while(a!=n);
printf("%d\n',s);}
若要使程序輸出為2,則該程序從鍵盤輸入
的值是(B)。A)-lB)-3C)-5D)0
12.以下程序段的輸出結
果是(C)intx=3;
do{printf("%3d”,x-=2);}while
(!(—x));A)1B)30C)1
-2D)死循環(huán)
13.以下敘述正確的是(D)。
A)do-while語句構成的循環(huán)不能用其他語句構成的循環(huán)來代替
Bdo…while語句構成的循環(huán)只能用break語句退出
。用do…while語句構成的循環(huán),在while后的表達式為非零時結束循環(huán)
D用do-while語句構成的循環(huán),在while后的表達式為零時結束循環(huán)
14.有如下程
序:void
main()
{intk=4,
n=0;for
(;n<k;)
{n++;
if(n%3!=0)
continue;k—;
)
31
printf("%d,%d\n",k,
n);)程序運行后的輸出
結果是(C)o
A)1,1B)2,2C)3,3D)4,4
15.在下列選項中沒有構成死循環(huán)的程
序段是(A)oA)inti=100;
B)for(;;)
while(1)
{i=i%100+l;
if(i>=100)break;
)
C)intk=1000;D)ints=36;
do{++k;while(s);
}while(k>=1000);s--;
16.以下程序中,while循環(huán)的循環(huán)次數是(D)o(提示:遇continue時,立即結束
本次循環(huán),執(zhí)行下次循環(huán)。)voidmain()
{int
i=0;
do
(if
(i<l)contin
ue;if(i==
5)break;i++;
}while(i<10);
}
A)1B)10C)6D)死循環(huán)
32
17.以下程序的輸出結
果是(D)ovoidmain
()
{inta,b;
for(a=l,b=l;a<=100;a++)
{if(b>=10)
break;
if(b%3==l)
{b+=3;continue;}
}
printf("%d\n",a);}
A)101B)603D)4
18.以下程序段的輸出結果
是(B)。intk,j,s;
for(k=2;k<6;k++,k++)
{s=l;
for(j=k;j<6;j++)s+=j;}
A)15B)10C)24D)6
19.以下程序段的輸出結果
是(D)ointk,j,s;
s=l;
for(k=l;k<5;k++,k
++)
for(j=k;j<5;j++)
s+=j;
A)17B)7C)10D)18
20.以下程序的輸出結果是(B)o
#
include<stdio
33
.h>voidmain
()
{inti=0,
a=0;
while
(i<20)
{for(;;)
{if(i%10==0)
break;elsei-
}
i+=ll;a+
=i;
}printf
("為d'n",a);}
A)21B)32C)33D)11
二、填空題:
1.如果從鍵盤上輸入2006,則以下程序運行后的輸出結
果為6002o
voidmain()
{intnl,n2;
scanf&
n2);
while(n2!=0)
{nl=n2%10;
printf('%d",
nl);
n2=n2/10;
}}
2.有如卜程序:
34
voidmain()
{intn=8;
while(n>5){n--;printf(n);}}
該程序段的輸出結果是.765。
3,若輸入字符串abcde〈回車》,則以下while循環(huán)
體執(zhí)行_生次。while((ch=getchar())!='e')
printf(〃*〃);4.以下程序運行后
的輸出結果是8。
voidmain()
{inti=10,
j=0;do{
j=j+l;i—;
}while(i>2);
printf("%d\n",
j);}
s以下程序的輸出結果是10
_ovoidmain()
{ints,i;for(s=0,
i=l;i<5;i++,s+=i);
printf(〃%d\n〃,s);}
6下面程序的功能是:計算1到10之間奇數之和及偶數之和,請?zhí)羁铡?/p>
#include<stdio.h>
voidmain()(提示:由輸出可知,a存放偶數和,c存放偶奇之和。因用i控制循環(huán),
當i取10時,并未超界,而其后的奇數(11)已超界,故需從c中減去11)
{inta,b,
c,i;a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;b=i+l
_______________;c+=b;}
35
printf(〃偶數之和
=%d\n〃,a);printf(〃奇數
之和=%d\n〃,c-11);}
7,下面程序的功能是:輸出100以內能被3整除且個位數為6的所有整數,請?zhí)羁铡?/p>
#
include<stdio
.h>voidmain
()
{
inti,j;
for(i=0;i<10;i++)
{j=i*10+6;
if(j%3!=0)
continue;printf(〃%d〃,
j);}}
&要使以下程序段輸出10個整數,請?zhí)?/p>
空。for(i=0;i<20;)
printfC%d\n,z,i+=2);9.以下程序運行
后的輸出結果是.17。
voidmain()
{intx=15;
while(x>10&&
x<50)
{x++;
if(x/3){x++;bre
ak;}else
continue;}
36
printf("%d\n",x);}
10.以下程序執(zhí)行后的輸出結果是—
16ovoid
main()
{inti=0,s=0;
do{if(i%2){i++;
continue;}i++;
s+=i;
}while(i<7);
printf("%d\n",s);}
11.執(zhí)行以下程序后,輸出#號的個數是一
—6o
#include<stdio.h>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度360借條合同多(信用保險合作協議)3篇
- 2024物流配送服務合同服務范圍
- 2024年食堂就餐卡使用規(guī)定
- 2024年網絡安全防護系統(tǒng)采購合同
- 2025年度金融產品代理銷售合同2篇
- 2024年退房時房屋損害賠償合同
- 2024版HR干貨目標責任書
- 2024年生產線融資租賃
- 2024野生動物保護項目融資與投資合作協議3篇
- 2024年財務數據錄入與保管協議3篇
- 高等數學說課稿PPT課件(PPT 49頁)
- 單片機交通燈系統(tǒng)設計報告
- 標桿房企人力資源體系研究之龍湖
- 規(guī)則大副貨運知識點
- 《2022年上海市初中語文課程終結性評價指南》中規(guī)定的150個文言實詞
- 關于轉發(fā)《關于進一步加強少先隊輔導員隊伍建設的若干意見》的通知
- 愛麗絲夢游仙境話劇中英文劇本(共6頁)
- 書法少年宮活動記錄
- 鐵路橋梁鋼結構設計規(guī)范(TB100022--99)修訂簡介
- 水文氣象報告
- 應急資金投入保障機制
評論
0/150
提交評論