小知识点:
- C语言的工作过程是编辑、编译、连接、运行
- C程序的三种基本结构是顺序、选择、循环
- C语言本身没有输入输出语句
- 在微机不同的编译器上,int型、short型、long型、float型和double型数据在内存中所占的字节数不同
编程题:
1.从键盘接收两个int型数,分别调用jia,jian,cheng,chu四个函数进行加,减,乘,除运算,将结果返回给主函数并打印出来。(要求调用四个函数,如果写在一个main函数不算分)(注意:除法可能出现小数情况)
#include <stdio.h>
int jia(int v,int w) //定义“加”函数
{
int all;
all = v + w;
return all;
}
int jian(int v,int w) //定义“减”函数
{
int all;
all = v - w;
return all;
}
int cheng(int v,int w) //定义“乘”函数
{
int all;
all = v * w;
return all;
}
float chu(int v,int w) //定义“除”函数
{
float all; //注意商为小数的情况,应定义为float型,而非int型
if(w == 0) //注意讨论分母是否为零的情况
return 0;
else
all = v / (w * 1.0);
return all;
}
void main()
{
int x,y;
int a,b,c;
float d;
printf("请输入两个数:");
scanf("%d %d",&x,&y);
a = jia(x,y);
printf("%d\n",a);
b = jian(x,y);
printf("%d\n",b);
c = cheng(x,y);
printf("%d\n",c);
d = chu(x,y);
if(y == 0) //若分母为零,输出error
printf("error");
else //反之输出商
printf("%f\n",d);
}
简练写法:
#include <stdio.h>
int jia(int v,int w) //定义“加”函数
{
return v + w;
}
int jian(int v,int w) //定义“减”函数
{
return v - w;
}
int cheng(int v,int w) //定义“乘”函数
{
return v * w;
}
float chu(int v,int w) //定义“除”函数
{
return v / (w * 1.0);
}
int main()
{
int x,y;
float d;
printf("请输入两个数:");
scanf("%d %d",&x,&y);
printf("%d\n",jia(x,y));
printf("%d\n",jian(x,y));
printf("%d\n",cheng(x,y));
if(y == 0) //同样考虑除法的分母是否为零
printf("error\n");
else //不为零,输出商
printf("%.2f\n",chu(x,y));
return 0;
}
2.已知数组声明为”int a[10] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90};”, 10个数组元素是按升序排列的。输入一个整数n, 如果没有与n相等的数组元素, 输出 - 1; 否则, 删除与n相等的数组元素,要求剩余的九个数组元素是按升序排列的, 输出数组。
#include <stdio.h>
int main()
{
int i,j,n;
int flag = 0;
int a[10] = {0,10,20,30,40,50,60,70,80,90};
printf("Input an number");
scanf("%d",&n);
for(i = 0;i < 10;i++) //循环,查找数组中是否有要查找的数字
{
if(a[i] == n)
{
flag = 1;
j = i;
break;
}
}
if(f == 1) //若flag == 1,说明在数组中找到了相同元素
{
for(i = j;i < 10;i++) //循环,实现将相同元素后面的元素赋给前一个元素
{
a[i] = a[i + 1];
}
for(i = 0;i < 9;i++) //再次循环,输出调整过后的数组
{
printf("%4d",a[i]);
}
}
else //若flag != 1说明没找到相同元素,输出-1
{
printf("-1");
}
printf("\n");
return 0;
}
3.编写函数float fun(),利用do -while循环,用简单迭代方法求方程一个实根。
cos(x)-x=0
迭代步骤如下:
(1)取 x1 初值为0.0;
(2)x0 = x1,把x1的值赋给 x0;
(3)x1 = cos(x0),求出一个新的x1;
(4)若x0 - x1的绝对值小于 0.000001,执行步骤(5),否则执行步骤(2);
(5)所求x1就是方程 cos(x)-x=0 的一个实根,作为函数值返回给主函数并输出。
程序将输出结果Root=0.739085。
#include <stdio.h>
#include <math.h>
float fun()
{
float x1 = 0.0,x0;
do
{
x0 = x1;
x1 = cos(x0);
}while(fabs(x0 - x1) >= 0.000001);
return x1;
}
int main()
{
printf("root = %f\n",fun());
return 0;
}