C语言实验报告1-3

C语言实验报告1-3

焦虑烧麦 87 2022-10-20

写在前面

此文为每周的C语言实验报告作业,每个项目的代码备份

实验报告(1)

第一次作业内容,经典的Hello World 和 两数相加,没啥好讲的

Lib1

代码

这里就直接两题并作一题做了

C语言中一定是先定义变量再使用

#include <stdio.h>
int main(){
    int num1, num2, sum;
    /*1题*/
    printf("It's my first C program!\n");
    /*2题*/
    printf("Please Enter The Two Number:\n");
    scanf("%d%d", &num1, &num2);
    sum = num1 + num2;
    printf("sum=%d\n", sum);
    return 0;
}

运行结果
yunxjg

实验报告(2)

实验目的:

  1. 掌握C语言的变量初始化。
  2. 掌握符号常量的定义与使用。
  3. 熟悉C语言的输入、输出函数的使用格式。

题目1

定义整型变量a、b,并给它他们分别赋值a=10,b=11;定义单精度实型变量c、双精度实型变量d,分别给它赋值c=1.2345678,d=1.2345678;定义字符变量e,给它赋值e=’A’。然后将变量a,b,c,d,e输出,其中e分别按照字符型和整型输出。最后观察c的输出结果;运行结果如下:
t1

代码

#include <stdio.h>
int main(){
    int a = 10, b = 11;
    float c = 1.234568;
    double d = 1.234568;
    char a = 'A';
    printf("a=%d,b=%d\n", a, d);
    printf("c=%f,d=%f\n", c, d);
    printf("e=%d,e=%c\n", e, e);
}

运行结果

11

题目2

编写程序,进行数据交换。从键盘输入a、b的值,输出交换以后的值。(定义变量a,b类型为int)运行结果如下:
image

代码

#include <stdio.h>
int main(){
    int a, b, c;
    printf("输入a和b的值:");
    scanf("a=%d,b=%d", &a, &b);
    c = a;
    a = b;
    b = c;
    printf("交换后:");
    printf("a=%d,b=%d", a, b);
    return 0;
}

运行结果

222

题目3

完成计算圆球的表面积和体积;通过键盘输入圆球的半径
计算并输出圆球的表面积和体积,要求Π=3.14159用define进行宏定义,输出时有文字说明,输出的表面积和体积保留小数点后两位数字。(V 球 =4/3πr^3;S 球=4πr^2)运行结果如下:

image-1666271964848

代码

#include <stdio.h>
#define PI 3.1415926 //宏定义PI值
int main(){
    double r, v, s;
    printf("输入球的半径:");
    scanf("%lf", &r);
    s = 4 * PI * r * r;         //表面积
    v = 4 * PI * r * r * r / 3; //体积
    printf("圆球表面积为%.2f,圆球的体积为%.2f", s, v);
    return 0;
}

运行结果

333

实验报告(3)

实验目的:
1、掌握C语言的选择语句(if语句)。
2、掌握C语言的运算符使用方法。
3、掌握条件运算符的使用方法。

题目1

每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。
小孩成人后的身高与其父母的身高和自身的性别密切相关。
设faheight为其父身高,moheight为其母身高,身高预测公式为

  • 男性成人时身高=(faheight + moheight) ×0.54cm
  • 女性成人时身高=(faheight×0.923 + moheight) /2cm

此外:

  • 如果喜爱体育锻炼,那么可增加身高2%;
  • 如果有良好的卫生饮食习惯,那么可增加身高1.5%。

整体思路:

  1. 编程从键盘输入用户的性别(用字符型变量sex存储,输入字符W表示女性,输入字符M表示男性)
  2. 父母身高(用实型变量存储,faheight为其父身高,moheight为其母身高)
  3. 是否喜爱体育锻炼(用字符型变量sport存储,输入字符Y表示喜爱,输入字符N表示不喜爱)
  4. 是否有良好的饮食习惯等条件(用字符型变量food存储,输入字符Y表示良好,输入字符N表示不好)
  5. 利用给定公式和身高预测方法对身高进行预测

类似于:
image-1666272812292

代码

#include <stdio.h>
int main(){
    //1. 定义变量 faHeight=父亲身高,moHeight=母亲身高,chHeight=孩子身高
    float faHeight, moHeight, chHeight;
    //2. 定义字符变量 sex sport diet
    char sex, sport, diet;
    //3. 使用getchar获取用户输入变量
    printf("请输入孩子性别M(m)W/(w):");
    sex = getchar();
    //4. 打印用户的输入
    printf("请输入父亲身高:");
    scanf("%f", &faHeight);

    printf("请输入母亲身高:");
    scanf("%f", &moHeight);

    printf("是否喜欢运动(Y/N):");
    scanf(" %c",&sport);

    printf("饮食是否健康(Y/N):");
    scanf(" %c", &diet);

    //5. 判断条件
    if (sex == 'M' || sex == 'm'){
        //如果用户输入的值是M或者m,就执行这里的公式
        chHeight = (faHeight + moHeight) * 0.54;
    }else if (sex == 'W' || sex =='w'){
        //如果用户输入的值是W或者w,就执行这里的公式
        chHeight = (faHeight * 0.923 + moHeight) / 2;
    }else{
        // 如果用户输入的既不是W(w)或者M(m),则提示用户输入错误
        printf("请正确输入性别M或W(不区分大小写)");
    }
    // 判断是否爱运动,是就执行公式
    if (sport == 'Y' || sport == 'y'){
        chHeight *= 1.02;
    }
    //判断饮食是否健康,就是执行公式
    if (diet == 'Y' || diet == 'y'){
        chHeight *= 1.015;
    }

    // 6. 输出预测身高结果
    printf("预测身高为:%.2f\n",chHeight);
    system("pause");    // Press any key to continue 按任意键继续
    return 0;
}

运行结果

4444

While练习题

实验目的:
掌握while 和 do while循环

题目

  • 使用循环结构模拟一个 “工资管理系统”
  • 实例执行时将循环显示菜单, 并提示用户选择输入要执行的菜单命令, 直到用户输入 6 退出程序
  • 程序在执行时,先显示选项菜单,提示用户输入1-6选择选项,再通过switch语句选择执行相应的功能语句。
  • 从switch语句中退出后,对条件进行检查,如果为真,则继续循环;反之退出程序

ms

代码do while版

#include <stdio.h>
int main()
{
    int n;
    do
    {
        // system("cls");  //清除屏幕(#include <stdlib.h>)
        printf("\t---------工资管理系统--------\n");
        printf("\t-        1.查询员工信息     -\n");
        printf("\t-        2.添加员工信息     -\n");
        printf("\t-        3.删除员工信息     -\n");
        printf("\t-        4.修改员工信息     -\n");
        printf("\t-        5.员工信息总览     -\n");
        printf("\t-        6.退出员工系统     -\n");
        printf("\t-----------------------------\n");
        printf("请输入选项1——6:");
        scanf("%d", &n);
        switch (n)
        {
        case 1:
            printf("执行了查询员工信息命令。\n");
            break;
        case 2:
            printf("执行了添加员工信息命令。\n");
            break;
        case 3:
            printf("执行了删除员工信息命令。\n");
            break;
        case 4:
            printf("执行了修改员工信息命令。\n");
            break;
        case 5:
            printf("执行了员工信息总览命令。\n");
            break;
        case 6:
            printf("已退出员工系统。\n");
            break;
        default:
            printf("输入错误!\n");
            break;
        }
    } while (n != 6);
}

代码do while版

#include <stdio.h>
int main()
{
    int n;
    printf("\t---------工资管理系统--------\n");
    printf("\t-        1.查询员工信息     -\n");
    printf("\t-        2.添加员工信息     -\n");
    printf("\t-        3.删除员工信息     -\n");
    printf("\t-        4.修改员工信息     -\n");
    printf("\t-        5.员工信息总览     -\n");
    printf("\t-        6.退出员工系统     -\n");
    printf("\t-----------------------------\n");
    printf("请输入选项1——6:");
    scanf("%d", &n);
    while (n <= 6)
    {
        switch (n)
        {
        case 1:
            printf("执行了查询员工信息命令。\n");
            break;
        case 2:
            printf("执行了添加员工信息命令。\n");
            break;
        case 3:
            printf("执行了删除员工信息命令。\n");
            break;
        case 4:
            printf("执行了修改员工信息命令。\n");
            break;
        case 5:
            printf("执行了员工信息总览命令。\n");
            break;
        case 6:
            printf("已退出员工系统。\n");
            break;
        default:
            printf("输入错误!\n");
            break;
        }
        printf("\t---------工资管理系统--------\n");
        printf("\t-        1.查询员工信息     -\n");
        printf("\t-        2.添加员工信息     -\n");
        printf("\t-        3.删除员工信息     -\n");
        printf("\t-        4.修改员工信息     -\n");
        printf("\t-        5.员工信息总览     -\n");
        printf("\t-        6.退出员工系统     -\n");
        printf("\t-----------------------------\n");
        printf("请输入选项1——6:");
        scanf("%d", &n);
    }
}

作业练习

题目1

以下程序根据输入的三条边判断是否能构成三角形若能构成三角形则输出它的面积和三角形类型

代码

#include <stdio.h>
#include <math.h>
int main()
{
    float a, b, c, s, area;
    scanf("%f,%f,%f", &a, &b, &c);
    if (a + b > c && a + c > b && b + c > a)
    {
        s = (a + b + c) / 2;
        area = sqrt(s * (s - a) * (s - b) * (s - c));
        printf("三角形的面积为:%f\n", area);
        if (a == b && a == c && b == c)
            printf("等边三角形\n");
        else if (a == b || a == c || b == c)
            printf("等腰三角形\n");
        else if ((a * a + b * b == c * c) || (a * a + c * c == b * b) || (c * c + b * b == a * a))
            printf("直角三角形\n");
        else
            printf("普通三角形");
    }
    else
        printf("不能组成三角形!\n");
    return 0;
}

运行结果

sanjiao

题目2

  • 某邮局对邮寄包裹有如下规定:
  • 若包裹的 长 宽 高 任一尺寸超过 1m 或重量超过30kg,则不予邮寄;
  • 对可以邮寄的包裹每件收手续费2元

代码

#include <stdio.h>
int main()
{
    float len, wei, hei, wid, mon, r;
    printf("请输入待邮寄物品的长宽高及重量(kg):\n");
    scanf("%f%f%f%f", &len, &wid, &hei, &wei);
    if (len > 1 || wid > 1 || hei > 1 || wei > 30)
        r = -1;
    else if (wei < 10)
        r = 0.85;
    else if (wei <= 20)
        r = 0.75;
    else if (wei <= 30)
        r = 0.7;
    if (r == -1)
        printf("邮寄物品参数不符合要求,不予邮寄!\n");
    else
    {
        mon = r + 2;
        printf("应付邮费为:%f\n", mon);
    }
    return 0;
}

运行结果

post

题目3

将输入的百分制成绩输出相对应的等级
90以上为A;81-89为B;70-79为C;60-69为D;60以下为E

代码

#include <stdio.h>
int main()
{
	int a;
	printf("请输入成绩:");
	scanf("%d", &a);
	if (a >= 90 && a <= 100)
		printf("等级是A\n");
	else if (a >= 80 && a <= 89)
		printf("等级是B\n");
	else if (a >= 70 && a <= 79)
		printf("等级是C\n");
	else if (a >= 60 && a <= 69)
		printf("等级是D\n");
	else if (a >= 0 && a <= 59)
		printf("等级是E\n");
	else if (a < 0)
		printf("输入错误,请输入1~100的成¦绩");
	getchar();
	return 0;
}

运行结果

switcha