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 小时前
profiler debug 工具用法与高一致性策略
算法·自动驾驶
编程大师哥2 小时前
匿名函数 lambda + 高阶函数
java·python·算法
isyangli_blog2 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb2008112 小时前
FastAPI APIRouter
开发语言·python
Benszen2 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆2 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木2 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
我叫袁小陌2 小时前
算法解题思路指南
算法
地平线开发者2 小时前
Conv+BN+Add+ReLU 融合机制简介
算法·自动驾驶