理工軟件工程考研-語言程序設(shè)計c2012-d04new_第1頁
理工軟件工程考研-語言程序設(shè)計c2012-d04new_第2頁
理工軟件工程考研-語言程序設(shè)計c2012-d04new_第3頁
理工軟件工程考研-語言程序設(shè)計c2012-d04new_第4頁
理工軟件工程考研-語言程序設(shè)計c2012-d04new_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

運(yùn)算符(單目 自 – 自 說為單目運(yùn)算,只能作用于變只能對int、char、long和指針變量進(jìn)行功x=x+–x=x–x=x+(前綴x–x=x–(后綴共50 第2前綴:先自增(自減)再 : 再自增(自減前綴與后綴的區(qū)y= <==>x=yx;x先1再賦y= <==>y=xx+1;x先賦值再加1

共50 第3實例:int 因為在表達(dá)式中沒有其它運(yùn)算,結(jié)果一樣y=在賦值運(yùn)算之前,x先加1x賦給結(jié)果yxxx+1yx;x=2,y=2y=先將x賦值yx結(jié)果yx++yxxx=2,y=共50 第4注意,以下操作是錯誤x=++(i+j)+1;j=++(5+x);y=++x*邏邏輯上雖然正共50 第5運(yùn)算符(賦值運(yùn)算: 賦值組合運(yùn)算:e1op= 等于于:e1e1op其中:op為下列10個運(yùn)算符之+ */%<<>>|&共50 第6運(yùn)算符(賦值運(yùn)算: 賦值組合運(yùn)算:e1op= 等于于:e1e1op例:x+= <==>x=x+x*=y+1;x>>=2;

x=x*(y+1);x=x*y+1;x=x>>2;共50 第7循環(huán)嵌在循環(huán)體中,又包含有循環(huán)語句例C3_5107.C:輸出下三角形乘法九12345678912436948字符方式下屏幕顯示的特屏幕上的字符只能從上到下逐行顯示,同內(nèi),只能從左到右逐字顯示8顯示要程序架構(gòu)(偽語言描述whilen{while制顯示一m字符 輸出一個需要的字符列計數(shù)器}行數(shù)計}9例C3_5107.C123456789123446895689假設(shè):行i(1<=i<=9j則i行中共要輸i個數(shù)據(jù)每個數(shù)據(jù)i*j10#include{inti=1,j;while(i<=9)

例例/*i:行計數(shù) j:列計數(shù)器/*制打印表printf("%4d",i++printf("\nwhile(i<=9

{j= /*列計數(shù)器置1whileji/*嵌套的二重循環(huán)。輸出第i{printf("%4d",i*jj /*列計數(shù)器+1}printf("\n");i++;外層外層循環(huán)體執(zhí)行1次,內(nèi)層循環(huán)要完整執(zhí)行1}

/*行輸出結(jié)束,輸出\n/*行計數(shù)器+111例#include例main({inti,for(i=1;i<10;i++printf("%4d",i); /*打印表頭*/printf("\n for(i=1i<10i+ /*制打印表for(j=1;j<=i;j++printf((j==i)?"%4d\n":"%4d",}函數(shù)printf?等價于:if(j==i)printf("%4d\n",i*j); printf("%4d",i*j);12字符型的類字符型常量:用單引號括起來的單個字符 ’#’’0’’2’’+’’;’字符定界符:轉(zhuǎn)義符:改變后續(xù)字符的原 ’\t’’\’’字符型變量的charscanf("%c"&ch/*入1個字符字符型變量的printf("%cch/*1個字共50 第20字符輸從鍵盤讀入一個字符,存入變量ch中字符輸出:putcharch向顯示器上輸出變量ch例:#includestdio.h"main(){charc=getchar( /*出字}共19 第23開開{char輸出字符ch=getchar(輸出字符結(jié)結(jié)

共19 第24例C2_7301.C:將從鍵盤輸入的一行字#includestdio.h"intmain(){charch=getchar();while(ch!=’\n’)

例{putchar(ch); /*出該*/ch=getchar/*下一輸}return}共19 第25到讀入字母a時才停止。開ch=讀入一個字開ch=讀入一個字成成不成結(jié)ch=讀入顯示控制條程序主

ch’a’ch=getchar();while(ch!=’a’) putchar(ch);ch=getchar();}27開ch=讀開ch=讀入main({char成結(jié)ch=讀入下成結(jié)ch=讀入下一個顯示{putchar(chch=getchar(}}do-while語句如何28典型非數(shù)值(圖型)問題-例例1:在一行中輸出m*要求:從鍵盤輸入m值,輸出一m個*號。例:輸入m=4,輸出的圖形如下:***基本語句輸出一*基本算重復(fù)m次:輸出一個輸出一個

scanf("%d",&m);while(m>0) }printf39典型非數(shù)值(圖型)問題-例#include<stdio.h>intmain(){intm;scanf("%d",&m);while(m>0) }return0;

#include<stdio.h>voidmain(){intm;scanf("%d",&m);for(;m>0;m-- }}

40典型非數(shù)值(圖型)問題-例例2:輸出邊長m的正方要求:從鍵m值,輸出mm個*例:輸入m=4,輸出的圖形如************算法分析與設(shè)1m,2m行,m個加細(xì)輸入mfor(k=1;k<=m;k輸出一行:m個*

41加細(xì)輸入for(k=1;k<=m;k++ m*}加細(xì)輸入for(k=1;k<=m;k++ for(j=1;j<=m;j++printf("\n")}42例#includestdio.h>例{intk,m,scanf(”%d”,&mfork=1k<=mk+ /*制輸出mforj=1j<=mj+/*出一行中的m個*}}分析方法——逐步43典型非數(shù)值(圖型)問題-例例3:輸出邊長m的平行四邊形例:輸入m=4,輸出的圖形如下:▋▋▋***▋▋***▋******算法分析與設(shè)在正方型每行*號的前面先輸出若干個空格。對于第k行,1<=k<=mm-k個空格。44#includestdio.h>intmain(){intk,m,

intscanf(”%d”,&mfork=1k<=mk /*m{forj=1j<=mj+/*出一行中的m個**/forfor(i=1;i<=m-k;i++)printf(””);return}45#include<stdio.h>intmain(){intk,m,j,scanf(”%d”,&mfork=1k<=mk+ /*制輸出mfori=1i<=m-ki++/*制輸出m-k個空格printf(”forj=1j<=mj+/*出一行中的m個*}return}

行內(nèi)格

46典型非數(shù)值(圖型)問題-例三角形。例:輸入h=4,輸出的圖形如下:12*3****4******分析1、按行輸出。h2、程序的關(guān)鍵是:找出每一行中要輸?shù)臄?shù)量和*的數(shù)量3、對于圖形中k行要輸出h-k和2k-147分析h-k2k-1算法設(shè)輸入輸出h行;對第k行,每行輸出h-k個空格和2k-1個*對第2步進(jìn)行加細(xì)2.0for(k=1;k<=h;k++{h-k個空格;輸出2k-1個*;}48例程序例#include<stdio.h>voidmain(){inth,k,j;scanf("%d",&h);fork=1k<=hk /*制打h{for(j=1;j<=h-k;j++) /**/printf("");for(j=1j<=2*k-1j/***/printf("\n")}}怎樣輸出一個等腰梯型49*************換一個思路分對于第k1<=k<=h

需要輸出h+k-1個字符(空格*號對第k行的第j個字符:若j<=h-k 輸出空格 輸出*50換一個思路分對于第k1<=k<=h需要h+k-1個字符(*號k行的第j個字符,j<=h-k空其它情況輸出算法設(shè)fork=1k<=h /*h{for(j=1;j<=h+k-1;j++)/*行內(nèi)字符*/ (j<=h-k)打印空格; 打印*號;}51例例#include<stdio.h>voidmain(){inth,k,j;scanf("%d",&h);fork=1k<=hk /*出hfor(j=1;j<=h+k-1;j/*if(j<=h-k)printf(" printf("\n")}}52典型非數(shù)值(圖型)問題-例例4h值,輸出*號組成的菱形。例:輸入h=4,輸出的圖形如下: 空格數(shù)3*12233 *******************分析對于第j行,若m個空n個*號j<=h時,為上三角,則:mh-jn2j-h<j<=2h-1時,為下三m=j-n寬=2h-1-2(j-h)=4h-1-53算法for(j=1j<=2*h-1j++)控制打為上則m=h-jn2j-否則:mj-hn4h-1-2j輸出m個空格;輸出n個*;}加細(xì)循 if(j<=h){m=h-j;n=2*j- {m=j-h;n=4*h-1-2*j;for(k=1;k<=m;k++for(k=1;k<=n;k++)}

printf("

54例程序例#includevoidmain({inth,k,j,m,nscanf("%d",forj=1j<=2*h-1j+ /*輸出行數(shù) if(j<=h){m=h-j;n=2*j- {m=j-h;n=4*h-1-2*j;for(k=1;k<=m;k++for(k=1;k<=m;k++printf("for(k=1;k<=n;k++/**}}55例程序例#include<stdio.h>voidmain(){inth,k,j,m,nscanf("%d",forj=1j<=2*h-1j+/*控制總{if(j<=h){m=h-j;n=2*j-1; {m=j-h;n=4*h-1-2*j;for(k=1km+n;k++)/*輸出*/if(k<=mprintf("");/*輸出空*/elseprintf("*");/*輸出**/}}}56典型非數(shù)值(圖型)問題-例例4h值,輸*號組成的菱形。例:輸入h=4,輸出的圖形如下:----空格數(shù)32*號數(shù)量3331*******************分h

-(h-1)~h-1j行,若m個空n個*則:mn

2(h-m)-57例程序例#include<stdio.h>voidmain(){inth,k,j,m,nscanf("%d",forj=-h+1j<=h-1j+/*行數(shù){m=j<0?–j:n=2*(h-m)-fork=1k<=m+nk++)/*行內(nèi)格if(k<=m)printf(”

/*}}

/*輸出*58123452345分析51234輸出123452345分析51234輸出aij與i、列j的關(guān)mj行的j,之后依次遞增,但以m為模:aij=(i+j-2)%m+59程序#includevoidmain({inti,j,m;printf("EnterM:");scanf("%d",

例for(i=1i<=mi+ /*制輸mforj=1j<=mj/*出行中的printf("%d",(i+j-2)%m+1);}}60典型非數(shù)值(圖型)問題-例例6:打印回形方例:輸入m=5,m=6,輸出的圖形如下:111111111111222112222112321123321122211233211111112222111111分析:關(guān)鍵是找aijij的關(guān)

61將圖形分為四個111111111111222112222112321123321

12222111111111123321222min(m-i+1,m-62#definemin(x,y)((x)<(y)?(x):(y))voidmain(){intk,j,m;printf("EnterM:");scanf("%d",

例for(k=1k<=m /*制打印m{for(j=1;j<=m;if(k<=(m+1)/2

/*制打印行中的數(shù)字if(j<=(m+1)/2)printf("%d",min(k, printf("%d",min(k,m-if(j<=(m+1)/2)printf("%d",min(m- printf("%d",min(m-k+1,m-j+1));}}63典型非數(shù)值(圖型)問題-例例7:打印數(shù)字三角形。輸入高m94569456=當(dāng):i,j>=1ai+1,1=ai,1+iai,j+1=ai,j+i+j23456i行打

m-i+1個數(shù)若 則:ai+1,1=ai,1+i例:a21=a11+1=1+1=2ai,1,則:ai,j+1=例:a22=a21+2+1=2+2+1=5,a23=a22+2+2=5+2+2=9a62=a61+6+1=16+6+1=23,a63=a62+6+2=23+6+2=3164遞推公式

=

例程

ai+1,1=ai,1+iai,j+1=ai,j+i+j

voidmain({inti,j,m,n,scanf("%d",&mfor(i=1;i<=m;i++

/*k是第一列元素的值forj=1j<=m-i+1;

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論