浙师大 C语言 实验10函数2+答案
- 格式:doc
- 大小:57.50 KB
- 文档页数:6
C 语言程序设计( Visual C++6.0 环境)》习题答案习题十、思考题1.简述公有类型成员与私有类型成员的区别。
公有(public) 类型成员不但可以被类的成员函数访问,而且可以被外界访问,所以说公有类型定义了类的外部接口。
私有(private) 类型成员只能被类的成员函数访问,外界不能直接访问它。
类的数据成员一般都应该声明为私有成员。
2.简述构造函数与析构函数的作用。
构造函数的作用就是在对象在被创建时利用特定的值构造对象,将对象初始化。
析构函数的作用与构造函数正好相反,它是用来在对象被删除前进行一些清理工作。
析构函数调用之后,对象被撤消了,相应的内存空间也将被释放。
3.简述什么是友元函数。
友元函数是在类定义中由关键字friend 修饰的非成员函数。
友元函数可以是一个普通函数,也可以其它类中的一个成员函数,它不是本类的成员函数,但它可以访问本类的私有成员和保护成员。
4.简述公有继承、私有继承和保护继承三种继承方式的区别。
⑴、当类的继承方式为公有(public 继承)时,基类的公有(public )成员和保护( protected )成员仍然成为派生类的公有成员和保护成员,而基类的私有成员不能被派生类访问。
⑵、当类的继承方式为保护( protected )继承时,基类的公有(public )成员和保护( protected )成员将成为派生类的保护成员,而基类的私有成员不能被派生类访问。
⑶、当类的继承方式为私有(private )继承时,基类的公有(public )成员和保护(protected )成员将成为派生类的私有成员,而基类的私有成员不能被派生类访问。
5.定义一个圆柱体类,其属性为圆柱体的底面半径和高,能计算出圆柱体的体积。
#include<iostream.h>class cylinder{public:cylinder(float r,float h){radius=r;height=h;}float Volume();private:float radius;float height;};float cylinder::Volume(){return 3.14*radius*radius*height;}void main(){float r,h;cout<<" 请输入圆柱体的底面半径和高:"; cin>>r>>h;cylinder x(r,h);cout<<x.Volume()<<endl;}6.从第 5 题中定义的圆柱体类中派生出圆锥类,覆盖计算体积的成员函数。
实验10:循环结构(1)实验目的:(1)领会程序设计中构成循环的三要素;(2)熟练掌握用while语句实现循环的方法。
(3)熟练掌握用do-while语句实现循环的方法。
实验内容:1、C语言中,while与do-while循环的主要区别是________。
A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句2、设有程序段则下面描述中正确的是()。
A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次3、下述程序段的运行结果是__________。
int a=1,b=2,c=3,t;while(a<b<c){t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);A)1,2,0B)2,1,0C)1,2,1D)2,1,14、下面程序的功能是用do-while语句求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印五个数。
请填空。
5、下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。
(2)A)n:m B)m:n C)m:m D)n:n程序设计题1、(必做题)求出以下表达式的值。
S1=1+1/2+1/3+1/4+……+1/100;S2=1-1/3+1/5-1/7+……-1/99;2、(必做题)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
【程序分析】提示:利用while语句,条件为输入的字符不为'\n'.3、(必做题)求S=10!4、(选做题)从键盘上输入若干正整数,求其中最大数和最小数。
输入的数以0结束【程序分析提示】(1)设第一个读取的数是当前最大数和最小数;(2)若当前读取的整数不为0,则继续循环;(3)若当前读取的数比最大数大,则记录为最大数;比最小数小,则记录为最小数;(4)读取下一个整数。
实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。
参考公式V=4/3πr3.。
2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。
运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。
2.掌握格式输入/输出函数的用法。
3.学会简单顺序程序的设计。
4.养成良好的程序设计习惯。
二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。
Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。
Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。
二、实验内容1.编写一个程序,确定一个数的位数。
Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。
提示:利用if语句进行数的判定。
例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。
实验十函数应用一、实验目的1.掌握函数的定义和调用;2.理解形参和实参的使用和传值调用;3.理解函数声明的使用;4.掌握函数的嵌套调用;5.了解函数的嵌套与递归调用,掌握递归函数的编写规律;6.了解数组元素、数组名作函数参数。
二、实验学时数2学时三、实验步骤(一)阅读程序1.#include <stdio.h>int fun (int x, int y, int z){ z=x * x + y * y;}main(){ int a=38;fun(7,3,a);printf("%d",a);2.#include <stdio.h>void fun (int x,int y );main(){int x=5,y=3;fun(x,y);printf("%d,%d\n",x,y);}void fun (int x,int y ){ x=x+y;y=x-y;x=x-y;printf("%d,%d\n",x,y);3.#include <stdio.h>int f (int a);main(){ int s[ 8 ] = {1,2,3,4,5,6} ,i, d=0;for (i=0; f( s[i] ) ; i++)d+=s[i];printf("%d\n",d);}int f(int a){ return a%2;}4.#include<stdio.h>long f( int g){ switch(g){ case 0:return 0;case 1:case 2: return 1;}return ( f(g-1)+ f(g-2));}main ( ){ long int k;k = f(7);printf("\nk= %d\n",k);}5. #include<stdio.h>int f(int b[ ][4]){ int i,j,s=0;for(j=0;j<4;j++){ i=j;if(i>2) i=3-j;s+=b[i][j];}return s;}main( ){int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};printf("%d\n",f(a) );}(二)要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。1. 请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。#include <stdio.h>double max(double a,double b);//或者double max(double,double);main(){double x,y;scanf("%lf%lf",&x,&y);printf("%.8lf\n",max(x,y));}double max(double a,double b){return (a>b ? a:b) ;}2.以下函数的功能是:求x的y次方,请填空,并配写出主调函数。
1.阅读、调试、运行程序,比较阅读的结果和运行的结果1)运行结果2)运行结果3)运行结果4)运行结果5)运行结果6)运行结果7)运行结果2. 完善程序,并调试运行1) (1) p=a; (2) p=p-1;2) (1) *s=*t (2)*s='\0';(3) s(a,b);3) (1) *k=p; (2) &k4) (1) pa+n; (2) *q5) (1) p (2) i (2) return 1 ;6) (1) s (2) *++p3. 修正程序,并调试运行1)(1) int fun(int *a,int *b,int n)(2) 改成*b=c-a;(3) max=fun(a,&p,N);2)(1)char *p1,*p2;(2)while(*p1!='\0')(3)p1= str1+m-1 ;(4)strcopy(str1,str2,m); 3)(1)scanf("%d",p++); (2)max=p;(3)if(max==arr)(4)printf("%3d",*p++);4.编写程序1)#include<stdio.h>void main(){int a[100],n,k,m,*p,s,i; scanf("%d%d%d",&n,&k,&m); for(p=a;p<a+n;p++)*p=1;p=a+k-1;i=0;while(i!=n){s=0;while(s!=m){s=s+*p;p++;if(p==a+n)p=a;}if(p!=a){printf("%4d",p-a);*(p-1)=0;}else{printf("%4d",10);*(p+n-1)=0;}i++;}}2)#include<stdio.h>void con(char *s,char *t) {char *p;p=s;while(*p)p++;while(*t)*p++=*t++;*p='\0';}void main(){char a[80],b[80];gets(a);gets(b);con(a,b);puts(a);}3)#include<stdio.h>void main(){int a[80],b[80],c[80]; int m,n,*pa,*pb,*pc;scanf("%d",&m);for(pa=a;pa<a+m;pa++) scanf("%d",pa);scanf("%d",&n);for(pb=b;pb<b+n;pb++) scanf("%d",pb);pa=a;pb=b;pc=c;while(pa<a+m&&pb<b+n) if(*pa<*pb)*pc++=*pa++;else*pc++=*pb++;while(pa<a+m)*pc++=*pa++;while(pb<b+n)*pc++=*pb++;for(pc=c;pc<c+m+n;pc++) printf("%6d",*pc);printf("\n");}4)#include<stdio.h>void main(){int a[80],b[80],c[80]; int m,n,*pa,*pb,*pc,k; scanf("%d",&m);for(pa=a;pa<a+m;pa++) scanf("%d",pa);scanf("%d",&n);for(pb=b;pb<b+n;pb++) scanf("%d",pb);pa=a;pb=b;pc=c;while(pa<a+m) *pc++=*pa++;k=m;while(pb<b+n){pa=a;while(pa<a+m&&*pb!=*pa) pa++;if(pa==a+m){*pc++=*pb;k++;}pb++;}for(pc=c;pc<c+k;pc++)printf("%6d",*pc);printf("\n");}。
C程序设计初步一、实验目的(1) 熟悉C语言程序的运行环境(VC++ 。
(2) 掌握C语言程序的上机步骤,了解运行C程序的方法。
(3) 掌握C语言程序的书写格式和C语言程序的结构。
二、实验内容(均要求给出运行结果)1.程序改错题(1) 以下程序实现计算x×y的值并将结果输出。
请改正程序中的错误。
#include ""void main()/**********FOUND**********/{ int x=y=4;z=x*y;/**********FOUND**********/printf("z=%d/n", Z);}答案:=======(答案1)=======int x=,4,y=4,z;=======(答案2)=======printf("z=%d\n", z);(2) 以下程序实现输入圆的半径,求圆的周长。
请改正程序中的错误。
#include ""void main(){ int r;float l;printf("Enter r:");scanf("%d", &r);/**********FOUND**********/l=2πr/**********FOUND**********/printf("l=%d\n",l);}答案:=======(答案1)=======l=2**r;=======(答案2)=======printf("l=%f\n", l);2.程序填空题(1) 下面程序能对两个整型变量的值进行交换,请填空。
#include ""void main(){ int a=3,b=4,t;t=a;/***********SPACE***********/【】;/***********SPACE***********/【】;printf("a=%d,b=%d\n",a,b);}答案:=======(答案1)=======a=b=======(答案2)=======b=t(2) 下面程序不用第三个变量,实现两个数的对调操作。
《程序设计基础(C语言)》目录第1 章概述 (1)1.1 课程简介 (1)1.2 实验环境选择 (1)第 2 章实验要求 (1)2.1 实验过程要求 (1)2.2 考核及评分标准 (1)第 3 章实验内容 (2)3.1 实验1 熟悉C语言运行环境 (2)3.2 实验2 数据类型 (3)3.3 实验3 运算符和表达式 (4)3.4 实验4 顺序结构及输入和输出 (6)3.5 实验5 选择结构 (7)3.6 实验6 循环结构 (9)3.7 实验7 数组(1) (11)3.8 实验8 数组(2) (12)3.9 实验9 字符串及其操作 (13)3.10 实验10 函数 (14)3.11 实验11 结构体 (15)3.12 实验12 指针 (16)第 1 章概述1.1 课程简介《程序设计基础(C语言)》是软件工程各专业或其它相近专业学生的公共职业基础课,是软件类各专业的入门课程,直接影响学生后继职业技术课程的学习及可持续发展能力的培养。
通过本书,学习基本的程序设计概念和程序设计方法,学会使用C语言解决实际问题,进行初级的程序设计。
1.2 实验环境选择VC++6.0第 2 章实验要求2.1 实验过程要求本课程中,实验者必须服从指导教师和实验室工作人员的安排,遵守纪律与实验制度,爱护设备及卫生。
在指定的实验时间内,必须到机房内实验,其余时间可自行设计和分析。
本课程所涉及的程序代码,都要求有较高的可读性和效率,多文件表示。
2.2 考核及评分标准若实验者在指定上机时间三次不到课,取消考核资格。
请假,必须提前出具正式假条,不接受事后假条。
如果发现抄袭、篡改、伪造实验数据,或实验报告和设计报告雷同,涉及的所有学生的该课程成绩计为0 分。
本课程采用结构化评分,主要由指导教师灵活处理,可以是考勤等。
第 3 章实验内容3.1 实验1 熟悉C语言运行环境一、实验目的1.了解什么是C语言2.熟悉C语言程序开发环境二、实验内容和步骤1.大学生涯的第一个程序1)运行Microsoft Visual Studio 2008或者VC6.02)创建项目,选择win32控制台应用程序或者空项目,项目名为MyFirstApp3)新建项目,选择C++源文件,文件名为HelloWorld4)在程序编辑窗口,输入如下代码#include <stdio.h>/* 主程序*/void main(){printf("hello world\n");}5)执行程序,Ctrl+F56)观察输出结果,并记录2.修改程序1)增加语句,观察输出结果是否不同printf("hello world\n");printf("world is me\n");2)删除输出字符串中的“\n”,观察输出结果是否不同printf("hello world\n");3)进行换行输出,观察输出结果是否不同printf("hello, ");printf("world");printf("\n");4)将上个程序块中的printf("\n");去掉,观察输出结果是否不同3.用自己的语言,描述下对C语言程序的第一印象4.简单描述下,第二步骤中,输出结果相同与不同的原因;以及“\n”的用途3.2 实验2 数据类型一、实验目的1.掌握变量的命名规则和定义2.掌握C语言程序中的各种数据类型并使用它们二、实验内容和步骤1.定义3个变量numInt、numFloat、charInfo,他们的类型分别为整型,单精度类型,字符型;并分别初始化为2,2.0和‘A’,最后输出这三个变量的值。