C语言实验报告_c语言实验报告

其他范文 时间:2020-02-28 10:50:26 收藏本文下载本文
【www.daodoc.com - 其他范文】

C语言实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言实验报告”。

C语言程序设计实验

--------指针应用实验

========================

山东农业大学实验报告

课程名称: c语言程序设计实验 学院: 水利土木工程学院 专业: 道路桥梁与渡河工程 班级: 2013级2班 姓名:

学号: 20133498

C语言与软件技术基础

实 验 报 告

课程名称 指导老师 班

实验名称 实验时间 姓

实验地点 提交时间 座

一、实验目的和要求

1、掌握指针和间接访问的概念,会定义和使用指针变量。

2、能正确使用数组的指针和指向数组的指针变量。

3、能正确使用字符串的执针和指向字符串的指针变量。

二、实验环境和方法

实验方法:

(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。

(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。

(三)根据实验内容,编译程序。

实验环境:Windows xp Visual C++6.0

三、实验内容及过程描述

实验内容:编译以下题目的程序并调试运行。

1、输入3个整数,按由大到小的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。

①先编写一个程序,以处理输入3个整数,按由小到大顺序输出。运行程序,分析结果。②把程序改为能处理输入3个字符串,按由小到大的顺序输出。运行此程序,分析结果。③比较以上两个程序,分析处理整数与处理字符串有什么不同?例如:(a)怎样得到指向整数(或字符串)的指针。(b)怎样比较两个整数(或字符串)的指针。(c)怎样交换两个整数(或字符串)。

2、将一个3×3的整数型二维数组转置,用一个函数实现之。在主函数中用scanf函数输入以下数组元素:

将数组0行0列元素的地址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后在主函数中输出已转置的二维数组。

请思考: ① 二维数组的指针,某一行的指针、某一元素的指针个代表什么含义?应该怎么表示? ② 怎样表示i行j列元素及其地址。

3、将n个数按输入时顺序的逆序排列,用函数实现。①在调用函数时用数组名作函数实参。

②函数实参改为用指向数组首元素的指针,形参不变。③分析以上二者的不同。

4、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。分别在程序中按以下两种情况处理: ①函数形参用指针变量。②函数形参用数组名。实验步骤: ① 进入Visual C++ 6.0集成环境。② 输入自己编好的程序。③ 检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。④ 进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。⑤ 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,应运行多次,分别检查在不同情况下结果是否正确。以下是各题源代码:

1、输入3个整数,按由大到小的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。程序①

#include int main(){ void swap(int *p1,int *p2);int n1,n2,n3;int *p1,*p2,*p3;printf(“请输入3个数n1,n2,n3:”);scanf(“%d,%d,%d”,&n1,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if(n1>n2)swap(p1,p2);if(n1>n3)swap(p1,p3);if(n2>n3)swap(p2,p3);printf(“排序结果为:%d,%d,%dn”,n1,n2,n3);return 0;}

void swap(int *p1,int *p2){int p;p=*p1;*p1=*p2;*p2=p;} 程序②

#include #include int main(){ void swap(char *,char *);char str1[20],str2[31],str3[20];printf(“请输入3行字符:n”);

printf(“请输入3行字符:n”);gets(str1);gets(str2);gets(str3);if(strcmp(str1,str2)>0)swap(str1,str2);if(strcmp(str1,str3)>0)swap(str1,str3);if(strcmp(str2,str3)>0)swap(str2,str3);printf(“排序结果为:n”);printf(“%sn%sn%sn”,str1,str2,str3);return 0;}

void swap(char *p1,char *p2){char p[20];strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);}

2、将一个3×3的整数型二维数组转置,用一个函数实现之。#include int main(){void move(int * pointer);int a[3][3],*p,i,j;printf(“请输入一个3×3数组:n”);for(i=0;i

3、将n个数按输入时顺序的逆序排列,用函数实现。

#include int main(){void sort(char * p,int m);int i,n;char * p,num[20];printf(“请输入n为:”);scanf(“%d”,&n);printf(“请输入%d个数:n”,n);for(i=0;i

printf(“逆序排列为:n”);for(i=0;i

4、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。分别在程序中按以下两种情况处理: ① 函数形参用指针变量。

#include int main(){int length(char * p);int len;char str[20];printf(“请输入一个字符串:n”);scanf(“%s”,str);len=length(str);printf(“该字符串长度为%d.n”,len);return 0;} int length(char * p){int n;n=0;while(* p!=''){n++;p++;} return(n);}

②函数形参用数组名。

#include int main(){int length(char str[]);int len;char str[20];printf(“请输入一个字符串:n”);scanf(“%s”,str);len=length(str);printf(“该字符串长度为%d.n”,len);return 0;} int length(char str[20])int length(char str[20]){int n;char * p;p=str;n=0;while(* p!=''){n++;p++;} return(n);}

四、实验结果:

1、输入3个整数,按由大到小的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。程序①结果:

结果分析:

本程序应用指针,在swap函数中交换指针p所指向的单元数值,使较小的数放前面从而达到排序的效果。程序②结果:

结果分析:

利用指针指向字符串数组,在strcmp函数中,将两个字符串自左向右逐个字符比较(按ASCCII码值大小比较),直到出现不同字符或遇到’’为止。

③处理整数只需将指针指向整数的存储地址然后进行比较;处理字符串时,字符串是用数组存储的,在进行

大小比较时用指针指向数组首地址或数组名从而得到字符串指针。比较整数用swap函数,比较字符串用strcmp函数。

2、将一个3×3的整数型二维数组转置,用一个函数实现之。

① 二维数组中,某一行的指针是指指向该数组一行中的所有元素可表示为:*(a+i),i表示第i行;某一元素指针代表任意元素的指针*a[i][j],i表示第i行,j表示第j列。② 第i行j列表示为a[i][j],地址表示为&a[i][j]。

3、将n个数按输入时顺序的逆序排列,用函数实现。

结果分析:

用数组名作函数实参与用指向数组首元素的指针作函数实参都是用“值传递”的方法将数值变量的地址传递到函数接收。数组名表示数组首元素的地址,在值传递中把首元素的地址传递到函数接收处,所以函数形参采用指针变量。

4、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。①运行结果:

C语言实验报告

实验报告Ⅰ指导教师曾宪华实验时间: 2010 年10月日 学院通信与信息工程专业通信类班级0101105学号2011210150姓名陈环宇 实验室s313实验目的及要求:(1)掌握选择结构程序设计,学会......

c语言实验报告

实验报告一(注意:红字不用抄写,其它必须抄写。实验纸不够用写反面。)一、实验内容if语句、ifelse语句、ifelse if语句的练习二、重点难点分析题目,正确应用相应的选择语句三、实......

C语言实验报告

《C语言程序设计》实验报告实验名称 ____ C程序的运行环境和运行C程序的方法_学期日期同组人李江涛指导老师_杨雪松___________成绩___________ -------------------------......

c语言实验报告

南昌大学实验报告学生姓名: 学 号: 专业班级:√ 综合 □ 设计 □ 创新 实验日期: 实验成绩: 实验类型:□ 验证 □一.实验名称实验3 控制语句二.实验目的1.熟练掌握if 、if…else、i......

C语言实验报告

郑州轻工业学院 实 践 报 告实现内容:OJ1123最佳校友(数组)、OJ1158又是升序(指针)、OJ1180成绩统计(结构)、OJ1203做幻方(文件)学号:541507020140 学生姓名:王红旭专业班级:电子信息科......

下载C语言实验报告word格式文档
下载C语言实验报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文