第一篇:中國石油大學(華東)-C語言學習心得
C語言學習心得
開課之前信息的收集:在高中的時候就聽過程序員這個職業,當時也只知道這些人是寫程序的,然而程序是什么具體我也不知道。終于上大學了,我看到自己的課表上有C程序設計,感到很興奮,自己終于要開始學程序。于是我問大二的學長學姐C語言學習經驗,他們只對我說,有點難學(可能是他們沒認真學的原因)要好好學,在老鄉會上剛剛找到工作的大四學長對我講述他求職百度的時候的經歷,百度面試官問他說你會什么編程語言,他說會C,C#,java。面試官接著問你最擅長哪個,他說C語言,緊著接面試官問了一系列關于C語言的問題,一個比一個深入,他答不出來,最后的結果就是直接被拒絕。臨走的時候百度面試官對他說,只要你能掌握一門編程語言就能要你。學長告誡我,信管會學很多課但都是只知道一點,因此要學既然要學一門編程就要把它學精,哪怕其它的編程語言不擅長也沒關系,我現在就后悔當時沒好好學。知道這些情況后我決心學好C語言。
開課后學習的經歷:第一節課上,老師說由于課程的安排,前四章的知識會講的很快,對編程有用的就說,還有些理論課下自己看看,介紹了C語言的發展和編程格式輸入和輸出。緊接著的上機課我寫了人生的第一個程序,覺得很有意思,從此就喜歡上了編程,喜歡這種邏輯的推理與設計,課前我會將書上的知識點掌握,然后上課認真聽老師講課,看看自己有沒有漏掉什么知識點,書上沒說的和老師給的程序要記下來,回來后自己來體驗下這個程序。就這樣到了期中考試,結果并不好,讓我認識到自己不能只停留在programe上,要多做acm上的題目,并且課下要多讀別人的代碼來學習方法,就這樣白天在圖書館里看書,晚上回來編程,兩個月后發現有了很大進步,也發現C語言更有趣了。我也很積極報了來年三月份的計算機二級等級考試,雖然只學了一半,但是我想通過自己的學習和請教老師,拿到那個證書應該不是問題,就這樣我開始了自學后半部分,發現真的很暈,果然后面不簡單。但是我想到每件事開始的時候都是困難的,就這樣我堅持了下來,在老師的幫助下我也成功的過了,并且還是優秀,而且由于自己事先學過了,所以下學期的學習并沒有特別困難。
通過學習Funcode讓我真正的看到了C語言的應用,課上學的只是C語言的理論,而最重要的是應用。經過實驗每個函數的功能,掌握每種函數的接口,再根據自己的設計將這些函數通過一定的組合和排列,制作出一個屬于自己的動畫,這種感覺真的很棒。我都迫不及待地想給我愛看動畫的小表弟展示我制作的動畫和體驗我設計的游戲,雖然這些動畫和游戲還比較低級,但我想他看到后一定會很開心。
一年的學習經歷不僅讓我C語言入門,更教會了我許多許多。教會了我如何自主學習;教會了我只要你肯努力,就能學有所成;教會了我堅持自己所喜歡的,并為之汗水,結果也一定讓人滿意。感謝老師一年來一直以來對我的指導和教誨,課下犧牲自己休息的時間來為我解答問題,為我提前開放作業題。
結課之后的打算:希望能通過自己的努力進入學校的ACM團隊,繼續深入的學習C語言,畢竟自己也才入門而已,離精通還很遠。同時大二的時候去蹭課學習算法和數據結構來進一步提升自己的編程能力。
第二篇:中國石油大學(華東)C語言習題答案
付子文
C語言習題集
C語言復習題
【設計型】5.1 輸出一行星號
編寫程序在一行中輸出 N 個星號。輸入: N值
輸出: 一行中N個星號 #include
輸入圖形的高 n,輸出如下例(n=5)所示的圖形.***** ***** ***** ***** ***** 輸入:
付子文
C語言習題集
整數n例如 5 輸出:
由*組成的高為5的平行四邊形 #include 編寫程序,輸入n的值,求 :1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n(保留四位小數)#include 付子文 C語言習題集 i=1,sum=0;while(i<=n){ sum=sum+k/i;i++;k=-k;(用這個式子實現正負交替)} printf(“sum=%.4lfn”,sum);return 0;} 【設計型】5.4 分數序列 有一個分數序列:求出其前n項的和。 ...............,輸入整數n,輸出語句格式為:printf(“sum=%16.10fn”,s);#include 付子文 C語言習題集 { sum=sum+a*1.0/b;temp=a;a=a+b;b=temp;(幾個式子實現數值的變換) i++;} printf(“sum=%16.10fn”,sum);return 0;} 【設計型】5.5 求e的值 編寫程序,從鍵盤輸入整數 n , 求 e 的值.e=1+1/1!+1/2!+1/3!+..+1/n!注意:用 double 型數據計算輸出語句:printf(“sum=%16.10fn”,sum);#include 付子文 C語言習題集 輸入兩個正整數m和n,求它們的最大公約數和最小公倍數 比如,輸入m和n的值分別為14和21,則最大公約數為7,最小公倍數為42。#include bei=ji/n;(最小公倍數求法) printf(“the greatest common divisor is %dn”,n);printf(“the least common multiple is %dn”,bei);return 0;} 【設計型】5.7 水仙花數 付子文 C語言習題集 輸出所有的水仙花數。所謂的水仙花數是指一個3位數,其各位數字立方和等于該數本身。例如153是一水仙花數,因為153=13+53+33 輸出語句:printf(“%dn”,n); #include 一個數如果恰好等于它的因子之和,這個數就稱為完數。例如,6的因子為1,2,3,且6=1+2+3,因此6是完數,從鍵盤上輸入一個正整數,判斷其是否為完數。如果是,則按照如下格式輸出。比如,輸入6,則輸出Yes,its factors are 1 2 3;如果輸入8,則輸出No #include 付子文 C語言習題集 { int yinzi,num,i,sum=0;scanf(“%d”,&num);for(yinzi=1;yinzi 輸入兩個正整數m和n,求出[m,n]區間的所有素數 付子文 C語言習題集 #include if(i%j==0){ tag=0;break;} else tag=1;} if(tag)printf(“ %d”,i);} printf(“n”);return 0; 付子文 C語言習題集 } 【設計型】5.10 回文數 輸入一個數,判斷是否為回文數,如果是,輸出Yes,否則輸出No #include if(num==min)printf(“Yesn”);else printf(“Non”);return 0;} 【設計型】5.11 貪吃的猴子 有一只猴子,第一天摘了若干個桃子,當即吃了一半,但還覺得不過癮,就又多吃了一個。第2天早上又將剩下的桃子吃掉一半,還是覺得不過癮,就又多吃 付子文 C語言習題集 了兩個。以后每天早上都吃了前一天剩下的一半加天數個(例如,第5天吃了前一天剩下的一半加5個)。到第n天早上再想吃的時候,就只剩下一個桃子了。輸入: 天數n 輸出: 第一天的桃子個數,輸出語句為printf(“The monkey got %d peachs in first day.n”,sum);Smaple: Input: 5 Output The monkey got 114 peachs in first day.提示: 問題分析: 總共 t0 日 吃掉 剩余 t0/2+1 t0-(t0/2+1)=t0/2-1 t1=t0/2-1 =>t0=(t1+1)*2 2 t1/2+2 t1-(t1/2+2)=t1/2-2 t2=t1/2-2 =>t1=(t2+2)*2....n-1 tn-2/2+(n-1)tn-2-(tn-2/2+(n-1))=tn-2/2-(n-1)tn-1=tn-2/2-(n-1)=> tn-2=(tn-1+n-1)*2 n 1 0 tn-1=1 #include 付子文 C語言習題集 int i,t,sum;scanf(“%d”,&t);sum=1;for(i=t;i>1;i--){ sum=(sum+i-1)*2;? } printf(“The monkey got %d peachs in first day.n”,sum);return 0;} 【創新型】5.12 馬戲團觀眾人數 一個馬戲團表演,n 個座位全滿,全部門票收入是 120 元,現在知道,男人每人 5 元,女人每人 2 元,小孩每人 1 角。編程,輸入總人數 n,輸出滿足要求的男人、女人和小孩人數的全部方案。若 n 人無法滿足條件,則輸出“No outputn”。輸入: 人數 n 輸出: 男人、女人和小孩人數 #include 付子文 C語言習題集 for(woman=0;woman<=(total-man);woman++){ child=total-man-woman;sum=50*man+20*woman+1*child;if(sum==1200){ tag=1;printf(“%d %d %dn”,man,woman,child);} } } if(tag==0)printf(“No outputn”);return 0;} 【設計型】5.13 迭代法 用迭代法求 .求平方根的迭代公式為: 要求前后兩次求出的x的差的絕對值小于10-5。 #include 付子文 C語言習題集 int main(){ double x,a,b;double i;scanf(“%lf”,&x);b=x;for(i=1;;){ a=i;i=(i+x/i)/2;if(fabs(i-a)<=0.00001){ printf(“The square root of %.2lf is %.5lfn”,b,i);break;} } return 0;} 【設計型】5.14 cos(x)-x=0 利用以下所示的簡單迭代方法求方程:cos(x)-x=0的一個實根。Xn+1=cos(Xn)迭代步驟如下: (1)取X1初值為0.0; (2)X0=X1,把X1的值賦給X0; (3)X1=cos(X0),求出一個新的X1; (4)若X0-X1的絕對值小于0.000001,執行步驟(5),否則執行步驟(2); 付子文 C語言習題集 (5)所求X1就是方程cos(X)-X=0的一個實根,輸出X1,輸出語句為printf(“x=%lf”,x)。 提示:本題x0和x1定義為double類型 #include 付子文 C語言習題集 編寫程序,求某三位數,該數值的大小正好是組成這個數的三個位上的數字階乘之和。 輸出格式:printf(“%dn”,num);#include 付子文 C語言習題集 printf(“%dn”,i);break;} } } 【研究創新型】6.1 誰能出線 背景: 電視臺舉辦“超級學生”才藝大賽,由于報名人數狂多,所以要先進行分組預賽。按規定,每10名學生為一個預賽小組,評委打出分數(0~100分),各小組第一名可以進入下一輪;如果有多名學生得分相同都是第一名,則可同時進入下一輪。 輸入: 按順序給出一個小組10個人的最后得分(int)。 輸出: 能夠出線的學生序號(0~9)。#include int i,a[10],max;for(i=0;i<10;i++)scanf(“%d”,&a[i]);max=a[0];for(i=0;i<10;i++){ 付子文 C語言習題集 } } if(max<=a[i])max=a[i];for(i=0;i<10;i++)if(a[i]==max)printf(“%dn”,i);return 0;【設計型】6.2 統計素數的個數 求出 2 到 m 之間(含 m,m<=1000)所有素數并放在數組 a 中。輸入:正整數m 輸出:從小到大的所有素數,及個數(素數輸出的時候用%4d來控制)如:輸入:10 輸出:2 3 5 7 4 #include 付子文 C語言習題集 for(j=2;j 冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直 付子文 C語言習題集 至比較最后兩個數,將小數放前,大數放后。至此第一趟結束,將最大的數放到了最后。在第二趟:仍從第一對數開始比較(因為可能由于第2個數和第3個數的交換,使得第1個數不再小于第2個數),將小數放前,大數放后,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二趟結束,在倒數第二的位置上得到一個新的最大數(其實在整個數列中是第二大的數)。如此下去,重復以上過程,直至最終完成排序。 由于在排序過程中總是小數往前放,大數往后放,相當于氣泡往上升,所以稱作冒泡排序。編寫程序,對輸入的十個數按照從小到大排序 #include 付子文 C語言習題集 } } for(j=0;j<10;j++){ printf(“ %d”,a[j]);} printf(“n”);return 0;} 【設計型】6.4 插入法排序 如果一個數組中保存的元素是有序的(由小到大),向這個數組中插入一個數,使得插入后的數組元素依然保持有序。 定義一個數組,長度為11,初始元素為10個,按照從小到大的方式輸入,然后輸入一個要插入的元素,使得插入后仍然有序。#include 付子文 C語言習題集 { t=a[10];for(j=10;j>i;j--){ a[j]=a[j-1];} a[i]=t;break;} } for(i=0;i<11;i++)printf(“ %d”,a[i]);printf(“n”);return 0;} 【設計型】6.5 求各位數字組成的最大數 任意輸入一個自然數,輸出該自然數的各位數字組成的最大數。例如,輸入 1593,則輸出為 9531。輸入: 自然數 n 輸出: 各位數字組成的最大數 #include 付子文 C語言習題集 { int a[12],num,i,j,k,m,t;scanf(“%d”,&num);for(i=0;;i++){ k=num%10;num=num/10;(分離各個位數)a[i]=k;if(num==0)break;} for(m=0;ma[j+1]){ t=a[j+1];a[j+1]=a[j];a[j]=t;} } } for(j=i;j>=0;j--) 付子文 C語言習題集 printf(“%d”,a[j]);printf(“n”);return 0;} 【設計型】6.6 數組逆序輸出 問題描述 從鍵盤上輸入一個數組(10個元素),將原數組逆序重新排列后輸出。要求輸出每個元素時以一個空格隔開。提示: 用第一個與最后一個交換。 #include 付子文 C語言習題集 printf(“%d ”,a[i]);printf(“n”);return 0;} 【設計型】6.7 求最大值 問題描述 要求從鍵盤輸入10個整型數據,找出其中的最大值并顯示出來。輸入范例 0 54-710 27 32767 10 1 500 2 輸出范例 32767 提示 先假定第一個元素時最大值,然后和其他的元素一個一個的進行比較,直到找到最大值。 #include 付子文 C語言習題集 { if(a[i]>max)max=a[i];} printf(“%d”,max);printf(“n”);return 0;} 【設計型】6.8 二維數組 程序定義了 4× 4 的二維數組,請編寫程序,給二維數組賦值,并使數組下半三角元素中的值乘以n。例如: 數組中的值為 假設n為10,則輸出結果如下:(輸出的數按照4位寬度來輸出,即%4d) #include 付子文 C語言習題集 int a[4][4],i,j,n,count=0;for(i=0;i<=3;i++){ for(j=0;j<=3;j++)scanf(“%d”,&a[i][j]);} scanf(“%d”,&n);for(j=0;j<=3;j++){ for(i=j;i<=3;i++){ a[i][j]=n*a[i][j];} } for(i=0;i<=3;i++){ for(j=0;j<=3;j++){ count++;printf(“%4d”,a[i][j]);if(count%4==0)printf(“n”);} 付子文 C語言習題集 } return 0;} 【設計型】6.9 在屏幕上顯示楊輝三角形 楊輝三角形,又稱賈憲三角形,帕斯卡三角形,是二項式系數在三角形中的一種幾何排列。 其實,中國古代數學家在數學的許多重要領域中處于遙遙領先的地位。中國古代數學史曾經有自己光輝燦爛的篇章,而賈憲三角的發現就是十分精彩的一頁。 楊輝三角有如下性質: 1、每行數字左右對稱,由1開始逐漸變大,然后變小,回到1。 2、第n行的數字個數為n個。 3、每個數字等于上一行的左右兩個數字之和。 編寫程序,輸入正數n,將所有數據存儲到二維數組中,并在屏幕上顯示對應的楊輝三角形(注意數據之間的空格)。例如:n=5 圖形如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 #include 付子文 C語言習題集 int i,j,n;int a[10][10];scanf(“%d”,&n);n=n+1;for(i=0;i 付子文 C語言習題集 return 0;} 【設計型】6.10 求二維數組周邊元素之和 編寫一個程序,求出4×5的二維數組周邊元素之和。輸入:二維數組元素 輸出:周邊元素之和 如: 輸入: 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 輸出:61 #include 付子文 C語言習題集 sum1=sum1+a[0][j]+a[3][j];for(i=0;i<4;i++)sum2=sum2+a[i][0]+a[i][4];sum=sum1+sum2-a[0][0]-a[0][4]-a[3][4]-a[3][0];printf(“%dn”,sum);return 0;} 【設計型】6.11 存儲并輸出一個矩陣 編程,輸入 n,存儲并輸出如下例(n=5)所示的 圖形。1 2 3 4 5 1 1 2 3 4 1 1 1 2 3 1 1 1 1 2 1 1 1 1 1 #include 付子文 C語言習題集 a[i][j]=1; } } for(i=0;i 付子文 C語言習題集 【設計型】6.12 給數組中的元素按順序編號 對數組 a[10] 中的十個整數從小到大進行連續編號,輸出各個元素的編號。要求不能改變數組 a 中元素的順序,且相同的整數要具有相同的編號。例如數組是: A=(5,3,4,7,3,5,6,8,9,10)則輸出為:(4,1,3,7,1,4,6,8,9,10)#include 付子文 C語言習題集 for(i=1;i<11;i++)if(c[m]==a[i]){ printf(“%3d”,i);break;} printf(“n”);return 0;} 【設計型】8.1 字符轉換 描述 提取一個字符串中的所有數字字符(‘0’...‘9’)將其轉換為一個整數輸出。輸入 一個以回車符為結束標志的字符串(少于80個字符)。輸出 把字符串中的所有數字字符(‘0’...‘9’)轉換為一個整數并輸出。 #include 付子文 C語言習題集 n=strlen(word);for(i=0;i<=n;i++){ if(word[i]>='0'&&word[i]<='9'){ printf(“%c”,word[i]);} } printf(“n”);return 0;} 【設計型】8.2 合并字符串 輸入兩個已經按從小到大順序排列好的字符串,編寫一個合并兩個字符串的函數,使合并后的字符串,仍然是從小到 大排列。 輸入: 兩個已經排好順序(升序)的字符串 輸出: 一個合并在一起的有序(升序)的字符串 要求: 設計一個效率盡量高的算法,對每個字符串只掃描一遍就可以了。如果采用先進行串連接,然后再進行排序的算法,則效率太低了。 #include 付子文 C語言習題集 int main(){ char a[100],b[100];char n[200],t;int i,j,k,m;gets(a);gets(b);for(i=0;a[i]!=0;i++)n[i]=a[i];for(j=0;b[j]!=0;j++,i++)n[i]=b[j];n[i]='
主站蜘蛛池模板:
亚洲欧美综合国产不卡|
国模杨依粉嫩蝴蝶150p|
韩国19禁无遮挡啪啪无码网站|
欧美日韩在线视频|
国模无码视频一区|
日日猛噜噜狠狠扒开双腿小说|
九月婷婷人人澡人人添人人爽|
国产精品 视频一区 二区三区|
国产超碰女人任你爽|
国产精品无码无卡无需播放器|
中文字幕免费无码专区|
国产真人无遮挡作爱免费视频|
自拍偷区亚洲综合美利坚|
国产真实乱对白精彩久久老熟妇女|
国产乱人无码伦av在线a|
大粗鳮巴久久久久久久久|
亚洲成av人最新无码不卡短片|
亚洲a∨无码精品色午夜|
后入内射欧美99二区视频|
亚洲 欧美 激情 小说 另类|
亚洲乱码中文字幕综合|
日韩亚洲国产综合高清|
不卡无码人妻一区三区|
亚洲精品久久久无码一区二区|
欧美视频二区欧美影视|
2021最新久久久视精品爱|
久久婷婷综合缴情亚洲狠狠|
国产高清av在线播放|
人人爽人人澡人人人妻、百度|
久久久久久夜精品精品免费啦|
欧美成人看片一区二区三区尤物|
亚洲图片校园另激情类小说|
97久久精品无码一区二区|
欧美午夜一区二区福利视频|
伊人久久大香线蕉精品|
狠狠色综合网久久久久久|
亚洲熟妇中文字幕日产无码|
精品无码老熟妇magnet|
国产av亚洲第一女人av|
女人裸体做爰免费视频|
已婚少妇美妙人妻系列|