第一题:
答案:
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入一个表示星期的数字:\n");
scanf("%d",&a);
if (0 <= a <= 6)
{
switch (a)
{
case 0: printf("Sunday\n"); break;
case 1: printf("Monday\n"); break;
case 2: printf("Tuesday\n"); break;
case 3: printf("Wednesday\n"); break;
case 4: printf("Thursday\n"); break;
case 5: printf("Friday\n"); break;
case 6: printf("Saturday\n"); break;
}
}
return 0;
}
知识点:switch语句的运用
一:switch的()里控制表达式必须是整数类型!
二:必须是case?1(case与1之间必须有空格),而不能是case1 !但:之前的空格可以省略,即可以case?1:也可以case 1? ?:
三:“case 1:”这样用来表示程序跳转的标识叫做标签,标签的值必须为常量,不可为变量,也不允许多个标签同为一个值
四:如果case语句后面没有接break,则会继续下一条标签的内容,不会直接跳出switch语句,如果case语句中都没有符合的,则会进入default后面的语句
第二题:
答案:
#include<stdio.h>
int main()
{
int a = 0, b = 0, c = 0; //按照题目要求边长数据类型为整值型
scanf("%d%d%d", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) //如果构成三角形
{
if (a == b && b == c) //为等边三角形
{
printf("3\n");
}
else if (a == b || a == c || b == c) //为等腰三角形
{
printf("2\n");
}
else //为一般三角形
{
printf("1\n");
}
}
else //不构成三角形
{
printf("0\n");
}
return 0;
}
知识点:if语句的嵌套
第三题:
答案:
#include<stdio.h>
int main()
{
double x = 0, y = 0; //因为题目没有说明,所以按照尽可能覆盖更多情况的原则,定义double类型(即定义为实数而并非整数)
scanf("%lf", &x);
if (x > 2 && x <= 10) //第一种情况
{
y = x * (x + 2);
printf("%lf\n", y);
}
else if (x > -1 && x <= 2) //第二种情况
{
y = 2 * x;
printf("%lf\n", y);
}
else if (x <= -1) //第三种情况
{
y = x - 1;
printf("%lf\n", y);
}
return 0;
}
知识点:分支语句if和else if
第四题:
答案:
#include<stdio.h>
int main()
{
int month = 0;
scanf("%d", &month);
if (month >= 1 && month <= 12) //输入正确的范围
{
switch (month)
{
case 1: printf("January\n"); break;
case 2: printf("February\n"); break;
case 3: printf("March\n"); break;
case 4: printf("April\n"); break;
case 5: printf("May\n"); break;
case 6: printf("June\n"); break;
case 7: printf("July\n"); break;
case 8: printf("August\n"); break;
case 9: printf("September\n"); break;
case 10: printf("October\n"); break;
case 11: printf("November\n"); break;
case 12: printf("December\n"); break;
}
}
return 0;
}
知识点:switch语句,同第一题
第五题:
答案一:
#include <stdio.h>
#include <ctype.h> //isalpha,issapce,isdigit三种内置函数的头文件
int main()
{
char c;
int letter = 0, space = 0, digit = 0, other = 0; //四种类型的计数器
printf("请输入一行字符:\n");
while ((c = getchar()) != '\n') //当遇见回车符时停止循环
{
if (isalpha(c)) //判断是否是字母
{
letter++;
}
else if (isspace(c)) //判断是否是空格
{
space++;
}
else if (isdigit(c)) //判断是否是数字
{
digit++;
}
else //如果不是上面三种类型,则是其他字符类型
{
other++;
}
}
printf("英文字母个数:%d\n", letter);
printf("空格个数:%d\n", space);
printf("数字个数:%d\n", digit);
printf("其他字符个数:%d\n", other);
return 0;
}
知识点:getchar的运用
关于getchar知识点的介绍可以点击链接看这一位博主的博客,写的真的很好,非常通俗易懂,本人自愧不如,写不出这样好的文章,就直接引用链接了,自己就不再多说了(就像李白看见崔颢的黄鹤楼诗一样,都得自叹不如一样hhh)
c语言的内置函数
isalpha:判断是否为字母(包括大小写),如果是字母,则返回Ture,否则返回False
issapce:判断是否为空白字符(空格,换行符,制表符等),如果是空白字符,则返回Ture,否则返回False
isdigit:判断是否为数字,如果是数字,则返回Ture,否则返回False
注:函数声明
int isalpha(int c)
里面的参数c是整型,但是不要以为字符这些就用不了这个函数哦!因为字符就是整数类型(字符对应的ASCII码值就是整数)!
答案二:
#include <stdio.h>
int main()
{
char c;
int letter = 0, space = 0, digit = 0, other = 0; //四种类型的计数器
printf("请输入一行字符:\n");
while ((c = getchar()) != '\n') //当遇见回车符时停止循环
{
if ((c>='A'&& c<='Z')||(c>='a'&& c<='z')) //判断是否是字母
{
letter++;
}
else if (c==' ') //判断是否是空格
{
space++;
}
else if (c>='0'&&c<='9') //判断是否是数字
{
digit++;
}
else //如果不是上面三种类型,则是其他字符类型
{
other++;
}
}
printf("英文字母个数:%d\n", letter);
printf("空格个数:%d\n", space);
printf("数字个数:%d\n", digit);
printf("其他字符个数:%d\n", other);
return 0;
}
不知道答案一的内置函数也没有关系,用简单的ASCII码值直接判断也完全可以!