溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言程序的基本語(yǔ)句能完成功能的體會(huì) 杜鑫達(dá)

發(fā)布時(shí)間:2020-10-14 21:08:20 來(lái)源:網(wǎng)絡(luò) 閱讀:394 作者:鍍鋅達(dá) 欄目:編程語(yǔ)言

 

通過(guò)一學(xué)期對(duì)C語(yǔ)言的學(xué)習(xí),我感覺(jué)學(xué)習(xí)C語(yǔ)言是有一定難度卻又是非常有趣的科目。也是很有幫助的,特別是對(duì)將要面對(duì)的計(jì)算機(jī)二級(jí)考試。 這段時(shí)間的學(xué)習(xí)我知道了C語(yǔ)言的基本特點(diǎn)有以下幾點(diǎn):

 1.語(yǔ)言簡(jiǎn)潔,使用靈活方便。

 2.運(yùn)算符豐富,表達(dá)能力強(qiáng)。 

 3.?dāng)?shù)計(jì)類型豐富。 

 4.目標(biāo)程序質(zhì)量高,具有面向硬件系統(tǒng)的特點(diǎn)。

 5.具有結(jié)構(gòu)化的控制語(yǔ)句和模塊化的程序結(jié)構(gòu)。

 6.具有編譯預(yù)處理功能。 

 7.程序設(shè)計(jì)自由度大,可移植性好。


 這段時(shí)間學(xué)習(xí)使我掌握了:

 一、 我學(xué)習(xí)了C語(yǔ)言的數(shù)據(jù)類型、常量與符號(hào)常量、變量、C語(yǔ)言的運(yùn)算符和表達(dá)式、賦值運(yùn)算符和賦值表達(dá)式、自增自減運(yùn)算符以及逗號(hào)表達(dá)式等。 


二、 這章介紹了結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)、C語(yǔ)句概述、數(shù)據(jù)輸出包括字符輸出函數(shù)putchar()和格式輸出函數(shù)printf()、數(shù)據(jù)輸入包括字符輸入函數(shù)getchar()和格式輸入函數(shù)scanf(),還有一些簡(jiǎn)單的C語(yǔ)程序設(shè)計(jì)舉列等。 


前幾天一直在看C++語(yǔ)法,所以對(duì)一些比較實(shí)際的例子總感到比較抽象,但是那也是一個(gè)必需階段,可能大家和我的學(xué)習(xí)方式不一樣,但從剛接觸程序到現(xiàn)在來(lái)看,發(fā)現(xiàn)這樣學(xué)習(xí)語(yǔ)言的方法挺不錯(cuò)的。 

經(jīng)過(guò)第一階段對(duì)語(yǔ)法的學(xué)習(xí),我覺(jué)得實(shí)例階段應(yīng)該是一個(gè)過(guò)渡階段吧,通過(guò)前一階段對(duì)語(yǔ)法的學(xué)習(xí)之后,可能有很多概念我們都比較模糊,或者說(shuō)很多東西太抽象了,這就為我們第二個(gè)階段的學(xué)習(xí)做好了實(shí)例化的準(zhǔn)備,可以這樣說(shuō)吧,第一個(gè)階段就我們?yōu)槲覀兊膶W(xué)習(xí)一樣?xùn)|西而構(gòu)建的一個(gè)類,里面講了我們應(yīng)該在這里面要做什么?第二階,也就是本階段,我們就應(yīng)該去把前一段的東西具體化(實(shí)例化先前創(chuàng)建的類),那怎么個(gè)具體化呢,呵呵!說(shuō)白了,去練習(xí)一些小例子,從網(wǎng)上下載的電子書上有很多這方面的例子的,如果有自己去書店買書的話,里面也應(yīng)該提供了不少,里面的例子,我是每次都打了一遍,也許有的人不會(huì)親自去用手打一遍,什么copy等,當(dāng)然這樣也行,但我個(gè)人認(rèn)為,對(duì)于初學(xué)者來(lái)說(shuō),最好還是自己動(dòng)手打一遍比較好,畢竟這些東西對(duì)我們來(lái)說(shuō),都比較陌生,如果每個(gè)字都自己打完的話,有些代碼你不想記住也難了,在這里,我們得弄懂練習(xí)的每一個(gè)例子,如果能把一些例子稍稍修改,弄懂里面精髓的東西,讓自己知道為什么這樣做,那么是最好不過(guò)的了,我平時(shí)練習(xí)時(shí),這一步是少不了的,都習(xí)慣了,所以也就成了條件反射,想不這樣都不行。最后,我們就應(yīng)該匯一下總,把前面做過(guò)的例子里所用的技術(shù)理一下,再做一個(gè)比較大的例子,盡量把到目前為止所懂的知識(shí)全部應(yīng)用到里面去,只是盡量,當(dāng)然有些東西是不能集成到一起的,也是是代碼之間的排斥性。 

這是個(gè)人的一點(diǎn)學(xué)習(xí)心得,希望能更好的運(yùn)用到學(xué)習(xí)中去。C語(yǔ)言是一門很有用的、對(duì)于我們的就業(yè)很實(shí)際的語(yǔ)言,學(xué)習(xí)好C語(yǔ)言是一項(xiàng)必須而實(shí)際的任務(wù)。我們必須要好好掌握。



#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <time.h>

#define N 35

void print(int [][N]);//輸出函數(shù)

void movebul(int [][N]);//×××移動(dòng)函數(shù)

void movepla(int [][N]);//敵機(jī)移動(dòng)函數(shù)

void setting(void);//設(shè)置函數(shù)

void menu(void);//菜單函數(shù)

int scr[22][N]={0},pl=9,width=24,speed=2,density=50,score=0,death=0;//全局變量:界面、我機(jī)初始位、界面寬度、敵機(jī)速度、敵機(jī)密度、得分、死亡

main(void)

{

menu();

int i=0,j=0;

scr[21][pl]=1;

scr[0][5]=3;

while(1){if(kbhit())switch(getch())//控制左右移動(dòng)和進(jìn)入菜單

{case 'a':case 'A':if(pl>0)scr[21][pl]=0,scr[21][--pl]=1;break;

case 'd':case 'D':if(pl<width-2)scr[21][pl]=0,scr[21][++pl]=1;

break;

case 'w':case 'W':scr[20][pl]=2;break;case 27 :setting();

break;

}

if(++j%density==0)//控制生產(chǎn)敵機(jī)的速度

{j=0;srand(time(NULL));

scr[0][rand()%width]=3;

}

if(++i%speed==0)//控制敵機(jī)移動(dòng)速度,相對(duì)于×××移動(dòng)速度

movepla(scr);

movebul(scr);

print(scr);

if(i==30000)i=0;//以免i 越界

}

}

void print(int a[][N]){system("cls");

int i,j;

for(i=0;i<22;i++){a[i][width-1]=4;

for(j=0;j<width;j++){if(a[i][j]==0)printf(" ");

if(a[i][j]==1)printf("\5");//輸出我機(jī)的符號(hào)

if(a[i][j]==2)printf(".");//×××

if(a[i][j]==3)printf("\3"); //輸出敵機(jī)符號(hào)

if(a[i][j]==4)printf("|");

if(i==0&&j==width-1)printf("得分:%d",score);//右上角顯示得分

if(i==1&&j==width-1)printf("死亡:%d",death);

if(i==2&&j==width-1)printf("設(shè)置:Esc");

if(i==3&&j==width-1)printf("Copyright:杜鑫達(dá)");

}

printf("\n");

}

}

void movebul(int a[][N]){int i,j;

for(i=0;i<22;i++)

for(j=0;j<width;j++)

{

if(i==0&&a[i][j]==2)a[i][j]=0;if(a[i][j]==2)

{

if(a[i-1][j]==3)score+=10,printf("\7");

a[i][j]=0,a[i-1][j]=2;

}

}

}

void movepla(int a[][N])

{

int i,j;

for(i=21;i>=0;i--)//從最后一行往上是為了避免把敵機(jī)直接沖出數(shù)組。

for(j=0;j<width;j++)

{

if(i==21&&a[i][j]==3)a[i][j]=0;//底行賦值0 以免越界。

if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;

}

if(a[20][pl]==3&&a[21][pl]==1)death++;

}

void setting(void)

{

int sw=0,i,j;

system("cls");

do{sw=0;printf("\n 游戲界面的大小:1.大2.小>> ");

switch(getche())

{

case '1':width=34;break;

case '2':width=24;break;

default:printf("\n 錯(cuò)誤,請(qǐng)重新選擇...\n");

sw=1;

}

}

while(sw);

do

{

sw=0;

printf("\n 請(qǐng)選擇敵機(jī)密度:1.大2.中3.小>> ");

switch(getche())

{

case '0':density=10;

break;

case '1':density=20;

break;case '2':density=30;

break;case '3':density=40;break;

default:printf("\n 錯(cuò)誤,請(qǐng)重新選擇...\n");

sw=1;

}

}

while(sw);

do

{

sw=0;

printf("\n 敵機(jī)的飛行速度:1.快2.中3.慢>> ");

switch(getche())

{

case '1':speed=2;

break;

case '2':speed=3;

break;

case '3':speed=4;

break;

default:printf("\n 錯(cuò)誤,請(qǐng)重新選擇...\n");

sw=1;

}

}

while(sw);

for(i=0;i<22;i++)

for(j=0;j<45;j++)

scr[i][j]=0;

scr[21][pl=9]=1;

printf("\n 按任意鍵保存...");

getch();

}

void menu(void)

{

printf("說(shuō)明:按A D 控制我機(jī)左右飛行,W 發(fā)射×××\n 設(shè)置:請(qǐng)按Esc\n 開(kāi)始游戲:任意鍵\n                               by yan_xu");

if(getch()==27)setting();

}

飛機(jī)游戲中就用到了我們?cè)S多學(xué)到的知識(shí) 像if語(yǔ)句  switch語(yǔ)句 case語(yǔ)句 等等

而飛機(jī)游戲的結(jié)構(gòu)很簡(jiǎn)單先設(shè)置函數(shù)  再設(shè)置變量  之后再設(shè)置輸入變量 最后輸出


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI