『壹』 c語言課程設計,貪吃蛇應該怎麼做
2.1程序功能介紹
貪吃蛇游戲是一個經典小游戲,一條蛇在封閉圍牆里,圍牆里隨機出現一個食物,通過按鍵盤四個游標鍵控制蛇向上下左右四個方向移動,蛇頭撞倒食物,則食物被吃掉,蛇身體長一節,同時記10分,接著又出現食物,等待蛇來吃,如果蛇在移動中撞到牆或身體交叉蛇頭撞倒自己身體游戲結束。
2.2程序整體設計說明
一個游戲要有開始部分,運行部分,結束部分(實際上開始部分與運行部分是一體的)。
2.2.1設計思路
這個程序的關鍵是表示蛇的圖形以及蛇的移動。用一個小矩形表示蛇的一節身體,身體每長一節,增加一個矩形塊,蛇頭用兩節表示。移動時必須從蛇頭開始,所以蛇不能向相反方向移動,也就是蛇尾不能改作蛇頭。如果不按任何鍵,蛇自行在當前方向上前移,當游戲者按了有效的方向鍵後,蛇頭朝著指定的方向移動,一步移動一節身體,所以當按了有效的方向鍵後,先確定蛇頭的位置,然後蛇身體隨著蛇頭移動,圖形的實現是從蛇頭的新位置開始畫出蛇,這時由於沒有慶平的原因,原來蛇的位置和新蛇的位置差一個單位,所以看起來社會多一節身體,所以將蛇的最後一節用背景色覆蓋。食物的出現和消失也是畫矩形塊和覆蓋矩形塊
2.2.2數據結構設計及用法說明
開始部分:
游戲是運行在圖形模式下的,所以第一步一定是初始化圖形模式,接著要有開始的界面,就像書有封面一樣,我設置了一個游戲的標題畫面,除了游戲標題畫面我還設置了一個歡迎畫面。標題畫面以後,還要為游戲的運行部分作初始化,包括繪制游戲運行時的背景,對游戲某些重 要變數的初始化。
運行部分:
作為游戲的核心部分,這里包括的函數比較多,也就是模塊比較多,首先讓我模擬一下貪吃蛇的游戲模式:某個世界上突然出現一條蛇,它很短,它的運動神經異常,它沒法停止自己的多動症在它的世界裡就只有食物,它很餓,也很貪吃;同樣在不明原因的情況下,食物從天而降,可惜的是沒有落到嘴邊;飢餓的主人公,不管它有沒有毒,也不問食物的來歷,徑直向食物爬去;它吃到食物啦,它超出想像的同化能力讓食物很快的成為自己身體的一部分,它的身子變長啦。當它吃到第一顆食物時,上帝有給它第二顆,於是它吃了第二顆,於是又變長了,於是又有第三顆??它的身子是一直的加長,它不管自己過長身體的麻煩——轉身不便,繼續吃下去,現在它是直接把巴張大,好讓食物有個綠色通道。但是在某天的下午,它咬到了自己,它才想起自己是一條毒蛇,於是暈死過去(不是毒死);又或者它往食物沖鋒的時候,它失去控制,撞到了牆上。
第一輪循環:第一步,出現食物;第二步,蛇不停運動;第三步,檢查蛇是撞到自己或牆壁;由第四步起游戲有兩條支線(A、B):
A :第四步,蛇沒有碰到自己或牆壁,蛇繼續前進,繪制蛇的動作;第五步,判斷蛇是否吃到食物,如果蛇吃到食物,身子變長,原來的食物消失;第六步,讓玩家輸入控制指令,讓蛇在下一輪循環的第二步改變運動方向;第七步,第二輪循環的第一步,重復第一輪的步驟;
B:第四步,蛇碰到自己或牆壁,終止游戲。
結束部分:
游戲結束時,顯示「GAME OVER」,已經是約定俗成的規律了,我的游戲也不例外。除了游戲結束畫面外,我還設置了一個游戲退出畫面,「善始善終」嘛。
有了上述的大致劃分,我把整個程序劃分成(13+2)個模塊(其實就是函數)
2.2.3程序結構(流程圖)
圖2.1流程圖
依據所需要處理的任務要求,規劃輸入數據和輸出結果,決定存放數據的數據結構。
C語言中數據結構集中體現在數據類型上,因此在進行C語言程序設計時,應統籌規劃程序中所使用的變數,數組,指針等,以及它們的類型等。這點是很重要的,如果在此期間選擇不合適的變數或者數組,將來修改就十分困難。
現在分析一下貪吃蛇游戲中的元素,繼而得出與它們對應的在程序中的描述:
蛇:
基本描述:長度,顏色,位置。
對應數據與數據類型:長度—雖然可以用坐標表示,但是這樣的話,運算量將很大,所以換算成較大的單位—節數,以固定長度的每節描述;坐標--整型;顏色--整型; 位置--X,Y坐標。
增加的描述:蛇運動的方向,蛇的生命。
對應數據與數據類型:這些描述是為了與程序的按鍵的輸入部分與判斷游戲結束部分相聯系而設的。方向只有四個方向:上下左右。可以設置與之對應的四個整型數:3、4、2、1。生命就只有兩種情況:死或生,對應0或1。
食物:
基本描述:顏色,位置。
對應數據與數據類型:由於顏色設成固定的,所以不再討論。位置—X、Y坐標。
增加的描述:食物的存在。
對應數據與數據類型:這是為了避免重復出現食物而設置的,與繪制食物的函數有聯系。只有兩個值:0或1(沒有食物或有食物)
其他的元素:牆,由於它在顯示上是作為背景而存在的,所以並沒有什麼說明實際的牆壁就是四條直線組成的邊框,由坐標描述。
還需要的變數:鍵盤鍵入的鍵值(作為全局變數,整型);經常要使用的循環變數;自定義的填充圖案;說明文字的字元數組;游戲的記分;游戲的速度(蛇的速度)。
圖2.2蛇的不停運動的關鍵演算法的流程圖
2.2.4各模塊的功能及程序說明
主要模塊的實現思路和演算法的流程圖說明:
關鍵所在——蛇不停移動的Snakemove():
蛇的不停移動,就是蛇的下一節取代前一節的位置,在計算機中就是蛇下一節的位置坐標變成前一節的位置坐標。在上文中,已定義蛇的位置坐標為數組類型,一組坐標對應一節的位置,假設有i+1節,由0到i節,第i節的坐標取第i-1節的坐標,第i-1節的坐標取第i-2節的坐標??直到第1節取第0節的坐標。而第0節的坐標,即蛇頭的坐標要往某個方向變化,變化量為蛇每節的長度。蛇的這種坐標輪換需要循環語句使其繼續下去。
2.2.5程序結果
運行程序得到如下初始界面圖:
圖2.3程序結果圖
用一個小矩形表示蛇的一節身體,身體每長一節,增加一個矩形塊,蛇頭用兩節表示:
圖2.4程序結果圖
蛇沒有碰到自己或牆壁,蛇繼續前進:
圖2.5程序結果圖
游戲結束時,顯示「GAME OVER」
圖2.6程序結果圖
2.3程序源代碼及注釋
#define N 200
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
int i,key;
int score=0;/*得分*/
int gamespeed=50000;/*游戲速度自己調整*/
struct Food{
int x;/*食物的橫坐標*/
int y;/*食物的縱坐標*/
int yes;/*判斷是否要出現食物的變數*/
}food;/*食物的結構體*/
struct Snake{
int x[N];
int y[N];
int node;/*蛇的節數*/
int direction;/*蛇移動方向*/
int life;/* 蛇的生命,0活著,1死亡*/
}snake;
void Init(void);/*圖形驅動*/
void Close(void);/*圖形結束*/
void DrawK(void);/*開始畫面*/
void GameOver(void);/*結束游戲*/
void GamePlay(void);/*玩游戲具體過程*/
void PrScore(void);/*輸出成績*/
/*主函數*/
void main(void){
Init();/*圖形驅動*/
DrawK();/*開始畫面*/
GamePlay();/*玩游戲具體過程*/
Close();/*圖形結束*/}
/*圖形驅動*/
void Init(void){
int gd=DETECT,gm;
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gm,"c:\program files\winyes\tc20h\bgi");
cleardevice();}
/*開始畫面,左上角坐標為(50,40),右下角坐標為(610,460)的圍牆*/
void DrawK(void){
/*setbkcolor(LIGHTGREEN);*/
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設置線型*/
for(i=50;i<=600;i+=10)/*畫圍牆*/ {
rectangle(i,40,i+10,49); /*上邊*/
rectangle(i,451,i+10,460);/*下邊*/ }
for(i=40;i<=450;i+=10) {
rectangle(50,i,59,i+10); /*左邊*/
rectangle(601,i,610,i+10);/*右邊*/ }}
/*玩游戲具體過程*/
void GamePlay(void){
randomize();/*隨機數發生器*/
food.yes=1;/*1表示需要出現新食物,0表示已經存在食物*/
snake.life=0;/*活著*/
snake.direction=1;/*方嚮往右*/
snake.x[0]=100;snake.y[0]=100;/*蛇頭*/
snake.x[1]=110;snake.y[1]=100;
snake.node=2;/*節數*/
PrScore();/*輸出得分*/
while(1)/*可以重復玩游戲,壓ESC鍵結束*/ {
while(!kbhit())/*在沒有按鍵的情況下,蛇自己移動身體*/ {
if(food.yes==1)/*需要出現新食物*/ {
food.x=rand()%400+60;
food.y=rand()%350+60;
while(food.x%10!=0)/*食物隨機出現後必須讓食物能夠在整格內,這樣才可以讓蛇吃到*/
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;/*畫面上有食物了*/ }
if(food.yes==0)/*畫面上有食物了就要顯示*/ {
setcolor(GREEN);
rectangle(food.x,food.y,food.x+10,food.y-10); }
for(i=snake.node-1;i>0;i--)/*蛇的每個環節往前移動,也就是貪吃蛇的關鍵演算法*/ {
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1]; }
/*1,2,3,4表示右,左,上,下四個方向,通過這個判斷來移動蛇頭*/
switch(snake.direction) {
case 1:snake.x[0]+=10;break;
case 2: snake.x[0]-=10;break;
case 3: snake.y[0]-=10;break;
case 4: snake.y[0]+=10;break; }
for(i=3;i<snake.node;i++)/*從蛇的第四節開始判斷是否撞到自己了,因為蛇頭為兩節,第三節不可能拐過來*/ {
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) {
GameOver();/*顯示失敗*/
snake.life=1;
break; } }
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||
snake.y[0]>455)/*蛇是否撞到牆壁*/ {
GameOver();/*本次游戲結束*/
snake.life=1; /*蛇死*/ }
if(snake.life==1)/*以上兩種判斷以後,如果蛇死就跳出內循環,重新開始*/
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以後*/ {
setcolor(0);/*把畫面上的食物東西去掉*/
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;snake.y[snake.node]=-20;
/*新的一節先放在看不見的位置,下次循環就取前一節的位置*/
snake.node++;/*蛇的身體長一節*/
food.yes=1;/*畫面上需要出現新的食物*/
score+=10;
PrScore();/*輸出新得分*/ }
setcolor(4);/*畫出蛇*/
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,
snake.y[i]-10);
delay(gamespeed);
setcolor(0);/*用黑色去除蛇的的最後一節*/
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } /*endwhile(!kbhit)*/
if(snake.life==1)/*如果蛇死就跳出循環*/
break;
key=bioskey(0);/*接收按鍵*/
if(key==ESC)/*按ESC鍵退出*/
break;
else
if(key==UP&&snake.direction!=4)
/*判斷是否往相反的方向移動*/
snake.direction=3;
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}/*endwhile(1)*/}
/*游戲結束*/
void GameOver(void){
cleardevice();
PrScore();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(200,200,"GAME OVER");
getch();}
/*輸出成績*/
void PrScore(void){
char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"score:%d",score);
outtextxy(55,20,str);}
/*圖形結束*/
void Close(void){
getch();
closegraph();
}
『貳』 誰有C語言程序設計(第三版)杜友福主編的答案啊
C語言程序設計(第三版)習題答案
習題一
一、名詞解釋
(1)程序P1 (2)程序設計P1 (3)機器語言P1 (4)高級語言P2
(5)匯編程序P3 (6)編譯程序P4 (7)演算法P5 (8)結構化程序設計方法P10
二、簡答題
1. 設計程序時應遵循哪些基本原則?P4
答:正確性、可靠性、簡明性、有效性、可維護性、可移植性。
2. 演算法具有哪些特點?
答:有窮性、確定性、有效性、有零個或多個輸入、有一個或多個輸出。
3. 演算法的表示形式有哪幾種?
答:自然語言、偽代碼、傳統流程圖、N-S流程圖、計算機語言。
4. 結構化程序設計方法的三種基本結構是什麼?
答:順序結構、選擇結構和循環結構。
5. 傳統流程圖與N-S流程圖最大的區別是什麼?
答:N-S流程圖去掉了在傳統流程圖中常用的流程線,使得程序的結構顯得更加清晰、簡單。
三、用傳統流程圖或N-S流程圖表示求解以下問題的演算法。
1. 從鍵盤輸入10個整數,求出其中的最小數並輸出。
2. 求1 2 3 … 100的值。
3. 求10~50的所有素數之和。
4. 求下列分段函數的值。
四、請參照本章例題,編寫一個簡單的C程序,輸出以下三行信息。
**************************
Yangtze University
**************************
#include <stdio.h>
void main()
{
printf("**************************\n");
printf(" Yangtze University\n");
printf("**************************\n");
}
習題二
一、選擇題
1~10: B C D C D D B C A A
11~20: D A C D B D B A C D
二、填空題
1.字母 L 或字母 l
2. %c(或字元) 、 %d(或整數)
3. 在程序運行過程中,其值可以在一定的范圍內變化的量
4. '\0'
5. 小數形式 、 指數形式
6. 關鍵字 、 預定義標識符 、 用戶標識符
7. 字母 、 數字 、 下劃線 、 數字
8. 18
9. 2 、 1 、 30
10. 雙精度實數或double
11. 賦值 、 逗號 、 20 、 20 、 20 、 4
12. 4 、 4
習題三
一、選擇題
1~10: B C C B C C C D C C
註:第4題答案D為: 10 22↙
33↙
二、填空題
1. printf 、 scanf
2. h
3. "]"
4. '\0'
5. e 、 E
6. 6
7. s 、 c
8. *
9. - 、
10. i
三、編程題
1. 編寫程序,從鍵盤輸入一個以秒為單位的時間數,將其換算成幾小時幾分幾秒,然後進
行輸出。例如輸入的時間為4258秒,則輸出結果為:1小時10分58秒。
#include <stdio.h>
void main()
{
int x,h,m,s;
scanf("%d",&x);
h=x/3600; m=x600/60; s=x`;
printf("%ds=%d:%d:%d!\n",x,h,m,s);
}
2. 編寫程序,讀入三個整數給變數a、b、c,然後交換它們中的數,把a中原來的值給b,
把b中原來的值給c,把c中原來的值給a。
#include <stdio.h>
void main()
{
int a,b,c,t;
printf("input a b c:");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
t=a;a=c;c=b;b=t;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
習題四
一、填空題
1. 1 、 0
2. ! % + <= != && || =
3. x==0
4. 0 、 2
5. 20 、 0 、 0
二、選擇題
1~7:D D C A D D C
三、程序閱讀題
1. 595959
2. 0.500000
3. 1
4. 2
5. 6
6. a=2,b=1
7. pass
warn
8. 1
四、編程題
1. 設a為整型變數且其值大於零,請將以下if語句改寫成switch語句。
if(a<60) m=1;
else if(a<70) m=2;
else if(a<80) m=3;
else if(a<90) m=4;
else m=5;
方法1
#include <stdio.h>
void main()
{
int a,m;
scanf("%d",&a);
switch(a/10)
{
case 0:case 1:case 2:case 3:
case 4:case 5:m=1;break;
case 6:m=2;break;
case 7:m=3;break;
case 8:m=4;break;
default:m=5;break;
}
printf("m=%d\n",m);
}
方法2
#include <stdio.h>
void main()
{
int a,m;
scanf("%d",&a);
m=0;
switch(a/10)
{
default:m ;
case 8:m ;
case 7:m ;
case 6:m ;
case 5:case 4:case 3:case 2:
case 1:case 0:m ;
}
printf("m=%d\n",m);
}
2. 編寫程序,從鍵盤輸入一個整數,列印出它是奇數還是偶數。
#include <stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a%2==1)
printf("%d is a odd number!\n",a);
else
printf("%d is a even number!\n",a);
}
3. 編寫程序,從鍵盤輸入一個字元,判別它是否是小寫字母,如果是,將它轉換為大寫字母;如果不是,不轉換。然後輸出最後得到的字元。
#include <stdio.h>
void main()
{
char ch;
scanf("%c",&ch);
if(ch>='a' && ch<='z')
ch=ch-32;
printf("%c\n",ch);
}
4. 編寫程序,從鍵盤輸入一個不多於4位的正整數,列印出它是幾位數。
#include <stdio.h>
void main()
{
int x,n;
scanf("%d",&x);
if(x>1000) n=4;
else if(x>100) n=3;
else if(x>10) n=2;
else n=1;
printf("%d\n",n);
}
5. 當一個人的月收入在3500元以下時免稅;月收入在3500元到5000元之間時,超過3500的部分納稅3%;月收入在5000元以上時,3500至5000之間的部分納稅3%,超過5000的部分納稅10%。編寫程序從鍵盤輸入月收入income,計算並輸出應交稅款tax。
#include <stdio.h>
void main()
{
int income;
float tax;
scanf("%d",&income);
if(income<=3500) tax=0;
else if(income<=5000) tax=0.03*(income-3500);
else tax=0.03*(5000-3500) 0.10*(income-5000);
printf("tax=%f\n",tax);
}
6. 迴文是指正讀和反讀都一樣的數或字元串。例如:12321、55455、35553等都是迴文。請編寫一個程序,從鍵盤上讀取一個包含五位數字的長整數,並判斷它是否是迴文。(提示:用除法運算和求余運算把一個數的個位、十位、百位、千位等分別分離出來。)
#include <stdio.h>
void main()
{
long x;
int a,b,d,e;
scanf("%ld",&x);
a=x/10000;
b=x000/1000;
d=x0/10;
e=x;
if(a==e && b==d)
printf("%ld is huiwen!\n",x);
else
printf("%ld is not huiwen!\n",x);
}
習題五
一、閱讀題
1. 8
2. 4321
3. X
4. -1
5. 23
6. 52
7. 5
8. 3
二、填空題
1. 18
2. 2
3. b=i 1
4. 17
5. i<=9 、 j%3!=0
6. d=1.0 、 k=k 1 、 k<=10
三、選擇題
1~8:A D D A B D D A
四、編程題
1. 編寫程序,列印出所有的「水仙花數」,所謂「水仙花數」是指一個三位數,其各位數字的立方之和等於該數本身。例如,407是一個「水仙花數」,因為407=43 03 73。(註:若將題意改為列印出最大的或最小的「水仙花數」,則應將循環語句作如何調整?)。
#include <stdio.h>
void main()
{
int a,b,c,k;
for(k=100;k<=999;k )
//求最大的「水仙花數」改用:for(k=999;k>=100;k--)
{
a=k/100;b=k/10;c=k;
if(k==a*a*a b*b*b c*c*c)
{
printf("]",k);
//求最大或最小」水仙花數」時增加一個語句:break;
}
}
printf("\n");
}
2. 編寫程序,輸出1980~2880年所有閏年的年號。每輸出5個年號換一行。
#include <stdio.h>
void main()
{
int k,flag,n=0;
for(k=1980;k<=2880;k )
{
flag=(k%4==0)&&(k0!=0)||(k@0==0);
if(flag)
{
printf("]",k);
n ;
if(n==0)
printf("\n");
}
}
printf("\n");
}
3. 編寫程序,求1-3 5-7 …-99 101的值。
#include <stdio.h>
void main()
{
int n,t=1,s=1;
for(n=3;n<=101;n =2)
{ t=-t; s=s t*n; }
printf("s=%d\n",s);
}
4. 編寫程序,計算並輸出下列級數的前n項之和Sn。n的值從鍵盤輸入。
#include <stdio.h>
void main()
{
int fz,fm,n,i;
float s,t;
fz=2;fm=1;s=0;
scanf("%d",&n);
for(i=1;i<=n;i )
{
t=(1.0*fz)/fm;
s=s t;
fz=fz fm;
fm=fz-fm;
}
printf("s=%f\n",s);
}
5.編寫程序,求e的值e=1 1/1! 1/2! 1/3! 1/4! … 1/n!
#include <stdio.h>
void main()
{
int n,i;
float t,fm=1,e=1;
scanf("%d",&n);
for(i=1;i<=n;i )
{ fm=fm*i; t=1.0/fm; e=e t; }
printf("n=%d,e=%f\n",n,e);
}
6. 已知某球從80米高度自由落下,落地後反復彈起,每次彈起的高度都是上次高度的一半。求此球8次落地所經過的總路程。
#include <stdio.h>
void main()
{
int n;
float s=80,h=s/2;
for(n=2;n<=8;n )
{
s=s 2*h;
h=h/2;
}
printf("s=%f\n",s);
}
7. 用牛頓迭代法求高次方程f(x)=2x3-4x2 5x-18=0的根(約為2.466)。
註:牛頓迭代公式為:x2=x1-f(x1)/f』(x1),其中f』(x1)為導函數在點x1的值。
#include <stdio.h>
#include <math.h>
void main()
{
float x,f,f1;
x=8; // x的初值可為任意值
do
{ f=2*x*x*x-4*x*x 5*x-18; f1=6*x*x-8*x 5; x=x-f/f1;
}while(fabs(f)>0.00001);
printf("x=%f,f=%f\n",x,f);
}
8. 有這樣一些真分數:其分子和分母都是兩位正整數,且分子的個位數與分母的十位數相同,如果把該分數的分子的個位數與分母的十位數同時去掉,所得到的新的分數正好與原分數的值相等,如26/65=2/5。試編程求出所有滿足上述條件的真分數。
#include <stdio.h>
void main()
{
int a,b,c; // 設這個分數為ab/bc
for(a=1;a<=9;a )
for(b=1;b<=9;b )
for(c=1;c<=9;c )
if((a<c)&&(1.0*a/c==(a*10.0 b)/(b*10.0 c)))
printf("%d/%d=%d%d/%d%d=%f\n",a,c,a,b,b,c,1.0*a/c);
}
9. 編寫程序,求數列:1,(1 1/2),(1 1/2 1/3),(1 1/2 1/3 1/4),(1 1/2 1/3 1/4 1/5),…的前10項之和。
#include <stdio.h>
void main()
{
float s,t;
int i;
s=0,t=0;
for(i=1;i<=10;i )
{ t=t 1.0/i; s=s t; }
printf("s=%f\n",s);
}
10. 編寫程序,求3到100之間的所有素數之和。
#include <stdio.h>
void main()
{
int s,i,k,flag;
s=0;
for(i=3;i<=100;i )
{
flag=1;
for(k=2;k<i;k )
if(i%k==0)
{ flag=0; break; }
if(flag)
{ s=s i; printf("M",i); }
}
printf("\nsum=%d\n",s);
}
11. 編寫程序,求Fibonacci數列中大於800的最小的一個數(結果為987)。
#include <stdio.h>
void main()
{
int f1=1,f2=1,f3;
while(f3<=800)
{
f3=f1 f2;
f1=f2;
f2=f3;
}
printf("Fibonacci數列中大於800的最小數是]\n",f3);
}
習題六
一、選擇題
1~10:D D C B A B C D C D
11~20:A B B C C D C A B B
21~30:B B D D D D C D C A
註:第16題答案C為:字元串"SHORT"與"SHORT "相等
第19題題目為:已知:char str1[10],str2[10]={"books"};則在程序中能夠將字元串
"books"賦給數組str1的正確語句是 。
第21題題目為:設有:char str1[20]="abcde",str2[20]="xyz";則執行語句:
printf("%d",strlen(strcpy(str1,str2)); 的結果是 。
第28題答案D為: aaaa
bbbb
cccc dddd
二、填空題
1. 9 、 0
2. 先行後列
3.
『叄』 c程序設計和c語言從入門到精通哪本更適合初學者,哪本能學到的東西多一些
你好,建議您選擇《C語言從入門到精通》作為入門書籍
理由如下:
1、《C語言程序設計》是以教材的形式進行編寫,而《C語言從入門到精通》是以教程的形式進行編寫,後者書中配備有大量的常式,且編程風格較為規范
2、《C語言從入門到精通》書籍較厚,涵蓋了C語言基礎語法,在此之上拓展了指針、文件、TCP協議等高級內容,這些在《C語言程序設計中》沒有作為重點內容列出。
『肆』 in one's 20s是什麼意思啊及相應知識點是
這是表示人年齡的一種用法; in one's 20s, 就是指某人20多歲;記住,這里的介詞一定用 in;
另:這種表達法其實有點籠統,比如21歲和29歲都可以用 he is in his 20s表示; 因此,要准確表達,還可在one's 後面加形容詞 early, late, mid,
比如, in one's early 20s, 就指某人在 21,22,; in one's mid 20s; 就是指 某人在24-26之間; in one's late 20s,自然指某人 27-29歲。
『伍』 《C語言課程設計(第3版)/程序設計語言課程設計叢書》epub下載在線閱讀,求百度網盤雲資源
《C語言課程設計(第3版)/程序設計語言課程設計叢書》電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:
書名:C語言課程設計(第3版)/程序設計語言課程設計叢書
『陸』 《C語言課程設計(第3版)/程序設計語言課程設計叢書》epub下載在線閱讀全文,求百度網盤雲資源
《C語言課程設計(第3版)/程序設計語言課程設計叢書》電子書網盤下載免費在線閱讀
書名:C語言課程設計(第3版)
出版年份:2013年8月
頁數:340
內容簡介
本書分為5篇,共16章,精心開發了10個案例。第一篇重點介紹了C語言的基本知識點和課程設計的指導工作。第二篇介紹字元界面及文件操作編程,包括通訊錄管理、學生成績管理、家庭財務管理和圖書管理這4個系統的設計與實現過程。第三篇是游戲編程,介紹了貪吃蛇和俄羅斯方塊游戲的設計和實現過程。
第四篇介紹了UDP程序設計和簡單的Web伺服器的設計與實現過程。第五篇是Linux下的C語言編程,介紹了基於堆棧的計算器和萬年歷兩個Linux下應用程序的設計與實現過程。每個例子都是很好的課程設計工作的案例。
『柒』 《C程序設計語言第2版·新版》pdf下載在線閱讀全文,求百度網盤雲資源
《C程序設計語言(第2版·新版)》([美] Brian W. Kernighan)電子書網盤下載免費在線閱讀
鏈接: https://pan..com/s/1txJqYzmjYS-BSw43eLWrnQ
書名:C程序設計語言(第2版·新版)
作者:[美] Brian W. Kernighan
譯者:徐寶文
豆瓣評分:9.4
出版社:機械工業出版社
出版年份:2004-1
頁數:258
內容簡介:
在計算機發展的歷史上,沒有哪一種程序設計語言像C語言這樣應用廣泛。本書作者是C語言的設計者之一Dennis M. Ritchie和著名計算機科學家Brian W. Kernighan合著的一本介紹C語言的權威經典著作。我們現在見到的大量論述C語言程序設計的教材和專著均以此書為藍本。
原著第1版中介紹的C語言成為後來廣泛使用的C語言版本——標准C的基礎。人們熟知的「hello,World"程序就是由本書首次引入的,現在,這一程序已經成為眾多程序設計語言入門的第一課。原著第2版根據1987年制定的ANSIC標准做了適當的修訂.引入了最新的語言形式,並增加了新的示例,通過簡潔的描述、典型的示例,作者全面、系統、准確地講述了C語言的各個特性以及程序設計的基本方法。
對於計算機從業人員來說,本書是一本必讀的程序設計語言方面的參考書。
作者簡介:
Brian W. Kernighan,貝爾實驗室計算科學研究中心高級研究人員,著名的計算機科學家。參加了UNIX系統、C語言、AWK語言和許多其他系統的開發,同時出版了許多在計算機領域具有影響的著作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。
Dennis M. Ritchie,1967年加入貝爾實驗室。他和 Ken L. Thompson 兩人共同設計並實現的C語言改變了程序設計語言發展的軌跡,是程序設計語言發展過程中的一個重要里程碑。與此同時,他們還設計並實現了UNIX操作系統。正是由於這兩項巨大貢獻,Dennis M. Ritchie 於1983年獲得了計算機界的最高獎——圖靈獎。此外,他還獲得了ACM、IEEE、貝爾實驗室等授予的多種獎項.。
『捌』 《C程序設計語言第2版·新版》epub下載在線閱讀,求百度網盤雲資源
《C程序設計語言(第2版·新版)》([美] Brian W. Kernighan)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接: https://pan..com/s/1VcMvPqk3VW0er-VOqODP3A
書名:C程序設計語言(第2版·新版)
作者:[美] Brian W. Kernighan
譯者:徐寶文
豆瓣評分:9.4
出版社:機械工業出版社
出版年份:2004-1
頁數:258
內容簡介:在計算機發展的歷史上,沒有哪一種程序設計語言像C語言這樣應用廣泛。本書作者是C語言的設計者之一Dennis M. Ritchie和著名計算機科學家Brian W. Kernighan合著的一本介紹C語言的權威經典著作。我們現在見到的大量論述C語言程序設計的教材和專著均以此書為藍本。
原著第1版中介紹的C語言成為後來廣泛使用的C語言版本——標准C的基礎。人們熟知的「hello,World"程序就是由本書首次引入的,現在,這一程序已經成為眾多程序設計語言入門的第一課。原著第2版根據1987年制定的ANSIC標准做了適當的修訂.引入了最新的語言形式,並增加了新的示例,通過簡潔的描述、典型的示例,作者全面、系統、准確地講述了C語言的各個特性以及程序設計的基本方法。
對於計算機從業人員來說,本書是一本必讀的程序設計語言方面的參考書。
作者簡介:Brian W. Kernighan,貝爾實驗室計算科學研究中心高級研究人員,著名的計算機科學家。參加了UNIX系統、C語言、AWK語言和許多其他系統的開發,同時出版了許多在計算機領域具有影響的著作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。
Dennis M. Ritchie,1967年加入貝爾實驗室。他和 Ken L. Thompson 兩人共同設計並實現的C語言改變了程序設計語言發展的軌跡,是程序設計語言發展過程中的一個重要里程碑。與此同時,他們還設計並實現了UNIX操作系統。正是由於這兩項巨大貢獻,Dennis M. Ritchie 於1983年獲得了計算機界的最高獎——圖靈獎。此外,他還獲得了ACM、IEEE、貝爾實驗室等授予的多種獎項.。
『玖』 荊州學院計算機專升本考試范圍
計算機科學與技術專業考試科目是C語言程序設計 。
參考教材為《C語言程序設計(第3版)》,杜友福主編,科學出版社,2012年。
招生對象:
1、高職高專應屆畢業生。
2、退役大學生士兵。
報名條件:熱愛祖國,具有良好的思想品德和政治素質;修完普通高職高專教學計劃規定的課程,能如期畢業;身體健康。每名考生限報一個相關本科專業。
『拾』 C語言的程序設計概念
C語言是一種計算機程序設計語言。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。因此,它的應用范圍廣泛。
C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。
常用的C語言IDE(集成開發環境)有Microsoft
Visual
C++,Borland
C++,Watcom
C++
,Borland
C++
,Borland
C++
Builder,Borland
C++
3.1
for
DOS,Watcom
C++
11.0
for
DOS,GNU
DJGPP
C++
,Lccwin32
C
Compiler
3.1,Microsoft
C,High
C,Turbo
C,Dev-C++,C-Free等等......
你看下:
http://ke..com/view/1219.html?wtp=tt