C語(yǔ)言程序設(shè)計(jì)考點(diǎn)知識(shí)點(diǎn)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)考點(diǎn)知識(shí)點(diǎn)_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)考點(diǎn)知識(shí)點(diǎn)_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)考點(diǎn)知識(shí)點(diǎn)_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)考點(diǎn)知識(shí)點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一章程序設(shè)計(jì)基本概念

1.1程序和程序設(shè)計(jì)

程序:連續(xù)執(zhí)行的一條條指令的集合稱為“程序”。

對(duì)于計(jì)算機(jī)來(lái)說(shuō),它不能識(shí)別由高級(jí)語(yǔ)言編寫(xiě)的程序,它只能接受和處理由0

和1的代碼構(gòu)成的二進(jìn)制指令或數(shù)據(jù)。由于這種形式的指令是面向機(jī)器的,因此也

被稱為“機(jī)器語(yǔ)言”。所以所有由高級(jí)語(yǔ)言編寫(xiě)的程序都要經(jīng)過(guò)編譯,編譯成二進(jìn)制

代碼。這種具有翻譯功能的軟件稱為編譯程序。

語(yǔ)言有很多種,我們現(xiàn)在要談?wù)摰木褪荂語(yǔ)言。為什么計(jì)算機(jī)會(huì)能進(jìn)行各種各

樣的操作,就是由不同的指令來(lái)實(shí)現(xiàn)的。而不是只有C語(yǔ)言才可以實(shí)現(xiàn)這樣的功能。

還有其它很多語(yǔ)言。但是我們一般說(shuō)C語(yǔ)言是其它語(yǔ)言的母語(yǔ)。會(huì)了C語(yǔ)言其它的

語(yǔ)言在學(xué)習(xí)的過(guò)程就會(huì)感到輕松一些。

1.1.2程序設(shè)計(jì)

1.確定數(shù)據(jù)結(jié)構(gòu)

2.確定算法

3.編碼

4.在計(jì)算機(jī)上調(diào)試程序

5.整理并寫(xiě)出文檔資料

1.2算法

定義:是指為了解決某個(gè)特定的問(wèn)題而采取的確定且有限的步驟。

1.有窮性

2.確定性

3.可行性

4.有零個(gè)或多個(gè)輸入

5.有一個(gè)或多個(gè)輸出

1.3結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)

結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成

1.順序結(jié)構(gòu)

2.選擇結(jié)構(gòu)

不滿足

判斷表達(dá)式

3.循環(huán)結(jié)構(gòu)

12)計(jì)算機(jī)能直接執(zhí)行的程序是(B)0

A)源程序B)目標(biāo)程序C)匯編程序D)可執(zhí)行程序

13)以下敘述中正確的是(D)

A)程序設(shè)計(jì)的任務(wù)就是編寫(xiě)程序代碼并上機(jī)調(diào)試

B)程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)

C)程序設(shè)計(jì)的任務(wù)就是確定所用算法

D)以上三種說(shuō)法都不完整

第二章:C程序設(shè)計(jì)的初步知識(shí)

2.1C語(yǔ)言程序的構(gòu)成和格式

#include<stdio.h>

Main()

doublea,b,area;

a=1.2,b=3.6;/*將矩形的兩條邊長(zhǎng)分別賦給a和b變量*/

area=a*b;

printf("a=%f,b=%f,area=%f\n”,a,b,area);/*輸出矩形的兩條邊長(zhǎng)和面積*/

#include<stdio.h>:每當(dāng)寫(xiě)一-個(gè)程序時(shí),第一條語(yǔ)句永遠(yuǎn)是這個(gè)語(yǔ)句,因?yàn)橐唬瑐€(gè)程序

可以沒(méi)有輸入但必須要有輸出,而這個(gè)語(yǔ)句就是控制輸入輸出的。所以任何一個(gè)程

序都必須由這個(gè)語(yǔ)句開(kāi)始。

Main():是一個(gè)程序的主函數(shù)。一個(gè)程序是由多個(gè)函數(shù)組成的,而任何一個(gè)程序都

要有一個(gè)主函數(shù),有且只有一個(gè)。任何程序都是由主函數(shù)開(kāi)始執(zhí)行的。

{):它們兩個(gè)必須要成對(duì)出現(xiàn),它們中的語(yǔ)句是主函數(shù)體。包括定義部分和執(zhí)行部

分。它們中的語(yǔ)句,每一條必須也結(jié)束。;是c語(yǔ)句的一個(gè)組成部分而不是??個(gè)結(jié)

束標(biāo)識(shí)。

/**/:注釋符一定要成對(duì)出現(xiàn),不允許嵌套。兩個(gè)符號(hào)間的語(yǔ)句不被執(zhí)行。

例年真題:

#include<stdio.h>

main()

Inta;

A=5;/*給A變量賦值5

A+=3;再賦值后再加3*/

Printf("%d”,a);

)

(ID以下敘述中正確的是(C)o

A)C程序的基本組成單位是語(yǔ)句B)C程序中的每一行只能寫(xiě)一條語(yǔ)句

二級(jí)C語(yǔ)言程序設(shè)計(jì)試卷)

C)簡(jiǎn)單C語(yǔ)句必須以分號(hào)結(jié)束D)C語(yǔ)句必須在一行內(nèi)寫(xiě)完

(11)以下敘述中正確的是(C)

A)C程序中的注釋只能出現(xiàn)在程序的開(kāi)始位置和語(yǔ)句的后面

B)C程序書(shū)寫(xiě)格式嚴(yán)格,要求一行內(nèi)只能寫(xiě)一個(gè)語(yǔ)句

C)C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以寫(xiě)在多行上

D)用C語(yǔ)言編寫(xiě)的程序只能放在一個(gè)程序文件中

第二課:C語(yǔ)言的基礎(chǔ)知識(shí)

2.2標(biāo)識(shí)符,常量和變量

2.2.1標(biāo)識(shí)符:

定義:由字母,數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線的。這

樣的組成就是標(biāo)識(shí)符。

下列合法的是:

elsewhat#$12334aa34a_ba-bIf

a=3A=4

注意:在c中大寫(xiě)字母與小字字母被認(rèn)為是兩個(gè)不同的字符。

分類:

關(guān)鍵字:在C中已經(jīng)定義好了的,不能用作它用的。如ifdoubleint等等。

預(yù)定義標(biāo)識(shí)符:如printfscanf

用戶標(biāo)識(shí)符:用戶根據(jù)自己的需求來(lái)定義的。

(12)以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是(C)

A)void

B)8_8

C)_0_

D)unsigned

(11)以下選項(xiàng)中合法的標(biāo)識(shí)符是(C)

A)1-1B)1—1C)-11D)1—

(12)以下選項(xiàng)中不合法的標(biāo)識(shí)符是(C)

A)printB)FORO&aD)_00

2.2.2常量:

定義:是指在程序的執(zhí)行的過(guò)程中,其值不會(huì)被改變的量。

分類:

整型常量:沒(méi)有小數(shù)的常量

如:391234等等都是。

實(shí)型常量:有小數(shù)點(diǎn)的常量

如:3.93.03.

字符常量:由單個(gè)字符組成的量

如:‘a(chǎn)''b''3’

字符串常量:至少由一個(gè)字符組成的量

如:“a”"abc”"beijing”

符號(hào)常量:符號(hào)常量的值到底是多少,這是由在來(lái)定義符號(hào)常量時(shí)來(lái)

決定的

?2*pi

(13)以下選項(xiàng)中,能用作數(shù)據(jù)常量的是(D)

A)0115B)0118C)1.5el.5D)115L

(13)以下選項(xiàng)中不能作為C語(yǔ)言合法常量的是(A)。

A)'cd'B)0.le+6C)“\a"D))\01T

(13)以下選項(xiàng)中不屬于字符常量的是(B)

A)'C'B)"C"C)'\xCC0'D)'\072'

2.3整型常量與實(shí)型常量

整型常量的幾個(gè)表示方法

十進(jìn)制數(shù):

八進(jìn)制數(shù):以0開(kāi)頭的數(shù)字,由0-7組成。

下列合法的八進(jìn)制數(shù)是

A,0B,028C,-077D,01.0

十六進(jìn)制數(shù):以0X開(kāi)頭,由0-9和A-F組成。

A,oxffB,OxabcC,0x11D,0x19

實(shí)型常量123.4

小數(shù)形式:123.4

指數(shù)形式:L234e2

1.字母e和E之前必須要有數(shù)字

2.字母e和E之后的數(shù)字必須是整數(shù)

3.字母e,和數(shù)字之間不能有空格。

A,2.607E-10.8103E2-77.77456E-20.le+61.23E1.2

2.2.4變量:

I.定義:在程序的運(yùn)行過(guò)程中其值可以被改變的量,就叫變量。

2.原則:變量必須先定義后使用。變量定義的過(guò)程就是給變量開(kāi)辟存儲(chǔ)單元的過(guò)

程。

3.分類:

整型變量:用關(guān)鍵字int來(lái)表示.

shortint短整型

longint長(zhǎng)整型在內(nèi)存中占4個(gè)字節(jié)如123L

unsigned無(wú)符號(hào)如有-200U這就是錯(cuò)的。

變量的定義:inta這是定義了一個(gè)整型變量a.

實(shí)型變量:用關(guān)鍵字double或float來(lái)表示。

float單精度在內(nèi)存中占4個(gè)字節(jié)

double雙精度在內(nèi)存中占8個(gè)字節(jié)。

2.2.5算術(shù)表達(dá)式

一、基本的算術(shù)運(yùn)算符

+-*/%這些是雙目運(yùn)算符(就是指操作對(duì)象有兩個(gè))

注意:

除%外,其它的運(yùn)算符的運(yùn)算對(duì)象可以是整型也可以是實(shí)型。%的操作對(duì)象只能是

整型。

如10%3=110.7%310%4.5x%3=0

+-也可以做為單目運(yùn)算。-5.4+4.9

說(shuō)明:

1.如果雙目運(yùn)算符兩邊運(yùn)算數(shù)的類型-致,則所得結(jié)果的類型與運(yùn)算數(shù)的類型一致。

如1.0/20=0.51/2=0

2.如果雙目運(yùn)算符兩邊運(yùn)算數(shù)的類型不一致,則系統(tǒng)會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換,使兩邊的

類型一致后,再進(jìn)行運(yùn)算。

1.0/2=0.5

3.所有的單精度數(shù)據(jù),在運(yùn)算過(guò)程中都以雙精度進(jìn)行運(yùn)算。

二、優(yōu)先級(jí)

()+-*/%+-

由高------------(氐

如(5+1)/2=???

2.5.3強(qiáng)制類型轉(zhuǎn)換表達(dá)式

格式:(類型名)(表達(dá)式)

例:(int)3.234=3

(double)10%3=?

(14)表達(dá)式:4-(9)%2的值是(B)

A)0

B)3

C)4

D)5

(14)設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是(C)

A)x=y*5=x+z

B)int(15.8%5)

C)x=y+z+5,++y

D)x=25%5.0

2.6賦值表達(dá)式

格式:變量名=表達(dá)式

注:1.不可以顛倒(左邊必須是變量名,右邊必須是C語(yǔ)言中合法的表達(dá)式)

2.功能就是先求出右邊表達(dá)式的值,然后把此值賦值給賦值號(hào)左邊的變量。確切的

說(shuō)是把數(shù)據(jù)存入以該變量為標(biāo)識(shí)的存儲(chǔ)單元中去。a=4,a=7

3.結(jié)合性的優(yōu)先級(jí)僅高于逗號(hào)表達(dá)式。順序是自右向左的。如a=2+7/3

4."="是一個(gè)賦值號(hào),不是一個(gè)等號(hào)。

5.x=y。變量的值也是可以傳遞和賦值的。它的意思就是將變量Y中的值賦值到X

中去。同樣N=N+1也成立

6.賦值運(yùn)算符的左側(cè)只能是變量,不能是常量或表達(dá)式a+b=c這就是違法的

7。賦值號(hào)的右邊也可以是—t'賦值表達(dá)式。如a=b=7+l;

補(bǔ)充;表達(dá)式與語(yǔ)句的區(qū)別,

表達(dá)式后面加一個(gè)分號(hào)就是語(yǔ)句。

2.6.2復(fù)合賦值表達(dá)式

例:

a+=3----a=a+3同理可得a*=3/==

a+=a-=a+aa的初值是9

a+=a-=18

a+=(a=a-18)

a+=(a=-9)

a+=a

-18

(15)若有定義語(yǔ)句:intx=10;,則表達(dá)式x二x+x的值為(B)

A)-20

B)-10

C)0

D)10

(14)設(shè)有定義:intx=2;,以下表達(dá)式中,值不為6的是(D)

A)x*=x+lx=x*(x+l)

B)x++,2*x

C)x*=(1+x)

D)2*x,x+=2

(17)若變量均已正確定義并賦值,以卜合法的C語(yǔ)言賦值語(yǔ)句是(A)

A)x=y==5;

B)x=n%2.5;

C)x+n=I

D)X=5=4+1;

2.7++和-----的講解

++:自身加1

自身減1

i=3i++I=i+1i=4

單目

3++

++II++

當(dāng)++在前,先自身加1,然后再干別人讓干的事情。

當(dāng)++在后,先別人讓干的事情然后再干自身加1。

inti=3;

inta;

a=i++;a=3

a=++I;a=4

第三課:輸入和輸出語(yǔ)句

3.2輸出語(yǔ)句的講解

一、printf函數(shù)的一般調(diào)用形式

格式:printf(格式控制,輸出項(xiàng)1,輸出項(xiàng)2,.......);

在printf函數(shù)的最后面寫(xiě)上;號(hào)就是輸出語(yǔ)句。

1,給輸出項(xiàng)白提供輸出格式說(shuō)明

格式說(shuō)明符:

作用:就是使數(shù)據(jù)按格式說(shuō)明符的要求進(jìn)行輸出。

組成:由%號(hào)和緊跟在其后的格式描述符組成。

int--------%d

float或double—%f或e%

char--------%c

2.提供原樣輸出的文字或字符

在“”中除了格式說(shuō)明符之外的內(nèi)容要全部原樣輸出。

各個(gè)輸出項(xiàng)之間要用逗號(hào)隔開(kāi)。

輸出項(xiàng)可以是任意合法的常量,變量或表達(dá)式。

printf中常用的格式說(shuō)明

在格式說(shuō)明符中,每一個(gè)格式說(shuō)明符都必須以%號(hào)開(kāi)頭由相應(yīng)的類型標(biāo)識(shí)字母結(jié)束。但

在他們之間可以有其它的一個(gè)內(nèi)容:

%c:輸出一個(gè)字符

%d:輸出一個(gè)十進(jìn)制的數(shù)據(jù)

%o:以八進(jìn)制格式輸出。

%X:以卜六進(jìn)制輸出

%U:無(wú)符號(hào)十進(jìn)制輸出

%f:以帶小數(shù)點(diǎn)的數(shù)字輸出

%e:以指數(shù)形式輸出

%s:輸出一個(gè)字符串。

%%:輸出一個(gè)%號(hào)

%4d:輸出的數(shù)據(jù)長(zhǎng)度是4個(gè)長(zhǎng)度,當(dāng)原來(lái)的長(zhǎng)度大于4個(gè)時(shí)會(huì)自動(dòng)突破。小于4個(gè)時(shí)會(huì)填

充空格。

%x.yf:x代表數(shù)制的寬度(包括小數(shù)點(diǎn))。Y代表小數(shù)點(diǎn)后面的小數(shù)位數(shù)。

注意事項(xiàng):

1.輸出比較自由一些,輸出有的各個(gè)數(shù)之到底是什么,取決于格式說(shuō)明符之間的內(nèi)容。

2.格式說(shuō)明符要與輸出項(xiàng)一一對(duì)應(yīng)。

3.輸出語(yǔ)句中還可以有\(zhòng)n\r\t\a

4.盡量不要在輸出語(yǔ)句中改變輸出變量的值。

5.輸?shù)臄?shù)據(jù)中如果存在變量,一定要定義過(guò)的。

習(xí)題講解

(13)閱讀以下程序

#include

main()

{intcase;floatprintF;

pr血f(“請(qǐng)輸入2個(gè)數(shù):”);

scanfC4%d%f\&case,&pjrintF);

printf(44%d%f\n,,,case,printF);

該程序編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是(A

A)定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符

B)定義語(yǔ)句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符

C)定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用

D)定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值

(16)有以下程序

#include

main()

{inta=l,b=0;

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

printf(<t%d\n,,,a=2*b);

)

程序運(yùn)行后的輸出結(jié)果是(D)

A)0,0

B)1,0

C)3,2

D)1,2

(15)程序段:intx=12;

doubley=3.141593;printf(<<%d%8.6f,,x,y);的輸出結(jié)果是(A)

A)123.141593

B)12

3.141593

C)12,3.141593

D)123.141593

#include<stdio.h>

main()

doublea=123.456;

printf("%6.2f",a);

輸入語(yǔ)句

格式:scanf(格式控制,輸入項(xiàng)1,輸入項(xiàng)2,…);

例如:想通過(guò)鍵盤(pán)輸入3個(gè)數(shù)分別給變量a,b,c。并且他們分別為整型,浮點(diǎn)型,雙精度型。

輸入語(yǔ)句為scanf("%d%f%lf',&k,&a,&y);

說(shuō)明:

1.格式說(shuō)明符與輸出語(yǔ)句一樣。

2.在格式串中,必須含有與輸入項(xiàng)一一對(duì)應(yīng)的格式轉(zhuǎn)換說(shuō)明符。

3.在VC6.0的環(huán)境下,要收輸入的DOUBLE型數(shù)據(jù)的格式說(shuō)明符一定要用%If,否則數(shù)

據(jù)不能正確的輸入

4.由于輸入是一個(gè)字符流,所以當(dāng)輸入的數(shù)據(jù)少于輸入項(xiàng)時(shí),程序會(huì)等待用戶輸入,直

到滿足要求。當(dāng)輸入的數(shù)據(jù)多于輸入項(xiàng)時(shí),多余的數(shù)據(jù)會(huì)自動(dòng)作廢。

例題:

intx;

x=l1/3;

inty=5;

printf("%%d,%%%d\n",x,y);結(jié)果是:%d,%3

[3.51若變量已正確說(shuō)明為int類型,要給a、b、c輸入數(shù)據(jù),以下正確的輸入語(yǔ)句是(D)

A)read(a,b,c);B)scanf(4t%d%d%d”,a,b,c);

C)scanf("%D%D%D”,&a,%b,%c);D)scanf(u%d%d%d,\&a,&b,&c);

[3.6]若變量已正確說(shuō)明為float類型,要通過(guò)以下賦值語(yǔ)句給a賦予10、b賦予22、c

賦予33,以下不正確的輸入形式是(A)

A)10B)10.0,22.0,33.0C)10.0D)1022

2222.033.033

33

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

復(fù)合語(yǔ)句:多個(gè)語(yǔ)句被{}括起來(lái),當(dāng)成一條語(yǔ)句來(lái)執(zhí)行。

空語(yǔ)句:最后的表示只有一個(gè);

程序舉例:

1。編寫(xiě)一個(gè)程序,從鍵盤(pán)上輸入兩個(gè)數(shù)字,讓后讓他們互換一下。

#include<stdio.h>

main()

(

inta,b;

printf(“請(qǐng)輸入兩個(gè)數(shù)字:”);

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

printf(Hqian:%d%d”,a,b);

intc;

c=a,a=b,b=c;

printf("后:%d%d",a,b);

2o編寫(xiě)程序,對(duì)一個(gè)double型數(shù)據(jù)進(jìn)行四舍五入運(yùn)算。要求保留兩位有效小樹(shù)。

123.4567

1234567*100=12345.67

12345.67+0.5=12346.17

(int)(12346.17)=12346

12346/100=123.46

3o編寫(xiě)程序,使從鍵盤(pán)中輸入的三位數(shù)倒著輸出。

選擇題

[3.11若a、b、c、d、都是int類型變量且初值為0,以下選項(xiàng)中不正確的賦值語(yǔ)句是(C)

A)a=b=c=d=100;B)d++;C)c+b;D)d=(c=22)-(b++);

[3.2]以下選項(xiàng)中不是C語(yǔ)句的是(C)

A){inti;i++;printf("%d\n",i);}B);

C)a=5,c=10D){;}

[3.3]以下合法的C語(yǔ)言賦值語(yǔ)句是(D)

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

[3.4]以下程序的輸出結(jié)果是(C)

A)0B)1C)3D)不確定的值

main()

{intx=10,y=3;

printf(4t%d\n,,,y=x/y);}

[3,5]若變量已正確說(shuō)明為int類型,要給a、b、c輸入數(shù)據(jù):以下正確的輸入語(yǔ)句是(D)

A)read(a,b,c);B)scanf("%d%d%d”,a,b,c);

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

[3.6J若變量已正確說(shuō)明為float類型,要通過(guò)以下賦值語(yǔ)句給a賦予10、b賦予22、c賦予

33,以下不正確的輸入形式是(B)

A)10B)10.0,22.0,33.0C)10.0D)1022

2222.033.033

33

scanf(u%f%f%r,&a,&b,&c);

[3.71若變量已正確定義,要將a和b中的數(shù)進(jìn)行交換,下面不正確的語(yǔ)句組是(C)

A)a=a+b,b=a-b,a=a-b;B)t=a,a=b,b=t;

C)a=t;t=b;b=a;D)t=b;b=a;a=t;

[3.8J若變量已正確定義,以下程序段的輸出結(jié)果是(D)

A)輸出格式說(shuō)明與輸出項(xiàng)不區(qū)配,輸出無(wú)定值B)5.17

Q5.168D)5.169

X=5.16894;

PrintfC4%l\n,\(int)(x*1000+0.5)/(float)1000);

[3.9J若有以下程序段,c3中的值是(A)

A)0B)l/2C)0.5D)1

intcl=l,c2=2,c3;

c3=cl/c2;

[3.10]若有以下程序段,其輸出結(jié)果是(B)

A)3,0,-10B)0,0,50-10,3,-10D)3,0,3

inta=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printfC4%d,%d,%d\n”,a,b,c);

填空題

[3.21]若有以下定義,請(qǐng)寫(xiě)出以下程序段中輸出語(yǔ)句執(zhí)行后的輸出結(jié)果。

(1)-200,2500(2)i=-200,i=500⑶i=-200回車j=2500

inti=-200,j=2500;

printff*(l)%d%d”,i,j);

printf("⑵i=%d,j=%d\n”,i,j);

printf("⑶i=%d\nj=%d\n,,,i,j);

[3.22J變量i、j、k已定義為int類型并有初值0,用以下語(yǔ)句進(jìn)行輸入時(shí)

scanf("%d",&I);scanf("%d",&j);scanf("%d",&k);

當(dāng)執(zhí)行第一個(gè)輸入語(yǔ)句,△鍵盤(pán)輸入:

12.3<CR><CR>表示Enter鍵

則變量i、j、k的侑分別是12、0、0。

[3.23J復(fù)合語(yǔ)句在語(yǔ)法上被認(rèn)為是一條語(yǔ)名??照Z(yǔ)句的形式是一

[3.24JC語(yǔ)句的最后用;結(jié)束。

[3,25]以下程序段,要求通過(guò)scanf語(yǔ)句給變量賦值,然后輸出變量的值。寫(xiě)出運(yùn)行時(shí)給k

輸入100,給a輸入25.81,給x輸入1.89234時(shí)的三種可能的輸入形式、、。

intk;floata;doublex;

scanfC4%d%f%lf\&k,&a,&x);

pirntf(44k=%d,a=%f,x=%f\n,,,k,a,x);

編程題和改錯(cuò)題

[3.29]以下程序多處有錯(cuò)。要按下面指定的形式輸入數(shù)據(jù)和輸出數(shù)據(jù)時(shí),請(qǐng)對(duì)該程序做相應(yīng)

的修改。

main

{doublea,b,c,s,v;

printf(inpula,b,c:\n);

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

s=a*b;/*計(jì)算長(zhǎng)方形面積*/

v=a*b*c;/*計(jì)算長(zhǎng)方體體積*/

printf("%d%d%d”,a,b,c);

printf("s=%f\n”,s,"v=%d\n”,v);

)

當(dāng)程序執(zhí)行時(shí),屏幕的顯示和要求輸入形式如下:

inputa,b,c:2.02.03.0此處的2.02.03.0是用戶輸入的數(shù)據(jù)

a=2.000000,b=2.000000,c=3.0(X)000此處是要求的輸出形式

s=4.000000,v=12.000000

[3.30]編寫(xiě)程序,把560分鐘換算成用小時(shí)和分鐘表示,然后進(jìn)行輸出。

[3.31]編寫(xiě)程序,輸入兩個(gè)整數(shù):1500和350,求出它們的商數(shù)和余數(shù)并進(jìn)行輸出。

[3.32]編寫(xiě)程序,讀入三個(gè)雙精度數(shù),求它們的平均值并保留此平均值小數(shù)后一位數(shù),對(duì)小

數(shù)點(diǎn)后第二位數(shù)進(jìn)行四舍五入,最后輸出結(jié)果。

[3.33]編寫(xiě)程序,讀入三個(gè)整數(shù)給a、b、c,然后交換它們中的數(shù),把a(bǔ)中原來(lái)的值給b,

把b中原來(lái)的值給c,把c中原來(lái)的值給a。

第四課:C語(yǔ)言的程序結(jié)構(gòu)

4-1節(jié)、關(guān)系運(yùn)算與邏輯運(yùn)算

一、簡(jiǎn)介

關(guān)系表達(dá)式與邏輯表達(dá)式的運(yùn)算結(jié)果都會(huì)得到一個(gè)邏輯值。就是“真”、"假”

在C語(yǔ)言中0表示“假”,非0(無(wú)論是負(fù)數(shù)還是正數(shù)都是真,更多時(shí)候用1來(lái)代替)

表示“真”。

二、幾個(gè)簡(jiǎn)單的關(guān)系運(yùn)算符

<<=>>===!=

注意:

1,由兩個(gè)字符組成的運(yùn)算符,中間不能有空格

2,它們都是雙目運(yùn)算符,具有自左至右的結(jié)合性。

3,上面的6個(gè)運(yùn)算符中,前4個(gè)的優(yōu)先級(jí)要比后2個(gè)的優(yōu)先級(jí)要高。

先計(jì)算,后判斷,最后進(jìn)行賦值運(yùn)算。

三、幾個(gè)簡(jiǎn)單的邏輯運(yùn)算符

&&與一假則假

II或一真則真

!非非假則真,非真則假

1&&2=1

0&&6=0

inta=4,b=7;

a&&7=l

intx=0,y=7;

x++&&y++?x=1y=7

++x&&y++?x=ly=8

同樣放在II中也是一樣的。

4-2、4-3節(jié)、if語(yǔ)句

一、定義:

只有兩種結(jié)果。要么執(zhí)行這條語(yǔ)句,要么執(zhí)行那條語(yǔ)句。

if(條件表達(dá)式)

上述條件成立執(zhí)行的句子

else

上述條件不成立執(zhí)行的句子

如:

if(成績(jī)>60)

顯示及格

else

顯示不及格

二、分類

1.不含有else的語(yǔ)句

if(表達(dá)式)語(yǔ)句

if(a<b)

t=a;

a=b;

b=t;

2.含有else語(yǔ)句

if(條件)

語(yǔ)句1;

else

(

語(yǔ)句2;

語(yǔ)句3;

)

注:

L沒(méi)有分號(hào)

2.控制的是與if或者else緊臨的“一條"語(yǔ)句。

if(a<b)

printf("%d",b);

else

printf("%d”,a);

if(a%3==0)

yes

else

no

4-4節(jié)、結(jié)合一個(gè)例題來(lái)給大家分析if的嵌套

輸入一個(gè)學(xué)生的成績(jī),評(píng)定他的等級(jí)。每十分一個(gè)等級(jí)

elseif()

elseif()

else

if(a>=90)printf(nan);

elseif(a>=80)printf(Hb");

elseif(a>=70)printf("cu);

elseif(a>=60)printf("d");

elseprintf(,'eu);

4-5.節(jié)

7)設(shè)有定義:inta=l,b=2,c=3;,以下語(yǔ)句中執(zhí)行效果與其它三個(gè)不同的是(C)

A)if(a>b)c=a,a=b,b=c;

B)if(a>b){c=a,a=b,b=c;}

C)if(a>b)c=a;a=b;b=c;

D)if(a>b){c=a;a=b;b=c;}

(18)有以下程序應(yīng)該選(B)

#include<stdio.h>

main()

{intx;

scanf("%d”,&x);

if(x<=3;else

if(x!=10)

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

)

程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果

A)不等于10的整數(shù)

B)大于3且不等于10的整數(shù)

C)大于3或等于10的整數(shù)

D)小于3的整數(shù)

(19)有以下程序(C)

#include<stdio.h>

Main()

(

inta=l,b=2,c=3,d=0;

if(a==1&&b++==2)

if(b!=2llc-!=3)

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

elseprintf("%d,%d,%d\n”,a,b,c);

elseprintf("%d,%d,%d\n”,a,b,c);

)

程序運(yùn)行后的輸出結(jié)果是

A)1,2,3

B)1,3,2

C)1,3,3

D)3,2』

4?6節(jié)、條件表達(dá)式

是C語(yǔ)言中唯一的一個(gè)三目運(yùn)算。

格式:表達(dá)式1?表達(dá)式2:表達(dá)式3

當(dāng)1成立(非零時(shí))時(shí),表達(dá)式的值就是2的值,否則就是3的值。

如:

1.1<2?4:5

2.printf(,'%d,,,x<0?(4)*++x:x++);(假定X的值為-3)

3.++X>3?(x<3?a:b):b

4?7節(jié)、switch語(yǔ)句(一)

switch(表達(dá)式)

(

case常量表達(dá)式1:語(yǔ)句1

case常量表達(dá)式2:語(yǔ)句2

case常量表達(dá)式3:語(yǔ)句3

case常量表達(dá)式4:語(yǔ)句4

case常量表達(dá)式5:語(yǔ)句5

。。。

case常量表達(dá)式N:語(yǔ)句N

4?8節(jié)、switch語(yǔ)句(二)

switch(A/10)

(

case10:printf(uA");

case9:printf("A”);

case8;printf("b");

case7;printf(ucM);

case6;printf(nd");

default:printf("eH);

)

4-9節(jié)——4?15節(jié)、選擇題

[4.1]下列運(yùn)算符中優(yōu)先級(jí)最高的運(yùn)算符是(A)

A)!B)%C)-=D)&&

14.2]下列運(yùn)算符中優(yōu)先級(jí)最低的運(yùn)算符是(A)

A)llB)!=C)<=D)+

[4.3]為表示關(guān)系x>=y>=z,應(yīng)使用的C語(yǔ)言表達(dá)式是(A)

A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)

C)(x>=y>=z)D)(x>=y)&(y>=z)

[4,4]設(shè)a、b和c都是int型變量,且a=3,b=4,c=5;則以下的表達(dá)式中,值為0的表

達(dá)式是(D)

A)a&&bB)a<=bC)allb+c&&b-cD)!((a<b)&&!clll)

[4.5]以下程序的輸出結(jié)果是:(C)

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

main()

{inta=2,b=-l,c=2;

if(a<b)

if(b<0)

c=0;

elsec+=l;

printf(6<%d\n,,,c);

)

[4.6]以下程序的輸出結(jié)果是:(A)

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

main()

{intw=4,x=3,y=2,z=l;

printf(**%d\n,,,(w<x?w:z<y?z:x));

14.7]若執(zhí)行以下程序時(shí)從鍵盤(pán)上輸入3和4,則輸出結(jié)果是(B)

A)14B)16C)18D)20

main()

{inta,b,s;

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

s=a;

if(a<b)s=b;

s:i:=s;

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

[4.9]運(yùn)行以下程序后,輸出(D)

A)####B)&&&&

C)####&&&&D)有語(yǔ)法錯(cuò)誤不能通過(guò)編譯

main()

{intk=-3;

if(k<=0)printf("****\n");

elseprintf(“&&&&\rT);

)

[4.10]若a和b均是正整數(shù)型變量,以下正確的switch語(yǔ)句是(A)

A)switch(pow(a,2)+pow(b,2))(注:調(diào)用求累的數(shù)學(xué)函數(shù))

{case1:case3:y=a+b;break;

case0:case5:y=a-b;

)

B)switch(a*a+b*b);

{case3:

case1:y=a+b;break;

case0:y=b-a;break;

)

C)switch()a

{default:x=a+b;

case10:y=a-b;break;

case11:y=a*d;break;

)

D)switch(a+b)

{case10:x=a+b;break;

easel1:y=a-b;break;

)

二、填空題

[4.111C語(yǔ)言中用非0表示邏輯值“真”,用0表示邏輯值“假”。

[4.12]C語(yǔ)言中的關(guān)系運(yùn)算符按優(yōu)先級(jí)別是(!=<=)!=、<=

[4.13]C語(yǔ)言中的邏輯運(yùn)算符按優(yōu)先級(jí)別是(II&&!)

[4,I4JC語(yǔ)言中的關(guān)系運(yùn)算符和邏輯運(yùn)算符的優(yōu)先級(jí)別是(==&&)

[4.15]C語(yǔ)言中邏輯運(yùn)算符」_的優(yōu)先級(jí)高于算術(shù)運(yùn)算符。

[4.16J將下列數(shù)學(xué)式改寫(xiě)成C語(yǔ)言的關(guān)系表達(dá)式或邏輯表達(dá)式A)a=blla<c和B)

x>4llx<-4

A)a=b或a<cB)lxl>4

14.171請(qǐng)寫(xiě)出以下程序的輸出結(jié)果1。

main()

{inta=100;

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

elseprintfCt%d\n,,,a<=100);

[4.18]請(qǐng)寫(xiě)出與以下表達(dá)式等價(jià)的表達(dá)式A)Xv=0B)1

A)!(x>0)B)!0

[4.19]當(dāng)a=l,b=2,c=3時(shí),以下if語(yǔ)句執(zhí)行后,a、b、c中的值分別為3、2、2_

if(a>c)

b=a;

a=c;

c=b;

[4.20]若變量巳正確定義,以下語(yǔ)句段的輸出結(jié)果是*#

x=0,y=2,z=3;

switch(x)

{case0:switch(y==2)

{case1:printf("*");break;

case2:printf("%");break;

)

caseI:switch(z)

{case1:printfC'D;

case2:printf("*");break;

default:printfCt#^^);

三、編程題

[4.21J請(qǐng)將以卜語(yǔ)句改寫(xiě)成switch語(yǔ)句。

if(a<30)m=l;

elseif(a<40)m=2;

elseif(a<50)m=3;

elseif(a<60)m=4;

elsem=5;

[4.22]編寫(xiě)程序,輸入一位學(xué)生的生日(年:yO、月:mO、日:dO);并輸入當(dāng)前的日期(年:

yl、月:ml、日:dl);輸出該生的實(shí)足年齡。

[4.23]編寫(xiě)程序,輸入一個(gè)整數(shù),打印出它是奇數(shù)還是偶數(shù)。

[4.24]編寫(xiě)程序,輸入a、b、c三個(gè)數(shù),打印出最大者。

[4.25]有一函數(shù):

x(-5<x<0)

y=x-1(x=0)

x+1(0<x<10)

編寫(xiě)一程序,要求輸入X的值,輸出y的值。

分別用(1)不嵌套的if語(yǔ)句(2)嵌套的if語(yǔ)句(3)if-else語(yǔ)句(4)switch語(yǔ)句

第五課:循環(huán)結(jié)構(gòu)

5-1>5?2節(jié)、while語(yǔ)句

一、格式:

while(表達(dá)式)

循環(huán)體

注:1:

2:

3:一條

while(a<3)l

{a+=s;2

s=a;3}

1.......100

inti=l,sum=0;

while(i<101)

sum=sum+i++;

printf(u%du,sum);

叢1開(kāi)始加到哪個(gè)數(shù)時(shí)他們的和將超過(guò)1000?

inti=l,sum=0;

while(sum<1000)

{sum+=i;999+42=1041

i++;}4243

printf(M%d",-i);

5?3節(jié)、do?while語(yǔ)句

dowhile()

格式:

do

循環(huán)體

while(表達(dá)式)

1235813

do

(

a3=al+a2;

al=a2;

a2=a3;

}whi!e(a3<=1000);

1:1

2:;

5?4節(jié)、for語(yǔ)句(1)

for語(yǔ)句和for語(yǔ)句構(gòu)成的循環(huán)結(jié)構(gòu)

一、格式:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

循環(huán)體

相當(dāng)于while語(yǔ)句的

表達(dá)式1;

while(表達(dá)式2)

(

循環(huán)體;

表達(dá)式3;

)

k=0

for(;k<=10;)

{printf(,,*u);

k++;

)

intk=0;

while(k<10)

(

printf(',*u);

k++;

注:

1:表達(dá)式可以省略,但分號(hào)不可以。

2:表達(dá)式可以是任意有效的C語(yǔ)言表達(dá)式

第六課、字符型數(shù)據(jù)

6-1節(jié)、字符型常量

格式:'a'P4,

要求:

1,單引號(hào)中的大寫(xiě)字母和小寫(xiě)字母代表不同的字符常量。

2.單引號(hào)中的空格也是一個(gè)字符常量,但不能是兩個(gè)連續(xù)的單引號(hào)

3.字符常量只能用單引號(hào)括起來(lái),不能用雙引號(hào)。

轉(zhuǎn)義字符

\n代表回車

''代表一個(gè)單引號(hào)’

\\代表一個(gè)\

'”代表一個(gè)雙引號(hào)

注意:

1.轉(zhuǎn)義字符常量,如只代表一個(gè)字符

2.反斜線后的8進(jìn)制數(shù)可以不用0開(kāi)頭。如1中所講的141就是一個(gè)8進(jìn)制數(shù)。

0141

3.反斜線后的16進(jìn)制數(shù)只可以用x開(kāi)頭,不可以用X開(kāi)頭。

字符串常量

格式:由雙引號(hào)括起來(lái)的一串字符。

同時(shí)也要知道“A”和,A,是不一樣的。

"A"'A'

ACSII碼

A65a97

匕'-A'=32

6.2節(jié)、字符變量

格式:chara='s'

6.3字符的輸入和輸出

Printf和scanf函數(shù)輸出和輸入字符

對(duì)于字符型數(shù)據(jù)的格式說(shuō)明符是%c

Charc='a';

Printf("%c”,c);

Chara,b,c,d;

Scanf("%c%c%c'',&a,&b,&c);

6-3節(jié)、程序舉例

寫(xiě)出26個(gè)大寫(xiě)字母和他們的ASCII代碼要求每行輸出兩組數(shù)據(jù)。

#include<stdio.h>

Main()

(

Charch;intI;

For(i=0;i<26:i++)

(

Ch=i+65;

If(i%2==0)

Printf("\n”);

Printf(4tc=%c,ASCII=%d,,,ch,ch);

在上面的程序中有對(duì)于字符的輸入與輸出,在C語(yǔ)言中也有另外的輸入輸出字符的語(yǔ)

句。

輸入:變量名=getchar()

輸出:putchar(變量名)

第七章函數(shù)

7-1節(jié)、庫(kù)函數(shù)

1.調(diào)用C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)要求的include命令行

Include命令行必須以#開(kāi)頭,系統(tǒng)提供的頭文件以.h作為文件的后綴,文件名用一對(duì)

雙引號(hào)或一對(duì)尖括號(hào)(需要注意include命令行不是C語(yǔ)句,因此不能在最后加分號(hào))

2.標(biāo)準(zhǔn)庫(kù)函數(shù)的調(diào)用

函數(shù)名(參數(shù)表)

如:putchar(ch)

(1)出現(xiàn)在表達(dá)式中的----ch=getchar()

(2)做為單獨(dú)的語(yǔ)句完成某種操作。--printf(“********”);

7.2函數(shù)的定義和返回值

由于C語(yǔ)言中的定義的函數(shù)不能完成用戶所有的要求,所以用戶可以為自己定義函數(shù)實(shí)

現(xiàn)相應(yīng)的功能。

7.2.1函數(shù)定義的語(yǔ)法

1:格式:

函數(shù)返回值的類型名函數(shù)名(類型名形式參數(shù)1,類型名形式參數(shù)2……)

(

說(shuō)明部分

語(yǔ)句部分

}

2:函數(shù)名和形式參數(shù)都是用戶命名的標(biāo)識(shí)符。在同一個(gè)程序中,函數(shù)名必須唯一,

形式參數(shù)名只要在同一函數(shù)中唯一即可,可以與其他函數(shù)中的變量同名。

3:C語(yǔ)言規(guī)定,不能在函數(shù)的內(nèi)部定義函數(shù)。

4:若在函數(shù)的首部省略了函數(shù)返回值的類型名,則說(shuō)明該函數(shù)的返回值是int類型

5:除了返回值類型為int類型的函數(shù)外,函數(shù)必須先定義后調(diào)用。

6:當(dāng)沒(méi)有函數(shù)返回值,則必須把函數(shù)定義成void類型。

例:編寫(xiě)求兩個(gè)雙精度數(shù)之和的函數(shù)。

doubleadd(doublea,doubleb)

{

doubles;

s=a+b;

returns;

7-2節(jié)、函數(shù)的返回值

函數(shù)的值通過(guò)return語(yǔ)句返回,

return表達(dá)式;

此表達(dá)式的值必須與函數(shù)首部所說(shuō)明的類型一致,若類型不一致,則以函數(shù)值的類型

為準(zhǔn)。需要注意的是,無(wú)論函數(shù)體中有多少個(gè)return語(yǔ)句,只能執(zhí)行一次。

函數(shù)體內(nèi)可以沒(méi)有return語(yǔ)句,這時(shí)也必須定義函數(shù)為viod類型。

7-3節(jié)、函數(shù)的調(diào)用

7.3.1函數(shù)的兩種調(diào)用方式

格式為:

函數(shù)名(實(shí)在參數(shù)表)

當(dāng)實(shí)參的個(gè)數(shù)多于一個(gè)時(shí),各實(shí)參用逗號(hào)隔開(kāi)。實(shí)參的個(gè)數(shù)必須與調(diào)用函數(shù)中形參的

個(gè)數(shù)相周,類型一一對(duì)應(yīng)匹配。

如沒(méi)有形參,則形式為函數(shù)名()注意后面的小括號(hào)不能丟。

如題:

#include<stdio.h>

doubleadd(double.double);

main()

doublem,n,z;

scanf(<4%lf%lf\m,n);

z=add(m,n);

printf(<<%lf,,z);\

)

doubleadd(doublea,doubleb)

(

doubles;

s=a+b;

returns;

7.3.2函數(shù)調(diào)用時(shí)的語(yǔ)法要求

1.調(diào)用函數(shù)時(shí),函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致。

2.實(shí)參的個(gè)數(shù)必須與形參的個(gè)數(shù)―致。

3.C語(yǔ)言中規(guī)定,函數(shù)必須先定義后使用。

4.C語(yǔ)言中,函數(shù)可以直接或間接的自己調(diào)用自己。稱為遞歸調(diào)用

fac(n)=fac(n-I)*n

7-4節(jié)、函數(shù)的說(shuō)明

在C語(yǔ)言中凡是未在調(diào)用前定義的函數(shù),C編譯程序都默認(rèn)函數(shù)的返回值為int型。對(duì)

于返回值是其它類型的,若把函數(shù)的定義放在調(diào)用之后,應(yīng)該在調(diào)用之前對(duì)函數(shù)進(jìn)行說(shuō)明。

說(shuō)明的格式:

類型名函數(shù)名(參數(shù)類型1,參數(shù)類型2.。。。。)

也可以用以下格式

類型名函數(shù)名(參數(shù)類型1參數(shù)名1,參數(shù)類型2參數(shù)名2,……)

函數(shù)說(shuō)明的位置:

一般為了讓程序早點(diǎn)識(shí)別出程序中的定義好了的函數(shù),一般將其放在程序的開(kāi)始部分

7-5節(jié)、調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞

-:三種格式進(jìn)行傳遞

1.實(shí)在參數(shù)和形式參數(shù)之間進(jìn)行數(shù)據(jù)傳遞

2.通過(guò)return語(yǔ)句把函數(shù)值返回調(diào)用函數(shù)

3.能過(guò)全局變量,但這不是一種好的方式,通常不提倡使用。

通過(guò)一個(gè)程序來(lái)看一下數(shù)據(jù)到底是怎樣傳遞的。

#include<stdio.h>

viodtry(int,int,int);

main()

(

intx=2,y=3,z=0;

printf(u(l)x=%dy=%dz=%d\nn,x,y,z);

try(x,y,z);

printf(<4(4)x=%dy=%dz=%d\n,,,x,y,z);

)

voidtry(intx,inty,intz)

(

printf("⑵x=%dy=%dz=%d\n,,,x,y,z);

z=x+y;

x=x*x;

y=y*y;

printf("⑶x=%dy=%dz=%d\n”,x,y,z");

屏幕上的結(jié)果是:

⑴x=2y=3z=0

(2)x=2y=3z=0

⑶x=4y=9z=5

(4)x=2y=3z=0

再來(lái)一個(gè)程序

#include<stdio.h>

viodswap(int,int);

main()

(

intx=10,y=20;

printf(4<(l)x=%dy=%d\n,,,x,y);

swap(x,y);

printf(46(4)x=%dy=%d\n,,,x,y);

)

voidswap(inta,intb)

(

intt;

printfCX2)a=%db=%d\n,,,a,b);

t=a;a=b;b=t;

printf(46(3)a=%db=%d\n,5,a,b);

)

程序運(yùn)行結(jié)果

(1)x=10y=20

⑵a=10b=20

⑶a=20b=10

(4)x=10y=20

7.6程序應(yīng)用舉例

編寫(xiě)一個(gè)函數(shù)isprime(inta),用來(lái)判斷自變量a是否為素?cái)?shù)。若是素?cái)?shù),函數(shù)返回整數(shù)1,

否則返回0.

#include<stdio.h>

intisprime(int)

main()

(

intx;

printf(t4enteraintegernumber:");

scanf("%d",&x);

if(isprime(x))

prinlf("%disprime\n",x);

else

printf(t4%disnotprime\n,,,x);

)

intisprime(inta)

(

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)

return0;

return1;

)

編寫(xiě)函數(shù)myupper(ch),把ch中的小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母作為函數(shù)值返回,其他字符不

變。主函數(shù)中不斷輸入字符,用字符@結(jié)束輸入,同時(shí)不斷輸出結(jié)果。

#include<stdio.h>

#include<ctype.h>

charmyupper(charch)

if(ch>=,a,&&ch<=,z,)

ch=ch-32;

returnch;

)

main()

(

charc;

while((c=getchar())!='@')

(

c=myupper(c);

putchar(c);

)

)

編寫(xiě)函數(shù)統(tǒng)計(jì)輸入字符的個(gè)數(shù),用@字符結(jié)束輸入,在主函數(shù)中調(diào)用此函數(shù),輸出統(tǒng)計(jì)結(jié)

果。

#include<stdio.h>

longcountch();

main()

(

longn;

n=countch();

printf(ttn=%ld\n,,,n);

)

longcountch()

(

longcn;

for(cn=0;getchar()!=,@?;cn++)

returncn;

7-10-一7-13節(jié)、課后習(xí)題

[7.1]以下說(shuō)法中正確的是C

A)C語(yǔ)言程序總是從第一個(gè)定義的函數(shù)開(kāi)始執(zhí)行

B)在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義

C)C語(yǔ)言程序總是從main函數(shù)開(kāi)始執(zhí)行

D)C語(yǔ)言程序中的main函數(shù)必須放在程序的開(kāi)始部分

[7.2]以下函數(shù)的類型是C

A)與參數(shù)x的類型相同

B)void類型

C)inl類型

D)無(wú)法確定

fff(floatx)

{printf("%d\n",x*x);}

[7.3]以下函數(shù)調(diào)用語(yǔ)句中,含有的實(shí)參個(gè)數(shù)是B

A)1B)2C)4D)5

func((exp1,exp2),(exp3,exp4,exp5));

L7.4]以下程序的輸出結(jié)果是C

A)llB)20C)21D)31

func(inta,intb)

{intc

c=a+b;

returnc;

)

main()

{intx=6,y=7,z=8,r;

r=func((x-,y++,x+y),z-);

printf("%d\nn,r);

)

17.5J以下程序的輸出結(jié)果是A

A)-lB)0C)1D)2

main()

{inti=2,p;

p=f(i,i+l);

printf("%d”,p);

}

intf(inta,intb)

{intc;

c=a;

if(a>b)c=l;

elseif(a==b)c=O;

elsec=-l;

return(c);

)

[7.6]以下程序的輸出結(jié)果是D

A)0B)1C)6D)無(wú)定值

fun(inta,intb,intc)

{c=a*b;}

main()

{intc;

fun(2,3,c);

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

[7.7]以下程序的輸出結(jié)果是A

A)5.500000B)3.000000Q4.000000D)8.25

doublef(intn)

{inti;doubles;

s=1.0;

for(i=1;i<=n;i++)s+=1.0/i;

returns;

)

main()

{inti,m=3;floata=0.0;

for(i=0;i<m;i++)a+=f(i);

printf(H%f\nM,a)L;

)

二、填空題

[7.8]以下程序的輸出結(jié)果是12__.

unsignedfun6(unsignednum)

{unsignedk=l;

do

{k*=num%10;num/=10;

溫馨提示

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

評(píng)論

0/150

提交評(píng)論