高级语言程序设计作业题及答案

这篇博客涵盖了高级语言程序设计的多个作业,涉及题目包括:算法设计、编程实现、枚举类型、图形学、数学计算、枚举数列生成等。作业内容包含各种编程任务,如计算距离、交换变量、判断对称数、素数生成等,旨在提升编程能力和算法理解。
摘要由CSDN通过智能技术生成

第一次作业

1.安装VS编译器,创建工程,添加cpp文件,在其中输入例1.1代码,并运行(上机实践,不需要提交纸质版)

2.新建工程,运行例1.3代码(上机实践,不需要提交纸质版)

3.写出解决下列问题的算法,并画出PAD图
a)有两个瓶子A和B分别装有酱油和醋,设计一个算法,将A和B中的盛装物互换
b)设计算法,求N个整数的平均值
c)求两个数m和n的最大公约数

4.一块矩形场地被等宽的绿化带包围。已知
绿化带外围矩形的长和宽(单位:米)以及绿化带内矩形场地的面积(单位:平方米),求绿化带的宽度 (单位:米)
写出算法,并画出PAD图
长300米
宽500米
绿化带宽度x米
绿化带内矩形场地的面积80000米

#include "stdio.h"
#include "math.h"
#define length 500    // 地块长
#define width 300    // 地块宽
#define area 80000   // 地块面积
void main(){
   
    float x1,x2,b,d;
    b= -2.0*(length+width);                  // 计算b
    d=sqrt(b*b - 4.0*4.0*(length*width - area));  // 计算△
    x1=(-b+d)/(2*4);                       // 求根
    x2=(-b-d)/(2*4);
    printf("  x1=%.2f\n  x2=%.2f \n",x1,x2);  //输出
}

第二次作业

1.编写程序,输入两个整数,分别计算它们的和,差,积,商,余。并输出。

#include "stdio.h"
int main(){
   
    int num1,num2,a,b,c,e;
    float d;
    printf("输入两个整数:");
    scanf("%d%d",&num1,&num2);
    if(num2 == 0){
   
        a=num1+num2;
        b=num1-num2;
        c=num1*num2;
        printf("和%d,差%d,积%d",a,b,c);
    }else{
   
        a=num1+num2;
        b=num1-num2;
        c=num1*num2;
        d=1.0*num1/num2;
        e=num1%num2;
        printf("和%d,差%d,积%d,商%f,余数%d",a,b,c,d,e);
    }
    return 0;
}

2.编写程序,交换两个整数A和B的值,要求:不用中间变量。

#include<stdio.h>
int main(){
   
    int a = 10 , b = 20;
    a = b+a;
    b = a - b;
    a = a - b;
    printf("a = %d    b = %d\n",a,b);
    return 0;
}

3.从空间一点(x0,y0,z0)到平面Ax+By+Cz+D=0的距离d的计算公式是:
d=|Ax_0+By_0+Cz_0+D|/√(A2+B2+C^2 )
编写程序,定义平面方程系数A,B,C,D为常量,空间任一点P的坐标(x0,y0,z0)由用户输入,计算并输出d。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

#define A 10
#define B 20
#define C 30
#define D 40
int main()
{
   
    double d;
    double x0,y0,z0;
    printf("请输入坐标:");
    scanf("%f%f%f",&x0,&y0,&z0);
    d = abs(A*x0+B*y0+C*z0+D)/sqrt(A*A + B*B + C*C);
    printf("%lf",d);
    return 0;
}

第三次作业

1.有一个函数:
y=x(x<1)
y=2x-1(1≤x<10)
y=3x-11(x≥10)
编写程序,输入x的值,输出y的值

#include<stdio.h>
int main(){
   
    float x,y;
    printf("请输入x:");
    scanf("%f",&x);
    if(x<1){
   
        y = x;
    }else if(x<10){
   
        y = 2*x -1;
    }else{
   
        y = 3*x-11;
    }
    printf("函数值为:%f",y);
    return 0;
}

2.编写程序,输入一个字母,若其为小写字母,
将其转换成相应的大写字母,并输出

#include<stdio.h>
int main(){
   
    char c;
    do{
   
        printf("请输入一个字母:");
        c = getchar();
        setbuf(stdin, NULL);
        if((c>='A'&&c<='Z') || (c>='a'&&c<='z'))
            break;
        else
            printf("输入有误,请重新输入。\n");
    }while(1);
    if(c>='a'&&c<='z')
        c -= 32;
    printf("输入的字符:%c",c);
    return 0;
}

3.编写程序,输入个5位 自然数n,判断n是
否是对称数。对称数是指正序和反序读都相等的整数。比如:12321

#include<stdio.h>
#include<stdbool.h>
int main(){
   
    int num;
    bool isSym = true;
    do{
   
        printf("请输入一个五位数:");
        scanf("%d",&num);
        setbuf(stdin, NULL);
        if(num>9999&&num<100000)
            break;
        else
            printf("输入有误,请重新输入。\n");
    }while(1);
    for(int m = 10000;num>9;m/=100)
        if(num/m != num%10){
   
            isSym = false;
            break;
        }else{
   
            num = num - m*num/m;
            num /= 10;
        }
    if(isSym)
        printf("输入的数是对称数!\n");
    else
        printf("输入的不是对称数!\n");
    return 0;
}

4.输入百分制成绩,输出成绩等级,如: A、B、C、D、E,每10分为一个等级。

#include<stdio.h>
int main(){
   
    int score;
    char grade;
    do{
   
        printf("请输入你的成绩:");
        scanf("%d",&score);
        if(score>=0&&score<=100)
            break;
        printf("您的输入有误!\n");
    }while(1);
    score /= 10;
    switch(score)
    {
   
        case 10:
        case 9:
            grade = 'A';
            break;
        case 8:
            grade = 'B';
            break;
        case 7:
            grade = 'C';
            break;
        case 6:
            grade = 'D';
            break;
        default:
            grade = 'E';
            break;
    }
    printf("您的成绩等级为:%c\n",grade);
    return 0;
}

5.输入一个整数,判断其是否能被3、5、7同时整除,或者只能被其中哪几个数整除

#include<stdio.h>
int main(){
   
    int num;
    scanf("%d",&num);
    if(num%3==0)
        if(num%5==0)
            if(num%7==0)
                printf("该数能被3、5、7同时整除!\n");
            else
                printf("该数只能被3、5整除!\n");
        else
            if(num%7==0)
                printf("该数只能被3、7整除!\n");
            else
                printf("该数只能被3整除!\n");
    else
        if(num%5==0)
            if(num%7==0)
                printf("该数只能被5、7整除!\n");
            else
                printf("该数只能被5整除!\n");
        else
            if(num%7==0)
                printf("该数只能被7整除!\n");
            
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值