1. 程式人生 > 其它 >C語言程式設計實驗報告——實驗三

C語言程式設計實驗報告——實驗三

技術標籤: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)

編寫程式實現字母的大小寫轉換。

這道題目,解法有很多。博主在此就列舉兩種