第3章 C語(yǔ)言的基本程序設(shè)計(jì)_第1頁(yè)
第3章 C語(yǔ)言的基本程序設(shè)計(jì)_第2頁(yè)
第3章 C語(yǔ)言的基本程序設(shè)計(jì)_第3頁(yè)
第3章 C語(yǔ)言的基本程序設(shè)計(jì)_第4頁(yè)
第3章 C語(yǔ)言的基本程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩69頁(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)介

第3章C語(yǔ)言的基本程序設(shè)計(jì)

本章介紹C語(yǔ)言程序設(shè)計(jì)的基本方法和基本的程序語(yǔ)句。使讀者對(duì)C程序有一個(gè)初步的認(rèn)識(shí),為后面各章的學(xué)習(xí)打下基礎(chǔ)。3.1C語(yǔ)言的語(yǔ)句概述3.2算法與結(jié)構(gòu)化程序設(shè)計(jì)方法3.3順序結(jié)構(gòu)程序設(shè)計(jì)3.4順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)訓(xùn)3.5選擇結(jié)構(gòu)程序設(shè)計(jì)3.6選擇結(jié)構(gòu)程序設(shè)計(jì)實(shí)訓(xùn)3.7循環(huán)結(jié)構(gòu)程序設(shè)計(jì)3.8循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)訓(xùn)3.1C語(yǔ)言的語(yǔ)句概述

C語(yǔ)句可分為以下五類:表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、控制語(yǔ)句、復(fù)合語(yǔ)句、空語(yǔ)句。

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

表達(dá)式語(yǔ)句由表達(dá)式加上分號(hào)“;”組成。格式為:表達(dá)式;例如:sum=a+b;i++;printf("Hello,everyone!\n");執(zhí)行表達(dá)式語(yǔ)句就是計(jì)算表達(dá)式的值。最常用的表達(dá)式語(yǔ)句是賦值語(yǔ)句和函數(shù)調(diào)用語(yǔ)句。

2函數(shù)調(diào)用語(yǔ)句格式為:函數(shù)名(實(shí)際參數(shù)表);

執(zhí)行函數(shù)語(yǔ)句就是調(diào)用函數(shù)體并把實(shí)際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)函數(shù)體中的語(yǔ)句,求取函數(shù)值。(在第六章函數(shù)中詳細(xì)介紹)例如printf("CProgram");調(diào)用庫(kù)函數(shù),輸出字符串。

3控制語(yǔ)句控制語(yǔ)句用于控制程序的流程,以實(shí)現(xiàn)程序的各種結(jié)構(gòu)方式。C語(yǔ)言有九種控制語(yǔ)句。可分成以下三類:(1)條件判斷語(yǔ)句if語(yǔ)句,switch語(yǔ)句(2)循環(huán)執(zhí)行語(yǔ)句dowhile語(yǔ)句,while語(yǔ)句,for語(yǔ)句(3)轉(zhuǎn)向語(yǔ)句break語(yǔ)句,goto語(yǔ)句,continue語(yǔ)句,return語(yǔ)句4復(fù)合語(yǔ)句

在C語(yǔ)言中,把多個(gè)語(yǔ)句用一對(duì)大括號(hào)“{}”括起來(lái)組成的語(yǔ)句稱復(fù)合語(yǔ)句。在程序中應(yīng)把復(fù)合語(yǔ)句看成是單條語(yǔ)句,而不是多條語(yǔ)句,例如例如:{x=y+z;a=b+c;printf("%d%d",x,a);}

是一條復(fù)合語(yǔ)句。復(fù)合語(yǔ)句內(nèi)的各條語(yǔ)句都必須以分號(hào)“;”結(jié)尾,在括號(hào)“}”外不能加分號(hào)。5空語(yǔ)句

格式:;

功能:不進(jìn)行任何操作,只起到占位的作用,在程序中可用來(lái)作空循環(huán)體。例如:for(i=0;i<100;i++);這里的循環(huán)體為空語(yǔ)句,for循環(huán)雖然執(zhí)行了多次,由于循環(huán)體為空,循環(huán)只是有延時(shí)作用而已。[Return]3.2算法與結(jié)構(gòu)化程序設(shè)計(jì)方法

3.2.1算法1算法的概念數(shù)據(jù)結(jié)構(gòu)(datastructure)是對(duì)數(shù)據(jù)的描述,在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式;算法(algorithm)是對(duì)操作的描述,即操作步驟。實(shí)際上,一個(gè)程序除了以上兩個(gè)主要要素之外,還應(yīng)當(dāng)采用結(jié)構(gòu)化程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì),并且用某一種計(jì)算機(jī)語(yǔ)言表示。程序=算法十?dāng)?shù)據(jù)結(jié)構(gòu)十程序設(shè)計(jì)方法十語(yǔ)言工具和環(huán)境計(jì)算機(jī)的算法可分為兩大類:數(shù)值運(yùn)算算法和非數(shù)值運(yùn)算算法。數(shù)值運(yùn)算算法主要用于解決數(shù)值計(jì)算問(wèn)題,如求方程的根、求函數(shù)值、求定積分等。數(shù)值運(yùn)算算法以外的算法均屬于非數(shù)值運(yùn)算算法,如排序問(wèn)題采用的算法就是非數(shù)值運(yùn)算算法?!纠?-1】交換兩個(gè)變量a、b的值。對(duì)于交換兩個(gè)變量a、b值問(wèn)題,可以借助于臨時(shí)變量c,采用以下步驟實(shí)現(xiàn):S1:c=a;S1:c=b;S2:a=b;或S2:b=a;S3:b=c;S3:a=c;【例3-2】求1+2+3+…+10的和。設(shè)兩個(gè)變量S和i,分別用以存放部分和及整數(shù)l~10。采取以下步驟實(shí)現(xiàn)目標(biāo):S1:S=0S2:i=1S3:S=S+iS4:i=i+lS5:如果i不大于10,則返回重新執(zhí)行步驟S3及其后續(xù)的S4、S5。否則,算法到此結(jié)束,變量S中保存的就是要求的和。

2算法的特性(1)有窮性一個(gè)算法必須包含有限個(gè)操作步驟,且要在合理的時(shí)間范圍內(nèi)由計(jì)算機(jī)處理完成。(2)確定性算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的,而不應(yīng)當(dāng)是含糊的、有歧義的。(3)有零個(gè)或多個(gè)輸入所謂輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息。(4)有一個(gè)或多個(gè)輸出算法的目的是為了求解,“解”就是輸出。一個(gè)算法得到的結(jié)果就是算法的輸出。沒(méi)有輸出的算法是沒(méi)有意義的。(5)有效性算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。

3算法的表示算法的表示或者描述主要可以用以下幾種方法:自然語(yǔ)言、流程圖、N-S結(jié)構(gòu)圖和偽代碼。其中最常用的方法是流程圖和N-S結(jié)構(gòu)圖。(1)三種基本結(jié)構(gòu)l)順序結(jié)構(gòu):其中A和B兩個(gè)框是順序執(zhí)行的(其結(jié)構(gòu)如圖3-1)。2)選擇結(jié)構(gòu)或稱分支結(jié)構(gòu):根據(jù)給定的條件p是否成立而選擇執(zhí)行A框或B框,A框和B框必有一個(gè)被執(zhí)行(其結(jié)構(gòu)如圖3-2)。3)循環(huán)結(jié)構(gòu)(又稱重復(fù)結(jié)構(gòu)),即重復(fù)執(zhí)行某一部分操作的結(jié)構(gòu)。循環(huán)結(jié)構(gòu)分兩種:當(dāng)型循環(huán)結(jié)構(gòu)和直到型循環(huán)結(jié)構(gòu)。①當(dāng)型循環(huán)結(jié)構(gòu):如圖3-3(a)所示。②直到型循環(huán)結(jié)構(gòu):如圖3-3(b)所示。圖3-1順序結(jié)構(gòu)圖3-2選擇結(jié)構(gòu)(a)當(dāng)型循環(huán)(b)直到型循環(huán)(2)用N-S結(jié)構(gòu)圖表示算法圖3-4為例3-1的N-S結(jié)構(gòu)圖。圖3-5為例3-2的N-S結(jié)構(gòu)圖。c=aa=bb=c圖3-4例3-1的N-S結(jié)構(gòu)圖圖3-5例3-2的N-S結(jié)構(gòu)圖3.2.2結(jié)構(gòu)化程序設(shè)計(jì)方法一個(gè)結(jié)構(gòu)化程序就是用高級(jí)語(yǔ)言表示或?qū)崿F(xiàn)的結(jié)構(gòu)化算法。結(jié)構(gòu)化程序設(shè)計(jì)方法包括以下幾個(gè)步驟:自頂而下、逐步細(xì)化、模塊化設(shè)計(jì)、結(jié)構(gòu)化編碼。對(duì)于一個(gè)復(fù)雜的任務(wù),先要對(duì)其進(jìn)行詳盡的分析,把它分解成若干個(gè)相互獨(dú)立的子任務(wù)(模塊):再把每一個(gè)子任務(wù)分解成若干個(gè)更小的子任務(wù)(子模塊),直到子任務(wù)足夠小,可以直接用簡(jiǎn)單的算法來(lái)實(shí)現(xiàn)為止;然后對(duì)每一個(gè)分解后的子任務(wù)(子模塊)進(jìn)行程序編碼,即模塊化程序設(shè)計(jì):最后按照剛才分解的相反順序組合各個(gè)模塊,最終解決問(wèn)題。這種設(shè)計(jì)時(shí)自頂而下、逐步細(xì)化,實(shí)現(xiàn)時(shí)自下而上、逐步組合的結(jié)構(gòu)化程序設(shè)計(jì)方法全局性強(qiáng),有利于保證程序?qū)哟畏置?、結(jié)構(gòu)清晰、算法正確。[Return]3.3順序結(jié)構(gòu)程序設(shè)計(jì)

3.3.1數(shù)據(jù)輸出函數(shù)1字符輸出函數(shù)putchar(1)格式putchar(字符變量);(2)功能putchar函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個(gè)字符。(3)使用說(shuō)明程序中如使用本函數(shù),則必須在文件開(kāi)頭使用文件包含命令#include<stdio.h>或#include“stdio.h”將庫(kù)函數(shù)包括到用戶源文件中。例如:putchar('A');輸出大寫字母A。putchar(x);輸出字符變量x的值。putchar('\n');換行。2格式輸出函數(shù)printfprintf函數(shù)是一個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。但由于printf函數(shù)使用頻繁,系統(tǒng)不要求在使用printf函數(shù)之前必須包含stdio.h文件。(1)格式printf("格式控制字符串",輸出表列)(2)格式字符串格式字符串的格式為:%[標(biāo)志][輸出最小寬度][.精度][長(zhǎng)度]格式字符1)格式字符:格式字符用以表示輸出數(shù)據(jù)的類型,其含義如下所示:格式字符

含義d,i以十進(jìn)制形式輸出帶符號(hào)整數(shù)(正數(shù)不輸出符號(hào))o以八進(jìn)制形式輸出無(wú)符號(hào)整數(shù)(不輸出前綴O)x,X以十六進(jìn)制形式輸出無(wú)符號(hào)整數(shù)(不輸出前綴Ox)(格式字符為x,輸出十六進(jìn)制的a~f時(shí)用小寫,否則用大寫)u以十進(jìn)制形式輸出無(wú)符號(hào)整數(shù)f以小數(shù)形式輸出單、雙精度實(shí)數(shù),隱含輸出6位小數(shù)。e,E以指數(shù)形式輸出單、雙精度實(shí)數(shù),隱含輸出6位小數(shù)。(用e時(shí)指數(shù)用e表示(如1.2e+02),否則用E表示(如1.2E+02))g,G選%f或%e中輸出寬度較短的一種格式輸出c輸出單個(gè)字符s輸出字符串2)標(biāo)志常用標(biāo)志字符為-、+兩種,他們的意義分別是:-:結(jié)果左對(duì)齊,右邊填空格。+:輸出符號(hào)(正號(hào)或負(fù)號(hào))空格:輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號(hào)。3)輸出最小寬度用十進(jìn)制整數(shù)來(lái)表示輸出的最少位數(shù)。若實(shí)際位數(shù)多于定義的寬度,則按實(shí)際位數(shù)輸出,若實(shí)際位數(shù)少于定義的寬度則左邊補(bǔ)以空格或0(默認(rèn)格式為右對(duì)齊)。4)精度精度格式符以“.”開(kāi)頭,后跟十進(jìn)制整數(shù)。本項(xiàng)的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個(gè)數(shù);若實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過(guò)的部分。5)長(zhǎng)度長(zhǎng)度格式符為h,l兩種,h表示按短整型量輸出,l表示按長(zhǎng)整型量輸出。(3)說(shuō)明如果要輸出字符“%”,則應(yīng)該在“格式控制”字符串中用連續(xù)兩個(gè)%表示。例如:printf("%f%%",1.0/4);輸出結(jié)果為:0.250000%f格式符,用來(lái)輸出實(shí)數(shù)(包括單、雙精度),以小數(shù)形式輸出。格式:%f,%m.nf,%-m.nf都可。

注意:?jiǎn)尉葘?shí)數(shù)的有效位數(shù)一般為7位,雙精度為16位?!纠?-4】用printf函數(shù)輸出數(shù)據(jù)。main(){inta=25;floatb=123.4567898;doublec=34567890.1234567;chard='k';printf("a=%d,%5d,%o,%x,%u\n",a,a,a,a,a);printf("b=%f,%lf,%10.4f,%5.4f,%e,%10.2e\n",b,b,b,b,b,b);printf("c=%f,%e,%g\n",c,c,c);printf("d=%c,%8c,%i\n",d,d,d);printf("string=%s,%8s,%8.3s,%-8.3s\n","china","china","china","china");}程序執(zhí)行結(jié)果為:a=25,25,31,19,25b=123.456787,123.456787,123.4568,123.4568,1.23457e+02,1.2e+02c=34567890.123457,3.45679e+07,3.45679e+07d=k,k,107string=china,china,chi,chi

3.3.2數(shù)據(jù)輸入函數(shù)1字符輸入函數(shù)getchar()(1)格式getchar()(2)功能其功能是從鍵盤上輸入一個(gè)字符。通常把輸入的字符賦予一個(gè)字符變量,構(gòu)成賦值語(yǔ)句。(3)使用說(shuō)明1)getchar函數(shù)只能接受單個(gè)字符,輸入數(shù)字也按字符處理。輸入多于一個(gè)字符時(shí),只接收第一個(gè)字符。2)使用本函數(shù)前必須包含文件“stdio.h”。3)在TC屏幕下運(yùn)行含本函數(shù)程序時(shí),將退出TC屏幕進(jìn)入用戶屏幕等待用戶輸入。輸入完畢再返回TC屏幕。

【例3-5】用getchar()函數(shù)輸入字符。#include<stdio.h>main(){charch;printf("inputacharacter\n");ch=getchar();putchar(ch);}程序執(zhí)行結(jié)果為:inputacharacter↙zz2格式輸入函數(shù)scanfscanf函數(shù)是一個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),它的函數(shù)原型在頭文件“stdio.h”中,與printf函數(shù)相同,C語(yǔ)言也允許在使用scanf函數(shù)之前不必包含stdio.h文件。(1)格式scanf(“格式控制字符串”,地址表列);

其中,格式控制字符串的作用與printf函數(shù)相同,地址表列中給出各變量的地址,或字符串的首地址。變量的地址是由地址運(yùn)算符“&”后跟變量名組成的。(2)格式字符串格式字符串的格式為:%[*][輸入數(shù)據(jù)寬度][長(zhǎng)度]格式字符下面介紹各項(xiàng)的具體含義。

【例3-6】用scanf函數(shù)輸入數(shù)據(jù)。main(){inta,b,c;printf("inputa,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);}程序執(zhí)行結(jié)果為:inputa,b,c↙123a=1,b=2,c=31)格式字符格式字符表示輸入數(shù)據(jù)的類型,其含義如下所示:格式字符含義d輸入帶符號(hào)的十進(jìn)制整數(shù)o輸入無(wú)符號(hào)的八進(jìn)制整數(shù)x,X輸入無(wú)符號(hào)的十六進(jìn)制整數(shù)(大小寫作用相同)u輸入無(wú)符號(hào)的十進(jìn)制整數(shù)f,e,E,g,G輸入實(shí)型數(shù)(用小數(shù)形式或指數(shù)形式,大小寫作用相同)c輸入單個(gè)字符s輸入字符串2)“*”符表示跳過(guò)指定的輸入項(xiàng)或列數(shù),讀入的數(shù)據(jù)不賦予相應(yīng)的變量。例如:scanf("%d%*d%d",&a,&b);當(dāng)輸入123時(shí),把1賦予a,2被跳過(guò),3賦予b。3)寬度用十進(jìn)制整數(shù)指定輸入的寬度(即字符數(shù)),系統(tǒng)將自動(dòng)截取所需數(shù)據(jù)。例如:scanf("%5d",&a);如輸入12345678則只把12345賦予變量a,其余部分被截去。4)長(zhǎng)度長(zhǎng)度格式符為l和h,l表示輸入長(zhǎng)整型數(shù)據(jù)(如%ld)和雙精度浮點(diǎn)數(shù)(如%lf)。h表示輸入短整型數(shù)據(jù)。(3)使用說(shuō)明1)輸入數(shù)據(jù)時(shí)不能規(guī)定精度例如:scanf("%8.3f",&a);是非法的。不能企圖用此語(yǔ)句輸入小數(shù)為3位的實(shí)數(shù)。2)格式字符串后面應(yīng)當(dāng)是變量地址,而不該是變量名。例如:scanf("%d",a);是非法的,應(yīng)改為scnaf("%d",&a);才是合法的。

3)格式字符串中除了格式字符外還出現(xiàn)了非格式字符,則輸入時(shí)應(yīng)輸入與這些字符相同的字符。例如:scanf(“%d,%d”,&a,&b);應(yīng)輸入3,4。這里的“,”與格式字符串中的“,”對(duì)應(yīng)。如果輸入34或3;4則不正確。4)在輸入字符數(shù)據(jù)時(shí),若格式控制串中無(wú)非格式字符,則認(rèn)為所有輸入的字符均為有效字符。[Return]3.4順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)訓(xùn)

在確定算法和數(shù)據(jù)結(jié)構(gòu)以后,順序結(jié)構(gòu)程序設(shè)計(jì)可歸納為五步:⑴包含頭文件或宏定義(不是必有的)⑵定義變量和類型⑶變量賦初值(可定義時(shí)賦,或用賦值語(yǔ)句,或鍵入)⑷計(jì)算處理(考慮類型轉(zhuǎn)換、溢出)⑸輸出結(jié)果(考慮類型、精度)根據(jù)上面介紹的步驟進(jìn)行下面的程序設(shè)計(jì)?!纠?-7】計(jì)算任意兩整數(shù)的和、差、積、商?!纠?-8】計(jì)算圓柱的體積?!纠?-9】計(jì)算一元二次方程ax2+bx+c=0的根。(假設(shè)b2-4ac>0)【例3-10】按不同格式輸出整型與長(zhǎng)整型?!纠?-11】輸入一個(gè)三位正整數(shù),以倒序形式輸出它的各位數(shù)。[Return]【例3-7】計(jì)算任意兩整數(shù)的和、差、積、商。#include"stdio.h"main(){inta,b,c,d,e,f;printf("pleaseinputtwointegeraandb:\n");scanf("%d%d",&a,&b);c=a+b;d=a-b;e=a*b;f=a/b;printf("%d+%d=%d%d-%d=%d\n",a,b,c,a,b,d);printf("%d*%d=%d%d/%d=%d\n",a,b,e,a,b,f);}程序執(zhí)行結(jié)果為::pleaseinputtwointegeraandb:151015+10=2515-10=515*10=15015/10=1【例3-8】計(jì)算圓柱的體積。定義實(shí)型變量radius,high,vol分別表示圓柱的底面半徑、高和體積。#definePI3.1415926main(){floatradius,high,vol;printf("Pleaseinputradius&high:");scanf("%f%f",&radius,&high);/*從鍵盤輸入兩個(gè)實(shí)數(shù)賦給變量radius,high*/vol=PI*radius*radius*high;printf("radius=%7.2f,high=%7.2f,vol=%7.2f\n",radius,high,vol);}程序執(zhí)行結(jié)果為::Pleaseinputradius&high:25radius=2.00,high=5.00,vol=62.83【例3-9】計(jì)算一元二次方程ax2+bx+c=0的根。(假設(shè)b2-4ac>0)#include“math.h” /*為使用求平方根函數(shù)sqrt(),必須包含math.h頭文件*/main(){floata,b,c,disc,x1,x2;printf("inputa,b,c:");scanf("%f,%f,%f",&a,&b,&c); /*輸入方程的三個(gè)系數(shù)的值*/disc=b*b-4*a*c; /*求判別式的值賦給disc*/x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("\nx1=%6.2fx2=%6.2f\n",x1,x2);}程序執(zhí)行結(jié)果為:inputa,b,c:1,3,2x1=-1.00x2=-2.00【例3-10】按不同格式輸出整型與長(zhǎng)整型。main(){intnum1=123;longnum2=123456;/*用3種不同格式,輸出int型數(shù)據(jù)num1的值*/printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",num1,num1,num1,num1);/*用3種不同格式,輸出long型數(shù)據(jù)num2的值*/printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);}程序執(zhí)行結(jié)果為::num1=123,num1=123,num1=123,num1=123num2=123456,num2=123456,num2=123456【例3-11】輸入一個(gè)三位正整數(shù),以倒序形式輸出它的各位數(shù)。(例如:輸入123,則輸出321)main(){intx,a,b,c;printf("pleaseinputx:");scanf("%d",&x);/*輸入一個(gè)三位正整數(shù)*/c=x%10;/*獲得個(gè)位數(shù)字*/b=x/10%10;/*獲得十位數(shù)字*/a=x/100;/*獲得百位數(shù)字*/printf("\nx=%d,daoshu=%d\n",x,100*c+10*b+a);}程序執(zhí)行結(jié)果為::pleaseinputx:345x=345,daoshu=5433.5選擇結(jié)構(gòu)程序設(shè)計(jì)

3.5.1if語(yǔ)句1if語(yǔ)句的三種基本格式(1)if型1)格式if(表達(dá)式)語(yǔ)句;2)執(zhí)行過(guò)程如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)行該語(yǔ)句,執(zhí)行后繼語(yǔ)句。其執(zhí)行過(guò)程如圖所示:3)使用說(shuō)明:這里的表達(dá)式一般是關(guān)系表達(dá)式、邏輯表達(dá)式,但還可以是算術(shù)表達(dá)式、賦值表達(dá)式或字符表達(dá)式,甚至也可以是一個(gè)變量,這正是C語(yǔ)言靈活性的具體體現(xiàn)。系統(tǒng)對(duì)表達(dá)式的值進(jìn)行判斷,若為非零就按真來(lái)處理,執(zhí)行語(yǔ)句;若為零就按假來(lái)處理,不執(zhí)行語(yǔ)句?!纠?-12】輸入兩個(gè)整數(shù),比較它們的大小,并將其中的大數(shù)輸出。main(){inta,b,max;printf("\ninputtwonumbers:");scanf("%d%d",&a,&b);max=a;if(max<b)max=b;printf("max=%d\n",max);}程序執(zhí)行結(jié)果為::inputtwonumbers:510max=10(2)if-else型1)格式:if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;2)執(zhí)行過(guò)程如果表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2,語(yǔ)句1或語(yǔ)句2執(zhí)行完之后,執(zhí)行后繼語(yǔ)句。其執(zhí)行過(guò)程如圖所示:3)使用說(shuō)明:①語(yǔ)句1、語(yǔ)句2后面都必須有“;”,它們可以是簡(jiǎn)單語(yǔ)句,也可以是復(fù)合語(yǔ)句。②若if語(yǔ)句中,在表達(dá)式為真或?yàn)榧贂r(shí),都執(zhí)行一個(gè)賦值語(yǔ)句,且是給同一個(gè)變量賦值,就可以用條件表達(dá)式來(lái)處理。如:max=(a>b)?a:b;當(dāng)然,條件表達(dá)式很多時(shí)候不能取代一般的if語(yǔ)句。(3)if-else-if型1)格式if(表達(dá)式1)語(yǔ)句1;elseif(表達(dá)式2)語(yǔ)句2;elseif(表達(dá)式3)語(yǔ)句3;…elseif(表達(dá)式n)語(yǔ)句n;else語(yǔ)句n+1;

【例3-13】從鍵盤輸入學(xué)生的考試成績(jī),利用計(jì)算機(jī)將學(xué)生的成績(jī)劃分等級(jí)并輸出。學(xué)生的成績(jī)可分為5個(gè)等級(jí),這5個(gè)等級(jí)是:90~100分為A級(jí),80~89分為B級(jí),70~79分為C級(jí),60~69分為D級(jí),0~59分為E級(jí)。學(xué)生的考試成績(jī)?yōu)?~99分。main(){intscore;printf("pleaseinputascore:\n");scanf("%d",&score);if((score<0)||(score>100))printf("dataerror!\n");elseif(score>=90)printf("thegradeisA.\n");elseif(score>=80)printf("thegradeisB.\n");elseif(score>=70)printf("thegradeisC.\n");elseif(score>=60)printf("thegradeisD.\n");elseprintf("thegradeisE.\n");}程序執(zhí)行結(jié)果為:pleaseinputascore:95A(4)if語(yǔ)句(三種格式)的使用說(shuō)明1)在if語(yǔ)句中,條件判斷表達(dá)式必須用括號(hào)括起來(lái),在語(yǔ)句之后必須加分號(hào)。2)在if和else后面可以只含一個(gè)語(yǔ)句,也可以有一組(多個(gè))語(yǔ)句,此時(shí)必須把這一組語(yǔ)句用大括弧括起來(lái)組成一個(gè)復(fù)合語(yǔ)句。但要注意的是在右花括弧之后不能再加分號(hào)。

if語(yǔ)句的嵌套當(dāng)if語(yǔ)句中的執(zhí)行語(yǔ)句又是if語(yǔ)句時(shí),則構(gòu)成了if語(yǔ)句嵌套的情形。(1)格式:if(表達(dá)式1)if(表達(dá)式2)語(yǔ)句1;else語(yǔ)句2;elseif(表達(dá)式3)語(yǔ)句3;else語(yǔ)句4;(2)說(shuō)明:1)在嵌套的if語(yǔ)句中,經(jīng)常會(huì)出現(xiàn)多個(gè)if和多個(gè)else重疊的情況,這時(shí)要特別注意if和else的配對(duì)問(wèn)題。C語(yǔ)言規(guī)定,else總是與它上面最近的還沒(méi)有配對(duì)的if配對(duì)。2)如果程序要求else必須與某一個(gè)if配對(duì),則應(yīng)通過(guò)添加大花括弧構(gòu)成復(fù)合語(yǔ)句,以此來(lái)確定匹配關(guān)系。【例3-14】比較兩個(gè)數(shù)的大小關(guān)系。main(){inta,b;printf("pleaseinputa,b:\n");scanf("%d%d",&a,&b);if(a!=b)if(a>b)printf("%d>%d\n",a,b);elseprintf("%d<%d\n",a,b);elseprintf("%d=%d\n",a,b);}程序執(zhí)行結(jié)果為:pleaseinputA,B:①35②64③553<56>45=5main(){inta,b;printf("pleaseinputA,B:");scanf("%d%d",&a,&b);if(a==b)printf("%d=%d\n",a,b);elseif(a>b)printf("%d>%d\n",a,b);elseprintf("%d<%d\n",a,b);}3.5.2switch語(yǔ)句C語(yǔ)言還提供了另一種用于多分支選擇的switch語(yǔ)句。1格式switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;case常量表達(dá)式2:語(yǔ)句2;…case常量表達(dá)式n:語(yǔ)句n;default:語(yǔ)句n+1;}2執(zhí)行過(guò)程計(jì)算表達(dá)式的值,并逐個(gè)與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語(yǔ)句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語(yǔ)句。如表達(dá)式的值與所有case后的常量表達(dá)式均不相同時(shí),則執(zhí)行default后的語(yǔ)句n+1?!纠?-15】利用switch語(yǔ)句重新完成例3-13編程任務(wù)。main(){intscore;printf("inputascore(0~100):");scanf("%d",&score);score=score/10;; /*將成績(jī)整除10,轉(zhuǎn)化成switch語(yǔ)句中的case標(biāo)號(hào)*/switch(score){case10:case9:printf("grade=A\n");/*標(biāo)號(hào)10和9,都執(zhí)行本行的語(yǔ)句*/case8:printf("grade=B\n");case7:printf("grade=C\n");case6:printf("grade=D\n");case5:case4:case3:case2:case1:case0:printf("grade=E\n");/*標(biāo)號(hào)5~0,都執(zhí)行本行的語(yǔ)句*/default:printf("Thescoreisoutofrange!\n");/*成績(jī)超出范圍時(shí),提示出錯(cuò)*/}}程序執(zhí)行結(jié)果為:inputascore(0~100):95grade=Agrade=Bgrade=Cgrade=Dgrade=EThescoreisoutofrange!main(){intscore;printf("inputascore(0~100):");scanf("%d",&score);score=score/10; /*將成績(jī)整除10,轉(zhuǎn)化成switch語(yǔ)句中的case標(biāo)號(hào)*/switch(score){case10:case9:printf("grade=A\n");break;/*標(biāo)號(hào)10和9,都執(zhí)行本行的2條語(yǔ)句*/case8:printf("grade=B\n");break;case7:printf("grade=C\n");break;case6:printf("grade=D\n");break;case5:case4:case3:case2:case1:case0:printf("grade=E\n");break;/*標(biāo)號(hào)5~0,都執(zhí)行本行的2條語(yǔ)句*/default:printf("Thescoreisoutofrange!\n");/*成績(jī)超出范圍時(shí),提示出錯(cuò)*/}}【例3-16】計(jì)算器程序。用戶輸入運(yùn)算數(shù)和四則運(yùn)算符,輸出計(jì)算結(jié)果。main(){floata,b,s;charc;printf("inputexpressiona+(-,*,/)b:\n");scanf("%f%c%f",&a,&c,&b);switch(c){case'+':printf("%f\n",a+b);break;case'-':printf("%f\n",a-b);break;case'*':printf("%f\n",a*b);break;case'/':printf("%f\n",a/b);break;default:printf("inputerror\n");}}程序執(zhí)行結(jié)果為:inputexpressiona+(-,*,/)b:15+10253使用說(shuō)明(1)在case后的各常量表達(dá)式的值必須互不相同,否則會(huì)出現(xiàn)錯(cuò)誤。(2)在case后,允許有多個(gè)語(yǔ)句,可以不用{}括起來(lái)。(3)各case和default子句的出現(xiàn)先后順序不會(huì)影響程序執(zhí)行結(jié)果。(4)default子句可以省略不用。[Return]3.6選擇結(jié)構(gòu)程序設(shè)計(jì)實(shí)訓(xùn)

【例3-17】輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出?!纠?-18】輸入并判斷和顯示任意一年是否為閏年。【例3-19】編寫一個(gè)計(jì)算售票收款數(shù)目的小程序。具體要求為:每張票零售價(jià)格為25元,團(tuán)體票價(jià)為20元,一次購(gòu)票數(shù)目超過(guò)30張(包含30)時(shí)按團(tuán)體票出售。對(duì)輸入的購(gòu)票數(shù)目計(jì)算并輸出相應(yīng)的購(gòu)票款的數(shù)額。【例3-20】編寫一個(gè)已知利潤(rùn)計(jì)算薪水的程序。標(biāo)準(zhǔn)如下:(profit表示利潤(rùn),薪水的單位是元)profit≤1000基礎(chǔ)薪水為5001000<profit≤2000另按利潤(rùn)的10%提2000<profit≤5000另按利潤(rùn)的15%提5000<profit≤10000另按利潤(rùn)的20%提10000<profit另按利潤(rùn)的25%提[Return]【例3-17】輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。main(){intx,y,z,temp;scanf("%d%d%d",&x,&y,&z);if(x>y){temp=x;x=y;y=temp;}/*交換x,y的值*/if(x>z){temp=z;z=x;x=temp;}/*交換x,z的值*/if(y>z){temp=y;y=z;z=temp;}/*交換z,y的值*/printf("smalltobig:%d%d%d\n",x,y,z);}程序執(zhí)行結(jié)果為:1001288smalltobig:1288100【例3-18】輸入并判斷和顯示任意一年是否為閏年。main(){intyear;printf("pleaseinputayear:\n");scanf("%d",&year);if(year%4==0&&year%100!=0||year%400==0)printf("theyear%disleapyear.\n",year);elseprintf("theyear%disnotleapyear.\n",year);}程序執(zhí)行結(jié)果為:pleaseinputayear:2000theyear%disleapyear.main(){intyear,leap=0; /*leap=0:預(yù)置為非閏年*/printf("Pleaseinputtheyear:");scanf("%d",&year);if(year%4==0)if(year%100!=0)leap=1;elseif(year%400==0)leap=1;if(leap)printf("%disaleapyear.\n",year);elseprintf("%disnotaleapyear.\n",year);}【例3-19】編寫一個(gè)計(jì)算售票收款數(shù)目的小程序。具體要求為:每張票零售價(jià)格為25元,團(tuán)體票價(jià)為20元,一次購(gòu)票數(shù)目超過(guò)30張(包含30)時(shí)按團(tuán)體票出售。對(duì)輸入的購(gòu)票數(shù)目計(jì)算并輸出相應(yīng)的購(gòu)票款的數(shù)額。main(){intnumber;floattotal;printf("pleaseinputthenumberofticketsyouwanttobuy:\n");scanf("%d",&number);if((number<0)||(number>3000))printf("dataerror!\n");elseif(number>=30){total=20.0*number;printf("youmustpay%.2fyuan.\n",total);}else{total=25.0*number;printf("youmustpay%.2fyuan.\n",total);}}程序執(zhí)行結(jié)果為:①35youmustpay700.00yuan②15youmustpay375.00yuan【例3-20】main(){longprofit;intgrade;floatsalary=500;printf("Inputprofit:");scanf("%ld",&profit);grade=(profit-1)/1000; /*將利潤(rùn)-1、再整除1000,轉(zhuǎn)化成switch語(yǔ)句中的case標(biāo)號(hào)*/switch(grade){case0:break; /*profit≤1000*/case1:salary+=profit*0.1;break; /*1000<profit≤2000*/case2:case3:case4:salary+=profit*0.15;break; /*2000<profit≤5000*/case5:case6:case7:case8:case9:salary+=profit*0.2;break; /*5000<profit≤10000*/default:salary+=profit*0.25; /*10000<profit*/}printf("salary=%.2f\n",salary);}3.7循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)中三種基本結(jié)構(gòu)之一。C語(yǔ)言提供了while、dowhile、for三種循環(huán)語(yǔ)句來(lái)組成各種不同形式的循環(huán)結(jié)構(gòu)。3.7.1while循環(huán)語(yǔ)句1格式while(表達(dá)式)語(yǔ)句;其中表達(dá)式是循環(huán)條件,語(yǔ)句為循環(huán)體。2執(zhí)行過(guò)程先計(jì)算表達(dá)式的值,若表達(dá)式的值為真(非0)時(shí),執(zhí)行循環(huán)體語(yǔ)句;然后重復(fù)執(zhí)行上面的操作,直到表達(dá)式的值為假時(shí)結(jié)束循環(huán),執(zhí)行while循環(huán)后面的語(yǔ)句。其執(zhí)行過(guò)程可用圖表示。

3使用說(shuō)明

1)while語(yǔ)句中的表達(dá)式一般是關(guān)系表達(dá)式或邏輯表達(dá)式,只要表達(dá)式的值為真(非0)即可繼續(xù)循環(huán)。2)循環(huán)體如包括有一個(gè)以上的語(yǔ)句,則必須用{}括起來(lái),組成復(fù)合語(yǔ)句。3)循環(huán)體中應(yīng)有修改循環(huán)變量、使循環(huán)趨于結(jié)束的語(yǔ)句,否則出現(xiàn)死循環(huán)。4)循環(huán)之前要為有關(guān)變量賦初值。一般要設(shè)計(jì)循環(huán)程序,首先要根據(jù)問(wèn)題找出“循環(huán)三要素”。即:1)有關(guān)變量的初始化,應(yīng)放在循環(huán)之前。2)循環(huán)條件3)循環(huán)內(nèi)要重復(fù)執(zhí)行的任務(wù)。

【例3-21】計(jì)算1+2+3+…100的和。main(){inti=1,sum=0; /*初始化循環(huán)控制變量i和累計(jì)器sum*/while(i<=100){sum+=i; /*實(shí)現(xiàn)累加*/i++; /*循環(huán)控制變量i增1*/}printf("sum=%d\n",sum);}程序執(zhí)行結(jié)果為:sum=50503.7.2dowhile循環(huán)語(yǔ)句1格式do語(yǔ)句;while(表達(dá)式);其中語(yǔ)句是循環(huán)體,表達(dá)式是循環(huán)條件。2執(zhí)行過(guò)程先執(zhí)行循環(huán)體語(yǔ)句,再判別表達(dá)式的值,若為真(非0)則返回重復(fù)執(zhí)行循環(huán)體語(yǔ)句,如此反復(fù),直到表達(dá)式為假終止循環(huán)。執(zhí)行過(guò)程如圖所示。3使用說(shuō)明do-while語(yǔ)句和while語(yǔ)句的區(qū)別在于do-while是先執(zhí)行后判斷,因此do-while至少要執(zhí)行一次循環(huán)體。而while是先判斷后執(zhí)行,如果條件不滿足,則一次循環(huán)體語(yǔ)句也不執(zhí)行。(2)在if語(yǔ)句、while語(yǔ)句中,表達(dá)式后面都不能加分號(hào),而在do-while語(yǔ)句的表達(dá)式后面則必須加分號(hào)。(3)do和while之間的循環(huán)體由多個(gè)語(yǔ)句組成時(shí),必須用{}括起來(lái)組成一個(gè)復(fù)合語(yǔ)句。(4)編程時(shí)do-while語(yǔ)句和while語(yǔ)句一般可以相互轉(zhuǎn)換。(5)循環(huán)之前要為有關(guān)變量賦初值。

例如:利用do-while語(yǔ)句計(jì)算1+2+3+…100的和。main(){inti=1,sum=0; /*初始化循環(huán)控制變量i和累計(jì)器sum*/do{sum+=i; /*實(shí)現(xiàn)累加*/i++; /*循環(huán)控制變量i增1*/}while(i<=100);/*循環(huán)繼續(xù)條件:i<=100*/printf("sum=%d\n",sum);}

3.7.3for循環(huán)語(yǔ)句for語(yǔ)句是C語(yǔ)言所提供的功能更強(qiáng),使用更廣泛的一種循環(huán)語(yǔ)句。1格式for(表達(dá)式1;表達(dá)式2;表達(dá)3)語(yǔ)句;其中:“語(yǔ)句”即為循環(huán)體語(yǔ)句。(1)先計(jì)算表達(dá)式1的值。(2)再計(jì)算表達(dá)式2的值,若值為真(非0)則執(zhí)行循環(huán)體語(yǔ)句,否則結(jié)束循環(huán),執(zhí)行for語(yǔ)句的后繼語(yǔ)句。(3)然后再計(jì)算表達(dá)式3的值,轉(zhuǎn)回第2步繼續(xù)執(zhí)行。例如:利用for語(yǔ)句來(lái)計(jì)算1+2+3+…100的和。

main(){inti=1,sum=0;for(;i<=100;i++)sum+=i;printf("sum=%d\n",sum);}3使用說(shuō)明for語(yǔ)句最常用的格式是:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量的增值)語(yǔ)句;如果在for語(yǔ)句外(即for語(yǔ)句出現(xiàn)前)給循環(huán)變量賦初值,可省略表達(dá)式1。表達(dá)式2一般為關(guān)系表達(dá)式或邏輯表達(dá)式。表達(dá)式3通??捎脕?lái)修改循環(huán)變量的值,一般是賦值語(yǔ)句。for語(yǔ)句中的各表達(dá)式都可省略,但分號(hào)間隔符不能少。循環(huán)體可以是空語(yǔ)句,但空語(yǔ)句后的分號(hào)不可少。

這三個(gè)表達(dá)式都可以是逗號(hào)表達(dá)式,即每個(gè)表達(dá)式都可由多個(gè)表達(dá)式組成?!纠?-22】求1、1、2、3、5、8、13、...Fibonacci數(shù)列的前20個(gè)數(shù)。#include"stdio.h"main(){longf1=1,f2=1,fn;/*定義并初始化數(shù)列的前2個(gè)數(shù)*/inti,n;printf("\n%20ld%20ld",f1,f2); /*輸出前2個(gè)Fibonacci數(shù)*/for(i=3;i<=20;i++){fn=f1+f2;/*計(jì)算下1個(gè)Fibonacci數(shù)*/f1=f2;f2=fn;printf("%20ld",fn);}}也可以在循環(huán)體內(nèi)每次產(chǎn)生兩個(gè)Fibonacci數(shù),程序修改如下:main(){longintf1=1,f2=1; /*定義并初始化數(shù)列的前2個(gè)數(shù)*/inti=1; /*定義并初始化循環(huán)控制變量i*/for(;i<=10;i++) /*每組2個(gè)數(shù),20組40個(gè)數(shù)*/{printf("%15ld%15ld",f1,f2);/*輸出當(dāng)前的2個(gè)數(shù)*/if(i%2==0)printf("\n"); /*輸出2次(4個(gè)數(shù))后換行*/f1=f1+f2;f2=f2+f1; /*計(jì)算2個(gè)新數(shù)*/}}4幾種循環(huán)語(yǔ)句的比較(1)for循環(huán)主要用于循環(huán)變量初值、步長(zhǎng)、增量以及循環(huán)次數(shù)確定的循環(huán)。(2)while或do-while循環(huán)主要用于循環(huán)次數(shù)及判斷條件要在循環(huán)執(zhí)行過(guò)程中才能確定的循環(huán)。(3)用while和do-while循環(huán)時(shí),循環(huán)變量的初始化應(yīng)在while和do-while語(yǔ)句之前完成。for循環(huán)中,循環(huán)變量的初始化可在表達(dá)式1中完成,也可放于循環(huán)之前。(4)while和do-while循環(huán)可以互相轉(zhuǎn)換。for循環(huán)也可以轉(zhuǎn)換為while和do-while循環(huán),但是while和do-while循環(huán)倒不一定能轉(zhuǎn)換為for循環(huán)。(5)三種循環(huán)中for循環(huán)的功能最強(qiáng),凡是其它兩個(gè)循環(huán)能實(shí)現(xiàn)的,用for循環(huán)也能實(shí)現(xiàn)。3.7.4break語(yǔ)句和continue語(yǔ)句1break語(yǔ)句(1)格式break;(2)執(zhí)行過(guò)程break語(yǔ)句只能用在switch語(yǔ)句或循環(huán)語(yǔ)句中,其功能是跳出switch語(yǔ)句或跳出本層循環(huán),轉(zhuǎn)去執(zhí)行后繼語(yǔ)句。使用break語(yǔ)句可以使循環(huán)語(yǔ)句有多個(gè)出口,在某些情況下使編程更加靈活、方便。2continue語(yǔ)句格式continue;(2)執(zhí)行過(guò)程continue語(yǔ)句只能用在循環(huán)體中,結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語(yǔ)句之后的語(yǔ)句,轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行。應(yīng)注意的是,本語(yǔ)句只結(jié)束本層本次的循環(huán),并不跳出循環(huán)?!纠?-23】break語(yǔ)句的應(yīng)用。main(){intsum,i;for(i=1,sum=0;;i++)/*省略了表達(dá)式2*/{sum=sum+i;if(i==100)break;/*利用if語(yǔ)句判斷循環(huán)是否結(jié)束*/}printf("sum=%d\n",sum);}程序執(zhí)行結(jié)果為:sum=5050【例3-24】輸出100以內(nèi)所有8的倍數(shù),要求輸出時(shí)每5個(gè)數(shù)占一行。main(){intn,i=0;for(n=8;n<=100;n++){if(n%8!=0)continue;printf("%10d",n);i++;if(i%5==0)printf("\n");}printf("\n");}3.7.5循環(huán)的嵌套當(dāng)循環(huán)體內(nèi)某語(yǔ)句又是循環(huán)語(yǔ)句時(shí),就構(gòu)成了循環(huán)的嵌套。內(nèi)嵌循環(huán)的循環(huán)體中還可以出現(xiàn)循環(huán)語(yǔ)句,這就構(gòu)成了多重循環(huán)。C語(yǔ)言中,for語(yǔ)句、while語(yǔ)句、do-while語(yǔ)句可以相互嵌套,構(gòu)成多重循環(huán)。例如:(1)for(;;)(3)while(){…{while()…{…}for(;;)…

溫馨提示

  • 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)論