一、实验目的
1.了解 C 语言表示逻辑量的方法(以 0 代表“假”,以非 0 代表“真”)。
2.学会正确使用逻辑运算符和逻辑表达。
3.熟练掌握 if 语句和 switch 语句.
4.学习调试程序。
二、实验学时
4 学时
三、实验内容
1.编写程序,任意输入一整数,判断它是否是 3 的倍数或 7 的倍数,并给出说明,
如 42=3×14=7×6,应输出为 3 times 14 is 42,或 42 is 14 times 3。
2.有一分段函数:
编写程序,输入 x 的值求 y 值,并检查输出的 y 值是否正确。
3.输入两个字符,若这两个字符的 ASCII 码之差为偶数,则输出它们的后继字符,
否则输出它们的前驱字符。如输入′f′和′h′,它们的 ASCII 码之差为 2,则
输出′g′和′i′。
4.输入某个点 A 的平面坐标(x,y),判断并输出 A 点是否在圆内、圆外还是在
圆周上,圆心坐标为(-1,3),半径为 1.5。
5.输入一年份和月份,输出这一年该月的天数。
提示:输入一年份,先判断是否是闰年。闰年的条件是:能被 4 整除,
但不能被 100 整除,或者能被 4 整除,又能被 400 整除。
6.输入一个不多于 5 位的正整数,要求:
① 求出它是几位数;
② 分别输出每一位数字;
③ 按逆序输出各位数字,例如原数为 123,应输出 321。
提示:应分别测试 1、2、3、4、5 位数的整数,并且在程序中还应当对不合法的
输入做必要的处理,例如输入的数为负数,输入的数超过 5 位。
程序代码如下:
1.
#include
int main()
{
int a,b;
printf("输入一整数:");
scanf("%d",&a);
if(a%3==0&&a%7!=0)
{
b = a/3;
printf("%d is %d times 3\n",a,b);
}
else if(a%7==0&&a%3!=0)
{
b = a/7;
printf("%d is %d times 7\n",a,b);
}
else if(a%7==0&&a%3==0)
{
printf("输入的既是3的倍数也是7的倍数");
}
else
{
printf("输入的既不是3的倍数也不是7的倍数");
}
return 0;
}
#include
int main()
{
int x,y;
printf("输入x:");
scanf("%d",&x);
if(x>=50&&x<=100)
{
y=(2*x*x)+3;
printf("y=%d\n",y);
}
else if(x>=32&&x<=50)
{
y=x+2;
printf("y=%d\n",y);
}
else if(x>=0&&x<=32)
{
y=x;
printf("y=%d\n",y);
}
else
{
printf("输入x不在定义域内");
}
return 0;
}
#include
int main()
{
char c1,c2,a;
printf("输入两个字符:");
c1 = getchar();
c2 = getchar();
a = c1-c2;
if(a%2==0)
{
c1 = c1 +1;
c2 = c2 +1;
printf("%c,%c",c1,c2);
}
else
{
c1=c1-1;
c2=c2-1;
printf("%c,%c",c1,c2);
}
return 0;
}
#include
#include
int main()
{
int x,y,s;
float r;
printf("输入一个坐标x,y:");
scanf("%d,%d",&x,&y);
r = 2.25;
s = (x+1)*(x+1)+(y-3)*(y-3);
if(s<r)
{
printf("A点在圆内");
}
if(s==r)
{
printf("A点在圆周上");
}
if(s>r)
{
printf("A点在圆外");
}
return 0;
}
#include
int main()
{
int year,month;
printf("输入year,month:");
scanf("%d,%d",&year,&month);
if(month==2)
{
if(year%4==0&&year%100!=0||year%400==0)
printf("29天");
else
printf("28天");
}
else if(month==1||3||5||7||8||10||12)
printf("31天");
else if(month==4||6||9||11)
printf("30天");
else
printf("输入无效");
return 0;
}
#include
int main()
{
int n;
int a,b,c,d,e;
printf("输入一个不多于5位的正整数:");
scanf("%d",&n);
while(n<0||n>=100000)
{
printf("输入无效,请重新输入n:");
scanf("%d",&n);
}
a=n/10000;
b=n%10000/1000;
c=n%1000/100;
d=n%100/10;
e=n%10;
if(a!=0)
{
printf("5位数\n");
printf("每一位:%d %d %d %d %d\n",a,b,c,d,e);
printf("逆序:%d%d%d%d%d\n",e,d,c,b,a);
}
else if(b!=0)
{
printf("4位数\n");
printf("每一位:%d %d %d %d\n",b,c,d,e);
printf("逆序:%d%d%d%d\n",e,d,c,b);
}
else if(c!=0)
{
printf("3位数\n");
printf("每一位:%d %d %d\n",c,d,e);
printf("逆序:%d%d%d\n",e,d,c);
}
else if(d!=0)
{
printf("2位数\n");
printf("每一位:%d %d\n",d,e);
printf("逆序:%d%d\n",e,d);
}
else if(e!=0)
{
printf("1位数\n");
printf("每一位:%d\n",e);
printf("逆序:%d\n",e);
}
return 0;
}