第一篇:C語言實驗報告題及答案
《C程序設(shè)計實驗》
實驗一 C程序開發(fā)環(huán)境(2學(xué)時)
1.實驗?zāi)康氖煜語言的集成開發(fā)環(huán)境,了解菜單的使用方法;掌握C語言程序上機的編輯、編譯、連接、運行的基本步驟;了解C語言程序的結(jié)構(gòu)。
2.實驗內(nèi)容
(1)熟悉C語言程序上機的編輯、編譯、連接、運行的基本步驟;
(2)輸入并調(diào)試、運行下面的程序。
#include
int main()
{
printf(“This is a C program.n”);
return 0;
}
(3)輸入并調(diào)試、運行下面的程序。
#include
int main()
{
int max(int x,int y);
int a,b,c;
scanf(“%d,%d”,&a,&b);
c = max(a,b);
printf(“max=%dn”,c);
return 0;
}
int max(int x,int y)
{
int z;
if(x > y)z = x;
else z = y;
return(z);
}
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
4.問題討論
將printf函數(shù)改為print,調(diào)試并分析結(jié)果。
實驗二 數(shù)據(jù)類型、運算符與表達式(2學(xué)時)
1.實驗?zāi)康恼莆照汀⒆址秃蛯嵭妥兞康亩x和使用;掌握算術(shù)運算符的使用;掌握C語言表達式的運算規(guī)則。
2.實驗內(nèi)容
(1)輸入并調(diào)試、運行下面的程序。
#include
int main()
{
char c1,c2;
c1=97;
c2=98;
printf(“%c %cn”,c1,c2);
printf(“%d %dn”,c1,c2);
return 0;
}
(2)輸入并調(diào)試、運行下面的程序。
#include
int main()
{
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%dn”,i,j,m,n);
return 0;
}
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
4.問題討論
將++i改為i++,j++改為++j,程序的運行結(jié)果會有何變化?
實驗三 順序結(jié)構(gòu)程序設(shè)計(2學(xué)時)
1.實驗?zāi)康恼莆誷canf、printf函數(shù)語句的使用方法;熟練應(yīng)用賦值、輸入、輸出語句。
2.實驗內(nèi)容
(1)輸入三角形三邊長,求三角形面積。
(2)輸入一個攝氏溫度,要求輸出華氏溫度。公式為f=9/5*c+32。
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
4.問題討論
如何理解格式控制符與它對應(yīng)的變量之間的關(guān)系?
實驗四 選擇結(jié)構(gòu)程序設(shè)計(2學(xué)時)
1.實驗?zāi)康恼莆绽胕f語句實現(xiàn)選擇結(jié)構(gòu)程序設(shè)計的方法;掌握利用switch語句實現(xiàn)選擇結(jié)構(gòu)的程序設(shè)計方法;注意break在switch語句的作用。
2.實驗內(nèi)容
(1)已知:當(dāng)x<1時,y=x;當(dāng)1≤x<10時,y=2x-1;當(dāng)x≥10時,y=3x-11。輸入x的值,輸出對應(yīng)y的值。
(2)輸入一個百分制成績,要求輸出成績等級A、B、C、D、E,練習(xí)使用switch語句。
(3)判斷方程ax2+bx+c=0有幾個解,如果有解則輸出。
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
switch語句可否轉(zhuǎn)換成if語句實現(xiàn)?
實驗五 循環(huán)結(jié)構(gòu)程序設(shè)計(4學(xué)時)
1.實驗?zāi)康恼莆绽脀hile 或do while實現(xiàn)循環(huán)結(jié)構(gòu)程序設(shè)計的方法;掌握利用for語句實現(xiàn)循環(huán)結(jié)構(gòu)程序設(shè)計的方法。
2.實驗內(nèi)容
(1)編程實現(xiàn)1!+2!+…+n!的和,n由鍵盤輸入。
(2)輸出九九乘法表。
(3)輸出“水仙花數(shù)”?!八苫〝?shù)”是指一個3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。
(4)輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其它字符的個數(shù)。
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
4.問題討論
三種循環(huán)結(jié)構(gòu)有何聯(lián)系和區(qū)別?
實驗六 數(shù)組(4學(xué)時)
1.實驗?zāi)康恼莆找痪S數(shù)組的定義和輸入輸出操作;掌握二維數(shù)組的定義和輸入輸出操作;掌握字符數(shù)組和字符串處理函數(shù)的使用;掌握與數(shù)組有關(guān)的重要算法:排序、查找等。
2.實驗內(nèi)容
(1)輸入15個整數(shù),用冒泡法對它們按照由小到大的順序排序并輸出。
(2)輸入15個整數(shù),用選擇法對它們按照由小到大的順序排序并輸出。
(3)求矩陣對角線元素之和。
(4)有一篇文章,共有3行文字,每行有80個字符。要求分別統(tǒng)計出其中英文大寫字母、小寫字母、數(shù)字、空格以及其它字符的個數(shù)。
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
增加或刪除數(shù)組的一個元素,對數(shù)組的影響有哪些?
實驗七 函數(shù)(4學(xué)時)
1.實驗?zāi)康恼莆誄語言中函數(shù)定義、函數(shù)調(diào)用的方法和規(guī)則;掌握函數(shù)實參與形參的對應(yīng)關(guān)系,以及“值傳遞”的含義;掌握全局變量和局部變量的關(guān)系和使用方法。
2.實驗內(nèi)容
(1)寫一個判別素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。
(2)求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。用一個子函數(shù)求最大公約數(shù),用另一個子函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。
(3)輸入10個學(xué)生5門課的成績,分別用函數(shù)求:①每個學(xué)生平均分;②每門課的平均分;③找出最高的分數(shù)對應(yīng)的學(xué)生和課程;④求平均分方差;
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
4.問題討論
如何將子函數(shù)中某個變量的值傳回主函數(shù)?
實驗八 指針(4學(xué)時)
1.實驗?zāi)康恼莆罩羔樀母拍睿瑢W(xué)會定義和使用指針;掌握跟數(shù)組有關(guān)的指針的操作(包括字符數(shù)組);掌握跟函數(shù)有關(guān)的指針的操作。
2.實驗內(nèi)容
(1)另寫一個函數(shù)完成strcmp()功能。
(2)另寫一個函數(shù)完成strcpy()功能。
(3)將一個5×5的矩陣轉(zhuǎn)置,用一個子函數(shù)實現(xiàn)該功能。
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
4.問題討論
如何理解指針和數(shù)組之間的關(guān)系?
實驗九 結(jié)構(gòu)體(2學(xué)時)
1.實驗?zāi)康恼莆战Y(jié)構(gòu)體類型變量的定義和使用;掌握結(jié)構(gòu)體類型數(shù)組的概念和應(yīng)用;掌握鏈表的概念,初步學(xué)會對鏈表進行操作;理解共用體的概念與使用。
2.實驗內(nèi)容
(1)有10個學(xué)生,每個學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、3門課的成績。從鍵盤輸入10個學(xué)生數(shù)據(jù),要求輸出每門課的平均成績。
(2)有n個人圍成一圈,順序排號。從第1個人開始1—3報數(shù),凡報到3的人退出圈子,問 最后留下的是原來第幾號的那位。
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
4.問題討論
結(jié)構(gòu)體類型變量有哪幾種定義和使用的方法?
實驗十 綜合程序設(shè)計(4學(xué)時)
1.實驗?zāi)康恼莆粘绦蛟O(shè)計的基本方法和技能,理解結(jié)構(gòu)化程序設(shè)計和模塊化設(shè)計方法的基本思想,能綜合運用C語言的結(jié)構(gòu)和函數(shù)等功能編寫程序解決實際問題。
2.實驗內(nèi)容
(1)用麥克勞林級數(shù)求sin(x),x有鍵盤輸入。
(2)有五個學(xué)生,每人有3門課的成績,從鍵盤輸入學(xué)生學(xué)號、姓名、3門課成績,計算出每人平均分并將其和原始數(shù)據(jù)都存放在磁盤文件“stud.dat”中
3.實驗儀器設(shè)備
微型計算機一套,配置Windows系統(tǒng)和VC++6.0/Turbo C3.0 軟件。
4.問題討論
數(shù)據(jù)的不同組織形式對程序有哪些影響?
第二篇:c語言編程題答案
六、編程題參考答案
1.編程,統(tǒng)計在所輸入的50個實數(shù)中有多少個正數(shù)、多少個負數(shù)、多少個零。#include “stdio.h” #define N 50 void main(){ float x;unsigned int s1,s2,s3,i;s1=s2=s3=0;for(i=1;i<=N;i++){ scanf(“%f”,&x);if(x<0)s1++;else if(x==0)s2++;else s3++;} printf(“負數(shù)%u個,零%u個,正數(shù)%u個n”,s1,s2,s3);}
2.編程,計算并輸出方程 X2+Y2=1989 的所有整數(shù)解。#include “stdio.h” void main(){ int x,y;for(x=-45;x<=45;x++){ y=-45;while(y<=45){ if(x*x+y*y==1989)printf(“%d*%d+%d*%d=%dn”,x,x,y,y,1989);y++;} } }
3.編程,輸入一個10進制正整數(shù),然后輸出它所對應(yīng)的八進制、十六進制數(shù)。#include “stdio.h” void main(){ unsigned int x;printf(“請輸入一個十進制正整數(shù):”);scanf(“%u”,&x);printf(“%d=八進制數(shù) %o=十六進制數(shù)%xn”,x,x,x);}
4.編程,找出1000以內(nèi)的所有完數(shù),并輸出其因子。#include “stdio.h” void main(){ int i,j,s=1;for(i=1;i<=1000;i++,s=1){ for(j=2;j<=i/2;j++)if(i%j==0)s+=j;// 求 i的因子和
if(s==i){ printf(“%d=1”,i);// 如果i 是完數(shù)則輸出其各因子
for(j=2;j<=i/2;j++)if(i%j==0)printf(“+%d”,j);printf(“n”);} } }
5.輸入一個正整數(shù),輸出它的所有質(zhì)數(shù)因子。#include “stdio.h” void main(){ int m,i=2;printf(“請輸入一個整數(shù):”);scanf(“%d”,&m);while(m!=1)if(m%i==0){ printf(“%d ”,i);m/=i;} else i++;printf(“n”);}
6.輸入20個整數(shù),輸出其中能被數(shù)組中其它元素整除的那些數(shù)組元素。#include “stdio.h” #define N 20 void main(){ int a[N],i,j;for(i=0;i 7.輸入兩個數(shù)組(數(shù)組元素個數(shù)自定),輸出在兩個數(shù)組中都出現(xiàn)的元素。#include “stdio.h” #define NA 6 #define NB 8 void main(){ float a[NA],b[NB];int i,j;for(i=0;i 8.輸入兩個數(shù)組(數(shù)組元素個數(shù)自定),輸出在兩個數(shù)組中都不出現(xiàn)的元素。#include “stdio.h” #define NA 6 #define NB 8 void main(){ float a[NA],b[NB];int i,j;for(i=0;i 9.編程,將字符數(shù)組S2中的全部字符拷貝到字符數(shù)組S1中。#include “stdio.h” void main(){ char s1[20],s2[]=“Good morning!”;int i=0;while((s1[i++]=s2[i])!='