1.1编程基础之输入输出(10题)

文章介绍了使用C和Java语言实现一系列基础编程任务,包括输出Hello,World!、读取并操作整数和浮点数、格式化输出、字符图形等,以及展示了如何处理字符三角形和棱形,最后以经典游戏场景为例进行编程实践。
摘要由CSDN通过智能技术生成

前言

这里的题目比较简单也很基础, 所以没有对代码做过多的说明,我在21年是用Java写过一遍的,有些题目没过,时隔两年,我又全部用C语言做了一遍,于是就有了下面两种语言的代码

1. Hello, World!

描述
对于大部分编程语言来说,编写一个能够输出“Hello, World!”的程序往往是最基本、最简单的。因此,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。
现在你就需要完成这样一个程序。
输入
无。
输出
一行,仅包含一个字符串:“Hello, World!”
样例输入
(无)
样例输出
Hello, World!

C语言实现

#include <stdio.h>

int main(void) {
    printf("Hello, World!");
}

Java实现

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

2. 输出第二个整数

描述
输入三个整数,把第二个输入的整数输出。
输入
只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。
输出
只有一行,一个整数,即输入的第二个整数。
样例输入
123 456 789
样例输出
456

C语言实现

#include <stdio.h>

int main()
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%d", b);
    return 0;
}

Java实现

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        //输入三个整数
        int[] arr=new int[3];
        for(int i=0;i<3;i++){
            arr[i]=input.nextInt();
        }
        System.out.println(arr[1]);
    }
}

3. 对齐输出

描述
读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。
输入
只有一行,包含三个整数,整数之间以一个空格分开。
输出
只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。
样例输入
123456789 0 -1
样例输出
123456789 0 -1

C语言实现

#include <stdio.h>

int main(){
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%8d %8d %8d", a, b, c);
}

Java实现

import java.util.Scanner;


public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        int c=sc.nextInt();
        System.out.printf("%8d %8d %8d",a,b,c);
    }
}

4. 保留3位小数的浮点数

描述
读入一个单精度浮点数,保留3位小数输出这个浮点数。
输入
只有一行,一个单精度浮点数。
输出
也只有一行,读入的单精度浮点数。
样例输入
12.34521
样例输出
12.345

C语言实现

#include <stdio.h>

int main(){
    float n;
    scanf("%f", &n);
    printf("%.3f", n);
    return 0;
}

Java实现

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        float n=sc.nextFloat();
        System.out.printf("%.3f",n);
    }
}

5. 输出保留12小数的浮点数

描述
读入一个双精度浮点数,保留12位小数,输出这个浮点数。
输入
只有一行,一个双精度浮点数。
输出
也只有一行,保留12位小数的浮点数。
样例输入
3.1415926535798932
样例输出
3.141592653580

C语言实现

#include <stdio.h>

int main(){
    double d;
    scanf("%lf", &d);
    printf("%.12lf", d);
    return 0;
}

本题用java通过不了, 所以就不贴Java实现啦

6. 空格分隔输出

描述
读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。
输入
共有四行:
第一行是一个字符;
第二行是一个整数;
第三行是一个单精度浮点数;
第四行是一个双精度浮点数。
输出
输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。
样例输入
a
12
2.3
3.2

C语言实现

#include <stdio.h>

int main(){
    char c;
    int i;
    float f;
    double d;
    scanf("%c", &c);
    scanf("%d", &i);
    scanf("%f", &f);
    scanf("%lf", &d);
    printf("%c %d %.6f %.6lf", c, i, f, d);
    return 0;
}

这个题目也是,Java不能通过

7. 输出浮点数

描述
读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。
输入
一个双精度浮点数。
输出
输出有四行:
第一行是按“%f”输出的双精度浮点数;
第二行是按“%f”保留5位小数输出的双精度浮点数;
第三行是按“%e”输出的双精度浮点数;
第四行是按“%g”输出的双精度浮点数。
样例输入
12.3456789
样例输出
12.345679
12.34568
1.234568e+001
12.3457

#include <stdio.h>

int main(){
    double d;
    scanf("%lf", &d);
    printf("%f\n", d);
    printf("%.5f\n", d);
    printf("%e\n", d);
    printf("%g", d);
    return 0;
}

8. 字符三角形

描述
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
输入
输入只有一行, 包含一个字符。
输出
该字符构成的等腰三角形,底边长5个字符,高3个字符。
样例输入
*
样例输出

  *
 ***
*****

C语言实现

#include <stdio.h>

int main(){
    char c;
    scanf("%c", &c);
    for (int i = 1; i <= 3; i++){
        for (int j = 1; j <= 3-i; j++)
            printf(" ");
        for (int j = 1; j <= 2 * i - 1; j++)
            printf("%c", c);
        for (int j = 1; j <= 3 - i;j++)
            printf(" ");
        printf("\n");
    }
    return 0;
}

Java实现

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s= sc.nextLine();
        char c=s.charAt(0);
        for(int i=1;i<=3;i++){
            for(int m=1;m<=3-i;m++){
                System.out.print(" ");
            }
            for(int j=1;j<=2*i-1;j++){
                System.out.print(c);
            }
            for(int n=1;n<=3-i;n++){
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}

9. 字符棱形

描述
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。
输入
输入只有一行, 包含一个字符。
输出
该字符构成的菱形。
样例输入

*

样例输出

  *
 ***
*****
 ***
  *

C语言实现
方法一:

#include <stdio.h>
int main() {
    char c;
    scanf("%c", &c);
    printf("  %c  \n", c);
    printf(" %c%c%c \n", c, c, c);
    printf("%c%c%c%c%c\n", c, c, c, c, c);
    printf(" %c%c%c \n", c, c, c);
    printf("  %c  \n", c);
}

方法二

#include <stdio.h>

int main(){
    char c;
    scanf("%c", &c);//输入字符
    for (int i = 1; i <= 5; i++){
        if(i <= 3){//打印上半部分
            for (int j = 1; j <= 3 - i; j++)
                printf(" ");
            for (int j = 1; j <= 2 * i - 1; j++)
                printf("%c", c);
            for (int j = 1; j <= 3 - i;j++)
                printf(" ");
        }else{//打印下半部分
            for (int j = 1; j <= i - 3; j++)
                printf(" ");
            for (int j = 0; j <= 10 - 2*i; j+=1)
                printf("%c", c);
            for (int j = 1; j <= i - 3;j++)
                printf(" ");
        }
        printf("\n");
    }
}

10. 超级玛丽游戏

描述
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。
输入
无。
输出
如样例所示。
样例输入
(无)
样例输出

               ********
              ************
              ####....#.
            #..###.....##....
            ###.......######              ###                 ###           ###           ###
               ...........               #...#               #...#         #...#         #...#
              ##*#######                 #.#.#               #.#.#         #.#.#         #.#.#
           ####*******######             #.#.#               #.#.#         #.#.#         #.#.#
          ...#***.****.*###....          #...#               #...#         #...#         #...#
          ....**********##.....           ###                 ###           ###           ###
          ....****    *****....
            ####        ####
          ######        ######
##############################################################              >##################################
#...#......#.##...#......#.##...#......#.##------------------#              #...#......#.##------------------#
###########################################------------------#              ###############---->--------------#
#..#....#....##..#....#....##..#....#....#####################              >#..#....#....#####################
##########################################    #----------#                  ##############    #-->--------#
#.....#......##.....#......##.....#......#    #----------#                  #.....#......#    #----------#
##########################################    #----------#                  ##############    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#                  #.#..#....#..#    #----------#
##########################################    ############                  ##############    >############

这个题目超级简单,我直接就用C语言实现了

#include <stdio.h>

int main(){
    printf("                ********\n");
    printf("               ************\n");
    printf("               ####....#.\n");
    printf("             #..###.....##....\n");
    printf("             ###.......######              ###                 ###           ###           ###\n");
    printf("                ...........               #...#               #...#         #...#         #...#\n");
    printf("               ##*#######                 #.#.#               #.#.#         #.#.#         #.#.#\n");
    printf("            ####*******######             #.#.#               #.#.#         #.#.#         #.#.#\n");
    printf("           ...#***.****.*###....          #...#               #...#         #...#         #...#\n");
    printf("           ....**********##.....           ###                 ###           ###           ###\n");
    printf("           ....****    *****....\n");
    printf("             ####        ####\n");
    printf("           ######        ######\n");
    printf("##############################################################              ##################################\n");
    printf("#...#......#.##...#......#.##...#......#.##------------------#              #...#......#.##------------------#\n");
    printf("###########################################------------------#              ###############------------------#\n");
    printf("#..#....#....##..#....#....##..#....#....#####################              #..#....#....#####################\n");
    printf("##########################################    #----------#                  ##############    #----------#\n");
    printf("#.....#......##.....#......##.....#......#    #----------#                  #.....#......#    #----------#\n");
    printf("##########################################    #----------#                  ##############    #----------#\n");
    printf("#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#                  #.#..#....#..#    #----------#\n");
    printf("##########################################    ############                  ##############    ############");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lilianac

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值