1.什么是算术运算?什么是关系运算?什么是逻辑运算?
答:1.算术运算就是指加减乘除和整数的模运算(即取余数运算)。
2.关系运算就是比较运算,将两个数值进行比较,判断其比较结果是否符合给定的条件。
3.逻辑运算指两个条件进行运算,有逻辑与、逻辑或、逻辑非三种。
2.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
答:C语言中用“0”表示“假”,“1”表示“真”;
“0”即为假,“非0”为真;
3.写出下面逻辑表达式的值。设a=3,b=4,c=5。
(1)0
(2)1
(3)1
(4)0
(5)1
4.有三个整数a,b,c,由键盘输入,输出其中最大的值。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>//a,b,c 输出最大值
int main()
{
int a, b, c, max;
scanf("%d%d%d",&a,&b,&c);
max = a;
if (b > max)
max = b;
else if (c > max)
max = c;
printf("max is %d\n",max);
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>//a,b,c 输出最大值
int main()
{
int a, b, c, temp,max;
printf("请输入三个数:");
scanf("%d%d%d",&a,&b,&c);
temp = (a > b) ? a : b;
max = (temp > c) ? temp : c;
printf("3个数中的最大数是%d\n",max);
return 0;
}
5.从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据之后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#define M 1000
int main()
{
int i, k;
printf("请输入一个小于%d的正数i:",M);
scanf("%d",&i);
while (i > M)
{
printf("输入的数不符合要求,请重新输入一个小于%d的正数i:", M);
scanf("%d",&i);
k = sqrt(i);
}
printf("%d的平方根的整数部分是%d\n",i,k);
return 0;
}
6.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int x, y;
printf("enter data:\n");
scanf("%d", &x);
if (x < 1)
{
y = x;
}
else
{
if (1 <=x < 10)
{
y = 2 * x - 1;
}
else
y = 3 * x - 11;
}
printf("输出值是%d", y);
return 0;
}
7. 略过
8.给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
float score;
char grade;
printf("请输入学生成绩:");
scanf("%f", &score);
while (score > 100 || score < 10)
{
printf("\n输入有误,请重新输入");
scanf("%f", &score);
}
switch ((int)(score / 10))
{
case 10:
case 9: grade = 'A'; break;
case 8: grade = 'B'; break;
case 7: grade = 'C'; break;
case 6: grade = 'D'; break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: grade = 'E'; break;
}
printf("成绩是%5.1f,相应的等级是%c\n", score, grade);
return 0;
}
9.略
10.(1)if语句编写程序
(2)switch语句编写程序
(1)#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i;
double bonus, bon1, bon2, bon4, bon6, bon10;
bon1 = 100000 * 0.1;
bon2 = bon1 + 100000 * 0.075;
bon4 = bon2 + 100000 * 0.05;
bon6 = bon4 + 100000 * 0.03;
bon10 = bon6 + 400000 * 0.015;
printf("请输入利润i:\n");
scanf("%d",&i);
if (i <= 100000)
bonus = i * 0.1;
else if (i <= 200000)
bonus = bon1 + (i - 100000) * 0.075;
else if (i <= 400000)
bonus = bon2 + (i - 200000) * 0.05;
else if (i <= 600000)
bonus = bon4 + (i - 400000) * 0.03;
else if (i <= 1000000)
bonus = bon6 + (i - 600000) * 0.015;
else
bonus = bon10 + (i - 1000000) * 0.01;
printf("奖金是:%10.2f\n", bonus);
return 0;
}
(2)#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i;
double bonus, bon1, bon2, bon4, bon6, bon10;
int branch;
bon1 = 100000 * 0.1;
bon2 = bon1 + 100000 * 0.075;
bon4 = bon2 + 100000 * 0.05;
bon6 = bon4 + 100000 * 0.03;
bon10 = bon6 + 400000 * 0.015;
printf("请输入利润i:\n");
scanf("%d",&i);
branch = i / 100000;
if (branch > 10) branch = 10;
switch (branch)
{
case 0:bonus = i * 0.1; break;
case 1:bonus = bon1 + (i - 100000) * 0.075; break;
case 2:
case 3:bonus = bon2 + (i - 200000) * 0.05; break;
case 4:
case 5:bonus = bon4 + (i - 400000) * 0.03; break;
case 6:
case 7:
case 8:
case 9:bonus = bon6 + (i - 600000) * 0.015; break;
case 10:bonus = bon10 + (i - 1000000) * 0.01; break;
}
printf("奖金是%10.2f\n", bonus);
return 0;
}
11.输入四个数,要求按由大到小的顺序输出。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a, b, c, d, t;
printf("请输入四个数:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
if (a > b)
{
t = a; a = b; b = t;
}
if (a > c)
{
t = a; a = c; c = t;
}
if (a > d)
{
t = a; a = d; d = t;
}
if (b > c)
{
t = b; b = c; c = t;
}
if (b > d)
{
t = b; b = d; d = t;
}
if (c > d)
{
t = c; c = d; d = t;
}
printf("排列结果如下:\n");
printf("%d %d %d %d ", a, b, c, d);
return 0;
}
12.
#include<stdio.h>
int main()
{
int h = 10;
float x1 = 2, y1 = 2, x2 = -2, y2 = 2, x3 = -2, y3 = -2, x4 = 2, y4 = -2, x, y, d1, d2, d3, d4;
printf("请输入一个点(x,y):");
scanf_s("%f,%f", &x, &y);
d1 = (x - x4) * (x - x4) + (y - y4) * (y - y4);
d2 = (x - x1) * (x - x1) + (y - y1) * (y - y1);
d3 = (x - x2) * (x - x2) + (y - y2) * (y - y2);
d4 = (x - x3) * (x - x3) + (y - y3) * (y - y3);
if (d1 > 1 && d2 > 1 && d3 > 1 && d4 > 1)
h = 0;
printf("该点最高度为%d\n", h);
return 0;
}