自学内容网 自学内容网

【C语言复习】第三章例子与习题


一、例子

【3.1】求转化为以摄氏法表示的温度(如17°C)

#include <stdio.h>

int main() {
    float f, c;                      // 定义f和c为单精度浮点型变量
    f = 64.;                          // 指定f的值
    c = (5.0 / 9) * (f - 32);         // 利用公式计算c的值
    printf("f=%f\nc=%f\n", f, c);     // 输出c的值
    return 0;
}

输出:
f=64.000000
c=17.777778

【3.2】银行不同年利率下的投资回报计算

#include <stdio.h> // 包含标准输入输出库,用于打印结果

int main() {
    float p0=1000, r1=0.0036, r2=0.0225, r3=0.0198, p1, p2, p3; // 定义初始本金p0为1000,以及三个不同的年利率r1、r2、r3
    // 同时定义了三个变量p1、p2、p3来存储计算后的金额

    p1 = p0 * (1 + r1); // 计算一年后按照年利率r1的金额,使用公式:p1 = p0 * (1 + r1)
    p2 = p0 * (1 + r2); // 计算一年后按照年利率r2的金额,使用公式:p2 = p0 * (1 + r2)
    // 注意这里的计算假设利息不复利,即不将利息加到本金中再次产生利息

    p3 = p0 * (1 + r3/2) * (1 + r3/2); // 计算半年后按照半年利率r3/2的金额,并且因为是半年复利一次,所以计算两次
    // 使用公式:p3 = p0 * (1 + r3/2) * (1 + r3/2),这里假设每半年计算一次利息,并且将利息加到本金中

    printf("p1=%f\np2=%f\np3=%f\n", p1, p2, p3); // 打印出按照不同利率计算后的金额
    return 0; // 程序正常结束
}


输出:
p1=1003.600000
p2=1022.500000
p3=1019.800801

【3.3】给定一个大写之母,要求输出小写字母

#include <stdio.h>

int main() {
    char c1, c2;
    c1 = 'A';                         // 将字符'A'的ASCII代码放到c1变量中
    c2 = c1 + 32;                     // 得到字符'a'的ASCII代码,放在c2变量中 
    printf("%c\n", c2);              // 输出c2的值,是一个字符
    printf("%d\n", c2);              // 输出c2的值,是字符'a'的ASCII代码
    return 0;
}

输出:
a
97

【3.4】给出三角形的三边长,求出三角形面积

要求出三角形的面积,可以使用海伦公式(Heron’s formula)。海伦公式是利用三角形的三边长来计算面积的公式。首先,需要计算半周长(s),然后使用三边长和半周长来计算面积。
[ s = \frac{a + b + c}{2} ][ \text{Area} = \sqrt{s \cdot (s - a) \cdot (s - b) \cdot (s - c)} ]

其中,a、b、c 是三角形的三边长,s 是半周长,Area 是三角形的面积。

#include <stdio.h>
#include <math.h> // 引入数学库,因为需要使用 sqrt 函数

int main() {
    float a, b, c, s, area;

    // 输入三角形的三边长
    printf("请输入三角形的三边长:\n");
    scanf("%f %f %f", &a, &b, &c);

    // 计算半周长
    s = (a + b + c) / 2;

    // 检查是否能构成三角形
    if (a + b > c && a + c > b && b + c > a) {
        // 使用海伦公式计算面积
        area = sqrt(s * (s - a) * (s - b) * (s - c));
        printf("三角形的面积是:%f\n", area);
    } else {
        printf("输入的边长不能构成三角形。\n");
    }

    return 0;
}

输入: a=3.67 b=5.43 c=6.21

输出:area=9.90

【3.5】求ax^2+bx+c=0的根

#include <stdio.h>
#include <math.h> // 引入数学库,用于计算平方根

int main() {
    double a, b, c, d, x1, x2;

    // 输入三个系数
    printf("请输入二次方程的系数a, b, c: ");
    scanf("%lf %lf %lf", &a, &b, &c);

    // 计算判别式
    d = b * b - 4 * a * c;

    // 根据判别式的值分别处理
    if (d > 0) {
        // 两个不相等的实根
        x1 = (-b + sqrt(d)) / (2 * a);
        x2 = (-b - sqrt(d)) / (2 * a);
        printf("方程有两个不相等的实根: x1 = %.2f, x2 = %.2f\n", x1, x2);
    } else if (d == 0) {
        // 两个相等的实根
        x1 = x2 = -b / (2 * a);
        printf("方程有两个相等的实根: x1 = x2 = %.2f\n", x1);
    } else {
        // 没有实根,只有复根
        printf("方程没有实根,只有复根\n");
    }

    return 0;
}

输入:a=1 b=3 c=2

输出:x1=-1   x2=-2

【3.6】用%f输出实数,只能得到6位小数

#include <stdio.h> // 包含标准输入输出库,用于打印结果

int main() {
    double a = 1.0; // 定义一个双精度浮点型变量a,并初始化为1.0
    // 注意这里使用double类型是为了确保精度,因为结果是一个小数

    printf("%f\n", a / 3); // 使用printf函数打印变量a除以3的结果
    // %f是格式化字符串,用于打印浮点数
    // a / 3计算a除以3的结果,这里a是1.0,所以结果是0.333333...

    return 0; // 程序正常结束,返回0
}

输出:
0.333333

【3.7】float型数据的有效位数

#include <stdio.h> // 包含标准输入输出库,这个库提供了输入输出函数,如printf()

int main() {
    float a; // 声明一个名为a的变量,类型为float,即单精度浮点数
    // float类型通常用于存储小数

    a = 10000 / 3.0; // 将10000除以3.0的结果赋值给变量a
    // 这里10000是整数,3.0是浮点数,所以整个表达式会进行浮点数除法

    printf("%f\n", a); // 使用printf()函数打印变量a的值
    // %f是一个格式说明符,告诉printf()函数要打印一个浮点数
    // \n是换行符,表示在打印完a的值之后换到新的一行

    return 0; // main函数返回0,表示程序正常结束
}

输出:
3333.333333

【3.8】先后输出BOY三个字符

#include <stdio.h>
int main ( )
{
  char a,b,c;                            // 定义3个字符变量  
  a='B';b='O';c='Y';                     // 给3个字符变量赋值     
  putchar(a);                            // 向显示器输出字符B  
  putchar(b);                            // 向显示器输出字符O  
  putchar(c);                            // 向显示器输出字符Y  
  putchar ('\n');                        // 向显示器输出一个换行符  
  return 0;
 }

【3.9】从键盘输入BOY3个字符,输出到屏幕

#include <stdio.h>
int  main ( )                
{ char a,b,c;                   // 定义字符变量a,b,c  
  a=getchar();                  // 从键盘输入一个字符,送给字符变量a  
  b=getchar();                  // 从键盘输入一个字符,送给字符变量b  
  c=getchar();                  // 从键盘输入一个字符,送给字符变量c  
  putchar(a);                   // 将变量a的值输出  
  putchar(b);                   // 将变量a的值输出   
  putchar(c);                   // 将变量a的值输出  
  putchar('\n');                // 换行  
  return 0;
 }

【3.10】从键盘输入一个大写字母,并且输出小写字母

#include <stdio.h>
int main ( )
{
  char c1,c2;
  c1=getchar();                   // 从键盘读入一个字符,赋给字符变量c1  
  c2=c1+32;                      // 得到字符'a'的ASCII代码,放在字符变量c2中         
  putchar(c2);                    // 输出c2的值,是一个字符  
  putchar('\n'); 
  return 0;
 }
 
输入:
B

输出:
b

二、习题


原文地址:https://blog.csdn.net/weixin_49345320/article/details/143011414

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!