新编C语言程序设计教程 机械工业出版社 钱雪忠 吕莹楠文档格式.docx
- 文档编号:17324510
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:30
- 大小:32.36KB
新编C语言程序设计教程 机械工业出版社 钱雪忠 吕莹楠文档格式.docx
《新编C语言程序设计教程 机械工业出版社 钱雪忠 吕莹楠文档格式.docx》由会员分享,可在线阅读,更多相关《新编C语言程序设计教程 机械工业出版社 钱雪忠 吕莹楠文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
1)有穷性
人们编制算法的目的就是要解决问题,若该算法无法在一个有限合理的时间内完成问题的求解,那么算法也就失去了其原有的目的,人们就会摒弃它。
而且人们研究算法,其目的还在于它的高效率,即解决同一个问题的两个算法,人们往往选择其中那个运行效率高的。
2)确定性
所谓算法的确定性是指算法的每一个步骤都应该确切无误,没有歧义性。
3)有零个或多个输入
执行算法时,有时需要外界提供某些数据,帮助算法的执行。
一个算法可以没有输入,也可以有多个输入。
例如,求解N!
,该算法就需要输入一个数据N;
而求解两数之和,该算法就需要输入两个数据
4)有一个或多个输出
算法的目的是求解,解就是结果,就是输出,否则就毫无意义。
5)有效性
算法中的每一步都应该能有效地执行、可以实现,执行算法最后应该能得到确定的结果。
2、结构化程序设计的三种基本结构是什么其共同特点是什么
结构化程序设计的三种基本结构:
顺序、选择、循环三种基本控制结构
其共同特点:
1)只有单一的入口和单一的出口;
2)结构中的每个部分都有执行到的可能;
3)结构内不存在永不终止的死循环。
3、尝试用自然语言、流程图、N-S流程图或伪代码写出下面问题的求解算法。
1)根据三边,求三角形的周长和面积
2)判断用户输入的一个整数是奇数还是偶数
3)求解一元二次方程ax2+bx+c=0根
4)找出10个数据的最大数
5)将20个考生成绩中不及格者的分数打印出来
6)求S=1+2+3+4+……+100
解:
略
实验2熟悉VC++环境及算法
二、实验内容
1、改错题
#include<
>
main()
{
intx=2,y=3,a;
a=x-y;
printf("
a=%d"
a);
printf("
\n"
);
/*换行*/
}
2、程序填空题
inta,b,m;
Inputa,bplease!
scanf("
%d%d"
&
a,&
b);
m=a*b;
/*赋值语句,将a和b之积值赋给m*/
a*b=%d\n"
m);
/*输出a和b积的结果值并换行*/
3、设计与表示算法
判断一个数n能否同时被3和5整除。
1)用伪代码表示
begin(算法开始)
inputn
if(n/3*3)=n
{
if(n/5*5)=n
print“数n能同时被3和5整除”
}
}
end(算法结束)
2)用N-S图表示
输入n
n除以3的余数为0
n除以5的余数为0
是否
n能同时
被3和5
整除
n不能同时
3)用流程图表示
n被3整除
开始
n不能同时被3和5整除
结束
N
Y
n被5整除
n能同时被3和5整除
4、编程题
1)
voidmain()
Howareyou!
2)
inta,b,c,sum;
Inputa,b,cplease!
scanf("
%d%d%d"
b,&
c);
sum=a*a*a+b*b*b+c*c*c;
printf("
a*a*a+b*b*b+c*c*c=%d\n"
sum);
第3章数据类型及其运算
3习题
BADCDDCBCA
二、阅读程序,给出运行结果
1、7,8,10
2、1,3
3、
4、4
61
57
9
112
三、编程题
1.(sin(sqrt(x*x)))/(a*b)
2.
3.33
4.3
5.#include<
voidmain()
charc;
c=getchar();
%c\n"
c);
%d\n"
6.#include<
intmain()
floatC,F;
请输入一个华氏温度:
"
%f"
F);
C=9)*(F-32);
摄氏温度C=%\n"
C);
return0;
}
7.#include<
#include<
floata;
a=exp;
%f\n"
return0;
实验3数据类型及其运算
1.改错题
intx,y;
请输入两个整数\n"
x,&
y);
互换前的x:
%dy:
x,y);
x=x+y;
y=x-y;
x=x-y;
2.程序填空题
inti1,i2,i3,i;
Pleaseinputi1,i2,i3:
"
i1,&
i2,&
i3);
i=i3;
该程序的运行结果:
ABC
abc
请输入3个整数
246
ave=,ji=48
2.法一:
#include<
Intmain()
{floatx,xf;
Intxi;
Printf(“请输入一个实数:
”);
Scanf(“%f”,&
x);
Xi=(int)x;
Xi=x-xi;
Printf(“该数的整数部分为:
%d\n”,xi);
Printf(“该数的小数部分为:
5f\n”,xf);
Return0;
法二:
doublea,b;
scanf("
%lf"
a);
b=a;
longintp;
p=(longint)a;
printf("
整数部分:
p);
小数部分:
(b-p));
3.
4.
5.#include<
voidmain(){floata,b,h;
floatarea;
%f,%f,%f"
h);
area=(a+b)*h/2;
梯形的面积为:
%\n"
area);
实验4顺序结构程序设计
下列程序的功能为:
按下列公式计算并输出x的值。
其中a和b的值由键盘输入。
纠正程序中存在的错误,以实现其功能。
4,6
x=
#include<
main()
{inta,b;
floatx;
%d,%d"
a,b);
x=2ab/(a+b)(a+b);
x=*a*b/((a+b)*(a+b));
x=%d\n"
x);
x=%f\n"
}
2.程序填空题
设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据r、h,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
(周长l=2
,圆面积s=
,圆球表面积sq=
,圆球体积vq=
;
圆柱体积vz=
),请补充完善程序,以实现其功能。
floatpi,h,r,ly,sy,sq,vq,vz;
pi=;
请输入圆半径r,圆柱高h:
);
3
圆周长为:
圆面积为:
圆球表面积为:
圆球体积为:
圆柱体积为:
%f%f"
r,&
h);
ly=2*pi*r;
sy=pi*r*r;
sq=4*pi*r*r;
vq=3*pi*r*r*r;
vz=pi*h*r*r;
%.2f\n"
ly);
sy);
sq);
vq);
vz);
3.编程题
(1)编写一个程序实现如下功能:
从键盘输入3个字符,然后在屏幕上分3行输出该3个字符。
A
B
C
{
charc1,c2,c3;
c1=getchar();
c2=getchar();
c3=getchar();
putchar(c1);
putchar('
\n'
putchar(c2);
putchar(c3);
(2)编写一个程序实现如下功能:
输入一元二次方程ax2+bx+c=0的系数a、b、c,求方程的根。
要求:
运行该程序时,输入a、b、c的值,分别使b2-4ac的值大于、等于和小于零,观察并分析运行结果。
求根公式如下:
a=1,b=3,c=2
x1=
x2=
.
法一:
voidmain()
{floata,b,c,disc,x1,x2,p,q;
a=%f,b=%f,c=%f"
disc=b*b-4*a*c;
p=-b/*a);
q=sqrt(disc)/*a);
x1=p+q;
x2=p-q;
x1=%\nx2=%\n"
x1,x2);
{floata,b,c,disc,x1,x2,p,q;
if(a==0)
不是二次方程\n"
else
if(disc<
0)
无实根\n"
if(disc==0)
{p=-b/*a);
有两个相同的实根\n"
有两个不同的实根\n"
第5章选择结构程序设计
5习题
BBCBBCBACB
二、阅读程序写出运行结果
1、-22、Yes
3、
(1)2
(2)3
CC
A=2,b=2,c=4
4、*&
5、5
3
2
1.#include<
intmain()
inta,b;
3.#include<
intmain(void)
intn;
intstatus=1;
while(status)
输入:
%d"
n);
switch(n)
case0:
舞蹈\n"
break;
case1:
case3:
乒乓球\n"
case2
case4:
篮球\n"
case5:
保龄球\n"
case6:
吉他\n"
default:
status=0;
return0;
实验5选择结构程序设计
输入3个整数后,输出其中最大值。
请纠正程序中存在错误,使程序实现其功能。
请输入3个整数:
527
3个数中最大者为:
7
#include"
inta,b,c,max;
printf("
scanf("
max=a;
if(c>
b)
{if(b>
a)max=c;
}/*c>
b>
a*/
else/*b>
c*/
{if(c>
a)max=b;
}/*b>
c>
max);
改正后的程序:
{if(c>
}
else
{if(b>
inta,b,d;
charch;
Pleaseinputaexpression:
%d%c%d"
ch,&
/*输入数学表达式*/
switch(ch)
case'
+'
:
d=a+b;
%d+%d=%d\n"
a,b,d);
break;
-'
d=a-b;
%d-%d=%d\n"
*'
d=a*b;
%d*%d=%d\n"
/'
if(b==0)printf("
Divisoriszero\n"
elseprintf("
%d/%d=%f\n"
a,b,(float)a/b);
/*强制类型转换*/
default:
InputOperatorerror!
(1)#include<
inta,b,c,max,min;
floatsum,d,e;
请输入三个数:
sum=a+b+c;
d=sum/3;
e=a*b*c;
if(a>
{max=a;
min=b;
{max=b;
if(max<
c)
max=c;
if(min>
min=c;
三个数的和%.1f\n"
三个数的平均值%.2f\n"
d);
三个数的积%.1f\n"
e);
三个数中最大值是%d\n"
三个数中最小值是%d\n"
min);
(2)
floatx,y;
if(x<
5)y=1-x*x*x;
elseif(x<
=15&
&
x>
=5)y=x-1;
elsey=2*x*x-1;
x=%0f,y=%0f\n"
(3)
{inta;
inputintegernumber:
switch(a)
{case0:
Sunday\n"
case1:
Monday\n"
case2:
Tuesday\n"
case3:
Wednesday\n"
case4:
Thursday\n"
case5:
Friday\n"
case6:
Saturday\n"
default:
error\n"
第6章循环结构程序设计
6习题
BCDDABDBABBC
1、______3,4________
2、_____6_____
3、___##___
4、___02____
5、___18_____
6、_____1______
7、___80____
8、___输出一行中含大写或小写字母个数中的大者数________
9、
1)5次
212
2)2次
13644
3)外循环2次,内2层循环累计3次,内3层循环累计5次
28
4)外循环3次,内循环累计4次
-1-105
实验6循环结构程序设计
倒序打印26个英文字母。
charx;
x='
z'
;
while(x!
='
a'
)while(x!
-1)或while(x>
)
%3d"
%3c"
x++;
x--;
intday,x1,x2;
day=0;
x1=1020;
while(x1)
X2=x1/2-2;
X1=x2;
day++;
printf(“day=%d\n”,day);
inti,left,right;
charcc[80];
输入一个算术表达式\n"
gets(cc);
left=0;
right=0;
f\n\n"
i,no,sum,ave);
第7章数组及其应用
7习题
DACBCABDBD
1、______4______
2、____Tony_____
3、____max=85,min=5,sum=180,aver=
4、____a=2b=2c=2d=2e=1f=2g=2____
5、____j=45_____
1.略
2.
inta[10];
程序填空题
#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新编C语言程序设计教程 机械工业出版社 钱雪忠 吕莹楠 新编 语言程序设计 教程 机械工业 出版社