VC实验指导书范文.doc_第1页
VC实验指导书范文.doc_第2页
VC实验指导书范文.doc_第3页
VC实验指导书范文.doc_第4页
VC实验指导书范文.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC实验指导书范文 VC实验指导书实验一创建第一个C+程序 一、实验目的1熟悉Visual C+6.0主窗口。 2掌握在Visual C+6.0中生成应用程序的过程。 3了解Visual C+6.0Developer Studio中的常用操作。 二、实验内容1.创建一个基于DOS的应用程序该项目中只包含一个源程序文件,其代码如下#includevoid main()coutWele toBeijing,xx! 三、思考题将盘上test1项目中的头文件test.h添加到本项目中,并将源程序文件改为#includetest.hvoid main()coutWele toBeijing,xx!=0;i-)s+=ai*j;j*=10;couts=void main()int a3=1,-2,0,4,-5,6,2,4,i,j,row=0,col=0,m=a00;for(i=0;i3;i+)for(j=0;j3;j+)if(aijvoid main()int a33=1,2,3,4,5,6,7,8,9,i,s=0;for(i=0;i3;i+)s+=aii;couts=#includevoid main()int i,j,a34=1,2,3,4,5,6,7,8,9,10,11,12,b43;for(i=0;i3;i+)for(j=0;j4;j+)bji=aij;for(i=0;i4;i+)for(j=0;j3;j+)cout (3) #includevoid main()运行结果为please input10numbers:12512456-8100-3xx5min=-32max=125aver=28.3下面程序的功能是将长度为5的整型数组中的数组元素按逆序存放,例如原存放顺序为1,2,3,4,5,运行程序后为5,4,3,2,1。 #include#includevoid main()int a5;int i,temp;coutplease inputthe array:;for(i=0;iai;for(i=0;_;i+)temp=ai;_;_;coutthe sortedarrey is:;for(i=0;i5;i+)cout (4)ai;/从键盘输入10个整数float aver=a0;/aver为平均值min=a0,max=a0;for(i=1;i10;i+)if(_)min=ai;if(_)max=ai;aver+=ai;_;coutmin= #include#includevoid main()int a34,b34,c34;int i,j;coutplease inputarray A:;for(i=0;i3;i+)for(j=0;jaij;coutplease inputarray B:;for(i=0;i3;i+)for(j=0;jbij;for(i=0;_;i+)for(j=0;_;j+)_;cout (4)str;coutvoid main()char str20;cin.get(str,20);cout#includevoid main()static char s120=Happy newyear*;static char s2=to you!;coutvoid main()int i=5,*p=&i;*p=10;couti=void main()static int a=1,2,3,4,5;int*p=a;*(p+3)*=3;cout*p=*p*p;p=a;min=max=*p;for(i=1;ipi)min=pi;if(max#includevoid main()char a20=xyz,*p1=abcd,*p2=ABCD;strcpy(a+1,strcat(p1+1,p2+1);cout #includevoid main()char str20;int i;coutplease inputthe string:;cin.get(str,20);for(i=0;_;_);coutthe lengthof the string is: #includevoid main()static charstr150,str210;int i,j;coutplease inputthestr1and str2:;cin.getline(str1,50);cin.getline(str2,10);for(i=0;_;i+);for(j=0;_;i+,j+)_;cout #includevoid main()int a,b,*p=&a,*q=&b,*t;coutab;if(ab)_;_;_;coutthe resultis:;cout*p,*q #includevoid main()char*p=ABCDEFGH,*q=abCDefGh;for(;_;p+,q+)if(_)cout*p;cout 输入三个字符串,要求输出其中最大者。 要求使用二维字符数组及字符串函数。 对10个字符型数据排序,由大到小排列,要求使用指针。 三问题讨论1字符数组的输入、输出有几种方法?2字符串与字符数组有何相同与不同之处?3数组元素及其地址有几种表示方法?实验七数组与指针 (二)一实验目的1掌握指针数组和数组指针的概念及其定义。 2了解多级指针的概念及其使用方法。 3掌握引用的概念。 4掌握new、delete运算符的使用形式。 二实验内容1分析以下程序,写出程序的运行结果,并上机调试验证结果#includevoid main()int a12=1,2,3,4,5,6,7,8,9,10,11,12,*p4;for(int i=0;i4;i+)pi=&ai*3;coutvoid main()char*pp;char*s=hello,good morning,how areyou;pp=s;for(int i=0;i3;i+,pp+)cout*ppvoid main()int a5=1,2,3,4,5,i,*p5,*pp;for(i=0;i5;i+)pi=a+i;for(pp=p;ppvoid main()char c,(*p)3;chars23=a,b,c,d,e,f;p=s;c=*(p0+1);coutc=void main()int a=5;int&ref=a;ref+=5;couta=void main()char ch25=“6934”,”8254”,*p2;int i,j,s=0;for(i=0;i2;i+)_;for(i=0;i=0&pij=9;j+=2)s=10*s+pij-0;cout #include#includevoid main()int n;char*p;coutn;_;if(p=0)coutcant allocate!;exit (0);for(i=0;i #include#includevoid main()char a100,*str10,*sp;int i,k;sp=_;coutplease input10numbers:;for(i=0;isp;stri=sp;k=strlen(sp);sp+=_;for(i=0;i10;i+)if(strcmp(stri,strk)_)k=i;coutplease outputthe minimalstring:;cout_ 字符串由键盘输入。 用二维指针对任一二维整型数组的元素求和。 编写程序,当输入17(表示星期几)时,显示相应的星期的英文名称,输入其它整数时则显示错误信息。 使用new、delete运算符为一任意长度的整型数组分配内存空间,并按输入时的顺序的逆序输出。 三问题讨论1对多个字符串排序使用何种方法较简便?2引用本身有无地址?3使用动态内存分配技术时,如果分配不成功,应如何处理?实验八函数及其调用一实验目的掌握函数的定义及C+语言程序的组成。 学会如何自定义一个函数;函数原型(函数声明)与函数定义的区别与联系。 掌握函数调用的基本方法;值调用和引用调用。 弄清值调用和引用调用在传递参数时的区别。 二实验内容填空题已知一函数的定义是void ff(double d)cout 对于有返回值的函数,在结束函数运行时应使用语句。 对于某个函数调用,不用给出被调用函数的原型的情况是。 A被调用函数是无参函数B被调用函数是无返回值的函数C函数的定义在调用处之前D函数的定义在别的程序文件中已知函数f的原型是void f(int*a,long&b);变量v1,v2的定义是int v1;long v2;把v1和v2分别作为第一参数和第二参数来调用f,正确的调用语句是。 Af(v1,v2);Bf(&v1,v2);Cf(v1,&v2);Df(&v1,&v2);问答题下列的函数写法是否有错误?若有,请加以修正。 abs(num);int num;if(num0)num-=3;return(num);下面程序中某一地方不太合理,请加以修改。 void main()int five=5;type(five);type(float num)coutfive is #includeint count;void func1();void func2();void main()count=100;func1();void func1()func2();cout #includevoid func1(int,int);void main()int a,b;a=10;b=20;coutBefore call:a= ?参数传递时,值调用对实际参数有无影响,为什么?将上面程序中的函数func1()的原型改为void func1(int&x,int&y);编译并运行程序,回答以下问题?写出程序的输出。 程序的运行结果和实验内容4有什么不同?为什么??如果将主函数中函数调用语句func1(a,b);改为如下形式func1(&a,&b);那么,应如何修改被调用函数func1();程序的输出结果?编程题设计一个简单的计算器程序,能够根据键盘输入的操作数和运算符,做简单的加减乘除运算。 当输入“;”号时结束运算。 测试数据为输入操作数:3输入运算符:+输入操作数:40输出结果:43输入运算符:-输入操作数:23输出结果:20输入运算符:*输入操作数:2输出结果:40输入运算符:/输入操作数:8输出结果:5输入运算符:?运算符输入错误!输入运算符:;运算结束。 用二维数组表示5个学生4门功课的成绩,通过函数调用完成?输入每个学生的成绩;func1(a,b);coutAfter call:a= 设计三个函数实现上述功能。 Input()给数组中的元素赋值Total()求每个学生的总成绩并打印Average()求每门功课的平均分输入一个34的矩阵,写一个函数求其中的最大元素。 编写一个程序求方程ax0和等于0时的根。 要求从主函数输入a,b,c的值并输出结果。 写一个判断素数的函数,在主函数中由键盘输入整数的范围,并给出在该范围内的所有素数。 参考程序如下#include#include#includeint isprime(long m);void main()long a,b;long l=0;coutab;coutPrimes from (5)=0;_ (1)_)sub(a,_ (2)_,k);cout*q) (3);void main()int i,num5;coutinput5numbers:;for(i=0;inumi;find_max_min( (4),5);coutmax= #includevoid funcA(int parameter)coutparameter address:meterparameter value: #includevoid fun(int*,int,int);void main()int t=1,2,3,4,5,6,7,8,9,0;int*p=t;fun(p,0,3);fun(p,4,9);fun(p,0,9);for(int i=0;i10;i+)cout*(t+i),;void fun(int*c,int n1,int n2)int i,j,t;i=n1;j=n2;while(i 其中函数replace(char*s,char*s1,char*s2)中,其形参字符串s1和s2有相同的字符个数,且s1中各字符互不相同。 #includevoid replace(char*s,char*s1,char*s2)char*p;for(;*s;s+)for(p=s1;*p&*s;p+)if(*s=*p)*s=*(s2+(int)(p-s1);coutlocal address:&localvoid main()chars=”XYZABCYHZ”;replace(s,YZ,MN);cout 在主函数中输入矩阵的元素值。 编写一个程序,要求使用函数input输入一组数,然后使用sort函数对这组数由小到大排序,再由主函数将排序结果显示出来。 把键盘输入的一个大写字符串改为小写字符串并显示出来,其中大小写转换用函数lower()实现。 有一个班4个学生,5门课。 ?求第一门课的平均分。 ?找出平均成绩不及格的学生,输出他们的学号和全部课程成绩及平均成绩。 ?找出两门以上课程成绩在85分以上的同学。 ?打印一份包含每位同学学号、各门课成绩及平均成绩的成绩单。 分别编写相应的函数实现以上四个功能。 求定积分12)1(1dxxy?2y可利用函数指针来实现。 先编写一个求定积分的通用函数integral(),其函数原型为double integral(double a,double b,double(*f)(double);函数的形参a,b,f分别表示定积分的下限、上限和函数名,其中f为函数指针。 求积分的方法可采用一般的梯形法。 对所求的积分分别编写函数f 1、f2f1(x)=1+x f2(x)=1+x+x最后在主函数中调用定积分函数integral(),每次调用时以f 1、f2作为实参函数名,同时指定下限a和上限b,就可以求出两个式子的定积分。 22+x3 三、问题讨论在函数调用中用指针作函数参数,与前面所学的值调用和引用调用有何相同点和不同点?什么是函数指针,举例说明用函数指针作函数参数时,如何调用指针所指向的函数?数组名作为函数参数与数组元素作为函数参数有何区别?如何处理数组名作为函数参数进行的地址传递?实验十函数嵌套调用与递归调用?0?21 (032)dxxxx一实验目的弄清函数嵌套的概念,学会编写函数嵌套调用的程序;掌握函数嵌套中的相互调用关系;了解函数的直接递归调用和间接递归调用的方法;学会用递归调用的方法解决实际问题。 二实验内容填空题求1到N的累加和。 若采用递归定义,可以表示为如下形式sum(int n)if(n=0)coutdata error;if(n=1)_ (1)_;else_ (2)_;以下函数fun(n)利用递归方法计算阶乘n!(n1),main函数输出1到10的阶乘。 请填空。 #include_ (1)_void main()for(int k=0;k10;k+)cout_ (2)_0时y(x,n)=sqrt(x+y(x,n-1)?1nn1)-sun(nsum(n)1n1sum(n)xxxx xy?)(N层double y(double x,int n)if(n=0) (1);else return(sqrt(x+(_ (2));问答题下述程序用于求在数列运算中从n个不同的数中取r个数的所有可能选择的个数。 ?说明函数nn()和函数Cnr()所实现的功能。 ?该程序是利用非递归方式实现上述功能的,试考虑如果采用递归方式,程序该如何进行修改??递归调用方式与非递归调用方式相比,有何特点?源程序#include/函数原型说明double nn(int n);double Cnr(int n,int r);void main()int n,r;while (1)coutnr;if(n=0&r=0)break;/若输入为00,结束程序/检查输入的合法性if(n0)ff(n-2);coutk;cout1)求下列代数式的值,利用嵌套调用实现。 三问题讨论什么叫函数的嵌套调用?嵌套调用时,程序流程如何?什么叫函数的递归调用?在使用递归调用时,对函数的调用次数有何要求?实验十一作用域和预处理一实验目的掌握函数原型作用域、块作用域和函数作用域的基本概念;通过实例理解全局变量和局部变量的概念;掌握变量的各种存储方式,以及在不同存储方式下变量的生存期;掌握编译预处理的作用和常用的编译预处理命令的使用方法。 二实验内容填空题如果一函数定义中使用了修饰,则该函数不允许在其他文件中调用。 已知double var;是文件F1.CPP中定义的一个全局变量,若文件F2.CPP中的某个函数也需要访问var,则在文件F2.CPP中var应说明为。 判断以下的for循环共执行循环体_次。 #include#define N2#define MN+1#define COUNT(M)+1)*(M)/2void main()int i,n=0;for(i=1;i=COUNT;i+)n+;cout #define A4+6;void main()p=A*A;分析下列程序,说明哪些变量是全局变量、局部变量、静态局部变量;并指出其作用域及函数f和cout的作用域(用行号标明);写出程序的输出结果。 #includeint n;int f(int x);void main()int a,b;a=5;b=f(a);cout局部a= ?文件file1.cpp的内容为#includeStdAfx.h#define PI3.1415926double circle(double r)double area=PI*r*r;return(area);?文件file2.cpp的内容为#include#includefile1.cppvoid main()double r=5.6;coutarera= /file1.cpp static int i=20;int x;static intgun(int p)return(i+p);void fun(int v)x=gun(v);/file2.cpp#includeextern intx;void fun(int);void main()int i=5;fun(i);cout??在函数main()中是否可以直接调用函数gun()?为什么??如果把文件file1.cpp中的两个函数定义gun()和fun()的位置换一下,程序是否正确?为什么??文件file1.cpp和file2.cpp中的变量i的作用域分别是怎样的?在程序中直接标出两个变量各自的作用域。 输入下述程序,分析运行结果,并回答问题。 #includevoid add_it(int);void main()int i;for(i=1;i=10;i+)add_it(i);void add_it(int i)staticinttotal=0;int ans;ans=i*2;total+=ans;coutthe totalis:=a&c=a&c=z)c=A;#endif cout 输入两个整数,求它们相除的余数,用带参的宏来实现。 用条件编译方法实现以下功能输入一行电报文字,可以任选某种输出方式一种为原文输出;另一种将字母变成其下一字母输出(例如,”a”变成“b”输出)。 用#define命令来控制是选择原文输出还是密码输出。 三问题讨论局部变量在何处定义?其作用范围如何?全局变量在何处定义?其作用范围如何?若在一个程序中出现局部变量与全局变量同名的情况,它们各自的作用范围如何?局部变量可分为哪几种存储方式?每种存储方式下其生存期如何?全局变量可分为哪几种存储方式?每种存储方式下其生存期如何?带参数的宏定义与函数有何区别?举例说明条件编译的几种格式。 实验十二结构体的使用一实验目的弄清并掌握结构的定义、初始化与使用;掌握结构变量的定义、赋值和结构变量成员的引用;学会利用结构变量作为函数参数与返回值;通过编程掌握结构数据类型的应用。 二实验内容填空题下列结构类型mystruct的大小为字节。 struct mystructchar ch;short list5;float*fa;问答题指出下面程序中的错误,并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论