C語言程式設計實驗報告——實驗三
阿新 • • 發佈:2021-01-27
技術標籤:C語言程式設計實驗報告c語言
C語言程式設計實驗報告——實驗三
實驗三 資料型別、運算子和表示式
一、實驗目的及要求
1.進一步熟悉 VC環境的使用方法及 C語言程式的編輯、編譯、連結和執行的過程。
2.掌握 C語言的各種資料型別以及整型、字元型、實型變數的定義。
3.掌握 C語言中有關運算子及表示式的使用。
二、實驗環境
1、硬體要求:計算機一臺。 2、軟體要求:Windows作業系統,VC++6.0編譯環境 3、熟悉 C語言的資料型別、各種運算子的使用。 4、熟悉 C語言表示式的構成、運算規則等內容。
三、實驗內容
實驗題目(1)
編寫程式,判斷一個數n能否同時 被3和5整除。
博主表示,這道題目只是為了考察同學們對選擇結構的熟悉程度,難度係數沒有 很低。
原始碼如下:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n%3==0&&n%5==0)
printf("Yes\n");
else
printf("No\n");
return 0;
}
實驗題目(2)
求兩個數m和n的最大公約數
這道題,其實也不難,演算法可以說是小學數學就已經講了,主要是考察同學們對於迴圈和函式的理解以及程式碼的實現。
方法① - -不使用函式,直接在main函式類實現演算法。
原始碼如下:
#include<stdio.h>
int main()
{
int m,n,temp,i;
printf("請輸入兩個數:\n");
scanf("%d,%d", &m, &n);
if(m<n)
{
temp=m;
m=n;
n=temp;
}
for(i=n;i>0;i--)
if(m%i==0 && n% i==0)
{
printf("兩數的最大公約數是: %d\n",i);
break;
}
return 0;
}
方法② - - 自建函式,呼叫函式實現演算法。
原始碼如下:
#include<stdio.h>
#include<math.h>
int gcd(int m, int n)
{
if (n==0)
return m;
return gcd(n,m%n);
}
int main()
{
int temp,m,n;
printf("請輸入兩個數:\n");
scanf("%d,%d",&m,&n);
gcd(m,n);
while (n!=0)
{
temp=m%n;
m=n;
n=temp;
}
printf("最大公約數為:%d\n",m);
return 0;
}
實驗題目(3)
求方程式ax²+bx+c=0的根。
這道題目在數學中應該很常見了,對於這種方程,首先判斷方程是一元還是二元,然後判斷是沒有實根,有一個根還是有兩個根,最後求解。但是用C語言來解決這個問題,主要考察方面就是資料型別,選擇的巢狀。
原始碼如下:
#include<stdio.h>
#include<math.h>
int main ()
{
double a,b,c,d;
printf("請輸入a,b,c 的值:\n");
scanf("%lf,%lf,%lf",&a,&b,&c);
if(a==0)
{
if(b!=0)
{
printf("該方程是一次方程\n");
printf("x=%7.2lf\n",-c/b);
}
else{
printf("不構成方程\n");
}
}
else
{
printf("該方程是二次方程\n");
d=b*b-4*a*c;
if(d==0)
{
printf("有兩個相等的根\nx=%7.2lf\n",-b/(2*a));
}
if (d>0)
{
printf("有兩個不相等的根\nX1=%7.2lf\nX2=%7.2lf\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
}
if(d<0)
{
printf("沒有實數根\n");
}
}
return 0;
}
實驗題目(4)
編寫程式實現字母的大小寫轉換。
這道題目,解法有很多。博主在此就列舉兩種