《程序设计基础C》实验教程和完整答案解析Word文档格式.docx
《《程序设计基础C》实验教程和完整答案解析Word文档格式.docx》由会员分享,可在线阅读,更多相关《《程序设计基础C》实验教程和完整答案解析Word文档格式.docx(114页珍藏版)》请在冰豆网上搜索。
运行VisualStudio软件中的setup.exe程序,选择安装VisualC++6.0,然后按照安装程序的指导完成安装过程。
启动VisualC++:
安装完成后,在开始菜单的程序选单中有MicrosoftVisualStudio6.0图标,其中又有MicrosoftVisualC++6.0即可运行(也可在Window桌面上建立一个快捷方式,以后可双击运行)。
VisualC++6.0开发环境见图0-1。
建立控制台工程:
进入VisualC++环境后,选择菜单“File|New”,在弹出的对话框中单击上方的选项卡“Projects”,选择“Win32ConsoleApplication”工程类型,在“Projectname”一栏中填写工程名例如MyFirst,在“Location”一栏中填写工程路径(目录)例如:
D:
\MyProject\MyFirst,见图0-2,然后按“OK”继续。
图0-1启动MircosoftVisualC++6.0
图0-2创建控制台工程
屏幕上出现如图0-3所示的Win32ConsoleApplication—Step1of1对话框后,选择“Anemptyproject”项,然后按Finish按钮继续,
图0-3Win32ConsoleApplication—Step1of1对话框
出现如图0-4所示的NewProjectInformation对话框后,按OK按钮完成工程创建。
图0-4NewProjectInformation对话框
编辑C++程序:
选择菜单“Project|AddtoProject|New”,为工程添加新的C++源文件。
如图0-5所示。
图0-5选择菜单为工程添加新源文件
图0-6加入新的C++SourceFile
在出现如图0-6所示的对话框后,选择“File”选项卡,选定“C++SourceFile”项,在“FileName”栏填入新添加的源文件名,如MyFirst.cpp,“Location”一栏指定文件路径,按按钮“OK”完成C++源程序的系统新建操作,如图0-6所示。
在文件编辑区输入源程序,存盘,如图0-7所示。
图0-7编辑MyFirst.cpp源程序
编译源程序:
选择Build|Build菜单(F7为快捷键),系统将会在Output窗口给出所有的错误信息和警告信息。
当所有错误修正之后,系统将会生成扩展名为.exe的可执行文件。
对于Output窗口给出的错误信息,双击可以使输入焦点跳转到引起错误的源代码处以进行修改。
执行程序:
选择Build|Execute菜单项(Ctrl+F5为快捷键),执行程序,将会出现一个DOS窗口,按照程序输入要求正确输入数据后,程序即正确执行。
如图0-8所示。
调试程序:
在编写较长的程序时,能够一次成功而不含有任何错误决非易事,这需要进行长期大量的练习。
编写的程序若已没有编译错误,可以成功运行。
对于程序中的错误,VC提供了易用且有效的调试手段。
在工具栏上单击鼠标右键,在弹出的菜单中选中“Debug”项。
在程序调试状态下,可以进行单步执行调试程序。
其中,单步跟踪进入子函数(StepInto,F11),每按一次F11键,程序执行一条无法再进行分解的程序行;
单步跟踪跳过子函数(StepOver,F10),每按一次F10键,程序执行一行;
Watch窗口可以显示变量名及其当前值,在单步执行的过程中,可以在Watch窗口中加入所需观察的变量,辅助加以进行监视,随时了解变量当前的情况;
同时,为方便较大规模程序的跟踪,可以设置断点(F9为快捷键),断点处所在的程序行的左侧会出现一个红色圆点。
选择Build|StartDebug|Go时,程序执行到断点处程序将暂停执行,可方便用户进行变量观察。
取消断点只需在代码处再次按F9即可。
还有运行至当前函数的末尾(StepOut)等都是很有效的调试工具,这里不再做一一介绍。
图0-8程序运行结果
图0-9MSDN
有关联机帮助:
VisualC++6.0提供了详细的帮助信息,用户通过选择集成开发环境中的“Help”菜单下的“Contents”命令就可以进入帮助系统。
在源文件编辑器中把光标定位在一个需要查询的单词处,然后按〈F1〉键也可以进入VisualC++6.0的帮助系统。
如图0-9所示。
用户要使用帮助必须安装MSDN。
用户通过VisualC++6.0的帮助系统可以获得几乎所有的VisualC++6.0的技术信息,这也是VisualC++作为一个非常友好的开发环境所具有的一个特色。
3.分析与思考
通过创建项目文件的实验,总结一下创建一个控制台应用项目的一般方法和经验。
除了已经介绍过的调试方法,可以尝试集成开发环境提供的其它功能。
实验一面向过程的简单程序设计
1.实验目的要求
(1)使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程,初步了解C++程序的特点。
(2)掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运算符和表达式的使用。
(3)掌握赋值语句的使用。
(4)掌握数据的输入输出方法。
2.实验内容
(1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。
<
1>
2>
3>
sinX+cosX+tan-1X
4>
ex+y+ex-y<
5>
log10(1+
)<
6>
+
(其中
表示取不大于a的最大整数)。
解:
<
#include<
iostream>
usingnamespacestd;
intmain()
{
floatx;
floata,b,c,d;
cout<
"
entera,b,c,d"
endl;
cin>
>
a>
b>
c>
d;
enterx"
x;
result"
x+(a+b)/(c-d)<
return0;
}
cmath>
floatx;
floatsum;
sum=1+1/(x+1/(x+1));
pow(x,1.2)<
floatx,y;
y=sin(x)+cos(x)+pow(tan(x),-1);
y<
floatx,y;
enterx,y"
x>
y;
exp(x+y)+exp(x-y)<
log10(1+pow(1+x*x,1/2))<
doublea,b;
cout<
entera,b"
cin>
b;
fabs(a*a-b*b)+int(a-b)<
(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。
#include<
iostream.h>
voidmain()
{
charch;
cin>
ch;
ch=(ch>
=’A’&
&
ch<
=’Z’)?
(ch+32):
=’a’&
=’z’)?
(ch–32):
cout<
endl;
输入A,输出A;
输入a,输出A。
功能:
将输入的字母转换成对应的大写字母并输出。
voidmain()
intm;
floatx;
boolbi,br;
"
\nintm="
;
m;
bi=m>
1000;
\nfloatx="
x;
br=x<
=1e3;
bi<
'
'
br<
分别输入10040,20003000,10001000,2000300,1004000运行。
结果依次是:
0,11,00,11,10,0
判断第一个数是否大于1000,第二个数是否小于等于1000。
{
intn;
cin>
n;
if(n++<
10)
cout<
n<
endl;
else
n--<
输入2,输出3。
将输入的数字增加1后输出。
n++是使用n后其数值增加1,n—是使用n后其数值减1,上面这个程序最终是要输出n—,其数值等于执行n++后n的值。
(3)编写程序实现下列问题的求解。
根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。
读入三个整数a、b、c,交换它们中的数,使a存放b的值,b存放c的值,c存放a的值。
对任意输入的四位整数,分别求出其各位数字,并按从后到前的顺序依次输出。
例如,输入为1234时,输出结果为4,3,2,1。
/*constfloatPAI=3.14159;
floatr;
输入园的半径"
r;
半径为"
r<
的园的周长为"
2*PAI*r<
floata,b,c;
floattemp;
依次输入a,b,c"
c;
a="
a<
b="
b<
c="
c<
temp=a;
a=b;
b=c;
c=temp;
交换后"
c=<
intn;
输入一个四位数的整数"
n;
for(inti=1;
i<
=3;
i++)
cout<
n%10<
'
n/=10;
}
3.分析与思考
*对任意输入的小于1的并且只有3位尾数的实数,分别求出其各位数字并输出。
要求输出的各数字之间要空2格。
例如,输入为0.368时,输出结果为‘0368’。
floatn;
输入的小于1的并且只有3位尾数的实数"
int(n)<
int(n*10)<
int(n*100)%10<
int(n*1000)%10<
实验二控制结构程序设计
(1)理解基本的解题技巧,掌握用自顶向下、逐步求精的过程设计算法。
(2)熟练掌握if/else语句和switch语句的使用。
(3)熟练掌握while语句、do/while语句和for语句的使用以及区别。
(4)掌握break和continue程序控制语句的使用。
(1)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。
intm,n;
m=1000;
n=850;
“\n(“<
m<
‘,’<
‘)’;
while(m!
=n){
while(m>
n){
m=m–n;
‘(‘<
while(m<
n=n–m;
}
“\n”<
m;
输出结果为(1000,850)(150,850)(150,700)(150,550)(150,400)(150,250)(150,100)(50,100)(50,50)50
不断执行m=m-n,直到m=n时为止,并将每次得到的结果输出
intm,n,k;
m=1000;
n=45;
‘:
’<
‘)’;
k=0;
=n){
k=k+1;
k<
“---”<
输出结果(1000:
45)22---10
计算1000减去多少个45小于45
inti;
for(i=1;
i<
=5;
i++){
if(i%2)
‘*’;
else
continue;
cout<
‘#’;
“$\n”;
*8992*8992*8992$
for循环中当i为奇数时,输出*,不是就继续执行
inta=1,b=10;
do{
b-=a;
a++;
}while(b--<
=0);
cout<
“a=”<
a<
“b=”<
b<
endl;
输出a=2b=8
循环执行b=b-a,a++直到b--<
=0为止,并将此时a,b的值输出。
(2)编写程序实现下列问题的求解。
求解下面函数的值。
ex+yx<
0,y<
z=ln(x+y)1≤x+y〈10
log10|x+y|+1其它情况
编程求解下列各计算式:
1)S=
=1+2+3+…+100
2)S=
=1!
+2!
+…+7!
3) S=1×
2+3×
4+5×
6+…+39×
40
4) Y=X-
+
-
+…+(-1)n+1
+…的值,精确到10-6。
打印下面图形。
1
131
13531
1357531
135797531
…………………
13……21………31
编程产生出1到10以内的所有数对<
i,j>
并输出,其中i>
j。
编程求出10000以内的所有符合如下条件的数:
其高位数字小于低位数字。
如12,238,3578等。
但21,548不符合条件。
求任一整数N的标准分解式,即素数因子之积。
例如16=2*2*2*2,15=3*5。
intx,y;
floatz;
if(x<
0&
y<
0)
z=exp(x+y);
elseif(1<
=(x+y)&
(x+y)<
10)
z=log(x+y);
else
z=log10(abs(x+y)+1);
z<
1)#include<
intn=100;
intsum=0;
=n;
i++)sum+=i;
sum<
2)#include<
intn=7;
i++){
ints=1;
for(intj=1;
j<
=i;
j++)
s*=j;
sum+=s;
1!
+2!
+…+7!
="
en