sse哈工大C语言编程练习22

2026年2月5日

收获:

1.当输入整数后,之后的其他类型数据不能正常输入,用while(getchar()!='\n');来跳过多余字符。

题目:

1、Q5637.(语言: C)改错题:编程分别输入int型,char型和float型数据,要求每输入一项就显示数据类型和数据值。

输出格式要求:

"please input an integer:"

"integer %d\n"

"please input a character:"

"character %c\n"

"please input a float number:"

"float %f\n"

//请大家在CB中改错

复制代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    char b;
    float c;

    printf("please input an integer:\n");
    scanf("%d,a");		//缺取地址符,引号位置不对
    printf("Integer %d:\n, a);		//用小写,且缺少双引号
    //while(getchar()!='\n');  //跳过多余字符,使后续输入正常
    printf(Please input a character:");
    scanf(%c,b");		
    printf("Character %c\n,b);
    printf(Please input a float number:\n");
    scanf("%f",c);
    printf("Float %f:\n",c);
    return 0;
}

改后运行成功代码:

c 复制代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    char b;
    float c;

    printf("please input an integer:");
    scanf("%d",&a);
    printf("integer %d\n", a);
    while(getchar()!='\n');
    printf("please input a character:");
    scanf("%c",&b);
    printf("character %c\n",b);
    printf("please input a float number:");
    scanf("%f",&c);
    printf("float %f\n",c);
    return 0;
}

2、Q220.(语言: C)用if-else语句编程根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。已知转换标准为:

0-59 E

60-69 D

70-79 C

80-89 B

90-100 A

**输入格式要求:"%d" 提示信息:"Please enter score:"

**输出格式要求:"Input error!\n" "%d--A\n"

程序运行示例1如下:

Please enter score:15

15--E

程序运行示例2如下:

Please enter score:85

85--B

c 复制代码
#include <stdio.h>
int main()
{
    int score;
    printf("Please enter score:");
    scanf("%d",&score);
    if(score>100||score<0){
        printf("Input error!\n");
    }else if(score<60){
        printf("%d--E\n",score);
    }else if(score<70){
        printf("%d--D\n",score);
    }else if(score<80){
        printf("%d--C\n",score);
    }else if(score<90){
        printf("%d--B\n",score);
    }else{
        printf("%d--A\n",score);
    }
    return 0;
}

3、Q6394.(语言: C)爱因斯坦的数学题。爱因斯坦出了一道这样的数学题。有一条长阶梯,若每步跨2阶,则最后剩1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶,则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯共多少阶?

输出格式要求:"x = %d\n"
程序运行示例:
x=
**

c 复制代码
#include <stdio.h>
int main()
{
    int n=0,flag=1;
    while(flag){
        n++;
        if(n%2==1&&n%3==2&&n%5==4&&n%6==5&&n%7==0) flag=0;
    }
    printf("x = %d\n",n);
    return 0;
}

4、Q2128.(语言: C)用循环编程计算sum=12+3 4+56+78+...+ 99*100的值。

要求:

**输入格式:无任何信息提示;

**输出格式:"sum=%ld\n"

c 复制代码
#include <stdio.h>
int main()
{
    long int sum=0;
    for(int i=1;i<100;i+=2){
        sum+=i*(i+1);
    }
    printf("sum=%ld\n",sum);
    return 0;
}

5、Q473.(语言: C)编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):======= 大学信息管理系统 =======


  1. 办公室管理 5. 财务管理
  2. 教务管理 6. 图书管理
  3. 科研管理 7. 设备管理
  4. 人事管理 8. 后勤管理
  5. 退出系统

请您在上述功能中选择(0------8):

提示:输出如下格式"======= 大学信息管理系统 ======= \n""------------------------------\n""1. 办公室管理 5. 财务管理 \n""2. 教务管理 6. 图书管理 \n""3. 科研管理 7. 设备管理 \n""4. 人事管理 8. 后勤管理 \n""0. 退出系统\n""------------------------------\n""请您在上述功能中选择(0------8):\n"

c 复制代码
#include <stdio.h>
int main()
{
    printf("=======大学信息管理系统======= \n");
    printf("------------------------------\n");
    printf("1. 办公室管理     5. 财务管理 \n");
    printf("2. 教务管理       6. 图书管理 \n");
    printf("3. 科研管理       7. 设备管理 \n");
    printf("4. 人事管理       8. 后勤管理 \n");
    printf("0. 退出系统\n");
    printf("------------------------------\n");
    printf("请您在上述功能中选择(0------8):\n");
    return 0;
}
相关推荐
闲人不梦卿1 小时前
算法的特性
算法
小二·1 小时前
Go 语言系统编程与云原生开发实战(第12篇)云原生部署实战:Helm Chart × GitOps × 多环境管理(生产级落地)
开发语言·云原生·golang
小二·1 小时前
Go 语言系统编程与云原生开发实战(第13篇)工程效能实战:Monorepo × 依赖治理 × 构建加速(10万行代码实测)
开发语言·云原生·golang
暴躁小师兄数据学院1 小时前
【WEB3.0零基础转行笔记】Golang编程篇-第4讲:Go语言中的流程控制
开发语言·后端·golang·web3·区块链
j445566111 小时前
C++中的备忘录模式
开发语言·c++·算法
m0_603888712 小时前
POP Prefill-Only Pruning for Efficient Large Model Inference
算法·机器学习·ai·剪枝·论文速览
代码无bug抓狂人2 小时前
C语言之产值调整(蓝桥杯省B)
c语言·开发语言·蓝桥杯
近津薪荼2 小时前
dfs专题——二叉树的深搜3(二叉树剪枝)
c++·学习·算法·深度优先
拼好饭和她皆失2 小时前
数学知识:约数的详细解析
算法·数论