}
2.设计程序找出1~100间的质数,显示出来。
用for或while或do-while
循环语句实现。
3.从键盘上输入一学生成绩,根据成绩的取值范围,输出成绩的等级,如成绩大于90分输出等级“优“等。
要求:
分析出现结果的原因,如何修改使结果正确。
实验三循环结构程序设计
一、实验目的
1.熟练while和for循环结构及实现循环的方法。
2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
二、知识要点
在C++的程序设计中,有很多问题需要对同一问题进行反复求解,循环结构的程序可以实现此类功能。
在C++中,主要有两类循环,一是当型循环,另一种是直到型号循环,后一种较少使用。
从语句的角度来说,主要有
Do{
}while
While(条件表达式)
{
}
和for(条件表达式1;判断;表达式))
{
}
三、实验内容及步骤
1.编写一控制台应用程序,输入一个数,判断是否为素数。
2.根据上面的代码,输出100-200之间的所有素数。
显示出来。
用for或while或do-while循环语句实现。
3.编写一程序,计算100!
,并讨论使用什么数据类型来存储。
实验四函数的定义及调用
一、 目的与要求
1、 掌握C++语言函数定义及调用的规则。
2、 理解参数传递的过程。
二、 实验内容与步骤
1、 上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。
main()
{
int,y;
printf(“%d\n”,sum(x+y));
intsum(a,b)
{
inta,b;
return(a+b);
}
}
2、 编写并调试一个求(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。
3、任意编写一些小函数,练习C++中各种存储变量的区别。
(选做)。
三、 分析讨论
1、 针对以上实验内容写出相应的参数传递过程并分析结果。
2、 讨论参数的传递的几种形式。
实验五、数组的应用
一、目的和要求
1、掌握数组定义的规则。
2、掌握C++语言数组的基本用法。
二、实验内容与步骤
1、编写程序,测试下列数组的定义方式是否正确
(1) main()
{
intn;
scanf(“%d”,&n);
inta[n];
……
}
(2) main()
{
constintn=10;
inta[n];
}
(3) #include
#defineM10
main()
{
inta[M];
}
(4) main()
{
inta[2+2*4];
}
(5) #include
#defineM2
#defineN8
main()
{inta[M+N];
}
通过这一实验,可以说明什么问题?
2、运行下面的C++程序,根据运行结果,可以说明什么?
main()
{intnum[5]={1,2,3,4,5};
intii;
for(i=0;i<=5;i++)
printf(“%d”,num[i]);
}
3、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。
现在要你设计一个程序,返回一个3*5的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。
4、为一个起泡排序程序设计测试用例,并测试之。
三、分析讨论
通过实验,分析定义与引用数组的区别。
实验六指针
(一)
一、目的和要求
1. 熟悉指针的正确用法。
2. 掌握指针作为函数参数的使用方式
二、实验内容和步骤
1、指出下面程序错误的原因。
main()
{
intx=10,y=5,*px,*py;
px=py;
px=&x;
py=&y;
printf(“*px=%d,*py=%d,*px,*py);
}
2、下面的程序试图有如下运行结果:
whichstyleyouwantto:
Capital(c)oruncapital(a):
c↙
COMPUTER
Whichsytleyouwantto:
Capital(c)oruncapital(a):
u↙
computer
请调试下面的程序,使其有如上执行结果。
#include
main()
{
chars*;
charc;
printf(“whichstyleyouwantto:
ln”);
printf(“capital(c)oruncapital(a):
”);
c=getchar();
if(c=’c’)strcpy(s,”COMPUTER”);
elsestrcpy(s,”computer”);
put(s);
}
分析出错原因。
3.下面的程序能获得上述运行结果吗?
main()
{
char*S=”COMPUTER”;
charc;
printf(“whichstyleyouwantto\n”);
printf(“capital(c)oruncapital(u);”);
c=getchar();
if(c=’c’)
put(s);
else{
s=”computer”;
puts(s);
}
}
分析出错原因。
4.设计一个C程序,用以测试下列各表达式的运算。
(1) y=*px++
(2) y=*++py
(3) y=(*py)++
(4) y=--*ppx++
5.编写一函数,完成自小到大的的排序功能,要求使用指针作为参数传递,在主函数编写测试代码。
三、分析讨论
数组与指针的联系与区别。
实验七结构体和共用体
一、目的和要求
1、掌握结构体类型方法以及结构体变量的定义和引用。
2、掌握指向结构体变量的指针变量的应用,特别是链表的应用。
3、掌握运算符”.”和”->”的应用。
4、共用体的概念和应用。
二、实验内容和步骤
1、按习题7.7的要求编写程序:
有4名学生,每个学生的数据包括学号、姓名、成绩,要求找出成绩最高者的姓名和成绩,上机运行程序。
2、按习题7.8的要求,建立一个链表每个结点包括的成员为:
职工号、工资。
用malloc打印出来。
用一个creat来建立链表,用list来输出数据。
5个职工号为101,103,105,107,109。
3、在上题基础上,新增加一个职工的数据,按职工号的顺序插入链表,新插入的职工号为106。
写一函数insert来插入新结点。
4、在上面的基础上,写一函数delete,用来删除一个结点。
要求删除职工号为103的结点。
打印出删除后的链表.
5、你有无办法测试构造链表时,内存空间的动态分配情形?