第01章 配套习题集.docx
《第01章 配套习题集.docx》由会员分享,可在线阅读,更多相关《第01章 配套习题集.docx(16页珍藏版)》请在冰豆网上搜索。
第01章配套习题集
第一章简单的C程序设计
1.1本章知识重点
1.一个最小的C程序一个C程序都有一个且只能有一个main函数,通常称为主函数,函数体用{}号刮起来。
任何一个C程序都从它开始运行。
2.如何显示文字main函数常常还要调用其他函数来协助其完成某些工作,其他函数可以是由系统函数库提供的系统函数,例如输出字符信息的printf函数。
3.如何做一些计算例1.2的主函数体分为两部分:
一部分是说明部分,另一部分是执行部分。
其中intsum;是说明部分,而sum=1+1/2+1/3+1/4+1/5;printf(“Thesumis%d\n”,sum);是执行部分。
在说明部分说明了函数所用到的变量的类型。
执行部分完成一定的操作,包含若干条语句。
sum=1+1/2+1/3+1/4+1/5;是赋值语句,printf(“Thesumis%d\n”,sum);是函数调用语句。
4.如何做重复的计算语句的执行过程除了按顺序一条一条执行以外,还可以根据条件选择执行和根据条件重复执行。
例如for循环重复计算。
5.自己写一个函数为完成用户特定的功能,可以使用自定义函数。
好处是在其它地方使用而不必重新写代码,只需要知道如何使用。
6.关键字、标识符在C语言中规定了34个符号,它们具有特定含义,必须用小写字母,不能被作它用,称为关键字。
为了区别各个变量、各个函数、各种类型,都必须为它们取不同的名字。
这些名字称为标识符。
C语言规定,标识符以字母或下划线开头,后跟若干个字母、下划线或数字,大小写字母组成的标识符是不同的,标识符的长度没有限制。
C语言还规定了其它一些符号,例如运算符(+、-、*、/……)、分隔符(/*、*/、;、[、]、……)等等,
7.上机调试步骤所有从纸上写好的一个C语言源程序文字到可以在计算机操作系统平台上执行的可执行程序文件需要经过以下几个上机步骤:
编辑(Edit)、编译(Compile)、连接(Link)、运行(Run)。
Turboc2.0简单操作Turboc2.0集成化操作界面包括五个主要区域:
菜单区、编辑状态显示区、源程序编辑区、编译、运行信息显示区、F功能键区。
可以将以上几个方面的操作通过菜单(功能键)完成。
编译连接操作编译连接时在调试信息显示区内会显示连接阶段出现的错误提示,如果不清楚引起的原因,可以在错误信息提示上按F10键,TurboC会显示可能引起错误的原因。
根据提示修改C源文件,再按F9键(将编译和连接合并成一步)继续编译连接,没有错误后得到后缀为EXE的运行文件。
10.跟踪调试操作运行错误的排除需要借助于跟踪调试。
TC有一个集成调试器(debug)可以跟踪运行错误。
使用调试器可以单步执行语句、设置暂停断点、检查某些变量或表达式的值,甚至可以改变它们的值。
这样可以了解到程序是否按预定目标运行,达到排除错误的目的。
1.2教材配套习题解析
1.1仿照例1.1,编写一个C程序,在DOS屏幕输出以下字符串:
********************************
ThisismyfirstC!
********************************
【答案】:
#include
main()
{
clrscr();/*清屏*/
printf("********************************\n");
printf("ThisismyfirstC!
\n");
printf("********************************\n");
}
1.2设计程序,表达\t、\b、\\、\”的作用。
【答案】:
#include
main()
{
clrscr();
printf("\ta\tb\tc\n");
printf("\td\te\tf\n");
printf("\t\\\t\"\t\bf\n");
}
1.3已知1英里=1.609公里,地球与月球之间的距离大约是238857英里,请编写C程序,在屏幕上显示出地球与月球之间大约是多少公里?
同时利用调试器调试程序。
【答案】:
#include
main()
{
floatd;
d=238857.0*1.609;
printf("%f\n",d);
}
调试器调试程序。
① 先设置调试开关(书本图1-11设置调试开关)
按Ctrl+F7,添加显示变量d的运行值。
一次一次按F8键,单部跟踪,同时观察d的变化。
1.4仿照例1.5,请编写一个以公里表示的距离值转换成以英里表示的距离值的C程序,程序应从键盘读入公里数据,在屏幕上显示出英里数。
同时利用调试器调试程序。
【答案】:
#include
main()
{
floatx,y;
printf("Pleaseinputx(km)");
scanf("%f",&x);
y=x/1.609;
printf("%fkm=%fmiles\n",x,y);
}
调试器调试程序。
① 先设置调试开关(书本图1-11设置调试开关)
按Ctrl+F7,添加显示变量x,y的运行值。
一次一次按F8键,同时观察x,y的运行值,光条到达scanf语句时。
再按一次F8,执行scanf语句,等待键盘输入。
键入公里数,按回车。
回到跟踪窗口,观察x的运行值,可以知道scanf函数执行是否正确。
1.5华氏温度与摄氏温度转换关系公式:
。
C=(5/9)(F–32)
仿照例1.3编写一个C程序,在屏幕上显示0。
、10。
、20。
、…、100。
华氏温度与摄氏温度的对照表。
分别利用整型数据、浮点数据表示温度,说一说区别。
【答案】:
#include
main()
{
intf,c;
printf("\tcf\n");
for(f=0;f<=100;f+=10)
{
c=(5/9)*(f-32);/*注意本行语句*/
printf("\t%10d=%10d\n",c,f);
}
}
运行结果:
将上述程序中的c=(5/9)*(f-32)改写为c=5*(f-32)/9后
#include
main()
{
intf,c;
printf("\tcf\n");
for(f=0;f<=100;f+=10)
{
c=5*(f-32)/9;/*注意本行语句*/
printf("\t%10d=%10d\n",c,f);
}
}
运行结果:
使用浮点数据表示温度的程序:
#include
main()
{
intf;
floatc;
printf("\tcf\n");
for(f=0;f<=100;f+=10)
{
c=(5.0/9.0)*(f-32);/*注意本行语句*/
printf("\t%#10.1f=%10d\n",c,f);
}
}
运行结果:
第一个程序由于(5/9)结果为0,所以c为0。
第二个程序因为使用整型数据表示温度,所以不精确,第三个程序使用浮点数据表示温度,计算结果是精确的。
1.6编写一个C程序,显示一张平方、立方表,利用制表符来对齐表格。
II的平方I的立方
111
248
3927
┇┇┇
【答案】:
#include
main()
{
inti;
clrscr();
printf("\tII*II*I*I\n");
for(i=1;i<=10;i++)
printf("\t%3d%10d%10d\n",i,i*i,i*i*i);
printf(“\n”);
}
1.3例题选讲解析
【例题】设计一个打印下列图形的程序,并上机调试。
********************
********************
Welcomeyou!
********************
********************
********************
********************
【分析】将图形划分成三块,两行’*’,一行文字’Welocmeyou!
’,两个两行’*’。
利用自定义函数实现画两行’*’。
【答案】
#include
voidprint2l();
main()
{
print2l();
printf(“\tWelcomeyou!
\n”);
print2l();
print2l();
}
voidprint2l()
{
printf(“\t***********************\n”);
printf(“\t***********************\n”);
}
使用TC2.0的编辑器输入源程序。
将输入的程序保存起来,例如保存为G:
\TC\TEST.C。
编译。
连接。
运行。
看结果。
1.4练习及答案
程序设计题
1.编写C语言程序并上机调试:
计算太阳和地球之间的万有引力。
要求仿照1。
5例,将计算任意两个质点之间的引力公式写成一个单独的函数。
2.设计一个乘法计算器程序并上机调试。
3.编写程序并上机调试,输入某学生的三门课成绩,输出其总成绩与平均成绩。
【答案】
程序设计题
1.编写C语言程序并上机调试:
计算太阳和地球之间的万有引力。
要求仿照1。
5例,将计算任意两个质点之间的引力公式写成一个单独的函数。
#include
main()
{
doubleg,sun_m,erath_m;
doublegravita(double,double,double);
sun_m=1.987e33;
erath_m=5.975e27;
g=gravita(sun_m,erath_m,1.495e13);
printf("gravitation=%eDyne\n",g);
}
doublegravita(doublem1,doublem2,doubled)
{
doubleg,G;
G=6.67e-8;
g=G*m1*m2/(d*d);
returng;
}
2.设计一个乘法计算器程序并上机调试。
#include
main()
{
floatx,y,z;
printf("Pleaseinputx,y");
scanf("%f,%f",&x,&y);
z=x*y;
printf("x*y=%f",z);
}
3.编写程序并上机调试,输入某学生的三门课成绩,输出其总成绩与平均成绩。
#include
main()
{
intx,y,z;
printf("Pleaseinputx,y,z");
scanf("%d,%d,%d",&x,&y,&z);
printf("sum=%d\nave=%d\n",x+y+z,(x+y+z)/3);
}
1.5上机实践题
1.先阅读下列程序,写出输出,然后上机运行程序,看看是否与阅读结果一致,为什么?
#include
voidprint(int,int);
main()
{
intn;
n=3;
print(5,n);
print(n,n);
print(n*n,12);
}
voidprint(inta,intb)
{
intc;
c=2*a+b;
print(“a=%d,b=%d,c=%d\n”,a,b,c);
}
【分析】自定义函数print有两个形式参数a,b,计算出c并输出。
main三次调用该函数。
注意实际参数和形式参数的结合。
【答案】
a=5,b=3,c=13
a=3,b=3,c=9
a=9,b=12,c=30