第一次作业
1.安装VS编译器,创建工程,添加cpp文件,在其中输入例1.1代码,并运行(上机实践,不需要提交纸质版)
2.新建工程,运行例1.3代码(上机实践,不需要提交纸质版)
3.写出解决下列问题的算法,并画出PAD图
a)有两个瓶子A和B分别装有酱油和醋,设计一个算法,将A和B中的盛装物互换
b)设计算法,求N个整数的平均值
c)求两个数m和n的最大公约数
4.一块矩形场地被等宽的绿化带包围。已知
绿化带外围矩形的长和宽(单位:米)以及绿化带内矩形场地的面积(单位:平方米),求绿化带的宽度 (单位:米)
写出算法,并画出PAD图
长300米
宽500米
绿化带宽度x米
绿化带内矩形场地的面积80000米
#include "stdio.h"
#include "math.h"
#define length 500 // 地块长
#define width 300 // 地块宽
#define area 80000 // 地块面积
void main(){
float x1,x2,b,d;
b= -2.0*(length+width); // 计算b
d=sqrt(b*b - 4.0*4.0*(length*width - area)); // 计算△
x1=(-b+d)/(2*4); // 求根
x2=(-b-d)/(2*4);
printf(" x1=%.2f\n x2=%.2f \n",x1,x2); //输出
}
第二次作业
1.编写程序,输入两个整数,分别计算它们的和,差,积,商,余。并输出。
#include "stdio.h"
int main(){
int num1,num2,a,b,c,e;
float d;
printf("输入两个整数:");
scanf("%d%d",&num1,&num2);
if(num2 == 0){
a=num1+num2;
b=num1-num2;
c=num1*num2;
printf("和%d,差%d,积%d",a,b,c);
}else{
a=num1+num2;
b=num1-num2;
c=num1*num2;
d=1.0*num1/num2;
e=num1%num2;
printf("和%d,差%d,积%d,商%f,余数%d",a,b,c,d,e);
}
return 0;
}
2.编写程序,交换两个整数A和B的值,要求:不用中间变量。
#include<stdio.h>
int main(){
int a = 10 , b = 20;
a = b+a;
b = a - b;
a = a - b;
printf("a = %d b = %d\n",a,b);
return 0;
}
3.从空间一点(x0,y0,z0)到平面Ax+By+Cz+D=0的距离d的计算公式是:
d=|Ax_0+By_0+Cz_0+D|/√(A2+B2+C^2 )
编写程序,定义平面方程系数A,B,C,D为常量,空间任一点P的坐标(x0,y0,z0)由用户输入,计算并输出d。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define A 10
#define B 20
#define C 30
#define D 40
int main()
{
double d;
double x0,y0,z0;
printf("请输入坐标:");
scanf("%f%f%f",&x0,&y0,&z0);
d = abs(A*x0+B*y0+C*z0+D)/sqrt(A*A + B*B + C*C);
printf("%lf",d);
return 0;
}
第三次作业
1.有一个函数:
y=x(x<1)
y=2x-1(1≤x<10)
y=3x-11(x≥10)
编写程序,输入x的值,输出y的值
#include<stdio.h>
int main(){
float x,y;
printf("请输入x:");
scanf("%f",&x);
if(x<1){
y = x;
}else if(x<10){
y = 2*x -1;
}else{
y = 3*x-11;
}
printf("函数值为:%f",y);
return 0;
}
2.编写程序,输入一个字母,若其为小写字母,
将其转换成相应的大写字母,并输出
#include<stdio.h>
int main(){
char c;
do{
printf("请输入一个字母:");
c = getchar();
setbuf(stdin, NULL);
if((c>='A'&&c<='Z') || (c>='a'&&c<='z'))
break;
else
printf("输入有误,请重新输入。\n");
}while(1);
if(c>='a'&&c<='z')
c -= 32;
printf("输入的字符:%c",c);
return 0;
}
3.编写程序,输入个5位 自然数n,判断n是
否是对称数。对称数是指正序和反序读都相等的整数。比如:12321
#include<stdio.h>
#include<stdbool.h>
int main(){
int num;
bool isSym = true;
do{
printf("请输入一个五位数:");
scanf("%d",&num);
setbuf(stdin, NULL);
if(num>9999&&num<100000)
break;
else
printf("输入有误,请重新输入。\n");
}while(1);
for(int m = 10000;num>9;m/=100)
if(num/m != num%10){
isSym = false;
break;
}else{
num = num - m*num/m;
num /= 10;
}
if(isSym)
printf("输入的数是对称数!\n");
else
printf("输入的不是对称数!\n");
return 0;
}
4.输入百分制成绩,输出成绩等级,如: A、B、C、D、E,每10分为一个等级。
#include<stdio.h>
int main(){
int score;
char grade;
do{
printf("请输入你的成绩:");
scanf("%d",&score);
if(score>=0&&score<=100)
break;
printf("您的输入有误!\n");
}while(1);
score /= 10;
switch(score)
{
case 10:
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'E';
break;
}
printf("您的成绩等级为:%c\n",grade);
return 0;
}
5.输入一个整数,判断其是否能被3、5、7同时整除,或者只能被其中哪几个数整除
#include<stdio.h>
int main(){
int num;
scanf("%d",&num);
if(num%3==0)
if(num%5==0)
if(num%7==0)
printf("该数能被3、5、7同时整除!\n");
else
printf("该数只能被3、5整除!\n");
else
if(num%7==0)
printf("该数只能被3、7整除!\n");
else
printf("该数只能被3整除!\n");
else
if(num%5==0)
if(num%7==0)
printf("该数只能被5、7整除!\n");
else
printf("该数只能被5整除!\n");
else
if(num%7==0)
printf("该数只能被7整除!\n");