第一篇:C語言實訓教程
課程編號:學 時 數(shù):54學時
課程名稱:C語言程序設計適用專業(yè):計算機應用技術
執(zhí) 筆 人:編寫日期:2008年7月
單元能力訓練指導
單元一:運算符、表達式、輸入輸出語句
1.能力要求:
1)能夠正確定義、輸入、輸出并使用常用數(shù)據(jù)類型:整型、實型、字
符型
2)掌握五種基本算術運算符的使用:+、-、*、/、%,知道優(yōu)先
級與結合性
3)掌握邏輯運算符和關系運算符、條件運算符的使用
4)能夠正確使用printf()和scanf()進行各種數(shù)據(jù)正確格式的輸入輸
出
5)編寫簡單順序結構程序
2.基礎能力訓練:
1)輸入一個字母,輸出其對應的ASCII碼.2)輸入一個小寫字母,輸出其對應的大寫字母.3)從鍵盤輸入一個四位數(shù),編程計算該四位數(shù)的各位和并輸出。
4)教材p.41頁習題,5,6,7,9,10(關于數(shù)據(jù)類型、運算符、表達
式的練習題,其他類似題目均可)
5)教材p.62頁習題4,5,6,7(關于格式化輸入輸出的練習題,其
他類似題目均可)
3.拓展能力訓練:
1)輸入一個十進制數(shù),輸出其對應的八進制數(shù)據(jù)。
2)輸入一個圓的半徑,分別求圓的周長,面積和體積。
單元二:選擇結構程序設計
1.能力要求:
1)能夠使用if語句編寫條件選擇程序
2)能夠使用嵌套if語句和switch語句編寫多分支選擇結構程序
2.基礎能力訓練:
1)判斷一個數(shù)的正、負,輸出相應信息
2)判斷一個數(shù)的奇偶,輸出相應信息
3)在主函數(shù)中輸入整型數(shù)據(jù)n,判斷該數(shù)是否能被3整除,如果能被3 整
除,輸出“yes”,否則輸出“no”
4)將數(shù)學式子寫成程序語言,如80<=x<=90
5)編程求解分段函數(shù),根據(jù)程序?qū)懗龇侄魏瘮?shù)的數(shù)學表達式
6)從鍵盤輸入三個數(shù),按照從小到大(或從大到?。┑捻樞蜉敵?/p>
7)判斷一個年份是否閏年
8)對一個百分制的成績給出相應的等級(如90分以上A,80分以上B
等
9)從鍵盤輸入兩個整數(shù),輸出大數(shù)(用條件表達式求解)
3.拓展能力訓練:
1)從鍵盤上輸入一個數(shù),判斷其是否為水仙花數(shù)。
2)求一元二次方程的根
3)編程實現(xiàn)以下功能,讀入兩個數(shù)(d1,d2)和一個運算符(o),計算
d1 o d2的值。
單元三:循環(huán)結構程序設計
1.能力要求:
1)掌握for、do-while、while語句結構
2)能夠使用for、do-while、while編寫循環(huán)結構程序
3)使用for、do-while、while編寫多重循環(huán)語句
2.基礎能力訓練:
1)求1+2+3+…+100的和存入變量sum中,并將sum打印出來。
2)編程計算200――300的偶數(shù)和并將和打印輸出
3)計算正整數(shù)1-n中的奇數(shù)之和及偶數(shù)之和
4)從5-100之間找出能被5或7整除的數(shù)(或類似求1-100之間不
能被8整除的數(shù)
5)判斷一個循環(huán)語句能執(zhí)行多少次(補充類似練習)
6)打印99乘法表(二重循環(huán))
7)求Fibonacci數(shù)列的前20個數(shù)。該數(shù)列的生成方法為: F1 = 1,F(xiàn)2
= 1,F(xiàn)n=Fn-1+Fn-2(n>=3),即從第3個數(shù)開始每個數(shù)等于前2個數(shù)之和。(每行輸出4個數(shù))
9)求出3~100之間的所有素數(shù),并按每行5個數(shù)打印輸出
3.拓展能力訓練:
1)編寫一個只要輸入4位數(shù)的年份和該年的元旦是星期幾,就可打印
全年日歷的程序(可作思路開發(fā)練習時講解)。
2)試編寫程序,求一個數(shù)任意次方的最后三位數(shù),要求x,y從鍵盤上
輸入
3)猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不
癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
4)編寫程序,從鍵盤上輸入6名學生4門課的成績,分別統(tǒng)計出每個
學生的平均成績。
單元四:數(shù)組
1.能力要求:
1)掌握一維數(shù)組的使用
2)能夠進行二維數(shù)組的定義、初始化、輸入、輸出、引用等操作
3)進行字符串、字符數(shù)組操作,熟悉常用字符串處理函數(shù)
2.基礎能力訓練:
1)有一12個元素的整型數(shù)組b,從鍵盤輸入數(shù)據(jù),請以每行4個數(shù)據(jù)
各個數(shù)據(jù)之間空兩格的形式輸出b數(shù)組的12個元素
2)由鍵盤輸入一個字符串,如果字符串中的字符是英文字母,則進行
大小寫轉(zhuǎn)換,其它字符不變。輸出轉(zhuǎn)換后的字符串。
3)定義一個整型數(shù)組a[10],將數(shù)組a[10]中的10個元素按逆序重新
存放。4)用數(shù)組方法求Fibonacci數(shù)列的前20個數(shù)。該數(shù)列的生成方法為: F1 = 1,F(xiàn)2 = 1,F(xiàn)n=Fn-1+Fn-2(n>=3),即從第3個數(shù)開始每個數(shù)等于前2個數(shù)之和。(每行輸出4個數(shù))
4)對從鍵盤輸入的一個字符串中的大英字母及數(shù)字進行計數(shù)。
5)有一個3行3列的矩陣,請將其在屏幕上輸出。
6)將一個2*3的矩陣轉(zhuǎn)置為3*2的矩陣
7)在一個三行三列的矩陣中求出數(shù)值最大的元素及其行/列下標并打
印輸出。
8)不使用庫函數(shù)實現(xiàn)兩個字符串的復制和連接
3.拓展能力訓練
1)從鍵盤輸入10個字符串,按照字典順序?qū)⑵渑判蜉敵?二維字符數(shù)
組)
2)打印楊輝三角形(要求打印出10行)
121
1331
14641
15101051
1……
3)從鍵盤上輸入100個字符,統(tǒng)計其中字母、每個數(shù)字和其它字符的個數(shù)及其百分比。
4)找出一個二維數(shù)據(jù)中的鞍點。(鞍點是指位置上的元素在該行上最大,在該列上最?。?,如果沒有鞍點,請輸出提示信息。
單元五:函數(shù)
1.能力要求:
1)能夠通過定義、調(diào)用函數(shù)處理指定問題:如數(shù)組排序,數(shù)據(jù)交換,字符串大、小寫轉(zhuǎn)換等
2)能夠嵌套調(diào)用函數(shù)
3)編制遞歸函數(shù)進行求階乘的運算
4)了解變量的作用域及生存期在程序中的影響
2.基礎能力訓練:
1)在主函數(shù)中,輸入整數(shù)x的值,調(diào)用函數(shù),在屏幕上輸出y的值。2)編寫函數(shù)求三個數(shù)中的最大數(shù)
3)編寫函數(shù)求組合數(shù)C= n!/(k!*(n-k)!)
4)編寫遞歸函數(shù)用于計算n!
5)編寫函數(shù)求x的n次方的值
6)用函數(shù)求兩個整數(shù)之差的絕對值
7)用函數(shù)求1-100的累計和
8)不使用庫函數(shù)strcat(),編程將兩個字符串連接起來。
9)編寫函數(shù)將一個字符串中的小寫字母改為大寫字母(數(shù)組元素和數(shù)
組名作函數(shù)參數(shù))
10)有關函數(shù)及全局變量等的程序閱讀類型題。
3.拓展能力訓練:
1)定義兩個函數(shù),分別求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。
2)編寫函數(shù),使用遞歸的方法,3)求三個數(shù)的最小公倍數(shù)。用函數(shù)實現(xiàn)。
單元六:指針
1.能力要求:
1)指針變量的定義、使用,以及指針變量作函數(shù)參數(shù)
2)使用指針進行數(shù)組操作
3)使用指針進行字符串操作
2.基礎能力訓練:
1)用下標法和指針法引用數(shù)組元素
2)使用指針,不使用庫函數(shù)strcat(),編程將兩個字符串連接起來。
3)使用指針,不使用庫函數(shù)strcpy(),編程將兩個字符串連接起來。
使用指針,不用庫函數(shù)strlen(),編程求字符串的長度。
4)使用指針進行冒泡法排序
5)使用指針求一個字符串的長度
3.拓展能力訓練:
1)編寫一個子串截取函數(shù),viod substr(char *source,int start,int length,char *dest);source是源字符串指針,start是截取的開始位置,length是要截取的子串的長度,dest是指目標串指針。
2)編寫一個程序,利用指針打印如下圖形。
***
** **
****
****
3)編寫一個函數(shù),完成對n個字符串的排序。
單元七:結構體與鏈表
1.能力要求:
1)在程序中正確使用結構體變量、結構體數(shù)組以及結構體類型的指針
2)了解鏈表處理的方法
2)了解共用型、枚舉型數(shù)據(jù)類型
2.基礎能力落實:
1)定義一個反映學生學號、姓名和性別的結構體變量,同時初始化;
將信息打印輸出。
2)定義一個結構體數(shù)組,用于存放5名學生的學號、姓名及三門課的成績; 從鍵盤輸入5名學生的以上數(shù)據(jù),將成績平均值最大的學生的學號、姓名、三門課的成績及平均成績在屏幕上輸出。
3.拓展能力落實:
1)利用共用體測鍵盤的輸入。
2)編寫一個函數(shù),實現(xiàn)鏈表的插入。
3)編寫一個函數(shù),實現(xiàn)鏈表的查詢。
單元八:文件
1.能力要求:
1)根據(jù)題意進行文件操作:打開、關閉、讀寫
2)進行文件定位操作,了解位置指針與出錯檢測
3)數(shù)組、字符、字符串的讀寫
2.基礎能力落實:
1)定義一個字符數(shù)組str[15],從鍵盤輸入一個字符串“polytechnic”,將此字符串,寫入文件string.dat中,分別用fwrite與fputs函數(shù)實現(xiàn)
2)定義一個浮點型變量a,從鍵盤輸入數(shù)據(jù),將此數(shù)寫入二進制文件
data.dat中
3)將一個整型數(shù)據(jù)、浮點型數(shù)據(jù)存入文件并讀取
4)將一個結構體數(shù)據(jù)存入文件并讀取。
3.拓展能力落實:
1)編寫一個函數(shù),實現(xiàn)兩個文本文件的復制。
2)將一個文件中,所有的小寫字母轉(zhuǎn)化為大寫字母后輸出
第二篇:C語言實訓
湖北輕工職業(yè)技術學院 《C語言程序設計》實驗報告
實驗十一:函數(shù)
班 級: ___________10計管_________________ 姓 名: ___________胡高______________ 學 號: ___________1003011138________________ 日 期: ____________2011-5-29________________
一、實驗目的和要求
1、理解數(shù)組引入的意義及作用;
2、掌握一維數(shù)組的基本思想和基本用法;
3、掌握使用一維數(shù)組的基本算法:排序與查找。
二、實驗主要儀器和設備 計算機一臺,Turbo C環(huán)境。
三、實驗內(nèi)容
請將該實驗報告重新命名為“實驗11-學號[姓名]”,如“實驗11-66[張三]”
1、P145 填空題2(2)
2、P145 上機操作題 3(5)
四、實驗原始紀錄 實驗1 程序的設計界面。(Alt+PrintScreeninclude SysRq拷貝當前窗口)
程序代碼。(此處寫代碼,不是圖片。
#include
void swap();
extern int a,b;
a=3;b=10;
swap();
printf(“a=%d,b=%dn”,a,b);
}
int a,b;
void swap()
{
int temp;
temp=a;a=b;b=temp;
}
實驗2 程序的設計界面。
程序代碼。
五、實驗結果及分析
實驗1運行結果圖。
實驗2運行結果圖。
六、實驗總結與思考(主要寫一些在實驗過程中,遇到的問題、所犯的錯誤,以及是如何發(fā)現(xiàn)糾正的。大約100至200字左右。)
本次試驗的內(nèi)容是考察數(shù)組的引用、基本算法等,但是總體感覺有點問題。有的地方不知道如何下手
第三篇:c語言實訓
目 錄
特別注意,打開視圖菜單-文檔結構圖觀察文檔結構。目錄由WORD菜單中插入-引用-目錄自動生成并更新,不需要手工生成菜單。
本模板僅說明格式,內(nèi)容由指導老師決定,不用按這份目錄內(nèi)容編寫實訓報告。
具體目錄見文檔要求。以下部分僅供參考。
目 錄........................................................................................................................1
一、實訓的目的與要求................................................................................................1
二、題目說明................................................................................................................2
三、總體設計................................................................................................................2
3.1.軟件模塊結構圖...........................................................................................2 3.2.程序流程圖...................................................................................................3
四、詳細設計和實施....................................................................................................3
4.1 XXXX模塊.....................................................................................................4.2
4.3
五、遇到的問題和解決方法........................................................................................4
六、實訓總結................................................................................................................4
七、參考文獻................................................................................................................4 附錄(源程序代碼)....................................................................................................5
一、實訓的目的與要求
(正文為宋體,五號字 行間距為21)中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國中華人民共和國
二、題目說明
(正文為宋體,五號字 行間距為21)題目參照任務書中有關描述
三、總體設計
3.1.軟件模塊結構圖(以下圖僅供樣式參考)
圖1-1 軟件模塊結構圖
3.2.程序流程圖(以下圖僅供樣式參考):
四、詳細設計和實施
(正文為宋體,五號字 行間距為21)4.1 模塊1 ………(可以寫一些關鍵程序代碼,另外截一些界面圖并說明實現(xiàn)了什么功能,以證明功能實現(xiàn)了)每一個界面,必須有(1)功能簡介(2)界面截圖一張(3)界面關鍵代碼和描述 每一個界面說明作為獨立的一小節(jié)。(在文檔說明中有樣例)
五、遇到的問題和解決方法
(正文為宋體,五號字 行間距為21)1. 2. 3. …………
六、實訓總結
(正文為宋體,五號字 行間距為21)
七、參考文獻
[1] 權明富,齊佳音,舒華英.客戶價值評價指標體系設計[J].南開管理評論,2004,7(3):17-18.[2] 劉小洪,鄒鵬.商業(yè)銀行客戶關系價值管理模型研究[J].管理科學,2005,18(3):57-60.附錄(源程序代碼)
第四篇:C語言實訓
第一天的題目: 求兩個整數(shù)之和。
#include
求1×3×5×7×9×11 #include
sum = sum*i;
i = i+2;}
printf(“%d”,sum);return 0;} 有50個學生,要求將成績在80分以上的學生的學號和成績輸出。
#include
int i;
int a[50];
for(i=0;i<50;i++)
{
scanf(“%d”,&a[i]);
if(a[i]>80)
printf(“%d”,a[i]);
} }
判定2000—2500年中的每一年是否閏年,并將結果輸出。
#include
int y;
y=2000;
while(y<=2500)
{
if(((y%4 == 0)&&(y%100!= 0))||(y%400 == 0))
printf(“%d 年是閏年n”,y);
else printf(“%d 年不是閏年n”,y);
y=y++;} } 求1?11111?????? 23499100#include
sign=-sign;
term=sign/deno;
sum=sum+term;
deno=deno+1;} printf(“%fn”,sum);} 給出一個大于或等于3的正整數(shù),判斷它是不是一個素數(shù)。
#include
int i,n,mark=0;
scanf(“%d”,&n);
for(i=2;i < n/2+1;i++)
{
if(n%i==0)
{
printf(“%d不是素數(shù)”,n);
mark=1;
break;
}
}
if(mark==0)
printf(“%d是素數(shù)”,n);} 求5!#include
#include
#include
float a,b,t;scanf(“%f %f”,&a,&b);if(a>b){ t=a;a=b;b=t;} printf(“%5.2f,%5.2fn”,a,b);
} 輸入3個數(shù)a,b,c,要求按由小到大的順序輸出。
#include
#include
char zhong,guo;
scanf(“%c”,&zhong);
if(65<=zhong&&zhong<=90)
{
guo=zhong+32;
printf(“%c”,guo);
}
else
printf(“%c”,zhong);}
??1(x?0)?1編一程序,輸入一個x值,要求輸出相應的y值。y??0(x?0)
?1(x?0)?#include
int x,y;
printf(“請輸入x:”);
scanf(“%d”,&x);
if(x<0)
y=-1;
else if(x=0)
y=0;
else
y=1;
printf(“y=%d”,y);} 要求按照考試成績的等級輸出百分制分數(shù)段,A等為85分以上,B等為70~84分,C等為60~69分,D等為 60分以下。成績的等級由鍵盤輸入。#include
5寫一程序,判斷某一年是否閏年。#include
int a;
scanf(“%d”,&a);
if(a%4==0&&a%100!=0||a%400==0)
printf(“是閏年”);
else printf(“不是閏年”);} 運輸公司對用戶計算運輸費用。路程(s km)越遠,每噸·千米運費越低。標準如下:
s < 250
沒有折扣
250≤s < 500
2%折扣
500≤s < 1000
5%折扣
1000≤s < 2000
8%折扣
2000≤s < 3000
10%折扣
3000≤s
15%折扣 #include
int c, s;
float p, w, d, f;
scanf(“%f %f %d”, &p, &w, &s);
if(s >= 3000)c =12;
else c = s / 250;
switch(c)
{
case 0 : d = 0;break;
case 1 : d = 2;break;
case 2 :
case 3 : d = 5;break;
case 4 :
case 5 :
case 6 :
case 7 : d = 8;break;
case 8 :
case 9 :
case 10:
case 11: d = 10;break;
case 12: d = 15;break;
}
f = p * w * s *(1-d / 100);
printf(“freight =%15.4fn”,f);} 全班有50個學生,用循環(huán)語句統(tǒng)計各學生三門課的平均成績。#include
return 0;} 要求輸出100~200之間的不能被3整除的數(shù)。#include
main(){
int
n;
for(n=100;n <=200;n++)
{
if(n%3!=0)
printf(“%d
”,n);}
printf(“n ”);}
第二天的題目:
?1 輸出以下4*5的矩陣。
10 15 20 #include
printf(“%sn”,p[i]);} } 用
?4?1?13?15?17??
公式求 ?
的近似值,直到發(fā)現(xiàn)某一項的絕對值小于10-6 為止(該項不累計加)。
#include
s=-s;
t=s/n;
pi=pi+t;} pi=pi*4;printf(“%.6fn”,pi);return 0;}
? 求費波那西(Fibonacci)數(shù)列的前40個數(shù)。這個數(shù)列有如下特點:第1、2兩個數(shù)為1、1。從第3個數(shù)開始,該數(shù)是其前面兩個數(shù)之和。即: ?F1?1??F2?1?F?F?Fn?1n?2?n(n?1)(n?2)
(n?3)#include
f3=f1+f2;
printf(“%12dn”,f3);
f1=f2;
f2=f3;} return 0;}
輸入一個大于3的整數(shù)n,判定它是否素數(shù)(prime,又稱質(zhì)數(shù))。#include
if(a%b==0)
{
printf(“此數(shù)不是素數(shù)n”);
return 0;
}
printf(“此數(shù)是素數(shù)n”);
return 0;} 求100~200間的全部素數(shù)。#include
int i,k,sk,flag,m=0;
for(k=100;k<=200;k++)
{
sk=(int)sqrt(k);
flag = 1;
for(i=2;i<=sk;i++)
{
if(k%i==0)
{
flag=0;
break;
}
}
if(flag==1)
{
m++;
printf(“%5d”,k);
}
}
if(m%12==0)
printf(“n”);
printf(“total:%5dn”,m);} 對10個數(shù)組元素依次賦值為0,1,2,3,4,5,6,7,8,9,要求按逆序輸出。#include
#include
int i;
int f[40]={1,1};
for(i=0;i<40;i++)
{
f[i]=f[i-2]+f[i-1];
}
for(i=0;i<40;i++)
{
if(i%5==0)
printf(“/n”);
printf(“%12d”,f[i]);
}
return 0;} 有10個地區(qū)的面積,要求對它們按由小到大的順序排列(采用起泡法)。#include
scanf(“%d”,&a[i]);for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
} for(i=0;i<10;i++)
printf(“%dt”,a[i]);} 將一個二維數(shù)組行和列的元素互換,存到另一個二維數(shù)組中。
?14??123??b??25a??456? ??????36??#include
for(j=0;j<3;j++)
{
printf(“%5d,a[i][j]”);
b[j][i]=a[i][j];
}
printf(“n”);} printf(“array b:n”);for(i=0;i<3;i++){
for(j=0;j<2;j++);
printf(“%5d”,b[i][j]);
printf(“n”);} } 有一個3×4的矩陣,要求編程序求出其中值最大的那個元素的值,以及其所在的行號和列號。
#include
int a[3][4],max,i,j;
int x=0,y=0;
printf(“請輸入矩陣的數(shù)值!n”);
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf(“%d”,&a[i][j]);
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)