導航:首頁 > 源碼編譯 > c語言編譯預習

c語言編譯預習

發布時間:2022-11-07 06:18:53

⑴ 如何學習C語言

學習方法是:

1、課前預習,課後復習,認真做課堂、課後的作業,理解理論知識。

2、記住語法規則。

3、加強邏輯思維。

4、多動手,通過練習上機了解它的運行過程。

5、實踐—>理論—>再實踐,剛開始學習C語言時,按示例練習,並推動理論的學習,然後再自己多思考,多上機實踐。

拓展資料

C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

⑵ c語言程序設計的預習報告包括哪些內容,怎樣寫

看課本目錄

⑶ C語言文件的編譯與執行的四個階段並分別描述

開發C程序有四個步驟:編輯、編譯、連接和運行。

任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。

1、預處理:導入源程序並保存(C文件)。

2、編譯:將源程序轉換為目標文件(Obj文件)。

3、鏈接:將目標文件生成為可執行文件(EXE文件)。

4、運行:執行,獲取運行結果的EXE文件。

(3)c語言編譯預習擴展閱讀:

將C語言代碼分為程序的幾個階段:

1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。

2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。

4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。

⑷ C語言在通信工程專業中的地位需要預習嗎

大學大部分學生是不會預習的,C語言是編程的基礎,通信工程專業也應該會涉及,有時間的話看看。

⑸ 大一明天就要c語言考試了,可是什麼都不會,我怎麼預習才能效率最高!

1)輸入1個整數,輸出它的絕對值。
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a>=0)
printf("%d\n",a);
else
printf("%d\n",-a);
}
2)輸入2個整數,求兩數的平方和並輸出。
#include <stdio.h>
void main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d", a * a + b * b);
}
3)輸入1個整數,判斷該數是奇數還是偶數。
#include<stdio.h>
main(void)
{
int a;
printf("please input your number:");
scanf("%d",&a);
if(a%2==0)
printf("%d is ou\n",a);
else
printf("%d is ji\n",a);
return 0;
}
4)輸入正整數n,輸出1+1/3+1/5+1/7+…前n項的和.(輸入的n<=10)
#include<stdio.h>
void main()
{
int n;
float sum=0;
for(n=1;n<=10;n++)
{ sum=sum+1.0/(2*n-1); }
printf("%f",sum);
}

5)輸入一個正整數n, 計算 1 - 1/3 + 1/5 - 1/7 + … 的前 n(n>10) 項之和。
#include <stdio.h>
void main()
{
int n,i=1,m;
float a=0;
printf("輸入一個正整數N:");
scanf("%d",&n);
for(m=1;m!=(n+1);m++)
{ a+=i*1.0/(2*m-1);
i=-i; }
printf("結果為:%f",a);
}

6)輸入一個整數,判斷該數是奇數還是偶數。要求必須使用if-else結構實現。
#include <stdio.h>
void main()
{
int a;
printf("please enter a number:");
scanf("%d",&a);
if(a%2==0)
printf("該數為偶數");
else
printf("該數為奇數");
}

7)輸入一批學生的成績,找出最高分。
#include <stdio.h>
#define N 5 //通過改變宏定義,改變數組元素的個數
void main()
{
int a[N];
int i;
int max;
max=a[0];
printf("請輸入一組學生成績(假設有5位學生成績,且學生成績都是整數型)\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
// printf("%f\n",a[i]);
}
for(i=0;i<N;i++)
{
if(max<a[i])
max=a[i];
}
printf("學生成績最高分為:%d\n",max);
}

8)輸入三個整數,分別存在變數x,y,z中。編程輸出最大數。
#include <stdio.h>
void main()
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{if(x>z)
printf("最大數是%d\n",x);
else printf("最大數是%d\n",z);
}
else if(y>z)
printf("最大數是%d\n",y);
else printf("最大數是%d\n",z);
}

9)輸入一個字母,判斷是大寫字母還是小寫字母,並輸出信息。
#include <stdio.h>
void main()
{
char c;
scanf("%c",&c);
if(c>=97&&c<=122)
printf("這是一個小寫字母\n");
else if(c>=65&&c<=90)
printf("這是一個大寫字母\n");
}

10)輸入你和你朋友的年齡,編程判斷誰的年齡較大,並列印較大者的年齡。
#include<stdio.h>
void main()
{
int age1,age2;
printf("輸入你的年齡:");
scanf("%d",&age1);
printf("輸入你朋友的年齡:");
scanf("%d",&age2);
if (age1>age2)
printf("你年齡比較大\n%d",age1);
else printf("你的朋友年齡較大\n%d\n",age2);
}
11)輸入一個數,求出該數絕對值所對應的開方 。
#include<stdio.h>
#include<math.h>
int main (void)
{
int a,b;double c;
scanf("%d",&a);
if(a>=0)
{
b=a;
c=sqrt(b);
printf("%d的絕對值的開方是%lf",a,c);
}
else
{
b=-a;
c=sqrt(b);
printf("%d的絕對值的開方是%lf",a,c);
}
return 0;
}
12)輸入一個字母,如果接收的是『n』或者『N』,
則輸出「no」。否則輸出「wrong」。從鍵盤讀入一個整數,
統計該數的位數。例如,輸入12534,輸出5;輸入-99,輸出2;輸入0,輸出1。
13)輸入一個字元,如果是字母,輸出其對應的ASCII碼
,如果是數字,按原樣輸入,否則給出提示信息「輸入錯誤!」。
14)輸入一個年份year,判斷改年是否是閏年。
判斷閏年的條件是:能被4整除但不能被100整除,或能被400整除。
#include<stdio.h>
void main()
{
int year;
scanf("%d",&year);
if(year%4==0&&year%100!=0||year%400==0)
{
printf("潤年");
}
else
{
printf("非潤年");
}
}
15)輸入一個正整數,將其逆序輸出。例如,輸入12345,輸出54321。
#include<stdio.h>
void main()
{
long n,m;
printf("輸入一個正整數");
scanf("%d",&n);
while(n!=0)
{
m=n%10;
n=n/10;
printf("%d",m);
}
}
16)輸入20個字元,統計其中英文字母、數字字元和其他字元的個數。
17)輸入三角形三邊,輸出其面積和周長
#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c;
double area,perimeter,s;
printf("Enter 3 sides of the triangle:");
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c||b+c>a||a+c>b){
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area=%.2f;perimeter=%.2f/n",area,perimeter);
}
else
printf("These sides do not correspond to a valid triangle\n");
return 0;
}
18)輸入大寫字母,輸出其小寫字母
#include<stdio.h>
void main()
{
char c;
printf("輸入大寫字母:\n");
c=getchar();
putchar(c+32);
}
19)輸入兩實數(浮點數),由大到小輸出(先強轉,比較大小,後輸出)
20)輸入一系列字元,統計其中英文字母,數字,空格的個數
21)輸入若干個非零整數,以0為終止符,輸出這批數中的最大值。
22)統計在[2980-21980]之間有多少個數能同時被29和43整除,而不能被53整除。
23)計算n的階層:n!
#include<stdio.h>
void main()
{
long n,i,s=1; //s為所求和
printf("Enter n:");
scanf("%d",&n); //輸入N的值
if(n>=0)
{for(i=1;i<=n;i++)
s=s*i;
printf("%d\n",s);}
else
printf("error\n");
}
24)計算 s=1-2!+3!-4!+…-n!的值並輸出,其中n不大於10。要求必須使用for語句實現。
#include <stdio.h>
void main()
{
int n,sigh=1,k=1;
float m=1,sum=0;
for(n=1;n<=3;n++)
{
m=m*n; //用來計算N的階乘
sum=sum+k*m;
k=-k;
}
printf("%f\n",sum);
}
25)計算 公式 a-|b|,其中a,b為兩個整數。
#include <stdio.h>
void main()
{
int a,b,sum;
printf("輸入正數a:");
scanf("%d",&a);
printf("輸入b:");
scanf("%d",&b);
if(b>=0)
{
sum=a-b;
printf("%d-|%d|=%d\n",a,b,sum);
}
else
{
b=-b;
sum=a-b;
printf("%d-|-%d|=%d\n",a,b,sum);
}
}
26)計算 s=a+aa+aaa+aaaa+aa...a的值,
其中a是一個數字。例如2+22+222+2222+22222(此時 共有5個數相加),
幾個數相加有鍵盤控制。
#include <stdio.h>
void main()
{
int j,k,i,sum=0,n=1,m,a=0;
printf("輸入累加到幾位數:");
scanf("%d",&j);
printf("輸入累加數字:");
scanf("%d",&k);
for(i=1;i<=j;i++)
{
sum=sum+k*n;
n=n*10;
for(m=1;m<=1;m++)
{
a=a+sum;
}
}
printf("該數為%d\n",a);
}
27)編寫程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50項之和。要求必須使用for語句實現。
#include <stdio.h>
void main()
{
int n,sigh=1;
float m,sum=0,term;
for(n=1;n<=50;n++)
{
m=n*(n+1); //用來計算N的階乘
term=sigh/m; //用來計算1/N的值
sum=sum+term;
}
printf("%.10f\n",sum);
}
28)編程求1+(1+2)+…+(1+2+…+n),n的值由鍵盤輸入。要求使用for語句實現
#include <stdio.h>
void main()
{
int j,k,i,sum=0,n=1,m,a=0;
printf("輸入累加到幾:");
scanf("%d",&j);
for(i=1;i<=j;i++)
{
sum=sum+n;
n++;
for(m=1;m<=1;m++)
{
a=a+sum;
}
}
printf("該數為%d\n",a);
}29)題目:列印出所有的「水仙花數」,所謂「水仙花數」是指一個三位數,
其各位數字立方和等於該數 本身。例如:153是一個「水仙花數」,
因為153=1的三次方+5的三次方+3的三次方。
#include <stdio.h> //100到999內的水仙花數
void main()
{
int i,b,s,g;
for(i=100;i<=999;i++)
{
b=i/100; //百位
s=(i/10)%10; //十位
g=i%10; //個位
if(b*b*b+s*s*s+g*g*g==i)
printf("%d\n",i);
}
}
30)猜數游戲。由計算機"想"一個數請人猜,如果人猜對了,
則結束游戲,否則計算機給出提示,告訴人所猜的數是太大還是太小,
直到人猜對為止。計算機記錄人猜的次數,以此可以反映出猜數者"猜"的水平。
#include <stdio.h>
#include<stdlib.h>
void main()
{
int a,b,i,k;
a=rand()%89+10; //取10到100的隨機數
for(i=0;i!=k;)
{ printf("輸入被猜的數字");
scanf("%d",&b);
if(b==a)
{
i++;
printf("恭喜你猜對了,成功通關\n");
k=i;
}
if(b>a)
{
printf("對不起,你猜大了\n");
i++;
}
if(b<a)
{
printf("對不起,你猜小了\n");
i++;
}
}
printf("總共猜了%d次\n",i);
}
31)列印100-999以內所有滿足條件的數。條件為:這個數等於其個位數,
十位數,百位數立方和,如153=1*1*1+5*5*5+3*3*3
#include <stdio.h> //100到999內的水仙花數
void main()
{
int i,b,s,g;
for(i=100;i<=999;i++)
{
b=i/100; //百位
s=(i/10)%10; //十位
g=i%10; //個位
if(b*b*b+s*s*s+g*g*g==i)
printf("%d\n",i);
}
}
32)查詢自動售貨機中商品的價格。假設自動化售貨機出售4種商品:
薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可樂(cola),
售價分別是每份3.0、2.5、4.0和3.5元。在屏幕上顯示以下菜單(編號和選項),
用戶可以連續查詢商品的價格,當查詢次數超過5次時,自動退出查詢;不到5次時,
用戶可以選擇退出。當用戶輸入編號1~4,顯示相應商品的價格(保留1位小數);
輸入0,退出查詢;輸入其他編號,顯示價格為0。
[1]Select crisps[2]Select popcorn[3]Select chocolate[4]Select cola[0]Exit
#include <stdio.h>
void main()
{
int g,i;
float a=3,b=2.5,c=4,d=3.5;
printf("[1]選擇薯片\n");
printf("[2]選擇爆米花\n");
printf("[3]選擇巧克力\n");
printf("[4]選擇可樂\n");
printf("[0]退出查詢\n");
for(i=1;i<=5;i++)
{
printf("請輸入查詢的物品數字:");
scanf("%d",&g);
switch(g)
{
case 1:printf("薯片的價格為%.1f\n",a);break;
case 2:printf("爆米花價格為%.1f\n",b);break;
case 3:printf("巧克力價格為%.1f\n",c);break;
case 4:printf("可樂價格位%.1f\n",d);break;
case 0:i=6;break;
}
}
}
33)猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,
還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,
又多吃了一個。以後每天早上都吃了前一天剩下的桃子的一半多一個。
到第10天早上想再吃,見只剩下一個桃子了。求第一天共摘了多少桃子。
#include <stdio.h>
void main()
{
int i,k=1,n=0,sum=1;
for(i=10;i>=1;i--)
{
sum=sum+k;
sum=sum*2;
}
printf("第一天摘桃子數為%d\n",sum);
}
34)輸入一個圓半徑(r)當r>=0時,計算並輸出圓的面積和周長,否則,輸出提示信息。
#include <stdio.h>
#define PI 3.14
void main()
{
float r,s,l;
printf("輸入圓的半徑:");
scanf("%f",&r);
l=2*PI*r;
s=PI*r*r;
printf("輸出圓的周長=%f\n面積=%f\n",l,s);
}
35)利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,
60-89分之間的用B表示, 60分以下的用C表示。
#include<stdio.h>
void main()
{
int grade;
printf("Inter grade:");
scanf("%d",&grade);
if(grade>=90&&grade<100)
printf("Grade is:A\n");
else if(grade>=60&&grade<=89)
printf("Grade is:B\n");
else if(grade<60&&grade>=0)
printf("Grade is:C\n");
else printf("error\n");
}
36)求解愛因斯坦數學題。有一條長階梯,若每步跨2階,則最後剩餘1階,
若每步跨3階,則最後剩2階,若每步跨5階,則最後剩4階,
若每步跨6階則最後剩5階,若每步跨7階,最後才正好一階不剩。
請問,這條階梯共有多少階?
#include<stdio.h>
void main()
{
int x=1;//x為階長
while(x)
{
if(x%2!=1) {x++;continue;}
if(x%3!=2) {x++;continue;}
if(x%5!=4) {x++;continue;}
if(x%7) {x++;continue;}
printf("%d\n",x);
printf("press \"Enter\" to continue\n");
getchar();
x++;
}
}
37)輸出9*9乘法口訣。
#include<stdio.h>
void main()
{
int a,b,c;
for(a=1;a<=9;a++)
{ for(b=1;b<=9;b++)
{
c=a*b;
if(b<=a)
printf("%d*%d=%2d\t",b,a,c);
}putchar('\n');
}
}
38)用for循環輸出菱形圖案
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<5;i++)
{
for(j=4;j-i>0;j--)
printf(" ");
for(k=1;2*i-k>0;k++)
printf("*");
printf("\n");
}
for(i=3;i>0;i--)
{
for(j=4;j-i>0;j--)
printf(" ");
for(k=0;2*i-1>k;k++)
printf("*");
printf("\n");
}
}
39)有一函數當x<0時y=1,當x>0時,y=3,當x=0時y=5,編程,
從鍵盤輸入一個x值,輸出y值
#include<stdio.h>
void main()
{
int x,y;
printf("Enter x:");
scanf("%d",&x);
if(x<0) y=1;
else if(x>0) y=3;
else y=5;
printf("y=%d\n",y);
}
40)一球從100米高度自由落下,每次落地後反跳回原高度的一半;
再落下,求它在 第10次落地時,共經過多少米?第10次反彈多高?
#include<stdio.h>
void main()
{
int n;
double h,x,sum;
h=100.0;
sum=0.0;
for(n=0;n<10;n++)
{
x=h/2.0;
sum=sum+h+x;
h=h/2.0;
}
printf("小球下落100米\n十次後小球共經過%lf米 第十次上彈%lf米\n",sum,x);
}
41)輸出菲波那契(Fibonacci)序列:1,1,2,3,5,8,…的前20項,每行輸出5項。
#include<stdio.h>
void main()
{
int a=0,b=1,c,i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=5;j++)
{
c=a+b;
printf("%d\t",c);
a=b;
b=c;
}putchar('\n');
}
}
42)100匹馬馱100擔貨,大馬一匹馱3擔,中馬一匹馱2擔,
小馬兩匹馱1擔。試編寫程序計算大、中、小馬的數目。
#include<stdio.h>
void main()
{
int a,b,c,sum=100;//大 中 小
for(a=0;a<=100;a++)
for(b=0;b<=100;b++)
for(c=0;c<=100;c++)
{
if(a+b+c==100&&(a*3+b*2+c)==sum)
printf("大馬:%d 中馬:%d 小馬:%d\n",a,b,c);
}
}
43)函數y=f(x)可表示為:y=2x+1 (x<0) ;y= 0 (x=0) ;y=2x-1 (x>0)
編程實現輸入一個x值,輸出y值。
#include<stdio.h>
void main()
{
int x,y;
printf("Enter x:");
scanf("%d",&x);
if(x<0) y=2*x+1;
else if(x>0) y=2*x-1;
else y=0;
printf("y=%d\n",y);
}
44)若一個口袋中放有12個球,其中有3個紅的,3個白的和6個黑的,
每次從中任取8個球,編寫程序求出共有多少種不同的顏色搭配。
#include<stdio.h>
void main()
{
int a,b,c,sum;
for(a=0;a<=3;a++)
for(b=1;b<=5;b++)
for(c=0;c<=6;c++)
if(a+b+c==8)
{
printf("%d %d %d\n",a,b,c);
sum++;
}
}
45) 從鍵盤輸入一個學生的分數, 要求實現這樣的判斷功能:
如果分數大於100,輸出」Input error!」 如果分數介於100到90之間,
輸出」Very Good!」 如果分數介於80到90隻,輸出」Good!」
如果分數介於70到80之間,輸出」Middle」
如果分數介於60到70之間, 輸出」Pass」
如果分數小於60,輸出」No Pass!」 。要求必須使用if-else-if結構實現。
#include<stdio.h>
void main()
{
int grade;
printf("Inter grade:");
scanf("%d",&grade);
if(grade>=90&&grade<100)
printf("Very Good!\n");
else if(grade>=80&&grade<=89)
printf("Good!\n");
else if(grade>=70&&grade<=79)
printf("Middle!\n");
else if(grade>=60&&grade<=79)
printf("Pass!\n");
else if(grade<60&&grade>=0)
printf("No Pass\n");
else printf("Input error!\n");
}
46) 輸入兩正整數 a n ,求a+aa+aaa+aa...a(n個a)之和。
#include"stdio.h"
int main(void)
{
int a,b,n,i,s=0;
printf("Input a,n:");
scanf("%d %d",&a,&n);
b=a;
for(i=1;i<=n;i++)
{
s=s+a;
a=a*10+b;
}
printf("s=%d\n",s);
return 0;
}
47) 輸入一個正整數n,再輸入n個整數,輸出最小值
#include <stdio.h>
int main()
{
int i,n,min=999999,x; //min賦值為極大值
printf("input:");
scanf("%d",&n);
printf("input numbers:");
for(i>0;i<n;i++)
{
scanf("%d",&x);
if(x<min) min=x;
}
printf("min=%d\n",min);

return 0;
}

⑹ 大學C語言需要預習嗎因為之前沒接觸過,完全不懂啊!

這個你要買點參考書看看的,高等教育出版社有專門的考試參考書賣的,建議你最好找考過的童鞋問問,希望你考試通過。

⑺ 怎樣學習C語言

談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是「讓我歡喜讓我憂。」歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了後,再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如「少林武功」一般博大精深,太難學了。其實就筆者認為C語言並非是「difficult(困難)」的,只要你能理清思路,掌握它的精髓,那麼自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。 一、明確學習目的: ◆ C語言功能強大,本書涉及知識結構全面、合理。是一門非常好的編程語言基礎語言。 ◆ C是一門學習邏輯、程序演算法、演算法實現很好的教程。通過第一學期C語言的學習,從而可以了解程序的設計編碼的過程。 ◆ C是一單進程、單線程執行,從頭到尾執行,學習難不小。但結構嚴謹的高級語言,可以很好學習編程規范和要求。 ◆ C語言是為以後學習其它語言打下基礎的語言。 二、好的學習方法: 基於上述學習目的並且也我們第一門編程語言。學習方法是: ◆ 課前預習,課後復習,認真做課堂、課後的作業,理解理論知識。 ◆ 記住語法規則。 ◆ 加強邏輯思維。 ◆ 多動手,通過練習上機了解它的運行過程。 ◆ 實踐—>理論—>再實踐,剛開始學習C語言時,按示例練習,並推動理論的學習,然後再自己多思考,多上機實踐。 常見問題: 1、有同學聽說C語言很難,剛學習到第二、三章時,於是說:老師,我不會呀!真的很難。我不知道如何學習? 分析: 1)心理作用,在沒有學習之前都認為很難了。學不會也正常。 2)前三章是基礎,對於沒有學習過編程語言的同學來說,新的專業名詞很多。 3)前三章是基礎,還不能完整的寫出一個C程序。於是,就不知道如何去用,在哪個時候用等很多的疑問。 問題的存在:過於著急,對新的事務領悟不夠。 解決方法:學習是循序漸進和積累的過程,不要著急。這此知識都是為以後作鋪墊的。 2、有同學學到數組時,說:聽你上課時,我懂,但要我自己寫,我不知道如何寫?不知道如何開始? 分析: 1)邏輯性思想太亂。如果問:「如果班上有30個同學,要判斷成績是否及格,你將如何做?」;「當然先知道每個同學的成績,然後一個一個和60比較,如果大於等60,則及格,否則不及格。」;「那麼C語言來實現,如何做?」。聲明30個變數存儲成績?不是一個好辦法。如果聲明一個30元素的數組,是不是更合理。另外,如果要寫30個條件語句來判斷,也太過於繁鎖。如果用for循環是不是更加合理。 2)練習太少,有解決方法,但不能用C語言實現。 問題的存在:思路不清淅,練習太少。 解決方法:多上機練習,多思考,舉一反三。了解程序的運行過程和編碼。三、學習要點和重點: ◆ 第一章至第四章的:基礎知識和理論知識必須要求能理解、領悟。也是學習其它語言的基礎。 ◆ 第二章、第三章提到很多的專業名詞,如數據類型,變數與常量的區別,標識符的命名規則,表達式及各種運算符及輸入輸出函數基礎 ◆ 五章和第六章:程序的基本結構,學習完前六章,要求能理解程序運行和編碼的過程。 ◆ 將我們的演算法用編程語言來實現,主要是學習程序設計的邏輯性。也是學習其它語言的基礎 ◆ 第七章到第十一章:學習C語言的特色,更深入了解C語言。本章讓學員加強空間的想像力。 ◆ 第十二章:是文件的操作。考慮的是如何將程序的輸出結果及相關信息用文件記錄下來。 四、學習難度: ◆ 與日常的自然語言的表達不完全相同,所有結果要通過計算才能得。計算機沒有想像能力和空間思維能力。計算機能運行,依靠程序員的嚴謹的命令來驅動。 ◆ 語法格式多,知識點全面。應用時,要將零散的知識點有效有序的組合。 很多問題的解決方法是需要經驗的。原文鏈接: http://wenwen.soso.com/z/q66714191.htm?rq=85286038&ri=2&uid=513205934&ch=w.xg.llyjj #

⑻ 如何學習C語言

很多人對學習C語言感到無從下手,經常問我同一個問題:究竟怎樣學習C語言? 我是一個教師,已經開發了很多年的程序,和很多剛剛起步的人一樣,學習的第一個計算機語言就是C語言。經過這些年的開發,我深深的體會到C語言對於一個程序設計人員多麼的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優秀高效的程序,這簡直就是天方夜譚。為什麼C語言如此重要呢? 第一:C語言語法結構很簡潔精妙,寫出的程序也很高效,很便於描述演算法,大多數的程序員願意使用C語言去描述演算法本身,所以,如果你想在程序設計方面有所建樹,就必須去學它。第二:C語言能夠讓你深入系統底層,你知道的操作系統,哪一個不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個里外的,如果你不懂C語言,怎麼可能深入到這些操作系統當中去呢?更不要說你去寫它們的內核程序了。第三:很多新型的語言都是衍生自C語言,C++,Java,C#,J#,perl...哪個不是呢?掌握了C語言,可以說你就掌握了很多門語言,經過簡單的學習,你就可以用這些新型的語言去開發了,這個再一次驗證了C語言是程序設計的重要基礎。還有啊,多說一點:即使現在招聘程序員,考試都是考C語言,你想加入it行業,那麼就一定要掌握好C語言。 那麼究竟怎樣學習C語言呢? 1:工欲善其事,必先利其器這里介紹幾個學習C語言必備的東東:一個開發環境,例如turbo C 2.0,這個曾經占據了DOS時代開發程序的大半個江山。但是現在windows時代,用turbo C有感覺不方面,編輯程序起來很吃力,並且拖放,更沒有函數變數自動感應功能,查詢參考資料也不方便。建議使用Visual C++,這個東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。一本學習教程,現在C語言教材多如牛毛,但推薦大家使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,並且內容也很精到。除此以外,現在有很多輔助學習的軟體,畢竟現在是Window時代了,學習軟體多如牛毛,不象我們當初學習,只有讀書做題這么老套。我向大家推薦一個「集成學習環境(C語言)」,里邊的知識點總結和常式講解都非常好,還有題庫測試環境,據說有好幾千題,甚至還有一個windows下的trubo C,初學者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學者。還有一個「C語言學習系統」軟體,不過感覺只是一個題庫系統,如果你覺得題做的不夠,不妨也可以試試。 2:葵花寶典學習計算機語言最好的方法是什麼?答曰:讀程序。沒錯,讀程序是學習C語言入門最快,也是最好的方法。如同我,現在學習新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學習它們的常式。當然,對於沒有學過任何計算機語言的初學者,最好還是先閱讀教程,學習完每一章,都要認真體會這一章的所有概念,然後不放過這一章中提到的所有常式,然後仔細研讀程序,直到每一行都理解了,然後找幾個編程題目,最好是和常式類似的或一樣的,自己試圖寫出這段已經讀懂的程序,不要以為常式你已經讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續研究常式,想想自己為什麼寫不出來,然後再去寫這段程序,反反復復,直到你手到擒來為止,祝賀你,你快入門了。 3:登峰造極寫程序的最高境界其實就是掌握各種解決問題的手段(數據結構)和解決問題的方法(演算法)。是不是寫出底層程序就是程序設計高手呢?非也,寫底層程序,無非是掌握了硬體的結構,況且硬體和硬體還不一樣,要給一個晶元寫驅動程序,無非就是掌握這塊晶元的各種寄存器及其組合,然後寫值讀值,僅此而已。這不過是熟悉一些io函數罷了。 那麼怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個例子:你面前有10個人,找出一個叫「張三」的人,你該怎麼辦?第一種方法:直接對這10個人問:「誰叫張三」。第2種方法:你挨個去問「你是不是張三?」,直到問到的這個人就是張三。第三方法:你去挨個問一個人「你認不認識張三,指給我看」。不要小看這個問題,你說當然會選第一種方法,沒錯恭喜你答對了,因為這個方法最快,效率最高,但是在程序設計中找到解決問題的最優方法和你用的手段卻是考驗一個程序員程序設計水平的重要標志,而且是不容易達到的。剛才這個問題類似於數據結構和演算法中的:Map數據結構,窮舉查找和折半查找。所以掌握好數據結構和一些常用演算法,是登峰造極的必然之路。最後給大家推薦嚴尉敏的《數據結構》清華大學出版社,希望每一個想成為程序設計高 手的人研讀此書。[編輯:趙晉軍] 二,語言學習方法 談談偶的學習方法,拋磚引玉! 學習不論講不講方法,最終都能學會。但是別人1個月學會了,而你卻100年才學會,這不就晚了么?:)所以說,學習還是要講究方法的。學習方法正確,事半功倍;學習方法不正確,事倍而功半。 什麼才是學習C語言的捷徑?我的答案是看書。書中所寫,是前人數十年經驗所寫,看十本書,就相當於汲取了前人數十年的功力,那麼你的內功也會迅速上升1甲子。:)書當然要看好書,只有好書才營養豐富。假如你花了1天時間看了一本破書,而該書介紹的知識雖然對於你來說是全新的知識,但是由於書中組織不當、或者深度不夠,使你獲取的營養很少,還不如自己研究一天來的快,這種書就不值當看了。學習C語言要看那些好書?我認為首先要把基礎書給看扎實了,比如《C語言之四書五經》中介紹的4本。(雖然這些書很多已經絕版了,但我相信電子版也是很有益處。況且,如果你真的想看,我相信你一定有辦法搞的到。)這些書你會在很短的時間內看完(比如一兩個月),這取決於你的基礎和悟性。 之後要看那些書呢?我不妨再列幾本。Bjarne Stroustrup的《C++程序設計語言》theC++Programming Language)一定要看,這本書裡面對於C的一些基礎概念的定義,比我見過的其他任何C語言書都要全,都要仔細;Bjarne Stroustrup的《C++語言的設計與演化》(The Design and Evolution of C++)和David R.Hanson 的《C語言介面與實現 創建可重用軟體的技術》(C Interfaces and Implaementations Techniques for Creating Reusable Software)一定要看,這兩本書講述了如何用C來實現異常處理、實現類型的封裝和擴展等一些大的項目中經常用到的高級技術。其他的書,操作系統的要看,編譯原理的要看,演算法的要看,模式的也要看。讀書破萬卷,coding如有神。 總而言之,就如《傳》中雲:「生而知之者,上也;學而知之者,次也;困而學之又其次也。」我們不能總是因困而學之,而要做到兵馬未動,糧草先行。看書是學習的導向,書中能一一介紹清楚概念,但書卻不能把應用的細節一一介紹給你,因為應用總是招數繁復,變化多端。因此我們要想熟悉招數,懂得書中所講怎麼使用,還要多讀源碼。Linus給別人解答問題的時候,常說Read the fucking source code;候捷也在其文中提到「源碼之前,了無秘密。」這就是大師的箴言呀。源碼就像是動畫、就像是幻燈片,把書中的招式一一演練給你看。可以說高手的經驗大都是源自代碼。源碼和書一樣,也是要看好的,不要看差的。在此,我推薦看Linux kernel source code 和 Linux tcp/ip source code。這兩套代碼都是開源的,垂手可得。此外,還可以配合著Andrew S.Tanenbaum的《操作系統的設計與實現》(Operating Systems:Design and Implementation)、毛德操 胡希明的《Linux內核 源代碼情景分析》、Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman合著的《Linux設備驅動程序》(Linux Device Driver,3e)、W.Richard Stevens《TCP/IP詳解(3部)》 (TCP/IP Illustracted )、W.Richard Stevens《UNIX環境高級編程》(Advanced Programming in the UNIX Environment,新版增加了Linux kernel的內容)等書來看,方便的很。當然程序不是看出來的,是寫出來的。我高中的時候每天堅持寫6個小時程序,《數據結構》和排列組合、圖論方面的習題反復做了N遍。到現在雖然已經時隔五六年,很多內容早已淡忘掉,但卻培養了我很強的編碼能力和調試能力,直到現在還對我的工作有很大的幫助。

⑼ 大學c語言怎麼學

如何學習C語言?我說一下我是怎麼學的吧,因為我就是計算機專業的學生

1. 首先選擇一門入門的書籍,c primer plus 適合初學者入門

2. 制定詳細的學習計劃,遇到不懂的知識點,在網路上找一些對號的視頻解決掉,然後回歸繼續書本學習

3.基礎學完後開始在開源社區研究代碼,先從看代碼開始,然後嘗試修改代碼

按照三個步驟走,堅持下去學習個基礎還是足夠的,要想學的更加深刻需要真的項目的錘煉。

學習C/C++編程知識,想要成為一個更加優秀的程序員,或者你學習C/C++的時候有難度,,和別人一起交流成長會比自己琢磨學的更快更扎實。

⑽ C語言開始如何自學.大一 預習

這些都是基礎的,必須要記住的,多看書本,先掌握最基本的概念,然後讀程序,每一步都要搞清楚,c語言基礎沒什麼難的,做多了也就熟了,但要變成編程高手那就要慢慢磨練了.

閱讀全文

與c語言編譯預習相關的資料

熱點內容
三星u盤加密狗 瀏覽:471
php函數的返回值嗎 瀏覽:584
國企穩定程序員 瀏覽:325
編程貓如何使用教程視頻 瀏覽:216
安卓遠端網頁如何打日誌 瀏覽:216
壓縮flash大小 瀏覽:991
解壓的玩具教程可愛版 瀏覽:366
哪個求職app比較靠譜 瀏覽:888
java的讀法 瀏覽:59
nod32區域網伺服器地址 瀏覽:1002
數碼科技解壓 瀏覽:235
新網的雲伺服器管理界面復雜嗎 瀏覽:367
無人聲解壓強迫症視頻 瀏覽:571
計算機編譯運行 瀏覽:639
單片機嵌套 瀏覽:988
python字元串中符號 瀏覽:787
python正則表達式貪婪模式 瀏覽:650
愛國精神指的是什麼app 瀏覽:408
壽司解壓系列全集視頻 瀏覽:913
物體三維重建演算法 瀏覽:984