实验1 从C到C

时间:2019-05-12 04:29:16下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《实验1 从C到C》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《实验1 从C到C》。

第一篇:实验1 从C到C

实验1 从C到C++ 1.2 实例解析

【1-1】编写一个程序,实现一个整数、长整数、浮点数和双精度数除以2的计算。

【分析】这是一个典型的函数重载的程序。声明函数div()为除法函数,每个函数的功能基本都是一致的,不同的只是形式参数的类型不同而已。程序代码如下:

#include using namespace std;int division(int x){ return x/2;} long division(long x){ return x/2;} float division(float x){ return x/2;} double division(double x){ return x/2;} int main(){

int a;long b;

if(a!=0)else else if(c!=0)else

float c;

double d;

cin>>a>>b>>c>>d;cout<<“input a,b,c,d:”<

if(b!=0)

if(d!=0)

else

} return 0;【总结】这是一个最原始的程序,并且很机械化。有心的读者会发现上面的程序有许多重复的地方,这个正是我们后面模板里面会讲到的内容。

【1-2】编写一个函数,从三个整数中找出最大值和最小值,并返回。【分析】这个程序要求一次调用从主调函数中获取两个值,这不是值传递能够解决的问题,必然会考虑使用地址传递。实现地址传递有两种方法,一种是指针实现,另一种就是采用引用。变量的引用既方便又直观,非常利于理解。程序代码如下:

#include using namespace std;void swap(int &a,int &b){ {

} if(a<=b)if(a<=c)if(b<=c)

swap(a,b);swap(a,c);swap(b,c);minnum=c;int t;t=a;a=b;b=t;} void max(int a,int b,int c,int &maxnum,int &minnum)

maxnum=a;int main(){

} int a,b,c,maxnum,minnum;cout<<“input a,b,c:”;cin>>a>>b>>c;max(a,b,c,maxnum,minnum);cout<<“minnum=”<

cout<<“maxnum=”<

【1-3】编写一个函数,求立方体体积,默认变长为10。

【分析】这个程序需要用到带有默认形参值的函数。则在声明函数时,为形参赋予默认值。当函数调用时,如果输入实参值,则默认函数值不起作用。而在没有实参值输入的情况下,就使用默认形参值进行计算。程序代码如下:

#include using namespace std;float volumn(float a=10,float b=10,float c=10);int main(){

float a,b,c;

} float volumn(float a,float b,float c){ return a*b*c;

} cout<<“没有实际参数值时,volumn=”<>a>>b>>c;return 0;

cout<<“有实际参数值时,volumn=”<

【1-4】编写一个程序,计算分别选修2、3和4门课程的学生的平均分。

【分析】这也是一个典型的函数重载的问题。这几个函数的区别在于参数个数不同。程序代码如下:

#include using namespace std;float avg(float,float);float avg(float,float,float);float avg(float,float,float,float);int main(){

cout<<“The first student:”<

} float avg(float a,float b,float c){ return(a+b+c)/3;} float avg(float a,float b,float c,float d){ return(a+b+c+d)/4;} 【分析】这几个avg函数重载的出发点是由于其形参个数不同。并且由于函数体只有一句话,并且没有选择和循环等复杂结构,故也可以将其定义为内联函数,以提高程序运行效果。

1.3 实验与实践任务

1.3.1 实验名称

C++基础 1.3.2 实验目的

1.学习并利用C++语言的基本知识编写标准的C++程序;

2.掌握函数的定义和调用方法,练习带默认参数的函数、重载函数的使用; 3.掌握引用的使用;

4.掌握string类型的使用;

5.练习通过动态内存分配实现动态数组,并体会指针在其中的作用;

6.学会使用VC++6.0开发环境中的debug调试功能:单步执行、设置断点、观察变量值。

1.3.2 实验要求

1.调试程序要记录调试过程中出现的问题及解决办法; 2.给出每个问题的算法或画出流程图;

3.编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验;

4.做完实验后给出本实验的实验报告。

1.3.4 实验内容

1.3.4.1 照猫画虎

所谓照猫画虎,目的是想让读者先模仿别人编写的程序,通过模仿、分析和体会别人编写的程序,领悟编程的基本方法,模仿的过程中,可以加入自己对程序中的一些思考,尝试对别人编写的程序进行试验性修改,根据自己的试验是否成功,判断自己已经掌握的知识水平和能力强弱,使自己的实践能力不断得到提高。

作为初学者,必须搞清楚有关概念,很多概念就是在模仿、实验、思考的过程中,加深了理解、达到了融会贯通。对于下面的举例,依照下述提示进行实验操作,照猫画虎——通过模仿,理解程序的编辑、编译、运行概念。当然,对于前面列举的项目,读者也可以照猫画虎进行模仿。

【例1】输入并运行下列程序,并体会C++引入“默认参数”的用意。

#include using namespace std;int add3(int,int=7,int=8);int main(){ int a,b,c;cin>>a>>b>>c;cout<

#include using namespace std;int main(){

int* a;

int* &p=a;

int b=10;

p=&b;

cout<<*a<

cout<<*p<

return 0;} 【例3】下面的程序利用重载函数max,分别返回char数组、int数组、long数组、float数组、double数组和字符串数组中的最大元素,请补充完成的函数,输入并运行程序,观察运行结果,深入理解什么是函数重载。

#include #include using namespace std;char max(char *a,int n){ char temp=a[0];for(int i=1;i

} int max(int *a,int n){ int temp=a[0];for(int i=1;itemp)if(a[i]>temp)temp=a[i];return temp;} temp=a[i];return temp;//返回long数组最大值的max函数

//返回float数组最大值的max函数

//返回double数组最大值的max函数

string max(string *a,int n){ string temp=a[0];for(int i=1;i

} int main(){ char a[3]={'a','b','c'};int b[3]={1,2,3};long c[3]={1234,2345,3456};float d[3]={321.1f,322.1f,323.1f};double e[3]={2.1001,3.1001,4.1001};string name[3]={“Zhang”,“Li”,“Wang”};cout<temp)temp=a[i];return temp;【例4】输入并运行下面的程序,写出运行结果。体会new和delete是如何进行动态分配和回收存储空间的。

#include using namespace std;int main(){

int arraysize;

int* array;

cout<<“please input a number of array: ”;

cin>>arraysize;

if((array=new int[arraysize])==NULL)//申请一块连续的存储空间 {

cout<<“Can't allocate memory, terminating.”;//未分配到存储空间

exit(1);

}

for(int count=0;count

array[count]=count*2;

cout<

cout<

delete[] array;return 0;} //释放array指向的连续存储空间

1.3.4.2 牛刀初试

所谓牛刀初试,目的是让读者把已经掌握的知识和能力应用到编程实践中。请读者根据题目的要求,自己编程设计,实现题目的要求。

【P1】编写一个程序,用C++的输入输出风格从键盘输入两个整数,然后显示以第一个数为底,第二次数为指数的结果(例如,用户输入2与4,那么结果就是16)。

【P2】求2个或3个正整数中的最大数,用带有默认参数的函数实现。

【P3】编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。用重载函数实现。

【P4】输入一个字符串,把其中的字符按逆序输出。如输入LIGHT,则输出THGIL。要求用string方法。

【P5】编写程序,调用传递引用的参数,实现两个字符串变量的交换。例如: char *ap=”hello”;char *bp=”how are you?”;交换的结果使得ap和bp指向的内容分别如下:

ap: “how are you?” bp: “hello”

【P6】编写程序,通过指针动态生成一个二维数组,数组元素的值为该元素的行值和列值的和,最后输出该二维数组的每个元素。要求利用new和delete运算符。

1.3.4.3挑战自我

所谓挑战自我,是指这一部分给出的程序设计题目有一定的难度,需要你认真思考、认真设计并进行编程实现。如果遇到问题,在已有的知识中不能解决的话,你可以去后面的章节中寻找所需的知识。这样,你的编程水平才能不断提高。

1.编程计算图形的面积。程序可计算圆形、长方形、三角形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对三角形要求用户输入三条边长的值,计算出面积的值后将其显示出来。使用debug调试功能观察程序运行中变量值的变化情况。

2.定义如下结构体: struct list { int n;

struct list*next;};输入k个整数,将它们依次放入由结构体形成的链表(用new运算符生成链表项)中。再输入一个整数x,查找x在链表中第一次出现的位置(序号),若不存在,输出“不存在”。

第二篇:从虚拟仿真到开放实验学习心得

从虚拟仿真到开放实验学习心得

2015-2016学年信息技术应用能力提升工程培训中学习了《虚拟实验与未来教学》的相关内容,觉得这次培训内容非常的丰富。包含了中小学所有科目的内容,尤其对理化科目的老师,学习后虚拟实验会极大地方便教学,激发学生的学习兴趣,使得课堂内容生动形象。

通过本次学习,我了解到虚拟实验的优点:突破空间约束,能够随时随地使用,安全性较高。虚拟实验为教学设备比如:电子白板、多媒体等提供互动教学软件,弥补了因教学实验器材不足而导致的无法实验。同时有些实验可能要一段时间的观察才能得出结论,会花费较长的时间。而课堂内容较多,实验时间不够充足,虚拟实验正好可以弥补不足。学生操作时难免会发生意外,有可能损坏贵重的实验仪器或对身体造成伤害。虚拟实验却不用担心这些问题。一些有危险性的实验,我们老师采用虚拟实验教学可以让学生对实验知识有直观的感受,老师也可以放心地让学生操作有危险性的实验。有些实验我们现在是现有条件没法实现的,那么通过虚拟实验就可以让学生看到实验情况,甚至亲身体会。

掌握了虚拟实验的方法,我们将其应用于实际教学当中,可以激发学生实验操作的兴趣,让他们乐于学习、乐于参与。虚拟实验将抽象的概念转化得更形象更生动,易于学生理解掌握学习内容。我们作为一名教师,必须要多地了解一些信息技术知识、和技能,在条件允许时将所学知识与教学实践相结合,通过多种多样的教学手段,丰富学科教学内容,激发学生学习兴趣,提高教学质量。让我们的教育事业更上一层楼!

第三篇:C语言实验

C语言实验

实验一:C语言程序调试基础

一、实验目的

1.掌握C语言源程序的编写方法和调试方法

2.学会使用VC6开发工具及调试过程的查错纠错能力。

二、任务

调试课本例子:例2.19、例3.5、例5.9

三、实验过程及结果

1.鼠标左键双击VC,打开程序;单击打开的New的页面中,单击

键,选择键,选择,在新,最后单击键,就可以建立一个新的页面。

2.在界面中输入例2.19的内容,单击

键进行调试,底下的对话框出现

一句话时,说明我们编写的程序无错,就可以单击键,来运行程序。运行结果及编写程序内容如图:

4.关闭这两个窗口,再单击

实验二:顺序程序设计

一、实验目的:

1.掌握顺序程序的设计方法;

键,选择

2.掌握输入输出控制语句。

二、实验任务与要求

1.第3章课后习题T2 2.第3章课后习题T7

三、实验过程及结果

实验三:分支程序设计

一、目的

1.掌握分支程序控制语句的语法格式及纷争程序设计方法。2.了解分支程序的条件表达式及运算规则; 3.掌握分支程序控制语句的嵌套使用方法。

二、任务

1.第4章课后习题T6 2.第4章课后习题T8 3.第4章课后习题T12

三、实验过程及结果

实验四:循环程序设计

一、目的

1.掌握循环程序的控制语句的语法规则;

2.掌握循环程序的编写方法;

3.掌握循环程序的嵌套与退出控制方法。

二、任务

1.求100~200间的全部素数。2.第5章课后习题T8 3.第5章课后习题T10

三、实验过程及结果

实验五:数组

一、目的

1.掌握数组的定义及使用方法 2.掌握字符数组的相关操作函数。

二、任务

1.用数组求Fibonacci数列的钱40项,每5个一行。2.将一个3行8列的数组A转置为数组B。3.已知字符串str1=”abcde”,str2=”hijklm”,比阿尼写程序分别实现str1与str2的连接、求长度、比较等操作。

三、实验过程及结果

实验六:函数

一、目的

1.掌握函数的定义与调用方法。2.掌握函数参数的专递方式。

3.掌握函数的嵌套调用和递归调用方法。

二、任务

1.编写一函数,用冒泡排序法实现对数组A的排序。2.编写一函数,用选择排序法实现对数组A的排序。3.编写一函数,实现对给定年year是不是闰年。4.编写一函数,实现对给定整数m是不是素数。

5.利用递归算法,编写一函数,求Fibonacci数列的第n项。

三、实验过程及结果

实验七:变量作用域

一、目的

1.了解变量的存储类型及生命周期、作用域的性质。2.准确使用局部变量和全局变量。

二、任务

1.根据变量作用域知识,分析下列程序的运行效果。2.调试程序,分析个变量的作用范围和生命期。

#include int i=5;void fun1(){ int i=5;static int j=20;i+=5;j=j-3;printf(“i=%d.j=%dn”,i,j);} void main(){

Printf(“i=%dn”,i);

int i=40;

printf(“i=%dn”,i);

fun1();

fun1();}

三、实验过程及结果

实验八:结构体

一、目的

1.掌握结构体的定义方法和使用。

二、任务

定义一日期(年、月、日)结构体,编程实现日期的输入、日期的输出、日期加上一个整型天数、两个日期数据相减等功能。

三、实验过程及结果

第四篇:学习C 从入门到精通的的十本最经典书籍

学习C++从入门到精通的的十本最经典书籍.txt不要为旧的悲伤而浪费新的眼泪!现在干什么事都要有经验的,除了老婆。没有100分的另一半,只有50分的两个人。[C语言] 学习C++从入门到精通的的十本最经典书籍 Post By:2008-9-19 14:33:33

1.《C++Primer》

有“C++的百科全书”,C++程序员人手必备。对语法、语义的描述非常细致和严谨,适合有一定经验的C、C++程序员作为工具书和理论指导书使用,但由于其有一定深度,而没有进阶顺序的章节安排,所以不适合初学者做为教材使用,价格略高。难度:★★☆ 质量:★★★★★ 广度:★★★★★ 深度:★★★★ 性价:★★★☆

2.《C++Primer Plus》

初学C++不错的书,覆盖面较全,章节安排比较合理,由浅入深,也很容易,故因此失去了一些深度。价格比较便宜,但翻译质量略有不足。难度:☆

质量:★★★☆ 广度:★★★★ 深度:★★★ 性价:★★★☆

3.《Essential C++》

lippman 的一部面向初学者的作品。在他写了那么后一本primer之后,为何还要写这么薄这么浅的书呢?其实primer对于初学者来说太笨重了,而这本书却是从不同的方面——C++的本质和组织结构对语言进行阐释,可以帮助初学者对这门语言有一个大致的了解,但知识范围不很全面,不适合系统学习,读者需要一定的编程知识。难度:★☆ 质量:★★★★ 广度:★★★☆ 深度:★★★ 性价:★★☆

4.《Effective C++》、《More Effective C++》

C++真牛人大手笔,之以条款的形式回答了程序员在使用C++时经常提出的“因该注意些什么?”,“因该避免什么?”,“因该怎样去解决?”,“为什么?”等问题。C++程序员想要让自己的水平上更高的档次,此二书必看。价格稍贵,有一定难度,不适合初学者。难度:★★★☆ 质量:★★★★★ 广度:★★★ 深度:★★★★★ 性价:★★

5.《C++编程思想》

除了讲述语言之外,有一定的工程性,从设计者的角度来描述C++怎样应用在实际的项目中。语言描述的全面性欠佳,但还是有一定精度的,尤其是在一些小技巧方面。本书还引入了大量的战例,通过一个个的真实项目来引导你使用C++的思想去思考问题。翻译很差,有一定难度。

难度:★★☆ 质量:★★★ 广度:★★★☆ 深度:★★★★ 性价:★★★

6.《C++大学教程》

正如其名,真正的大学教程,非常适合初学者学习,内容由浅入深,对C++各项特性的描述都很到位,章节的安排很有条理性,但深度略显不足,翻译质量不能称之为很好,有一定的疏漏,但对于厚度来讲,价格还算比较便宜。难度:★

质量:★★★☆ 广度:★★★★★ 深度:★★★★ 性价:★★★★☆

7.《C++语言的设计和演化》

对于热爱C++的朋友来说,确实好书一本,可以当做小说来读,可以放在厕所或床头上以供消遣。本书对语言本身描述很少,并有一定难度。读者需要对C++有一定了解,不适合初学者阅读。难度:★★★ 质量:★★★ 广度:★★☆ 深度:★★★★ 性价:★★★

8.《C++程序设计语言》

C++之父所作,被称之为“C++圣经”。不仅对语言,而且对语言周边的一些如发展史、语义哲学都有比较详细的描述。对语言的描述较为全面,同时包含一部分和程序库相关联的知识,并有一定深度,适合有一定语言基础的初学者,翻译质量不错,价格适中。难度:★☆

质量:★★★★☆ 广度:★★★★☆ 深度:★★★★ 性价:★★★☆

9.《深度探索C++对象模型》

第一代C++编译器开发主管所写。如果你想成为真正的C++高手,看这本书,他为你讲述了编译器在处理各种语法时在“后台”所做的事。对C++有较深入了解的读者会在读后有恍然大悟之感。候杰翻译,质量相当不错,但内容太深,只适合对C++有较深了解的读者,价格偏贵。

难度:★★★★☆ 质量:★★★★★ 广度:★★★ 深度:★★★★★ 性价:★★

10.《C++程序设计教程》(钱能-清华版)

国人所著,国人水平实在有限,深度和广度欠佳,放在这十大里实在是因为再挑不出好书了。可圈可点之处有讲解较为清析、简单,符合中国学生思路,价格便宜。难度:☆ 质量:★★★ 广度:★★★☆ 深度:★★★ 性价:★★★★★

学习C++的话,看你目前的水平,我说一下从完全不懂到最后高手的专家推荐路线吧: 1.《C++ Primer》Lippman写的,经典中的经典,C++入门的宝典,读完这本书,基本语法过关,部分技巧掌握。

2.《The C++ programming language》C++的创始人Bjarne Stroustrup写的,这本书的权威性毋庸置疑,而且这里面讲到了一些比较底层的东西,如果你看过了《C++ Primer》的话,这本书可以跳着看,懂的就跳过。

3.《Effective C++》 Scott Meyers顶级大师用活泼幽默的语言写的书,这本书中讲到了许多应该注意的问题,这是十分值得购买的书。(Lippman曾把程序员分为看过effective c++的和没看过的两类。由此可见此书的重要性)

4.《More Effective C++》上书的姊妹篇,这本书里讲到了许多关键性的技术,对提高程序的效率是非常有帮助的。

5.《Advanced C++》这是一本神奇的书,里面讲到了许多连C++设计者都没想到的妙法,解决了许多看似不可能解决的问题。Scott Meyers曾隆重推荐过的书。

6.《Inside the C++ Objects Model》又是Lippman的大作!这本书讲到了他在开发第一个C++编译器时的许多想法,彻底解析了C++底层机制是如何实现对象模型的,看过这本书,你对C++的了解会有质的飞跃!从这刻起,你有权力说你是一个C++程序员了!

光学C++语言基本上看完上述的书就是高手了,其他经验要在实践中累积,你在看这些书的同时就应该多做一些小程序,小项目,提高水平的速度是飞快的.这是我个人的经验。另外,你学了C++还要开发程序,开发软件,无疑要使用MFC之类的东西 《API Programming》和《MFC Windows 程序设计》两书值得一看。这两本书能迅速提高你的实践水平。

第五篇:C语言实验题目

求两个数之和。在两种情况下完成:

①数据在程序内部定义变量时赋初值,或者通过赋值语句赋值。②数据通过scanf()函数输入。静态输入:

#include void main(){ int a=1,b=2,s;s=a+b;printf(“这两个数的和是%dn”,s);} 动态输入:

#include void main(){ int a,b,s;printf(“请您输入两个数:”);scanf(“%d,%d”,&a,&b);s=a+b;printf(“这两个数的和是%dn”,s);}

设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆柱表面积、圆柱体积。要求用scanf 输入数据,输出计算结果。#include void main(){ float r,h,l,s,sq,vz;float pi=3.1415926;printf(“请输入圆的半径r,圆柱高h:”);scanf(“%f,%f”,&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vz=pi*r*r*h;printf(“圆的周长为

l=%6.2fn”,l);printf(“圆的面积为

s=%6.2fn”,s);printf(“圆柱的表面积为

sq=%6.2fn”,sq);printf(“圆柱的体积为

vz=%6.2fn”,vz);}

输入a、b、c三个整数,求出其中最大者,并连同三个源数据一起输出。#include int max(int x,int y,int z){ int max;if(x>y){

if(x>z)

max=x;

else

max=z;} else {

if(y>z)

max=y;

else

max=z;} return(max);} void main(){ int max(int x,int y,int z);

int a,b,c,w;

printf(“请您输入三个整数:”);

scanf(“%d,%d,%d”,&a,&b,&c);

printf(“您输入的三个数是:%d,%d,%dn”,a,b,c);

w=max(a,b,c);

printf(“这三个数中最大的是:%dn”,w);}

给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。要求输入一个成绩并打印出对应的等级制成绩。要求用switch语句完成。#include void main(){ int grade,c;printf(“请您输入一个成绩:”);scanf(“%d”,&grade);while(grade>100||grade<0){

printf(“您输入了一个错误的成绩!请重新输入n”);

scanf(“%d”,&grade);} c=grade/10;switch(c){ case 10: case 9: grade='A';break;case 8: grade='B';break;case 7: grade='C';break;case 6: grade='D';break;default: grade='E';} printf(“您输入的成绩的等级为:%Cn”,grade);}

计算当n为何值时,不等式sum=1 + 1/2 + 1/3 +… + 1/n >limit成立,输出n对应的sum(limit从键盘输入,要求用while、或do...while 语句,limit=10)。#include void main(){ float n=0,sum=0,limit=0;printf(“请输入一个limit的值:”);scanf(“%f”,&limit);while(sum<=limit){

n++;

sum=sum+1/n;} printf(“此时sum的值是:%fn”,sum);printf(“此时n的值为%fn”,n);}

计算M=11+ 22+ 33+…+ NN,直到N等于15为止,输出N和对应的M。(要求用for语句做)

#include void main(){ int n;float M;M=0.0;for(n=1;n<10;n++){

M=M+(n+10*n);} for(n=10;n<=15;n++){

M=M+(n+100*n);} n--;printf(“当n是%d时,M的值为%fn”,n,M);}

100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马一匹驮0.5担,计算大、中、小马数目并输出。#include void main(){ int big,mid,small,sum=0;for(big=0;big<33;big++)

for(small=0;small<100;small+=2)

for(mid=0;mid<50;mid++)

{

if(3*big+2*mid+small/2==100&&big+mid+small==100)

{

printf(“big:%dt,mid:%dt,small:%dn”,big,mid,small);

sum++;

}

}

printf(“一共有%d种组合方式n”,sum);}

求 sum=1!+2!+3!+...+10!,并输出结果。#include void main(){ float s=0,t=1;int n;for(n=1;n<=10;n++){

t=t*n;

s=s+t;} printf(“1!+2!+3!+...+10!的和是:%en”,s);} 注意该程序的结果为:1!+2!+3!+...+10!的和是:4.037913e+006 是以科学计数法表示的结果,因为int的定义范围只能以此表示,如果用long int来输出,则可以得到正常表示的结果 #include void main(){ long s=0,t=1;int n;for(n=1;n<=10;n++){

t=t*n;

s=s+t;} printf(“1!+2!+3!+...+10!的和是:%ldn”,s);}

1!+2!+3!+...+10!的和是:4037913

设数列为1,3,5,7,9,11,13,15,17,19,动态输入在数组array中,然后顺序打印输出该数列,再逆序打印输出该数列。#include #define N 10 void main(){ int array[10];printf(“请您输入10个整数:n”);int i=0;for(i=0;i

scanf(“%d”,&array[i]);printf(“您输入的10个整数的顺序排列是:n”);for(i=0;i

printf(“%-4d”,array[i]);printf(“n”);printf(“您输入的10个整数的逆序排列是:n”);for(i=N-1;i>=0;i--)

printf(“%-4d”,array[i]);printf(“n”);}

将3x3阶二维数组的关于主对角线对称的元素互换。二维数组的第1至3行元素分别为1、2、3、4、5、6、7、8、9。用矩阵形式分别输出互换前、后的数组元素值。#include void main(){ int i,j,t,array[3][3]={1,2,3,4,5,6,7,8,9};printf(“Before Exchanged:n”);for(i=0;i<3;i++){

for(j=0;j<3;j++)

printf(“%5d”,array[i][j]);

printf(“n”);} for(i=1;i<3;i++)

for(j=0;j

{

t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

printf(“After Exchanged:n”);

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf(“%5d”,array[i][j]);

printf(“n”);

} }

定义两个字符数组s1、s2,并用赋初值的方法把两个字符串“Computer”和“Language” 分别存放到s1、s2中,要求不用库函数strcat(),把s2连接到s1的尾部,然后以%s格式输出连接后的字符串s1。#include void main(){

char s1[80],s2[40];

int i=0,j=0;

printf(”input string1:“);

scanf(”%s“,&s1);

printf(”input string2:“);

scanf(”%s“,&s2);

while(s1[i]!='')

i++;

s1[i]=' ';

i++;

while(s2[j]!='')

s1[i++]=s2[j++];

s1[i] = '';

printf(”The new string is:%sn“,s1);}

用赋初值的方法把字符串”C is a general purpose, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.“存放到字符数组s中,编程统计其中的大写字母、小写字母、数字、空格、逗号的个数。#include void main(){

char s[512] = ”C is a general purpose, procedural, imperative “

”computer programming language developed in 1972 by Dennis“

”Ritchie at the Bell Telephone Laboratories for use with “

”the Unix operating system.“;int upper=0,lower=0,digit=0,space=0,comma=0;int i=0;while(s[i])

{

if(s[i]>='A'&&s[i]<='Z')upper++;

if(s[i]>='a'&&s[i]<='z')lower++;

if(s[i]>='0'&&s[i]<='9')digit++;

if(s[i]==' ')space++;

if(s[i]==',')comma++;

i++;

}

printf(”这串字符串有大写字母%d个,小写字母%d个,数字%d个,空格%d个,逗号%d个n“,upper,lower,digit,space,comma);}

试从主函数输入10个数据到数组中,编写对偶数项求和的子函数,它将计算结果返回给主函数,由主函数输出。#include int oqh(int a[], int x){

int i,s;s=0;

for(i=1;i

s=s+a[i];

return(s);}

void main(){ int a[10];int i,s;printf(”请您在数组内输入10个数:“);for(i=0;i<10;i++)

scanf(”%d“,&a[i]);s=oqh(a,10);printf(”这个数组的偶数项的和是:%dn“,s);} 注意:oqh并无其他含义,是本人定义的一个函数名,偶数项求和的缩写。编写一个判断素数的程序,其中主函数用于完成输入一个整数并给出判断结果,单独编写一个函数用于判断其参数是否为素数,其返回值为1表示为素数,为0表示为非素数。#include #include int prime(int n){ int m,i=2,t;t=(int)sqrt(n);for(;i<=t;i++){

if(n%i==0)

{

m=0;

break;

}

if(i>t)

m=1;

else

continue;} return(m);} void main(){ int n;int i;printf(”请输入你要判断的数:n“);scanf(”%d“,&n);while(n<=1){

printf(”您输入了一个错误的数据,请重新输入:n“);

scanf(”%d“,&n);} if(prime(n))

printf(”您输入的是一个素数n“);else

printf(”您输入的不是一个素数n“);

}

输入三个整数,按由小到大的顺序输出。(要求使用指针来排序输出)#include void sort(int *a,int *b,int *c){ int t=0;if(*a>*b){

t=*a;

*a=*b;

*b=t;} if(*a>*c){

t=*a;

*a=*c;

*c=t;} if(*b>*c){

t=*b;

*b=*c;

*c=t;} } void main(){ int a,b,c;printf(”请您输入三个整数:“);scanf(”%d %d %d“,&a,&b,&c);sort(&a,&b,&c);printf(”它们由小到大的排列顺序是:%d %d %dn“,a,b,c);}

或者是

#include void main(){

void swap(int *p1,int *p2);

int a,b,c;

int *p1,*p2,*p3;

printf(”请您输入三个整数:“);

scanf(”%d %d %d“,&a,&b,&c);

p1=&a;

p2=&b;

p3=&c;

if(a>b)swap(p1,p2);

if(a>c)swap(p1,p3);

if(b>c)swap(p2,p3);

printf(”它们由小到大的排列顺序是:%d %d %dn“,a,b,c);} void swap(int *p1,int *p2){

int p;

p=*p1;

*p1=*p2;

*p2=p;}

输入十个整数,放在数组list中,然后用指针法从后向前输出该数组中的整数。#include void main(){

int list[10],i,*p=list;

printf(”请您输入10个整数:n“);

for(i=0;i<10;i++)

scanf(”%d“,&list[i]);

printf(”这10个整数的逆序序列是:n“);

for(i=9;i>=0;i--)

printf(”%-4d“,*(p+i));}

如果输入的数字个数不定的情况,下面的代码可行 #include void main(){ void sort(char *p,int m);int i,n;char *p,list[30];printf(”请您输入n的值:“);scanf(”%d“,&n);printf(”请您输入%d个整数:n“,n);for(i=0;i

scanf(”%d“,&list[i]);p=&list[0];sort(p,n);printf(”这%d个整数的逆序序列是:n“,n);for(i=0;i

printf(”%-4d“,list[i]);printf(”n“);} void sort(char *p,int m){ int i;char t,*p1,*p2;for(i=0;i

p1=p+i;

p2=p+(m-1-i);

t=*p1;

*p1=*p2;

*p2=t;} }

编写一个函数,它能对一个字符串(“I am a student”)测出长度,要求函数的形参是一个指针变量,函数返回值是字符串的长度。#include void main(){ int length(char *p);int len;char str[20];printf(”input string:“);gets(str);len=length(str);printf(”The length of string is %d.n“,len);} int length(char *p){ int n;n=0;while(*p!=''){

n++;

p++;} //*p='';//n++;return(n);} 若要统计结果包含结束符,则启用*p='';n++;两条语句

编一个函数cstrcmp实现两个字符串的比较,具体为:

int cstrcmp(char *p1, char *p2)p1,p2分别指向字符串s1,s2;若s1=s2则函数返回0;若s1>s2,则函数返回1;若s1 #include char s1[20];char s2[20];void input(){ printf(”输入第1个字符串:n“);scanf(”%s“,s1);printf(”输入第2个字符串:n“);scanf(”%s“,s2);} int cstrcmp(char *p1,char *p2){ p1=s1;p2=s2;if(strcmp(p1,p2)==0){

return 0;} if(strcmp(p1,p2)>0){

return 1;} if(strcmp(p1,p2)<0){

return-1;} } void main(){ char *a;char *b;input();printf(”这两个字符串比较的结果是:%dn“,cstrcmp(a,b));}

如果要求返回的是不相同字母的ASCII码值: #include void main(){ int cstrcmp(char *p1,char *p2);int m;char str1[20],char str2[20],*p1,*p2;printf(”请在下面输入两个字符串:n“);gets(str1);gets(str2);p1=&str1[0];p2=&str2[0];m=cstrcmp(p1,p2);printf(”这两个字符串比较的结果是:%dn“,m);} int cstrcmp(char *p1,char *p2){ int i;i=0;while(*(p1+i)==*(p2+i))

if(*(p1+i++)=='')return(0);

return(*(p1+i)-*(p2+i));}

有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,用赋初值的方法输入5个学生的数据到结构体数组中,输出每个学生3门课的平均成绩。#include struct student

{ char num[6];

char name[8];int score[3];float avr;}stu[5]={{”101“,”Zhou“,93,89,87},{”102“,”Yang“,85,80,78},{”103“,”Chen“, 77,70,83},{”104“,”Qian“,70,67,60},{”105“,”Li“,72,70,69}};void main(){ int i,j,sum;for(i=0;i<5;i++)

{

sum=0;

for(j=0;j<3;j++)

sum+=stu[i].score[j];

stu[i].avr=sum/3.0;} printf(”number

name score1 score2 score3 averagen“);for(i=0;i<5;i++){

printf(”%3s%10s“,stu[i].num,stu[i].name);

for(j=0;j<3;j++)

printf(”%7d“,stu[i].score[j]);

printf(”%10.2fn“,stu[i].avr);} }

如果按平均成绩由高到低排序后,输出每个学生的成绩 #include struct student

{ char num[6];

char name[8];

int score[3];float avr;

}stu[5]={{”101“,”Zhou“,93,89,87},{”102“,”Yang“,85,80,78},{”103“,”Chen“, 77,70,83},{”104“,”Qian“,70,67,60},{”105“,”Li“,72,70,69}},temp;void main(){ int i,j,sum;

for(i=0;i<5;i++){

sum=0;

for(j=0;j<3;j++)

sum+=stu[i].score[j];

stu[i].avr=sum/3.0;} for(i=0;i<4;i++)

for(j=i;j<4;j++)

if(stu[j].avr

{

temp=stu[j];

stu[j]=stu[j+1];

stu[j+1]=temp;

}

printf(”number

name score1 score2 score3 averagen“);

for(i=0;i<5;i++)

{

printf(”%3s%10s“,stu[i].num,stu[i].name);

for(j=0;j<3;j++)

printf(”%7d“,stu[i].score[j]);

printf(”%10.2fn",stu[i].avr);

} }

下载实验1 从C到Cword格式文档
下载实验1 从C到C.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C实验指导书答案

    篇一:c语言程序设计实验指导书课后答案 实验一 (1) 编程求37+29的值,实习vc环境。 #include void main { int a,b,sum; a=37; b=29; sum=a+b; printf(sum=%d,sum); } (2) 从键......

    C语言实验七[范文模版]

    实验7 函数程序设计 一、实验目的 1、掌握函数定义的方法。 2、掌握函数实参与形参的传递方式。 3、掌握函数的嵌套调用和递归调用的方法。 4、了解全局变量和局部变量、动......

    数据结构实验C语言版

    南阳理工学院 数据结构(C语言版)上机实验指导书 软件学院·软件工程 目录 实验1 线性表应用 实验2 栈和队列的应用 ...........................................................

    C语言-实验四

    实验报告 课程名称实验项目 学院 系别 班级/学号 学生姓名 实验日期 成绩 指导教师程序设计基础(C语言) 实验四 数组(二) 一、 实验目的 1. 掌握二维数组的定义和初始化......

    C实验教案(清华)

    实验一熟悉C语言程序开发环境 实验目的: 1、了解计算机程序设计语言。 2、熟悉Turbo C集成环境。 3、正确启动和退出Turbo C。 实验内容: 1. 熟悉Turbo C集成环境。 2. 编写......

    C语言实验[推荐阅读]

    实验人员: 17自动化类03,学号1710221315,万里,实验日期:2018.3.27 实验一C语言上机基础 一实验目的 1 熟悉C语言运行环境——Microsoft Visual C++ 6.0中文版。 2 掌握C语言程序......

    C语言实验十

    实验10 文件程序设计 一、实验目的 1、掌握文件、文件指针的概念。 2、学会使用文件打开、关闭、读、写等文件操作函数。 二、实验内容 1.改错题 (1)下列程序的功能为:在键盘输......

    c语言实验6

    C语言程序设计(B) (2011-2012-2)实验报告6教学班级:土木104学号: 23姓名: 课程教师:实验辅导教师:试验题目:求整数数组b[5][5]主对角线的元素和 试验前数据: #include int main() { i......