C語言程序設計試題集_第1頁
C語言程序設計試題集_第2頁
C語言程序設計試題集_第3頁
C語言程序設計試題集_第4頁
C語言程序設計試題集_第5頁
已閱讀5頁,還剩375頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章基礎知識

一.填空

I.每個c程序都必須有且僅有一個

main()_函數。

2.C語言程序開發(fā)到執(zhí)行通常要經過6個階

段即編輯、預處理、—編譯、鏈

接、加載和執(zhí)行。

3.軟件是程序,以及—開發(fā)—、使用和維

護所需要的所有文檔。

4.國標中規(guī)定:“計算機程序是按照具體要

求產生的適合于計算機處理的—指令序

列:

5.程序設計語言按照書寫形式,以及思維方

式的不同一般分為低級語言和—高級語言

—兩大類。

6.C語言是由—函數組成的。

7.C語言的函數可分為主函數main、標準庫

函數和—自定義函數o

8.一個函數是由兩部分組成的,即:—函

數首部和函數體。

9.編譯是將C語言所編寫的源程序編譯

成機器代碼,也稱為建立目標代碼程

序的過程。

10.程序是由某種程序設計語言編制出來,

體現了編程者的控制思想和對計算機執(zhí)行

操作的要求。不同的任務功能,就會需求不

同的軟件程序,如:控制計算機本身軟硬件

協(xié)調工作,并使其設備充分發(fā)揮效力,方便

用戶使用的系統(tǒng)軟件程序,稱為操作系統(tǒng);

而為辦公自動化(OA)、管理信息系統(tǒng)(MIS)、

人工智能、電子商務、網絡互聯(lián)等等應用而

開發(fā)的軟件程序,統(tǒng)稱為應用軟件

11.機器語言是以—二進制代碼形

式表示的機器基本指令的集合,是計算機系

統(tǒng)唯一不需要翻

譯可以直接識別和執(zhí)行的程序設計語言。

12.與機器語言相比,使用匯編語言來編寫

程序可以用—助記符—來表示指令的操

作碼和操作對象,也可以用標號和符號來代

替地址、常量和變量。

13.在編譯程序之前,凡以也開頭的代碼

行都先由預處理程序預處理。

14.C程序的執(zhí)行均是由執(zhí)行_main函數

_______開始

15.函數體即為包含在{}內的部分。它分

為一聲明部分和為完成功能任務由若

干個C語句

組成的執(zhí)行部分。

16.C語言程序中一條簡單語句是以—;―

字符作為結束符的。

17.C語言是結構化、—模塊化的程序

設計語言。

18.由于計算機硬件不能直接識別高級語言

中的語句,因此,必須經過"—翻譯

程序”,

將用高級語言編寫的程序翻譯成計算機硬

件所能識別的機器語言程序方可執(zhí)行。

19.用高級語言編寫的程序需翻譯成計算機

硬件所能識別的機器語言程序方可執(zhí)行。所

以說,用高級語言進行程序設計,其編程效

率高,方便易用,但—執(zhí)行速度

—沒有低級語言高。

20.

第一個系統(tǒng)體現結構化程序設計思想

的教學工具語言是PASCAL語言

二.閱讀程序寫結果

解答:

三.補充程序

解答:

四.改錯題

解答:

五.編程一

解答:

六.編程二

解答:

第二章常量、變量和表達式

一.填空

1.以16位計算機為例,若定義longinta;則

變量a占—0—個字節(jié)的內存空間。

2.以16位計算機為例,若定義doublea;則

變量a占—4—個字節(jié)的內存空間。

3.以16位計算機為例,若定義longdouble;

則變量a占10個字節(jié)的內存空間。

4.在32_位機,int型占4個字節(jié)。

5.C語言的數據類型有:基本數據類型、構

造數據類型、枚舉類型、—指針類型

—、空類型

6.在C語言中,基本數據類型有:—int、

float、double、char。

7.整型常量046轉換為十進制數等于

_38____o

8.整型常量054轉換為十進制數等于_44

9.整型常量0x125轉換為十進制或等于

_293

10.整型常量0x7C轉換為十進制數等于

124o

11.整型常量39轉換為八進制等于

047o

12.實數473.468寫成規(guī)范化指數形式,則

應為4.734680e+002_o

13.實數0.0453寫成規(guī)范化指數形式,則應

為.4.530000e-002。

14.將0x123轉換為二進制等于

_100100011___o

15.字符'A'表示成十六進制等于

\X43A1H—o

16.在C語言中,稱代表常量的標識符為

—符號常量—O

17.C語言中是用編譯預處理命令#

define,來定義符號常量

18.在C語言中,以反斜杠符(\)開頭,后

跟字符的字符序列,稱之為—轉義字符常

量—,主要來表示控制及不可見

的字符或者一些圖形符號

19.語句printf(“\106”)執(zhí)行的結果輸出是

20.語句printf(“b”)執(zhí)行的結果輸出是

b_o

21.語句printf("\\b")執(zhí)行的結果輸出是

\bo

22.語句printf(“\102”)執(zhí)行的結果輸出是

23.若有charchi;chl='a'+4;則語句

printf(“%c”,x)的輸出結果為_e。

24.字符串常量"Hello,everyone!??占據的

內存空間為_16—個字節(jié)

25.字符串常量"Hello,Bob!”占據的內存空

間為—11-個字節(jié)

26.十進制整型常量由0~9個數據組成,但

不能以—0_開始,沒有小數部分

27.十六進制常量由0~9和—A~F—

28.unsignedlong類型常量通常以U_

為后綴

29.實型常量通常有小數形式和—指數形

式_兩種表達方

30.C語言中是用編譯預處理命令

“\0〃來包含其他源文件

31.為了表示字符串的結束,系統(tǒng)自動在字

符串的最后加一個,但不被輸

32.C語言中,其值可被改變的量稱為變量,

它具有三個基本要素:變量名、變量類型

和變量值

33.C語言規(guī)定,變量的標識符只能由字母、

數字和下劃線組成,且不能以―數字―

頭。

34.在16位機中,sizeof("hello'n")等于

_7____o

35.在16位機中,printf(“\"hello、”")等

于_"hello"o

36.字符變量在內存中占用—1—個

字節(jié)的存儲空間。

37.若有定義intx二27,y=6;則表達式x/y的

值為_4o

38.若有定義intx=47,y=8;則表達式x%y

的值為

7o

39.若有定義charchl="A',ch2,ch3;執(zhí)行

ch2=chl++;ch3=++chl;printf("chl=%c,

ch2=%

c",chl,ch2);則輸出為chl=C,ch2=A

40.若有定義charchl="A',ch2,ch3;執(zhí)行

ch2=chl++;ch3=++chl;printf("ch2=%c,

ch3=%

c",ch2,ch3);則輸出為ch2=A,ch3=C

41.若有定義inti=5,j,k;執(zhí)行j=i--;k=-i;

printf("i=%d,j=%d\n",i,j);則輸

出為i=3,j=5o

42.表達式(int)(13.7+25.6)A%5的值是

_4o

43.表達式3.6-5/2+L2+5%3的值是—.

4.800000o

44.表達式54%10/2+4.0*(的)的值是

_7.000000____o

45.若定義intx;doubleb=5.45;執(zhí)行x=b

后,則的值為

x5_o

46.若定義inty;charc='A1;執(zhí)行y=c后,則

y的值為―65—o

47.若定義inta=8;floatb=2.5;則a/(int)(b)

的值為_4o

48.若a=5,則執(zhí)行a*=7-3語句后,a的值

是_20o

49.若inta=l,b=0,c=4,d=2;貝U表達式(a>b?

的值為

a:b)&&(c-d)l_o

50.已知a二0,表達式a=1?b=1:b=0;

執(zhí)行后,b的值是_1—O

51.若定義intm=7,n=12;則表達式

n%=m-m%5的值是_2。

52.若定義inta=8;floatb=4.5;執(zhí)行

a*二a/=a-b后,a的值為4。

的值為

53.inta=2;!a++0_o

54.inta=0;!a++&++a的值為0。

55.inta=7;floatb=4.5;則

printf("%d”,a*二a/=a-b)的值為_4。

56.intk=7;floata=2.5,b=4.7;則表達式

a+k%3*(int)(a+b)%羽的值為

_2.500000___o

57.#defineMax(a,b)

(((a)-(b))&0x80000000)?(a):(b),int

a=2,b=6;printf("%d\n〃,M

ax(a,b))的值為_2。

58.在32位機中,inta=4,b=7;

printf(“%0x”,a-b)的值為:_fffffffd0

59.intx,y,z;

x=y=2;z=3;y=x++-l;printf("%d,%cT,x,y)的值

為:_3,1o

60.inti=2,j;printf("%d",j=i<l)的值為:

_0_

解答:

二.閱讀程序寫結果

解答:

三.補充程序

解答:

四.改錯題

解答:

五.編程一

解答:

六.編程二

解答:

第三章順序結構

一.填空

1.C語言的語句可分為5類,它們是:控制

語句、—表達式語句、函數語句、

符合語句和空

語句。

2.常用于字符輸入的函數為:getchar()0

3.常用于字符輸出的函數為:.

putchar()。

4.常用于字符串輸入的函數為:

gets()o

5.常用于字符串輸出的函數為:

puts()o

6.格式輸入函數的一般形式為:

scanf(“格式控制字符串”,地址表列);

7.格式輸出函數的一般形式為:

printf(“格式控制字符串”,輸出表列);

8.printf和scanf是標準的庫函數,它們的函

數原型在頭文件stdio.h

中。

9.有charch,則從鍵盤給ch賦值的格式輸

入語句為:scanf(“%c”,

&ch);o

10.如果要輸出字符串常量"HelloWord!”,

則格式輸出語句為:printf

(“HelloWord!”)。

11.設有定義:longx=-123456L;,請寫出能

夠正確輸出變量x值的語句

printf(zzx=%ld\n,,,x);

12.若有inta,b;,想通過

scanf("%d%cT,&a,&b);輸入語句給a賦于1,

給b賦于2,則從鍵盤

輸入數據的形式是12或者

1O

13.若有inti,j;

scanf("i=%d,j=%d,,;&i,&j);,要求給i賦10,

給j賦20,則應該從鍵盤

輸入_i=10,j=20o

14.已知i、j、k為int型變量,若從鍵盤輸

入:1,2,3〈回車〉,使i的值為1、j的值

為2、k

的值為3,請寫出正確的輸入語句

scanf("%d,%d,%d〃,&i,&j,&k);。

15.有intm,n,p;

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

printf("%d%d%d\n",m,n,p);若想

從鍵盤上輸入數據,使變量m中的值為123,n

中的值為456,p中的值為789,則正確的輸入

是m=123n二456P=789。

16.有inta;floatb,c;

scanf("%2d%3f%4f",&a,&b,&c);

printf("\na=%d,b=%f,c=

%f\n",a,b,c);

,若運行時從鍵盤上輸入9876543210〈回

車〉,則程序的輸出結果是a=98,

b=765.000000,

c=4321.000000______________

17.有intm=0256,n=256;則

printf("%o%o\n",m,n);的輸出結果是

256400____________

18.有intx=102,y=012;,則

printf("%2d,%2d\n",x,y);的輸出結果是—

102,10—

19.有定義和語句:inta;charc=10;float

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

,則

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

出結果是1651.56.o

20.若有定義和語句:intm=0xabc,n=0xabc;

m-=n;則printf("%o\n”,m);的輸出結果是

_0________O

21.若有intm=32,n=032;,則

printf("%d,%x\n",m,n);執(zhí)行后輸出結果是

32,la

22.若有inta=1234;,貝tlprintf("%2d\n",a);

的輸出結果是1234

23.若變量已正確說明為float類型,要通過

語句scanf(“%f%f%f”,&a,&b,&c);給a賦

于1

0.0,b賦予22.0,c賦予33.0,不正確的輸

入形式是Bo

A)10〈回車>22〈回車>33v回車〉B)

10.0,22.0,33.0〈回車〉

C)10.0<回車>22.033.0<回車>D)10

22〈回車〉33〈回車〉

24.若有intx=3,y=l;則

printf("%d%d\n",x++,y+2);的輸出結果是

33_

25.若有定義和語句:doubled;floatf;longI;

inti;i=f=l=d=20^;貝Uprintf("%

d%ld%f%f\n",i,l,f,d);的輸出結果是(小數點

后只寫一位)666.0

6.0o

26.以下說法中正確的是

Do

A)#define和printf者B是C語句

B)#define是C語句,而printf不是

C)printf是C語句,但#(^甘的不是

D)#define和printf都不是C語句

27.若有intk=17;,貝Llprintf("%d,%o,%x

\n“,k,k,k);的輸出結果是17,21,

11

28.以下敘述中正確的是

CO

A)輸入項可以是一個實型常量,

如:scanf(”%f”,3.5);

B)只有格式控制,沒有輸入項,也能正確輸

入數據到內存,例如:scakf(“a=%d,b=%cT);

C)當輸入數據時,必須指明變量地址,例

如:scanf(“%f”,&f);

29.若有定義和語句:intu=010,v=0xl0,w=10;

則printf("%d,%d,%d\n",u,v,w);輸出結果是

.8,16,10

__________________________________O

30.若有inta=l,b=4,c=2;floatx=10.5,y=4.0,

z;z=(a+b)/c+sqrt((double)y)*l.?/c+

x;,貝Llprintf("%f\n",z);的輸出結果是

_______________________________________________________o

31.若有inta=2,c=5;,則

printf(,二%%d,b二%%d\n“,a,c);的輸出結果是

32.有charc;intn=100;floatf=10;

doublex;x=f*=n/=(c=50);則printf("%d%f\

n",n,x);的輸出結果是

33.有inti=O,j=O,k=O;

scanf("%d%*d%d",&i,&j,&k);

printf("%d%d%d\n",ij,k);若

從鍵盤輸入:102030〈回車>。輸出結果是

_______________________________________________________________O

34.若有inta,b,c;a=25;b=025;c=0x25;,則

printf("%d%d%d\n",a,b,c);的輸出結果

是O

35.有以下語句段

intnl=10,n2=20;

printf(〃n,nl,n2);

要求按以下格式輸出nl和n2的值,每個

輸出行從第一列開始,請?zhí)羁铡?/p>

nl=10n2=20

36.若有語句inti=-19J=i%4;則

printf("%d\n",j);的輸出結果是

37.有inta=0;a+=(a=8);則printf("%d\n",a);

的輸出結果是O

38.有inta=l,b=2;a=a+b;b=a-b;a=a?b;貝II

printf("%d,%d\n”b);的輸出結果是

39.有unsignedshorta=65536;intb;,貝

printf("%d\n",b=a);的輸出結果是

40.語句printf(“\10289\n“);的數據結果為:

解答:

1.表達式語句

2.getchar()

3.putchar()

4.gets()

5.puts()

6.scanf(“格式控制字符串”,地址表列);

Zprintf(“格式控制字符串”,輸出表列);

8.stdio.h

9.scanf("%c”,&ch);

10.printf(zz%s?\HelloWord!);

或者:printf("HelloWord!”);

11.printf(zzx=%ld\n,,,x);

12.12或者1

2

13.i=10,j=20

14.scanf("%d,%d,%d〃,&i,&j,&k);

15.m=123n=456p=789

16.a=98,b=765.000000,c=4321.000000

17.256400

18.102,10

19.1651.56.5

20.0

21.32,la

22.1234

23.B

24.33

25.666.06.0

26.D

27.17,21,11

28.C

29.8,16,10

30.13.700000

31.a=%d,b=%d

32.220.000000

33.10300

34.252137

35.nl=%d\nn2=%d

36.-3

37.16

38.2,1

39.0

40.B89

二.閱讀程序寫結果

解答:

三.補充程序

解答:

四.改錯題

解答:

五.編程一

解答:

六.編程二

解答:

第四章選擇結構

一.填空

1.在if,while,case,do,else等關鍵字中,用

于選擇結構的有(

).

2.已知a=l;那么if(a=2)printf("%d",2);

elseprintf("%d",1);的輸出結

果是().

3.已知chara='A';那么if(a>65)

printf("%s","bigger");elseprintf("%s"

,"smaller");的輸出結果是

().

4.表示“xNyNz”的C語言表達式是

()o

5.在C語言中,用于實現選擇結構的語句有

()語句和()語

6.判斷兩個浮點型變量x和y是否相等一般

用:if(<le-6)…o

7.設有程序段:t=6;a=7;b=8;if(a=b)t=a;,這段

程序執(zhí)行后,t的結果是()

8.設a=l,b=2,c=3,d=4,則表達

式:a>b?a:c>d?a:d的結果為

()。

9.表達式98&&8&&31&&(98-牙)的值為

()o

10.若inta=3;貝Ll表達式(a>2)&&!(?>

69)的值為()o

解答:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

二.閱讀程序寫結果

1.#include<stdio.h>

voidmain()

(

intx,y,t;

x=7;y=9;if(x<y)

{t=x;x=y;y=t;}

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

)

2.

#include<stdio.h>

voidmain()

intx=l,a=2,b=3;

switch(x)

(

case1:a-;break;

case2:b++;break;

case3:a++;b++;

}

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

}

3.

#include<stdio.h>

voidmain()

(

charchi=E;

if(chl>='A')

chl++;

else

chl+=32;

printf("chl=%c\n",chi);

}

#include<stdio.h>

voidmain()

(

intx,y,t;

x=5;y=3;

if(x>y)

{t=x;x=y;y=t;}

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

}

5.#include<stdio.h>

intmain()

(

inta,b,c,m;

printf("Enterthreeintegers:");

scanf("%d%d%d",&a,&b,&c);

if(a<=b)

m=a;

else

m=b;

if(c<m)

m=c;

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

return0;}

輸入:212223〈回車〉

6.#include<stdio.h>

intmain()

charchl=,a,,ch2='B,,ch3=,E,;

if(chl>ch2)

if(ch2>ch3)

ch3++;

else

-ch3;

printf("ch3=%c\n",ch3);

return0;

}

7.#include<stdio.h>

intmain()

floatx,y;

scanf("%f",&x);

switch((int)x/10)

case0:y=i.o;

printf("y=%f\n",y);break;

case1:y=2*x+l;

printf("y=%f\n",y);break;

case2:y=3*x*x+2;

printf("y=%f\n",y);break;

default:

printf("Nodefinition.\n");

}

return0;}

輸入:15.3〈回車〉

8.#include<stdio.h>

intmain()

,,

charchl=A'/ch2='B;

switch(chl)

(

case'A':

switch(ch2)

(

case'B':

printf("Good!\n");break;

case'A':

printf("Better!\n");break;

}

case'B':printf("Best!\n");break;

}

return0;

}

9.

#include<stdio.h>

voidmain()

(

floatscore;

score=100;

if(score<60)printf("E\n");

else

switch((int)score/10)

{case10:

case9:printf("A\n");

case8:printf("B\n");

case7:printf("C\n");break;

case6:printf("D\n");break;

default:printf("Error\n");

}

}

10.#include<stdio.h>

voidmain()

(

inti=0,a=2;if(i==0)

printf(“**”);

else

printf("$$”);

printf(…);

}

11.

#include<stdio.h>

voidmain()

(

intm=10,n=0,p=4,q=20;if

(m)

if(n)

q=15-m;

else

q=25+m;

elseif(p)

q=q+p;

printf("q=%d\n〃,q);

)

12.#include<stdio.h>

voidmain()

(

inta=l,b=0;switch(a)

(

case1:switch(b)

(

case0:

printf("**O**");break;

case

l:printf("**l**");break;

}

case2:printf("**2**");break;

}

}

13.

#include<stdio.h>

intmain()

(

inta=2,b=7,c=5;

switch(a>0){

case1:switch(b<0){

case1:printf("@");break;

case2:printf("!");break;

)

case0:switch(c==5){

case1:printf("*");break;

default:printf("#");

break;

}

default:printf("&");

)

printf("\n");

return0;

}

14.#include<stdio.h>

intmain()

(

inta=0,b=l,c=0,d=20;if(a)

d=d-10;elseif(!b)

if(!c)d=15;elsed=25;

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

return0;}

15.#include<stdio.h>

intmain()

{inta=l;switch(a){

case0:printf("**0**");break;

casel:printf("**l**");break;

case2:printf("**2**");break;

}

return0;}

16.#include<stdio.h>

intmain()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

return0;}

輸入:12c回車〉

17.#include<stdio.h>

intmain()

(

floatx,y;

charop;

doubler;

scanf("%c%f%f",&op,&x,&y);

switch(op)

{caser=x+y;break;

caser=x-y;break;

caser=x*y;break;

caser=x/y;break;

}

printf("%.lf",r);

return0;}

輸入:3.5〈回車〉

18.#include"stdio.h"

voidmain()

(

inta=7;if(a>9||a<10)

a=a/3;else

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

}

19.#include<stdio.h>

voidmain()

(

inta=20;switch(a%3){

case0:printf("O");

case1:printf("l");

case2:printf("2");

default:printf("3");

}

printf("4");

}

20.#include<stdio.h>

voidmain()

(

inta=2,b=5,c=8,t;

if(a<b){t=a;a=b;b=t;}

if(b<c){t=b;b=c;c=t;}

if(a<b){t=a;a=b;b=t;}

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

}

解答:

1.運行結果:

9,7

2.a=l,b=3

3.chl=F

4.3,5

5.m=21

6.ch3=D

7.y=31.600000

8.Good!

Best!

9.A

B

C

10.***

11.q=35

12.**0****2**

13.*&

14.d=20

15**i**

16.0

17.0.6

18.a=2

19.234

20.8,1

三.補充程序

1.根據輸入字符的ASCII碼來判別字符的類

別。由ASCII碼表可知ASCII值小于32的為

控制字

符。在“0”和“9”之間的為數字,在“A”

和“Z”之間為大寫字母,在“a”和“z”

間為小寫字母,其余則為其它字符。

#include"stdio.h"

#include"string.h"

intmain()

charc;

printf("inputacharacter:");

if(c<32)printf("Thisisacontrol

character\n");

printf("Thisisadigit\n");

elseif

printf("Thisisacapitalletter\n");

elseif(c>='a'&&c<='z')

printf("Thisisasmallletter\n");

printf("Thisisanothercharacter\n");

return0;}

2.計算器程序。用戶輸入運算數和四則運算

符,輸出計算結果.

#include"stdio.h"

intmain()

(

floata,b;

printf("inputexpression:a+(-,*,/)b\n");

scanf("%f%c%f",&a,&c,&b);

switch(c)

(

caseprintf("%f\n",a+b);

case

printf("%f\n",a-b);break;

caseprintf("%f\n",a*b);break;

case

_______;break;

default:printf("inputerror\n");

}

return0;}

3.輸入三個整數,輸出最大數和最小數(注:

max總是記錄最大數,而min總是記錄最小

數).

#include"stdio.h"

intmain()

(

inta,b,c,max,min;

printf("inputthreenumbers:");

scanf("%d%d%d",&a,&b,&c);

if(a>b)

}

else

{max=b;min=a;}

max=c;

if(min>c)

printf("max=%d\nmin=%d",max,min);

return0;}

4.#include"stdio.h"

intmain()

inta;

printf("inputintegernumber:");

scanf("%d",&a);

casel:printf("Monday\n");break;

printf("Tuesday\n");break;

case3:printf("Wednesday\n");break;

case

4:printf("Thursday\n");

case5:printf("Friday\n");break;

case6:printf("Saturday\n");break;

case7:printf("Sunday\n");break;

printf("error\n");

}

return0;}

5.判斷a>b、a<b、a=b或aWb四種關系。

#include"stdio.h"

intmain()

inta,b;

printf("pleaseinputa,b:");

scanf("%d%d",&a,&b);

printf("A=B\n");

printf("A>B\n");

printf("A<B\n");

printf(“AWB\rT);

return0;}

6.根據以下函數關系,對輸入的每個x值,

計算出相應的y值。

0x<0

x0<=x<10

1010<=X<20

)=.

error20<=x<30

0.5xx+2030<=x<40

2其它

#include"stdio.h"

intmain()

(

intx,c,m;

floaty;

scanf("%cT,&x);

c=-l;else

c=_____________________________________

switch(c)

(

case-1:y=0;break;

case0:y=x;break;

case1:y=10;break;

case2:

case3:y=-0.5*x+20

default:y=-2;

}

if(c!=2)printf("y=%f〃,y);

printf("error!〃);

return0;}

7.

找出x,y,z三個數中的最小數,并判斷該

數是否等于bo

#include"stdio.h"

intmain()

(

intx=4,y=5,z=8,b;

intu,v;

scanf("%d",&b);

u=x<y?

v=u<z?

if_________________________________

printf("最小數等于b!\n");

printf("最小數不等于b!\n");

return0;

}

8.輸入兩個運算數x,y和一個運算符號op,

輸出該運算結果的值,例如輸入3+5/得到

結果8

*

#include"stdio.h"

intmain()

floatx,y,r;

charop;

scanf("%f,%c,%f",&x,&op,&y);

switch(op)

(

caser=x+y

*

_____________________9

r=x-y;break;

case

?*?.

__________;break;

r=x/y;break;

}

printf("%f",r);

return0;}

9.根據輸入字符的ASCII碼來判別字符的類

別。由ASCII碼表可知ASCH值小于32的為

控制字

符。在“0”和“9”之間的為數字,在“A”

和“Z”之間為大寫字母,在“a”和“z”

間為小寫字母,其余則為其它字符。

#include"stdio.h"

intmain()

(

charc;

printf("inputacharacter:");

c=getchar();

printf("Thisisacontrolcharacter\n");

if(c>='0'&&c<=,9")

printf("Thisisadigit\n");

printf("Thisisacapitalletter\n");

printf("Thisisasmallletter\n");

printf("Thisisanothercharacter\n");

return0;}

10.找出a,b,c三個數中的最大數,并判斷該

數是否等于X。

#include"stdio.h"

intmain()

(

inta=8,b=4,c=12,x;

intu,v;

scanf("%d〃,&x);

u=a<b?

v=u<c?

if___________________________________

printf("最大數等于x!\n");

printf("最大數不等于x!\n");

return0;

}

解答:

1.c=getchar();

(c>=,0,&&c<='91)

(c>=7V&&c<二Z)

else

2.charc;

break;

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

3.max=a;

min=b;

if(max<c)

min=c;

4.switch(a)

case2:

break;

default:

5.if(a==b)

elseif(a>b)

elseif(a<b)

else

6.if(x<0)

c=x/10;

break;

else

7.x:y;

u:z;

(v==b)

else

8.break;

case

r=x*y;

case

9.if(c<32)

elseif(c>=7V&&c<二Z)

elseif(c>='a'&&c<='z')

else

10.b:a

c:u

(v==x)

else

四.改錯題

解答:

五.編程一

1.求分段函數

1(x<0)

7=12x(1<x<5)

&(x>5)

的值,輸入X值,輸出結果。

2.從鍵盤上輸入一個數x,計算并輸出下列

分段函數y的值。

-Xx<0

sinx+x0<x<l

y

x310<x<20

未定義

<strong>其它〈/strong〉

3.某運輸公司運費計算時根據運輸距離打

折計算,折扣的計算方法如下:

,0s<250

2%250<s<800

discount=<

5%800<s<1500

8%s21500

(其中,discount表示折扣,S表示運輸

距離)。

編寫一完整程序,輸入運輸距離,統(tǒng)計運

費并輸出。每公里的運費通過符號常量定義

為2

?5o

4.編程輸入一元二次方程的三個系數,求解

一元二次方程的實根,無實根時不用求虛

根,

給出相應提示信息即可。

5.給定三條邊,判斷其是否能構成三角形,

若能構成,判斷其是等腰三角形、等邊三角

、直角三角形還是普通三角形。

6.從鍵盤輸入一個三角形的三條邊,判斷是

否能組成三角形,若能組成三角形,則輸出

的面積。

7.從鍵盤輸入一個百分制的學生成績,輸出

其對應的分數等級,其中90-100為A,SO-

89

為B,70?79為C,60?69為D,60以下為

Eo

8.編寫一個程序,從鍵盤輸入三個整數給a,

b,c,然后交換它們中的數,把a中原來的

給b,把b中原來的值給c,把c中原來的

值給ao

9.輸入一個字符,判斷其是否為英文字母,

若是英文字母,則將其大小寫進行轉換,若

是英文字母,則不變。

10.給定三個整數型x,y,z,輸出三個數中

的最大值和最小值。

解答:

1.#include"stdio.h"

#include"math.h"

voidmain()

(

floatx,y;

printf("inputx\n");

scanf("%f",&x);

if(x<0)y=l;elseif(x<=5)y=2*x;

else

y=sqrt(x);

printf("x=%5.1fy=%8.3f\n",x,y);

}

2.#include"stdio.h"

#include"math.h"

voidmain()

(

floatx,y;

printf("inputx\n");

scanf("%f",&x);

if(x>20||x>l&&x<10){

printf("無定義\n“);

return;

}

if(x<0)y=-x;

elseif(x<=l)y=sin(x)+x;

elseif(x>=10&&x<=20)y=x*x*x;

printf("x=%5.1fy=%8.3f\n",x,y);

}

3.#include"stdio.h"

#include"math.h"

#defineprice2.5

voidmain()

(

floatdiscount,cost,s;

printf("inputdistance\n");

scanf("%f",&s);

if(s<250)discount=0;elseif(s<800)

discount=0.02;elseif(s<1500)

discount=0.05;else

discount=0.08;

cost=s*(l-discount)*price;

printf("distance=%5.1f;cost=%5.1f\n",s,cost

);

}

4./*功能:求一元二次方程的解。*/

#include"math.h"

#include"stdio.h"

main()

{floata,b,c,disc,xl,x2;scanf("%f,%f,%f",

&a,&b,&c);

disc=b*b-4*a*c;

if(disc==0)

printf("xl=x2=%7.2f\n",-b/(2*a));

/*輸出兩個相等的實根*/

elseif(disc>0)

{xl=(-b+sqrt(disc))/(2*a);/*求出兩個不

相等的實根*/

x2=(-b-sqrt(disc))/(2*a);

printf("xl=%7.2f,x2=%7.2f\n",xl,x2);

}

else

printf(“無實根\n“);

}

5.#include"stdio.h"

voidmain()

(

floata,b,c;

printf(“輸入三條邊:\n");

scanf("%f%f%f",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

{if(a==b&&b==c)

printf("等邊三角形\rT);

elseif(a==b||b==c||c==a)

printf("等腰三角形\n“);

else

if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==b*b+

a*a)

printf("直角三角形\n”);

}

else

printf("不能構成三角形\n");

}

6.#include"stdio.h"

#include"math.h"

voidmain()

(

floata,b,c,s,area;

printf(“輸入三條邊:\n");

scanf("%f%f%f",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

{s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("area=%7.2f\n",area);

}

else

printf("不能構成三角形\n");

}

7.#include<stdio.h>

voidmain()

(

intscore;

chard;

printf("lnputscore\n");

scanf("%d",&score);

if(score>100||score<0){printf("data

error!\n");

return;

}

switch(score/10){case10:case

9:d='A';break;

case8:d='B';break;

case7:d='C';break;

case6:d='D';break;

default:d='E';break;

}

printf("score=%3ddengji=%c\n",score,d);

}

8.#include<stdio.h>

voidmain()

(

inta,b,c,t;

printf("lnputa,b,c\n");

scanf("%d%d%d",&a,&b,&c);

t=a;

a=b;

b=c;

c=t;

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

}

9.#include<stdio.h>

voidmain()

(

charcl,c2;printf("lnputaletter:

);

cl=getchar();

if(cl>='a,&&cl<=,z')

c2=cl+'A'-'a,;

elseif(cl>='A,&&cl<=,Z,)

c2=cl+'a'-'A,;

else

c2=cl;printf("原字符:%c轉換后

為:%c\n",cl,c2);

}

10.

#include<stdio.h>

voidmain()

(

inta,b,c,max,min;

printf("lnputa,b,c\n");

scanf("%d%d%d",&a,&b,&c);

max=a;min=a;

if(b>max)max=b;

elseif(b<min)min=b;

if(c>max)max=c;

elseif(c<min)min=c;

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

printf("max=%d;min=%d\n",max,min);

}

六.編程二

解答:

第五章循環(huán)結構

一.填空

LC語言中提供了三種循環(huán)控制語句,它們

是:()、do-while語句、()。

2.break語句在C程序中只能出現在兩種場

合:一是用于()語句中,二是用于(

)語句中。

3.以下程序段中的語句printf(****”)要執(zhí)

行5次,請在空白處填入合適的數。

for(i=l;i<=();i=i+2)

printf(“***”);

4.定義intk=10;執(zhí)行語句while(k<20)k

+=1;后,k的值為()°

5.在循環(huán)控制結構中break語句的作用是

)。

6.在循環(huán)控制結構中continue語句的作用

是:()。

7.若已知inta[5][5];并在運行過程中a數

組已經賦值;要打印次對角線元素,在空白

填入合適的值/表達式;

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

for(j=();j>=0;j-)

printf("%5d",a[i][j]);

8.執(zhí)行完語句sum=0;for(i=0;i<10;i++)

{if(i%5==0)sum+=i;

sum=()

9.在使用while語句中需要注意,為了防止

“死循環(huán)”的發(fā)生,在循環(huán)體中一定耍有(

)語句。

10.do-while語句中,判斷循環(huán)條件在

(),執(zhí)行循環(huán)體在()。(填“先”

“后

”)

解答:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

二.閱讀程序寫結果

1.#include<stdio.h>

voidmain()

(

intnumber,digit;

number=1234;while

(number!=0)

(

digit=number%10;

printf("%d",digit);

number=number/10;

}

}

2.#include<stdio.h>

#defineN5

voidmain()

(

inti;

for(i=l;i<N;i++)

printf("%d\n",i*i);

}

3.#include<stdio.h>

voidmain()

(

inti,s,x;

s=0;x=15;

for(i=l;i<=5;i++)

if(x%i==0)

s=s+i;

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

}

4.#include<stdio.h>

voidmain()

(

intcounter=l;while(counter

<=5){

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

counter++;

)

}

5.#include<stdio.h>

intmain()

inti,sum,m,a;

sum=O;m=5;

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

(

scanf("%d",&a);

if(a>m)

sum+=a;

}

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

return0;}

輸入:21083〈回車〉

6.#include<stdio.h>

intmain()

(

溫馨提示

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

評論

0/150

提交評論