C语言基础代码练习题(7个)
1.运行环境
pc计算机
ubuntu18.04版本linux系统
VMware虚拟机
VScode
GCC编译器
2.题目:
(1)使用if-else嵌套结构实现学生等级练习
源代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int score;
printf("请输入学生成绩:");
scanf("%d", &score);
if (score >= 0 && score <= 100) //0-100
{
if (score >= 90) //90-100
printf("A\n");
else if (score >= 80) //80-89
printf("B\n");
else if (score >= 70) //70-79
printf("C\n");
else if (score >= 60) //60-69
printf("D\n");
else
printf("sorry, you lost!\n"); //0-59
}
else
printf("输入错误!\n");
return 0;
}
运行结果:
(2)使用switch-case结构实现学生等级练习
源代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int score;
scanf("%d", &score);
if (score >= 0 && score <= 100)
{
switch (score / 10)
{
case 10:
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default:
printf("sorry, you lost!\n");
break;
}
}
else
printf("输入错误!\n");
return 0;
}
运行结果:
(3)实现大小写转换(用getchar、putchar实现)
输入大写字母输出小写字母,
输入小写字母输出大写字母,
输入的不是字母,提示输入错误。
源代码
#include <stdio.h>
int main(int argc, char const *argv[])
{
int num = getchar();
if (num >= 'a' && num <= 'z')
{
putchar(num - 32);
putchar(10);
}
else if (num >= 'A' && num <= 'Z')
{
putchar(num + 32);
putchar(10);
}
else
{
printf("输入错误\n");
}
return 0;
}
运行结果:
(4)从终端输入一个日期scanf ("%d %d %d ", &year , &mon , &day ),判断这是这一年的第几天
(提示:判断闰年还是平年,闰年且闰年二月份以上比平年多一天。普通年份除以4,有余数是平年,对于整百的年份,比如2100年,要除以400,有余数就是平年,整除就是闰年。)
源代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int year, mon, day, days = 0, flag;
scanf("%d %d %d", &year, &mon, &day);
if (year % 100 == 0) // 整百年
{
if (year % 400 == 0) // 闰年
flag = 1;
else // 平年
flag = 0;
}
else // 非整百年
{
if (year % 4 == 0) // 闰年
flag = 1;
else // 平年
flag = 0;
}
switch (mon)
{
case 12:
days += 30;
case 11:
days += 31;
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
days += 28 + flag;
case 2:
days += 31;
case 1:
days += day;
break;
default:
printf("err!\n");
break;
}
printf("%04d-%02d-%02d: 是这一年的第%d天\n", year, mon, day, days);
return 0;
}
运行结果:
(5)用for循环打印99乘法表
源代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
printf("%d*%d=%d ", j, i, i * j);
printf("\n");
}
return 0;
}
运行结果:
(6)打印以下图案(星星三角):
要求行数从终端输入。
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = 0;
printf("请输入行数:");
scanf("%d", &a);
for (int i = 1; i <= a; i++)
{
for (int j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
(7)打印以下图案(星星菱形)
要求行数从终端输入。
源代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = 0;
printf("请输入行数:");
scanf("%d", &a);
for (int i = 1; i <= a; i++)
{
for (int j = 1; j <= i; j++)
{
printf("*");
}
printf("\n");
}
for (int i = 1; i <= a; i++)
{
//方法1:
// for (int k = 1; k <= i - 1; k++)
// {
// printf(" ");
// }
// for (int j = 1; j <= a + 1 - i; j++)
// {
// printf("*");
// }
//方法2:
for (int k = 1; k < i; k++)
{
printf(" ");
}
for (int j = a; j >= i; j--)
{
printf("*");
}
printf("\n");
}
return 0;
}
运行结果: