初学C语言,课后作业记录
介绍
- 本文主要内容是用C语言判断奇偶数、验证卡拉兹(Callatz)猜想、编程实现分段函数、实现大小写字母转换并且输出顺延三位的字母。
- 本文是作者学习C语言的记录,初学上路,误撞勿怪。
- 本文所有代码均已成功运行,如有错误,可能是编辑本文时误操作所致。
- 本文所有代码仅为完成任务,漏洞颇多,输入数据时请规范输入。
1、输入一个正整数,判断该数是奇数还是偶数。
代码如下:
#include <stdio.h>
int main()
{
int a;//定义a的数据类型
printf("请输入一个正整数:\n");//输入前提示
scanf("%d",&a);//输入赋值给a
if(a%2==0)//当a除于2的余数等0时(即为偶数),执行下面语句
{
printf("%d是偶数\n",a); //输出结果
}
else//当a除于2的余数不等于0时(即为奇数),执行下面输出
{
printf("%d是奇数\n",a);//输出结果
}
return 0;
}
运行结果:
2、输入一个正整数,对该数进行如下循环处理:如该数为偶数,则除以2;如为奇数,则乘以3再加1,如此循环下去,验证最后得到的结果是1。
代码如下:
#include <stdio.h>
int main()
{
int a;//定义变量类型
printf("请输入一个正整数来验证卡拉兹猜想:\n");//输入提示
scanf("%d",&a);//输入赋值给a
while(a != 1)//当a不等于1时执行以下循环
{
if(a%2 == 0)//当a是偶数时执行以下语句
{
a = a/2;//a除于2并赋值给a
printf("%d ",a);//输出a
}
else//当a不是偶数时(a是奇数)执行以下语句
{
a = 3*a + 1;//a乘3再加1
printf("%d ",a);//输出a
}
}
return 0;
}
运行结果:
3、编程实现分段函数。
y
=
{
x
(
x
<
1
)
2
x
−
1
(
1
≤
x
<
10
)
3
x
+
1
(
x
≥
10
)
y=\begin{cases} x & (x<1) \\ 2x-1 & (1≤x<10) \\ 3x+1 & (x≥10) \end{cases}
y=⎩
⎨
⎧x2x−13x+1(x<1)(1≤x<10)(x≥10)
要求输入x的值,输出y的值。
代码如下:
#include <stdio.h>
int main()
{
float x,y;//定于x,y数据类型
printf("请输入x:\n");//输入提示
scanf("%f",&x);//输入赋值给x
if(x<1)//判断x的值,当x小于1时执行以下语句
{
y = x;//当x小于1时对应函数
printf("x<1,则\n");//输出提示
printf("y=x=%.2f",y);//输出结果
}
if(x>=1&&x<10)//当x大于等于1小于10时执行以下语句
{
y = 2*x-1;//对应函数计算
printf("x>=1&&x<10,则\n");//输出提示
printf("y=2*x-1=%.2f",y);//输出结果
}
if(x>=10)//当x大于等于10时执行以下语句
{
y = 3*x+1;//对应函数计算
printf("x>=10,则\n");//输出提示
printf("y=3*x+1=%.2f",y);//输出结果
}
return 0;
}
运行结果:
4、屏幕上输入一个字母,如果是小写字母则转换为相应的大写字母,如果是大写字母则转换为相应的小写字母。并将该字母顺序后延3个字符的结果输出(x->a,y->b,z->c; X->A,Y->B,Z->C)。
这个主要是通过ASCII代码实现。
代码如下:
#include <stdio.h>
int main()
{
char a;//定义a的变量类型
printf("请输入一个字母:\n");//输入提示
scanf("%c",&a);//输入赋值给a
if(a>=97&&a<=122)//判定输入a的ASCII代码范围,这个指定是小写字母
{
printf("%c的大写是%c\n",a,a-32);//输出a的大写
}
else if(a>=65&&a<=90)//判定输入a的ASCII代码范围,这个指定是大写字母
{
printf("%c的小写是%c\n",a,a+32);//输出a的小写
}
else//输入字符不是字母时执行以下语句
{
printf("你输入了一个错误的字符!\n");//打印输错提示
}
if(a>=65&&a<=87||a>=97&&a<=119)//当输入是一般字母时正常处理
{
printf("后延三位%c->%c\n",a,a+3);//输出后延三位的字母
}
else if (a>=88&&a<=90||a>=120&&a<=122)//当输入是X,Y,Z或x,y,z时特殊处理
{
printf("后延三位%c->%c\n",a,a-23);//输出后延三位的字母
}
return 0;
}
运行结果: