《算法笔记》2.2小节——C/C++快速入门->顺序结构

问题 A: 例题1-1-1 按要求输出信息(1)

题目

题目描述

编写一个C程序,要求在屏幕上输出一下一行信息。

1
This is my first c program!

输入

输出

1
This is my first c program!

样例输入

1

样例输出

1
This is my first c program!

题解

思路

没什么好说的,直接干就完了,这种题目要是也不会,我就得重新学 C 了。注意不要理解错题目,还以为是输入This is my first c program!然后再输出......审题很重要。

代码

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("This is my first c program!\n");

system("pause");
return 0;
}

问题 B: 例题1-1-2 按要求输出信息(2)

题目

题目描述

编写一个C语言程序,输出以下信息:

1
2
3
4
5
6

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

Very Good!

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

输入

输出

1
2
3
4
5
********************

Very Good!

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

样例输入

1

样例输出

1
2
3
******************** 
Very Good!
********************

题解

思路

没什么好说的。

代码

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("********************\nVery Good!\n********************\n");

system("pause");
return 0;
}

问题 C: 例题1-2-1 求两个整数之和(1)

题目

题目描述

设置 3 个变量absum,其中ab用来存放两个整数,sum用来存放ab两个数的和,通过赋值(即采用赋值运算符"=")的方式将a初始化为 123,b初始化为 456,并把两个变量相加的结果赋值给 sum。

输入

无,变量在程序中以赋值的方式给定初值。

输出

sum=结果

样例输入

1

样例输出

1
sum=579

题解

思路

没什么好说的。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>

int main()
{
int a = 123;
int b = 456;
int sum = a + b;
printf("sum=%d\n", sum);

system("pause");
return 0;
}

问题 D: 例题1-2-2 求两整数数之和(2)

题目

题目描述

从键盘上输入两个整数,并输出这两个数的和,即你的任务是计算a+b

输入

输入空格分隔的两个整数

输出

对于用空格分隔的两个整数,求其和。

样例输入

1
5 6

样例输出

1
11

题解

思路

没什么好说的。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>

int main()
{
int a, b;

scanf("%d %d", &a, &b);

printf("%d\n", a + b);

system("pause");
return 0;
}

问题 E: 例题3-5 求一元二次方程的根

题目

题目描述

求一元二次方程 \(ax^2+bx+c=0\) 的根,三个系数a, b, c由键盘输入,且a不能为 0,且保证 \(b^2-4ac>0\)

程序中所涉及的变量均为double类型。

输入

以空格分隔的一元二次方程的三个系数,双精度double类型

输出

分行输出两个根如下(注意末尾的换行):

\(r_1\)=第一个根

\(r_2\)=第二个根

结果输出时,宽度占7位,其中小数部分2位。

样例输入

1
1 3 2

样例输出

1
2
r1=  -1.00
r2= -2.00

题解

思路

求根公式: \[ x=\frac{-b±\sqrt{b^2-4ac}}{2a} \] 格式控制小技巧:

1
printf("%n.mf");
  • n 表示输出共占几列;
  • m 表示小数位数占几列;
  • 因此 n - m 表示整数位数占几列。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
double a, b, c;
scanf("%lf %lf %lf", &a, &b, &c);

printf("r1=%7.2f\nr2=%7.2f\n", (-b + sqrt(b * b - 4 * a * c)) / 2.0 * a, (-b - sqrt(b * b - 4 * a * c)) / 2.0 * a);

system("pause");
return 0;
}

问题 F: 例题3-9 字符输入输出

题目

题目描述

从键盘输入三个字符BOY,然后把他们输出到屏幕上

输入

BOY三个字符,中间无分隔符

输出

BOY,注意末尾的换行

样例输入

1
BOY

样例输出

1
BOY

题解

思路

没什么好说的,读取即可。注意不要多此一举,如果最后再输出一个空行就错了。

代码

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>

int main()
{
char c[3];
scanf("%s", c);
printf("%s", c);

system("pause");
return 0;
}

《算法笔记》2.2小节——C/C++快速入门->顺序结构
https://excelius.xyz/《算法笔记》2-2小节——c-c-快速入门-顺序结构/
作者
Ther
发布于
2021年10月26日
许可协议