當前位置:首頁 » 編程語言 » c語言程序參考文獻
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言程序參考文獻

發布時間: 2022-04-13 19:03:06

『壹』 c語言-函數在C語言中的運用的參考文獻

http://www.4oa.com/Article/html/6/31/447/

『貳』 萬分著急!!!求關於C語言的文獻綜述

參考文獻
註:括弧內的書名是英文原名。斜體字的 「 中 」 表示有中文版, 「 英 」 表示有英文影印版, 「E」 表示有英文電子版, 「 電 」 表示有中文電子版(不包括超星格式),有刪除線的表示該版本已絕版。請不要向我要索要電子版,並且大部分電子版屬於盜版,慎重下載。同時因為世界總在變化,我不能保證你讀到此文時這些信息依然有效。

[Deitel94] H. M. Deitel ,《 C 程序設計教程( C How to Program )》第二版,中。書中錯誤不少,不知道是原版的問題還是翻譯的問題,但至少翻譯版的排版一團糟,有點糟蹋好書了。

[Prata04] Stephen Prata ,《 C Primer Plus ( C Primer Plus )》第五版,中 E 。 「Primer」 的名頭太大了,以至於中文版乾脆不翻譯書名了。

[Kelley97] Al Kelley 、 Ira Pohl ,《 C 語言教程( A Book on C: Programming in C )》,英。

[Roberts94] Eric S. Roberts ,《 C 語言的科學與藝術( The Art and Science of C: A Library Based Introction to Computer Science )》,中英。雖然另類,但有很多創新值得回味。我正在學習他把圖形庫引入 C 語言教學的方法。

[Harbison02] Harbison 、 Steele ,《 C 語言參考手冊( C: A Reference Manual )》第五版,英。其實,這本書是有中文版的,但為了您的健康,還是忘掉他吧,阿門 ……

[Kernighan88] Kernighan 、 Ritchie ,《 C 程序設計語言( The C Programming Language )》第二版,中英 E 。這本書被簡稱為 「K&R2」 ,並被尊稱為 C 語言的 「 聖經 」 。 Ritchie 就是 C 語言的爸爸。

[C99] ISO/IEC 9899:1999 , C 標准 1999 年版, E 。被簡稱為 C99 。可以這樣描述它: 「1. C99 永遠是對的; 2. 如果 C99 錯了,請參看第一條。 」 可笑的是,我們的國家計算機等級考試二級考試的很多題目都是違背 C99 的。相信 Ritchie 來考二級也會被郁悶住。

[Kernighan99] Kernighan 、 Pike ,《程序設計實踐( The Practice of Programming )》,中英電。中英文對照閱讀,又學知識又練英語。

[Linden94] Peter van der Linden ,《 C 專家編程( Expert C Programming )》,中 E 。這是一本行文非常幽默的書(可惜譯文版把很多幽默都搞丟了,這也是沒辦法的事情),因為書面上印著一條腔棘魚,所以它在業界被戲稱為 「 魚書 」 。

[Maguire93] Steve Maguire ,《編程精粹 — Microsoft 編寫優質無錯 C 程序秘訣( Writing Solid Code: Microsoft's Techniques for Developing Bug-Free C Programs )》, E 電。網上很多地方傳播的電子版寫的名字是《 Write Clean Code 》,這里替 Maguire 澄清一下。

[Bryant02] Bryant 、 O』Hallaron ,《深入理解計算機系統( Computer Systems: A Programmer』s Perspective )》,中英 E 。我一定要說,這本書的中譯本是為數不多的翻譯精品。

[Koenig89] Andrew Koenig ,《 C 陷阱與缺陷( C Traps and Pitfalls )》,中 E 電。因為年代久遠,書中有些觀點已經不合時宜,正好用來練習邊讀邊批判。

[ 林銳 03] 林銳、韓永泉,《高質量程序設計指南 ——C++/C 語言》第二版,中電。我覺得這本書錯誤觀點很多很多,正確的也很多很多,歡迎發表你的看法。

[Weiss96] Mark Allen Weiss ,《數據結構與演算法分析 ——C 語言描述( Data Structures and Algorithm Analysis in C )》第二版,中。

[Cormen01] Cormen 、 Leiserson 、 Rivest 、 Stein ,《演算法導論( Introction to Algorithms )》第二版,英 E 。

[Knuth98] Donald Knuth ,《計算機程序設計藝術( The Art of Computer Programming )》 I 、 II 、 III 卷,中英。凡發現書中錯誤的第一個讀者都將得到作者親筆簽發的 2.56 美元的支票。 Knuth 退隱後閑賦在家,江湖風傳第 IV 卷馬上出版,他正在寫第 V 卷(計劃一共寫 VII 卷)。但願你不要讓 Knuth 的寫作速度大於你的閱讀速度。

『叄』 編寫C語言程序

2文檔
設計報告格式
1)設計目的
2)總體設計(程序設計組成筐土、流程圖)
3)詳細設計(模塊功能說明,如函數功能,入口及出口參數說明,函數調用關系描述等)
4)調試與測試:調試方法,測試結果的分析與討論,測試過程中遇到的主要問題及採取的解決措施
5)原程序清單和執行結果:清單中應有足夠的注釋
6)效果及存在問題:說明系統的運行效果(附上運行界面圖片),存在哪些不足以及預防的解決辦法
7)心得體會:談談自己在課程設計過程中的心得體會
8)參考文獻:按參考文獻規范列出各種參考文獻,包括參考書目,論文和網址等

『肆』 C語言程序設計報告的格式

設計報告格式要求課程設計封面使用最後的統一格式。各種圖表必須嚴格符合規范。論文的圖應有圖名和圖號,居中寫在圖的下方;表應有表名、表號,靠左寫在表的上方。表題、圖題用5號黑體,參考文獻用5號楷體。課程設計報告分章節撰寫,書寫層次和章節序號作如下的約定:一、設計任務 (居中書寫,3號黑體)1.1╳ ╳ ╳ ╳ (左起書寫, 4號黑體)1.1.1 ╳ ╳ ╳ ╳ (左起書寫,小4號黑體)1. ╳ ╳ ╳ ╳ (空兩格書寫,小4號黑體)╳ ╳ ╳ ╳ (正文,小4號宋體 首行縮進2個字元)二、功能模塊結構.......三、主要模塊的流程圖及說明.......四、運行結果.......

『伍』 C語言課程設計報告要求

一 、 設計題目

萬年歷的設計

二 、設計要求

1、能夠顯示星期;

2、能夠顯示年月日;

3、能夠修改;

4、當系統時間變動時,能自動跳到相應的時間。

三 、 設計目的

1. 通過本項課程設計,可以培養獨立思考、 綜合運用所學有關相應知識的能力,能更好的鞏固《C語言程序設計》課程學習的內容,掌握 工程軟體設計的基本方法,強化上機動手編程能力,闖過理論與實踐相結合的難關!更加了解了c語言的好處和其可用性!同時增加了同學之間的團隊合作精神!更加也體會到以後在工作中團隊合作的重要性和必要性!

2. 通過C語言課程設計,使學生了解高級程序設計語言的結構,掌握基本的程序設計過程和技巧,掌握基本的分析問題和利用計算機求解問題的能力,具備初步的高級語言程序設計能力。為後續各門計算機課程的學習和畢業設計打下堅實基礎。

四 、設計思想及過程

【一】由於萬年歷具有以下特點:

1。平年365天(52周+1天),閏年366天(52周+2天)。平年2月28天,閏年2月29天。

由於公元1月1日設為星期六,故3月1日為星期三。 ——注意這個「三」

為使演算法達到最簡,故本演算法以「星期」為計算單位。且選3月1日為基月。

2。每400年整一閏,或每4年且不為百年的一閏。(原因:地球繞太陽一周的時間是365天5小時46秒,為了使一年的天數為整數,將一年的天數定為365天,餘下的時間積累起來,四年就是23小時15分4秒,將近一天,把這一天加在某年的二月而成29天,該年稱為閏年,其它年稱為平年。但四年加一天又多用了44分56秒,這個數積滿400年為三天。因此400年中只能有97個閏年,所以凡能被400整除,或不能被100整除但能被4整除的年份為閏年。)

所以百年%4=0閏或(年%4=0並且年<>0)閏。

3。每 4年(3個平年+1個閏年)共208周+5天 ——注意這個「5天」

每百年共100*(208周+5天)-1天=5217周+5天 ——注意這個「5天」(整百年暫設為平年)

每400年共4*(5217周+5天)+1天(整400年閏)=20871周+0天——注意這個「0天」和

「1天」(4個整百年只有一個閏年)

即400年一輪回!(原來萬年歷400年前是一家)

【二】根據萬年歷以上特點進行編寫:

首先對萬年歷年、月、日進行編寫,編寫程序先定義每月的天數為28天,如月份為1、3、5、7、8、10、12就定義天數為31天反之如果月份為4、6、9、11就輸出天數為30天,由上可見2月份為28天但是如果為閏年就有29天就要定義另一個函數#define Year(x) (x%4==0&&x%100!=0||x%400==0) ? 1:0當為閏年時可得1加上該程序便可得到每月的天數。 具體程序見(五、萬年歷程序)

再對其中的星期進行編寫:由於公元1月1日設為星期六,故3月1日為星期三,可以用萬年3月1日星期演算法(特別是那個三)

由於其公式為:

某年3月1日星期幾=(3天+百年%4*5天+年/4*5天+年%4+月星期表+日-1天)%7

某年3月1日星期幾=(百年%4*5天+年/4*5天+年%4+月星期表+日+2天)%7

或 某年3月1日星期幾=(百年%4*5天+年+年/4+月星期表+日+2天)%7

閏4百年3月1日星期演算法(百年%4=0)

其公式為:

某年3月1日星期幾=(年+年/4+月星期表+日+2天)%7

例:0000年3月1日星期幾=(0+0/4+0+1+2)%7=3%7=星期三

1600年3月1日星期幾=(0+0/4+0+1+2)%7=3%7=星期三

2000年3月1日星期幾=(0+0/4+0+1+2)%7=3%7=星期三

2001年3月1日星期幾=(1+1/4+0+1+2)%7=4%7=星期四

2004年3月1日星期幾=(4+4/4+0+1+2)%7=8%7=星期一

2008年3月1日星期幾=(8+8/4+0+1+2)%7=13%7=星期六

2042年3月1日星期幾=(42+42/4+0+1+2)%7=55%7=星期六

平4百年3月1日星期演算法(百年%4<>0)

其公式為:

某年3月1日星期幾=(百年%4*5天+年+年/4+月星期表+日+2天)%7

例:1700年3月1日星期幾=(17%4*5+0+0/4+0+1+2)%7=8%7=星期一(注意:1700年是平年)

1800年3月1日星期幾=(18%4*5+0+0/4+0+1+2)%7=13%7=星期六(注意:1800年是平年)

1900年3月1日星期幾=(19%4*5+0+0/4+0+1+2)%7=18%7=星期四(注意:1900年是平年)

1901年3月1日星期幾=(19%4*5+1+1/3+0+1+2)%7=19%7=星期五

1918年3月1日星期幾=(19%4*5+18+18/4+0+1+2)%7=(15+22+3)%7=40%7=星期五

1958年3月1日星期幾=(19%4*5+58/4*5+58%4+3)%7=(15+70+2+3)%7=90%7=星期六

1988年3月1日星期幾=(19%4*5+88/4*5+88%4+3)%7=(15+110+0+3)%7=128%7=星期二

1999年3月1日星期幾=(19%4*5+99/4*5+99%4+3)%7=(15+120+3+3)%7=141%7=星期一

2100年3月1日星期幾=(21%4*5+0/4*5+0%4+3)%7=(5+0+0+3)%7=8%7=星期一(注意:2100年是平年)

2101年3月1日星期幾=(21%4*5+1/4*5+1%4+3)%7=(5+0+1+3)%7=9%7=星期二

2102年3月1日星期幾=(21%4*5+2/4*5+2%4+3)%7=(5+0+2+3)%7=10%7=星期三

2103年3月1日星期幾=(21%4*5+3/4*5+3%4+3)%7=(5+0+3+3)%7=11%7=星期四

2104年3月1日星期幾=(21%4*5+4/4*5+4%4+3)%7=(5+1+0+3)%7=9%7=星期二(注意:2104年是閏年)

9999年3月1日星期幾=(99%4*5+99/4*5+99%4+3)%7=(120+15+3+3)%7=141%7=星期一

註:按400年一輪回!(400年前是一家)的說法

1600年,2000年是一樣的;

1700年,2100年是一樣的;

1800年,2200年是一樣的;

1900年,2300年是一樣的。

其中萬年某日星期演算法

其公式為:

某日星期幾=(百年%4*5天+年+年/4+月星期表+日+2天)%7

通同星期偏差表

閏年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月

天數 31 29 31 30 31 30 31 31 30 31 30 31

星期 3 6 0 3 5 1 3 6 2 4 0 2

平年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月

天數 31 28 31 30 31 30 31 31 30 31 30 31

星期 4 0 0 3 5 1 3 6 2 4 0 2

為對以上的萬年歷星期的演算法是正確的對其進行了以下的計算:

⒈對於二十世紀任意日期可以用公式某日星期幾=(百年%4*5天+年+年/4+平年月星期表+日+2天)%7=(19%4*5天+年+年/4+平年月星期表+日+2天)%7=(15天+年+年/4+平年月星期表+日+2天)%7以下就是根據上面對其進行的計算:

1900年元旦 1日=(0/4*5+0%4+1+3)%7=(0+0+4)%7=4

1月表=4(平年) 故 4+4=1 即1900年元旦是星期一

1949年國慶 1日=(49/4*5+49%4+1+3)%7=(60+1+4)%7=2

10月表=4(平年) 故 4+2=6 即1949年國慶是星期六

1999年12月31日 31日=(99/4*5+99%4+31+3)%7=(120+3+34)%7=3

12月表=2(平年) 故 2+3=5 即1999年12月31日是星期五

⒉對於二十一世紀新前年蟲演算法(20%4*5=0)可以用公式:某日星期幾=(百年%4*5天+年+年/4+閏年月星期表+日+2天)%7 =(20%4*5天+年+年/4+閏年月星期表+日+2天)%7以下就是根據上面對其進行的計算:

2000年元旦 1日=(0+0/4+1+2)%7=(0+0+1+2)%7=3

1月表=3(閏年) 故 3+3->6 即2027年元旦是星期六

2018年春節 16日=(18+18/4+16+2)%7=(18+4+16+2)%7=5

2月表=0(平年) 故 0+5=5 即2018年春節是星期五

2099年12月31日 31日=(99/4*5+99%4+31+2)%7=(120+3+33)%7=2

12月表=2(平年) 故 2+2=4 即2099年12月31日是星期四

對於上面的分析以及公式的推論和計算證明可以對萬年歷中的星期進行了編寫具體編寫程序見(五 、萬年歷程序)中。

五 、萬年歷源程序

#include"stdio.h"

#include"dos.h"

#include"conio.h"

#include"stdlib.h"

#define Year(x) (x%4==0&&x%100!=0||x%400==0) ? 1:0 /*判斷閏年*/

int numofMonth(int y,int m){

int day,t=28;

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)

day=31; /*定義以上月份為31天*/

else if(m==4||m==6||m==9||m==11)

day=30; /*定義以上月份為30天*/

else{t+=Year(y);

day=t;} /*閏年二月29天,平年28天*/

return day;}

int numofYear(int y){

int t=365; /*平年365天*/

t+=Year(y);/*閏年366天*/

return t;}

int numofbeforeDays(int y,int m,int d){

int sum=d,i;

for(i=1;i<m;i++)

sum+=numofMonth(y,i);

return sum;}

int numofafterDays(int y,int m,int d){

int sum=0,i;

for(i=m;i<=12;i++)

sum+=numofMonth(y,i);

sum-=d;

return sum;}

int isDay(int y,int m,int d){

int year=1900,month=1,week=1,i; /*定義萬年歷是從1900年開始*/

long sum=0;

for(i=year;i<y;i++)

sum+=numofYear(i);

for(i=1;i<m;i++)

sum+=numofMonth(y,i);

/* ++sum;*/

i=sum%7;

week=(week+i)%7;

return week;}

void empty(int n){

int i;

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

printf("%*c",6,' ');}

void OutPutCalender(int y,int m,int d)/*計算x年x月x是星期幾*/{

int week,i,num,t;

week=isDay(y,m,1);

printf("%6d/%02d/%02d\n",y,m,d);

printf("%6s%6s%6s%6s%6s%6s%6s\n","Sun","Mon","Tue","Wed","Thu","Fri","Sat");

empty(week);

num=numofMonth(y,m);

for(i=1;i<=num;i++){

printf("%6d",i);

t=(week+i)%7;

if(t==0)

printf("\n");} /*游標移到下一行*/

printf("\n");}

long numBTDays(int y1,int m1,int d1,int y2,int m2,int d2)/*定義兩個不同日期*/{

int i;

long sum=0;

for(i=y1+1;i<y2;i++)

sum+=numofYear(i);

if(y1==y2){ sum-=d1;

for(i=m1;i<m2;i++)

sum+=numofMonth(y1,i);

sum+=d2;}

else{sum+=numofafterDays(y1,m1,d1);

sum+=numofbeforeDays(y2,m2,d2);}

return sum;}

int Select_mean(){

int sm;

printf("1. OutPut Calender\n"); /*輸出當前月份的日歷*/

printf("2. Help\n"); /*幫助*/

printf("0. Quit\n"); /*退出*/

printf("Please enter choose(0--2):"); /*從0-2中選擇*/

do

scanf("%d",&sm); /*輸入sm*/

while(sm<0||sm>3);

return sm;}

void Help()/*輸出幫助欄的內容*/{

printf(" 1. OutPut Calender\n");

printf(" 2. System Help\n");

printf(" 0. Quit\n");

printf("Page Up: Up year\n"); /*上一年*/

printf("Page Down: next year\n"); /*下一年*/

printf(" --> : next month\n"); /*上一月*/

printf(" <-- : Up month\n");/*下一月*/}

main(){

int year=2006,year1=2006,month,day,y1,m1,d1,y2,m2,d2,c,t; /*定義運行後的日期是2006年*/

int inkeySCAN,inkey; /*輸入鍵盤操作信息*/

union REGS inregs,outregs;

inregs.h.ah=0x2a;

intdos(&inregs,&outregs);

/* year=outregs.xcx; */

month=outregs.h.dh;

day=outregs.h.dl;

year1=year;

printf("%d/%02d/%02d\n",year,month,day);

while(1)/*當選擇為1時,執行以下語句*/{

switch(Select_mean()){

case 1:

OutPutCalender(year,month,day);

while(1){

inkey=bioskey(0);

inkeySCAN=(inkey&0xFF00)>>8;

if(inkeySCAN==77){

if(month==12){month=1;year1++;

OutPutCalender(year1,month,day);/*輸出日歷*/}

else{month++;

OutPutCalender(year1,month,day);

}}

if(inkeySCAN==75){

if(month==1){month=12;year1--;

OutPutCalender(year1,month,day);}

else{month--;OutPutCalender(year1,month,day);}}

if(inkeySCAN==73){

if(year1==1900) year1=year;

else{year1--;OutPutCalender(year1,month,day);}}

if(inkeySCAN==81){

year1++;OutPutCalender(year1,month,day);}

if(inkeySCAN==28)break;}

break; /*終止循環*/

case 2:

Help();

break;

case 0:

exit(0);

default:

printf("Enter ERROR!\n");

break;} }

}

六 運行過程

1.雙擊TC

1. 當對上面的程序進行了調試後運行會出現下面所示:

第一行所顯示的就是系統時間!滿足了第一條要求「顯示年、月、日」。

而當改變系統時間後!再運行該程序上面的日期也隨系統時間改變,所以滿足第四條「當系統時間變動時,能自動跳到相應的時間。」

2. 在游標處按下「1」後回車,將會顯示:

以上的顯示也證明了條件的第2條可以「顯示星期!」

3. 在游標處按下「2」後回車,將會顯示:

按著幫助所講進行了運行可知:按「 Page Up 」鍵其下面接著會顯示上一年該月的萬年歷,按「 Page Down 」鍵其下面會接著顯示下一年該月的萬年歷;按「 ← 」鍵下面將會接著顯示當年上一個月的萬年歷,按「 → 」鍵將會接著在下面顯示去下一個月的萬年歷。

4.

由上所顯示鍵入「0」後將會退去該程序。

由以上運行的結果可知該c語言所設計的萬年歷滿足設計要求!

七、在C語言編程中常見錯誤

C語言的最大特點是:功能強、使用方便靈活。C編譯的程序對語法檢查並不象其它高級語言那麼嚴格,這就給我們留下「靈活的餘地」,但還是由於這個靈活給程序的調試帶來了許多不便,尤其對我們這些初學C語言的人來說,經常會出一些連自己都不知道錯在哪裡的錯誤。看著有錯的程序,不知該如何改起,我通過這次編程,也積累了一些C編程時常犯的錯誤:

1. 書寫標識符時,忽略了大小寫字母的區別。
編譯程序把a和A認為是兩個不同的變數名,而顯示出錯信息。C語言認為大寫字母和小寫字母是兩個不同的字元。習慣上,符號常量名用大寫,變數名用小寫表示,以增加可讀性。

2.忽略了變數的類型,進行了不合法的運算。
%是求余運算,得到a/b的整余數。整型變數a和b可以進行求余運算,而實型變數則不允許進行「求余」運算。

3.將字元常量與字元串常量混淆。
混淆了字元常量與字元串常量,字元常量是由一對單引號括起來的單個字元,字元串常量是一對雙引號括起來的字元序列。C規定以「\」作字元串結束標志,它是由系統自動加上的,所以字元串「a」實際上包含兩個字元:『a'和『\',而把它賦給一個字元變數是不行的。

4.忽略了「=」與「==」的區別。
在C語言中,「=」是賦值運算符,「==」是關系運算符。如:
if (a==3) a=b;
前者是進行比較,a是否和3相等,後者表示如果a和3相等,把b值賦給a。由於習慣問題,初學者往往會犯這樣的錯誤。

5.忘記加分號。
分號是C語句中不可缺少的一部分,語句末尾必須有分號。
a=1 b=2
編譯時,編譯程序在「a=1」後面沒發現分號,就把下一行「b=2」也作為上一行語句的一部分,這就會出現語法錯誤。改錯時,有時在被指出有錯的一行中未發現錯誤,就需要看一下上一行是否漏掉了分號。
{ z=x+y;
t=z/100;
printf("%f",t);
}
對於復合語句來說,最後一個語句中最後的分號不能忽略不寫(這是和PASCAL不同的)。

6.多加分號。
對於一個復合語句,如:
{ z=x+y;
t=z/100;
printf("%f",t);
};
復合語句的花括弧後不應再加分號,否則將會畫蛇添足。
又如:
if (a%3==0);
I++;
本是如果3整除a,則I加1。但由於if (a%3==0)後多加了分號,則if語句到此結束,程序將執行I++語句,不論3是否整除a,I都將自動加1。
再如:
for (I=0;I<5;I++);
{scanf("%d",&x);
printf("%d",x);}
本意是先後輸入5個數,每輸入一個數後再將它輸出。由於for()後多加了一個分號,使循環體變為空語句,此時只能輸入一個數並輸出它。

7.輸入變數時忘記加地址運算符「&」。
int a,b;
scanf("%d%d",a,b);
這是不合法的。Scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去。「&a」指a在內存中的地址。

8.輸入數據的方式與要求不符。scanf("%d%d",&a,&b);輸入時,不能用逗號作兩個數據間的分隔符,如下面輸入不合法:
3,4
輸入數據時,在兩個數據之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。
scanf("%d,%d",&a,&b);C規定:如果在「格式控制」字元串中除了格式說明以外還有其它字元,則在輸入數據時應輸入與這些字元相同的字元。下面輸入是合法的:
3,4
此時不用逗號而用空格或其它字元是不對的。
3 4 3:4
又如:
scanf("a=%d,b=%d",&a,&b);
輸入應如以下形式:
a=3,b=4

9.輸入字元的格式與要求不一致。
在用「%c」格式輸入字元時,「空格字元」和「轉義字元」都作為有效字元輸入。
scanf("%c%c%c",&c1,&c2,&c3);
如輸入a b c
字元「a」送給c1,字元「 」送給c2,字元「b」送給c3,因為%c只要求讀入一個字元,後面不需要用空格作為兩個字元的間隔。

10.輸入輸出的數據類型與所用格式說明符不一致。
例如,a已定義為整型,b定義為實型
a=3;b=4.5;
printf("%f%d\n",a,b);

語法錯
邏輯錯 運行錯
0.忘記定義變數:
main()
{x=3;y=6;
printf(「%d\n」,x+y);

11.C語言的變數一定要先定義才能使用;

12.輸入輸出的數據的類型與所用格式說明符不一致
int a=3;float b=4.5;printf(「%f%d\n」,a,b);
它們並不是按照賦值的規則進行轉換(如把4.5轉換為4),而是將數據在存儲單元中的形式按格式符的要求組織輸出(如b佔4個位元組,只把最後兩個位元組的數據按%d,作為整數輸出)

13.未注意int型數據的數值范圍
int型數據的數值范圍(-32768~32768)
int num=89101;
printf(「%d」,num);
會將超過低16位的數截去從而得到23563
注意:定義了long型,而在輸出時仍用」%d」說明符,仍會出現以上錯誤
14.輸入變數時忘記使用地址符
scanf(「%d%d」,a,b);
15.輸入時數據的組織與要求不符
對scanf函數中格式字元串中除了格式說明符外,對其他字元必須按原樣輸入
16.誤把」=「作為」等於」比較符
「=「為附值運算符
「==「為比較運算符
17.語句後面漏分號
{
t=a;
a=b;
b=t
}
它是pascal的語法
18.不該加分號的地方加了分號
if(a>b);
printf(「a is larger than b\n」);
for(i=0;i<10;i++);
{
scanf(「%d」,&x);
printf(「%d\n」,x*x);
}
19.對應該有花括弧的復合語句,忘記加花括弧
sum=0;
i=1;
while(i<=100)
sum=sum+1;
i++;
20.括弧不配對
while((c=getchar()!=『#』)

putchar(c);
11.在用標識時,忘記了大寫字母和小寫字母的區別
{
int a,b,c;
a=2;
b=3;
C=A+B;
printf(「%d+%d=%D」,A,B,C);
}
12.引用數組元素時誤用發圓括弧
{
int i,a(10);
for(i=0;i<10;i++)
scanf(「%d」,&a(i));
}
13.在定義數組時,將定義的」元素個數」誤認為是」可使用的最大下標值
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i;
for(i=1;i<=10;i++)
printf(「%d」,a[i]);
}
14.對二維或多維數組的定義和引用的方法不對
{
int a[5,4];

printf(「%d」,a[1+2,2+2]);

}
15.誤以為數組名代表數組中全部元素
{int a[4]={1,2,3,4};
printf(「%d%d%d%d」,a);
}
16.混淆字元數組與字元指針的區別
main()
{
char str[40];
str=「Computer and c」;
printf(「%s\n」,str);
}
17.在引用指針變數之前沒有對它賦予確定的值
{
char *p;
scanf(「%s」,p);
}
{
char *p,c[20];
p=c;
scanf(「%s」,p);
}
18.switch語句的各分支中漏寫 break語句
混淆字元和字元串的表示形式

char sex;
sex=「M」;

19.使用自加(++)和自減(--)運算符時出的錯誤
{
int *p,a[5]={1,3,5,7,9};
p=a;
printf(「%d」,*p++);
}
注意於*(++p)的區別;
20.所調用的函數在調用語句之後才定義,而又在調用前未加說明
main()
{float x,y,z;
x=3.5;y=-7.6;
z=max(x,y);
printf(「%f」,z);
}
編譯時不給出出錯信息,但運行結果將與原意不符。這種錯誤尤其需要注意。

八、心得體會

1. 目前流行的計算機日歷程序,比較典型的是Windows各版本中的日歷程序以及基礎於該程序所開發的各種應用程序中的日歷程序。然而,這些程序都千篇一律的局限在一個很短的時間范圍內。(Windows各個版本一般都局限在1980年至2099年這一范圍內),但是,在很多情況下,特別是在眾多的科學研究領域中,一個時間跨度較大的日歷程序是很有參考價值的。C程序設計語言充分發揮了其自身無與倫比的優越性,用極短的程序文本填補了這一領域的空白,同時用鐵的事實強有力的告訴世人:C程序設計語言作為計算機語言家族的新生事物,其發展前景是極為廣闊的。

2. 經過上一個學期對《C程序設計》的學習,我們學習了理論知識,了解了C語言程序設計的思想,這些知識都為我們的下一步學習打下了堅實的基礎。通過課程設計,一方面是為了檢查我們一個學期來我們學習的成果,另一方面也是為了讓我們進一步的掌握和運用它,同時也讓我們認清自己的不足之處和薄弱環節,加以彌補和加強。

3. 通過對c語言萬年歷的設計進一步的鞏固了用c語言編寫程序,並且有利於更好的掌握c語言!

4. 在萬年歷的編寫過程中也體會到了做事情一頂要細心、認真。更加知道了要掌握好基礎知識。還有體會到了成功的感覺!在萬年歷的設計過程中更加體會到了團隊合作的重要性,「一個諸葛亮比不上三個臭皮匠。」知道了只有團隊合作才會更好的完成設計!也體會到以後在工作中團隊合作的必要性和重要性!

5. 通過本項課程設計也培養了我獨立思考、 綜合運用所學有關相應知識的能力,掌握 工程軟體設計的基本方法,強化上機動手編程能力,闖過理論與實踐相結合的難關!

6. 由於C語言是近年在國內外得到迅速推廣應用的一種語言。C語言功能豐富,表達能力強,使用靈活方便,應用面廣,目標程序效率高,可移植性好,既具有高級語言的優點,又具有低級語言的許多特點。通過這次的c語言程序設計更加了解了c語言的好處和其可用性!

7. 在這次課程設計中也知道了自己的動手能力不強有待進一部的提高!在設計過程中不能夠把書本上的知識與實踐相結合,這也就增加了設計不好該程序的想法!在設計過程中的一次次設計錯誤增加了我放棄的想法!不過經過大家的努力終於完成了課程設計!完成該程序後想起自己以前的每一次對自己失去信心,就覺得並不是在知識掌握上打敗了,而是自己對自己缺乏信心!只要自己對自己不失去信心相信就可以完成那些以前認為完成不了的事情!也讓我懂得了要想成功首先就必須有很強的自信心!懂得了自己以後要在做任何事情時都要自信!當自己都不相信自己能夠成功時還可能會獲得成功嗎?

8. 在C語言程序設計的過程中也知道了自己在以前的學習中有很大的不足導致在設計過程中出現了很多的問題,有些地方看不懂也不知道怎麼去設計,但是在設計過程中也學習了很多,掌握了自己以前沒有學好的知識,雖然一時可以掌握完以前沒有學好的知識,不過也給自己敲響了警鍾,在學習中不可以伏於表面,要想學好每一門課程都要踏踏實實,做什麼都不是給別人看的!都是要更好的掌握該門知識,提高自己的自身的修養,提高自己的能力!為以後的工作打下良好的知識基礎和技能基礎!

九、參考文獻

⒈譚浩強編著.C程序設計第二版〔M〕.北京:清華大學出版社,1999

⒉陳朔鷹,陳英編著.C語言趣味程序百例精解〔M〕.北京:北京理工大學出版社,1994

⒊電腦知識與技術學術交流版〔J〕2005.2 (備註:來自網路資源)

⒋Herbert Schildit著. 戴健鵬譯. C語言大全 (第二版)〔M〕.北京:電子工業出版社,1994

⒌譚浩強,張基溫,唐永炎編著. C語言程序設計教程.〔M〕北京: 高等教育出版社,1992

⒍秦友淑,曹化工編著. C語言程序設計教程. 〔M〕武漢:華中理工大學出版社,1996

⒎曹衍龍,林瑞仲,徐慧 編著.C語言實例解析精粹 〔M〕北京:人民郵電出版社,2005.3

⒏黃明等編著.21世紀進階輔導C語言程序設計. 〔M〕大連理工大學出版

『陸』 C 程序設計課程需要的參考文獻有哪些

c語言程序設計,c標准庫函數,演算法。。。。。其他的你自己看能用到的就用

『柒』 c語言程序設計 參考文獻

C語言程序設計實際上是一個非常艱難的事情,因為很多人在這方面做了許多的嘗試,當然了,作為一種新的一種格式,請要學會這種技術也是一個非常困難的事情,當然在很多時候,我們都會在這個事情要做很多的努力,畢竟這種程序設計一旦做好的話,確實有很大的前途,但是想要整體的了解確實是非常困難的事情,所以說想要了解很多。c語言程序設計方面的知識,那麼想要了解的文獻就非常的多了,建議你還是從最基礎的一些學科開始練習,因為這些基礎的參考文獻才是最有用的,比如說c語言入門。課程300級,這個就是非常有用的一個基礎類書籍,這部書籍其實你自己好好的去看一下,基本上有一些關鍵的一些技術就能夠掌握了,但是這種技術的掌握只是一個初步的階段。當你把這個他會之後,再看一些更深層次的創設經驗書籍,這些書籍就會給你說很多相關的專業的知識,當你看好上面的那個基礎書籍之後,那麼再看這些就非常的明顯了,當然了,在這些研究的時候,你還是要有更多的毅力,暑假給自己設定好一個目標,當你看完一個基礎書籍之後,再去尋找另一個。要知道這種語言程序設計是非常枯燥的,如果沒有一個明確的目標,就會陷入一個非常尷尬的設計之中。所以說在這樣的情況之下只要你自己考慮好才能夠讓自己的整個的事業和工作做得更好這種設立的時候,一定要讓自己有更多的目標,從而才能過上自己,在目標的達成上做到一定的發展,從而就會讓自己在整個的語言程序設計方面處取得更好的戰績,可多人在學習的時候,就是因為剛開始的基礎打的不牢銬,所以說後來在關鍵的技術方面卻反而是落下了很多,所以說上面給你推薦的兩部書記一定要重點去參考,這樣的情況下,你才會獲得成功,假設如果自己不去好好的努力,反而是喜歡好高騖遠的話,那麼在語言程序設計方面就很難取得突破了,因為這方面的基礎知識是非常必要的,也是非常重要的,如果你能堅持下來的話,就會獲得成功,如果你自己堅持不下來,而且沒有這樣的耐心那麼你最好提前放棄因為學習對於每一個人來說要根據自己的個性如果的個性不適合這種語言程序設計的話那麼就要離開畢竟這是一個非常枯燥的這種設立的時候,一定要讓自己有更多的目標,從而才能過上自己,在目標的達成上做到一定的發展,從而就會讓自己在整個的語言程序設計方面處取得更好的戰績,可多人在學習的時候,就是因為剛開始的基礎打的不牢銬,所以說後來在關鍵的技術方面卻反而是落下了很多,所以說上面給你推薦的兩部書記一定要重點去參考,這樣的情況下,你才會獲得成功,假設如果自己不去好好的努力,反而是喜歡好高騖遠的話,那麼在語言程序設計方面就很難取得突破了,因為這方面的基礎知識是非常必要的,也是非常重要的,如果你能堅持下來的話,就會獲得成功,如果你自己堅持不下來,而且沒有這樣的耐心,那麼你最好提前放棄,因為學習對於每一個人來說,要根據自己的個性,如果的個性不適合這種語言程序設計的話,那麼就要離開,畢竟這是一個非常枯燥的學問,想要在短期內獲得成功是完全不可能的,而是需要長時間,而且還需要更多的精力才能夠成功,所以說在這樣的情況下,你必須要在長期打仗的基礎上,還要不斷地去努力提高自己其他方面的知識,所以說是一個艱難的過程,你想要完全實現的話,那麼就需要自己做更多的努力了,所以在這方面自己一定要更加的去研究,從基礎上去了解,這樣才能夠慢慢的讓自己的這種語言是設計程序能力慢慢的吐錢出來,當然這需要一個很漫長的過程,需要你的堅持。

『捌』 c語言程序設計的張磊編著

書名:C語言程序設計(第3版)
作者:張磊編著
ISBN:978-7-302-273233
出版社:清華大學出版社
出版日期:2012-9
平裝:317頁
定價:34.5元 本書面向程序設計初學者編寫,以「注重基礎、注重方法、注重編程、注重應用」為指導思想,突出C語言課程的應用性、實踐性特點,靈活運用案例教學、任務驅動、啟發式教學等多種教學方法,對C語言程序設計的語言知識和程序設計的方法過程進行了系統介紹,特別適合將C語言程序設計作為第一門程序設計課程的高校學生。
全書共有九章,分別為程序設計概述、簡單程序設計、分支結構程序設計、循環結構程序設計、數組程序設計、函數程序設計、指針程序設計、結構體程序設計和文件程序設計。
本書主教材和實驗教材合二為一,在每章之後均設有實驗指導,實驗指導內容與教學內容密切銜接,相輔相成。實驗指導分為基礎實驗和綜合實驗兩部分。基礎實驗緊密結合教材中的例題程序設置,以「理解—驗證—完善—擴充—提高」為實驗教學線索,重在鞏固課堂教學知識,提高調試程序及完善程序的能力;綜合實驗以演算法設計和程序實現為重點,訓練運用所學知識解決實際問題的能力。
本書有配套的教學課件、程序資源和試題庫。 第1章 程序設計概述
1.1 程序設計語言
1.2 演算法
1.2.1 演算法概念與演算法描述
1.2.2 演算法的邏輯結構
1.2.4 演算法的特性
1.2.4 演算法評價
1.3 程序設計與實現
1.3.1 程序設計的基本過程
1.3.2 使用VisualC++ 6.0實現C語言程序
1.3.3 程序設計示例
1.4 C語言程序的基本結構
1.4.1 程序的函數化結構
1.4.2 程序中的常量和變數
1.4.3 程序中的基本語句
1.4.5 標識符與保留字
1.4.6 程序風格
小結
習題一
實驗一 編輯運行C語言程序
第2章 簡單程序設計
2.1 用printf()函數輸出數據
2.1.1 固定數值的加法程序
2.1.2 printf()函數
2.2 用scanf()函數輸入數據
2.2.1 任意數值的加法程序
2.2.2 scanf()函數
2.3 輸入輸出字元數據
2.4 語言知識補遺
2.4.1 數據類型
2.4.2 常量詳解
2.4.3 簡單變數詳解
2.4.4 算術運算
2.4.5 賦值運算
2.4.6 宏命令
2.5 程序設計舉例
2.5.1 計算三角形面積
2.5.2 字母轉換
2.5.3 雞兔同籠問題
*2.6 表達式中數據類型的自動轉換
*2.7 用typedef命名數據類型
*2.8使用C++命令輸入輸出數據
2.8.1 簡單的C++程序
2.8.2 C++的輸入和輸出
小結
習題二
實驗二 簡單程序設計
第3章 分支結構程序設計
3.1簡單條件的分支程序
3.1.1判斷優等生程序
3.1.2關系表達式
3.1.3 if語句
3.2 復合條件的分支程序
3.2.1 使用新標準的優等生程序
3.2.2 邏輯表達式
3.3 用switch語句實現分支控制
3.4 goto語句
3.5 條件運算
3.6 分支結構應用舉例
3.6.1 閏年問題
3.6.2 判斷等邊三角形
3.6.3 求解一元二次方程
3.6.4 學生成績分等顯示
小結
習題三
實驗三 分支結構程序設計
第4章 循環結構程序設計
4.1 while循環結構程序
4.1.1 while循環程序示例
4.1.2 while語句
4.1.3 自增、自減運算
4.2 do-while循環結構程序
4.2.1 do-while循環程序示例
4.2.2 do-while語句
4.3 for循環結構程序
4.3.1 for循環程序示例
4.3.2 for語句
4.3.3 逗號表達式
4.4 循環體中的控制命令
4.4.1 break命令
4.4.2 continue命令
4.5 多重循環程序
4.5.1多重循環程序示例
4.5.2多重循環的一般結構
4.6 循環結構程序設計舉例
4.6.1 字元統計
4.6.2 比賽評分
4.6.3 學生成績分等統計
4.6.4 最大公約數
4.6.5 Fibonacci數列
4.6.6 乘法表
4.6.7 搬磚問題
4.6.8 找素數
4.6.9 哥德巴赫猜想
小結
習題四
實驗四 循環結構程序設計
第5章 數組程序設計
5.1 一維數組程序設計
5.1.1 逆序輸出數據程序
5.1.2 一維數組的定義
5.1.3 數值型一維數組的輸入和輸出
5.1.4 數值型一維數組的初始化
5.1.5 字元型一維數組的初始化
5.1.6 一維數組的存儲
5.2字元串操作
5.2.1 字元串的輸入輸出
5.2.2 多字元串操作函數
5.2.3 其他字元串操作函數
5.3二維數組程序設計
5.3.1 矩陣求和程序
5.3.2 二維數組的定義
5.3.3 二維數組的輸入和輸出
5.3.4 二維數組的初始化
5.3.5 二維數組的存儲
5.4 數組應用
5.4.1 排序
5.4.2 查找
5.4.3 單詞統計
5.4.4 矩陣運算
5.4.5 成績處理
5.4.6 楊輝三角形
小結
習題五
實驗五 數組程序設計
第6章 函數程序設計
6.1函數概述
6.2自定義函數示例
6.3函數定義及調用
6.3.1函數定義
6.3.2函數值和return命令
6.3.3 函數調用
6.4函數嵌套和遞歸函數
6.4.1函數嵌套
6.4.2遞歸函數
6.5 數組作為函數的參數
6.5.1數組元素作為函數參數
6.5.2一維數組名作為函數參數
6.5.3用一維數組求解二維數組問題
6.6 函數應用舉例
6.6.1計算長方體的面積
6.6.2利用遞歸函數計算Fibonacci數列
6.6.3排序函數的設計與應用
6.7 變數的作用域和存儲類型
6.7.1變數的作用域
6.7.2變數的存儲類型
小結
習題六
實驗六 使用自定義函數的程序設計
第7章 指針程序設計
7.1 指針概述
7.2指針變數的定義和使用
7.2.1指針變數程序示例
7.2.2定義指針變數
7.2.3使用指針變數
7.3指針與數組
7.3.1指針與一維數組
7.3.2 指針與二維數組
7.3.3 指針與字元串
7.3.4 指針數組
7.4指針作為函數的參數
7.4.1簡單指針變數作函數參數
7.4.2指向數組的指針作函數的參數
7.4.3字元串指針作函數的參數
7.4.4 指針數組作函數的參數
*7.4.5 使用帶參數的main()函數
7.5指針函數和指向函數的指針變數
7.5.1指針函數
*7.5.2指向函數的指針變數
7.6指針應用舉例
小結
習題七
實驗七 指針程序設計
第8章 結構體程序設計
8.1結構體數據概述
8. 2結構體類型和結構體變數
8.2.1使用結構體變數存儲學生信息
8.2.2定義結構體數據類型
8.2.3結構體變數的定義及使用
8.3結構體數組
8.3.1結構體數組概述
8.3.2結構體數組的初始化
8.3.3利用結構體數組管理學生信息
8.4結構體指針變數
8.4.1結構體指針變數的定義及使用
8.4.2結構體指針作函數的參數
8.5使用鏈表動態存儲數據
8.5.1使用鏈表存儲學生信息
8.5.2鏈表的特點
8.5.3動態內存管理函數
8.5.4定義鏈表結構
8.6鏈表的基本操作
8.6.1鏈表結點的插入
8.6.2鏈表結點的刪除
8.6.3鏈表結點的查找
8.7 結構體應用舉例
8.7.1 字元串加密
8.7.2 學生成績排序
8.7.3 Josephus問題
小結
習題八
實驗八 結構體程序設計
第9章 文件程序設計
9.1 文件概述
9.1.1 文件的概念
9.1.2 文件的分類
9.1.3 文件的一般操作過程
9.1.4 文件的指針
9.2文件的基本操作
9.2.1打開和關閉文件
9.2.2最基本的文件讀寫函數
9.3文件的數據塊讀寫操作
9.3.1 fwrite()函數
9.3.1 fread()函數
9.4文件的其他操作
9.4.1文件的格式化讀寫
9.4.2文件的隨機讀寫操作
9.4.3 ftell()函數
9.4.4文件的字元串操作
9.5文件應用舉例
9.5.1文件復制
9.5.2 存儲在文件中的學生成績排序
小結
習題九
實驗九 文件程序設計
附錄一C語言的運算符
附錄二C語言的保留關鍵字
附錄三 常用ASCII碼字元對照表
參考文獻

『玖』 C語言普通論文

1、論文題目:要求准確、簡練、醒目、新穎。
2、目錄:目錄是論文中主要段落的簡表。(短篇論文不必列目錄)
3、提要:是文章主要內容的摘錄,要求短、精、完整。字數少可幾十字,多不超過三百字為宜。
4、關鍵詞或主題詞:關鍵詞是從論文的題名、提要和正文中選取出來的,是對表述論文的中心內容有實質意義的詞彙。關鍵詞是用作機系統標引論文內容特徵的詞語,便於信息系統匯集,以供讀者檢索。 每篇論文一般選取3-8個詞彙作為關鍵詞,另起一行,排在「提要」的左下方。
主題詞是經過規范化的詞,在確定主題詞時,要對論文進行主題,依照標引和組配規則轉換成主題詞表中的規范詞語。
5、論文正文:
(1)引言:引言又稱前言、序言和導言,用在論文的開頭。 引言一般要概括地寫出作者意圖,說明選題的目的和意義, 並指出論文寫作的范圍。引言要短小精悍、緊扣主題。
〈2)論文正文:正文是論文的主體,正文應包括論點、論據、 論證過程和結論。主體部分包括以下內容:
a.提出-論點;
b.分析問題-論據和論證;
c.解決問題-論證與步驟;
d.結論。
6、一篇論文的參考文獻是將論文在和寫作中可參考或引證的主要文獻資料,列於論文的末尾。參考文獻應另起一頁,標注方式按《GB7714-87文後參考文獻著錄規則》進行。
中文:標題--作者--出版物信息(版地、版者、版期):作者--標題--出版物信息
所列參考文獻的要求是:
(1)所列參考文獻應是正式出版物,以便讀者考證。
(2)所列舉的參考文獻要標明序號、著作或文章的標題、作者、出版物信息。

『拾』 c語言程序設計參考文獻

《c primer plus》 《c 演算法》 《高質量c編程指南》 《c語言核心技術》 《C語言深度剖析》 《徹底搞定c指針》