美文网首页
C语言编程 菜鸟练习100题(01-10)

C语言编程 菜鸟练习100题(01-10)

作者: youcans | 来源:发表于2021-03-08 13:32 被阅读0次

    【练习1】输出 "Hello, World!"

    0. 题目:
    输出 "Hello, World!"
    1. 分析:
    使用 printf() 输出 "Hello, World!"。
    2. 程序:

    #include <stdio.h>
    int main()
    {
        printf("Hello, World!");  // printf() 中字符串的前后需要使用双引号
        return 0;
    }
    

    3. 输入输出:

    Hello, World!

    4. 扩展知识:
    printf() 是头文件 stdio.h 中定义的函数,调用格式为:

    printf("<格式化字符串>", <参量表>);


    【练习2】输出整数

    0. 题目:
    输出整数
    1. 分析:
    使用 printf() 与 %d 格式化输出整数。
    2. 程序:

    #include <stdio.h>
    int main()
    {
        int intNum;  // 声明 int 变量
        printf("输入一个整数: ");  // printf() 输出字符串
        scanf("%d", &intNum);  // scanf() 格式化输入,"%d"表示整数格式
        printf("输入的整数是: %d", intNum);  // printf() 显示格式化输入
        return 0;
    }
    

    3. 输入输出:

    输入一个整数: 255
    输入的整数是: 255

    4. 扩展知识:
    scanf() 是头文件 stdio.h 中定义的函数,从标准输入 stdin 读取格式化输入。


    【练习3】输出单个字符

    0. 题目:
    输出单个字符
    1. 分析:
    使用 printf() 与 %c 格式化输出一个字符。
    2. 程序:

    #include <stdio.h>
    int main()
    {
        char oneChar;  // 声明 char 变量
        oneChar = 'C';  // 向变量赋值
        printf("oneChar 的值为 %c", oneChar);  // printf() 格式化输出
        return 0;
    }
    

    3. 输入输出:

    oneChar 的值为 C

    4. 扩展知识:

    基本数据类型
    int:整型
    short:短整型
    long:长整型
    float:浮点型(单精度)
    double:浮点型(双精度)
    char:字符型
    void:无类型


    【练习4】输出浮点数

    0. 题目:
    输出浮点数
    1. 分析:
    使用 printf() 与 %f 输出浮点数。
    2. 程序:

    #include <stdio.h>
    int main()
    {
        float fVar1,fVar2;  // 声明浮点数变量   
        fVar1 = 12.00123;  // 向变量赋值   
        printf("fVar1 的值为 %f\n", fVar1);   // printf() 格式化输出 
        fVar2 = 123.001234;  // 向变量赋值   
        printf("fVar2 的值为 %f\n", fVar2);   // printf() 格式化输出 
        return 0;
    }
    

    3. 输入输出:

    fVar1 的值为 12.00123
    fVar2 的值为 123.001236

    【注意!】 fVar1 的值与赋值完全相同,但 fVar2 的的值与赋值不完全相同。这是因为 float 为单精度浮点数,内存中占 4个字节,有效数位是 7位。如果有效数字位数超过 7位,超出的部分会自动四舍五入。


    【练习5】输出双精度数

    0. 题目:
    输出双精度数
    1. 分析:
    使用 printf() 与 %e 输出双精度数。
    2. 程序:

    #include <stdio.h>
    {
        double dVar1,dVar2;  // 声明浮点数变量   
        dVar1 = 12.00123;  // 向变量赋值   
        printf("dVar1 的值为 %Lf\n", dVar1);   // 格式化输出:长实数 
        printf("dVar1 的值为 %Le\n", dVar1);   // 格式化输出:科学计数法 
        dVar2 = 123.001234;  // 向变量赋值   
        printf("dVar2 的值为 %Lf\n", dVar2);   // 格式化输出:长实数 
        printf("dVar2 的值为 %Le\n", dVar2);   // 格式化输出:科学计数法 
        return 0;
    }
    

    3. 输入输出:

    dVar1 的值为 12.001230
    dVar1 的值为 1.200123e+001
    dVar2 的值为 123.001234
    dVar2 的值为 1.230012e+002

    【注意!】 double 为双精度浮点数,内存中占 8个字节,有效数位是 16位。dVar2 按科学计数法格式(Le)输出时虽然与赋值不完全相同,这只是格式化输出时的有效数字位数限制所致,但在实际存储和计算时都是与赋值完全相同的,因此在按长实数格式(Lf)输出时与赋值完全相同


    【练习6】两个数字相加

    0. 题目:
    题目两个数字相加
    1. 分析:
    分析使用 scanf() 来接收输入, printf() 与 %d 格式化输出整数。
    2. 程序:

    #include <stdio.h>
    int main()
    {
        int firstNum, secondNum, sumNum;    
        printf("输入两个整数(以空格分隔): "); 
        // scanf() 格式化输入,接收用户输入的两个整数
        scanf("%d %d", &firstNum, &secondNum); 
        // 两个整数相加
        sumNum = firstNum + secondNum; 
        // 输出结果
        printf("%d + %d = %d", firstNum, secondNum, sumNum);
        return 0;
    }
    

    3. 输入输出:

    输入两个数(以空格分割): -1 99
    -1 + 99 = 98

    【注意!】 由于scanf()函数中定义的输入格式为"%d %d"(两个%d之间有一个空格),在输入时就必须严格按照定义的格式,在输入的两个整数之间加一个空格,否则可能出错。类似地,如果定义输入格式为"%d,%d",就必须在在输入的两个整数之间加一个逗号。


    【练习7】两个浮点数相乘

    0. 题目:
    两个浮点数相乘
    1. 分析:
    输入两个浮点数,计算乘积。
    2. 程序:

    #include <stdio.h>
    int main()
    {
        double firstNum, secondNum, productNum;
        printf("输入两个浮点数(以空格分隔): ");
        scanf("%lf %lf", &firstNum, &secondNum);   
        productNum = firstNum * secondNum;  // 两个浮点数相乘
        printf("%.2lf * %.2lf = %.2lf\n", firstNum,secondNum,productNum); 
        printf("%lf * %lf = %lf\n", firstNum,secondNum,productNum);
        return 0;
    }
    

    3. 输入输出:

    输入两个浮点数(以空格分割): 1.2345 66
    1.23 * 66.00 = 81.48
    1.234500 * 66.000000 = 81.477000

    【注意!】(1)变量 secondNum 定义为浮点数,虽然输入为整数也是按浮点数存储的。(2)%.2lf 表示输出格式为保留2位有效数字,但并不影响存储的数据的精度。


    【练习8】字符转 ASCII 码

    0. 题目:
    字符转 ASCII 码
    1. 分析:
    ASCII 定义了 128 个字符:
    (1)0-31、127(删除键)是控制字符
    (2)空白字符:空格(32)、 制表符、 垂直制表符、 换行、 回车。
    (3)可显示字符:a-z、A-Z、0-9、~、!、@、、%、^、&、#、$、*、(、)、-、+、{、}、[、]、'、"、<、>、,、?、/、|、\、_、:、;、.,还有顿号、。

    2. 程序:

    #include <stdio.h>
    int main()
    {
        char oneChar;  // 声明 char 变量
        
        printf("输入一个字符: "); 
        scanf("%c", &oneChar);  // 读取用户输入
        printf("%c 的 ASCII 为 %d", oneChar, oneChar);  // %c 字符格式
        return 0;
    }
    

    3. 输入输出:

    输入一个字符: A
    A 的 ASCII 为 65


    【练习9】两数相除

    0. 题目:
    两数相除
    1. 分析:
    两数相除,如果有余数,输出余数
    2. 程序:

    #include <stdio.h>
    int main()
    {
        int dividend, divisor, quotient, remainder;
        
        printf("输入被除数、除数(以空格分隔): "); 
        // scanf() 格式化输入,接收用户输入的两个整数
        scanf("%d %d", &dividend, &divisor);  // 输入被除数、除数
       
        quotient = dividend / divisor;  // 除法,分子除分母的整数部分
        remainder = dividend % divisor;  // % 为模运算,整除后的余数
        printf("商 = %d, 余数 = %d", quotient,remainder);
        return 0;
    }
    

    3. 输入输出:

    输入被除数、除数(以空格分隔): 50 10 输出:商 = 5, 余数 = 0
    输入被除数、除数(以空格分隔): 51 10 输出:商 = 5, 余数 = 1
    输入被除数、除数(以空格分隔): 55 10 输出:商 = 5, 余数 = 5
    输入被除数、除数(以空格分隔): 58 10 输出:商 = 5, 余数 = 8

    【注意!】除法“/”得出的商是被除数与除数相除的整数部分,不做四舍五入处理。


    【练习10】数值比较

    0. 题目:
    数值比较
    1. 分析:
    定义了两个整数变量,使用 if 来比较两个数值
    2. 程序:

    #include <stdio.h>
    int main()
    {
        int firstNum, secondNum; 
    
        printf("输入两个整数(以空格分隔): "); 
        scanf("%d %d", &firstNum, &secondNum); 
        
        if(firstNum > secondNum)
            printf("%d 大于 %d", firstNum,secondNum);
        else if(firstNum < secondNum)
            printf("%d 小于 %d", firstNum,secondNum); 
        else
            printf("%d 等于 %d", firstNum,secondNum);
        return 0;
    }
    

    3. 输入输出:

    输入两个整数(以空格分割): -1 99
    -1 小于 99


    版权说明:
    题目和例程 源于 菜鸟教程,作者重新编写了程序、注释和算例,并增加了难点分析。

    相关文章

      网友评论

          本文标题:C语言编程 菜鸟练习100题(01-10)

          本文链接:https://www.haomeiwen.com/subject/vlzvqltx.html