




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、魚阪科枚號院學生實驗報告冊(理工類)課程名稱:C語言程序設計實驗 專業班級:15自動化2班學生學號:1517011063學生姓名: 王啟濤所屬院部:智能科學與控制工程學院指導教師:王預2015 20 16學年第2 學期金陵科技學院教務處制實驗報告書寫要求實驗報告上交電子稿, 標題采用四號黑體, 正文采用小四號宋體, 單倍行距。實驗報告書寫說明實驗報告中實驗目的和要求、 實驗儀器和設備、實驗內容與過程、 實驗結果與分析這四項內容為必需項。 教師可根據學科特點和實驗具 體要求增加項目。填寫注意事項(1)細致觀察,及時、準確、如實記錄。(2)準確說明,層次清晰。(3)盡量采用專用術語來說明事物。(4
2、)外文、符號、公式要準確,應使用統一規定的名詞和符號。(5)應獨立完成實驗報告的書寫,嚴禁抄襲、復印,一經發現, 以零分論處 。實驗報告批改說明 實驗報告的批改要及時、認真、仔細,一律用紅色筆批改。實驗 報告的批改成績采用五級記分制或百分制, 按金陵科技學院課堂教 學實施細則中作業批閱成績評定要求執行。金陵科技學院實驗報告實驗項目名稱:初級程序設計實驗學時:6同組學生姓名: 實驗地點: 工科樓實驗日期:2016329實驗成績:批改教師:王預批改時間:i金陵科技學院實驗報告實驗1初級程序設計一、實驗目的和要求(1) 熟悉Visual C+集成環境,進行編輯、保存、編譯、連接及運行,并能進行簡單程
3、序調試;(2) 掌握C語言中各種運算符的使用;(3) 掌握C語言中各種數據類型的區別與應用;(4) 熟練掌握C語言中變量的定義、賦值和使用,表達式語句、輸入/輸出語句的使用;(5) 掌握C語言中輸入/輸出函數的使用;(6) 掌握C語言中控制語句的使用,含if-else 、for、while、do-while語句的使用。二、實驗儀器和設備奔騰以上計算機,裝有windows XP以上版本操作系統和Visual C+ 6.0 軟件。三、實驗內容與過程1、程序調試(1) #include <stdio.h>main () int s,t,p,sum;scanf( “ d%d%d ,&
4、;s,&t,&p);sum=s+t+p;printf(“ sum=%dr” ,sum);(2) #include <stdio.h>main () int k=3;if(k=3) printf(“ *");else printf(“ #");(3) #include <stdio.h>main ()int k=0;do printf(“k=%dn ” ,k);while(k+>0);2、程序改錯下面是判斷一個學生考試成績及格與否的程序(成績A,或E,或C者為及格;成績 為D者不及格),調試并改進如下程序使其能滿足上述輸出的需要。
5、# in elude <stdio.h>main () char mark= “ A”;switch(mark) case“ A”:case“ B”:case“C : printf(">=60 n”);case"D' : printf(“<60 n”);default: printf( " Error n” );3、程序設計(1) 功能:編程實現使一任意實型正數保留2位小數,并對第三位進行四舍五入。例如:實型數為 1234.567,則函數返回1234.570000 ;實型數為1234.564,則函數返回1234.560000。#i
6、nclude <stdio.h>main () float a,; int b;sca nf("%f",&a);b=a*100+0.5;a=b/100.0;prin tf("a=%7.2f',a);(2) 功能:從鍵盤輸入一個大寫字母,要求改用小寫字母輸出。 說明:可分別利用格式化及字符專門的輸入輸出函數兩種方法實現。(3) 功能:編寫函數計算下列分段函數的值:x2+x + 6 xcOf (x)=x2 5x+60 蘭 xc10x2 _x _1 其它(4) 假設工資稅率如下,其中s代表工資,r代表稅率:s<500r=0%500<
7、;=s<1000r=5%1000<=s<2000r=8%2000<=s<3000r=10%3000<=sr=15%編一程序實現從鍵盤輸入一個工資數,輸出實發工資數。要求使用switch語句。(5) 功能:功能:計算正整數n的所有因子(1和n除外)之和并輸出。n的值由鍵盤輸入。例如:n=120時,輸出239。(6) 功能:計算并輸出下列多項式的值S = 1 + 1/1! + 1/2! + 1/3! + . + 1/n!例如:鍵盤給n輸入15,則輸出為:s=2.718282。注意:要求n的值大于1但不大于100。(7) 功能:從低位開始取出長整型變量s奇數位上的
8、數,依次構成一個新數放在t中。例如:當s中的數為:7654321時,t中的數為:1357。五、實驗注意事項1、賦值號“=”與關系運算符“=”的區別;2、if-else 語句中else后無條件表達式;3、while 與 do-while 的區別;4、復合語句必須用括起來。六、思考題1、 功能:判斷一個三位數是否”水仙花數”。在main函數中從鍵盤輸入一個三位數,并 輸出判斷結果。說明:所謂”水仙花數"是指一3位數,其各位數字立方和等于該數本身。例如:153是 一個水仙花數,因為 153=1 + 125+27。2、功能:計算并輸出3到n之間所有素數的平方根之和。例如:鍵盤給n輸入100后
9、,輸出為:sum=148.874270。3、 功能:輸出Fib on acci數列中大于s的最小的一個數。其中 Fibo nacci數列F(n)的定義 為:F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2)例如:鍵盤輸入s=1000時,輸出1597。4、 功能:判斷整數x是否是同構數。若是同構數,輸出"是";否則輸出"不是"。x的值由主函數從鍵盤讀入,要求不大于100。說明:所謂 同構數”是指這樣的數,這個數出現在它的平方數的右邊。例如:輸入整數5, 5的平方數是25, 5是25中右側的數,所以5是同構數。程序清單:3(1)#i nclud
10、e <stdio.h>mai n() float a; int b; scan f("%f",&a); b=a*100+0.5; a=b/100.0;prin tf("a=%7.2f",a);(2) #include <stdio.h> mai n() char ch;pin tf("press a key and the n press en ter"); ch=getchar(); if(ch>'A'&&chv'Z'); ch=ch+32;put
11、char(ch);printf( “ n ” );(3) #include <stdio.h> mai n() float x,y;sca nf("%f", &x);if(x<0) y=x*x+x+6;else if(x<10&& x!=2.0&& x!=3.0) y=x*x-5*x+6;elsey=x*x-x-1;prin tf("%f",y);(4)#include <stdio.h>mai n() int n,s;sca nf("%d",&s);
12、if(s<500)n=1;else if(s<1000)n=2;else if(s<2000) n=3;else if(s<3000)n=4;else n=5;switch( n)case '1':prin tf("%d",s); break;case ' 2': s=s*(1-5%); prin tf("%d",s); break;case ' 3':s=s*(1-8%); prin tf("%d",s); break;case 4': s=s*(1-1
13、0%); prin tf("%d",s); break;case 5': s=s*(1-15%); prin tf("%d",s); break;default :prin t("i nv alid operator!' n"); 27四、實驗結果與分析(程序運行結果及其分析)1輸入12 2 Sum=5(2)*(3)k=0五、實驗體會(遇到問題及解決辦法,編程后的心得體會)實驗項目名稱:中級程序設計實驗學時:8同組學生姓名:'實驗地點:實驗日期:實驗成績:批改教師:批改時間:實驗2中級程序設計一、實驗目的和要求
14、(1)掌握函數的定義、調用及返回、聲明的應用;(2)熟練掌握一維數組的定義、初始化及使用;(3)掌握二維數組的定義、初始化及應用;(4)熟練掌握向函數傳遞一維數組的方法和應用;(5)掌握向函數傳遞一維數組的方法和應用。二、實驗儀器和設備奔騰以上計算機,裝有windows XP以上版本操作系統和 Visual C+ 6.0三、實驗內容與過程1、程序調試#i nclude <stdio.h>int fun c(i nt a,i nt b)軟件。return(a+b); main ()int x=3,y=8,z=4,r;r=func(fun c(x,y),z);printf( "
15、;r=%d n”,r);2、程序改錯要求:1、改錯時,只允許修改現有語句中的一部分內容,不允許添加和刪除語句。2、提示行下一行為錯誤行。(1)功能:判斷m是否為素數,若是返回1,否則返回0。#in clude <stdio.h>/*found*/void fun( int n)int i,k=1;if(m<=1) k=0;/*found*/for(i=1;i<m;i+)/*found*/if(m%i=0) k=0;* *FOUND* *return m;void mai n()int m,k=0;for(m=1;m<100;m+)if(fun( m)=1)prin
16、 tf("%4d",m);k+;if(k%5=0) pri ntf("n ”);(2) 功能:在一個已按升序排列的數組中插入一個數,插入后,數組元素仍按升序排 列。#in elude <stdio.h>#define N 11main () in t i, nu mber,aN=1,2,4,6,8,9,12,15,149,156;prin tf("please en ter an in teger to insert in the array:' n");* *FOUND* *sea nf("%d",&a
17、mp;nu mber)printf("The original array:'n"); for(i=0;i<N-1;i+)prin tf("%5d",ai);prin tf("n");* *FOUND* *for(i=N-1;i>=0;i-) if(nu mber<=ai)* *FOUND* *ai=ai-1;elseai+1=nu mber;* *FOUND *con ti nue;if(nu mber<a0) a0 =nu mber;prin tf("The result array:
18、39; n");for(i=0;i<N;i+)prin tf("%5d",ai);prin tf("n ”);(3) 找出一個二行三列二維數組中的最大值,輸出該最大值及其行列下標,建議二維數 組值由初始化給出。#in elude "stdio.h"#in elude "coni o.h" main ()int i,j,max,s,t;* *FOUND* *int a2=1,34,23,56,345,7; clrscr();* *FOUND* *max=0;s=t=0;for(i=0;i<2;i+)* *
19、FOUND* *for(j=1;j<3;j+) if(aij>max) max=aij; s=i; t=j; * *FOUND* *prin tf("max=a%d%d=%dn",i,j,max);3、程序設計說明,所有題目均需添加main (),在main ()中調用子函數并設計完整的輸入輸出才可調試通過。(1) 功能:編寫函數 float fun(int n),求一分數序列 2/1 , 3/2 , 5/3 ,8/5 ,13/8 ,21/13 的前n項之和。說明:每一分數的分母是前兩項的分母之和,每一分數的分子是前兩項的分子之和。例如:求前20項之和的值為32
20、.660259。(2) 完成子函數int fun(int n),找出一個大于給定整數且緊隨這個整數的素數,并作為函數值返回。說明,以下四個關于數組的題目,可以先用一個main ()函數實現,然后相關內容學習后再利用數組作函數參數的子函數和main ()函數共同實現。(3)功能:編寫函數void fun(int n,int a),按順序將一個 4位的正整數每一位上5918,則輸出結果為 5 9 1 8。將一個數組中的值按逆序存放,并的數字存到一維數組,然后在主函數輸出。例如輸入(4) 功能:編寫函數 void fun(int arr,int n) 在main()函數中輸出。例如:原來存順序為18
21、,2,50,43,69 。要求改為:69,43,50,2,18 功能:程序定義了 NX N的二維數組,并在主函數中自動賦值。請編寫函數voidfun(int aN,i nt n)例如:若n的值為2,| 1 9 7 |a = | 2 3 8 | 4 5 6 |,使數組a左下二角兀素中的值乘以任意整數n。a數組中的值為I 2 9 7 |則返回主程序后a數組中的值應為| 4 6 8 | 8 10 12|(6)功能:編寫函數void fun(int array33),實現矩陣(3行3列)的轉置(即行列互換)。例如:輸入下面的矩陣:100 200 300400 500 600700 800 900程序輸
22、出:100 400 700200 500 800300 600 900五、實驗注意事項(1)調用系統庫函數要包含相應頭文件;(2)函數可以嵌套調用,但不可以嵌套定義;(3)注意數組的越界問題;(4)找最大值(最小值)的算法:先將第一個值認為是最大(小)的,檢索以后的值,判斷如果當前數組元素值比保留在變量中的最大(小)值大(小),則用當前數組元素值替換該變量中的值。六、討論、思考題1、 功能:編寫函數float fun(),利用以簡單迭代方法 Xn+仁cos(Xn)求方程:cos(x)-x=0 的一個實根。迭代步驟如下:(1 )取x1初值為0.0 ;(2)x0=x1,把x1的值賦給x0 ;(3)
23、x仁cos(x0),求出一個新的x1 ;(4) 若x0-x1的絕對值小于0.000001,執行步驟(5),否則執行步驟(2);(5)所求x1就是方程cos(x)-x=0的一個實根,作為函數值返回。輸出:程序將輸出結果 Root=0.739085。2、 功能:編寫float fun (float array,i nt n),統計出若干個學生的平均成績,最 高分以及得最高分的人數。例如:輸入10名學生的成績分別為 92,87,68,56,92,84,67,75,92,66,則輸 出平均成績為77.9,最高分為92,得最高分的人數為 3人。3、 編寫函數int fun(int lim,int aaM
24、AX),該函數的功能是求出小于lim的所有素數并放在aa數組中,該函數返回求出素數的個數。4、 功能:編寫函數int fun(int aMM),求5行5列矩陣的主、副對角線上元素之 和。注意,兩條對角線相交的元素只加一次。5、 功能:請編一個函數void fun(int ttMN,int ppN),tt指向一個 M行N列的二維數組,求出二維數組每列中最小元素,并依次放入pp所指一維數組中。二維數組中的數已在主函數中賦予。程序清單及流程圖:四、實驗結果與分析(程序運行結果及其分析)五、實驗體會(遇到問題及解決辦法,編程后的心得體會)實驗項目名稱:咼級程序設計實驗學時:6同組學生姓名:實驗地點:實
25、驗日期:實驗成績:批改教師:批改時間:實驗3高級程序設計一、實驗目的和要求(1) 理解C語言中指針的本質,區分指針與指針變量,掌握有關指針的應用;(2) 熟練掌握字符串常量和字符串的存儲及字符串處理函數的使用;(3) 掌握字符指針的定義、使用等;(4) 掌握向函數傳遞字符串的方法;二、實驗儀器和設備奔騰以上計算機,裝有windows XP以上版本操作系統和 Visual C+ 6.0 軟件。三、實驗內容與過程1、程序調試 mai n() int a=10,b=20,x,*pa,*pb;pa=& a;pb=&b;printf(“d,%d,%d,%” ,a,b,*pa,*pb);x
26、=*pa;*pa=*pb;*pb=x;printf(“d,%d,%d,%” ,a,b,*pa,*pb);(2) mai n() int a=10,b=20,*p,*pa=&a,*pb=&b;printf(“d,%d,%d,%” ,a,b,*pa,*pb);p=pa;pa=pb;pb=p;printf(“d,%d,%d,%” ,a,b,*pa,*pb);(3) i nt *swap(i nt *a,i nt *b) int *p;p=a; a=b; b=p;return(a);main ()int x=3,y=4,z=5;swap(swap( &x,& y), &
27、amp;z);printf( “%d,%d,%d ,x,y,z);思考:上面程序中函數 swap()預將兩個數的值相互交換,但結果為什么沒有交換?2、程序改錯要求:1、改錯時,只允許修改現有語句中的一部分內容,不允許添加和刪除語句。2、提示行下一行為錯誤行。(1 )功能:為一維數組輸入 10個整數;將其中最小的數與第一個數對換,將最大的數 與最后一個數對換,輸出數組元素。#in elude <stdio.h>void in put(i nt *arr,i nt n)int *p,i;p=arr;prin tf("please en ter 10 in tegers:n&q
28、uot;);for(i=0;i <n ;i+)* ERROR* *sca nf("%d",p);void max_m in (i nt *arr,i nt n)int *mi n,*max,*p,t;min=max=arr;for(p=arr+1;p<arr+ n; p+)* ERROR* *if(*p<*max)max=p;else if(*p<*mi n) min=p;t=*arr;*arr=*mi n;*mi n=t;* ERROR* *if(max=arr) max=mi n; t=*(arr+ n-1);*(arr+ n-1)=*ma x;
29、*max=t;void output(i nt *arr,i nt n) int *p,i;p=arr;prin tf("The cha nged array is:n");* ERROR* *while(i=0;i< n;i+) prin tf("%3d",*p+);prin tf("n");main ()int a10; in put(a,10);max_mi n(a,10);output(a,10);(2) 功能:將s所指字符串的反序和正序進行連接形成一個新串放在t所指的數組中。例如:當s所指的字符串的內容為"A
30、BCD"時,t所指數組中的內容為"DCBAABCD"#in elude <coni o.h>#in elude <stdio.h>#in elude <stri ng.h>* *FOUND* *void fun (char s, char t)int i, d;* *FOUND* *d = len (s);* *FOUND* *for (i = 1; i<d; i+)圳=sd - 1 - i ; for (i = 0; i<d; i+)t d + i = si;* *FOUND* *t2*d = 70:main ()
31、char s100, t100;printf("nPlease enter string S:");scan f("%s", s);fun(s, t);prin tf("nThe result is: %sn", t);3、程序設計說明,所有要求子函數的題目均需添加main(),在main ()中調用子函數并設計完整的輸入輸出才可調試通過。(1)編寫一 main()函數,要求利用指針,實現從鍵盤輸入三個數,然后按照由小到大的 順序輸出此三個數。(2)功能:編寫函數float fun ( float *a , int n ),用來計算n
32、門課程的平均分,結果作為函數值返回。其中數組a中保存了 n門課程的分數。例如:若有5門課程的成績是:90.5,72,80,61.5,55,則函數的值為:71.80。(3)功能:請編寫一個函數void fun(int *s, int n, int *k),用來求出數組 s中的最大元素在數組中的下標,用k帶回。其中n為主函數數組中的數據個數。例如:在主函數中輸入如下整數 :876 675 896 101 301 401 980 431 451 777則在主函數中輸出結果為:6, 980(4)功能:編寫函數 void len_cat(char c1,char c2)將第二個串連接到第一個串之后,不允
33、許使用strcat函數。(5)功能:編寫函數void fun (char *str,charch)從字符串str中刪除指定的字符ch。要求:本問題要求用兩種算法分別實現,一是直接刪除算法即查找符合刪除條件的并逐次前移實現;二是間接刪除算法即查找不符合刪除條件的并保留下來,而保留的方法可以采用利用本數組和引入臨時數組兩種實現。說明:該字符可能多次和連續出現,算法應全面考慮。(6)功能:編寫函數long fun ( char *p),將一個數字字符串轉換為一個整數(不得調用C語言提供的將字符串轉換為整數的函數)。例如:若輸入字符串"-1234",則函數把它轉換為整數值-1234
34、。五、實驗注意事項1、對計算機執行程序過程中分配存儲空間及地址的理解;2、變量的直接引用與間接引用的區別;3、 字符串的結束標志是0',通常以此作為控制循環的條件。六、討論、思考題(1) 功能:請編寫函數 void fun(char (*s)N, char *b),將M亍N列的二維數組中的字符數據按列的順序依次放到一個字符串中。例如:二維數組中的數據為:W W W WS S S SH H H H則字符串中的內容應是:WSHWSHWSHWSH(2) 功能:編寫函數 void fun(char str,int i,int n),從字符串str中刪除第i個字符開始的連續n個字符(注意:str
35、0代表字符串的第一個字符)。(3) 功能:編寫函數void fun (char *s,char t),將s所指字符串中除了下標為奇數、同時ASCII值也為奇數的字符之外,其余的所有字符都刪除,串中剩余字符所形成的一個新 串放在t所指的數組中。例如:若s所指字符串中的內容為:"ABCDEFG12345"其中字符 A的ASCII碼值雖 為奇數,但所在元素的下標為偶數,因此必需刪除;而字符 1的ASCII碼值為奇數,所在數 組中的下標也為奇數,因此不應當刪除,其他依此類推。最后t所指的數組中的內容應是:"135"。(4) 功能:請編寫函數int fun( ch
36、ar *s),統計一行字符串中單詞的個數作為函數值返回。規定所有單詞由小寫字母組成,單詞之間由若干個空格隔開,一行的開始沒有空格。(5)功能:編寫函數 void fun (char s)將一個由四個數字組成的字符串轉換為每兩個數字間有一個空格的形式輸出。例如:輸入4'567”,應輸出“口 5口 6 7”( 表示空格)。程序清單及流程圖:四、實驗結果與分析(程序運行結果及其分析)五、實驗體會(遇到問題及解決辦法,編程后的心得體會)實驗項目名稱: 構造類型程序設計 實驗學時: 4同組學生姓名: 實驗地點:實驗日期: 實驗成績: 批改教師:批改時間:實驗4構造類型程序設計一、實驗目的和要求(
37、1) 熟悉結構體和共同體的概念;(2) )熟悉并掌握結構體變量、數組和共同體變量的定義、賦值與使用;(3) 掌握結構體指針的定義與引用;(4) 掌握鏈表的概念,初步學會對鏈表進行操作;(5) 熟悉文件打開、關閉、寫入、讀出的方法;學會使用文件操作函數。二、實驗儀器和設備軟件。20, &a : 7;奔騰以上計算機,裝有windows XP以上版本操作系統和Visual C+ 6.0三、實驗內容與過程1、程序調試 struct aaint x , *y ; *p ;int a:8 = 10, 20, 30, 40, 50, 60, 70, 80;struct aa b 4 = 100, &
38、amp;a 1 , 200, &a 3, 10, &a 5, main ()P= b;printf( "% d”,* + p- > y);printf( ” dn”,+ (p- >x);(2) struc STU char n ame10;int num;void f1(struct STU c) struct STU b=“LiSiGuo ” ,2042;c=b;void f2(struct STU *c) struct STU b=“ Sun Dan ,2044;*c=b;mai n() struct STU a=“YangSan ,2041,b= “WangYin ,2043;f1(a) ;f2(&b);printf(“%d %d n” ,a.num,b.num);2、程序設計(1) 學生記錄由學號和成績組成,結構體類型定義如下:typedef struct char num10;double s; STREC;功能:a所指向的數組中有N
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國木樓梯扶手數據監測研究報告
- 2025至2030年中國方巾紙袋數據監測研究報告
- 2025至2030年中國彩繪牡丹杯數據監測研究報告
- 2025至2030年中國室內移動式空調數據監測研究報告
- 2025至2030年中國女裝手提袋數據監測研究報告
- 從零開始構建安全醫療環境-年度報告分享
- 2025至2030年中國衛生級呼吸器數據監測研究報告
- 2025至2030年中國醫用氨水數據監測研究報告
- 2025至2030年中國分光度六合一檢測儀數據監測研究報告
- 2024年游泳救生員資格考試試題及答案的智能備考
- 預制菜烹飪知識培訓課件
- 教學設計-3.7函數圖形的描繪
- 《數字資源利用》課件
- 《馬達保護器培訓》課件
- 消防安全重點單位管理
- 2025年度花崗巖墓碑石材采購合同范本
- 《止血與包扎》課件
- 2025年水稻種植農戶互助合作合同3篇
- 2024員工三級安全培訓考試題含答案(能力提升)
- Unit 9 Active learning 說課稿-2023-2024學年高中英語北師大版(2019)必修第三冊
- 中央空調施工工藝空調施工95課件講解
評論
0/150
提交評論