大一c語言習題練習及答案_第1頁
大一c語言習題練習及答案_第2頁
大一c語言習題練習及答案_第3頁
大一c語言習題練習及答案_第4頁
大一c語言習題練習及答案_第5頁
已閱讀5頁,還剩107頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章程序設計與C語言

1.1選擇題

考點:標識符的命名規那么

(1)只能由字母、數字、下劃線構成

(2)數字不能作為標識符的開頭

(3)美鍵字不能作為標識符

選項A中的,選項B中〃["與不滿足(1);選項D中的int為關鍵字,不滿足(3)

1.以下正確的標識符是(C兀

A.-alB.a[i]C.a2_iD.intt

2.以下C語言用戶標識符中合法的是(B)o

A)3axB)xC)caseD)-e2E)union

選項A中的標識符以數字開頭不滿足(2);選項C,E均為為關鍵字,不滿足(3);選項D中的

不滿足(1);

3.以下四組選項中,正確的C語言標識符是(C)o

A)%xB)a+bC)al23D)123

選項中的"%",選項中“+〃不滿足選項中的標識符以數字開頭不滿足

AB(1);D(2)

4.以下四組字符串中都可以用作C語言程序中的標識符的是(A)。

A、print_3ddb8aBel\amone_halfstart$it3pai

C、str_lCpppowwhileD^PxqMy->bookline#His.age

選項B中的Q",",選項D中">不滿足(1);選項C中的while為關鍵

字,不滿足(3)

知識點:簡單C語言程序的構成和格式

5.在一個C程序中—B—o

A、main函數必須出現在所有函數之前B、main函數可以在任何地方出現

C、main函數必須出現在所有函數之后D、main函數必須出現在固定位置

6.以下說法中正確的選項是_Do

A^#define和printf都是C語句B>#define是C語句,而printf不是

C,printf是C語句,但#define不是D、#define和printf都不是C語句

7.一個C程序的執行是從(A)o

A本程序的main函數開始,到main函數結束

B本程序文件的第一個函數開始,到本程序文件的最后一個函數結束

C本程序的main函數開始,到本程序文件的最后一個函數結束

D本程序義件的第一個困數開始,到本程序main函數結束

8.在C語言中,每個語句必須以(D)結束。

A回車符B.冒號C.逗號D.分號

9.C語言規定:在一個源程序中,main函數的位置(C

A必須在最開始B.必須在系統調用的庫函數的后面

C,可以任意D.必須在最后

10.一個C語言程序是由(B

A一個主程序和假設干子程序組成B.函數組成

C.假設干過程組成D.假設干子程序組成

11.以下說法中錯誤的詵項是(D)。

A主函數可以分為兩個局部:主函數說明局部和主函數體

B.主函數可以調用任何非主函數的其他函數

C.任何非主函數可以調用其他任何非主函數

D程序可以從任何非主函數開始執行

12.用C語言編寫的源文件經過編譯,假設沒有產生編譯錯誤,那么系統將(C)。

A生成可執行目標文件B.生成目標文件

C.輸出運行結果D.自動保存源文件

1.2填空題

1、c語言只有生個關鍵字和種控制語句。

2、每個源程序有且只有一個」面L函數,系統總是從該函數開始執行C語言程序。

3、C語言程序的注釋可以出現在程序中的任何地方,它總是以\*符號作為開始標記,以工符號作為

結束標記。

4、C語言中,輸入操作是由庫函數scanf完成的,輸出操作是由庫函數printf完成的。

5、系統默認的C語言源程序文件的擴展名是上,經過編譯后生成的目標文件的擴展名是一血,經過

連接后生成的可執行文件的擴展名是上空。

6、C語言的標識符只能由短、數字和下劃線三種字符組成。

第二章CH2數據的存儲與運算

2.1選擇題

1.C語言中的簡單數據類型包括(D

A、整型、實型、邏輯型B、整型、實型、邏輯型、字符型

C、整型、字符型、邏輯型D、整型、實型、字符型

2.在C語言程序中,表達式5%2的結果是C。

A:l2.5B)2C)1D)3

%為求余運算符,該運算符只能對整型數據進行運算。且符號與被模數相同。5%2=1;5%(-2)=1;

(-5)%2=-1;(-5)%(-2)=-1;

/為求商運算符,該運算符能夠對整型、字符、浮點等類型的數據進行運算,5/2=2

3.設inta=12,那么執行完語句a+=a-=a*a后,a的值是_D。

A、552B、264C、144D、-264

4以下變量x、v、z均為double類型且已正確賦值,不能正確表示數字式子x/(y*z)的C語言表達式是

—A—o

A、x/y*zB、x*(l/(y*z))C>x/y*l/zD、x/y/z

5.假設有定義:inta=8,b=5,c;,執行語句c=a/b+0.4;后,c的值是_B。

A、1.4B、1C、2.0D、2

6.以下選項中,不能作為合法常量的是_B—。

A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e0

7.以下符合C語言語法的實型常量是—C_c

A、1.2E0.5B、3.14159EC、.5E-3D、E15

8.表達式3.6-5/2+1.2+5%2的值是_D。

A、4.3B、4.8C、3.3D、3.8

9.以下定義變量的語句中錯誤的冼項是_Do

A、intJntB、doubleint_C、charForD、floatUS$

10.以下不合法的用戶標識符是_Co

A、j2_KEYB、DoubleC、4dD、_8_

11.以下4組用戶定義標識符中,全部合法的一組是_A—。

A、_mainencludesinB、If-maxturbo

C、txtREAL3COMD、intk_2_001???

12.以下定義語句中正確的選項是_Co

A、chara='A'b='B';B、floata=b=10.0;(正解a=10.0b=10.0)

、、

Cinta=10,*b=&a;Dfloat*azb=&a;???

13.以下不能定義為用戶標識符的是_D—。

A、scanfB、VoidC、_3com_D、int

14.以下有4組用戶標識符,其中合法的一組是—C—。

A、For-subCaseB>4dDOSizeC、f2_G3IFabcD、WORDVoiddefine

15.C語言中最簡單的數據類型包括_Bo

A、整型、實型、邏輯型B、整型、實型、字符型

C、整型、字符型、邏輯型D、整型、實型、邏輯型、字符型

16.以下選項中,合法的C語言關鍵字是_Do

A、VARcherC、integerD、default

17.以下不能定義為用戶標識符的是_D—°

A、MainB、_0C、_intD、sizeof

18以下表達中正確的選項是_D。

A、C語言中既有邏輯類型也有集合類型B、C語言中沒芍邏輯類型但有集合類型

C、C語言中有邏輯類型但沒有集合類型D、C語言中既沒有邏輯類型也沒有集合類型

19.設inta=12,那么執行完語句a+=a-=a*a后,a的值是_D。

A、552B、264C、144D、-264

20.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數字式子x/(y*z)的C語言表達式是

—A—。

A、x/y*zB、x*(l/(y*z))C、x/y*l/zD、x/y/z

21.假設有定義:inta=8,b=5,c;,執行語句c=a/b+0.4;后,c的值是_B。

A、1.4B、1C、2.0D、2

22.設有定義:floata=2,b=4,h=3;,以下C語言表達式與代數式l/2((a+b)h)計算結果不相符的是—B-。

A.(a+b)*h/2B.(l/2)*(a+b)*hC>(a+b)*h*l/2D、h/2*(a+b)

23.假定x和y為double型,表達式x=2,y=x+3/2的值是_D___。

A、3.500000B、3C、2.000000D、3.000000

24.假設已定義x和y為double類型,那么表達式x=l,y=x+3/2的值是_C___。

A、1B、2C、2.0000C0D、2.500000

25.假設有以下程序段

intcl=lzc2=2,c3;

c3=1.0/c2*cl;

那么執行后,c3中的值是—A_o

A、0B、0.5C>1D、2

26.設有intx=ll;那么表達式(x++*l/3]的值是—A—。??

A、3B、4C、11D、12

27.以下程序的輸出結果是—C_。

main()

(

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

printf("%d\n”,d*y);

)

A、3B、3.2C、0D、3.07

28.請讀程序片段:

inti=65536;

printf("%d\n"J);

上面程序片段的輸出結果是_B__。

A、65536B、0C、有語法錯誤,無輸出結果D.-1

29.假設有以下定義和語句:

intu=010,v=0xl0,w=10;

printf("%d/%d/%d\n"/u/v/w);

那么輸出結果是:_A。

A、8,16,10B、10,10,10C、8,8,10D、8,10,10

30.在C語言中,不正確的int類型的常數是一A-o

A、32768B、0C>037D、OxAF

31.以下程序的輸出結果是_Do

main()

(

intk=17;

printf("%d,%o,%x\n”,k,k,k);

)

A、17,021,0x11B、17,17,17C>17,0x11,021D、17,21,11

32.下面程序的輸出是_Co

main()

(

unsigneda=32768;

printf("a=%d\n",a);

)

A、a=32768B、a=32767C>a=-32768D、a=-l

33.在C語言中,合法的長整型常數是—A—o

A、0LB、4962710C、324S62&D、216D

34.C語言中運算對象必須是整型的運算符是_Ao

A、%=B、/C、=D、<=

35.以下選項中不屬于C語言的類型名稱是

A、signedshortintB、unsignedlongintC、unsignedintD、longshort

36.有以下程序

main()

intm=0256,n=256;

printf("%o%o\n",m,n);

)

程序運行后的輸出結果是_C_o

A、02560400B、0256256C、256400D、400400

37.假設執卜面程序時從鍵盤上輸入5,

main()

(

intx;

scanf("%d",&x);

if|x++>5)printf("%d\n",x);

elseprintf("%d\n"zx-);

)

那么輸出是_Bo

A、7B、6C、5D、4

38.有以卜程序

main()

(

chara2='m';

printf("%c\n",(al,a2));

)

以下表達中正確的選項是—B—。

A、程序輸出大寫字母MB、程序輸出小寫字母m

C、格式說明符缺乏,編譯出錯D、程序運行時產生出錯信息

39.以下程序的輸出結果是_B-。

main()

(

inta;

',,,

printf(%d\n,(a=3*5,a*4,a+5));

)

A、65B、20C、15D、10

40.設有如下程序段

intx=2002,y=2003;

printf("%d\n"/(x,y));

那么以下表達中正確的選項是_D_o

A、輸出語句中格式說明符的個數少于輸出項的個數,不能正確輸出

B、運行時產生錯誤信息

C.輸出值為2002

D、輸出值為2003

41有以下程序

main()

intx,y,z;

x=y=l;

z=x++/y++/++y;

printf("%d,%d,%d\n,x,y,z);

)

程序運行后的輸出結果是—C_。

A、2,3,3B、2,3,2C、2,3,1D、2,2,1

42.設有以下定義

inta=0;

doubleb=1.25;

charc='A';

#defined2

那么下面語句中錯誤的選項是_D-。

A、a++;B、b++;C、C++;D、d++;

43.以下程序的輸出結果是一D—o

main()

(

intx=10,y=10;

printf("%d%d\n",x--/-y);

)

A、1010B、99C、910D、109

44.假設x和y都是int型變量,x=100、y=200,且有下面的程序片段

printf("%d",(x,y));

上面程序片段的輸出結果是_A_。

A、200B、100C、100200D、輸那么格式符不夠,輸出不確定的值

45.設有如下定義:

intx=10,y=3,z;

那么語句

printf("%d\n"zz=(x%yzx/y));

的輸出結果是_D_。

A、1B>0C、4D、3

46.兩次運行下面的程序,如果從鍵盤上分別輸入6和4,那么輸出結果是—A—o

main()

(

intx;

scant("%d",&x);

if|x++>5)

printf("%d",x);

else

printf("%d\n",x-);

)

A、7和5B、6和3C、7和D、6和4

47.假設t為double類型,表達式t=l,t+5,t++的值是_D___。

A、1B、6.0C、2.0D、1.0

48.以下程序的輸出結果是_A。

#include<stdio.h>

main()

inti=10J=10;

printf("%d,%d\n",++ij-);

)

A、11,10B、9,10C、010,9D、10,9

49.有以下程序

main()

(

inty=10;

while(y-);

printf("y=%d\n",y);

)

程序執行后的輸出結果是_B__。

A、y=0B、y=-lC、y=lD、while構成無限循環

50.以下程序的輸出結果是(B).

main()

{inta=7zb=5;

printf("%d\n",b=b/a);

)

A、5B、IC、0D、不確定值

51.以下選項中,不正確的C語言浮點型常量是(C兀

A.160B.0.12C.2e4.2D.0.0

52.以下選項中,(D)是不正確的C語言字符型常量。

A'a'B.'\x41'C.'\101'D."a"

53.在C語言中,字符型數據在計算機內存中,以字符的(C)形式存儲。

A原碼B.反碼C.ASCII碼D.BCD碼

54.假設X、i、j和k都是int型變量,那么計算下面表達式后,x的值是(C

x=(i=4,j=16>k=32)

A4B.16C.32D.52

55.算術運算符、賦值運算符和關系運算符的運算優先級按從高到低依次為(B)。

A算術運算、賦值運算、關系運算B.算術運算、關系運算、賦值運算

C.關系運算、賦值運算、算術運算D.關系運算、算術運算、賦值運算

56.假設有代數式,那么不正確的C語言表達式是(C)o

Aa/b/c*e*3B.3*a*e/b/c

C.3*a*e/b*cD.a*e/c/b*3

57.表達式!x||a==b等效于(D)。

A!((x||a)==b)B.!(x||y)==b

C-Kx||(a==b))D.(!x)||(a==b)

58.設整型變量m,n,a,b,c,d均為1,執行(m=a>b)&&(n=c>d)后,m,n的值是(A)。

AO,OB.0,IC.1,0D.1,1

59.設有語句into=3;,那么執行了語句a+=a-=o*=。;后,變量□的值是(B)。

A3B.0C.9D.-12

60.在以下一組運算符中,優先級最低的運算符是(D)。

A*B.!=C.+D,=

61.設整型變量i值為2,表達式(++i)+(++i)+(++i)的結果是(B)。

A6B.12C.15D.表達式出錯

62.假設已定義x和y為double類型,那么表達式x=l,y=x+3/2的值是(C)。

A1B.2C.2.0D.2.5

63.sizeof(double)的結果值是(A)。

A8B.4C.2D.出錯

64.設a=l,b=2,c=3,d=4,那么表達式:a<b?a:c<d?a:d的結果為(D)。

A4B.3C.2D.1

65.設a為整型變量,不能正確表達數學關系:10。<15的C潛言表達式是(A)。

A10<a<15B.a==11||a==1211a==1311a==14

C.a>10&&a<15D.!(a<=10)&&!|a>=15)

66.設f是實型變量,以下表達式中不是逗號表達式的是(D)。

Af=3.2,1.0B.f>0,f<10

C.f=2.0zf>0D.f=(3.2z1.0)

67.表達式18/4*sqrt(4.0)/8值的數據類型是(C)。

AintB.floatC.doubleD.不確定

68.字母A的ASCII碼為十進制數65,且c2為字符型,那么執行語句

C2=,A'+'6'-'3';后c2中的值是(A)。

ADB.68C.不確定的值D.C

69.以下用戶標識符中,合法的是(B

AintB.nitC.123D.a+b

70.C語言中,要求運算對象只能為整數的運算符是(A

A%B./C.>D.*

.假設有說明語句:那么變量在內存占用的字節數是(兀

71charc-'\72';cA

A1B.2C.3D.4

72.字符串“ABC”在內存占用的字節數是(B)。

A3B.4C.6D.8

73.要為字符型變量a賦初值,以下語句中哪一個是正確的(B)。

Achara="3";B.chara=,3';

C.chara=%;D.chara=*;

74.以下不正確的轉義字符是(C)<.

A\\B.\'C.074D.\0

2.2填空題

1、c語言中的邏輯值“真"是用」_表示的,邏輯值“假”是用旦表示的。

2,假設x和n都是int型變量,且x的初值為12,n的初值為5,那么計算表達式x%=(n%=2)后x的值

為0.

、設那么表達式的值分別為_、、

3c='w',a=l,b=2/d=-5,,x,+l>c,'y'!=c+2,-a-5*b<=d+l,b==a=2jQ_1?>

L。

4.設floatx=2.5,y=4.7;inta=7;,表達式x+a%3*(int)(x+y)%2/4的值為2.5°

5,判斷變量a、b的值均不為0的邏輯表達式為a!=0&&b!=0。

6.求解賦值表達式a=(b=10)%(c=6),表達式值、a、b、c的侑依次為4,4,過仇

7、求解逗號表達式x=a=3,6*a后,表達式值、x、a的值依次為四33。

8、數學式a/(b*c)的C語言表達式迎。

9、假設有語句

inti=?19,j=i%4;

printf("%d\n"j);

那么輸出結果是O

答案:-3

10、設y是int型變量,請寫出判斷v為奇數的關系表達式v%2。

第三章CH3順序程序設計

3.1選擇題

1.如果inta=3,b=4;那么條件袤達式"a<b?a:b"的值是A。

A)3B)4C)OD)1

表達式1?表達式2:表達式3

先計算表達式1,

假設表達式1成立,那么選擇計算表達式2,并表達式2的值作為整個大表達式的值;

假設表達式1不成立,那么選擇計算表達式3,并將表達式3的值作為整個大表達式的值

此題中的avb相當于表達式1,a相當于表達式2,b相當于表達式3.

a為3,b為4。avb表達式1成立,因此計算表達式2,并將表達式2的值即a中的值,并作為整個表

達式的值,因此整個表達式的值為3

2.假設intx=2,y=3,z=4那么表達式x<z?y:z的結果是(B).

A)4B)3C)2D)OE)1

3.C語言中,關系表達式和邏輯表達式的值是(B)o

AiOB)0或1C)1口)十或午,

4.下面(D)表達式的值為4.

A)11/3B)11.0/3

C)(float)ll/3D)(int)(11.0/3+0.5)

(1)相同數據類型的元素進行數學運算(+、-、*、/)得到結果還保持原數據類型。

(2)不同數據類型的元素進行數學運算,先要統一數據類型,統一的標準是低精度類型轉換為高精度

的數據類型。

選項A,11與3為兩個整數,11:3結果的數據類型也應為整數,因此將3.666666的小數局部全部舍掉,

僅保存整數,因此11/3=3.

選項B,11.0為實數,3為整數,因此首先要統一數據類型,將整型數據3轉換為3.0,轉換后數據類型

統一為實型數據,選項B變為11.0/3.0,結果的數據類型也應為實型數據,因此選項B11.0/3=3.666666

選項C,先將整數II強制類型轉換,轉換為實型11.0,因此選項C變為11.0/3,其后計算過程、結果與

選項B同

選項D,首先計算11.0/3,其計算過程、結果與選項B同,得到3.666666;再計算3.666666+0.5=4.166666,

最后將4.166666強制類型轉換為整型,即將其小數局部全部舍掉,結果為4

5.設整型變量a=2,那么執行以下語句后,浮點型變量b的俏不為0.5的是(B)

A.b=1.0/aB.b=(float)(l/a)

C.b=l/(float)aD.b=l/(a*1.0)

6.假設“intn;floatf=13.&〃,那么執行“n=(int)f%3"后,n的值是(A)

A.lB.4C

“(int)f"表示將f中的值強制類型轉換為整型,即將13.8的小數局部舍掉,轉換為13;然后計算13%3,

結果為1,再將結果賦給變量n,因此n的值為1

7.有如下程序

main()

(

inta;charc=10;

floatf=100.0;doublex;

a=f/=c*=(x=6.5);

printf("%d%d%3.1f%3.1f\n",a,c,f,x);

)

程序運行后輸出結果是_B_c

A、16516.5B、1651.56.5C、1651.06.5D、2651.56.5

8.假設變量a、i已正確定義,且i已正確賦值,合法的語句是—B—。

A^a==lB、++i;C、a=a++=5;D、a=int(i);

9.假設變量已正確定義并賦值,下面符合C語言語法的表達式是_Bo

A、a:=b+lB、a=b=c+2C>int18.5%3D、a=a+7=c+b

10.設變量x為float型且已賦值,那么以下語句中能將x中的數值保存到小數點后兩位,并將第三位四

舍五入的是_CO

A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0

C、x=(int)(x*100+0.5)/100.0???D、x=(x/100+0.5)*100.0

IL假設k是int型變量,且有下面的程序片段

k=-3

if|k<=0)printf("####")

elseprintf("&&&&");

上面程序片段的輸出結果是_D_。

A、####B、&&&&C、####&&&&D、有語法錯誤,無輸出結果

12.以下4個選項中,不能看作一條語句的是—D—o

、{;}、、、

ABa=0,b=0/c=0;Cif(a>0);Dif(b==O)m=l;n=2;???

13.有以下程序

main()

(

inta=0,b=0;

a=10;/*給a賦值*/

b=20;/*給b賦值*/

printf("a+b=%d\n",a+b);

)

程序運行后的輸出結果是_B_。

A、a+b=10B、a+b=30C、3。D、出錯

14.當c的值不為0時,在以下詵項中能正確將c的值賦給變曷a、b的是C

A、c=b=a;B、(a=c)II(b=c);C、(a=c)&&(b=c);D、a=c=b;

15.以下選項中非法的表達式是_D_。

A、0<=x<100B、i=j==OC、(char)(65+3)D、x+l=x+l

16.以下程序的輸出結果是_B_。

#include<stdio.h>

7main()

{

inta,b,d=241;

a=d/100%9;

b=(-l)&&(-l);

printf(”%d,%d\rT,a,b);???

)

A、6,1B、2,1C、6,0D、2,0

17.以卜.循環體的執行次數是—二

main()

(

inti,j;

fcr(i=0J=l;i<=j+l;i+=2,j-)

printf("%d\n"zi);

)

As3B、2C、1D、0

答案:C

18.有以下定義語句

doublea,b;intw;longc;

假設各變量已正確賦值,那么以下選項中正確的表達式是一C—。

A、a=a+b=b++B、w%((int)a+b)C、(c+w)%(int)aD、w=a=b;

19.以下能正確計算定義且賦初值的語句是一B—。

A、intnl=n2=10;B、charc=32;

C、fioatf=f+l.l;D、

20.以下合法的賦值語句是_B_o

A、x=y=100B、d-;C、x+y;D、c=int(a+b);

21.以卜.語句中符合C語言語法的賦值語句是—D-。

A、a=7+b+c=a+7;B、a=7+b++=a+7;

C、a=7+b,b++,a+7D、a=7+b,c=a+7;

22.請選出合法的C語言賦值語句-B—。

A、a=b=58B、i++;C、a=58,b=58D、k=int(a+b);

23.下面程序的輸出是一C-o

rriainf)

{intx=10,y=3;

printf("%d\n"/y=x/y);

)

A、。B、1C、3D、不確定的值

24.字母A的ASCII碼為十講制的65,下面程序的輸出是—A—。

main()

(

charchl,ch2;

chl='A'+'5'-,3,;

ch2='A'+,6'-,3,;

printf("%d/%c\n"zchl/ch2);

)

A、67,DB、B,CC、C,DD、不確定的值

25.以下程序的運行結果是一B-o

#include<stdio.h>

main()

{inta=2,c=5;

printf("a=%d,b=%d\n",a,c);

)

Aa=%2zb=%5B、a=2,b=5C、a=d,b=dD、a=%d,b=5d

26.以下程序的輸出結果是一D—o

#includp<<;tdio.h>

main()

{inta=2,c=5;

printf("a=%%dzb=%%d\n"/a/c);

)

、、

Aa=%2,b=%5Ba=2zb=5C、a=%%d,b=%%dD、a=%d,b=%d

27.有以下程序

main()

{intx=102,y=012;

printf("%2d,%2d\n"/x/y);

)

執行后輸出結果是___C___o

A、10,01B、02,12C、102,10D、02,10

28.有以下程序

main()

{int3=666,6=888;

printf("%d\n",a,b);

)

程序運行后的輸出結果是_

B_o

A、錯誤信息B、666C、888D、666,888

29.有以下程序

^include<stdio.h>

main()

{charcl='l',c2=,2';

cl=getchar();

c2=getchar();

putchar(cl);

putchar(c2);

)

當運行時輸入:a<回車〉后,以下表達正確的選項是—A―,

A、變量C1被賦予字符a,c2被賦予回車符

B、程序將等待用戶輸入第2個字符

C、變量cl被賦予字符a,C2中仍是原有字符2

D、變量cl被賦予字符a,c2中將無確定值

30.執行以下程序時輸入:123〈空格>456〈空格>789〈回車〉,輸出結果是—D

main()

{chars[100];

intc,i;

scanf(“%c”,&c);

scanf("%d",&i);

scanf(”%s”,s);

printf("%c,%d,%s\n"zc,i,s);

)

A、123,456,789B、1,456,789C、1,23,456,789D、1,23,456

31.有定義語句:intb;charc[10];,那么正確的輸入語句是_3。

、、

Ascanf("%d%s",&b/&c);Bscanf("%d%s",&b,c);

C,scanf("%d%s",b,c);Dscanf("%d%s"zb,&c);

32.假設要求從鍵盤讀入含有空格字符的字符串,應使用函數

A、getc()B、gets()C、getchar()D、scanf()

33.有以下程序

#include<stdio.h>

main()

{charcl,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&cl,&c2,&c3,&c4);

c5=getchar();

c6=getchar();

putchar(cl);

putchar(c2);

printf("%c%c\n",c5,c6);

)

程序運行后,假設從鍵盤輸入(從第1列開始)_D_。

123〈回車〉

45678V回車〉

那么輸出結果是

A、1267B、1256C、1278D、1245

34.有以下程序

main()

(

intm,n,p;

scanf("m=%dn=%dp=%d",&m,&n/&p);

printf("%d%d%d\n",m,nzp);

)

假設想從鍵席上輸入數據,使變曷m中的侑為123,n中的數值為456,p中的值為789,那么正確

的輸入是一A—o

A、m=123n=456p=789B、m=123n456p=789

C、m=123,n=456,p=789D、123456789

35.有以下程序段

intm=O,n=O;

charc='a';

scanf("%d%c%d"/&m,&c/&n);

printf("%d,%c,%d\rT,m,c,n);

假設從鍵盤上輸入:10A10<回車〉,那么輸出結果是_A_,,

A、10,A,10B、10,a,10C、10,a,0D、10,A,0

36.有定義語句:intx,y;,假設要通過562叫“%&%。&理丫);語句使變量*得到數據11,變量y得到數值

12,下面四組輸入形式中,錯誤的選項是_A_。

A、1112〈回車>B、11,12〈回車〉C、11,12〈回車〉D、11,〈回車>12〈回車〉

37.假設有以下定義和語句

',

charcl='b'zc2=e;

'

printf("%d,%c\n"zc2-clJc2-'a'+A');

那么輸出結果是:_Bo

A、2,MB、3,EC、2,ED、輸出項與對應的格式控制不一致,輸出結果不確定

38.已定義c為字符型變量,那么以下語句中正確的選項是_C—。

A、c='97';B、c="97";C、c=97;D、c="a";

39.數字字符0的ASCII值為48,假設有以下程序一C—。

main()

(

chara='l',b=2;

printf("%c,",b++);

printf("%d\n"zb-a);

)

程序運行后的輸出結果是

A、3,2B、50,2C、2,2D、2,50

40.以下程序的輸出結果是_A_。

main()

{charc='z';

printf("%c”,c-25);

)

A、aB、ZC、z-25D、y

41.假設變量a是int類型,并執行了語句:a='A'+1.6;,那么正確的表達是。

A、a的值是字符CB、a的值是浮點型

C,不允許字符型和浮點型相加D、a的值是字符W的ASCII值加上1

42.以下程序執行后的輸出結果是—A—。

main()

intx='f';

printf(',%c\n";A,+(x-'a,+l));

)

A>GB、HC、ID、J

43.以下程序的輸出結果是_B_o

main()

{inti;

fcr(i='A';i<'r;i++,i++)printf("%c",i+32);

printf("\n");

)

A、編譯小通過,尢輸出B、acegC、acegiD、abcdefghi

44.有如下程序

#include<stdio.h>

main()

(

printfC^dXn';NULL);

)

程序運行后的輸出結果是_A—。

A.0B、1C、—1D、NULL沒定義,出錯

45.設有說明語句:chara='\72';那么變量a_A___。

A、包含1個字符B、包含2個字符C、包含3個字符D、說明不合法

46.當把以下四個表達式用作if語句的控制表達式時,有一個選項含義不同,這個選項是

A、K%2B、K%2==1C、(K%2)!=0D、!K%2==1

47.以下表達中錯誤的選項是_C_。

A、C語句必須以分號結束B、復合語句在語法上被看作一條語句

C、空語句出現在任何位置都不會影響程序運行

D、賦值表達式末尾加分號就構成賦值語句

48.假設變量X、y已正確定義并賦值,以下符合C語言語法的表達式是_A_。

、、、

A、++xzy=x-Bx+l=yCx=x+10=x+yDdouble(>:)/10

.以下表達中正確的選項是—

49A―o

A、C程序中注釋局部可以出現在程序中任意適宜的地方

B、花括號”/和“}”只能作為函數體的定界符

C,構成C程序的根本單位是函數,所有函數名都可以由用戶命名

D、分號是C語言之間的分隔符,不是語句的一局部

50.假設變量a,b均為整型,表達式(a=5,b=2,a>b?a++:b++,a+b)的值是[)。

A7B8C9D2

51.設a為int型變量,執行以下賦值語句后,a的取值分別是1)。

a=125.534;a=(int)125.521%4;a=5?2;

A125,31,1B125,1,20C125,31,20D125.534,2,20

52.以下程序的輸出結果為()o

#defineADD(x)x*x

main()

{inta=4,b=6,c=7,d=ADD(a+b)*c;

printf("d=%d",d);

Ad=70Bd=80Cd=140Dd=700

3.2讀程序

讀程序寫出結果,或者在程序的空白處填入正確代碼。

1.有如下程序

#include"stdio.h"

main()

{charc;

c=getchar();

while(c!="?'){putchar(c);c=getchar();}

)

如果從鍵盤輸入abcde?fgh(回車)

運行結果為:abcde

2.有如下程序

#include<stdio.h>

main()

{charc;

while((c=getchar())!=z$z)

{if('A,<=c&&c<='Z/)putchar(c);

elseif('a'v=c&&c<='z')putchar(c-32);}

}

當輸入為ab*AB%cd#CD$時,運行結果為:ABABCDCD

3.以下程序的輸出結果是。

main()

{inta=0;

a+=(a=8);

printf("%d\n”,a);

}

答案:16

4.假設有定義:inta=10,b=9,c=8;接著順序執行以下語句后,變量b中的值是

c=(a-=(b-5));

c=(a%ll)+(b=3);

答案;3

5.以下程序段的輸出結果是o

inti=9;

printf("%o\n"J);

答案:11

6.有以下程序

#include<stdio.h>

main()

{charchlzch2;intnl,n2;

chl=getchar();ch2=getchar();

nl=chl-'O';n2=nl*10+(c卜2」0)

printf("%d\n",n2);

}

程序運行時輸入:12V回車〉,執行后輸出結果是

答案:12

7.以下程序運行后的輸出結果是o

main()

{charm;

m='B'+32;

printf("%c\n"/m);

}

答案:b

8.字母A的ASCII碼為65.以下程序運行后的輸出結果是

main()

{charazb;

a='A'+'5'?'3';b=a+'6'-'2';

w

printf(''%d%c\nza,b);

)

答案:67G

9.假設有以下程序

main()

{chara;

a=‘H'」A'+O;

p「intf("%c\n”,a);

}

執行后輸出結果是。

答案:7

10.以下程序運行后的輸出結果是。

main()

{int3=012^=0x12^=12;

charc='\102,,d='\r,;

printf(''a=%d\tb=%d\tk=%d\n",a,b,k);

z,

printf(''c=%czd=%c%o\n,c,d,a);

a='Az;c=49;

printf(''a=%d\tc=%c\n*,azc);

}

11.以下程序運行后的輸出結果是。

main()

{Intl=29J=6zk=2,s;

s=i+i/j%k-9;

printf(''s=%d\n",s);

)

12.以下程序運行后的輸出結果是o

main()

{char*s2=''IloveChina!”,**sl=&s2;

char*s3,c,*s4=''w";

s3=&c;

*s3='H';

s2=s2+2;

printf(''%s\t%c\t%s\t%c\n,s2,*s3,s4z**sl);

}

3.3程序改錯

畫橫線的代碼有誤,請寫出正確的代碼

1.從鍵盤輸入整數x的值,并輸出y的值.

main()

<floatx,v;

scanf(''%dw,&x);

y=3.5+x;

Drintf(''y=%d");

}

正確的:intx;floaty;

printf(、'y=%f〃,y);

第四章CH4選擇結構程序設計

4.1讀程序

1.有如下代碼:

#include<stdio.h>

main()

{charch;

ch=getchar();

switch(ch)

{case'A':printf(''%c〃,'A‘);

case'B':printf(''%cw/B");break;

default:printf(''%s\n,z:other");}

當從鍵盤輸入字母A時,運行結果為:AB

詳見switch語句

switch(表達式)

{case常量1:語句1

case常量2:語句2

III

III

case常量n:語句n

default:語句n+1

)

其中表達式,常量1,…,常量n都為整型或字符型

case相當于給出執行程序的入口和起始位置,假設找到匹配的常量,那么從此處開始往下執行程序,不

再匹配常量,直至遇到break或switch結束

此題過程:

首先從鍵盤接收一個字符公'并將其放在變量ch中。

執行switch語句。Switch后面的條件表達式為ch,因此表達式的值即為字符冗用字符真依次與下面

的case中的常量匹配。

與第1個case后的常量匹配,那么從其后的語句開始往下執行程序[在執行過程中不再進行匹配。)

因此先執行printf("%c",'A'),屏幕上輸出A;再往下繼續執行printf("%c",E),屏幕上輸出B;再繼續執

行break,此時跳出switch語句。

2.有如下代碼:

升include<stdio.h>

main()

{inta=l,b=0:

scanf(u%dw,&a);

switch(a)

{case1:b=l;break;

case2:b=2;break:

default:b=10;}

printf("%d",b);

}

假設鍵盤輸入5,運行結果為3

此題過程:

首先用scanf函數為變量a賦值為5。

執行switch語句。switch后面的條件表達式為a,因此表達式的值即為5.用5依次與下面case中的

常量匹配。沒有找到匹配的常量,因此兩個case后的語句都不執行。執行default后面的語句b=10;將

10賦給變量b。

輸出變量b,結果為10

3.有如下代碼:

#include<stdio.h>

main()_

{chargrade=,C';

switch(grade)

{

case'A':printf(u90-100\nz,);

caseE:printf(''80-90\n");

case'C':printfC'70-80\n//);

case'D':printf(''60-70\n");break;

case'Ez:printf(''<60\nz,);

default:printf(''error!\rT);

}

}

運行結果為:

70-80

60-70

此題過程:

首先從鍵盤接收一個字符C并將其放在變量grade中。

執行switch語句。switch后面的條件表達式為grade,因此表達式的值即為字符C.用字符C依次與

下面的case中的常量匹配。

與第3個case后的常量匹配,那么從其后的語句開始往下執行程序(在執行過程中不再進行匹配。)

因此先執行printf(z70-80\n,z);,屏幕上輸出70-80,并換行;再往下繼續執行printf(zz60-70\nw),屏幕上

輸出60-70,并換行;再繼續執吁break,此時跳出switch語句。

4.在嵌套使用if語句時,C語言規定else總是—C—。

A、和之前與其具有相同縮進位置的if配對B、和之前與其最近的if配對

C、和之前與其最近的且不帶else的if配對D、和之前的第一個if配對

5,假定所有變量均已正確說明,以下程序段運行后x的值是一B—。

a=b=c=0;x=35;

if(!a)x-;

elseif(b);

if(c)x=3;

elsex=4;

A、34B、4C、35D、3

6.有如下程序

main()

{

inta=2zb=-lzc=2;

if(a<b)

if(b<0)c=0;

elseC++;

printf("%d\n",c);

)

該程序的輸出結果是一C

A、0B、1C、2D、3

7.有以下程序

main()

{intk=5,n=0;

while(k>0)

{switch(k)

{default:break;

case1:n+=k;

case2:

case3:n+=k;

}

k--;

}

H

printf("%d\nzn);

}

程序運行后的輸出結果是—D—0

A、0B、4C、6D、7

8.有以下程序

main()

{

inti;

for(i=0;i<3;i++)

switch(i)

{

case1:printf(”%d”,i);

case2:printf(”%d”,i);

default:printf("%d"zi);

}

}

執行后輸出結果是—A—o

A、011122B、012C、012023D、120

9.如下程序

main()

{intx=lza=0zb=0;

switch(x)

{case0:b++;

case1:a++;

case2:a++;b++;

?

printf("a=%dzb=%d\n"zazb);

}

該程序的輸出的結果是—A—。

A、a=2,b=lB、a=l,b=lC、a=l,b=OD、a=2,b=2

10.以下程序的輸出結果是一A-0

main()

{i

溫馨提示

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

評論

0/150

提交評論