C语言初阶必会的练习题(1)
提示:
可能我写的代码不是最优解,但是我都在用通俗的语言进行解释。
希望各位看官们 体谅!
(1)写一个函数求两个整数的较大值
如:
输入:10 20
输出较大值:20
- 直接上代码(里面的注释有具体的解释的)
//写一个函数 get_max 来判断 两个整数的 较大值
int get_max(int x, int y)
{
//方法1 条件操作符
//return (x > y ? x : y);
//方法2 运用 if 条件分支进行判断
if (x > y)
return x;
else
return y;
}
int main()
{
//分别定义两个变量,用来存储输入的两个整型数值
int a = 0;
int b = 0;
//定义一个整型变量,用来存储两个数值的最大值
int max = 0;
//输入两个数值
scanf("%d %d", &a, &b);
//调用函数,并用变量 max接受
max = get_max(a, b);
//输出打印 max 的值
printf("max = %d\n", max);
return 0;
}
- 输出结果
(2)从键盘输入的两个数的大小关系,请编程实现。
//输入描述:
//题目有多组输入数据,每一行输入两个整数,用空格分隔。
//输出描述:
//针对每行输入,输出两个整数及其大小关系,数字和关系运算符之间没有空格,详见输入输出样例。
// 示例1
// 1 1
// 1=1
- 直接上代码(里面的注释有具体的解释的)
int main() {
//分别定义两个变量,用来存储输入的两个整型数值
int a = 0;
int b = 0;
//循环多次输入两个数值
//scanf("%d %d", &a, &b) == 2
//这里解释一下 上面的这一行代码
//因为 scanf 函数 返回值是 读取到个数
//即读到多少个数或者其他字符,就返回读取到的个数
//如果没有读取到,或者发生了读取异常
//则scanf的返回值是 EOF(end of file)
//
while (scanf("%d %d", &a, &b) == 2)
{
//进行 比较判断
if (a > b)
{
printf("%d>%d\n", a, b);
}
else if (a < b)
{
printf("%d<%d\n", a, b);
}
else
{
printf("%d=%d\n", a, b);
}
}
return 0;
}
- 输出结果
(3)KiKi想知道一个整数的奇偶性,请帮他判断。从键盘任意输入一个整数,编程判断它的奇偶性。
// 输入描述:
// 多组输入,每行输入包括一个整数。
// 输出描述:
// 针对每行输入,输出该数是奇数(Odd)还是偶数(Even)。
// 示例1
// 输入:
// 4
// 7
// 输出
// Even
// Odd
- 直接上代码(里面的注释有具体的解释的)
int main()
{
//定义一个整型变量,用来接受等下输入的数值
int n = 0;
//多组输入,并进行判断奇偶性
while (scanf("%d", &n) != EOF)
{
// if 双分支进行判断
// % 是取余操作符,
//即是整型数字 整除 另一个整型数 的余数
// == 是判断两个数值 是否相等
if (n % 2 == 0)
{
printf("Even\n");
}
else
{
printf("Odd\n");
}
}
}
- 输出结果
(4)输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。
//输入描述:
//五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。
//输出描述:
//五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。
//示例1
//输入:
// 98.5 96.0 100 99 88
// 60.5 77 88.5 99 60
// 80 80.5 89 91 92
// 93 94 95.5 96 97.5
// 100 98 88.5 88 78.5
//
//输出:
// 98.5 96.0 100.0 99.0 88.0 481.5
// 60.5 77.0 88.5 99.0 60.0 385.0
// 80.0 80.5 89.0 91.0 92.0 432.5
// 93.0 94.0 95.5 96.0 97.5 476.0
// 100.0 98.0 88.5 88.0 78.5 453.0
- 直接上代码(里面的注释有具体的解释的)
int main()
{
//定义一个浮点型的二维数组,
//用来存放五名同学的 5科成绩及总分
double score[5][6] = { 0.0 };
//定义迭代变量 i j,并进行初始化
int i = 0;
int j = 0;
//外层循环,五个学生
for (i = 0; i < 5; i++)
{
//定义一个浮点型变量,
//用来存储 总分
double sum = 0.0;
//内层循环,输入5科成绩
for (j = 0; j < 5; j++)
{
scanf("%lf", &score[i][j]);
sum += score[i][j];
}
//将sum成绩 存放在数组的最后一个
score[i][5] = sum;
}
//打印=======================================
//将输入和输出分隔开
printf("=======================================\n");
//循环输出
for (i = 0; i < 5; i++)
{
//最后,输出打印5科成绩及累加总分
for (j = 0; j < 6; j++)
{
// %.1lf 是双精度浮点数的格式,
//并小数点后 只保留一位数字
printf("%.1lf ", score[i][j]);
}
//换行操作,
//即每打印一位同学的5科成绩就进行 换行操作
printf("\n");
}
return 0;
}
- 输出结果