C++程序设计实验七_参考答案

合集下载

c程序设计实验参考答案

c程序设计实验参考答案
编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。
main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;

C语言程序设计实验-答案

C语言程序设计实验-答案

C语言程序设计实验-答案(总17页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小---前言-/*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。

本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。

为回报度娘及众网友的帮助,本文档免费下载。

*//*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*//*努力吧,骚年以及学妹们!*//*整理ed by 口玉刀一 of GUET.*/=====================实验一 C语言程序初步=====================已知a=5,b=4,c=6,求出s并换行#include""main(){int a,b,c,s;a=5;b=4;c=6;s=(a+b+c)/3;printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s);}输入一个数字求他的平方#include<>main(){int r,s;scanf("%d",&r);s=r*r;printf("s=%d\n",s);}(1)#include<>main(){printf(" *\n");printf("***\n");printf(" *\n");}(2)main(){int v;int a,b,c;(2)#include<>main(){int m;double x;scanf("%d",&m);x=*m*m;printf("%f",x);}入a,b,c三个变量,计算数学公式(a*b)/cmain(){int a,b,d;float s,c;scanf("%d%d%f",&a,&b,&c);d=a*b;s=d/c;printf("%f",s);}=================================实验三顺序结构和输入输出方法=================================(1)main(){int m=345,t;float n=;t=*100;printf("m=%d,n*100=%d\n",m,t);}(2)main(){int a,b,c,s,v;scanf("%d%d%d",&a,&b,&c);s=a*b;v=a*b*c;printf("%d,%d,%d\n",a,b,c);printf("s=%d,v=%d\n",s,v);}(1)main(){int m,n;float x=,y=;scanf("%d,%d",&m,&n);printf("%6d,%6d",m,n); /*每个数的输出宽度为6,两个数之间逗号建个。

大学生C语言程序设计(第四版 谭洪强)实验7 答案

大学生C语言程序设计(第四版 谭洪强)实验7 答案

实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。

例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。

注意:n 的值要求不大于100。

算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。

注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。

n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。

参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。

合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。

例如,当a=45,b=12,调用该函数后,c=5241。

算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。

c语言程序设计案例教程 实验项目-设计性题目参考答案

c语言程序设计案例教程 实验项目-设计性题目参考答案

C语言程序设计案例教程(含实验)设计性实验的程序参考答案实验项目一 C程序的编辑、编译、连接和运行题目:编写程序,要求屏幕上显示如下信息:************************ This is a C program .************************程序:#include <stdio.h>void main(){printf(“***********************”);printf(“* This is a C program .*”);printf(“***********************”);}实验项目二数据类型、运算符、表达式题目(1)程序填空:输入1 个实数x,计算并输出其平方根(保留1 位小数)。

填空1.double x,root;2.root=sqrt(x);(2)输入一个大写英文字母,输出相应的小写字母。

填空1.ch=ch+32;实验项目三顺序结构程序设计题目(1)编写程序,输入三角形的三边长a、b、c,求三角形面积area。

程序代码:#include <stdio.h>#include <mach.h>main(){float a,b,c,s,arer;printf(" 请输入三角形的三个边a,b,c:\n");scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的边为a=%7.2f, b=57.2f, c=%7.2f\n",a,b,c);printf("三角形的面积area=%7.2\n ",area);(2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

C程序设计实验报告(答案)

C程序设计实验报告(答案)

C程序设计实验报告(答案)《C程序设计》实验报告班级:学号:学期:2009--2010学年第⼆学期姓名:《C程序设计》实验报告学期:2009--2010学年第⼆学期教师姓名:教研室:软件⼯程教研室实验1 熟悉C语⾔程序的运⾏环境,掌握数据描述1.1 实验⽬的1.了解在开发环境中如何编辑、编译、连接和运⾏⼀个C语⾔程序。

2.通过运⾏简单的C语⾔程序,初步了解C语⾔程序的结构特点。

3.掌握C语⾔数据类型的概念,学会使⽤C语⾔的相关运算符构成表达式。

1.2 实验预习1.熟悉Turbo C的启动和退出及Turbo C中的编辑、编译、连接和运⾏命令。

2.了解下列命令及函数:include、main、printf、scanf。

3.熟悉Turbo C环境下每个菜单项的功能及相关命令对应的操作。

4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。

int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。

6.常量与变量的区别和联系。

表1-1 Turbo C主菜单项功能表表1-2 Turbo C提⽰⾏功能表表1-3 Turbo C快捷操作表4.熟悉Turbo C环境下的块操作。

表1-4 基本光标命令功能操作表表1-5 快速光标移动命令功能操作表表1-6 插⼊与删除命令功能操作表表1-7 块操作命令功能操作表表1-8 其他命令功能操作表1.3 实验任务1.输⼊下列程序,记录在Turbo c 下的操作⽅法。

#includemain(){printf(“I am a student!”);}环境的启动操作:我的电脑—磁盘(各机房磁盘⽬录有所不同)—Turbo C⽂件夹—tc。

Exe 。

程序的编译⽅法:快捷键是 Alt+F9 ;菜单操作是Compile—compile to OBJ程序的保存⽅法:快捷键是 F2 ;菜单操作是 File--Save程序的运⾏⽅法:快捷键是Ctrl+F9;菜单操作是 Run运⾏结果的查看:快捷键是 Alt+F5 ;菜单操作是 Run—User Screen环境的退出操作:快捷键是 Alt+X ;菜单操作是 File--Quit4.现欲将编好的上例程序以⽂件名my.c保存⾄当前⽬录下,请阐述⽅法;当重新进⼊TC对其进⾏简单修改后欲将其另存⾄C 盘SY⽂件夹下(SY⽂件夹请⾃⾏创建),叙述⽅法。

c程序设计(谭浩强)第七章习题答案

c程序设计(谭浩强)第七章习题答案
{
int i;
float ave=0;
for(i=0;i<10;i++)
ave=ave+a[i][n]/10;
return ave;
}
void max(float a[][5]) //最高分的学生和课程
{
int i,j,row,colum;
float max=a[0][0];
for(i=0;i<10;i++)
# include <stdio.h>
# include<math.h>
# include<string.h>
/*int yue(int a,int b) //求最大公约数
{
int i,min;
min=a>b?b:a;
for(i=min;i>0;i--)
{
if(a%i==0&&b%i==0)
{
return i;
if((mid%2)!=1) //因职工号序号为奇数,故强制把序号转为奇数
mid-=1;
if(strcmp(b,a[mid])>0) //不能写b>a[mid]
{min=mid+2;}
else if(strcmp(b,a[mid])<0) //不能写b<a[mid]
{max=mid-2;}
else
{printf("职工姓名为:%s\n",a[mid-1]);break;}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%-2d",b[i][j]);

C语言程序设计实验实验指导书及答案

C语言程序设计实验实验指导书及答案

常熟理工学院电气与自动化工程学院《C语言程序设计》实验指导书实验一熟悉C程序运行环境班级学号姓名成绩一、实验目的1. 熟悉C语言Visual C++6.0调试环境。

2. 掌握C程序的编辑、调试及运行。

二、实验内容项目1. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){printf(“Good morning!\n”);printf(“Hello,world!\n”);return 0;}运行结果(注意,按照屏幕输出格式写):项目2. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){int a , b , sum; /*定义变量*/a=23; b=56; /*为变量赋值*/sum=a+b; /*计算两个变量的和*/printf(“sum is %d\n”,sum); /*输出计算结果*/return 0;}运行结果:2项目3. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int max(int,int);int main(){int a , b , c; /*定义变量*/a=23; b=56; /*为变量赋值*/c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/return 0;}int max(int x,int y) /*定义max函数,函数值为整型*/ {int z; /*定义变量*/if(x>y)z=x;elsez=y;return(z); /*将z的值返回*/}运行结果:三、提高部分1.试想,如果求10个数中的最大者,则程序该如何编写。

程序代码运行结果:实验二数据及其运算班级学号姓名成绩一、实验目的1. 掌握C数据类型的概念、熟悉整型、字符型和实型基本类型的常量的用法;学会三种基本类型变量的定义、赋值和使用方法。

实验七 CCS环境下C程序设计

实验七 CCS环境下C程序设计

实验七CCS环境下C程序设计一、实验目的1.学习C语言的编程;2.掌握在CCS环境下的C程序设计方法;3.熟悉用C语言开发DSP程序的流程。

二、实验设备PC机,CCS软件三、实验步骤与内容1、实验说明CCS包含C编译器,支持标准C以及C和汇编混合编程。

C编译器包括三个功能模块:语法分析、代码优化和代码产生,如下图所示。

其中,语法分析(Parser)完成C语法检查和分析;代码优化(Optimizer)对程序进行优化,以便提高效率;代码产生(Code Generator)将C程序转换成C54x的汇编源程序。

本实验通过一些对数组及数据指针的基本操作,让实验者能够对使用C语言在CCS环境下编程有一个一目了然的认识。

并使用汇编语句,以体会两者综合运用时的优越性。

2、实验流程图3.以设计正弦波为例,说明本实验流程a.连接好DSP开发系统,实验箱上电,打开PC机界面下的CCS2.0软件。

b.CCS 2.0启动后,用Project/Open打开“DSP54X-07”目录下的“Exp07.pjt”工程文件,双击“Exp07.pjt”及“Source”可查看各源程序;并加载“Exp03.out”;单击“Run”运行程序;c.用View/Graph/Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;观察变量为x,长度为500,数值类型为16位有符号整型变量;如下图所示,图中下半部分为观察图形窗口的设置,上半部分为观察的图形。

d.查看源程序,参考流程图,分析程序设计思路与流程;关闭窗口,本实验结束。

四、参看以下实验程序说明,加强对C语言设计程序的学习。

}。

C语言程序设计教程 第七章 课后习题参考答案

C语言程序设计教程 第七章 课后习题参考答案
printf("原数组为:\n");
for(i=0;i<N;i++)
{
printf("%4d",a[i]);
}
bubble_sort(a,N);
printf("\n");
}
void bubble_sort(int a[],int n)
{
int i,j,tmp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
for(i=0;i<n/2;i++)
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
for(i=0;i<n;i++)
{
printf("%-4d",a[i]);
}
}
P1985对称矩阵
#include<stdio.h>
void print(int a[][3],int rows,int cols);
int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i,j,m=0,n=0;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<M;i++)
m++;

C程序设计第1-7章部分习题参考答案

C程序设计第1-7章部分习题参考答案

课后习题解答(第1-7章)第一章1_1.1_1_2判断正误:即使两个整型数据未超出该数据的取值范围,它们的和也可能会超出该数据取值范围。

正确。

1_1_4判断正误:一个C程序可以有多个函数,其中主函数必须在程序的最开头。

错误。

其它函数如果要在主函数中使用的话,必须先在主函数之前定义或者声明。

1_1_6判断正误:若有定义“float x=1.3;”,则表达式(int)x的值为1,因此可以说x中存放的值就是1。

错误。

(int)x表达式的值与x的值是不一样的,前者是对x取整后的数值,而取整运算对x 自身的值不会产生影响。

1_1_8判断正误:若有命令行“#define N 1000”,则N++是不合法的表达式。

正确。

N为符号常量,不能对符号常量进行修改。

1_1_10 C程序是由函数构成的,一个C程序必须有一个主函数。

1_1_12以下变量中不合法的是②、④、⑥,合法的是①、③、⑤、⑦、⑧。

①name ②double ③Int ④if ⑤for_1 ⑥2k ⑦a12345678 ⑧_a1_1_14下面程序段的输出结果是1,1.000000int a; double b;a=b=123/100%2;printf("%d,%f", a, b);1_1_16 a*a*a*b*b/(c-d)1_1_20假设圆柱体的底面半径为r(=2.5),高为h(=3.5),请按下面给定的步骤编写求体积(体积=底面积X高)的程序。

①定义变量r,h,v(存放体积值),注意变量的数据类型。

②给变量r,h赋值。

③计算体积,并将结果存放在v中。

④输出r,h,v的值。

程序如下:#include <stdio.h>#define PI 3.1415926main(){float r, h, v;r=2.5;h=3.5;v=PI*r*r*h;printf("r=%f, h=%f, v=%f\n", r, h, v);}1_1_22编写输出以下图形的程序。

C实验报告(第七章)解答

C实验报告(第七章)解答

《高级语言程序设计》实验报告班级: 学号: 姓名: 成绩:实验日期: 年月日实验题目: 实验七指针程序设计实验目的:实验内容: (包括算法说明: 用文字或流程图说明;程序清单;运行结果: 原始数据、相应的运行结果和必要的说明。

)序(程序以文件名sy7_7.c存盘)。

#include<stdio.h>void sort(int *p,int n){int i,j,t;for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++)if(*(p+j)>*(p+j+1)) //由小到大排序{ t=*(p+j); *(p+j)=*(p+j+1);*(p+j+1)=t;} }void main(){int a[10],i;printf("输入%d个正数: ",10);for(i=0;i<10;i++)scanf("%d",&a[i]);sort(a,10); //调用排序函数printf("排序后: \n");for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");}把当前的字母变成后面第3个字母, 如最后三个字母x、y、z变成字母a、b、c。

再设计一函数把加密字符还原(程序以文件名sy7_8.c存盘)。

#include<stdio.h>void jiami(char *ch){ char *p=ch;while(*p!='\0'){ if(*p>='a' && *p<='z'|| *p>='A'&& *p<='Z'){*p=*p+3;if(*p>'Z'&&*p<'a' ||*p>'z') *p=*p-26;}++p;}}void jiemi(char *ch){ char *p=ch;while(*p!='\0'){ if(*p>='a'&& *p<='z'||*p>='A'&& *p<='Z'){ *p=*p-3;if(*p<'A'||*p<'a'&&*p>'Z') *p=*p+26;}++p;}}void main(){char line[80];printf("请输入一行字符:\n");gets(line);jiami(line);puts(line);jiemi(line);puts(line);}(3)编写一个程序实现如下功能: 输入一个字符串, 内有数字和非数字字符, 如: a123x456 17960?302tab5876 将其中连续的数字作为一个整数, 依次存放到一数组a中。

c程序设计教程与实验课后实验答案

c程序设计教程与实验课后实验答案

c程序设计教程与实验课后实验答案【篇一:c程序设计教程与实验__吉顺如__实验一到七】> 一、实验目的1.掌握在visual c++6.0环境下c程序的建立、编辑、编译和执行过程。

2.掌握c程序的最基本框架结构,完成简单程序的编制与运行和调试。

3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。

二、实验内容1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。

输入该c程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c保存。

#include stdio.h main() {int a,b,sum; /*定义整型变量a、b、sum */ printf(please input a,b \n); /*输出提示信息*/(1计算x*y的值并将结果输出。

试纠正程序中存在的错误,以实现其功能。

程序以文件名sy1_2.c保存。

#include stdio.hmainmain(){ int x=2;y=3;a int x=2,y=3,a; a=x*ya=x*y;print (a=%d,a);printf (a=%d,a); printf(\n);}(2)下程序的功能为:求两数中的较大数据并输出。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy1_3.c保存。

#include stdio.h1viod main()voidmain() {int a ,b , max;scanf(“%d,%d”,a,b);scanf(“%d,%d”,a,b); max=a; max=a;if (maxb) max=b; if (maxb) max=b; printf(“max=%d”,ma x);printf(“max=%d”,max); }3.程序填空题(1)从键盘输入两个整数,输出这两个整数的和。

根据注释信息填写完整程序,以实现其功能。

以文件名sy1_4.c保存。

#includestdio.h main() {/* 定义整型变量x,y,total*/ printf(please input x,y !);/*输出提示信息 *//*由键盘输入两个数分别赋予x和y*/ total=x+y;/*赋值语句 */printf(%d + %d=%d\n,x,y,total);/* 输出两个整数的和 */ }(2)从键盘输入两个整数,输出这两个整数的差。

【优质文档】C语言程设计实验与案例周信东主编实验七--函数

【优质文档】C语言程设计实验与案例周信东主编实验七--函数
char *p = src; int i,j; for(i=0;src[i];i++) {
if(src[i]==' ') {
for(j = i; src[j]; j++) src[j] = src[j+1];
i--; } } return p; }
int main () {
char s[128] = {0};
运行结果截图:
请在此粘贴本程序运行成功时的截图
:\n");
精品资料
欢迎下载
【增强题】: Eh7-1 请在下面分别完成本题的源程序代码及运行结果的画面: 源程序代码:
请在此粘贴完成本题的程序源代码。
#include <stdio.h> #include <string.h>
char *Del(char *src) {
Ex7-2 请在下面分别插入改正错误后的源程序代码及运行成功时的画面: 源程序代码:
请在此粘贴修改后正确的程序代码。
#include <stdio.h> #include <stdlib.h>
float px(float x, int n) {
精品资料
欢迎下载
if(n>0) return x*px(x,n-1); else
精品资料
欢迎下载
实验 5 函数
学号:
姓名:
实验日期:
一、 实验目的和要求
(1)掌握 C 语言函数的定义方法、函数的声明及函数的调用方法。 (2)掌握函数实参和形参的对应关系以及“值传递”的方式。 (3)掌握函数嵌套调用和递归调用的方法。 (4)掌握全局变量和局部变量、动态变量和静态变量的定义、说明和使用方法。

C++程序设计实践指导书7(答案)

C++程序设计实践指导书7(答案)

C++程序设计实践上机指导书(第七次)专业_____________________________班级_____________________________学号_____________________________姓名_____________________________沈阳工程学院信息学院实践成绩评价说明1)上机前充分准备实践材料,对上机内容有程序草稿。

(10分)2)独立完成实践任务,对实践过程非常清晰。

(30分)3)认真理解知识点,能够与理论知识相结合。

(10分)4)在机房遵守上机守则,接受实践指导教师的监督与管理。

(20分)5)认真填写实践指导书,写出实践小结。

(10分)6)在实践中具备一定的创新思想,能够主动与指导教师探讨。

(5分)7)加大实践工作量,主动完成实践指导书中的选做题目。

(5分)8)掌握程序调试的方法,认真完成程序调试工作,使程序能够运行(10分)上机七继承与派生(二)、目的1. 理解继承与派生、单继承与多继承的概念;2 •理解基类与派生类的定义及使用方法,派生类对象及初始化方法;3.理解继承与派生过程中,把派生类作为基类构成类族的概念及虚基类的概念。

void show(){ cout«"ID: "vvIDvve ndl;coutv <"n ame: " <<n ame<<e ndl; cout<<"sex: "vvsexvve ndl;cout<<"age: " vvagevve ndl;} private: int ID; stri ng n ame; char sex; int age;};classCourse{public:Course (nt eno ,char * cn, float ch){ cnum=cno;cn ame=c n; chour=ch;}void show(){cout<<"Course nu mber: "<<c num <<e ndl;cout<<"Course n ame : "<<c name<<e ndl; cout<<"Course hours:"<<chour<<e ndl;} private: int enum; stri ng cn ame; float chour;};classSelCoursepublic Stude ntpublic Course{ public:SelCourse(nt i,stri ng n, char s,i nt a,int eno ,char* cn ,float ch,float g):Stude nt(i, n,s,a),Course(c no,c n,ch){score=g;}void show(){Stude nt::show();2、Course::show(); cout«"Score: "vvscorevve ndl;} private:float score; };void mai n(){Student s1(0001"林维",'S',21); s1.show(); cout«e ndl;Course c1(1001"高级语言程序设计",64); c1.show(); cout«e ndl;SelCourse sc1(9901"张帅",‘M',22,1002,"面向对象程序设计 C++",56,89); sc1.show(); }#i nclude <iostream> #in clude <stri ng> using n amespacestd;classPo int { public:tM -.'.rtfll.,・祿u s "'.it.■ mex it inun丹剧啓nri 岂見血餐刑迪占忡用曲廊里〒的・占弭鴨 aHmatfr-R. «HJA ,英鼻・殖畫”《 血斗厢打■玉■•.; uvq 料惟耳TS H^ram frrrtritmfi 注 话 E4tT^. A KW PA U-VS ItWitff.R-'PFS* Etitle* ftS- -Ecn-ni.FSlfflr耳< i<TT«n>f FUN r.** 書11曲B:耳y- 云科-MW 巧-鼻■上Wil■r c-H»#Lt*TieaK.*.a !B son-■-■>・「齐JI «s> aa・・ ^ra«. -UTW甘.RttfhftHk . AS> "«・,科 貫!8予工电■唧由LaurwC r mLEQl .f l«4t |JPoint(int xx=0, int yy=O){x=xx;y=yy;}int getX() { return x; }int getY() { return y; }void show() {cout<<"(" <<x <<"," <<y<<")" << e ndl;} protectedint x,y;};classCircle:virtual public Point{public:Circle(int xx=0,int yy=0,float r=1):Point(xx,yy) { radius=r;}int getR() {retur n radius;}void show(){coutvv"圆心坐标:";Poi nt::show(); cout«"圆半径:"<<radius<<e ndl;}protectedfloat radius;};classcyli nder:public Circle{public:cylinder(int xx=0,int yy=0,float r=1,float h=2):Point(xx,yy),Circle(r) { height=h;}int getH() {retur n height;}void show(){Circle::show();cout<<"圆柱体高度:"<<height<<endl;}private:float height;};int mai n(){Poi nt p1(1,2);p1.show();。

[练习]C语言实验七、函数程序设计答案

[练习]C语言实验七、函数程序设计答案

实验七 函数及程序结构(二)一、实验目的1.掌握函数的嵌套调用和递归调用2.掌握数组做函数参数的用法3.掌握全局变量和局部变量的用法。

?4.掌握变量的存储类别。

?二、实验内容1.[目的]掌握函数的嵌套调用方法。

[题目内容] 编写程序计算cb a 。

要求设计主函数main()读取a 、b 、c 的值,并调用ratio 函数计算a/(b-c)的值。

如果(b-c)=0那么ratio 就不能计算,因此,ratio 函数调用另一个函数dif ,以测试(b-c)的差是否为零,如果b 不等于c ,dif 返回1,否则返回0。

[输入] a 、b 、c 的值[输出] 计算结果[提示] main 函数调用ratio 函数,ratio 函数调用dif 函数。

三个函数平行定义,嵌套调用。

#include <stdio.h>void main(){float ratio(int x,int y ,int z);int dif(int x,int y);int a,b,c;float d;printf("请输入a,b,c:");scanf("%d%d%d",&a,&b,&c);d=ratio(a,b,c);if(d==0.0) printf("b-c 为零。

");else printf("%d/(%d-%d)=%f\n",a,b,c,d);}float ratio(int x,int y ,int z){if(dif(y ,z)==1) return (float)x/(float)(y-z);else return 0.0;}int dif(int x,int y){if(x==y) return 0;else return 1;}2.[目的]利用标准库提供的随机数功能。

[题目内容]编写程序,帮助小学生练习乘法计算。

C++程序设计实验七_参考答案

C++程序设计实验七_参考答案
int* t =newint[3];
t[0] = 3;
t[1] = 4;
t[2] = 5;
for(inti = 0; i <3; i ++)
printf("t[%d] = %d\n", i, t[i]);
//s.声明一个本地类Point类的指针u,在堆中创建一个个元素的Point类的对象数组并将该数组的首地址赋给该指针,为三个数组元素分别赋值(1, 2)、(3, 4)、(5, 6),在一个循环中打印该数组所有元素各个分量的值,然后删除该数组。
deleter;
//q.声明一个本地类Point(可以用包含个int型变量和一个有参数构造函数的结构体表示)的指针s,在堆中创建一个Point类的对象,调用构造函数为该对象的两个数据成员赋初值和,并将该对象的地址赋给该指针,打印两个数据成员的值,然后删除该对象。
structPoint {
intm_x, m_y;
//n.在一个循环中通过q的增量和取值运算,打印出A的所有元素的值;
for(inti = 0; i < 10; i ++) {
printf("q = %d, q++\n", *q);
q ++;
}
//o.在一个循环中通过q的负增量,反序打印出A的所有元素的值;
for(inti = 0; i < 10; i ++) {
广东金融学院实验报告
课程名称:C++程序设计
实验编号
及实验名称
实验7数组与指针练习
系别
参考答案
姓名
学号
班级
实验地点
新电403

C++程序设计习题答案第七章

C++程序设计习题答案第七章

C++程序设计习题答案第七章(总5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第七章动态内存分配习题一、基本概念与基础知识自测题填空题C/C++定义了4个内存区间:(1)、(2)、(3)和(4)。

答案:(1)代码区,存放程序代码;(2)全局变量与静态变量区,存放全局变量或对象(包括静态);(3)局部变量区即栈(stack)区,存放局部变量;(4)自由存储区(free store),即动态存储区或堆(heap)区。

静态定义的变量和对象用标识符命名,称为(1);而动态建立的称为(2),动态建立对象的初始化是通过(3)实现(4)。

答案:(1)命名对象(2)无名对象(3)初始化式(initializer)(4)显式初始化在用new运算符建立一个三维数组15*30*10时,使用了(1)个下标运算符,对应的用delete运算符注销这个三维数组时使用了(2)个下标运算符。

new返回的指针是指向(3)的指针。

答案:(1)3个(2)1个(3)30行10列的2位数组当动态分配失败,系统采用(1)来表示发生了异常。

如果new返回的指针丢失,则所分配的自由存储区空间无法收回,称为(2)。

这部分空间必须在(3)才能找回,这是因为无名对象的生命期(4)。

答案:(1)返回一个空指针(NULL)(2)内存泄漏(3)重新启动计算机后(4)并不依赖于建立它的作用域按语义的默认复制构造函数和默认复制赋值操作符实现的复制称为(1),假设类对象obj中有一个数据成员为指针,并为这个指针动态分配一个堆对象,如用obj1按成员语义拷贝了一个对象obj2,则obj2对应指针指向(2)。

答案:(1)浅拷贝(2)同一个堆对象单链表的结点包含两个域:(1)和(2)。

使用链表的最大的优点是(3),即使是动态数组也做不到这一点。

答案:(1)数据域(2)指针域(3)用多少空间,开多少空间进入单链表必须通过单链表的(1),如果它丢失则(2),内存也(3),在单链表中进行的查找只能是(4)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

广东金融学院实验报告课程名称:C++程序设计实验编号实验7数组与指针练习系别参考答案及实验名称姓名学号班级实验地点新电403实验日期2011-11-24实验时数4指导教师曲政同组其他成员无成绩一、实验目的及要求1.学习C/C++数组和指针的概念和使用方法。

2.练习C++/CLI托管数组的创建方法和元素访问方法。

二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)硬件设备:联网的个人计算机操作系统:Windows XP编译系统:Visual Studio2005三、实验内容及步骤(包含简要的实验步骤流程)1.内容和步骤⑴仔细阅读本课件的知识点和例题,努力理解其中的文字阐述和源代码,必要时可将源代码拷入Visual Studio2005生成的C++/CLR框架编译和运行,将运行结果与源代码对照,加深对C/C++数组和指针的理解。

⑵在理解本课件内容的基础上,编写C/C++程序实现下列文字描述:a.声明一个int型变量x,并赋初值3;b.打印x的值;c.打印x的地址;d.声明一个指向int的指针p,并让其指向变量x;e.打印p所指变量的值f.打印p的值;g.声明一个有10个元素的一维本地整型数组A,并为其赋初值0~9;h.在一个循环中打印A的所有元素的值;i.打印A的值;j.打印A的第一个元素的地址;k.声明一个指向int的指针q,并让其指向A的第一个元素;l.在一个循环中通过q后跟下标,打印出A的所有元素的值;m.在一个循环中通过q加上循环变量和取值运算,打印出A的所有元素的值;n.在一个循环中通过q的增量和取值运算,打印出A的所有元素的值;o.在一个循环中通过q的负增量,反序打印出A的所有元素的值;p.声明一个int型指针r,在堆中创建一个int型变量,为该变量赋初值3,并将该变量的地址赋给该指针,打印出该变量的值,然后删除该变量。

q.声明一个本地类Point(可以用包含2个int型变量和一个有参数构造函数的结构体表示)的指针s,在堆中创建一个Point类的对象,调用构造函数为该对象的两个数据成员赋初值3和4,并将该对象的地址赋给该指针,打印两个数据成员的值,然后删除该对象。

r.声明一个int型指针t,在堆中创建一个3个元素的int类型数组并将该数组的首地址赋给该指针,为三个数组元素分别赋值3、4、5,在一个循环中打印出所有元素的值,然后删除该数组。

s.声明一个本地类Point类的指针u,在堆中创建一个3个元素的Point类的对象数组(需在Point中添加无参数构造函数)并将数组的首地址赋给该指针,为三个数组元素分别赋值(1,2)、(3,4)、(5,6),在一个循环中打印该数组所有元素分量的值,然后删除该数组。

t.用基本语法声明并创建一个10个元素的一维托管整型数组B,并在一个循环中为元素赋值0~9;u.在另一个循环中打印B所有元素的值。

v.用初值表方式声明并创建一个10个元素的一维托管整型数组C,并为其元素赋初值10~19;w.在一个循环中打印C所有元素的值。

x.用数组C为数组B赋值。

y.在一个循环中打印B和C所有元素的值。

2.提示和要求⑴首先将上面的文字描述拷入Visual Studio2005生成的C++/CLR框架,在每条文字描述之前加“//”将其变为注释,并在其下留一个空行准备编写对应的程序。

⑵对应于逐条文字描述,在其下编写程序(可能是一个或一组语句),每编写一条文字描述对应的程序,就编译(运行)一次,以保证语法和算法的正确性。

⑶当全部文字描述所对应的程序编写完成,并编译、运行正确,将文字描述和源代码拷入实验报告。

⑷对C/C++的数组和指针做简要总结。

四、实验结果(源程序)#include"stdafx.h"#include<stdio.h>using namespace System;int main(array<System::String^>^args){//a.声明一个int型变量x,并赋初值;int x=3;//b.打印x的值;printf("x=%d\n",x);//c.打印x的地址;printf("&x=%x\n",&x);//d.声明一个指向int的指针p,并让其指向变量x;int*p=&x;//e.打印p所指变量的值printf("*p=%d\n",*p);//f.打印p的值;printf("p=%x\n",p);//g.声明一个有个元素的一维本地整型数组A,并为其赋初值0~9;int A[10]={0,1,2,3,4,5,6,7,8,9};//h.在一个循环中打印A的所有元素的值;for(int i=0;i<10;i++)printf("A[%d]=%d\n",i,A[i]);//i.打印A的值;printf("A=%x\n",A);//j.打印A的第一个元素的地址;printf("A=%x\n",&A[0]);//k.声明一个指向int的指针q,并让其指向A的第一个元素;int*q=A;//l.在一个循环中通过q后跟下标,打印出A的所有元素的值;for(int i=0;i<10;i++)printf("q[%d]=%d\n",i,q[i]);//m.在一个循环中通过q加上循环变量和取值运算,打印出A的所有元素的值;for(int i=0;i<10;i++)printf("q+%d=%d\n",i,*(q+i));//n.在一个循环中通过q的增量和取值运算,打印出A的所有元素的值;for(int i=0;i<10;i++){printf("q=%d,q++\n",*q);q++;}//o.在一个循环中通过q的负增量,反序打印出A的所有元素的值;for(int i=0;i<10;i++){q--;printf("q--,q=%d\n",*q);}//p.声明一个int型指针r,在堆中创建一个int型变量,为该变量赋初值,并将该变量的地址赋给该指针,打印出该变量的值,然后删除该变量。

int*r=new int(3);printf("指针r所指动态变量的值为:%d\n",*r);delete r;//q.声明一个本地类Point(可以用包含个int型变量和一个有参数构造函数的结构体表示)的指针s,在堆中创建一个Point类的对象,调用构造函数为该对象的两个数据成员赋初值和,并将该对象的地址赋给该指针,打印两个数据成员的值,然后删除该对象。

struct Point{int m_x,m_y;Point(int x,int y):m_x(x),m_y(y){}Point(){}};Point*s=new Point(3,4);printf("Point::m_x=%d,Point::m_y=%d\n",s->m_x,s->m_y);delete s;//r.声明一个int型指针t,在堆中创建一个个元素的int类型数组并将该数组的首地址赋给该指针,为三个数组元素分别赋值3、4、5,在一个循环中打印出所有元素的值,然后删除该数组。

int*t=new int[3];t[0]=3;t[1]=4;t[2]=5;for(int i=0;i<3;i++)printf("t[%d]=%d\n",i,t[i]);//s.声明一个本地类Point类的指针u,在堆中创建一个个元素的Point类的对象数组并将该数组的首地址赋给该指针,为三个数组元素分别赋值(1,2)、(3,4)、(5,6),在一个循环中打印该数组所有元素各个分量的值,然后删除该数组。

Point*u=new Point[3];u[0].m_x=1;u[0].m_y=2;u[1].m_x=3;u[1].m_y=4;u[2].m_x=5;u[2].m_y=6;for(int i=0;i<3;i++)printf("u[%d].x=%d,u[%d].y=%d\n",i,u[i].m_x,i,u[i].m_y);//t.用基本语法声明并创建一个个元素的一维托管整型数组B,并在一个循环中为其元素赋值0~9;array<int>^B=gcnew array<int>(10);for(int i=0;i<10;i++)B[i]=i;//u.在另一个循环中打印B所有元素的值。

for(int i=0;i<10;i++)Console::WriteLine("B[{0}]={1}",i,B[i]);//v.用初值表方式声明并创建一个个元素的一维托管整型数组C,并为其元素赋初值10~19;array<int>^C=gcnew array<int>(10){10,11,12,13,14,15,16,17,18,19}; //w.在一个循环中打印C所有元素的值。

for(int i=0;i<10;i++)Console::WriteLine("C[{0}]={1}",i,C[i]);//x.用数组C为数组B赋值。

B=C;//y.在一个循环中打印B和C所有元素的值。

for(int i=0;i<10;i++)Console::WriteLine("B[{0}]={1},C[{0}]={2}",i,B[i],C[i]);return0;}五、实验总结(包括心得体会、问题回答及实验改进意见,可附页)程序的屏幕输出如下:x=3&x=12f374*p=3p=12f374A[0]=0A[1]=1A[2]=2A[3]=3A[4]=4A[5]=5A[6]=6A[7]=7A[8]=8A[9]=9A=12f34cA=12f34cq[0]=0q[1]=1q[2]=2q[3]=3q[4]=4q[5]=5q[6]=6q[7]=7q[8]=8q[9]=9q+0=0q+1=1q+2=2q+3=3q+4=4q+5=5q+6=6q+7=7q+8=8q+9=9q=1,q++q=2,q++q=3,q++q=4,q++q=5,q++q=6,q++q=7,q++q=8,q++q=9,q++q--,q=9q--,q=8q--,q=7q--,q=6q--,q=5q--,q=4q--,q=3q--,q=2q--,q=1q--,q=0指针r所指动态变量的值为:3 Point::m_x=3,Point::m_y=4 t[0]=3t[1]=4t[2]=5u[0].x=1,u[0].y=2u[1].x=3,u[1].y=4u[2].x=5,u[2].y=6B[0]=0B[1]=1B[2]=2B[3]=3B[4]=4B[5]=5B[6]=6B[7]=7B[8]=8B[9]=9C[1]=11C[2]=12C[3]=13C[4]=14C[5]=15C[6]=16C[7]=17C[8]=18C[9]=19B[0]=10,C[0]=10B[1]=11,C[1]=11B[2]=12,C[2]=12B[3]=13,C[3]=13B[4]=14,C[4]=14B[5]=15,C[5]=15B[6]=16,C[6]=16B[7]=17,C[7]=17B[8]=18,C[8]=18B[9]=19,C[9]=19六、教师评语。

相关文档
最新文档