當前位置:首頁 » 編程語言 » c語言程序設計教程譚浩強

c語言程序設計教程譚浩強

發布時間: 2023-07-10 22:44:28

A. 求譚浩強c語言程序設計視頻教程打包下載

鏈接:

提取碼:f1bt

譚浩強老師C語言視頻教程是2007年5月17日發布的網路課程,參考於C語言程序設計。C語言程序設計作為大學理工課大一下學期必修的課程,學習該課程並不是要求大家能用C設計一個復雜的程序,最主要是掌握一種結構化設計的編程思想,對編程不再恐懼陌生,該課程的知識點的講解通俗易懂,使即使沒有任何基本的朋友也可以很好的掌握。學完本課程後對後繼的編輯語言的學習將會有很大的幫助!

B. 譚浩強的C語言程序設計。各個版本有什麼區別

就拿第四版和第三版作對比,區別如下:

1、指代不同

(1)C程序設計譚浩強版本的第四版:這是清華大學出版社2010年出版的一本書,作者是譚浩強。

(2)C程序設計譚浩強版本的第三版:被普遍認為是學習C語言的一本好教科書,並且被全國大多數大學所選擇。

2、影響不同

(1)C程序設計譚浩強版本的第四版:本書被大多數大學用作C語言學習的教科書,且糾正了第三版中的不足。

(2)C程序設計譚浩強版本的第三版:獲原電子工業部優秀教科書一等獎,大學出版社暢銷書特等獎,全國高等院校計算機基礎教育研究會優秀教材一等獎。

3、特點不同

(1)C程序設計譚浩強版本的第四版:內容先進,體系合理,概念清晰,說明詳盡,步驟少,分散困難點,實例豐富,通俗易懂,文字通俗易懂,是初學者學習C程序設計理想的教材,可以用作大學所有專業的正式教材。

(2)C程序設計譚浩強版本的第三版:已發行超過700萬冊,創下了類似書籍的全國記錄,並且是學習C語言的主流書籍。

C. 譚浩強C語言入門書籍

C程序設計(第四版)
【作 者】:譚浩強
【出 版 社】:清華大學出版社
【出版日期】:2012-5-1
【 ISBN 號】:9787302224464
C程序設計(第四版)學習輔導
【圖書定價】:28元
【作者】: 譚浩強
【叢書名】: 中國高等院校計算機基礎教育課程體系規劃教材
【出版社】:清華大學出版社
【ISBN】:9787302226727
【出版日期】:2013 年1月
【開本】:16開
【頁碼】:268
《c程序設計(第四版)》
第1章程序設計和c語言1
1.1什麼是計算機程序1
1.2什麼是計算機語言1
1.3c語言的發展及其特點3
1.4最簡單的c語言程序5
1.4.1最簡單的c語言程序舉例6
1.4.2c語言程序的結構10
1.5運行c程序的步驟與方法12
1.6程序設計的任務14
習題15
第2章演算法——程序的靈魂16
2.1什麼是演算法16
2.2簡單的演算法舉例17
2.3演算法的特性21
2.4怎樣表示一個演算法22
2.4.1用自然語言表示演算法22
2.4.2用流程圖表示演算法22
2.4.3三種基本結構和改進的流程圖26
2.4.4用ns流程圖表示演算法28
.2.4.5用偽代碼表示演算法31
2.4.6用計算機語言表示演算法32
2.5結構化程序設計方法34
習題36
第3章最簡單的c程序設計——順序程序設計37
3.1順序程序設計舉例37
3.2數據的表現形式及其運算39
3.2.1常量和變數39
3.2.2數據類型42
3.2.3整型數據44
3.2.4字元型數據47
3.2.5浮點型數據49
3.2.6怎樣確定常量的類型51
3.2.7運算符和表達式52
3.3c語句57
3.3.1c語句的作用和分類57
3.3.2最基本的語句——賦值語句59
3.4數據的輸入輸出65
3.4.1輸入輸出舉例65
3.4.2有關數據輸入輸出的概念67
3.4.3用printf函數輸出數據68
3.4.4用scanf函數輸入數據75
3.4.5字元數據的輸入輸出78
習題82
第4章選擇結構程序設計85
4.1選擇結構和條件判斷85
4.2用if語句實現選擇結構87
4.2.1用if語句處理選擇結構舉例87
4.2.2if語句的一般形式 89
4.3關系運算符和關系表達式91
4.3.1關系運算符及其優先次序91
4.3.2關系表達式92
4.4邏輯運算符和邏輯表達式92
4.4.1邏輯運算符及其優先次序93
4.4.2邏輯表達式94
4.4.3邏輯型變數96
4.5條件運算符和條件表達式97
4.6選擇結構的嵌套99
4.7用switch語句實現多分支選擇結構102
4.8選擇結構程序綜合舉例105
習題111
第5章循環結構程序設計114
5.1為什麼需要循環控制114
5.2用while語句實現循環115
5.3用do…while語句實現循環117
5.4用for 語句實現循環120
5.5循環的嵌套124
5.6幾種循環的比較125
5.7改變循環執行的狀態125
5.7.1用break語句提前終止循環126
5.7.2用continue語句提前結束本次循環127
5.7.3break語句和continue語句的區別128
5.8循環程序舉例131
習題140
第6章利用數組處理批量數據142
6.1怎樣定義和引用一維數組142
6.1.1怎樣定義一維數組143
6.1.2怎樣引用一維數組元素144
6.1.3一維數組的初始化145
6.1.4一維數組程序舉例146
6.2怎樣定義和引用二維數組148
6.2.1怎樣定義二維數組149
6.2.2怎樣引用二維數組的元素150
6.2.3二維數組的初始化151
6.2.4二維數組程序舉例152
6.3字元數組154
6.3.1怎樣定義字元數組154
6.3.2字元數組的初始化155
6.3.3怎樣引用字元數組中的元素155
6.3.4字元串和字元串結束標志156
6.3.5字元數組的輸入輸出159
6.3.6使用字元串處理函數161
6.3.7字元數組應用舉例165
習題168
第7章用函數實現模塊化程序設計170
7.1為什麼要用函數170
7.2怎樣定義函數172
7.2.1為什麼要定義函數172
7.2.2定義函數的方法173
7.3調用函數174
7.3.1函數調用的形式174
7.3.2函數調用時的數據傳遞175
7.3.3函數調用的過程177
7.3.4函數的返回值178
7.4對被調用函數的聲明和函數原型179
7.5函數的嵌套調用182
7.6函數的遞歸調用184
7.7數組作為函數參數192
7.7.1數組元素作函數實參193
7.7.2數組名作函數參數194
7.7.3多維數組名作函數參數197
7.8局部變數和全局變數199
7.8.1局部變數199
7.8.2全局變數200
7.9變數的存儲方式和生存期204
7.9.1動態存儲方式與靜態存儲方式204
7.9.2局部變數的存儲類別205
7.9.3全局變數的存儲類別208
7.9.4存儲類別小結212
7.10關於變數的聲明和定義214
7.11內部函數和外部函數215
7.11.1內部函數215
7.11.2外部函數215
習題218
第8章善於利用指針220
8.1指針是什麼220
8.2指針變數222
8.2.1使用指針變數的例子222
8.2.2怎樣定義指針變數223
8.2.3怎樣引用指針變數224
8.2.4指針變數作為函數參數226
8.3通過指針引用數組230
8.3.1數組元素的指針230
8.3.2在引用數組元素時指針的運算231
8.3.3通過指針引用數組元素233
8.3.4用數組名作函數參數237
8.3.5通過指針引用多維數組245
8.4通過指針引用字元串255
8.4.1字元串的引用方式 255
8.4.2字元指針作函數參數259
8.4.3使用字元指針變數和字元數組的比較263
8.5指向函數的指針266
8.5.1什麼是函數指針266
8.5.2用函數指針變數調用函數266
8.5.3怎樣定義和使用指向函數的指針變數268
8.5.4用指向函數的指針作函數參數270
8.6返回指針值的函數274
8.7指針數組和多重指針277
8.7.1什麼是指針數組 277
8.7.2指向指針數據的指針280
8.7.3指針數組作main函數的形參282
8.8動態內存分配與指向它的指針變數285
8.8.1什麼是內存的動態分配285
8.8.2怎樣建立內存的動態分配285
8.8.3void指針類型 287
8.9有關指針的小結288
習題291
第9章用戶自己建立數據類型293
9.1定義和使用結構體變數293
9.1.1自己建立結構體類型293
9.1.2定義結構體類型變數 295
9.1.3結構體變數的初始化和引用297
9.2使用結構體數組300
9.2.1定義結構體數組300
9.2.2結構體數組的應用舉例301
9.3結構體指針303
9.3.1指向結構體變數的指針303
9.3.2指向結構體數組的指針304
9.3.3用結構體變數和結構體變數的指針作函數參數306
9.4用指針處理鏈表309
9.4.1什麼是鏈表 309
9.4.2建立簡單的靜態鏈表310
9.4.3建立動態鏈表311
9.4.4輸出鏈表315
9.5共用體類型317
9.5.1什麼是共用體類型317
9.5.2引用共用體變數的方式318
9.5.3共用體類型數據的特點319
9.6使用枚舉類型323
9.7用typedef聲明新類型名326
習題330
第10章對文件的輸入輸出331
10.1c文件的有關基本知識331
10.1.1什麼是文件331
10.1.2文件名332
10.1.3文件的分類332
10.1.4文件緩沖區333
10.1.5文件類型指針333
10.2打開與關閉文件335
10.2.1用fopen函數打開數據文件335
10.2.2用fclose函數關閉數據文件337
10.3順序讀寫數據文件338
10.3.1怎樣向文件讀寫字元338
10.3.2怎樣向文件讀寫一個字元串341
10.3.3用格式化的方式讀寫文件344
10.3.4用二進制方式向文件讀寫一組數據345
10.4隨機讀寫數據文件349
10.4.1文件位置標記及其定位349
10.4.2隨機讀寫 352
10.5文件讀寫的出錯檢測353
習題354
第11章常見錯誤分析355
附錄370
附錄a在visual c++ 6.0環境下運行c程序的方法370
附錄b常用字元與ascii代碼對照表377
附錄cc語言中的關鍵字378
附錄d運算符和結合性378
附錄ec語言常用語法提要380
附錄fc庫函數384
參考文獻390

D. 譚浩強c語言視頻教程全集下載

1、在瀏覽器搜索譚浩強視頻全集。

2、在視頻軟體搜索c語言教程譚浩強。

3、在網校裡面查找。

E. 譚浩強c語言視頻教程下載地址

譚浩強【004】

鏈接:

提取碼:ncnf 復制這段內容後打開網路網盤手機APP,操作更方便哦!

若資源有問題歡迎追問~

F. 譚浩強c語言入門教程

我都打包放在油箱里了,我發你哈。我看的這個是夏老師的,依據的是譚浩強教材講的。我當初就是自學這個學會了考過的。感覺挺適合初學者的,一聽就能聽懂那種。這個最吸引我的地方就是講的一聽就能聽懂。而且很多概念都有形象的比喻,例如把變數比如成盒子。把變數賦值比喻成往盒子里放東西等等很多這樣的比喻。不像之前看的什麼郝斌曾怡那樣,有用沒用的都講,跟讀課本似的。聽不出重點來,都聽迷糊了。

G. 急需《C語言程序設計教程》第三版(譚浩強\張基溫)編著,高等教育出版社出版,課後習題答案!

C程序設計(第三版)[譚浩強著]課後題答案!!!(2009-06-04 19:57:53)標簽:教育 分類:學習

1.5請參照本章例題,編寫一個C程序,輸出以下信息:
**************************
Very Good!
**************************
解:
mian()
{printf(「**************************」);
printf(「\n」);
printf(「Very Good!\n」);
printf(「\n」);
printf(「**************************」);
}
1.6 編寫一個程序,輸入a、b、c三個值,輸出其中最大值。
解:
mian()
{int a,b,c,max;
printf(「請輸入三個數a,b,c:\n」);
scanf(「%d,%d,%d」,&a,&b,&c);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
printf(「最大數為:「%d」,max);
}
第三章
3.6寫出以下程序運行的結果。
main()
{char c1=』a』,c2=』b』,c3=』c』,c4=』\101』,c5=』\116』;
printf(「a%cb%c\tc%c\tabc\n」,c1,c2,c3);
printf(「\t\b%c %c」,c4,c5);
}
解:
aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc
AㄩN
3.7 要將"China"譯成密碼,解碼規律是:用原來字母後面的第4個字母代替原來的字母.例如,字母"A"後面第4個字母是"E"."E"代替"A"。因此,"China"應譯為"Glmre"。請編一程序,用賦初值的方法使cl、c2、c3、c4、c5五個變數的值分別為,』C』、』h』、』i』、』n』、』a』,經過運算,使c1、c2、c3、c4、c5分別變為』G』、』l』、』m』、』r』、』e』,並輸出。
解:
#include <stdio.h>
main()
{ char c1=』C』,c2=』h』,c3=』i』,c4=』n』,c5=』a』;
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf("密碼是%c%c%c%c%c\n",c1,c2,c3,c4,c5);
}
運行結果:
密碼是Glmre
3.9求下面算術表達式的值。
(1)x+a%3*(int)(x+y)%2/4
設x=2.5,a=7,y=4.7
(2)(float)(a+b)/2+(int)x%(int)y
設a=2,b=3,x=3.5,y=2.5
(1)2.5
(2)3.5
3.10寫出程序運行的結果。
main()
{int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(「%d,%d,%d,%d」,i,j,m,n);
}
解:
9,11,9,10
3.12 寫出下面表達式運算後a的值,設原來a=12。設a和n都已定義為整型變數。
(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a
(5) a%=(n%=2),n的值等於5
(6)a+=a-=a*=a
解:
(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0
第四章
4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=』a』,c2=』b』。想得到以下輸出格式和結果,請寫出程序(包括定義變數類型和設計輸出)。
a=_3_ _b=_4_ _c=_5
x=1.200000,y=2.400000,z=-3.600000
x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40
c1=ˊaˊ_or_97(ASCII)
c2=ˊbˊ_or_98(ASCII)
main()
{int a=3,b=4,c=5;
long int u=51274,n=128765;
float x=1.2,y=2.4,z=3.6;
char c1=』a』,c2=』b』;
printf("a=%2d b=%2d c=%2d\n",a,b,c);
printf("x=%f,y=%f,z=%f\n",x,y,z);
printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6ld n=%9ld\n",u,n);
printf("%s %s %d%s\n","c1=』a』","or",c1,"(ASCII)");
printf("%s %s %d%s\n","c2=』a』","or",c2,"(ASCII)");
}
4.7用scanf下面的函數輸入數據,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,問在鍵盤上如何輸入?
main()
{
int a,b;float x,y;char c1c2;
scanf("a=%d_b=%d",&a,&b);
scanf("_x=%f_y=%e",&x,&y);
scanf("_c1=%c_c2=%c",&c1,&c2);
}
a=3_b=7
_x=8.5_y=71.82
_c1=A_c2=a
4.8設圓半徑r=1.5,圓柱高h=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數據,輸出計算結果,輸出時要求文字說明,取小數點後兩位數字。請編程序。
main()
{float r,h,C1,Sa,Sb,Va,Vb;
scanf("%f,%f",&r,&h);
C1=2*3.14*r;
Sa=3.14*r*r;
Sb=4*Sa;
Va=4*3.14*r*r*r/3;
Vb=Sa*h;
printf("C1=%.2f\n",C1);
printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);
}
4.9輸入一個華氏溫度,要求輸出攝氏溫度。公式為
c=5(F-32)/9
輸出要求有文字說明,取位2小數。
main()
{float F,c;
scanf("%f",&F);
c=5*(F-32)/9;
printf("c=%.2f",c);
}
4.10編程序,用getchar函數讀入兩個字元給c1、c2,然後分別用函數和函數輸出這兩個字元。並思考以下問題:(1)變數c1、c2應定義為字元型或整形?抑二者皆可?(2)要求輸出c1和c2值的ASCII碼,應如何處理?用putchar函數還是printf函數?(3)整形變數與字元變數是否在任何情況下都可以互相代替?如:
char c1,c2;

int c1,c2;
是否無條件的等價?
#include"stdio.h"
main()
{char c1,c2;
c1=getchar();c2=getchar();
putchar(c1);putchar(』\n』);putchar(c2);putchar(』\n』);
}
#include"stdio.h"
main()
{char c1,c2;
c1=getchar();c2=getchar();
printf("c1=%d c2=%d\n",c1,c2);
printf("c1=%c c2=%c\n",c1,c2);
}
第五章
5.1 什麼是算術運算?什麼是關系運算?什麼是邏輯運算?
解:略。

5.2 C語言中如何表示「真」和「假」?系統如何判斷一個量的「真」和「假」?
解:設有一個邏輯表達式,若其結果為「真」,則以1表示;若其結果為「假」,則以0表示。但是判斷一個邏輯量的值時,以0代表「真」,以非0代表「假」。例如3&&5的值為「真」,系統給出3&&5的值為1。

5.3 寫出下面各邏輯表達式的值。設a=3,b=4,c=5。
(1) a+b>c&&b==c
(2) a||b+c&&b-c
(3) !(a>b)&&!c||1
(4) !(x=a)&&(y=b)&&0
(5) !(a+b)+c-1&&b+c/2

解:
(1) 0
(2) 1
(3) 1
(4) 0
(5) 1
5.4 有3個整數a、b、c,由鍵盤輸入,輸出其中最大的數。

解:
方法一
#include <stdio.h>
main()
{ int a,b,c;
printf("請輸入3個整數:");
scanf("%d,%d,%d",&a,&b,&c);
if(a<b)
if(b<c) printf("max=%d\n",c);
else printf("max=%d\n",b);
else if(a<c) printf("max=%d\n",c);
else printf("max=%d\n",a);
}

方法二:使用條件表達式,可以使程序更加簡明、清晰。
程序如下:
#include <stdio.h>
main()
{ int a,b,c,temp,max;
printf("請輸入3個整數:");
scanf("%d,%d,%d",&a,&b,&c);
temp=(a>b)?a:b;
max=(temp>c)?temp:c;
printf("3個整數的最大數是%d\n」,max);
}

5.5 有一函數:

寫一程序,輸入x值,輸出y值。
解:
#include <stdio.h>
main()
{int x,y;
printf("輸入x:");
scanf("%d",&x);
if(x<1)
{ y=x;
printf("x=%3d, y=x=%d\n",x,y);
}
else if (x<10)
{ y=2*x-1;
printf("x=%3d, y=2*x-1=%d\n",x,y);
}
else
{ y=3*x-11;
printf("x=%3d, y=3*x-11=%d\n",x,y);
}
}

5.6 給一個百分製成績,要求輸出等級』A』、』B』、』C』、』D』、』E』。90分以上為』A』,80~90分為』B』,70~79分為』C』,60分以下為』D』。
解:
程序如下:
#include <stdio.h>
main()
{ float score;
char grade;
case 2:
printf("請輸入學生成績:");
scanf("%f",&score);
while(score>100||(score<0)
{ printf("\n輸入有誤,請重新輸入:");
scanf("%f",&score);
}
switch((int)(score/10))
{ case 10:
case 9: grade=』A』;break;
case 8: grade=』B』;break;
case 7: grade=』C』;break;
case 6: grade=』D』;break;
case 5:
case 4:
case 3:
case 1:
case 0: grade=』E』;
}
printf("成績是%5.1f,相應的等級是%c。\n",score,grade);
}
說明:對輸入的數據進行檢查,如小於0或大於100,要求重新輸入。(int)(score/10)的作用是將 (score/10) 的值進行強制類型轉換,得到一個整型值。
5.7 給定一個不多於5位的正整數,要求:① 求它是幾位數;② 分別列印出每一位數字;③ 按逆序列印出各位數字。例如原數為321,應輸出123。
解:
#include <stdio.h>
main()
{ long int num;
int indiv,ten,hundred,thousand,ten_thousand,place;

printf("請輸入一個整數(0~99999):");
scanf("%ld",&num);
if (num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2;
else place=1;
printf("place =%d\n", place);
ten_thousand=num/10000;
thousand=num/1000%10;
hundred=num/100%10;
ten=num%100/10;
indiv=num%10;
switch(place)
{ case 5: printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
printf("\n反序數字為;");
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("\n反序數字為:");
printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
break;
case 3: printf("%d,%d,%d",hundred,ten,indiv);
printf("\n反序數字為:");
printf("%d%d%d\n",indiv,ten,hundred);
break;
case 2: printf("%d,%d",ten,indiv);
printf("\n反序數字為:");
printf("%d%d\n",indiv,ten);
break;
case 1: printf("%d",indiv);
printf("\n反序數字為:");
printf("%d\n",indiv);
break;
}
}

5.8 企業發放的獎金根據利潤提成。利潤I低於或等於10萬元時,獎金可提成10% ;利潤高於10萬元,低於20萬元(100000<I≤200000)時,其中10萬元按10%提成,高於10萬元的部分,可提成7.5% ;200000<I≤400000時,其中20萬元仍按上述辦法提成(下同),高於20萬元的部分按5%提成;400000<I≤600000時,高於40萬元的部分按3%提成;600000〈I≤1000000時,高於60萬的部分按1.5%提成;I>1000000時,超過100萬元的部分按1%提成。從鍵盤輸入當月利潤I,求應發放獎金總數。要求:(1)用if語句編程序;(2)用switch語句編程序。
解:計算利潤時,要特別注意不同利潤的不同提成比例。例如,利潤為15萬元,其中有10萬元按10%的比例提成,另外5萬元則按7.5%提成。
(1) 用if語句編程序。

#include <stdio.h>
main()
{ long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
printf("請輸入利潤i:");
scanf("%ld",&i);
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bon1+(i-100000)*0.075;
else if(i<=400000)
bonus=bon2+(i-200000)*0.05;
else if(i<=600000)
bonus=bon4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bon6+(i-600000)*0.015;
else
bonus=bon10+(i-1000000)*0.01;
printf(」獎金是%10.2f\n",bonus);
}

此題的關鍵在於正確寫出每一區間的獎金計算公式。例如利潤在10萬元至20萬時,獎金應由兩部分組成:①利潤為10萬元時應得的獎金。即100000ⅹ0.1;②10萬元以上部分應得的獎金。即(num-100000)ⅹ0.075。同理,20萬~40萬這個區間的獎金也應由兩部分組成:①利潤為20萬元時應得的獎金,即100000ⅹ0.1ⅹ10萬ⅹ0.075;②20萬元以上部分應得的獎金,即(num-200000)ⅹ0.05。程序中先把10萬、20萬、40萬、60萬、100萬各關鍵點的獎金計算出來,即bon1、bon2、bon4、bon6、hon10;然後再加上各區間附加部分的獎金。

(2) 用switch語句編程序。
輸入利潤i,確定相應的提成等級branch
根據branch確定獎金值
0 獎金=i*0.1
1 獎金=bon1+(i-105)*0.075
2 獎金=bon2+(i-2*105)*0.05
3
4 獎金=bon4+(i-4*105)*0.03
5
6 獎金=bon6+(i-6*105)*0.015
7
8
9
10 獎金=bon10+(i-106)*0.01
輸出獎金
#include <stdio.h>
main()
{ long i;
float bonus, bon1, bon2, bon4, bon6, bon10;
int c;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
printf("請輸入利潤i:");
scanf("%ld",&i);
c=i/100000;
if(c>10) c=10;
switch(c)
{ case 0: bonus=1*0.1;break;
case 1: bonus=bon1+(i-100000)*0.075;break;
case 2 :
case 3: bonus=bon2+(i-200000)*0.05; break;
case 4:

case 5: bonus=bon4+(i-400000)*0.03;break;
case 6:
case 7:
case 8:
case 9: bonus=bon6+(i-600000)*0.015;break;
case 10: bonus=bon10+(i-1000000)*0.01;
}
printf("獎金是%10.2f",bonus);
}
5.9 輸入4個整數,要求按由大到小的順序輸出。
解:此題採用依次比較的方法排出其大小順序。在學習了循環和數組以後,可以有更多的排序方法。
#include <stdio.h>
main()
{ int t,a,b,c,d;
printf("請輸入4個整數:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("\n a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
if(a>b) {t=a; a=b; b=t;}
if(a>c) {t=a; a=c; c=t;}
if(a>d) {t=a; a=d; d=t;}
if(b>c) {t=a; b=c; c=t;}
if(b>d) {t=b; b=d; d=t;}
if(c>d) {t=c; c=d; d=t;}
printf("排序結果如下:\n");
printf("%d, %d, %d, %d\n",a,b,c,d);
}

5.10 有4個圓塔,圓心分別為(2,2)、(-2,2)、(2,-2)、(-2,-2),圓半徑為1。這4個塔的高度分別為10m。塔以外無建築物。今輸入任一點的坐標,求該點的建築高度(塔外的高度為零)。

程序如下:
#include <stdio.h>
main()
{ int h=10;
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=-2,y4=-2,x,y,d1,d2,d3,d4;
printf("請輸入一個點(x,y):");
scanf("%f,%f",&x,&y);
d1=(x-x1)*(x-x1)+(y-y1)*(y-y1);
d2=(x-x2)*(x-x2)+(y+y2)*(y+y2);
d3=(x+x3)*(x+x3)+(y-y3)*(y-y3);
d4=(x+x4)*(x-x4)*(y+y4)*(y+y4);
if(d1>1&&d2>1&&d3>1&&d4>1) h=0;
printf("該點高度為%d\n",h);
}

第六章
第六章 循環控制

6.1輸入兩個正整數m和n,求其最大公約數和最小公倍數。
main()
{long m,n,i=1,j,s;
scanf("%ld,%ld",&m,&n);
for(;i<=m&&i<=n;i++)
{if(m%i==0&&n%i==0) s=i;}
if(m>=n) j=m;
else j=n;
for(;!(j%m==0&&j%n==0);j++);
printf("s=%ld,j=%ld\n",s,j);
}
6.2輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數。
#include"stdio.h"
main()
{char c;int i=0,j=0,k=0,l=0;
while((c=getchar())!=』\n』)
{if(c>=65&&c<=90||c>=97&&c<=122) i++;
else if(c>=48&&c<=57) j++;
else if(c==32) k++;
else l++;}
printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l);
}
6.3求Sn=a+aa+aaa+…+aa…aaa(有n個a)之值,其中a是一個數字。例如:2+22+222+2222+22222(n=5),n由鍵盤輸入。
#include"math.h"
main()
{int n,sum=0,i=1,s=2;
scanf("%d",&n);
while(i<=n)
{sum=sum+s;s=s+2*pow(10,i);
i++;}
printf("sum=%d\n",sum);
}
6.4 求 ,(即求1!+2!+3!+4!+5!+…+20!)
main()
{int n,i=1;long sum=0,s=1;
scanf("%d",&n);
while(i<=n) {s=s*i;sum=sum+s;i++;}
printf("sum=%ld\n",sum);
}
6.5 求
main()
{double i=1,j=1,k=1,s1=0,s2=0,s3=0,sum;
for(;i<=100;i++) s1=s1+i;
for(;j<=50;j++) s2=s2+j*j;
for(;k<=10;k++) s3=s3+1/k;
sum=s1+s2+s3;
printf("sum=%f\n",sum);
}
6.6列印出所有"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該本身。例如:153是一個水仙花數,因為153=1^3+5^3+3^3。
#include"math.h"
main()
{int x=100,a,b,c;
while(x>=100&&x<1000) {a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b;
if(x==(pow(a,3)+pow(b,3)+pow(c,3))) printf("%5d",x);x++;}
}
6.7一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數"。編程序找出1000之內的所有完數,並按下面格式輸出其因子:
6 its factors are 1、2、3
main()
{int m,i,j,s;
for(m=6;m<10000;m++)
{s=1;
for(i=2;i<m;i++)
if(m%i==0) s=s+i;
if(m-s==0)
{printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++) if(m%j==0)
printf("%d ",j);printf("\n");}
}
}

main()
{int m,i,j,s;
for(m=6;m<1000;m++)
{s=m-1;
for(i=2;i<m;i++)
if(m%i==0) s=s-i;
if(s==0)
{printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++) if(m%j==0)
printf("%d ",j);printf("\n");}
}
}
6.8有一分數序列:

求出這個數列的前20項之和。
main()
{int i=1,n;double t,x=1,y=2,s,sum=0;
scanf("%ld",&n);
while(i<=n) {s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;}
printf("%f\n",sum);
}
6.9一球從100米高度自由下落,每次落地後返回原高度的一半,再落下。求它在第10次落地時共經過多少米?第10次反彈多高?
main()
{int i,n;double h=100,s=100;
scanf("%d",&n);
for(i=1;i<=n;i++)
{h*=0.5;if(i==1) continue;s=2*h+s;}
printf("h=%f,s=%f\n",h,s);
}
6.10猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘多少桃子。
main()
{int i=1,sum=0;
for(;i<=10;sum=2*sum+1,i++);
printf("sum=%d\n",sum);
}
6.11用迭代法求 。求平方根的迭代公式為:

要求前後兩次求出的得差的絕對值少於0.00001。
#include"math.h"
main()
{float x0,x1,a;
scanf("%f",&a);
x1=a/2;
do
{x0=x1;x1=(x0+a/x0)/2;}
while(fabs(x0-x1)>=0.00001);
printf("%.3f\n",x1);
}
6.12 用牛頓迭代法求方程在1.5附近的根。

main()
{double x,y;x=1.5;
do{y=2*x*x*x-4*x*x+3*x-6;
x=x-y/(6*x*x-8*x+3);}
while(y!=0);
printf("x=%.3f\n",x);
}
6.13用二分法求方程在(-10,10)之間的根

main()
{double x1,x2,y1,y2;x1=-10;x2=10;
do{y1=2*x1*x1*x1-4*x1*x1+3*x1-6;
x1=x1-y1/(6*x1*x1-8*x1+3);}
while(y1!=0);
do
{y2=2*x2*x2*x2-4*x2*x2+3*x2-6;
x2=x2-y2/(6*x2*x2-8*x2+3);}
while(y2!=0);
printf("x1=%.3f,x2=%.3f\n",x1,x2);
}
6.14列印以下圖案

*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
#include"math.h"
main()
{int i,j,k;
for(i=0;i<=3;i++)
{for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
}
第七章
第七章 數組

7.1 用篩法求之內的素數。
main()
{ int i,j,a[100];
for(i=2;i<100;i++)
{ a[i]=i;
for(j=2;j<=i;j++)
{if(j<i)
if(a[i]%j==0)
break;
if(a[i]-j==0)
printf("%5d",a[i]);
}
}
printf("\n");
}

#include"math.h"
main()
{static int i,j,k,a[98];
for(i=2;i<100;i++)
{a[i]=i;k=sqrt(i);
for(j=2;j<=a[i];j++)
if(j<k) if(a[i]%j==0)
break;
if(j>=k+1)
printf("%5d",a[i]);
}
printf("\n");
}
7.2用選擇法對10個整數從小到大排序。
main()
{ int i,j,a[10],t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=1;j<10;j++)
for(i=0;i<=9-j;i++)
if(a[i]>a[i+1])
{t=a[i+1];a[i+1]=a[i];a[i]=t;}
for(i=0;i<10;i++)
printf("%5d",a[i]);
}

main()
{static int a[10],i,j,k,t;
for(i=1;i<11;i++)
scanf("%d",&a[i]);
for(j=1;j<10;j++)
for(i=1;i<=10-j;j++)
if (a[i]>a[i+1])
{t=a[i+1];a[i+1]=a[i];a[i]=t;}
for(i=1;i<11;i++)
printf("%d",a[i]);
printf("\n");
}
7.3求一個3×3矩陣對角線元素之和。
main()
{int i=0,j=0,a[3][3],s1,s2;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
s1=a[0][0]+a[1][1]+a[2][2];
s2=a[0][2]+a[1][1]+a[2][0];
printf("s1=%d,s2=%d\n",s1,s2);
}

main()
{
static int i,j,s1,s2,a[3][3];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
scanf("%d",&a[i][j]);
s1=a[1][1]+a[2][2]+a[3][3];
s2=a[1][3]+a[2][2]+a[3][1];
printf("%d,%d\n",s1,s2);
}
7.4已有一個已排好的數組今輸入一個數要求按原來排序的規律將它插入數組中。
main()
{ static int a[10]={1,7,8,17,23,24,59,62,101};int i,j,t;
scanf("%d",&a[9]);
for(i=9;i>0;i--)
if(a[i]<a[i-1])
{t=a[i-1];a[i-1]=a[i];a[i]=t;}
for(i=0;i<10;i++)
printf("%5d",a[i]);printf("\n");
}

main()
{
static int a[5]={1,4,5,6,7};
int i,t,b;
scanf("%d",&b);
for(i=0;i<5;i++)
{if(b<=a[i])
{t=a[i];a[i]=b;b=t;}
printf("%d ",a[i]);}
printf("%d",b);
}
7.5將一個數組的值按逆序重新存放,例如,原來順序為:8,6,5,4,1。要求改為:1,4,5,6,8。
main()
{ int i,b[10];
for(i=0;i<10;i++)
scanf("%d",&b[i]);
for(i=9;i>-1;i--)
printf("%5d",b[i]);
printf("\n");}
7.6列印出以下楊輝三角形(要求列印出10行)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1


main()
{ static int m,n,k,b[15][15];
b[0][1]=1;
for(m=1;m<15;m++)
{for(n=1;n<=m;n++)
{ b[m][n]=b[m-1][n-1]+b[m-1][n];
printf("%-5d",b[m][n]);}printf("\n");
}
}
}

main()
{ int i,j,n,k,a[10][10];
static a[][1]={{1},{1},{1},{1},{1},{1},{1},{1},{1},{1}};
a[1][1]=1;
for(k=2,k<11;k++)
for(i=2;i<=k;i++)
for(j=2;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(k=1;k<11;k++)
for(i=1;i<=k;i++)
for(j=1;j<=i;j++)
printf("%d",a[i][j]);
}
7.7 列印「魔方陣」,所謂魔方陣是指這樣的方陣,它的每一行、每一列和對角線之和均相等。例如,三階魔方陣為
8 1 6
3 5 7
4 9 2
要求列印出由1~n2的自然數構成的魔方陣。
解:
#include <stdio.h>
main()
{ int a[16][16],i,i,k,p,m,n;
p=1;
while(p==1)
{ printf("Enter n(n=1~15):");
scanf("%d",&n);
if((n!=0)&&(n<=15)&&(n%2!=0)) p=0;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) a[i][j]=0

熱點內容
中國首個具有世界影響力的編譯器 發布:2025-02-09 01:56:21 瀏覽:719
tomcat上傳超時 發布:2025-02-09 01:41:42 瀏覽:483
androidactivity豎屏 發布:2025-02-09 01:41:40 瀏覽:377
家庭配置怎麼合理 發布:2025-02-09 01:36:14 瀏覽:807
頭條軍事源碼 發布:2025-02-09 01:31:53 瀏覽:997
androidintent視頻 發布:2025-02-09 01:31:43 瀏覽:858
歐姆龍plc密碼如何設置 發布:2025-02-09 01:24:31 瀏覽:687
php支持jpeg 發布:2025-02-09 01:24:22 瀏覽:803
反編譯去注冊碼 發布:2025-02-09 01:19:48 瀏覽:887
安卓如何查找舊密碼 發布:2025-02-09 01:17:21 瀏覽:418