C语言程序设计实验报告——实验三

  • 实验三 数据类型、运算符和表达式
    • 一、实验目的及要求
    • 二、实验环境
    • 三、实验内容
      • 实验题目(1)
      • 实验题目(2)
      • 实验题目(3)
      • 实验题目(4)

实验三 数据类型、运算符和表达式

一、实验目的及要求

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)

编写程序实现字母的大小写转换。

这道题目,解法有很多。博主在此就列举两种🤭

方法① - - 利用ASCII码的换算关系进行运算。

源代码如下:

#include<stdio.h>
int main()
{
	printf("请输入一个字母:\n");
	char string;
	scanf("%c",&string);
	if(string>'a'&&string<'z'){
		printf("%c\n",string-32);
	}
	else if(string>'A'&&string<'Z'){
		printf("%c\n",string+32);
	}
	else{
		printf("输入字符不符合要求!\n");
	}
    return 0;
}

方法② - - 利用库函数进行转换

源代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main()
{
	printf("请输入一个字母:\n");
	char string;
	scanf("%c",&string);
	if(islower(string)){
		string=toupper(string);
		printf("%c\n",string);
	}
	else if(isupper(string)){
		string=tolower(string);
		printf("%c\n",string);
	}
	else{
		printf("输入字符不符合要求!\n");
	}
    return 0;
}

博主觉得,这些题目的难度系数并不高,但是针对初学者来说,可以拿来练习练习,试试手。

更多推荐

C语言程序设计实验报告——实验三