C++程序设计实验5-8
- 格式:doc
- 大小:55.00 KB
- 文档页数:5
C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
青岛科技大学信息科学技术学院C语言程序设计实验指导书目录实验1 C语言入门及选择结构 0实验1.1 Visual C++6。
0开发环境 0实验1.2 C程序快速入门 (7)实验1.3算术运算与赋值运算 (11)实验1。
4逻辑运算及if语句 (17)实验1.5 switch选择结构 (23)实验2循环结构及数组(共8学时) (27)实验2.1 循环结构(2学时) (27)循环结构程序设计补充 (32)实验2.2数组一:一维数组 (36)实验2。
3数组二:二维数组 (43)实验2.4数组三:字符数组 (45)实验3:函数与自定义数据类型 (49)实验3。
1函数一:函数的定义、调用和声明 (49)实验3。
2函数二:函数的参数传递2 (55)实验3。
3函数三:函数的嵌套和递归2 (57)实验3.4 自定义数据类型(2学时) (59)实验4:指针(共6学时) (61)实验4。
1指针一:指针的定义及运算 (61)实验4。
2指针二:指向数组的指针 (67)实验4.3指针三:用指针操作字符串2 (71)实验1 C 语言入门及选择结构实验1.1 Visual C++6.0开发环境一、实验目的1。
熟悉C 语言的系统环境,掌握在集成环境中编辑、编译、连接和运行C 语言程序的方法。
2. 掌握C 语言源程序的结构特点与书写规范. 二、实验学时数2学时三、实验步骤及任务(一) VC++6。
0集成环境(1)运行VC++6。
0a.双击桌面上的VC++6。
0快捷方式,运行VC++6。
0。
b 。
双击"C :\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV 。
EXE",运行VC++6.0. (2)认识VC++6。
0标题栏的左侧显示当前的文件名,右侧有最小化,最大化和关闭三个按钮。
菜单栏包含了开发环境中几乎所有的命令,其中一些常用的命令还被排列在工具栏中。
工具栏上的按钮提出和一些菜单命令相对应,提供了经常使用的命令的一种快捷方式。
C语言程序设计第三版部分习题 (谭浩强著)清华大学出版社课后答案。
txtcopy(复制)别人的个性签名,不叫抄袭,不叫没主见,只不过是感觉对了。
遇到过的事一样罢了。
【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1。
3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1。
5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头.错误:main函数可以放在程序的任何位置.并不限定在程序的开头。
1。
8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现.错误:不可以交叉出现,数据说明部分在执行语句部分的前面。
1。
9 编辑与编译不是一回事。
错误:不是一回事。
编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。
1.10 scanf("%d,%d”,&x,&y);的正确输入格式:3,4<回车〉.正确1。
11 注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。
因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中.1.12 所有的数学公式可以直接出现在源程序中.错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。
三、编程题1.13 在屏幕上输出自己名字的拼音.提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。
1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%。
2f1。
15 输入两个整数,输出其中最大者。
提示:模仿例1。
31.16 输入三个整数,输出其中最小者.提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2。
4.2练习题一、选择题1.D2.B3.A4.B和D5.C6.A7.B二、填空题1.//或/* */2.主或main3.函数首部和函数体4.编译和连接5.公号5.2练习题一、选择题1.A2.D3.B4.B5.C6.C7.D8.A9.B10.B11.D12.B13.A或B14.C15.B17.D18.D19.C20.D21.B22.A23.D24.C25.C26.B27.C28.D29.A30.B二、填空题1.102,102.#define 宏名字符串3.14.n=15.-46.a=1,b= ,c=27.c=A8.n1=%d\nn2=%d9.a+b>c&&a+c>b&&b+c>a10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.712.013.1111000014.8,46.2练习题一、选择题1.A2.C3.D4.C5.A7.A8.D9.B10.C11.A12.A13.C14.B15.正确答案为:12345678二、填空题1.102.y=1 x%i==03.屏幕中间输出一个由星号组成的菱形4.15.136.(cx=getchar())!=-1 front=cx; 7.m%n8.49.*p px=&x py=&y三、读程序,写结果1.-12.3,1,-1,3.a=16,y=604.x=12,y=45.597.2练习题一、选择题1.B2.C3.C4.A5.D6.C8.D9.C10.D11.D12.D13.A14.B15.C16.B17.B18.A19.A20.D21.B22.D23.C24.D25.D26.C二、填空题1.‘a’02.a[k] a[k] a[k]3.0 64.A B C D EA5.1,66.k=p;7.i<j8.189.4,some string * test 10.you&me三、读程序,写结果1.5 4 8 2 02.10 24 15 6 3.love china! H w l 4.66 66 555.Front一、选择题1. A2. A3. B4. B5. B6. A7. D8. C9. A10. A11. A12. B13. B14. A15. B16. B17. C二、填空题1.122.Itis3.fun(n-1)*n fun(k)4.s[i]-t[i]5.n%m i-1 x[d]6.x=n x%10 x7.m=f(a,4)+f(b,4)-f(a+b,3)8.a=1,b=1三、读程序,写结果1.s=72.s=373.bij12一、选择题1. B2. C3. B4. D5. B6. A7. B8. D9. D10. B11. D12. A13. B14. C15. C16. C17. A18. D19. B20. D二、填空题1.b->day (*b).day2.DDBBCC3.zhang 170.000000wang 150.0000004.995.max=i min=i stud[max].name,stud[max].score stud[min].name,stud[min].score6.&r 1 feof(fp) break7.BBB AAA 1238.rewind三、读程序,写结果1.2002,shangxian2.32。
2010级用高级语言程序设计实验报告quan《高级语言程序设计》实验报告实验室名称:班级:学生姓名:学号:指导教师:学期:2009-2010学年上学期实验1 C 程序设计入门一、实验目的1、熟悉C 编程环境2、掌握简单C 程序的编辑、编译和运行方法二、知识要点1、用printf 函数输出指定字符串(转义字符的使用)2、计算并输出表达式的值3、程序书写风格三、实验预习(要求做实验前完成)1、若要在屏幕输出信息,需要用到库函数:2、输出的信息若需换行,需要用到换行符:3、按C 语言语法规则写出下列算法的表达式(1)26乘以49,再除以17:(2)求29除以6的余数:四、实验内容 (要求提供:① 算法描述或流程图② 源程序 )1、编程输出“我的信息”,包括姓名、性别、专业名称和课程名称,格式为:姓名:性别:专业名称:课程名称:2、编程求以下表达式的值:1491516232+-+ 3、编程计算并输出16.8与27.5两个数的和、差、积、商,要求输出界面为:和是:差是:积是:商是:五、实验结果要求写出运行界面并输出运行结果实验2─3 数据类型、常量变量及顺序结构程序设计一、实验目的1、掌握常量和变量的概念以及使用1、掌握变量的定义、赋值与引用2、掌握顺序结构相关语句的使用3、掌握scanf和printf输入、输出数据的方法二、知识要点1、变量与常量概念2、数据输入、输出的格式控制3、标准库函数与头文件的使用4、算术运算与赋值运算5、数据类型转换三、实验预习(要求做实验前完成)1、假如要定义两个整型变量x和y,语句int x y;错在哪里?2、把a的值赋给b,其语句是:3、如果使用语句scanf(“%d%d”,&x,&y);输入8和9两个整数,其输入格式应该是:4、如果使用语句scanf(“%d,%d”,&x,&y);输入8和9两个整数,其输入格式应该是:5、程序中如果要用到库函数sin,则应包含头文件:6、假设x是一个实型变量,语句printf(“%d”,x);错在哪里?7、语句x=10; y=20; printf(“y=%d, x= %d”,x,y); 能否交换x和y的值?四、实验内容(要求提供:①算法描述或流程图②源程序)1、输入两个人的身高,计算并输出他们的平均身高。
34-计算函数 (2)612-程序设计C 实验一题目一最简单的C程序 (3)80-程序设计C 实验二题目二计算n! (4)288-程序设计C 实验三题目八统计出现最多次的字母 (5)277-程序设计C 实验二题目五统计二进制数中的1的个数 (6)276-程序设计C 实验二题目四简单的计算器 (7)35-成绩的等级 (8)26-翻转数的和 (9)33-三个数的最大值 (10)37-利润提成 (11)39-字符个数 (11)42-平方和与倒数和 (13)46-自由落体 (14)56-Hamming Distance (15)77-程序设计C 实验二题目一计算员工周工资 (16)189-素数判定 (17)318-进制变换 (18)489-平方和与立方和 (19)563-平方和与立方和 (20)606-Sum (21)190-游程编码 (22)160-C++测试一 (23)320-鸡兔同笼 (24)203-Jack's problem (25)619-蟠桃记 (26)279-程序设计C 实验二题目七人数统计 (27)278-程序设计C 实验二题目六计分规则 (28)148-陶陶摘苹果 (29)171-字符串的倒序 (30)86-杨辉三角形 (31)34-计算函数Description有一个函数y={ x x<1| 2x-1 1<=x<10\ 3x-11 x>=10写一段程序,输入x,输出yInput一个整数xOutput一个整数ySample Input14Sample Output31Hint使用函数Source612-程序设计C 实验一题目一最简单的C程序Description请使用C编写一个程序输出下面这个话"Welcome to the OnlineJudge of Southwest University of Science and Technology!"Loco提示: 请养成输出完后换行的习惯,否则视为Presentation Error,不清楚如何换行的同学可以询问同学或者老师Input没有输入Output输出题目中要求的语句.Sample InputSample OutputWelcome to the OnlineJudge of Southwest University of Science and Technology! Hint这个题目非常简单,是让大家熟悉C编译器和本平台的.1、按照1.2.4、1.2.5节操作步骤创建第一个应用:(1)编辑你的第一个C源程序(2)保存你的源文件(3)编译、连接得到可执行程序(4)改正源程序中的错误(5)运行你的第一个程序2、你可以有三种方式运行你的程序:(1)在VC++6.0开发环境中运行程序选择Build|Execute hello.exe(或者Ctrl+F5),在开发环境中执行你的程序。
附录1.2.2编程实验(2学时)参考答案1、程序提示:#include<iostream>using namespace std;int main(){int n,i;cout<<"n=?"<<endl;cin>>n;for(i=0;i<n;i++)cout<<"Hello World!\n";return0;}2、程序提示:int main(){int n,i,min,max;cout<<"n=?"<<endl;cin>>n;//输入整数ncout<<"input n number:"<<endl;int*p=new int[n];//动态创建n个元素的数组cin>>p[0];min=max=p[0];//为sum,min,max赋初始值为数组第0个元素for(i=1;i<n;i++){cin>>p[i];sum+=p[i];if(p[i]>max)max=p[i];if(p[i]<min)min=p[i];}cout<<"result:"<<"sun="<<sum<<";max="<<max<<";min="<<min<<endl;delete*p[];return0;}3、程序运行结果:a=6;b=1a=7;b=2a=8;b=3a=9;b=4a=10;b=51.3习题参考答案一、选择题1、ABCD2、ABD3、ABCD二、分析程序,改错sum=i+j;//该语句后面缺分号2.2.2编程实验(2学时)参考答案1、程序运行结果:0m=0n=00m=0n=0112、程序运行结果:3012-23、程序运行结果:50233114、修改语句:b=(Color)a;//类型转换5、程序提示:#include<iostream>using namespace std;struct time//定义结构体类型{int year,month,day,hour,minute,second;}a;int main(){cin>>a.year>>a.month>>a.day>>a.hour>>a.minute>>a.second;//输入语句cout<<a.year<<"年"<<a.month<<"月"<<a.day<<"日"<<a.hour<<"时"<<a.minute<<"分"<<a.second<<"秒"<<endl;//输出语句return0;}程序输出样例:6、程序提示:#include<iostream>using namespace std;struct complex{//定义结构体复数float real;float image;};int add(int a,int b)//两整数相加{return a+b;}double add(double x,double y)//两实数相加{return x+y;}complex add(complex m,complex n)//两复数相加{complex c;c.real=m.real+n.real;c.image=m.image+n.image;return c;}int main(){char g;cout<<"功能选择:"<<endl;cout<<"A.整数相加 B.实数相加 C.复数相加"<<endl;cin>>g;if(g=='A'){int c,v;cin>>c>>v;cout<<add(c,v)<<endl;}if(g=='B'){double c,v;cin>>c>>v;cout<<add(c,v)<<endl;}if(g=='C'){float c,v;cin>>c>>v;complex a={c,v};//定义复数对象a并赋值cin>>c>>v;complex b={c,v};//定义复数对象b并赋值cout<<add(a,b).real<<","<<add(a,b).image<<endl;}return0;}程序输出样例:7、程序提示:#include<iostream>using namespace std;void swap(int&p1,int&p2){int t;t=p1;p1=p2;p2=t;}void main(){int a,b;cout<<"please input the two num:\n";cin>>a>>b;swap(a,b);cout<<"交换后:"<<a<<","<<b<<endl;}程序输出样例:8、程序提示:#include<iostream>#include<cmath>using namespace std;int main(){float x,y;cout<<"please input the two num:\n";cin>>x>>y;cout<<"pow(x,y)="<<pow(x,y);return0;}程序输出样例:2.3习题参考答一、选择题1、ADF2、ABC3、BC4、B5、A6、A7、BCD8、C9、BCD10、C11、C12、C13、A二、填空题1、关系,条件,逻辑,位运算,逗号2、1012151800,101200,100003、cmath4、强制类型转换,Decimal value is241三、编程题1、参考程序#include<iostream>#include<iomanip>//格式化输出控制文件using namespace std;enum color{red,yellow,blue,white,black};//枚举类型int main(){int i,j,k,n,loop,pri;n=0;for(i=red;i<=black;i++){for(j=red;j<=black;j++){if(i!=j){for(k=red;k<=black;k++){if((k!=i)&&(k!=j)){n=n+1;cout<<setw(5)<<setfill('')<<left<<n;for(loop=1;loop<=3;loop++)//通过循环控制每次三种不同颜色的球{switch(loop){case1:pri=i;break;case2:pri=j;break;case3:pri=k;break;default:break;}switch(pri)//选择输出{case red:cout<<setw(10)<<setfill('')<<left<<"red";break;case yellow:cout<<setw(10)<<setfill('')<<left<<"yellow";break;case white:cout<<setw(10)<<setfill('')<<left<<"white";break;case blue:cout<<setw(10)<<setfill('')<<left<<"blue";break;case black:cout<<setw(10)<<setfill('')<<left<<"black";break;default:break;}}cout<<"\n";}}}}}cout<<"\ntotal:"<<n<<endl;}程序输出样例:1red yellow blue2red yellow white3red yellow black4red blue yellow5red blue white6red blue black7red white yellow8red white blue9red white black10red black yellow11red black blue12red black white13yellow red blue14yellow red white15yellow red black16yellow blue red17yellow blue white18yellow blue black19yellow white red20yellow white blue21yellow white black22yellow black red23yellow black blue24yellow black white25blue red yellow26blue red white27blue red black28blue yellow red29blue yellow white30blue yellow black31blue white red32blue white yellow33blue white black34blue black red35blue black yellow36blue black white37white red yellow38white red blue39white red black40white yellow red41white yellow blue42white yellow black43white blue red44white blue yellow45white blue black46white black red47white black yellow48white black blue49black red yellow50black red blue51black red white52black yellow red53black yellow blue54black yellow white55black blue red56black blue yellow57black blue white58black white red59black white yellow60black white bluetotal:602、参考程序#include<iostream>using namespace std;long long fib(int n){int i;long long f1=0,f2=1,f=0;if(n==1)return1;if(n==0)return1;if(n>=2){for(i=2;i<=n;i++){f=f1+f2;f1=f2;f2=f;}return f;}}int main(){int num;cout<<"input the num:\n";cin>>num;cout<<fib(num)<<endl;return0;}程序输出样例:3.2.2编程实验1(2学时)参考答案1.参考程序#include<iostream>using namespace std;class Rectangle{private:int length;//表示矩形的长int breadth;//表示矩形宽public:void area()//函数功能:计算矩形的面积{cout<<length*breadth<<endl;}void set()//函数功能:设置矩形的长与宽{cin>>length;cin>>breadth;}};int main(){Rectangle rec;//回答:此处rec对象调用系统默认构造函数对其初始化赋值,length与breadth的初始值都是随机值cout<<"请输入长、宽:"<<endl;rec.set();//要求:rec对象通过set()函数对其数据成员赋值!cout<<"所求矩形的面积为:";rec.area();//要求:rec对象通过area()函数计算输出其面积!return0;}程序输出样例:2.参考程序class Point{private:int i_x;//表示点的x轴坐标int i_y;//表示点的y轴坐标public:Point();//无参构造Point(int x,int y);//有参构造Point(Point&pt);//复制构造int getx();//函数结果为i_xint gety();//函数结果为i_yvoid show();//函数功能:输出数据成员};//要求:补充完整类的定义结构!Point::Point(){cin>>i_x>>i_y;}//要求:补充完整有无构造函数的实现!Point::Point(int x,int y){i_x=x;i_y=y;}//要求:补充完整有参构造函数的实现!Point::Point(Point&pt){i_x=pt.i_x;i_y=pt.i_y;}//要求:补充完整复制构造函数的实现!int Point::getx(){return i_x;}//要求:补充完整成员函数getx()的实现!int Point::gety(){return i_y;}//要求:补充完整成员函数gety()的实现!void Point::show(){cout<<i_x<<";"<<i_y<<endl;//要求:补充完整成员函数show()的实现!}int main(){Point p1;p1.show();Point p2(4,8);p2.show();Point p3(p2);p3.show();}程序输出样例:3.参考程序#include<iostream>#include<windows.h>//调用系统时间函数需要加的头文件#include<stdio.h>//调用系统时间函数需要加的头文件using namespace std;class Time{private://私有访问属性int hour,minute,second;public://公有访问属性void setTime(int h,int m,int s)//通过形参给本类数据成员hour、minute、second赋值{hour=h;minute=m;second=s;}void showTime_1()//输出时间:以12小时计,分上午(AM)、下午(PM){int sign;if(hour<12)cout<<"am:"<<hour<<":"<<minute<<":"<<second<<endl;else{sign=hour-12;cout<<"pm:"<<sign<<":"<<minute<<":"<<second<<endl;}}void showTime_2()//输出时间,建议:以24小时计{cout<<hour<<":"<<minute<<":"<<second<<endl;}Time()//无参构造函数{hour=0;minute=0;second=0;}Time(int NewH,int NewM,int NewS)//有参构造函数{hour=NewH;minute=NewM;second=NewS;}Time(Time&pt)//复制构造函数{hour=pt.hour;minute=pt.minute;second=pt.second;}};int main(){//定义变量,输入数据,创建3个Time对象,分别使用无参构造函数、有参构造函数、复制构造函数进行初始化Time time1;//定义对象的同时自动调用无参构造函数Time time2(18,21,36);//定义对象的同时自动调用有参构造函数Time time3(time2);//定义对象的同时自动调用复制构造函数time1.showTime_1();//输出电脑时间,显示方式1time2.showTime_2();//输出电脑时间,显示方式2time3.showTime_1();//输出电脑时间,显示方式1cout<<"你想要获取当前电脑时间吗?(Y/N)";char ch=getchar();//输入的字符if(ch=='Y'){SYSTEMTIME sys;//上网查询获取方法,获取当前电脑时间,赋值给已创建的任意一个Time对象GetLocalTime(&sys);time3.setTime(sys.wHour,sys.wMinute,sys.wSecond);time3.showTime_1();//输出电脑时间,显示方式1time3.showTime_2();//输出电脑时间,显示方式2}return0;}程序输出样例:4.参考程序#include<iostream>using namespace std;class Circle{public:Circle()//无参构造函数{radius=0;}void getArea()//无返回值函数,计算圆的面积{cout<<radius*radius*3.14<<endl;}void set_radius()//无返回值函数,设置圆的半径{cin>>radius;//采用输入赋值或直接赋值都可以}~Circle()//析构函数,对象默认的调用的最后一个函数{cout<<"END PGM!\n";}private:int radius;//整型数据,4个字节};int main(){Circle c;//Circle类定义目的对象c的同时自动调用其无参构造函数初始化数据成员cout<<"请输入圆的半径:";c.set_radius();c.getArea();//程序结束前自动调用析构函数释放对象return0;}程序输出样例:5.参考程序#include<iostream>using namespace std;enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};//声明枚举类型CPU_Rankclass CPU{private:CPU_Rank rank;int frequency;float voltage;public:CPU(int newrank,int newfrequency,float newvoltage);//有参构造函数void run();void stop();~CPU(){cout<<"成功调用析构函数"<<endl;}//析构函数};void CPU::run(){cout<<"程序开始执行"<<endl;}void CPU::stop(){cout<<"程序结束"<<endl;}CPU::CPU(int newrank,int newfrequency,float newvoltage){rank=(CPU_Rank)newrank;//强制类型转换frequency=newfrequency;voltage=newvoltage;cout<<"成功调用构造函数"<<endl;cout<<"等级:"<<CPU_Rank(P1)<<endl;cout<<"频率:"<<frequency<<endl;cout<<"电压:"<<voltage<<endl;}int main(){CPU cpu(1,70,280);//定义对象的同时调用有参构造函数对数据成员初始化cpu.run();cpu.stop();//程序结束前调用析构函数释放对象return0;}程序输出样例:3.3.2编程实验2(2学时)参考答案1.参考程序//类外补充完善类中的成员函数coutner::coutner(int number)//有参构造函数{value=number;}coutner::coutner()//无参构造函数{cin>>value;}coutner::coutner(coutner&r)//复制参构造函数{value=r.value;}void coutner::increment()//给value原值加2{value+=2;}void coutner::decrement()//给value原值减2{value-=2;}int coutner::getvalue()//取得计数器值{return value;}int coutner::print()//显示计数{cout<<value<<endl;return0;}int main(){coutner c;//定义一个无参对象c,定义时自动调用无参构造函数,通过输入对value赋值cout<<"The output is"<<c.getvalue()<<endl;coutner c2(c.getvalue()+2);//定义一个有参对象c2,用c对象的值加2初始化其数值value cout<<"The output is"<<c2.getvalue()<<endl;coutner c3(c2);//定义一个对象c3,用c2对象初始化cout<<"The output is"<<c3.getvalue()<<endl;cout<<sizeof(coutner)<<""<<sizeof(c2)<<endl;//通过sizeof()函数观察该coutner类型所占的字节数return0;}思考题回答:若程序中注释掉复制构造函数coutner(coutner&r),还可以实现用一个对象初始化赋值另一对象,会调用系统默认的复制构造函数。
实验3 循环结构程序设计一.实验目的:1.掌握使用while 语句,do-while 语句和for 语句实现循环的方法。
2.掌握在循环结构中使用break 与continue 语句的方法。
3.掌握多重循环的使用方法。
二.实验内容:1.编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出。
2.打印出所有“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字的立方之和正好等于该数本身。
例如:153是一个“水仙花数”,因为153=13+53+33。
3.编写程序,分行输出斐波那契序列的前20项(每行5个数)。
说明:斐波那契序列:1,1,2,3,5,8,13,21,……4.编写程序,输出“九九乘法口诀表”。
5.编写程序,分行输出100以内所有的素数(每行5个数)。
6.有两个红球、三个黄球、四个白球,任意取五个球,其中必须有一个黄球,编程输出所有可能的方案。
7.编写程序求解sn=a+aa+…+a …a,其中a 是1-9中的一个数字。
n 为一正整数,a 和n 均从键盘输入。
(例如输入n 为4,a 为2,sn=2+22+222+2222)8.编程统计从键盘输入的字符中数字字符的个数,用换行符结束循环。
9. 编写程序,输出200以内所有能被7整除的数。
10. 编写程序,求1~1000之间能被13整除的最大的那个数。
11. 找出若干个非零数中的最小值m 以及它们的平均值a 。
要求:从键盘输入若干个数,每次输入一个赋给变量x ,x 为零时,结束输入。
12. 从键盘输入整数 n ,输出 1+3+5+7+……前 n 项的和。
(n<=100)13. 编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。
14. 编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。
15. 编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。
实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。
第3章实验安排实验1 C实验环境与C程序初步一、目的和要求1.熟悉C程序运行环境。
2.初步了解运行一个C程序的过程(编辑、编译、连接和运行)。
3.通过运行和模仿编写简单的C程序,初步了解C源程序的结构和特点。
二、实验内容1.熟悉计算机中安装的C编译集成环境,新建一个C文件,输入下面的程序,编译并执行。
学习运行程序的过程,并分析运行结果。
#include <stdio.h>void main( ){int a=2,b=3,c;c=a+b;printf("sum=%d\n",c);}2.输入下面的程序,改正错误,并对其进行编译、链接和运行。
#include <stdio.h>void mian( ){printf("This is a C program.\n');}3.理解下面程序的功能,编译并运行程序。
输入两个整数,分析并验证程序的运行结果。
#include <stdio.h>int sum(int x,int y){int z;z=x+y;return(z);}void main( ){int a,b,c;scanf("%d%d",&a,&b);c=sum(a,b);printf("sum=%d\n",c);}提示:①这是一个包含自定义函数sum( )的程序。
②注意scanf( )函数的数据输入格式,输入的两个整数之间可以用空格或者回车或者制表符隔开。
4.编写一个程序,输出以下信息:********************Hello everyone!********************提示:本题可以使用一个或三个输出函数printf( )来实现输出三行信息。
要注意的是printf( )函数一次可以输出多个数据或字符,“\n”用来表示回车换行。
5.编写一个程序,输出图4.1中的图形。
安徽工程大学高级语言程序设计实验报告班级姓名同组者/ 成绩日期指导教师实验名称综合运用3种基本结构进行程序设计一、实验目的1.熟练运用“数据类型与表达式”相关内容,选择合适的数据结构定义问题需要的变量。
2.熟练使用scanf函数和printf函数,进行数据的输入与输出。
3.进一步掌握顺序、选择、循环结构程序设计的方法与技巧。
4.综合运用3种基本结构进行程序设计。
二、实验内容1.百马百担。
100匹马,共驮100担,大马驮3担,中马驮2担,2个小马驮1担,问大、中、小马各多少2.输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
3.打印输出“水仙花数”。
“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
4.讲一个正整数分解成每个质因数的乘积。
如输入90,打印90=2*3*3*5.5.利用循环语句编写程序实现以下功能:对一个正整数,将各位数字反序后形成一个新的整数输出。
6.一个素数加上1000以后是37的倍数,求满足这个条件的最小素数。
7.找1000以内的所有“完数”。
一个数如果恰好等于它的因子之和,这个数就称为“完数”,如6就是一个完数,因为6=1+2+3。
8.从键盘输入一串数字字符(该字符串至多包含一个点号'.'),将其转换成对应的实数。
说明:点号前有0~9位数字字符,点号后有0~6位数字字符,但是点号前后不能同时没有数字字符。
例如输入“”或“”,则输出实数;输入“.8”、“”或“”,则输出实数;输入字符串“36”或“”,则输出实数.9.两个羽毛球队进行两两单打比赛(每名选手只能上场1次),每队3名选手。
甲队为A、B、C三人,乙队为X、Y、Z三人,已知A不和X对抗,C不和X、Z对抗。
10.*思考题已知VINGTCINQ11.+ CINQTRENTE试编写程序用尽可能少的时间求解各个字母代表的数字。
提示:题目要求所用时间尽可能少,那么下面这种方法很显然是不可行的:for (V=1;V<=9;V++)for(I=0;I<=9; I++)…for (E=0;E<=9; E++)12.{..}可以通过找出某个字母的范围,减少循环次数来节约运算时间。
实验6 指针学号:1700200224姓名:莫新锋实验日期:一、实验目的和要求(1)掌握指针的概念、指针变量定义和引用。
(2)掌握指针的运用方法。
(3)掌握数组的指针和指向数组的指针变量。
(4)掌握指针与函数的关系。
(5)能正确使用字符串的指针和指向字符串的指针变量。
(6)了解指向函数的指针。
(7)了解指向指针变量的指针的概念及其使用方法。
二、实验内容完成实验指导书中的实验八“基础部分”和“增强部分”的题目。
实验九的内容由同学自行选作。
三、实验步骤及结果【基础题】:Ex8-1请在下面分别插入改正错误后的源程序代码及运行成功时的画面源程序代码:请在此粘贴修改后正确的程序代码。
、#include<stdio.h>//#define N 12void main(){int j, a[12],*p=a;//p=&a[N];for(j=1;j<=12;j++)scanf("%d",p);for(j=1;j<=12;j++){printf("%d",p++);if(j%4==0)printf("\n");}}运行结果:请在此粘贴本程序运行结果的截图Ex8-2请在下面插入该程序的运行结果的画面:运行结果:#include<stdio.h>swap(int *pl,int *p2){int p;p=*pl;*pl=*p2;*p2=p;}void main(){int n1,n2,n3;int *p1,*p2,*p3;printf("Input n1,n2,n3: ");scanf("%d,%d,%d",&n1 ,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if (n1>n2)swap(p1,p2);if (n1>n3)swap(p1,p3);if(n2>n3)swap(p2,p3);printf("The result is:%d %d %dn",n1,n2,n3);}请在此粘贴本程序运行结果的截图试用解释本程序是如何通过指针参数p1、p2改变主函数main中的变量n1、n2、n3的值的?请回答问题将n1,n2,n3的地址分别给p1,p2,p3,通过对n1,n2,n3两两的比较,调用函数swap进行排序,进而得到新的地址排序后输出【增强题】:Eh8-1请在下面分别完成本题的源程序代码及运行结果的画面:源程序代码:请在此粘贴完成本题的程序源代码。
实验一熟悉C语言程序的运行环境一、实验目的1、了解在该系统上如何编辑、编译、连接和运行一个C 程序;2、通过运行简单的C程序,初步了解C程序的特点。
二、实验预习1、认真阅读简单的C程序介绍,C程序上机步骤部分内容;2、编写好所需要的程序,程序的书写应该清楚整洁,一般检查应该是没有明显的错误。
如果在程序中有疑问的地方,可以标记起来,以便于上机调试时予以注意。
初学者特别忌讳上机前自己不编写程序,到时随便地抄别人的程序。
三、实验指导1、输入并运行一个简单的程序,从而熟悉所用系统的上机方法与步骤。
(1)选择File->New,使编辑窗口变成空白(2)输入下面的程序(例题1.1)#include <stdio.h>void main( ){printf("This is a C program.\n");}(3)按功能键【F9】进行编译和连接,观察屏幕上显示的编译信息。
如果出现“出错信息”,则应找出原因并改正之,再进行编译。
(4)如果编译无错误,按【Ctrl+F9】键使程序运行,按【Alt+F5】键,切换到用户屏,观察分析运行结果。
2、输入并运行一个需要在运行时输入数据的程序(1)清空编辑窗口,输入下面的程序(例题1.2)。
#include <stdio.h>void main( ){int a,b,c ;printf("input a & b:");scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d",c);}int max(int x,int y){int z ;if(x>y)z=x ;else z=y ;return(z);}(2)编译并运行,在运行时从键盘输入整数2 和5,格式为:2, 5(注意:两数据间用逗号分隔开),然后按回车键,按【ALT+F5】键,观察运行结果。
全国高等学校(安徽考区)计算机水平考试《C 程序设计》教学(考试)大纲一、课程基本情况课程名称:C 程序设计课程代号:240先修课程:计算机应用基础参考学时:72~96 学时(理论48~60 学时,实验24~36 学时)考试安排:每年两次考试,一般安排在学期期末考试方式:机试考试时间:90 分钟考试总分:100 分机试环境:Windows 7+Visual C++ 6.0设置目的:《C 程序设计》是一门重要的学科基础课程,C 语言在软件开发方面应用广泛,在计算机教育领域长期占有重要地位。
C 语言功能丰富、表达能力强、使用灵活、应用面广、目标程序效率高、可移植性好,兼具低级语言和高级语言的特点。
通过对本课程的学习,可以使学生掌握程序设计的基本理论和基本知识,掌握结构化程序设计的基本方法,培养学生程序设计能力、计算思维能力和分析解决问题的能力,为后续课程的学习和计算机应用奠定良好的基础。
二、课程内容与考核目标第 1 章 C 语言概述(一)课程内容C 语言程序的基本构成、开发环境、编辑调试过程,算法的基本概念。
(二)考核知识点C 语言程序的基本格式,头文件,main 函数,注释语句,算法的特征。
(三)考核目标了解:C 语言的形成、发展和基本特点,算法的特征。
理解:程序设计的基本概念。
掌握:C 语言程序的基本结构,C 语言编程环境。
(四)实践环节1.类型演示、验证。
2.目的与要求掌握C 语言开发环境(Visual C++ 6.0 或Visual Studio 2010 Express)的使用方法,掌握源程序的编辑、编译、链接和运行的基本方法。
第 2 章数据类型与运算(一)课程内容数据类型,标识符,常量与变量,运算符及表达式,不同类型数据的运算。
(二)考核知识点C 语言的数据类型,常量的使用,变量的定义和使用,各种运算符、运算优先级和结合性,不同类型数据的运算,C 语言的各种表达式(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件运算表达式、逗号表达式)和运算规则。
c语⾔程序设计教程(第2版)课后题及模拟题参考答案c语⾔程序设计教程(第2版)课后题及模拟题参考答案习题1 (4)1-1 填空题 (4)1-2 思考题 (4)1-3 编程题 (5)习题2 (6)2-1 单选题 (6)2-2 思考题 (6)习题3 (7)3-1 选择题 (7)3-2 填空题 (7)3-3 编程题 (8)习题4 (11)4-1单选题 (11)4-2填空题 (11)4-3 编程题 (11)习题5 (16)5-1单选题 (16)5-2填空题 (16)5-3 编程题 (16)习题6 (22)6-1单选题 (22)6-2填空题 (22)习题7 (25)7-1单选题 (25)7-2填空题 (25)7-3 编程题 (25)习题8 (26)8-1单选题 (26)8-2填空题 (26)8-3 编程题 (26)习题9 (30)9-1单选题 (30)9-2填空题 (30)9-3 编程题 (30)习题10 (38)10-1单选题 (38)10-2填空题 (38)10-3 编程题 (38)习题11 (41)11-1单选题 (41)11-2填空题 (41)习题12 (42)12-1单选题 (42)12-2 填空题 (42)实验1 熟悉Visual C++6.0可视化集成开发环境 (43)实验2 顺序结构程序设计 (43)实验3 选择结构程序设计 (43)实验4 循环结构程序设计 (44)实验5 函数 (47)实验6 数组 (54)实验7 指针 (58)实验8 结构体和共⽤体 (61)实验9 ⽂件 (63)实验10 综合编程 (64)模拟试卷(⼀)参考答案 (65)模拟试卷(⼆)参考答案 (67)习题11-1 填空题1. 函数2. 主函数main(),主函数main()3. 主函数main()4. 函数⾸部,函数体5. {, }6. /*, */7. 顺序结构,选择结构,循环结构8. .c, .obj, .exe1-2 思考题1. 结构化程序设计是指:为使程序具有⼀个合理的结构以保证程序正确性⽽规定的⼀套如何进⾏程序设计的原则。
××××实验报告(×-×学年第二学期)课程名称:《C语言程序设计》班级:学号:姓名:实验室(中心)名称:教学单位:年月日实验名称:循环结构程序设计指导教师:实验日期:地点:同组学生姓名:(每人独立完成)实验过程:(可附页)1.写出以下程序的执行结果,并分析其实现的功能。
#include<stdio.h>main(){int i=1,sum=0;while(i<10){sum+=i;i=i+2;}printf("%d\n",sum);}执行结果:实现的功能:求小于10的奇数之和。
3. 比较以下两个程序,得出运行结构并分析原因。
程序一:#include <stdio.h>main(){int a=0;while(a<0){a++;}printf("%d\n",a);}执行结果:程序二:#include <stdio.h>main(){int a=0;do{a++;}while(a<0);printf("%d\n",a);}执行结果:分析2个程序结果不同的原因:程序一先判断是否满足条件再运行,而程序二先运行后再判断,故而输出结果不同。
6. 分析以下程序的运行结果为什么不是6?#include <stdio.h>main(){int i,s;for(i=1;i<=3;i++)s+=i;printf("%d\n",s);}执行结果:运行结果为什么不是6?由于s初始值未给出而导致结果不同。
7.分析以下程序运行后变量i的值。
#include <stdio.h>main(){int i,s=0;for(i=1;i<=100;i++){s+=i;if(s==55)break;}printf("%d\n",i);}分析以下程序运行后变量i的值:10.写出以下程序的输出结果。
第一篇:《C程序设计》实验教案《C程序设计》实验教案一、实验的目的与任务:《C程序设计》是一门实践性很强的课程。
通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。
并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。
通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。
二、实验项目与要求实验一:C程序的运行环境和运行一个C程序的方法(2学时)实验性质:验证性实验一、实验目的1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容1.调用编辑程序,输入教材第一章习题1.1程序,并进行编译和运行。
应了解所用的系统是用什么命令进行编译和连接运行的。
编译和连接后所得到的目标程序的后缀是什么形式的?2.输入并运行教材第一章中习题1.4。
3.输入并运行教材第一章中习题1.9,了解如何在运行时向程序变量输入数据。
实验二数据类型、运算符和表达式(2学时)实验性质:验证性实验一、实验目的1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)1 和自减(--)运算符的使用。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容1.输入并运行教材第三章例3.6.即:#include void main(){char c1,c2;c1=97;c2=98;printf(“%c %c\n”,c1,c2);printf(“%d %d\n”,c1,c2);} 在此基础上①将第二行改为:int c1,c2; 再使之运行,分析结果。