c語言設計指導,C語言設計基礎教程

本文目錄一覽:

C語言實驗指導 順序結構程序設計

編程序從鍵盤輸入一個圓的面積,計算這個圓的半徑並輸出,輸出帶2位小數。再從計算得到的半徑,反過來計算圓面積並輸出,以作驗算。面積輸出佔10個字符的寬度,帶5位小數。

求C語言程序設計學習指導(蘇小紅) 第3版.pdf

中文名:C語言程序設計

作者:吳國鳳

圖書分類:科技

資源格式:PDF

版本:高清文字版

出版社:合肥工業大學出版社

書號:9787565008405

發行時間:2012年8月1日

地區:大陸

語言:簡體中文

本書是高清文字版.非掃描.拒絕模糊.享受清晰!

無法下載的用戶請到評論區一樓查看網盤地址!

內容介紹:

本文章由第1章 C語言概述、第2章 數據類型、運算符與表達式等組成。

內容截圖:

目錄:

第1章 C語言概述10

1.1 程序設計與C語言10

1.2 C程序初識12

1.3 程序設計方法與算法16

1.4 C程序運行環境與學習方法20

1.5 例題精解24

1.6 本章小結25

習題25

第2章 數據類型、運算符與表達式27

2.1 C語言基礎27

2.2 常量30

2.3 變量32

2.4 基本運算符與表達式33

2.5 不同數據類型間的轉換和運算39

2.6 例題精解41

2.7 本章小結42

習題43

第3章 順序結構程序設計45

3.1 C語言中的語句45

3.2 數據的輸入輸出47

3.3 例題精解54

3.4 本章小結57

習題57

第4章 選擇結構程序設計62

4.1 關係運算和邏輯運算62

4.2 if語句65

4.3 switch語句70

4.4 例題精解72

4.5 本章小結75

習題75

第5章 循環結構程序設計80

5.1 概述80

5.2 while語句80

5.3 dowhile語句82

5.4 for語句84

5.5 循環嵌套88

5.6 break語句、continue語句和goto語句與標號90

5.7 例題精解92

5.8 本章小結97

習題97

第6章 數組105

6.1 一維數組105

6.2 二維數組108

6.3 字符數組和字符串112

6.4 例題精解117

6.5 本章小結121

習題122

第7章 指針126

7.1 指針的基本概念126

7.2 指針與數組133

7.3 指針數組和指向指針的指針142

7.4 例題精解147

7.5 本章小結149

習題150

第8章 函數154

8.1 函數的基本概念154

8.2 函數參數和函數的值155

8.3 函數的調用157

8.4 數組作為函數參數158

8.5 指針作為函數參數161

8.6 嵌套調用與遞歸調用163

8.7 存儲類型166

8.8 命令行參數170

8.9 例題精解171

8.10 本章小結175

習題175

第9章 編譯預處理181

9.1 宏定義181

9.2 文件包含184

9.3 條件編譯185

9.4 例題精解186

9.5 本章小結188

習題189

第10章 結構體與共用體192

10.1 結構體192

10.2 共用體208

10.3 枚舉211

10.4 用戶定義類型212

10.5 例題精解213

10.6 本章小結214

習題215

第11章 位運算219

11.1 位運算的概念219

11.2 位運算219

11.3 位域(位段)223

11.4 本章小結226

習題226

第12章 文件228

12.1 文件概念228

12.2 文件指針229

12.3 文件的打開與關閉230

12.4 文件的讀寫231

12.5 文件的定位操作238

12.6 文件的錯誤檢測240

12.7 本章小結241

習題241

附錄243

1. 常用字符與ASCII代碼對照表243

2. C語言運算符的優先級與結合性244

3. C庫函數245

4. 常見錯誤信息表252

下載地址:

那種c語言指導書比較好

給你推薦幾本啊

剛開始學的話建議選擇譚浩強譚老師的書《C語言程序設計》,簡單易學,理論與實踐結合的很好,而且如果能認真學的話,你會發現你的C語言基礎非常的實。

《C primer plus》

作為一本被人推崇備至的c入門經典,C primer plus絕非浪得虛名。應該算得上C教材里最好的入門書了。

在知識廣度上,很少有書能匹及。它能為你系統學習c提供一個良好的平台。作者對c的見解精闢。在娓娓敘述的同時,作者輔以大量程序以分析。它讓我對C有了更加系統的全新認識。決非國人所寫的那些公理化的教條說教,我覺得作者把自己的心血全部吐露。書很厚,近700頁,卻不沒有讓我覺得任何的煩瑣。甚至是興趣盎然。我把上面所有的課後題目都做了。

最為重要的是,看完這本書後,我再也不覺得c很高深枯燥無味了。

《The C programming language 》

拿到這本薄薄的書,很多人開始懷疑,C語言是這麼幾百頁能講清楚的么。看完這本書,我想答案已經很明了,卻真的讓人感到震憾。什麼是好書?無法刪減的書才是真正的好書。

KR的書一如C語言的設計理念:簡單而高效 裏面的習題建議都認真做一遍,而且是在linux下用vi來做,用makefile來編譯,用shell腳本來進行測試,本來第八章的題就是和linux 相關的 計算機的大學生們不應只會在WINDOWS下用VC來編程,而都應該在linux環境下進行程序設計,因為linux本身就是為開發者準備的操作系統

C和指針

這本書最大的特點就是和指針結合在一起進行講解 通過一些經典的C例題對所學的知識進行鞏固 對指針的基礎和深入的探討 有助於初學者更好的理解C語言 還有明白C的存儲機制 我之前買了《C語言詳解》和《C Primer Plus》結合這本書一起學習,可以說是完美的 希望每個熱愛C語言的人能夠擁有這本書

C語言設計題目指導

經典c程序100例==1–10

【程序1】

題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去掉不滿足條件的排列。

2.程序源代碼:

main()

{

int i,j,k;

printf(“\n”);

for(i=1;i5;i++) /*以下為三重循環*/

for(j=1;j5;j++)

for (k=1;k5;k++)

{

if (i!=ki!=jj!=k) /*確保i、j、k三位互不相同*/

printf(“%d,%d,%d\n”,i,j,k);

}

}

==============================================================

【程序2】

題目:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高

於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提

成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於

40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於

100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?

1.程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。

2.程序源代碼:

main()

{

long int i;

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf(“%ld”,i);

bonus1=100000*0.1;bonus2=bonus1+100000*0.75;

bonus4=bonus2+200000*0.5;

bonus6=bonus4+200000*0.3;

bonus10=bonus6+400000*0.15;

if(i=100000)

bonus=i*0.1;

else if(i=200000)

bonus=bonus1+(i-100000)*0.075;

else if(i=400000)

bonus=bonus2+(i-200000)*0.05;

else if(i=600000)

bonus=bonus4+(i-400000)*0.03;

else if(i=1000000)

bonus=bonus6+(i-600000)*0.015;

else

bonus=bonus10+(i-1000000)*0.01;

printf(“bonus=%d”,bonus);

}

==============================================================

【程序3】

題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?

1.程序分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後

的結果滿足如下條件,即是結果。請看具體分析:

2.程序源代碼:

#include “math.h”

main()

{

long int i,x,y,z;

for (i=1;i100000;i++)

{ x=sqrt(i+100); /*x為加上100後開方後的結果*/

y=sqrt(i+268); /*y為再加上168後開方後的結果*/

if(x*x==i+100y*y==i+268)/*如果一個數的平方根的平方等於該數,這說明此數是完全平方數*/

printf(“\n%ld\n”,i);

}

}

==============================================================

【程序4】

題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊

情況,閏年且輸入月份大於3時需考慮多加一天。

2.程序源代碼:

main()

{

int day,month,year,sum,leap;

printf(“\nplease input year,month,day\n”);

scanf(“%d,%d,%d”,year,month,day);

switch(month)/*先計算某月以前月份的總天數*/

{

case 1:sum=0;break;

case 2:sum=31;break;

case 3:sum=59;break;

case 4:sum=90;break;

case 5:sum=120;break;

case 6:sum=151;break;

case 7:sum=181;break;

case 8:sum=212;break;

case 9:sum=243;break;

case 10:sum=273;break;

case 11:sum=304;break;

case 12:sum=334;break;

default:printf(“data error”);break;

}

sum=sum+day; /*再加上某天的天數*/

if(year%400==0||(year%4==0year%100!=0))/*判斷是不是閏年*/

leap=1;

else

leap=0;

if(leap==1month2)/*如果是閏年且月份大於2,總天數應該加一天*/

sum++;

printf(“It is the %dth day.”,sum);}

==============================================================

【程序5】

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果xy則將x與y的值進行交換,

然後再用x與z進行比較,如果xz則將x與z的值進行交換,這樣能使x最小。

2.程序源代碼:

main()

{

int x,y,z,t;

scanf(“%d%d%d”,x,y,z);

if (xy)

{t=x;x=y;y=t;} /*交換x,y的值*/

if(xz)

{t=z;z=x;x=t;}/*交換x,z的值*/

if(yz)

{t=y;y=z;z=t;}/*交換z,y的值*/

printf(“small to big: %d %d %d\n”,x,y,z);

}

==============================================================

【程序6】

題目:用*號輸出字母C的圖案。

1.程序分析:可先用’*’號在紙上寫出字母C,再分行輸出。

2.程序源代碼:

#include “stdio.h”

main()

{

printf(“Hello C-world!\n”);

printf(” ****\n”);

printf(” *\n”);

printf(” * \n”);

printf(” ****\n”);

}

==============================================================

【程序7】

題目:輸出特殊圖案,請在c環境中運行,看一看,Very Beautiful!

1.程序分析:字符共有256個。不同字符,圖形不一樣。

2.程序源代碼:

#include “stdio.h”

main()

{

char a=176,b=219;

printf(“%c%c%c%c%c\n”,b,a,a,a,b);

printf(“%c%c%c%c%c\n”,a,b,a,b,a);

printf(“%c%c%c%c%c\n”,a,a,b,a,a);

printf(“%c%c%c%c%c\n”,a,b,a,b,a);

printf(“%c%c%c%c%c\n”,b,a,a,a,b);}

==============================================================

【程序8】

題目:輸出9*9口訣。

1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。

2.程序源代碼:

#include “stdio.h”

main()

{

int i,j,result;

printf(“\n”);

for (i=1;i10;i++)

{ for(j=1;j10;j++)

{

result=i*j;

printf(“%d*%d=%-3d”,i,j,result);/*-3d表示左對齊,佔3位*/

}

printf(“\n”);/*每一行後換行*/

}

}

==============================================================

【程序9】

題目:要求輸出國際象棋棋盤。

1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。

2.程序源代碼:

#include “stdio.h”

main()

{

int i,j;

for(i=0;i8;i++)

{

for(j=0;j8;j++)

if((i+j)%2==0)

printf(“%c%c”,219,219);

else

printf(” “);

printf(“\n”);

}

}

==============================================================

【程序10】

題目:打印樓梯,同時在樓梯上方打印兩個笑臉。

1.程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。

2.程序源代碼:

#include “stdio.h”

main()

{

int i,j;

printf(“\1\1\n”);/*輸出兩個笑臉*/

for(i=1;i11;i++)

{

for(j=1;j=i;j++)

printf(“%c%c”,219,219);

printf(“\n”);

}

}

.:.:經典c程序100例==11–20 :.:.

經典c程序100例==11–20

【程序11】

題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月

後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

1.程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21….

2.程序源代碼:

main()

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i=20;i++)

{ printf(“%12ld %12ld”,f1,f2);

if(i%2==0) printf(“\n”);/*控制輸出,每行四個*/

f1=f1+f2; /*前兩個月加起來賦值給第三個月*/

f2=f1+f2; /*前兩個月加起來賦值給第三個月*/

}

}

==============================================================

【程序12】

題目:判斷101-200之間有多少個素數,並輸出所有素數。

1.程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,

則表明此數不是素數,反之是素數。

2.程序源代碼:

#include “math.h”

main()

{

int m,i,k,h=0,leap=1;

printf(“\n”);

for(m=101;m=200;m++)

{ k=sqrt(m+1);

for(i=2;i=k;i++)

if(m%i==0)

{leap=0;break;}

if(leap) {printf(“%-4d”,m);h++;

if(h%10==0)

printf(“\n”);

}

leap=1;

}

printf(“\nThe total is %d”,h);

}

==============================================================

【程序13】

題目:打印出所有的「水仙花數」,所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數

本身。例如:153是一個「水仙花數」,因為153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。

2.程序源代碼:

main()

{

int i,j,k,n;

printf(“‘water flower’number is:”);

for(n=100;n1000;n++)

{

i=n/100;/*分解出百位*/

j=n/10%10;/*分解出十位*/

k=n%10;/*分解出個位*/

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

{

printf(“%-5d”,n);

}

}

printf(“\n”);

}

==============================================================

【程序14】

題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。

程序分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:

(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。

(2)如果nk,但n能被k整除,則應打印出k的值,並用n除以k的商,作為新的正整數你n,

重複執行第一步。

(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。

2.程序源代碼:

/* zheng int is divided yinshu*/

main()

{

int n,i;

printf(“\nplease input a number:\n”);

scanf(“%d”,n);

printf(“%d=”,n);

for(i=2;i=n;i++)

{

while(n!=i)

{

if(n%i==0)

{ printf(“%d*”,i);

n=n/i;

}

else

break;

}

}

printf(“%d”,n);}

==============================================================

【程序15】

題目:利用條件運算符的嵌套來完成此題:學習成績=90分的同學用A表示,60-89分之間的用B表示,

60分以下的用C表示。

1.程序分析:(ab)?a:b這是條件運算符的基本例子。

2.程序源代碼:

main()

{

int score;

char grade;

printf(“please input a score\n”);

scanf(“%d”,score);

grade=score=90?’A’:(score=60?’B’:’C’);

printf(“%d belongs to %c”,score,grade);

}

==============================================================

【程序16】

題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。

1.程序分析:利用輾除法。

2.程序源代碼:

main()

{

int a,b,num1,num2,temp;

printf(“please input two numbers:\n”);

scanf(“%d,%d”,num1,num2);

if(num1num2)/*交換兩個數,使大數放在num1上*/

{ temp=num1;

num1=num2;

num2=temp;

}

a=num1;b=num2;

while(b!=0)/*利用輾除法,直到b為0為止*/

{

temp=a%b;

a=b;

b=temp;

}

printf(“gongyueshu:%d\n”,a);

printf(“gongbeishu:%d\n”,num1*num2/a);

}

==============================================================

【程序17】

題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。

1.程序分析:利用while語句,條件為輸入的字符不為’\n’.

2.程序源代碼:

#include “stdio.h”

main()

{char c;

int letters=0,space=0,digit=0,others=0;

printf(“please input some characters\n”);

while((c=getchar())!=’\n’)

{

if(c=’a’c=’z’||c=’A’c=’Z’)

letters++;

else if(c==’ ‘)

space++;

else if(c=’0’c=’9′)

digit++;

else

others++;

}

printf(“all in all:char=%d space=%d digit=%d others=%d\n”,letters,

space,digit,others);

}

==============================================================

【程序18】

題目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時

共有5個數相加),幾個數相加有鍵盤控制。

1.程序分析:關鍵是計算出每一項的值。

2.程序源代碼:

main()

{

int a,n,count=1;

long int sn=0,tn=0;

printf(“please input a and n\n”);

scanf(“%d,%d”,a,n);

printf(“a=%d,n=%d\n”,a,n);

while(count=n)

{

tn=tn+a;

sn=sn+tn;

a=a*10;

++count;

}

printf(“a+aa+…=%ld\n”,sn);

}

==============================================================

【程序19】

題目:一個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如6=1+2+3.編程

找出1000以內的所有完數。

1. 程序分析:請參照程序–上頁程序14.

2.程序源代碼:

main()

{

static int k[10];

int i,j,n,s;

for(j=2;j1000;j++)

{

n=-1;

s=j;

for(i=1;ij;i++)

{

if((j%i)==0)

{ n++;

s=s-i;

k[n]=i;

}

}

if(s==0)

{

printf(“%d is a wanshu”,j);

for(i=0;iN;I++)

printf(“%d,”,k[i]);

printf(“%d\n”,k[n]);

}

}

}

==============================================================

【程序20】

題目:一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在

第10次落地時,共經過多少米?第10次反彈多高?

1.程序分析:見下面注釋

2.程序源代碼:

main()

{

float sn=100.0,hn=sn/2;

int n;

for(n=2;n=10;n++)

{

sn=sn+2*hn;/*第n次落地時共經過的米數*/

hn=hn/2; /*第n次反跳高度*/

}

printf(“the total of road is %f\n”,sn);

printf(“the tenth is %f meter\n”,hn);

}

.:.:經典c程序100例==21–30:.:.

經典c程序100例==21–30

【程序21】

題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個

第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下

的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。

1.程序分析:採取逆向思維的方法,從後往前推斷。

2.程序源代碼:

main()

{

int day,x1,x2;

day=9;

x2=1;

while(day0)

{x1=(x2+1)*2;/*第一天的桃子數是第2天桃子數加1後的2倍*/

x2=x1;

day–;

}

printf(“the total is %d\n”,x1);

}

==============================================================

由於題目太多共一百題,抱歉……慢慢消化對你有提高的,發現題目中的閃光點可以做筆記。如果你想迅速提高C水平的話就買幾套二級C筆試部分練它十幾套,你會很有成就感。編程要有心計。

原創文章,作者:IPAT,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/134810.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IPAT的頭像IPAT
上一篇 2024-10-04 00:08
下一篇 2024-10-04 00:08

相關推薦

  • Python基礎教程第三版PDF下載

    熟練掌握Python編程語言可以讓你輕鬆地用代碼解決很多問題,Python基礎教程第三版是一本適合初學者的Python教程。本文將從幾個方面詳細介紹Python基礎教程第三版PDF…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論