二級(jí)C語言上機(jī)填空題技巧總結(jié)_第1頁(yè)
二級(jí)C語言上機(jī)填空題技巧總結(jié)_第2頁(yè)
二級(jí)C語言上機(jī)填空題技巧總結(jié)_第3頁(yè)
二級(jí)C語言上機(jī)填空題技巧總結(jié)_第4頁(yè)
二級(jí)C語言上機(jī)填空題技巧總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、上機(jī)填空題技巧總結(jié)一、 填空題之方法1. 上機(jī)填空題占30分,一般有3個(gè)空需要填寫,每個(gè)空為10分;2. 填空題做題之前必須弄清題目含義,抓住關(guān)鍵字,例如:要求對(duì)數(shù)組進(jìn)行從小到大排序,則將會(huì)出現(xiàn)大于符號(hào),如果是從大到小排序則出現(xiàn)小于符號(hào);3. 填空題中出現(xiàn)頻率最高的就是函數(shù)的調(diào)用、函數(shù)的首部、函數(shù)的返回值等和函數(shù)相關(guān)的問題,因此必須牢牢掌握祝函數(shù)的基本特征;4. 填空題中有的“空”比較難,考生除了掌握必須的C語言知識(shí)之外,還需要很好的邏輯思路,如果一個(gè)空將花很多時(shí)間來解決,那么建議使用“死記硬背”的方法來縮短復(fù)習(xí)時(shí)間;5. 上機(jī)題庫(kù)中100題有部分題目是重復(fù)的或是相似的題目很多,同學(xué)們要使用比

2、對(duì)的方法盡量去理解;6. 多練習(xí),多思考,多總結(jié)二、 填空題與結(jié)構(gòu)體相關(guān)1. 結(jié)構(gòu)體成員引用:上機(jī)題庫(kù)P18第9題(和92題一致),P27第23題(和51題一樣)讀清楚題目要求:(1) 要求將形參a所指結(jié)構(gòu)體變量的數(shù)據(jù)賦值給函數(shù)中的結(jié)構(gòu)體變量b(2) 從例如可以看出來:結(jié)構(gòu)體中的學(xué)號(hào)和變?yōu)榱?002和“LiSi”,但是3門課成績(jī)沒有變化#include <stdio.h>#include <string.h>struct student long sno; char name10; float score3;void fun(struct student a) stru

3、ct student b; int i;/*found*/ b = _1_;à題目要求將形參a的值賦值給結(jié)構(gòu)體變量b,因此填:a b.sno = 10002;à學(xué)號(hào)變?yōu)榱?0002/*found*/ strcpy(_2_, "LiSi");à姓名要變?yōu)椤盠iSi”,則要引用b中的name成員 printf("nThe data after modified :n");/*講解是一句帶過不用多講*/ printf("nNo: %ld Name: %snScores: ",b.sno, ); /*

4、講解是一句帶過不用多講*/*found*/ for (i=0; i<3; i+) printf("%6.2f ", b._3_);à分析:這個(gè)是一個(gè)循環(huán)語句,執(zhí)行3次循環(huán),printf("%6.2f ", b._3_)要求輸出是一個(gè)實(shí)型數(shù)據(jù)的成員,因此可以得知是score成員,因?yàn)閟core是一個(gè)數(shù)組,因此填:b.scorei,當(dāng)i變化就可以取出第一門、第二門、第三門課的成績(jī) printf("n");main() struct student s=10001,"ZhangSan", 95, 80,

5、88; int i; printf("nnThe original data :n"); printf("nNo: %ld Name: %snScores: ",s.sno, ); for (i=0; i<3; i+) printf("%6.2f ", s.scorei); printf("n"); fun(s);23題:(1) 從例如中可以看出:變化的是結(jié)構(gòu)體中的學(xué)號(hào)和#include <stdio.h>#include <string.h>struct student

6、long sno; char name10; float score3;void fun( struct student *b) int i;/*found*/ b_1_ = 10004;à題目中t的學(xué)號(hào)變化為了10004,因此填寫:b->sno,不能填寫b.sno,因?yàn)閎是一個(gè)指針/*found*/ strcpy(b_2_, "LiJie");àt的姓名變?yōu)榱恕盠iJie”,因此填寫:b->namemain() struct student t=10002,"ZhangQi", 93, 85, 87; int i; pr

7、intf("nnThe original data :n"); printf("nNo: %ld Name: %snScores: ",t.sno, ); for (i=0; i<3; i+) printf("%6.2f ", t.scorei); printf("n");/*found*/ fun(_3_);à此處為函數(shù)調(diào)用,根據(jù)形參的類型來判定實(shí)參,形參struct student *b為結(jié)構(gòu)體指針,聯(lián)系main函數(shù)定義部分只有struct student t和b的類型相同,因此可知

8、需要填的是:&t printf("nThe data after modified :n"); printf("nNo: %ld Name: %snScores: ",t.sno, ); for (i=0; i<3; i+) printf("%6.2f ", t.scorei); printf("n");2. 函數(shù)調(diào)用and結(jié)構(gòu)體:上機(jī)題庫(kù)P22第16題(和78、82題一樣)重點(diǎn)注意:(1)把a(bǔ)中地址作為函數(shù)返回值返回函數(shù)(2)觀察可知a中的學(xué)號(hào)、邊為了10002和“zhangSan”,每

9、門課的成績(jī)?cè)黾恿?分#include <stdio.h>#include <string.h>struct student long sno; char name10; float score3;/*found*/_1_ fun(struct student *a)à根據(jù)函數(shù)調(diào)用t = fun(&s);可知函數(shù)返回類型和t的類型相同,struct student s=10001,"ZhangSan", 95, 80, 88, *t;可知t的類型為struct student * int i; a->sno = 10002; s

10、trcpy(a->name, "LiSi");/*found*/ for (i=0; i<3; i+) _2_ += 1;à題目要求將每門課成績(jī)?cè)黾?分,因此填為:a->scorei,不能為a.scorei或是a.score/*found*/ return _3_ ;à題目要求返回a的地址,a本身就是一個(gè)指針,因此填入a即可main() struct student s=10001,"ZhangSan", 95, 80, 88, *t; int i; printf("nnThe original data

11、:n"); printf("nNo: %ld Name: %snScores: ",s.sno, ); for (i=0; i<3; i+) printf("%6.2f ", s.scorei); printf("n"); t = fun(&s); printf("nThe data after modified :n"); printf("nNo: %ld Name: %snScores: ",t->sno, t->name); for (i=0

12、; i<3; i+) printf("%6.2f ", t->scorei); printf("n");3. 結(jié)構(gòu)體和排序:上機(jī)題庫(kù)P14第2題 重點(diǎn)注意:(1)排序的格式:紅色部分為考試中的重點(diǎn),必須記住從小到大排序:for(i=0;i<n-1;i+)for(j=i+1;j<n;j+) if(ai>aj) t=ai;ai=aj;aj =t;從大到小排序:for(i=0;i<n-1;i+)for(j=i+1;j<n;j+) if(ai<aj) t=ai;ai=aj;aj =t; void fun(struc

13、t student a, int n)/*found*/ _1_ t;à此處要求填入t的類型,可以從t = ai;中得知t和a數(shù)組的類型必須一致,void fun(struct student a, int n)中得知a為結(jié)構(gòu)體類型,因此填寫:struct student int i, j;/*found*/ for (i=0; i<_2_; i+)à根據(jù)排序的格式填空,因此記住是關(guān)鍵 for (j=i+1; j<n; j+)/*found*/ if (strcmp(_3_) > 0)à按照姓名字典順序從小到大排序,因此:strcmp(ai.na

14、me,),此處需要特別注意 t = ai; ai = aj; aj = t; main() struct student s4=10001,"ZhangSan", 95, 80, 88,10002,"LiSi", 85, 70, 78, 10003,"CaoKai", 75, 60, 88, 10004,"FangFang", 90, 82, 87; int i, j; printf("nnThe original data :nn"); for (j=0; j<4; j+)

15、 printf("nNo: %ld Name: %-8s Scores: ",sj.sno, ); for (i=0; i<3; i+) printf("%6.2f ", sj.scorei); printf("n"); fun(s, 4); printf("nnThe data after sorting :nn"); for (j=0; j<4; j+) printf("nNo: %ld Name: %-8s Scores: ",sj.sno, );

16、for (i=0; i<3; i+) printf("%6.2f ", sj.scorei); printf("n"); 三、 填空題與鏈表相關(guān)1. 帶頭結(jié)點(diǎn)的鏈表:p=h->next,上機(jī)題庫(kù)P21第15題考點(diǎn)分析:(1)帶頭結(jié)點(diǎn)鏈表的表現(xiàn)形式:headabcABCNULL帶頭結(jié)點(diǎn)的鏈表,頭結(jié)點(diǎn)head不存放任何的數(shù)據(jù),從頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)開始存放數(shù)據(jù),因此考試中如果出現(xiàn) p = _1_ ;則填入p=h->next(2)鏈表數(shù)據(jù)排序?qū)?shù)組元素從小到大排序:for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)

17、 if(ai>aj) t=ai;ai=aj;aj =t;對(duì)鏈表元素進(jìn)行從小到大排序:while (p) /*相當(dāng)于數(shù)組排序中的for(i=0;i<n-1;)*/ q = p->next;/*相當(dāng)于j=i+1*/ while (q) /*相當(dāng)于for(;j<n;) if (p->data > q->data) /*相當(dāng)于if(ai>aj)*/ t = p->data; p->data = q->data; q->data = t; /*如果ai>aj成立,則交換數(shù)據(jù)元素,讓數(shù)據(jù)變成從小到大排序*/ q = q->

18、next;/*相當(dāng)于q+*/ p = p->next;/*相當(dāng)于p+*/ 15題:#include <stdio.h>#include <stdlib.h>#define N 6typedef struct node int data; struct node *next; NODE;void fun(NODE *h) NODE *p, *q; int t;/*found*/ p = _1_ ;à鏈表為帶頭結(jié)點(diǎn),因此填寫:p=h->next while (p) /*found*/ q = _2_ ;à比較兩個(gè)鏈表中元素的大小,因此q=p-

19、>next,這樣q指向了p的下一位 while (q) /*found*/ if (p->data _3_ q->data)>從小到大排序,因此使用大于符號(hào),填寫:> t = p->data; p->data = q->data; q->data = t; q = q->next; p = p->next; main() NODE *head; int aN= 0, 10, 4, 2, 8, 6 ; head=creatlist(a); printf("nThe original list:n"); outl

20、ist(head); fun(head); printf("nThe list after sorting :n"); outlist(head);2. 不帶頭結(jié)點(diǎn)的鏈表:p=h(1) 不帶頭結(jié)點(diǎn)鏈表的表示形式:abcABCNULL不帶頭結(jié)點(diǎn)的鏈表沒有頭結(jié)點(diǎn),鏈表的第一個(gè)結(jié)點(diǎn)存儲(chǔ)的就是數(shù)據(jù),因此考試中如果出現(xiàn) p = _1_ ;則填入p=h(2) 講解P38第42題(和15題類似)void fun(NODE *h) NODE *p, *q; int t; p = h;à不帶頭結(jié)點(diǎn)的鏈表 while (p) /*found*/ q = _1_ ;àq指向p

21、的下一位,因此填入:q=p->next/*found*/ while (_2_)à判斷q有沒有到末尾,因此填入p或是p!=NULL if (p->data > q->data) t = p->data; p->data = q->data; q->data = t; q = q->next; /*found*/ p = _3_ ;à while (p)為循環(huán)條件,要構(gòu)成循環(huán)p就得自加或是自減,從循環(huán)體中得知沒有進(jìn)行p+之類的操作,因此此處填入:p=p->next或是p+ main() NODE *head; int

22、 aN= 0, 10, 4, 2, 8, 6 ; head=creatlist(a); printf("nThe original list:n"); outlist(head); fun(head);3. 鏈表的返回值:P43第50題(和43題類似)/*found*/_1_ fun(NODE *h)à根據(jù)函數(shù)調(diào)用head=fun(head);和 NODE *head; 知道函數(shù)的返回值為NODE * NODE *p, *q, *r; p = h; if (p = NULL)>如果p數(shù)據(jù)位空,則表示p中沒有任何的數(shù)據(jù),因此就無需再進(jìn)行逆置,故return N

23、ULL; return NULL; q = p->next; p->next = NULL;/*found*/ while (_2_)à此空判斷q有沒有為空,講解時(shí)候不容易理解,考生記住即可,填入:while(q)或是while(q!=NULL) r = q->next; q->next = p; p = q;/*found*/ q = _3_ ;à填入:q=r;次空理解起來較難,因此考生必須認(rèn)真記憶,老師無需多講 return p;main() NODE *head; int aN=2,4,6,8,10; head=creatlist(a); pr

24、intf("nThe original list:n"); outlist(head); head=fun(head); printf("nThe list after inverting :n"); outlist(head);四、 填空題與文件相關(guān)1. 文件指針定義(1) 文件定義的形式:FILE *fp;(課本P115)(2) 舉例:上機(jī)題庫(kù)P30第28題第一空/*found*/ _1_ fp;分析:在涉及文件類型的上機(jī)題目時(shí)fp指的就是文件指針,因此在前面填寫類型時(shí)候直接寫入:FILE *fp;(3) 類似題目:P32第32題第1個(gè)空、P67第8

25、8題第2個(gè)空2. 文件打開(1) 文件打開的格式:fopen(“文件名”,“打開方式”);(課本P115)(2) 舉例:P31第30題第1個(gè)空void fun(char *filename, STU n) FILE *fp;/*found*/fp = fopen(_1_, "rb+");分析:缺少了文件名,形參filename是實(shí)參傳過來的文件名,因此這里直接填入:fp = fopen(filename, "rb+");表示以“讀和寫”的方式打開一個(gè)二進(jìn)制文件filename(3) 類似的題目:P41第47題第1個(gè)空、P71第94題第1個(gè)空、P72第96

26、題第3空3. 文件關(guān)閉(1) 文件關(guān)閉的格式:fclose(文件指針);(課本P117)(2) 舉例:上機(jī)題庫(kù)P30第28題第2空fp = fopen("file1.txt", "w");/*第一次以寫的形式打開文件file1.txt*/ fprintf(fp, "%s %d %fn", s, a, f);/*found*/ _2_ ;fp = fopen("file1.txt", "r");/*第二次以讀的形式打開文件file1.txt*/分析:打開文件以后必須將它關(guān)閉,因此該空要填:fclo

27、se(fp);(3) 類似題目:P72第96題第2空4. 測(cè)試文件結(jié)束(1) 判斷文件結(jié)束的feof函數(shù)形式:feof(fp)(課本P118)(2) 經(jīng)常出現(xiàn)在while()的表達(dá)式里面,常見形式為:while(!feof(fp)測(cè)試指針fp有沒有結(jié)束(3) 舉例:上機(jī)題目P26第22題第1空FILE *fp; STU n; int i; fp = fopen(filename,"rb+");/*found*/ while (!_1_)分析:填寫feof(fp)測(cè)試fp指針又沒有結(jié)束(4) 類似題目:P32第32題第2個(gè)空、P61第80題第1個(gè)空、P71第94題第2個(gè)空5.

28、 設(shè)置文件位置函數(shù)(1) fseek設(shè)置文件位置:fseek(文件指針,位移量,移動(dòng)起始點(diǎn))(課本P118)(2) 考試一般考查的是移動(dòng)的起始點(diǎn):SEEK_SET表示文件開始,SEEK_CUR表示文件當(dāng)前位置,SEEK_END表示文件末尾(3) 舉例:上機(jī)題庫(kù)P31第30題第2個(gè)空/*found*/fseek(fp, -1L*sizeof(STU), _2_);分析:題目要求:重寫形參filename所指文件中最后一個(gè)學(xué)生的數(shù)據(jù),因此文件指針fp要指向最后的位置,則填入:fseek(fp, -1L*sizeof(STU), SEEK_END);(4) 類似題目:P26第22題第3空、P61第8

29、0第3空、6. 讀二進(jìn)制文件(1) fwrite(存入數(shù)據(jù)的指針,每一個(gè)數(shù)據(jù)占有的字節(jié),輸入數(shù)據(jù)的個(gè)數(shù),文件指針);(課本P120)(2) 舉例:P31第30題第3空void fun(char *filename, STU n) FILE *fp;/*found*/ fp = fopen(filename, "rb+");/*打開文件filename*/*found*/ fseek(fp, -1L*sizeof(STU), SEEK_END);/*定位到最后一個(gè)學(xué)生的位置*/*found*/ fwrite(_3_, sizeof(STU), 1, fp);/*將形參n新學(xué)生

30、的數(shù)據(jù)覆蓋最后一個(gè)學(xué)生的數(shù)據(jù),因?yàn)閒p已經(jīng)定位到了最后一個(gè)學(xué)生的位置*/ fclose(fp);分析:題目要求用新數(shù)據(jù)覆蓋最后一個(gè)學(xué)生的數(shù)據(jù),因此填入:fwrite(&n, sizeof(STU), 1, fp);填入的是地址,不能是:fwrite(n, sizeof(STU), 1, fp);(3) 類似題目:P41第47題第3空,P67第88題第3空、7. 寫二進(jìn)制文件函數(shù)(1) fread(讀出數(shù)據(jù)的指針,每一個(gè)數(shù)據(jù)占有的字節(jié),輸出數(shù)據(jù)的個(gè)數(shù),文件指針);(2) 上機(jī)考試填空題沒有出現(xiàn)需要填寫的空,考生作一般的了解8. fcanf函數(shù)數(shù)和fprintf函數(shù)(1) fscanf(文

31、件指針,格式控制字符串,輸入列表項(xiàng));(2) fprintf(文件指針,格式控制字符串,輸出列表項(xiàng));(3) fscanf函數(shù)和fprintf函數(shù)在上機(jī)編程題中詳細(xì)介紹,這里不作重點(diǎn)講解,了解即可五、 填空題與函數(shù)相關(guān)1. 函數(shù)調(diào)用:P13第1題#include <stdio.h>double f1(double x)定義了f1函數(shù),有一個(gè)形參 return x*x; double f2(double x, double y) 定義了f2函數(shù),有兩個(gè)形參 return x*y; /*found*/_1_ fun(int i, double x, double y)à根據(jù)函

32、數(shù)調(diào)用r = fun(1, x1, x2);可知函數(shù)返回值和r類型一致,double x1=5, x2=3, r;r為doule類型,則函數(shù)返回double if (i=1)/*found*/ return _2_(x);à此處為函數(shù)調(diào)用,實(shí)參數(shù)為1,根據(jù)實(shí)參和形成個(gè)數(shù)一致可知,調(diào)用的為f1函數(shù) else/*found*/ return _3_(x, y);à此處的實(shí)參數(shù)為2,則調(diào)用f2函數(shù) main() double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1, x2);printf("nx1=%f, x2

33、=%f, x1*x1+x1*x2=%fnn",x1, x2, r);六、 填空題與數(shù)組相關(guān)1. 類似題目:3、4、7、20、24、26、39、40、41、54、57、64、68、70、71、76、89、90、992. 一維數(shù)組中存在這樣一些類型:(1) 求一個(gè)數(shù)值數(shù)組中的所有值的平均值和把大于或者小于平均值的數(shù)輔導(dǎo)例外一個(gè)數(shù)組中。在計(jì)算機(jī)平均值時(shí),首先定義一個(gè)變量來存放平均分,平均分一般用av變量來代替,如果av已經(jīng)定義但是沒有賦初值,那么這個(gè)空填寫的容的為:av=0;(2) 求算平均值值時(shí)有兩種方法,第一種是算出總的分?jǐn)?shù),最后再除以總的個(gè)數(shù)即可,如算1到6之間的數(shù)的平均值,首先算出

34、1到6的和,其次用綜合除以總的個(gè)數(shù)6,即可以得到平均值;第二種方法是用每一個(gè)數(shù)除以6再把所有的和加起來。即1/6+2/6+3/6+4/6+5/6+6/6;所以在執(zhí)行的一維數(shù)組中算平均值時(shí)也是存在來中情況,如果在for語句的后面有av=av/N;則第二個(gè)空一般的填寫時(shí)av+=si;如果說沒有av=av/N;則填寫的是:av+=si/N;(3) 在后面的一個(gè)空的填寫的時(shí)候要注意變量的使用情況,如果變量使用了j和i,那么這一個(gè)空的填寫的容為:j+;(4) 如果一維數(shù)組中求的是把大于或者是小于平均值的數(shù)移動(dòng)到數(shù)組的首部的時(shí)候,這種題目的解答時(shí)這樣的,第一個(gè)空一般填寫的容為:j+;第二個(gè)空填寫的容是-1

35、;(5) 對(duì)數(shù)組進(jìn)行排序時(shí):如果是從大到小的排序的時(shí)候,用的是小于符號(hào),如果是從小到大排序時(shí)使用的是大于符號(hào)。3. 二維數(shù)組中的題目類型以及解決的技巧:(1) 二維數(shù)組的題目,填空的時(shí)候一般是填在函數(shù)調(diào)用,函數(shù)在調(diào)用時(shí)候?qū)懙膽?yīng)該是而為數(shù)組的名字;在定義函數(shù)的時(shí)候使用的是函數(shù)的類型和由m各元素組成一行的指針變量,假設(shè)二維數(shù)組的名字是ss,那么填寫的容是:(*ss)M;如果調(diào)用的是普通變量則填寫的容為:int n;(2) 二維數(shù)組遍歷時(shí),使用的是兩個(gè)循環(huán),使用的是循環(huán)的嵌套使用,第二個(gè)循環(huán)的使用的時(shí)候填寫的容為:j=0;(特殊的特殊處理)(3) 交換兩個(gè)變量的值的使用的格式為: t=a;a=b;b

36、=t; 記住交換變量的格式和順序。(4) 如果二維數(shù)組是字符串的題目的時(shí)候,要記住字符串中函數(shù)的使用的格式;即:strlen、strcmp、strcpy、sizeof、strcat的使用格式。注意里面的格式中使用的都是和指針。(5) 特殊的特殊處理。第7題的填空的容記住。七、 填空題與數(shù)學(xué)公式相關(guān)1. 解題方法:(1) 如果在函數(shù)中定義變量,但是沒有定義成靜態(tài)存儲(chǔ)變量,即變量前面沒有static,應(yīng)給變量賦初值,如果以后用到的是加減運(yùn)算,則賦初值為0或者是0.0;如果以后用到的是乘除運(yùn)算,則賦初值為1或者是1.0;(2) 循環(huán)條件的填空,分析表達(dá)式的規(guī)律,看表達(dá)式中的最后一項(xiàng)的值是否到了第m項(xiàng)

37、或者是第n項(xiàng),如果到了第m或者第n項(xiàng),則在循環(huán)中的第二個(gè)表達(dá)式中用到的是i<=m或者是i<=n;(3) 循環(huán)條件中如果用的是while語句,則循環(huán)變量的初值應(yīng)該在while的外面定義和賦初值,在循環(huán)語句中必須給變量自加或者是自減。如果沒有則一般填的是i+;(4) 看表達(dá)式中的每一項(xiàng)的運(yùn)算規(guī)則,按照運(yùn)算的規(guī)則把每一項(xiàng)中的n值替換為i,特殊情況例外。如果是表達(dá)式中用到的是間隔相加減的運(yùn)算時(shí),注意給中間變量賦初值為1或者是1.0;在后面的運(yùn)算中給變量乘以一個(gè)-1,以改變中間變量的符號(hào)。2. 解題分析:(1) 看清題目中要求的題意,題目要求做什么就只需考慮什么。(2) 找出題目中的表達(dá)式:

38、當(dāng)n=1時(shí),表達(dá)式變?yōu)?,?dāng)n=2時(shí),表達(dá)式為,n不斷的變化,得到的表達(dá)式值也不相同,題目中要求將n=1,n=2n=n的值進(jìn)行一個(gè)累加,最后得到一個(gè)結(jié)果賦值給變量s。(3) 通過以上的分析我們可以得到如下的信息:1) 需要一個(gè)變量來存儲(chǔ)結(jié)果值。對(duì)應(yīng)到程序中,我們使用s來表示,因?yàn)橛?jì)算的結(jié)果可能為小數(shù),因此將s定義為實(shí)型。2) 需要一個(gè)變量從1開始遞增到n,對(duì)應(yīng)到程序中用i表示。3) 需要用到循環(huán)的知識(shí)。4) 函數(shù)最后會(huì)將s的值進(jìn)行返回。double fun(int n) int i; double s, t;/*found*/ s=_1_;需要給s賦初始值,一般賦值為0或是1,這里面有規(guī)律,在填

39、空題中一定填入的是0。/*found*/ for(i=1; i<=_2_; i+)需要填入的是i變量的初始值和結(jié)束值,結(jié)束值一般是通過實(shí)參傳遞給形參的,因此很多時(shí)候填入形參名即可。 t=2.0*i; 將2*i的值賦值給變量t,因此遇到直接用t*t代替就行。/*found*/s=s+(2.0*i-1)*(2.0*i+1)/_3_; 需要在(2.0*i-1)*(2.0*i+1)/_3_;中填入適當(dāng)?shù)闹祦硌a(bǔ)充完整表達(dá)式,比較得知,(2.0*i-1)*(2.0*i+1)/_3_;缺少的是部分,上面分析過可以用t*t來代替,因此,第三個(gè)填入t*t就行! return s;3. 類似題目:6、13、

40、25、29、36、46、52、60、66、69、73、83、95八、 填空題與字符串相關(guān)1. 刪除字符串(1) 主要考查二維字符數(shù)組與字符串的操作(2) 舉例1:P18第8題(和65題一樣)#define N 5#define M 10int fun(char (*ss)M, int k)/*char (*ss)M行指針,下標(biāo)與二維數(shù)組x的列下標(biāo)相同,k通過實(shí)參傳遞過來后為7*/ int i,j=0,len;/*found*/ for(i=0; i< _1_ ; i+)/*根據(jù)len=strlen(ssi);可知i代表的是行,因此填入for(i=0; i< N ; i+)*/ le

41、n=strlen(ssi);/*found*/ if(len<= _2_);/*題目要求將串長(zhǎng)超過k的字符串刪除,換個(gè)說法就是將串小于等于k的字符串留下,因此該空填寫if(len<= k)*/*found*/ strcpy(ssj+,_3_);/*將ssi行的值賦值到sj中,該空出現(xiàn)頻率很高,因此要牢記。strcpy(ssj+,ssi)*/ return j;main() char xNM="Beijing","Shanghai","Tianjing","Nanjing","Wuhan&quo

42、t; /*定義了一個(gè)5行10列的二維字符數(shù)組x*/ int i,f; printf("nThe original stringnn"); for(i=0;i<N;i+)puts(xi); printf("n"); f=fun(x,7);/*將二維數(shù)組x傳給fun函數(shù)的第一個(gè)形參,將7傳遞給fun函數(shù)的第二個(gè)形參*/ printf("The string witch length is less than or equal to 7 :n"); for(i=0; i<f; i+) puts(xi);printf("

43、n");(3) 舉例2:P19第10題(和93題一樣)#define N 5#define M 10/*found*/void fun(char (*ss) _1_, int k)/*根據(jù)函數(shù)調(diào)用可知,char (*ss) _1_和實(shí)參二維數(shù)組x對(duì)應(yīng),因此必須與列下標(biāo)對(duì)應(yīng),故填寫char (*ss)M*/ int i=0 ;/*found*/ while(i< _2_) /* ssik可知,i處于行的位置,因此i要小于最大行長(zhǎng)度,因此填入:while(i<N)*/*found*/ssik=_3_; i+; /*將所有串長(zhǎng)超過K的字符串右邊的字符刪除,請(qǐng)看分析可知,如果在k位置加一個(gè)0則所有字符串的長(zhǎng)度為k,因此填寫:ssik=0;*/ABC00001234000abcdef0AB000001204000ab0def0main() char xNM="Create","Modify","Sort","skip","Delete" int i; printf("nThe original stringnn"); for(i=0;i<N;i+)puts(xi); printf("

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論