c语言实验四函数与程序 c语言实验七函数实验报告
C语言实训总结
在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试自己编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,自然感触良多。
专注于为中小企业提供成都做网站、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业玉环免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
刚开始接触到C的时候,我已经学过一些有关VB的内容,这个在算法和思维上稍微有点帮助。回想本学期的学习,首先,最基本的,是C的数据格式,让我们知道整数,浮点数以及字符常量在C中的运用。然后,在学会了数据转化,以及熟练的可以对各种数据处理之后,我开始进行有关数据结构,像数组,结构体等的学习,因为有的东西从现有的知识来看都是非常简单的,还没有联系到指针等等一些复杂的概念。可是,仅仅学会这些是远远不够的,C语言中,还有很多更加经典、重要、实用的知识。
说说函数。虽说很多程序语言都有函数这一内容,但我觉得C语言的函数是最有魅力的了。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,学习C语言的“高人”都说,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。比如,大家可以作一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话,30句都很难实现,可想而知函数的实用和快捷。在我们C语言实训的代码中,函数更是得到了充分的应用,可以说,实训题目的复杂代码,就是用无数个函数的调用和嵌套积累出来的。
要注意的是,有的同学刚刚开始的时候,都是被一些大的程序激励的,所以当开始的时候看到繁琐的数据转化和简单的算法,都觉得很无聊,都想自己做几个自己满意的程序来看看,虽然这种想法很好,但是,我们说,没有基础,纯粹是搬照一些现成设计方法,是不足取的。要知道,程序设计讲究的是个人的思维的,假如刚开始就被一些现成的思想束缚住,以后就会觉得很无趣。
我们知道,指针其实是C语言的灵魂,许多的数据结构在我们学到这里之前都可以说是精通了。所以我们的任务就是,让数据结构在指针中运行。当然,刚刚开始接触到这些新的东西,是一件非常痛苦的事情,所以我们一定要用非常形象的思维去看待指针,不能太固化。所以,新的东西,比如结构体在指针中的表现方法,数组及多维数组在结构体中的运用,都一点一点的加了进来,同时丰满了我们对原来C的数据机构,数据表示的理解。当我们完成了这三步的学习,我们已经可以自豪的说,我们的基础都扎实了,可以进一步的学习有关算法,设计概念等等深层次的东西了。
但是,指针,结构体,这些太抽象的东西,在学习C语言的时候我们就有点“似懂非懂”,可是在眼下的C语言实训中,像这么重要的C语言知识,一定要达到能熟练掌握,实际运用的程度。在实训的大程序中,结构体在指针中的表现方法,数组及在结构体中的运用等具体的技术环节,都得到了体现,不会指针,我们的工作是没法展开的。所以,在实训期间,大家在巩固基本知识的基础上,逐块攻克实训课题,克服了困难,自信心得到了提高。
最后,谈谈我们组的程序软件。商店商品管理系统,是一个比较利于应用,解决实际问题,方便实际管理的程序。设计代码比较复杂,结构比较严谨。在程序编写的1周左右的时间里,组员们遇到了上述的困难,包括程序设计构思,甚至是指针等某些知识点的欠缺,导致的工作中出现的困难。但是,当大家一起团结协作,解决了这些困难之后,发现自己也可以编写复杂的、应用性的程序了,更发现自己对C语言这门学科的兴趣也提高了。
当然,我们编写的商店商品管理系统,还存在很多疏漏和不合理之处。比如,程序复杂冗长,如果时间充裕,我们将在不改变程序运行结果的基础上,简化程序,使每一句更加精辟,总体上更加简化。另外,在程序的外观上,我们由于时间问题,没有做更多的修饰,运行起来显得比较死板、枯燥乏味。如果增添一些色彩和其他效果,我们的程序也许会更加完美。
以上就是我的C语言实训个人总结
c语言程序设计
第一章 程序设计的基本概念
第一节 C语言的发展历史与特点
第二节 程序与程序设计
第三节 算法与算法的描述
第四节 C语言的上机操作
思考题与习题
第二章 C语言程序设计基础
第一节 C语言的程序结构
第二节 数据类型
第三节 运算符与表达式
思考题与习题
第三章 C程序控制结构
第一节 C程序的三种基本控制结构
第二节 顺序结构
第三节 选择结构
第四节 循环结构
思考题与习题
第四章 数组
第一节 数组与数组元素的概念
第二节 一维数组
第三节 二维数组及多维数组
第四节 字符串与字符数组
思考题与习题
第五章 指针
第一节 指针与指针变量的概念
第二节 指针变量的定义和引用
第三节 指针变量与数组
思考题与习题
第六章 函数
第一节 函数的定义
第二节 函数的嵌套调用
第三节 数组作为函数参数
第四节 指针与函数
第五节 变量的使用范围与存储类别
第六节 不同文件中的函数使用
思考题与习题
第七章 编译预处理
第一节 宏定义
第二节 文件包含
第三节 条件编译
思考题与题
第八章 结构体与共用体
第一节 结构体基础
第二节 结构体数组
第三节 结构体指针
第四节 链表
第五节 位段
第六节 共用体
第七节 枚举类型与自定义类型
思考题与习题
第九章 文件
第一节 文件概述
第二节 文件的打开与关闭
第三节 文件的读/写
第四节 文件的定位
思考题与习题
第十章 程序设计方法
第一节 程序设计的基本概念
第二节 结构化程序设计方法
第三节 程序效率
第四节 程序设计风格
思考题与习题
附录
附录A C语言实验
附录B 标准ABSII码表
附录C C语言中的关键字
附录D 运算符的优先级与结合性
求这几个C语言程序(函数)
又是课堂作业,做了n遍,练练手把
1.判断素数
#includestdio.h
int is_prime(int num)
{
int i=0;
for(;inum/2;i++)
{
if(num%i==0)
{
break;
}
}
if(i=num/2)
{
return -1;//不是素数返回-1
}
else
{
return 0;//如果是素数返回0
}
}
int main(void)
{
printf("请输入一个正整数:");
int x;
scanf("%d",x);
if(x=0)
{
printf("输入的不是正整数");
}
else
{
if(is_prime(x)==-1)
printf("输入的是素数");
if(is_prime(x)==0)
printf("输入的不是素数");
}
}
2.scopy函数
#includestdio.h
void myscopy(char *des, const char* src)
{
while(*src!='\0')
{
*des++=*src++;
}
}
int main(void)
{
char a[20]="hello";
char b[20]="myworld";//注意这个地方数组的长度要适当大,要不然可能出现越界!
printf("拷贝之前,a是%s,b是%s",a,b);
myscopy(a,b);
printf("拷贝之后,a是%s,b是%s"a,b);
return 0;
}
3.矩阵相加
int **res addmatrix(int a[][],int b[][])
{
int sum[5][5];
int i=0;
int j=0;
for(;i5;i++)
{
for(;j5;j++)
{
sum[i][j]=a[i][j]+b[i][j];
}
}
return sum;
}
int main(void)
{
int a[5][5]={},b[5][5]={};//初始化可以随意,注意列数要求就行了
int i=0;
int j=0;
int mysum[5][5]=addmatrix(a,b);
for(;i5;i++) //输出
{
for(;j5;j++)
{
printf("%2d ",mysum[i][j]);
}
printf("\n");
}
}
4.递归求斐波那契数列
#includestdio.h
static buf[100];//这个主要是用来存数列的中间结果的,为了提高递归算法的效率,否则会运行得很慢
int Febanaci(int num)
{
if(num=1||num=2)
{
return num;
}
else
{
buf[num-1]=Febanaci(num-1);
buf[num-2]=Febanaci(num-2);
buf[num]=buf[num-1]+buf[num-2];
return buf[num];
}
}
int main(void)
{
int i=1;
int count=0;
for(;i21;i++)
{
printf("%5d ",Febanaci(i));
count++;
if(count==3)
{
count=0;
printf("\n");
}
}
return 0;
}
5.统计字符数
void cnt(const char *src)
{
int num;
int alpha;
int space;
int others;
while(*src!="\0")
{
if(isdigit(*src))
{
num++;
}
else if(isalpha(*src))
{
alpha++;
}
else if(*src=" ")
{
space++;
}
else
{
others;
}
src++;
}
printf("该字符串中数字有%d个,字母有%d个,空格有%d个,其他字符有%d个",num,alpha,space,others);
}
int main(void)
{
printf("请输入要统计的字符串:");
char mystr[100];//注意输入的时候不要越界;
gets(mystr);
cnt(mystr);
}
c语言综合实验报告 帮我弄一个
姓名 ***
**学 院 ** 专业 052 班
2007 年 11 月 24 日
实验内容实验五 指导老师 陈老师
一、实验内容及要求:
编译运行习题5-3,观察x、y变量的值。
实现客户机类(类名为CLIENT),其中包含的成员有:字符型静态数据成员ServerName,用来保存服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;静态函数ChangeServerName(),用来改变服务器名称。在头文件client.h中声明这个类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。二、实验目的:
1、复习类的声明和使用、掌握对象的声明和使用;
2、学习构造函数和析构函数的使用,观察构造函数和析构函数的执行过程。
三、程序:
//client.h
class Client
{
public:
Client();
~Client();
static ChangeServerName(char *); //改变服务器名称
char * GetServerName(); //返回服务器名称
int GetClientNum (); //返回客户机数量
protected:
static char ServerName[20]; //服务器名称
static int ClientNum; //存放服务器数量
};
/////////////////////////////////////////////////////
//client.cpp
# include iostream
# include cstring
# include "client.h"
using namespace std;
static char *ServerName = "";
int Client::ClientNum = 0;
Client::Client()
{ClientNum ++;}
Client::~Client(){}
void Client::ChangeServerName(char * names) //改变服务器名称
{strcpy(ServerName,names);}
char * GetServerName() //返回服务器名称
{return ServerName;}
int GetClientNum () //返回服务器数量
{return ClientNum;}
////////////////////////////////////////////////////////
//test.cpp
# include iostream
# include "client.cpp"
using namespace std;
void main() //用于测试的主函数
{
Client threeclient[3];
char namestr[20]; //临时存放服务器名称
cout"定义了3个客户"endl;
cout"请输入新服务器名称:"endl;
cin namestr;
CC.ChangeServerName(namestr);
cout"服务器的名称是"Client::GetServerName()endl;
cout"客户数量为"CC.GetClientNum ();
}
思考题:
(1)C语言有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。结构体可以定义自己所需特殊类型.其他类型是已经定义好,不可修改的,而结构体是根据自己的需要定义的特殊的类型.
(3)采用了循环,复合语句.
分享文章:c语言实验四函数与程序 c语言实验七函数实验报告
网站URL:http://abwzjs.com/article/dojiphh.html