《計(jì)算概論》期終復(fù)習(xí)_第1頁(yè)
《計(jì)算概論》期終復(fù)習(xí)_第2頁(yè)
《計(jì)算概論》期終復(fù)習(xí)_第3頁(yè)
《計(jì)算概論》期終復(fù)習(xí)_第4頁(yè)
《計(jì)算概論》期終復(fù)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《計(jì)算概論》期終復(fù)習(xí)2010年12月28日知識(shí)點(diǎn)

總結(jié)預(yù)編譯聲明(宏定義、頭文件包含)自定義函數(shù)的聲明intmain(){……return0;}自定義函數(shù)的定義C程序的基本結(jié)構(gòu)主函數(shù)的定義考試時(shí)

可以復(fù)用

一個(gè)程序框架 #include<stdio.h> #include<math.h> #include<string.h> intmain(){

return0; }在此處插入你的代碼數(shù)據(jù)類型

輸入輸出

修飾符

%d int類型

%f float類型

%lf double類型

%c

字符類型

%s

字符串標(biāo)準(zhǔn)輸入輸出函數(shù)

使用標(biāo)準(zhǔn)輸出函數(shù):printf(…)標(biāo)準(zhǔn)輸入函數(shù):scanf(…)inta,b,c;scanf(“%d

%d”,&a,&b);c=a+b;printf(“%d

+%d=%d”,a,b,c);分支結(jié)構(gòu)分支結(jié)構(gòu)根據(jù)

分支判斷表達(dá)式

值(真或假),決定程序的后繼執(zhí)行路線單分支結(jié)構(gòu)

if(表達(dá)式){…//分支1

}任何類型為int,double或float的表達(dá)式如果

表達(dá)式

真,

則執(zhí)行

分支1

中的語(yǔ)句;否則,

跳過

分支1

中的語(yǔ)句。#include<stdio.h>intmain(){ inta; scanf(“%d”,&a); if(a<0){

a=-a; }

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

return0;}接收用戶輸入的一個(gè)整數(shù),輸出這個(gè)整數(shù)的絕對(duì)值。雙分支結(jié)構(gòu)

if(表達(dá)式){…//分支1

}else{…//分支2

}如果

表達(dá)式

真,

則執(zhí)行

分支1

中的語(yǔ)句;否則,

執(zhí)行

分支2

中的語(yǔ)句。多分支結(jié)構(gòu)

if(表達(dá)式1){…//分支1

}elseif(表達(dá)式2){…//分支2

}……{ ……}elseif(表達(dá)式n){…//分支n}如果

表達(dá)式1

真,

則執(zhí)行

分支1

中的語(yǔ)句;否則如果

表達(dá)式2

真,

則執(zhí)行

分支2

中的語(yǔ)句;……否則如果表達(dá)式n

真,

則執(zhí)行

分支n

中的語(yǔ)句。#include<stdio.h>intmain(){

inta; scanf(“%d”,&a);

if(a<0){

a=-a; }elseif(a>0){

a=a/2; }

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

return0;}#include<stdio.h>intmain(){

inta; scanf(“%d”,&a);

if(a<0){

a=-a; } if(a>0){

a=a/2; }

printf("%d\n",a); return0;}for循環(huán)語(yǔ)句

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

;表達(dá)式3){

循環(huán)體語(yǔ)句;}for語(yǔ)句

一般形式表達(dá)式1;表達(dá)式2循環(huán)體語(yǔ)句;表達(dá)式3;真假入口出口

#include<stdio.h> intmain(){

intsum,i;

for(i=1;i<=100;i++){ sum+=i; } printf(“%d”,sum);

return0; }for語(yǔ)句

示例數(shù)據(jù)輸入

一個(gè)模式數(shù)據(jù)輸入

一個(gè)模式關(guān)于輸入:

輸入的第一行

是一個(gè)整數(shù)n(n<100),

表示將要輸入的整數(shù)個(gè)數(shù);

其后n行,每行輸入一個(gè)整數(shù)。

#include<stdio.h> #defineN100 intmain(){

intn,data[N],i;

scanf(“%d”,&n);

for(i=0;i<n;i++){

scanf(“%d”,&(data[i])); ……

}

……

return0; }由兩個(gè)

整型操作數(shù)

構(gòu)成的

算術(shù)運(yùn)算表達(dá)式+ - * / %由兩個(gè)

整型操作數(shù)

構(gòu)成的算術(shù)運(yùn)算表達(dá)式假設(shè)a,b為兩個(gè)類型為int的表達(dá)式a+ba-ba*ba/b類型均為int11/33由兩個(gè)

整型操作數(shù)

構(gòu)成的算術(shù)運(yùn)算表達(dá)式:

取余運(yùn)算符號(hào)

%假設(shè)a,b為兩個(gè)類型為int的表達(dá)式a

%

b11%32括號(hào)的作用3+2*4(3+2)*4

不知道運(yùn)算符號(hào)優(yōu)先級(jí)別

時(shí),

請(qǐng)

使用括號(hào)

明確指定運(yùn)算的順序。a&&b||

ca&&

(b||

c)字符串

比較

賦值字符串

比較

不能使用

==str1

==

str2?“字符串比較”函數(shù)

intstrcmp(字符串A,字符串B);

當(dāng)

字符串A

字符串B相等時(shí),

該函數(shù)

返回0對(duì)于

字符串A

字符串B,

當(dāng)且僅當(dāng)

兩者的長(zhǎng)度相等,且

結(jié)尾字符‘\0’前的對(duì)應(yīng)字符均相等

時(shí)稱:這兩個(gè)字符串相等,字符串

賦值不能使用

=str1

=

str2;?“字符串復(fù)制”函數(shù)

strcpy(目標(biāo)字符串,源字符串);功能:把

源字符串

賦值給

目標(biāo)字符串intmain(){ charzfc_src[50],zfc_tgt[50]; gets(zfc_src); strcpy(zfc_tgt,zfc_src); printf(“%s\n”,zfc_tgt); return0;}關(guān)于

字符

一些問題如何

判斷:

一個(gè)字符變量的值

是否為空格字符?#include<stdio.h>intmain(){ charzf;

scanf(“%c”,&zf); if(zf==‘’){ printf(“thisisaspace\n”); }else{ printf(“thisisn’taspace\n”); }

return0;}如何

判斷:

一個(gè)字符變量的值

是否為小寫字母?小寫字母

包括:a,

b,

c,d,…,x,y,z#include<stdio.h>intmain(){ charzf;

scanf(“%c”,&zf); if(zf==‘a(chǎn)’||zf==‘b’||zf==‘c’||zf==‘d’||zf==‘e’

||zf==‘f’||zf==‘g’||zf==‘h’||zf==‘i’||zf==‘j’

||zf==‘k’||zf==‘l’||zf==‘m’||zf==‘n’||zf==‘o’

||zf==‘p’||zf==‘q’||zf==‘r’||zf==‘s’||zf==‘t’

||zf==‘u’||zf==‘v’||zf==‘w’||zf==‘x’||zf==‘y’

||zf==‘z’){ printf(“thisisalowerchar\n”); }else{ printf(“thisisn’talowerchar\n”); }

return0;}有沒有更好的方法?ASCII

編碼表字符a,b,…,z的

編碼值

順序遞增#include<stdio.h>intmain(){ charzf;

scanf(“%c”,&zf); if(zf==‘a(chǎn)’||zf==‘b’||zf==‘c’||zf==‘d’||zf==‘e’

||zf==‘f’||zf==‘g’||zf==‘h’||zf==‘i’||zf==‘j’

||zf==‘k’||zf==‘l’||zf==‘m’||zf==‘n’||zf==‘o’

||zf==‘p’||zf==‘q’||zf==‘r’||zf==‘s’||zf==‘t’

||zf==‘u’||zf==‘v’||zf==‘w’||zf==‘x’||zf==‘y’

||zf==‘z’){ printf(“thisisalowerchar\n”); }else{ printf(“thisisn’talowerchar\n”); }

return0;}if((zf>=‘a(chǎn)’)&&(zf<=‘z’)){#include<stdio.h>intmain(){ charzf;

scanf(“%c”,&zf); if((zf>=‘0’)&&(zf<=‘9’)){ printf(“thisisadigitalchar\n”); }else{ printf(“thisisn’tadigitalchar\n”); }

return0;}效果是什么?判斷一個(gè)字符變量的值

是不是

數(shù)字字符#include<stdio.h>intmain(){ charzf;

scanf(“%c”,&zf); if((zf>=‘0’)&&(zf<=‘9’)){ printf(“%d\n”,

); }else{ printf(“notadigitalchar\n”); }

return0;}完形填空,實(shí)現(xiàn)如下功能:當(dāng)用戶輸入一個(gè)數(shù)字字符后,輸出這個(gè)數(shù)字字符對(duì)應(yīng)的數(shù)字一個(gè)稍微復(fù)雜一點(diǎn)的題目題目描述:接收用戶輸入的一個(gè)字符串(不含空格,長(zhǎng)度<10)如果這個(gè)字符串是一串?dāng)?shù)字字符,則輸出這一串字符對(duì)應(yīng)的整數(shù)的值的一半;否則,輸出false示例輸入

示例輸出124 62123 611?3 false解題思路第1步:接收用戶輸入的一個(gè)字符串第2步:判斷是不是一個(gè)數(shù)字字符串第3步:如果是一個(gè)數(shù)字字符串,

則將其轉(zhuǎn)換為相應(yīng)的整數(shù),并除以2后輸出;

否則,

輸出false第1步:接收用戶輸入的一個(gè)字符串charstr[10];scanf(“%s”,str);第2步:判斷是不是一個(gè)數(shù)字字符串inti,len;intflag;//標(biāo)志位:0表示是數(shù)字字符串,否則不是flag=0;len=strlen(str);for(i=0;i<len;i++){ if(str[i]<‘0’||str[i]>‘9’){ flag=1; break;

}}第3步:如果是一個(gè)數(shù)字字符串,

則將其轉(zhuǎn)換為相應(yīng)的整數(shù),并除以2后輸出;

否則,

輸出falseintresult;if(flag==0){ ……printf(“%d”,result/2);}else{ printf(“false”);}在這里繼續(xù)插入代碼第3步:如果是一個(gè)數(shù)字字符串,

則將其轉(zhuǎn)換為相應(yīng)的整數(shù),并除以2后輸出;

否則,

輸出falseintresult;if(flag==0){ ……printf(“%d”,result/2);}else{ printf(“false”);}在這里繼續(xù)插入代碼for(i=0;i<len;i++){ result+=(str[len-1-i]–‘0’)*pow(10,i);}這個(gè)程序有錯(cuò)誤:result沒有賦初值。解題思路第1步:接收用戶輸入的一個(gè)包含空格的字符串第2步:將單詞從字符串中提取出來

并放到一個(gè)字符串?dāng)?shù)組中第3步:按照單詞的長(zhǎng)度對(duì)字符串排序第4步:輸出最長(zhǎng)和最短單詞第1步:接收用戶輸入的一個(gè)包含空格的字符串charsentence[1000];gets(“%s”,sentence);第2步:將單詞從字符串中提取出來

并放到一個(gè)字符串?dāng)?shù)組中chardanci[50][100];inti,k,n,len;k=0;n=0;len=strlen(sentence);for(i=0;i<len;i++){ if(str[i]!=‘’){ danci[n][k]=str[i]; k++; }else{

danci[n][k]=‘\0’; n++; k=0; }}danci[n][k]=‘\0’;danci里面有幾個(gè)單詞?n?n+1第3步:按照單詞的長(zhǎng)度對(duì)字符串排序第4步:輸出最長(zhǎng)和最短單詞請(qǐng)同學(xué)們課后自己動(dòng)手!解題思路第1步:接收用戶輸入的一個(gè)包含空格的字符串第2步:將單詞從字符串中提取出來

并放到一個(gè)字符串?dāng)?shù)組中第3步:按照要求對(duì)特定的單詞進(jìn)行替換第4步:按照順序輸出字符串?dāng)?shù)組中的單詞,

單詞之間以空格作為間隔。關(guān)于數(shù)列問題的程序示例問題1:

如何求一個(gè)數(shù)的平方根如何求一個(gè)數(shù)的平方根?doublesqrt(double);這個(gè)函數(shù)是如何實(shí)現(xiàn)的呢?如何求一個(gè)數(shù)的平方根?對(duì)于一個(gè)正數(shù)a,其平方根可以采用如下的迭代公式進(jìn)行計(jì)算:

x1=1

xn+1=(xn+a/xn)/2誤差要求:

當(dāng)|xn+1-xn|<0.00001時(shí),停止計(jì)算#defineJINGDU0.00001#include<stdio.h>intmain(){ doublea,x2,x1; scanf(“%lf”,&a); x1=1; x2=(x1+a/x1)/2;

while(x2-x1>JINGDU||x1-x2>JINGDU){

x1=x2; x2=(x1+a/x1)/2; } printf(“%d%d\n”,x,y); return0;}x1=1xn+1=(xn+a/xn)/2問題2:

裴波那契數(shù)列的第n個(gè)數(shù)intmain(){ intn,F0,F1,F2; scanf(“%d”,&n);

F0=0; F1=1;

if(n==0){ 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)論