C語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)_第1頁
C語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)_第2頁
C語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)_第3頁
C語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)_第4頁
C語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)第1頁/共39頁主要內(nèi)容7.1一維數(shù)組7.2二維數(shù)組7.3字符數(shù)組7.4數(shù)組在函數(shù)中的應(yīng)用7.5折半查找7.6數(shù)組元素排序7.7典型習題分析解答第2頁/共39頁

7.1一維數(shù)組

7.1.1一維數(shù)組的定義與初始化一維數(shù)組的定義

一維數(shù)組的定義格式為:類型說明符數(shù)組名[常量表達式];

說明:

(1)數(shù)組的類型指數(shù)組元素的取值類型。對于上例,即說明該數(shù)組a中的10個元素都是整型。(2)數(shù)組名必須是合法標識符,也就是說必須符合標識符的命名規(guī)則;(3)數(shù)組名不能與同一程序中的其它變量同名;(4)若用方括號中的整數(shù)n來表示數(shù)組元素的總數(shù),則數(shù)組的第一個元素的下標為0(稱為數(shù)組下標的下界),最后一個為n-1(稱為數(shù)組下標的上界)。對于上例,數(shù)組中含有10個元素,分別是:a[0],a[1],a[2],……,a[9]。(5)不能在方括號中用變量來表示元素的個數(shù)。

(6)允許在同一個說明中,說明相同類型的多個數(shù)組和多個變量。(7)可以使用在編譯預(yù)處理#define中定義的符號常量。第3頁/共39頁

一維數(shù)組的初始化

初始化賦值的一般形式為:

類型說明符數(shù)組名[常量表達式]={值,值……值};其中在{}中的各數(shù)據(jù)值即為各元素的初值,各值之間用逗號間隔。例如:inta[10]={0,1,2,3,4,5,6,7,8,9};說明:(1)可以只給部分元素賦初值。當{}中值的個數(shù)少于元素個數(shù)時,只給前面部分元素賦值。例如:inta[10]={0,1,2,3,4};表示只給a[0]~a[4]這5個元素賦值,而后5個元素自動賦0值。(2)能給元素逐個賦值,但不能給數(shù)組整體賦值。例如給十個元素全部賦1值,只能寫為:inta[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:inta[10]=1;(3)如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個數(shù)。例如:inta[5]={1,2,3,4,5};可寫為:inta[]={1,2,3,4,5};第4頁/共39頁7.1.2一維數(shù)組元素的引用數(shù)組元素引用的一般形式為:

數(shù)組名[下標]其中的下標只能為整型常量或整型表達式。如果為小數(shù)時,C編譯將自動取整。例如,a[6],b[i+j],b[i++]都是合法的數(shù)組元素。數(shù)組元素通常也稱為下標變量。必須先定義數(shù)組,才能使用下標變量。在C語言中只能逐個地使用下標變量,而不能一次引用整個數(shù)組。例如,單獨使用一個下標變量:

inta[10];a[7]=6;第5頁/共39頁7.1.3一維數(shù)組元素的賦值數(shù)組定義之后,如果不對其進行初始化,則其值可通過賦值語句獲或者可從鍵盤、文件等讀取獲得。現(xiàn)以從鍵盤接收數(shù)據(jù)為例:【例7.1】從鍵盤輸入十個數(shù)據(jù)給數(shù)組a賦值,然后把數(shù)組a的值復制到數(shù)組b中。

main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)b[i]=a[i];for(i=0;i<10;i++)printf("%d",b[i]);}第6頁/共39頁7.1.4順序查找

順序查找即為從數(shù)組的一端開始,逐個進行數(shù)組元素的值和給定值x的比較,若某個元素的值和給定值x相等,則查找成功;反之,若直至最后一個數(shù)組元素,其值和給定值x都不相等,則表明數(shù)組中沒有所查的數(shù)據(jù),查找不成功。【例7.2】已知存放在a數(shù)組中的數(shù)據(jù)兩兩不相同,在a數(shù)組中查找和x值相同的元素的位置。若找到,輸出該值和其在a數(shù)組中的位置;若沒找到,輸出相應(yīng)的提示信息。#defineN100main(){inta[N],x,n,i,flag=-1;printf("Inputn:\n");scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("Inputx:\n");scanf("%d",&x);第7頁/共39頁for(i=0;i<n;i++)if(a[i]==x){flag=i;break;}if(flag!=-1)printf("%dindexis%d",x,flag+1);elseprintf("%ddonntbefounded!\n",x);對于上例,也可以通過設(shè)監(jiān)視哨的方法對數(shù)組倒著查找,代碼見課本。第8頁/共39頁

7.2二維數(shù)組

二維數(shù)組:數(shù)組元素是雙下標變量的數(shù)組。二維數(shù)組的數(shù)組素可以看作是排列為行列的形式(矩陣)。二維數(shù)組也用統(tǒng)一的數(shù)組名標識,第一個下標表示行,第二個下標表示列。下標從0開始。7.2.1二維數(shù)組的定義與初始化二維數(shù)組的定義二維數(shù)組定義的一般形式是:

類型說明符數(shù)組名[常量表達式1][常量表達式2];其中常量表達式1表示第一維下標的長度,常量表達式2表示第二維下標的長度。例如:inta[3][4];說明了一個三行四列的數(shù)組,數(shù)組名為a,其下標變量的類型為整型。該數(shù)組的下標變量共有3×4個,即:a[0][0],a[0][1],a[0][2],a[0][3]a[1][0],a[1][1],a[1][2],a[1][3]a[2][0],a[2][1],a[2][2],a[2][3]如何在一維存儲器中存放二維數(shù)組,可有兩種方式:一種是按行排列,即放完一行之后順次放入第二行。另一種是按列排列,即放完一列之后順次放入第二列。在C語言中,二維數(shù)組是按行排列的。第9頁/共39頁二維數(shù)組的初始化二維數(shù)組可按行分段賦值,也可按行連續(xù)賦值。二維數(shù)組的初始化的幾種常見形式:(1)分行給二維數(shù)組所有元素賦初值例如:inta[2][4]={{1,2,3,4},{5,6,7,8}};(2)不分行給二維數(shù)組所有元素賦初值例如:inta[2][4]={1,2,3,4,5,6,7,8};(3)給二維數(shù)組所有元素賦初值,二維數(shù)組第一維的長度可以省略(編譯程序可計算出長度)例如:inta[][4]={1,2,3,4,5,6,7,8};或:inta[][4]={{1,2,3,4},{5,6,7,8}};(4)對部分元素賦初值例如:inta[2][4]={{1,2},{5}};

第10頁/共39頁7.2.2二維數(shù)組元素的引用定義了二維數(shù)組后,就可以引用該數(shù)組的所有元素。引用形式:數(shù)組名[下標1][下標2]例如:a[1][2]表示a數(shù)組第二行第三列的元素。下標變量和數(shù)組說明在形式中有些相似,但這兩者具有完全不同的含義。數(shù)組說明的方括號中給出的是某一維的長度,即可取下標的最大值;而數(shù)組元素中的下標是該元素在數(shù)組中的位置標識。第11頁/共39頁7.2.3二維數(shù)組元素的賦值同一維數(shù)組一樣,若二維數(shù)組定義之后,不對其進行初始化,則其值可通過賦值語句獲得,或者可從鍵盤、文件等讀取獲得?,F(xiàn)以從鍵盤接收數(shù)據(jù)為例:【例7.3】通過鍵盤給3×3的二維數(shù)組輸入數(shù)據(jù),第一行賦1,2,3,第二行賦10,20,30,第三行輸入100,200,300,然后輸出此二維數(shù)組。main(){inta[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++) printf("%4d",a[i][j]);printf("\n");}}第12頁/共39頁7.3字符數(shù)組用來存放字符型數(shù)據(jù)的數(shù)組稱為字符數(shù)組。字符數(shù)組中的一個元素存放一個字符。

7.3.1字符數(shù)組的定義、初始化字符數(shù)組的定義與前面介紹的數(shù)值數(shù)組定義相同。其定義格式為:

char數(shù)組名[下標總數(shù)];例如:charc[10]={‘c’,‘’,‘p’,‘r’,‘o’,‘g’,‘r’,‘a(chǎn)’,’m’};賦值后各元素的值為:c[0]的值為‘c’,c[1]的值為‘’,c[2]的值為‘p’,……,c[8]的值為‘m’,其中c[9]未賦值,系統(tǒng)自動賦予’\0’值。當對全體元素賦初值時也可以省去長度說明。例如:charc[]={‘c’,‘’,‘p’,‘r’,‘o’,‘g’,‘r’,‘a(chǎn)’,’m’};這時C數(shù)組的長度自動定為9。另外,我們還可以將一個字符串賦給一個字符數(shù)組。字符串,是指若干有效字符的序列。如:”a”,”abc”。注意:由于系統(tǒng)在存儲字符串常量時,會在串尾自動加上1個結(jié)束標志,所以無需人為地再加1個。第13頁/共39頁7.3.2字符串處理函數(shù)

字符串標準函數(shù)的原型在頭文件string.h中。1.輸出字符串──puts()函數(shù)(1)調(diào)用方式:puts(字符數(shù)組)(2)函數(shù)功能:把字符數(shù)組中所存放的字符串,輸出到標準輸出設(shè)備中去,并用‘\n’取代字符串的結(jié)束標志‘\0’。所以用puts()函數(shù)輸出字符串時,不要求另加換行符。(3)使用說明:①字符串中允許包含轉(zhuǎn)義字符,輸出時產(chǎn)生一個控制操作。②該函數(shù)一次只能輸出一個字符串,而printf()函數(shù)也能用來輸出字符串,且一次能輸出多個?!纠?.5】下列程序的輸出結(jié)果是:#include<stdio.h>main(){charc[]="BASIC\ndBASE";puts(c);}運行結(jié)果為:BASICdBASE第14頁/共39頁2.輸入字符串──gets()函數(shù)(1)調(diào)用方式:gets(字符數(shù)組)(2)函數(shù)功能:從標準輸入設(shè)備(stdin)──鍵盤上,讀取1個字符串(可以包含空格),并將其存儲到字符數(shù)組中去。(3)使用說明

1)gets()讀取的字符串,其長度沒有限制,編程者要保證字符數(shù)組有足夠大的空間,存放輸入的字符串。

2)該函數(shù)輸入的字符串中允許包含空格,而在scanf()函數(shù)中使用%s接收字符串時,空格做為字符串的結(jié)束標志?!纠?.6】#include<stdio.h>main(){charst[15];printf("inputstring:\n");gets(st);puts(st);}輸入:cprogram顯示:cprogram第15頁/共39頁3.字符串比較──strcmp()函數(shù)(1)調(diào)用方式:strcmp(字符串1,字符串2)其中“字符串”可以是串常量,也可以是1維字符數(shù)組。(2)函數(shù)功能:比較兩個字符串的大小。如果:字符串1=字符串2,函數(shù)返回值等于0;字符串1<字符串2,函數(shù)返回值負整數(shù);字符串1>字符串2,函數(shù)返回值正整數(shù)。(3)使用說明①如果一個字符串是另一個字符串從頭開始的子串,則母串為大。②不能使用關(guān)系運算符“==”來比較兩個字符串,只能用strcmp()函數(shù)來處理。【例7.7】#include<string.h>main(){intk;charst1[15],st2[]="CLanguage";printf("inputastring:\n");gets(st1);k=strcmp(st1,st2);if(k==0)printf("st1=st2\n");if(k>0)printf("st1>st2\n");if(k<0)printf("st1<st2\n");}第16頁/共39頁4.拷貝字符串──strcpy()函數(shù)(1)調(diào)用方式:strcpy(字符數(shù)組1,字符數(shù)組2)(2)函數(shù)功能:將“字符數(shù)組2”完整地復制到“字符數(shù)組1”中,字符數(shù)組中原有內(nèi)容被覆蓋。(3)使用說明:①字符數(shù)組必須定義得足夠大,以便容納復制過來的字符串。復制時,連同結(jié)束標志'\0'一起復制。②不能用賦值運算符“=”將一個字符串直接賦值給一個字符數(shù)組,只能用strcpy()函數(shù)來處理。【例7.8】#include<string.h>main(){charst1[15],st2[]="CLanguage";strcpy(st1,st2);puts(st1);printf("\n");}運行結(jié)果為:CLanguage第17頁/共39頁5.連接字符串──strcat()函數(shù)(1)調(diào)用方式:strcat(字符數(shù)組,字符串)(2)函數(shù)功能:把“字符串”連接到“字符數(shù)組”中的字符串尾端,并存儲于“字符數(shù)組”中?!白址麛?shù)組”中原來的結(jié)束標志,被“字符串”的第一個字符覆蓋,而“字符串”在操作中未被修改。(3)使用說明①由于沒有邊界檢查,編程者要注意保證“字符數(shù)組”定義得足夠大,以便容納連接后的目標字符串;否則,會因長度不夠而產(chǎn)生問題。②連接前兩個字符串都有結(jié)束標志'\0',連接后“字符數(shù)組”中存儲的字符串的結(jié)束標志'\0'被舍棄,只在目標串的最后保留一個'\0'。【例7.9】把初始化賦值的字符數(shù)組與動態(tài)賦值的字符串連接起來。#include<string.h>main(){charst1[30]="Mynameis";/*注意長度為30*/charst2[10];printf("Inputyourname:");gets(st2);strcat(st1,st2);puts(st1);}第18頁/共39頁6.求字符串長度──strlen()函數(shù)(len是length的縮寫)(1)調(diào)用方式:strlen(字符串)(2)函數(shù)功能:求字符串(常量或字符數(shù)組)的實際長度(不包含結(jié)束標志)。【例7.10】#include<string.h>main(){intk;charst[]="Clanguage";k=strlen(st);printf("Thelenthofthestringis%d\n",k);}運行結(jié)果為:Thelenthofthestringis10第19頁/共39頁7.4數(shù)組在函數(shù)中的應(yīng)用

數(shù)組可以作為函數(shù)的參數(shù)使用,進行數(shù)據(jù)傳送。數(shù)組用作函數(shù)參數(shù)有兩種形式:一種是把數(shù)組元素(下標變量)作為實參使用;另一種是把數(shù)組名作為函數(shù)的形參和實參使用。數(shù)組元素作函數(shù)實參數(shù)組元素就是下標變量,它與普通變量并無區(qū)別。因此它作為函數(shù)實參使用與普通變量是完全相同的,在發(fā)生函數(shù)調(diào)用時,把作為實參的數(shù)組元素的值傳送給形參,實現(xiàn)單向的值傳送?!纠?.11】編程實現(xiàn)對一數(shù)組中所有元素取絕對值.#include<math.h>main(){inta[5]={1,-5,4,-7,-4},i;for(i=0;i<5;i++)a[i]=f(a[i]);for(i=0;i<5;i++)printf("%4d",a[i]);}intf(intx){ if(x<0)return-x; elsereturnx;}第20頁/共39頁2、數(shù)組名作為函數(shù)參數(shù)

數(shù)組名就是數(shù)組的首地址,因此在數(shù)組名作函數(shù)參數(shù)時所進行的傳送是地址的傳送,所以要求形參必須是和實參類型相同的數(shù)組名,對于形參必須有明確的數(shù)組說明。在實參與形參進行“值傳遞”時,是把實參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實在的數(shù)組。實際上是形參數(shù)組和實參數(shù)組為同一數(shù)組,共同擁有一段內(nèi)存空間?!纠?.12】數(shù)組a中存放了一個學生5門課程的成績,求平均成績。floataver(floata[5]){inti;floatav,s=a[0];for(i=1;i<5;i++)s=s+a[i];av=s/5;returnav;}voidmain(){floatsco[5],av;inti;printf("\ninput5scores:\n");for(i=0;i<5;i++)scanf("%f",&sco[i]);av=aver(sco);printf("averagescoreis%5.2f",av);}第21頁/共39頁7.5折半查找折半查找又稱二分查找,是針對有序表進行查找的簡單、有效而又較常用的方法。所謂有序表,即要求表中的各元素按關(guān)鍵字的值有序(升序或降序)存放。折半查找不像順序查找那樣,從第一個記錄開始逐個順序搜索,其基本思想是:首先選取表中間位置的記錄,將其關(guān)鍵字與給定關(guān)鍵字k進行比較,若相等,則查找成功;否則,若k值比該關(guān)鍵字值大,則要找的元素一定在表的后半部分(或稱右子表),則繼續(xù)對右子表進行折半查找;若k值比該關(guān)鍵字值小,則要找的元素一定在表的前半部分(左子表),同樣應(yīng)繼續(xù)對左子表進行折半查找。每進行一次比較,要么找到要查找的元素,要么將查找的范圍縮小一半。如此遞推,直到查找成功或把要查找的范圍縮小為空(查找失?。?。設(shè)表的長度為n,表的被查找部分的頭為low,尾為high,初始時,low=1,high=n,k為關(guān)鍵字的值。

第22頁/共39頁【例7.16】已知如下11個數(shù)據(jù)元素的有序表(關(guān)鍵字即為數(shù)據(jù)元素的值):

現(xiàn)要查找關(guān)鍵字為21和85的數(shù)據(jù)元素。

假設(shè)指針low和high分別指示待查元素所在范圍的下界和上界,指針mid指示區(qū)間的中間位置,即mid=(low+high)/2。在此例中,low和high的初值分別為1和11,即[1,11]為待查范圍。

第23頁/共39頁先看給定值key=21的查找過程:

a[mid]與給定值key相比較,因為a[mid]>key,說明待查元素若存在,必在區(qū)間[low,mid-1]的范圍內(nèi),則令指針high指向第mid-1個元素,重新求得mid=(1+5)/2=3

仍以a[mid]和key相比,因為a[mid]<key,說明待查元素若存在,必在[mid+1,high]范圍內(nèi),則令指針low指向第mid+1個元素,求得mid的新值為4,比較a[mid]和key,因為相等,則查找成功,所查元素在表中序號等于指針mid的值。

第24頁/共39頁源程序:#defineN50intbinsrch(intr[],intn,intk){intmid,low,high,find;low=1;high=n;find=0;/*置區(qū)間初值*/while((low<=high)&&(!find)){mid=(low+high)/2;/*求中點*/if(k==r[mid])find=1;/*已查到*/elseif(k>r[mid])low=mid+1;/*在后半?yún)^(qū)間查找*/elsehigh=mid-1;/*在前半?yún)^(qū)間查找*/}if(find)return(mid);/*查找成功,返回找到元素的位置*/elsereturn(0);/*查找不成功,返回0標記*/}第25頁/共39頁main(){inta[N],n,i,k,f;printf("請輸入數(shù)據(jù)元素的個數(shù):\n");scanf("%d",&n);printf("請輸入數(shù)據(jù)元素:\n");for(i=1;i<=n;i++)scanf("%d",&a[i]);printf("請輸入要查找的數(shù)據(jù):\n");scanf("%d",&k);f=binsrch(a,n,k);if(f==0)printf("值為%d的元素不存在。\n",k);elseprintf("%d在數(shù)組中的位置為%d",k,f);}第26頁/共39頁7.6數(shù)組元素排序排序(Sorting)是計算機程序設(shè)計中的一種重要操作,它的功能是將一個數(shù)據(jù)元素(或記錄)的任意序列,重新排列成一個按關(guān)鍵字有序的序列.7.6.1插入排序線性插入排序的基本思想是:第1遍,將初始文件中的第1個記錄看作有序的序列,然后從第2個記錄開始逐個插入前邊的有序序列,并使插入后,前邊仍有序。第i趟直接插入排序的操作為:在含有i-1個記錄的有序子序列r[1..i-1]中插入一個記錄r[i]后,變成含有i個記錄有序子序列r[1..i]。為了在查找插入位置的過程中避免數(shù)組下標出界,在r[0]處設(shè)置監(jiān)視哨,將r[i]拷貝到r[0]處,當從i-1起往前搜索的過程中,可以同時后移記錄。直至整個數(shù)組變成有序為止。整個排序過程共進行n-1趟插入。第27頁/共39頁【例7.17】將數(shù)組(43,21,89,15,43,28)中的元素進行升序排列。第28頁/共39頁其源程序為:#defineN50voidinsertsort(intr[],intn){inti,j; for(i=2;i<=n;i++)/*共進行n-1趟*/{r[0]=r[i];/*r[0]為監(jiān)視哨,也可做下邊循環(huán)結(jié)束標志*/j=i-1;while(r[j]>r[0]){ r[j+1]=r[j];j--;}r[j+1]=r[0];}}第29頁/共39頁main(){inta[N],n,i;printf("請輸入數(shù)據(jù)元素的個數(shù):\n");scanf("%d",&n);printf("請輸入數(shù)據(jù)元素:\n");for(i=1;i<=n;i++)scanf("%d",&a[i]);insertsort(a,n);printf("升序排列的結(jié)果為:\n");for(i=1;i<=n;i++)printf("%5d",a[i]);}第30頁/共39頁7.6.2折半插入排序

在線性插入排序中,我們采用順序查找法來確定記錄的插入位置。如果(R1,R2,…,Ri-1)是有序子文件,我們可以采用折半查找法來確定R1的插入位置,這種排序稱為折半插入排序。【例7.18】將數(shù)組(43,21,89,15,43,28)中的元素進行升序排列。#defineN50voidbinarysort(intr[],intn)/*按關(guān)鍵字遞增次序?qū)[1],r[2],……,r[n]進行折半插入排序*/{inti,j,l,h,mid; for(i=2;i<=n;i++){r[0]=r[i]; l=1; h=i-1;while(l<=h){mid=(l+h)/2;if(r[0]<r[mid])h=mid-1;elsel=mid+1;}for(j=i-1;j>=l;j--)r[j+1]=r[j];r[l]=r[0];}}第31頁/共39頁main(){inta[N],n,i;printf("請輸入數(shù)據(jù)元素的個數(shù):\n");scanf("%d",&n);printf("請輸入數(shù)據(jù)元素:\n");for(i=1;i<=n;i++)scanf("%d",&a[i]);binarysort(a,n);printf("升序排列的結(jié)果為:\n");for(i=1;i<=n;i++)printf("%5d",a[i]);}第32頁/共39頁7.7典型習題分析解答

【例7.19】若有說明:inta[3][4],則對數(shù)組a元素非法引用的是。A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]分析:本題考察對于二維數(shù)組元素引用的原則。對以上述定義的二維數(shù)組,其最大下標的元素對應(yīng):a[2][3].答案:D【例7.20】若二維數(shù)組有m列,則在a[i][j]之前的元素的個數(shù)為A.j*m+iB.i*m+jC.i*m+j-1D.j*m+i-1分析:在C語言中,由于二維數(shù)組在內(nèi)存中是按照行優(yōu)先的順序存儲的,且下標的起始值為0,因此在a[i][j]之前有i*m+j個。答案:B【例7.21】以下選項中合法的數(shù)組說明語句是A.ina[]=”string”B.inta[5]={0,1,2,3,4,5}C.chara=”string”D.chara[5]={0,1,2,3,4,5}分析:在C語言中,字符變量中存放的是與字符對應(yīng)的ASCII碼值,數(shù)值0,1,2,3,4,5對應(yīng)的字符雖然是不可顯示的字符,但是這些都可以作為控制字符。此時,數(shù)組的大小有后面的初始化數(shù)據(jù)的數(shù)量決定。答案:D第33頁/共39頁【例7.22】以下程序的輸出結(jié)果是:

voidreverse(inta[],intn)

{inti,t;for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}A)22B)10C)34D)分析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個成員進行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結(jié)構(gòu),將b[6],b[7]...b[9]的值相加,結(jié)果為22。答案:A第34頁/共39頁【例7.23】當運行以下程序時,從鍵盤輸入;AhaMA(空格)Aha<CR>,則下面程序的運行結(jié)果是#include<stdio.h>main(){chars[80],c=′a′;inti=0;scanf("%s",s);while(s[i]!=′\n′){if

溫馨提示

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

評論

0/150

提交評論