语言实验指导书新Word文档格式.docx
- 文档编号:18823397
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:33
- 大小:170.07KB
语言实验指导书新Word文档格式.docx
《语言实验指导书新Word文档格式.docx》由会员分享,可在线阅读,更多相关《语言实验指导书新Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
在“文件”菜单中选择“新建”命令项,在弹出的“新建”对话框的“工程”选项卡中选择“Win32ConsoleApplication”选项,在“工程”框中输入工程文件名sy1,在“c:
位置”下拉框中输入或选择文件夹,单击“确定”;
在以下弹出的两个对话框中分别单击命令按钮“完成”和“确定”。
⑶建立C++源文件:
在“工程”菜单中选择“添加到工程”—“新建”命令项,在弹出的“新建”对话框的“文件”选项卡中选择“C++SourceFile”,在右边的“文件”框中输入文件名sy11后单击“确定”。
⑷输入源程序:
在弹出的文件编辑窗口中输入下面的源程序:
#include<
>
voidmain()
{printf("
Hello,World!
\n"
);
printf("
WelcometotheClanguageworld!
Everyonehasbeenwaitingfor.\n"
}
⑸编译:
用“编译”菜单的“编译”命令项对源文件进行编译,如果程序有语法或语义错误,在屏幕下面的窗口会出现错误信息;
这时候要修改源程序、保存后重新编译。
直到修改了全部错误,屏幕下面的窗口会出现下面的信息:
表示已通过编译,生成了目标程序。
⑹调试:
接下来进行调试,操作如下图所示。
完成调试后,生成可执行程序文件。
⑺运行:
最后用“编译”菜单的“!
执行”命令项运行可执行程序文件sy.exe。
运行结果如下:
(8)程序可能出错,要学会调试修改,详见《VC++使用方法》中的7.调试程序
PS:
2完成下面程序的运行
2)输入并运行下面的程序,运行后记录并分析结果。
main()
{charc1,c2;
/*第2行*/
c1=97;
c2=98;
/*第3行*/
printf("
%c%c\n"
c1,c2);
在此基础上:
⑴在程序最后增加一个语句,再运行,并分析结果。
printf("
%d%d\n"
c1,c2);
机生成2个0~99之间的正整数,作为你2门课的成绩。
平均成绩(如果结果是整数,要求转换成浮点数),计算所有成绩的标准差。
要求必须用数学库函数rand(),sqrt。
标准差公式如下:
2.用数学库函数实现你学过的数学公式,使用的库函数越多,考核分数越高
实验三输入、输出函数的使用
一.实验目的:
熟练使用格式输出函数printf()和格式输入函数scanf()
二.实验内容:
1.实验要求:
格式输入函数scanf()和格式输出函数printf()的使用
2.分析与设计:
输入函数中的普通字符需要原样输入,并注意分隔符的使用;
输出函数中的格式控制符和输出项数要一一对应。
3.源代码:
程序1:
为使得a=1,b=2,c=‘A’,d=,在键盘上如何输入?
{inta,b;
charc;
floatd;
scanf(“a=%db=%d”,&
a,&
b);
scanf(“%c%e\n”,&
c,&
d);
程序在运行时,输入:
a=1b=2A0
程序2:
判断下面程序的运行结果。
main()
{intx=3,y=2,z=1;
printf(“%d,%d\n”,(++x,y++),z+2);
运行结果:
2,3
分析得到此结果的原因。
程序3:
以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。
完成以下填空,并把程序调通,写出当输入为45,,A<
回车>
时程序的运行结果。
{inta;
floatb;
charc;
scanf("
%d,%f,%c"
&
a,&
b,&
c);
a=%d\n"
a);
b=%f\n"
b);
c=%c\n"
c);
程序4:
指出以下程序的错误并改正,并上机把程序调通。
%f"
scanf,printf进行如下的输入和输出:
1)输入自己的生日,姓名拼音的首字母,年龄(如:
,然后输出。
注意使用fflush(stdin)函数清除缓存区域,pp89,例4-6第15行
2)输入自己上学期所有课程的成绩(不一定跟真实成绩一模一样),计算平均成绩和标准差,将其输出。
3)输出“学生管理系统”的菜单,如下:
实验四选择结构程序设计
1.熟练掌握分支结构if语句及其嵌套
2.掌握分析具体问题的方法
二.实验内容:
1.实验要求:
利用if语句和scanf函数模拟简单的ATM取款机界面
用户先输入密码,密码正确后,可以进行帐户的操作,如查询,取款等。
模拟ATM取款机界面
n"
count);
gotoloop;
/*帐户查询*/
case2:
printf("
\npleaseinputcountthatyouwanttoget:
"
%d"
&
number);
if(number>
count||number<
0)printf("
\nerror"
else{printf("
\nnow,youcantakemoney!
count-=number;
gotoloop;
/*取款*/
case3:
break;
/*返回*/
default:
\noperateerror!
三.案例项目
1.输入3门课的成绩,并输出所有成绩中最大的一门课。
用逻辑,关系运算判断:
如果所有成绩中至少有一门课大于90,则输出good;
2.先输入一个学生A的姓名和生日,再输入一个学生B的姓名和生日。
如果A,B的姓名,生日都是正确的,则输出yes,否则输出no。
3.根据实验二中的“学生管理系统”的菜单,如果输入1,则输出“显示所有学员信息”;
如果输入2则输出“查询学员信息”;
如果输如3,则。
。
用switch()语句完成,运行效果图如下:
实验五循环结构程序设计
一目的和要求
1掌握在设计条件型循环结构时,如何正确地设定循环条件,以及如何正确地控制计数型循环结构的次数。
2熟悉用while语句,do-while语句和for语句实现循环的方法。
3掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。
4掌握选择结构与循环结构的嵌套。
1程序分析
下面是一个计算e的近似值(使误差小于给定的δ)的程序。
{doublee=,x=,y,delta;
inti=1;
请输入给定的误差:
%lf"
delta);
y=1/x;
while(y>
=delta)
{e=e+y;
i++;
x=x*i;
y=1/x;
}
计算结果是:
%\n"
e);
⑴阅读上面的程序,写出程序所依据的计算公式。
1+1/(1*2)+1/2*3+1/6*4
⑵当输入的delta是什么值时,能分别使程序按下面的要求运行:
ⅰ不进入循环;
delta>
1
ⅱ只循环一次;
1/2
ⅲ只循环两次;
1/2>
1/6
ⅳ进入死循环(程序将永远循环下去)。
Delta=0
ⅴ为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?
%d\n"
i);
⑶原程序中while语句中的y>
=delta,分别换成y>
delta,y=delta,y<
delta,y<
=detax观察程序运行将会有什么变化。
⑷把程序中的while结构改写成do-while结构,再运行程序,说明两种结构的区别。
⑸将程序改成用for循环结构,计算前50项,并运行程序,写出运行结果。
2有一数列:
2/1,3/2,5/3,8/5,…求出这个数列的前10项之和。
{intn,t;
floata=2,b=1,s=0;
for(n=1;
n<
=10;
n++)
{s=s+a/b;
t=a;
a=a+b;
b=t;
%f\n"
s);
要求:
跟踪执行,观察s、t、a、b的变化。
方法:
使用功能键F10单步跟踪执行程序,可以在监视窗口设置要观察的变量或表达式。
1.输入3门成绩,用for循环求平均值。
提示:
每次循环输入一门成绩,并将其加入总和。
2,用do-while编写一个循环程序,用户不停的进行“学生管理系统”菜单的选择,直到用户输入数字0。
运行效果图如下:
实验六数组
1掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2掌握字符数组和字符串函数的使用;
3掌握与数组有关的算法(特别是排序算法)
二、实验内容
编程序并上机调试运行。
1调试下列错误程序,使之具有如下功能:
输入12个整数,按每行3个数输出这些整数,最后输出12个整数的平均值。
写出调试过程。
#defineN12
{inti,a[N],av;
按照下面算法编一个程序,将两个字符串连接起来,不能用strcat函数。
⑴定义整型变量i、j,字符串s1、s2
⑵输入字符串s1、s2
⑶当字符串s1尚未结束,改变字符串s1的下标,使之到s1结束处
⑷当字符串s2尚未结束,将字符串s2逐个字符连接到字符串s1的后面
⑸为字符串s1添加结束标志
⑹输出连接后的字符串
3.案例项目
1.输入3门成绩,并用数组记录.在输入前显示提示文字“请输入第i门课成绩”。
然后用数组与循环语句求成绩的均值,并输出均值,每门课的成绩
2.用二维数组记录3个同学的所有成绩,并输出所有人的成绩
3.用数组记录学生A姓名的字符串,并输出。
再输入一个学生B的姓名字符串,与A的姓名字符串比较,如果一样则输出yes,否则no
4(选做)用数组存放4个学生的学号,用冒泡排序法将学号升序放置在原数组中,
并输出数组数据
实验七简单函数
一.实验目的:
1.理解函数的概念和应用。
2.掌握无参无返回函数的使用。
3.掌握无参有返回函数的使用。
2.案例项目
1.完成主函数中的下列自定义函数:
1)无参无返回的函数inputInfo():
/输入一个学生的信息(name,number,score[3])
2)无参无返回的函数OutputInfo();
4)无参有返回的函数Max():
求成绩的最大值.
5)无参有返回的函数Standar():
求成绩的方差.
6)无参无返回的函数Sort():
对成绩进行排序
2.用上述自定义函数完成主函数的编写
{/输入学生A的信息(name,number,score[3])
掌握有参无返回函数的使用。
3.掌握有参有返回函数的使用。
1.定义一个带参数并有返回值的函数Average(intscore[3]),计算学生成绩score[3]的均值,并将其返回。
然后在主程序中调用Average()求均值,并输出均值。
2.用一个数组Student[1000],记录N个学生的学号。
定义一个函数AddStudent(intnumber[]),向Student[]数组中添加一个学生的学号。
然后用该函数添加3个学生的学号,并输出所有学号。
3.用一个数组Student[1000],记录N个学生的学号。
定义一个函数modify(inti,intnumber),修改Student[i]的学号为参数number,用主程序输入i和number,调用modify()函数,并输出
4.用一个数组Student[1000],记录N个学生的学号。
定义一个函数del(inti),删除Student[i]的学号,并把Student[1000]数组中的后续数据前移。
用主程序输入i,调用del()函数,并输出删除后的所有学号。
实验九指针
1了解指针的概念,学会定义和使用指针变量。
2.掌握函数的值调用和引用调用的含义
3.掌握简单变量、数组和指针作为函数参数进行传递的形式
2、实验内容
1.运行下列程序,写出运行结果。
#include"
{inta[5],*p,j;
for(j=0;
j<
5;
j++)a[j]=j+1;
p=a;
j++)printf("
*(p+%d)=%d\n"
j,*(p+j));
想使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的?
swap(int*p1,int*p2)
{int*p;
p=p1;
p1=p2;
p2=p;
指针数组score[]记录两个学生的成绩a[3],b[3],并用score输出所有成绩.
3(选做).输入学生课程的数目,并用指针与动态内存分配函数malloc()记录一个学生的成绩:
pp2811)函数malloc
实验十自定义数据、文件
1掌握结构体类型的概念和定义方法与使用。
2掌握指向结构体变量的指针变量的概念和应用。
二案例项目
1.完成下列自定义函数:
1)定义一个学生信息结构体Student_Info(其成员变量有姓名,学号,成绩数组,平均分),并在main()函数中用结构体变量记录一个学生的信息,然后输出该学生的所有信息。
2)用一个结构体数组Student_InfoStudent[1000],记录N个学生的结构体变量。
定义一个函数AddStudent(structStudent_Infos[]),向Student[]数组中添加一个学生的信息。
3)定义一个函数find(intnumber)查找指定学号number的学员,并返回该学生在Student[1000]数组中的下标i,如果指定学号不存在,返回-1;
4)定义一个函数voidquery(intnumber):
用find(intnumber)函数根据学号查找学生在Student[1000]数组中的下标i,并显示该学员的所有信息。
5)定义一个函数voiddel(intnumber),根据学号查找学生,并删除该学员信息
6)定义一个函数voidmodify(intnumber),根据学号查找并修改学员的信息
2.用上述自定义函数完成主函数的编写
abs、labs、fabs:
求绝对值函数
2.acos:
反余弦函数
3.asin:
反正弦函数
4.atan:
反正切函数
5.atan2:
6.ceil:
向上舍入函数
7.cos:
余弦函数
8.cosh:
双曲余弦函数
9.div、ldiv:
除法函数
10.exp:
求e的x次幂函数
11.floor:
向下舍入函数
12.fmod:
求模函数
13.frexp:
分解浮点数函数
14.hypot:
求直角三角形斜边长函数
15.ldexp:
装载浮点数函数
16.log、log10:
对数函数
17.modf:
分解双精度数函数
18.pow、pow10:
指数函数
19.rand:
产生随机整数函数
20.sin:
正弦函数
21.sinh:
双曲正弦函数
22.sqrt:
开平方函数
23.srand:
设置随机时间的种子函数
24.tan:
正切函数
25.tanh:
双曲正切函数
1.abs、labs、fabs:
求绝对值函数
函数原型:
intabs(intx);
longlabs(longx);
doublefabs(doublex);
头文件:
#include<
是否是标准函数:
是
函数功能:
函数intabs(intx);
是求整数x的绝对值;
函数longlabs(longn);
是求长整型数x的绝对值;
函数doublefabs(doublex);
是求浮点数x的绝对值。
返回值:
返回计算结果。
例程如下:
计算整数的绝对值。
intmain(void)
{
intx=-56;
number:
%dabsolutevalue:
%d\n"
x,abs(x));
return0;
例程说明:
本例程通过abs函数计算出整型数-56的绝对值56,并在屏幕上显示结果。
本例程的运行结果为:
-56absolutevalue:
56
计算长整数的绝对值。
intmain(void)
{
%ldabsolutevalue:
%ld\n"
x,labs(x));
计算浮点数的绝对值。
floatx=;
%fabsolutevalue:
%f\n"
x,fabs(x));
本例程通过fabs函数计算出浮点数的绝对值,并在屏幕上显示结果。
absolutevalue:
反余弦函数
doubleacos(doublex);
求x的反余弦值,这里,x为弧度,x的定义域为[,],arccosx的值域为[0,π]。
计算结果的双精度值。
求arccosx。
doubleresult;
doublex=;
result=acos(x);
arccos%lf=%lf\n"
x,result);
本例程应用函数acos计算的反余弦值,即:
arccos1。
返回计算结果的双精度值。
本例程的运行结果是:
arccos=
反正弦函数
doubleasin(doublex);
求x的反正弦值,这里,x为弧度,x的定义域为[,],arcsinx值域为[-π/2,+π/2]。
求arcsinx。
result=asin(x);
arcsin%lfis%lf\n"
return(0);
本例程应用函数asin计算的反正弦值,即:
arcsin1。
arcsinis
反正切函数
doubleatan(doublex);
求x的反正切值,这里,x为弧度,x的定义域为(-∞,+∞),arctanx的值域为(-π/2,+π/2)。
求arctanx。
result=atan(x);
arctan%lf=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 指导书