❶ c語言邏輯思維和編程思想分別是什麼
c
語言邏輯
思維,應該沒有這個說法。至於
邏輯思維能力
,
像
夏洛克
,
狄仁傑
,
袁芳
這些人的邏輯思維能力就比較強。
編程思想。
c語言是
面向過程
。
也就是要做一件事,分析出做這件事的步驟,然後將這些步驟寫成個函數。你應該畫過流程圖吧,
第一步怎麼做,下一步怎麼做,就是這種思想。
❷ C語言的編程思想詳細 精闢
看你沒有基礎了~
沒有基礎的話:
1.建議先買C語言二級考試的教程看下。很基礎,講細很詳細,錯誤比較少。
2.先弄懂進制轉換,然後是表達式的先後順序
3.然後是三種基本語句,這個很重要,是所有語言的基礎——順序,選擇,循環,這三種句語熟了以後會有一種編程的羅輯思維。
4.然後是一些排序法,冒泡啊什麼的
5.然後就是C當中很多人最難理解的指針。
以上的差不多了,就可以去看一些高深一點的書了,然後想著去解決一個實際問題去編程。
書至少要看三次,
第一次大概的看一下,不懂沒事兒。
第二次,邊看邊做題然後上機演練,不懂的一定要弄到懂為止。
第三次,大概的回顧一下,自己弱項加強鞏固一下
這樣下來一般能把一門計算機語言就基本撐握了
❸ 什麼是編程思想,c語言的編程思想是什麼
感覺以前的認識有很大問題,很嚴重影響到了自己,我是學計算機專業的,我總想找出一個可以長久學習的語言,在學校學過c語言,java之類的,當時php很火,但是畢業之後就不火了,java還是需求很多,所以我就在想java和web前端是否是經久不衰的(一個前端一個後端霸主),但是後來又發現一個問題,這只是代表現在流行,就像以前大學大部分都是學c語言,java都不教的,c#也不教,那以後十幾年後的大學是否java也會被淘汰而被其他的高級語言所替代?一百年後呢?我以前喜歡php因為喜歡他的技術體系還有可以做出來的東西(網站之類的),但是後來淘汰了,我學了前端但是我依舊喜歡php導致我很迷茫。所以後來我也安慰自己把范圍縮小到只喜歡具體某個語言(比如java,還是js,還是php之類,就不像以前喜歡到技術棧和作品),但最大的問題是還是面臨喜歡的問題。假如你喜歡的技術淘汰了怎麼辦?喜歡的語言淘汰了怎麼辦?雖然以前也有老師說感興趣的可能最後學得更好,那是因為當時所有編程語言都流行,所以你感興趣哪個語言都沒問題,但是就像現在有不少編程語言慢慢淘汰了,這時候你的感興趣就會和市場就業所沖突,這時候你就會矛盾,迷茫。但也有老師說編程語言只是工具,我們要學會編程思想,面向金錢編程,不要去執迷於某個語言,語言只是工具,這樣就不會造成說你感興趣的萬一淘汰了怎麼辦,而你這時候心態是變化的,所有技術你都可以學,你是用技術來解決問題的,而不像以前那樣只限於某個技術無法自拔。當然這里說的是大部分普通人,有些人特別厲害,小眾語言技術都能寫得很厲害,也不用擔心什麼流行還是不流行,那些人就另說了。還有一些人是興趣愛好也無所謂。但是大部分普通人還是要綜合考慮,比如c語言這些比較難的也要考慮是否合適。(可能自己想太多,我再想如果以後孩子也學編程讓他學什麼語言?我大學的時候學得太散,沒有專門主要學一門所以後悔,畢業後培訓了web前端,也學了node,當時我在想如果大學也學了node會不會更輕松,對其他後台語言做課程設計也有幫助,但是我又發現大學培訓web前端的似乎當時很多都教到jq就能工作了,node根本也沒學到,所以不適合大學學直到工作。所以我又再想如果一直學java是不是更合適,但是我又發現也只是現在分析得合適,就像以前大學都沒java這門課程,以後就算小孩讀大學可能java也淘汰了,所以java也不適合,只是現在看現在很適合而已。所以說不要限制自己於某個語言技術,要以解決問題的眼光去學,想想如果當時就算只學一門或許也沒什麼用,因為感覺自己想太多有強迫症只限於一門語言,而排除其他語言技術這樣很限制自己,很被動),而技術都在變的,流行的東西也在變,如果你只限於喜歡某個技術這樣容錯率就會很低,淘汰了怎麼辦,除非那些非常厲害的,不如大部分普通人還是要跟著公司和技術變化。所以說不要讓自己只限於喜歡某個技術,要靈活點,這樣最後就算丟棄了也沒什麼可惜的。你的技術是解決問題的,除非客戶有指定什麼技術,不然你做出來的東西客戶只在乎好不好用,至於你是怎麼實現的,用什麼技術實現的客戶也不在乎,或許也不懂,只要你做出來客戶覺得好用適合就行了,所以不要總是糾結於喜歡什麼技術,應該用喜歡的技術去解決什麼的。當然啦,如果是你太討厭的技術或者方向也沒必要太強迫自己學了,除非公司一定要用那你就自己決定。當然也不是說不能什麼都不喜歡,有些東西喜歡並不會影響你(比如以前得玩具,現在的電腦啊,汽車啊,喜歡懷舊,什麼手動擋啊,自動擋啊什麼的,並不會影響你太多,限制你太多),最多後面淘汰丟掉就行(雖然或許不舍)。不像技術,讓喜歡限製得太死會讓你迷茫,矛盾,影響自己。
❹ C語言結構化程序設計的思想和方法原則是什麼
設計思想:
結構化程序設計的總體思想是採用模塊化結構,自上而下,逐步求精。即首先把一個復雜的大問題分解為若干相對獨立的小問題。
然後,對每個小問題編寫出一個功能上相對獨立的程序塊(模塊)。最後將各程序塊進行組裝成為一個完整的程序。
方法原則:
1、只採用三種基本的程序控制結構來編製程序,從而使程序具有良好的結構;
2、程序設計自頂而下;
3、用結構化程序設計流程圖來表示演算法。
(4)c語言編程基本思想擴展閱讀:
設計方法
1、自頂向下
程序設計時,應先考慮總體,後考慮細節;先考慮全局目標,後考慮局部目標。不要一開始就過多追求眾多的細節,先從最上層總目標開始設計,逐步使問題具體化。
2、逐步細化
對復雜問題,應設計一些子目標作為過渡,逐步細化。
3、模塊化
一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為子目標,再進一步分解為具體的小目標,把每一個小目標稱為一個模塊。
優缺點:
1、優點
由於模塊相互獨立,因此在設計其中一個模塊時,不會受到其它模塊的牽連,因而可將原來較為復雜的問題化簡為一系列簡單模塊的設計。
模塊的獨立性還為擴充已有的系統、建立新系統帶來了不少的方便,因為我們可以充分利用現有的模塊作積木式的擴展。
2、缺點
用戶要求難以在系統分析階段准確定義,致使系統在交付使用時產生許多問題。用系統開發每個階段的成果來進行控制,不能適應事物變化的要求。
❺ C語言中都有哪些設計思想
C 語言作為一種結構化的程序設計語言,在模塊的劃分上主要依據功能(依功能進行劃分在面向對象設計中成為一個錯誤,
牛頓定律遇到了>相對論),C 語言模塊化程序設計需理解如下概念:
(1) 模塊即是一個.c 文件和一個.h 文件的結合,頭文件(.h)中是對於該模塊介面的聲明;
(2) 某模塊提供給其它模塊調用的外部函數及數據需在.h 中文件中冠以extern 關鍵字聲明;
(3) 模塊內的函數和全局變數需在.c 文件開頭冠以static 關鍵字聲明;
(4) 永遠不要在.h 文件中定義變數!定義變數和聲明變數的區別在於定義會產生內存分配的操作,是匯編階段的概
念;而聲明則只是告訴包含該聲明的模塊在連接階段從其它模塊尋找外部函數和變數。如:
/*mole1.h*/
int a = 5; /* 在模塊1 的.h 文件中定義int a */
/*mole1 .c*/
#include "mole1.h" /* 在模塊1 中包含模塊1 的.h 文件 */
25
/*mole2 .c*/
#include "mole1.h" /* 在模塊2 中包含模塊1 的.h 文件 */
/*mole3 .c*/
#include "mole1.h" /* 在模塊3 中包含模塊1 的.h 文件 */
以上程序的結果是在模塊1、2、3 中都定義了整型變數a,a 在不同的模塊中對應不同的地址單元,這個世界上從來不
需要這樣的程序。正確的做法是:
/*mole1.h*/
extern int a; /* 在模塊1 的.h 文件中聲明int a */
/*mole1 .c*/
#include "mole1.h" /* 在模塊1 中包含模塊1 的.h 文件 */
int a = 5; /* 在模塊1 的.c 文件中定義int a */
/*mole2 .c*/
#include "mole1.h" /* 在模塊2 中包含模塊1 的.h 文件 */
❻ 學習C語言需要掌握哪些基本知識
1.入門程序
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
2.數據類型
數據類型:
1.基本數據類型:
1.1. 整型:int 4個位元組
1.2. 字元型:char 1個位元組
1.3. 實型(浮點型)
1.3.1.單精度型:float 4個位元組
1.3.2.雙精度型:double 8個位元組
%d:十進制整數;
%c:單個字元;
%s:字元串;
%f:6位小數;
- #include <stdio.h>
- int main()
- {
- int age = 18;
- float height = 1.85;
- char unit = 'm';
- printf("小明今年%d歲 ", age);
- printf("小明身高%f%c ", height, unit);
- printf("小明現在在慕課網上學習IT技術 ");
- return 0;
- }
- #include <stdio.h>
- #define POCKETMONEY 10 //定義常量及常量值
- int main()
- {
- printf("小明今天又得到%d元零花錢 ", POCKETMONEY);
- return 0;
- }
表達式1 ? 表達式2 : 表達式3;
- #include <stdio.h>
- int main()
- {
- //定義三位數num,個位數sd,十位數td,百位數hd
- int num, sd, td, hd;
- //循環所有三位數
- for( num=100 ; num<1000 ; num++ )
- {
- //獲取三位數字num百位上的數字
- hd = num/100 ;
- //獲取三位數字num十位上的數字
- td = num/10%10 ;
- //獲取三位數字num個位上的數字
- sd = num%10 ;
- //水仙花數的條件是什麼?
- if(num ==hd*hd*hd+td*td*td+sd*sd*sd )
- {
- printf("水仙花數字:%d ", num);
- }
- }
- return 0;
- }
- #include <stdio.h>
- int main()
- {
- int i, j, k;
- for(i=1; i<5; i++)
- {
- /* 觀察每行的空格數量,補全循環條件 */
- for( j=i ; j<5 ; j++ )
- {
- printf(" "); //輸出空格
- }
- /* 觀察每行*號的數量,補全循環條件 */
- for( k=0 ; k<2*i-1 ; k++ )
- {
- printf("*"); //每行輸出的*號
- }
- printf(" "); //每次循環換行
- }
- return 0;
- }
- #include <stdio.h>
- int main()
- {
- int sum = 0;
- int i;
- for(i=1; i<=10; i++)
- {
- printf("%d ", i);
- if(i==3){
- goto LOOP;//滿足條件就執行goto語句
- }
- }
- //執行goto
- LOOP:printf("結束for循環了...."); //請選擇合適位置添加標識符
- return 0;
- }
形參只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。
實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值等辦法使實參獲得確定值。
在參數傳遞時,實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。
- #include <stdio.h>
- int getPeachNumber(int n) //這里要定義n,要不編譯器會報錯!
- {
- int num;
- if(n==10)
- {
- return 1;
- }
- else
- {
- num = (getPeachNumber(n+1)+1)*2;
- printf("第%d天所剩桃子%d個 ", n, num);
- }
- return num;
- }
- int main()
- {
- int num = getPeachNumber(1);
- printf("猴子第一天摘了:%d個桃子。 ", num);
- return 0;
- }
用關鍵字auto定義的變數為自動變數,auto可以省略,auto不寫則隱含定為「自動存儲類別」,屬於動態存儲方式。
用static修飾的為靜態變數,如果定義在函數內部的,稱之為靜態局部變數;如果定義在函數外部,稱之為靜態外部變數。
為了提高效率,C語言允許將局部變數的值放在CPU中的寄存器中,這種變數叫「寄存器變數」,用關鍵字register作聲明。
用extern聲明的的變數是外部變數,外部變數的意義是某函數可以調用在該函數之後定義的變數。
- #includ <stdio.h>
- //來源公眾號:C語言與CPP編程
- int main()
- {
- //定義外部局部變數
- extern int x;
- return 0;
- }
- int x=100;
數據類型 數組名稱[長度n] = {元素1,元素2,元素3,......};
數據類型 數組名稱[] = {元素1,元素2,元素3,......};
數類類型 數組名稱[長度n]; 數組名稱[0] = 元素1;數組名稱[1] = 元素2;...... 注意: 1、數組的下標均以0開始; 2、數組在初始化的時候,數組內元素的個數不能大於聲明的數組長度; 3、如果採用第一種初始化方式,元素個數小於數組的長度時,多餘的數組元素初始化為0; 4、在聲明數組後沒有進行初始化的時候,靜態(static)和外部(extern)類型的數組元素初始化元素為0,自動(auto)類型的數組的元素初始化值不確定。
- #include <stdio.h>
- int main()
- {
- int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- int i;
- for(i=0;i<10;i++)
- {
- printf("%d ",arr[i]);
- }
- return 0;
- }
數組的冒泡排序
字元串與數組
char 字元串名稱[長度] = "字元串內容";
char 字元串名稱[長度] = {'字元串1','字元串2',....,'字元串n','
2.構造類型:
2.1.枚舉類型
2.2.數組類型
2.3.結構體類型
2.4.共用體類型
3.指針類型:
4.空類型:
3.格式化輸出語句
學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣
已失效
4.常量
值不發生改變的量成為常量;
定義字元常量(注意後面沒有;)
5.運算符
5.1.算數運算符:+,-,*,/,%,++,--;前++/--,先運算,再取值.後++/--,先取值,再運算;
5.2.賦值運算符:
5.3.關系運算符;
5.4.邏輯運算符;
5.5.三目運算符:
6.水仙花數計算
輸出所有三位數的水仙花數字
所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數,如:153就是一個水仙花數,153=111+555+333。
7.列印正三角形的*
8.臭名遠揚的goto語句
很少使用
9.形參與實參
形參:形參是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數;
實參:實參是在調用時傳遞該函數的參數。
函數的形參和實參具有以下特點:
10.函數返回值注意
注意:void函數中可以有執行代碼塊,但是不能有返回值,另void函數中如果有return語句,該語句只能起到結束函數運行的功能。其格式為:return;
11.遞歸
12.變數存儲類別 !
12.1.生存周期劃分存儲方式
C語言根據變數的生存周期來劃分,可以分為靜態存儲方式和動態存儲方式。
靜態存儲方式:是指在程序運行期間分配固定的存儲空間的方式。靜態存儲區中存放了在整個程序執行過程中都存在的變數,如全局變數。
動態存儲方式:是指在程序運行期間根據需要進行動態的分配存儲空間的方式。動態存儲區中存放的變數是根據程序運行的需要而建立和釋放的,通常包括:函數形式參數;自動變數;函數調用時的現場保護和返回地址等。
12.2.存儲類型劃分
C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern) ;
注意:靜態局部變數屬於靜態存儲類別,在靜態存儲區內分配存儲單元,在程序整個運行期間都不釋放;靜態局部變數在編譯時賦初值,即只賦初值一次;如果在定義局部變數時不賦初值的話,則對靜態局部變數來說,編譯時自動賦初值0(對數值型變數)或空字元(對字元變數)
注意:只有局部自動變數和形式參數可以作為寄存器變數;一個計算機系統中的寄存器數目有限,不能定義任意多個寄存器變數;局部靜態變數不能定義為寄存器變數。
13.內部函數外部函數 !
在C語言中不能被其他源文件調用的函數稱為內部函數 ,內部函數由static關鍵字來定義,因此又被稱為靜態函數,形式為:
static [數據類型] 函數名([參數])
這里的static是對函數的作用范圍的一個限定,限定該函數只能在其所處的源文件中使用,因此在不同文件中出現相同的函數名稱的內部函數是沒有問題的。
在C語言中能被其他源文件調用的函數稱為外部函數 ,外部函數由extern關鍵字來定義,形式為:
extern [數據類型] 函數名([參數])
C語言規定,在沒有指定函數的作用范圍時,系統會默認認為是外部函數,因此當需要定義外部函數時extern也可以省略。 extern可以省略; 14.數組 數組:一塊連續的,大小固定並且裡面的數據類型一致的內存空間, 數組的聲明:數據類型 數組名稱[長度n]
15.數組遍歷
冒泡排序的思想:相鄰元素兩兩比較,將較大的數字放在後面,直到將所有數字全部排序。
在C語言中,是沒有辦法直接定義子字元串數據類型的,需使用數組來定義所要的字元串,形式如下: