实验的七指针程序设计

合集下载

7 指 针

7 指   针
}
面试题2:
• main() { int a[][3] = { 1,2,3 ,4,5,6}; int (*ptr)[3] =a; printf("%d %d " ,(*ptr)[1], (*ptr)[2] ); ++ptr; printf("%d %d" ,(*ptr)[1], (*ptr)[2] ); }
if( 'a'<=str[i] && str[i]<='z' ) str[i] -= ('a'-'A' );//由小写转大写
} void main() {
char str[] = "aBcDefg"; cout << "str字符长度为: " << sizeof(str)/sizeof(str[0]) << endl;//是数组的大 小6 UpperCase( str ); cout << str << endl;
意义 如果a存储在b的前面则返回true 如果a存储在b的前面,或两个指针指向 同一位置则返回true 如果两个指针指向同一位置则返回true
如果两个指针指向不同位置则返回true
如果ptr_a是空值则返回true
面试题1:以下代码中的两个sizeof用 法有问题吗?
#include <stdio.h> #include "iostream.h" void UpperCase( char str[] ) { int i;
指向 var 前面的第 i 个类型数 据
++(*ptr_var)或

高级语言程序设计实验

高级语言程序设计实验

创新源于实践《高级语言程序设计》课程实验教学手册高级语言程序设计课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。

现将实验报告撰写的有关内容说明如下:1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记,上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。

2、实验结束后填写通过后的源程序和对实验的总结。

3、通过后的源程序可以手写也可以打印粘贴。

实验项目一览表学号:姓名:成绩:实验一熟悉C语言编程环境实验目的:1.熟悉C语言编程环境(VC++、Cfree、Turboc2.0等)2.了解C程序的基本框架3.理解程序调试的思想,能找出并改正C程序中的错误实验内容:1.1 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序1.2 编程示例在屏幕上显示一个短句“Programming in C is fun!”(教师示例,学生模仿并创新,如输出汉字、特除字符等。

学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开)1.3 编程在屏幕上显示如下网格。

+---+---+| | || | |+---+---+# include <stdio.h>int main(){printf("+---+---+\n");printf("| | |\n");7printf("| | |\n");printf("+---+---+\n");return 0;1.4 调试示例改正下列程序中的错误,在屏幕上显示“Welcome to You !”。

(掌握找错、改错的方法)源程序:# include <stdio.h>int mian(void)//mian改为main{printf(Welcome to You! \n")//括号后加”getchar();return 0;}注:需要修改的语句直接在程序上标注并修改实验总结:学号:姓名:成绩:实验二用C语言编写简单程序实验目的:1.掌握算术表达式和赋值表达式的使用2.掌握基本输出函数的使用3.能够自己编程实现简单的数据处理4. 熟练掌握简单if语句使用5. 熟练掌握for语句的使用6. 掌握简单C程序的查错方法、单步调试实验内容:2.1 调试以下程序,求华氏温度对应的摄氏温度。

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数据类型的概念、熟悉整型、字符型和实型基本类型的常量的用法;学会三种基本类型变量的定义、赋值和使用方法。

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六使用指针的程序设计学号姓名一、实验目的1、掌握指针的概念,会定义和使用指针变量;2、能正确使用数组的指针和指向数组的指针变量;3、熟悉指针作为函数参数的定义和调用方法;4、能正确使用字符串的指针和指向字符串的指针变量。

二、实验内容1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。

#include <stdio.h>void main(){int *p1,*p2,*p;int a,b;printf("Input a b please");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a>b){ p=p1;p1=p2;p2=p;}printf("*p1=%d, *p2=%d\n",*p1,*p2);printf("a=%d, b=%d\n",a,b);}『运行结果:』输入1,2得:*p1=1,*p2=2a=1,b=2输入2,1得:*p1=1,*p2=2a=2,b=1输入56,123得:*p1=56,*p2=123a=56,b=1232.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。

形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even 返回偶数之和。

请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。

#include <stdio.h>#define N 10void fun(int *a,int n,int *odd,int *even){int m;*odd=0; *even=0;for(m=0;m<n;m++)if(*(a+m)%2==0)*even+=*(a+m);else*odd+=*(a+m);}void main(){int a[N]={1,10,2,3,19,6},i,n=6,odd,even;printf("The original data is:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("The sum of odd numbers:%d\n",odd);printf("The sum of even number:%d\n",even);}『运行结果:』3.编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str。

C语言程序设计实验课程简介

C语言程序设计实验课程简介

四川师范大学计算机科学学院《C语言程序设计》实验手册2010年2月年级: 2009级专业:计算机科学与技术班级:一班姓名:谢丹学号: 2009110156 指导教师:廖雪花《C语言程序设计》实验课程简介课程名称:C语言程序设计实验课程性质:专业必修课课程属性:专业必修课学时学分:学时32 学分1开课实验室:软件实验室面向专业:网络工程、软件工程、计算机科学与技术一、课程的任务和基本要求C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C 语言程序设计》课程而开设的实验性教育环节。

本课程的主要任务是让学生充分掌握C语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。

C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。

通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。

二、实验项目【实验一】最简单的C程序---顺序程序设计【实验二】逻辑运算和判断选取控制【实验三】循环结构程序设计(一)【实验四】循环结构程序设计(二)【实验五】函数【实验六】数组(一)【实验七】数组(二)【实验八】指针【实验九】结构体、共用体和文件【实验十】C程序综合性实验三、有关说明1、与其它课程和教学环节的联系:先修课程:计算机文化后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程2、教材和主要参考书目:(1)教材:《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。

(2)主要参考书目:《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容实验一最简单的C程序---顺序程序设计(验证性实验 2学时)(一)、实验目的1.熟悉win-tc程序运行环境2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法3.掌握C语言中使用最多的一种语句——赋值语句4.掌握数据的输入输出方法,能正确使用各种格式控制符(二)、实验内容1.写出下列程序的运行结果(1)#include <stdio.h>void main(){printf(“*****************\n”);printf(“This is a c program. \n”);printf(“****************\n”);}运行结果及分析:结果:****************** 分析:在C语言中,\n表示换行,因此运行结果为三行。

程序设计基础(Ⅰ)实验目的、内容及实验报告填写要求2015新修改 (1)

程序设计基础(Ⅰ)实验目的、内容及实验报告填写要求2015新修改 (1)

封面:2015-2016学年第一学期,年级是2015级,指导教师:网络工程专业1班写:赵玉艳陈海宝;网络工程2班写:赵玉艳肖刚,其它如实填写。

实验名称:实验一用C语言编写简单程序;实验二分支结构程序设计;实验三循环结构程序设计;实验四函数程序设计;实验五数组程序设计;实验六指针程序设计;实验七结构体程序设计。

课程名称:程序设计基础(Ⅰ)实验时间:分别为9.28, 10.12, 11.9, 11.23, 12.7, 12.21, 1.4实验地点:X405组号,同组人以及成绩:不需要填写实验环境:Windows 7;Visual C++ 6.0。

实验目的实验一用C语言编写简单程序1. 熟悉VC6.0的编程环境,掌握运行C程序的基本步骤。

2. 了解C程序的基本框架,模仿例题编写简单的C语言程序。

3. 正确书写算术表达式、赋值表达式和关系表达式。

4. 掌握基本输入输出函数的使用,正确调用C语言提供的数学库函数。

5. 掌握简单的单步调试方法。

实验二分支结构程序设计1.熟练掌握关系表达式的使用。

2.熟练掌握使用else-if语句实现多分支结构程序设计。

3.熟练掌握关系表达式和逻辑表达式的使用。

4.熟练掌握字符型数据的输入输出。

5.熟练掌握用嵌套的if语句或switch语句实现多分支结构程序设计。

6.熟练掌握switch语句中的break语句的作用。

7.掌握使用断点调试程序的方法。

实验三循环结构程序设计1. 熟练使用for、while和do-while语句实现简单的循环程序。

2. 理解循环条件和循环体,以及for、while和do-while语句的相同及不同之处。

3. 掌握使用Debug菜单调试程序的方法。

4. 掌握break语句的使用。

5. 掌握continue语句的使用。

6. 熟练掌握嵌套循环程序设计。

实验四函数程序设计1. 熟练掌握函数的定义和调用。

2. 熟练掌握使用函数编写程序。

3.熟练掌握函数的实参、形参和返回值的概念及使用。

《C语言程序设计》实验报告(实验1-11) 2013.3

《C语言程序设计》实验报告(实验1-11) 2013.3

《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。

二、预习内容:教材《C语言程序设计教程》第1章。

三、实验内容:1. 在Visual C++ 6.0环境下输入并运行下面的程序:#include <stdio.h>int main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。

#include <stdio.h>int main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运行结果(或截图):2. (1) 改正后的源程序:(2) 运行结果(或截图):五、思考题:1. 一个C程序上机的步骤有哪些?答:2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。

二、预习内容:教材《C语言程序设计教程》第2章。

三、实验内容:1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。

C语言_实验七、指针程序设计

C语言_实验七、指针程序设计

实验七指针的应用一、实验目的1.掌握指针变量的定义和引用。

2.掌握指针与变量的程序设计方法3.掌握指针与数组的程序设计方法4.掌握指针与字符串的程序设计方法5.掌握指针与函数的程序设计方法二、实验内容1.[目的]访问变量的地址。

[题目内容]已知,char a;int x;float p,q; 而且a=’A’;x=125;p=10.25;q=18.75;编写程序显示变量a,x,p,q的值及其地址。

[输入]无[输出]变量a,x,p,q的值及其地址[提示]使用运算符&,地址输出采用%u格式(因为内存地址是无符号的整数)。

2.[目的]通过指针访问变量。

[题目内容]已知,int x,y;int *ptr; 而且x=10;ptr=&x;y=*ptr;,运行下列程序,使用运算符*来访问指针所指的值。

[输入]无[输出] x,&x、*&x,&x、*ptr,ptr、y,&*ptr、ptr,&ptr、y,&y。

[提示]地址输出采用%u格式3.[目的]练习指针表达式。

[题目内容]已知,int x,y,a,b;int *ptr1,*ptr2; 而且x=12;y=4;ptr=&x;ptr2=&y;,编写程序,当执行表达式:a=*ptr1**ptr2-6;以及:b=(4*(-*ptr2))/(*ptr1)+10;后,各变量的值分别为多少?[输入]无[输出]各变量的值。

[提示]地址输出采用%u格式4.[目的]指针与数组[题目内容]已知,int *p,sum,i; int x[5]={5,9,6,3,7};,编写程序,使用指针来计算数组中所有元素的总和。

[输入]无[输出]Element Value Addressx[0] 5 1245024x[1] 9 1245028x[2] 6 1245032x[3] 3 1245036x[4] 7 1245040sum=30[提示]关键语句:sum=sum+*p;以及p++;5.[目的]指针与数组[题目内容]编写一个函数,用于对作为参数的数组中的元素求平均值,函数以指针方式进行处理。

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

实验七指针程序设计
一、实验目的
1.掌握指针和指针变量的概念。

2.掌握简单指针变量的定义和基本使用方法。

3.熟悉指针和一维数组的关系,掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素。

4.了解指针和二维数组的关系,掌握用指针表示二维数组元素的方法。

5.了解指针与字符串的关系,能熟练使用指针处理字符串。

二、实验内容
1.用指针访问简单变量。

从键盘输入三个整数,要求设三个指针变量
p1,p2,p3,使p1指向三个数的最大者,p2指向次大者,p3指向最小者,然后按由小到大的顺序输出这三个数。

2.用指针法在一维有序数组中插入数据。

如下是具有10整数的升序数列,存储在一维数组中,要求在其中插入任意一个整数后数列仍然有序。

数列:10,20,30,40,50,60,70,80,90,99
3.用指针实现选择法排序程序。

输入20个整数,并用指针实现选择法
升序排序。

三、实验指导
1.用指针访问简单变量。

⑴编程分析
定义指向整型变量的指针变量,然后通过“*指针变量”的形式即可访
问相应的简单变量。

⑵参考程序
/* 用指针访问简单变量的程序 */
#include "stdio.h"
void main()
{
int a,b,c,temp;
int *p1,*p2,*p3;
printf("请输入三个整数值(a,b,c):\n");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a; /* 使指针p1指向简单变量a */ p2=&b; /* 使指针p2指向简单变量b */ p3=&c; /* 使指针p3指向简单变量c */ if(*p1<*p2)
{
temp=*p1;*p1=*p2;*p2=temp;
}
if(*p1<*p3)
{
temp=*p1;*p1=*p3;*p3=temp;
} /* 至此p1指向了三个数中的最大数 */
if(*p2<*p3)
{
temp=*p2;*p2=*p3;*p3=temp;
} /* 至此p3指向了最小数,p2指向了中间数 */ printf("%d,%d,%d\n",*p3,*p2,*p1);
}
⑶程序调试
①运行程序,任意输入三个整数(之间以逗号分隔),察看并分析程
序运行结果。

②运行程序,按由小到大的顺序输入三个整数(之间以逗号分隔),察看并分析程序运行结果。

③运行程序,按由大到小的顺序输入三个整数(之间以逗号分隔),察看并分析程序运行结果。

2.用指针法在一维有序数组中插入数据。

⑴编程分析
在实验八中,我们已经用下标访问数据元素的方法,实现了有序数列的数据插入问题。

现用指针访问数组元素的方法予以实现。

只要在已有程序的基础上,将下标访问数组元素改为用指针访问数组元素,问题即得以解决。

⑵参考程序
/* 用指针法在一维有序数组中插入数据程序 */
#include "stdio.h"
#define M 10
main( )
{
int a[M+1]={10,20,30,40,50,60,70,80,90,99};
int i,n,*p,*q;
printf("请输入要插入的数据:\n");
scanf("%d",&n);
a[M]=n;
for(p=a,i=0;i<=M;i++) /* 确定要插入的位置p */
if(n<=*(p+i))
{
p=p+i; /* p指向要插入数据的位置 */ break;
}
for(q=a+M-1;q>=p;q--) /* 元素后移 */
*(q+1)=*q;
*p=n; /* 插入数据 */
printf("\n插入数据后的数列:\n");
for(p=a,i=0;i<M+1;i++)
printf("%d ",*(p+i));
}
3.用指针实现选择法排序程序。

⑴编程分析
①定义一个int型一维数组a,并用指针p指向它。

②用指针实现各个数组元素的输入。

③用指针访问各个数组元素实现选择法排序。

④输出排序结果。

⑵参考程序
/* 用指针实现的选择法排序程序 */
#include "stdio.h"
#define M 20
void main( )
{
int a[M],n,i,j,min,temp,*p,*q;
printf("请输入排序数据:\n");
for(p=a;p<a+M;p++) /* 输入数据 */
scanf("%d",p);
printf("排序前数列:\n");
for(p=a;p<a+M;p++)
printf("%d ",*p);
for(i=0;i<M-1;i++) /* 选择法排序 */
{
q=&a[i];
for(p=&a[i+1];p<a+M;p++)
if(*p<*q)
q=p;
temp=a[i];
a[i]=*q;
*q=temp;
}
printf("\n排序后数列:\n");
for(p=a;p<a+M;p++) /* 输出排序结果 */
printf("%d ",*p);
}
⑶程序调试
①凡是排序程序,输入数据调试时至少要包括三种情况:任意的一组
数据;一组升序数据;一组降序数据。

②在上面的参考程序中,指针变量p在每一次的数组处理中都是变化的,不管是数组数据输入、数组数据输出、每一趟排序等,p指针总是逐步
向后指向下一个元素。

在编写调试程序时,指针p的指向也可以相对固定,而采用加(或减)移动量的方式指向其他的数组元素。

四、思考题
1.在“用指针访问简单变量”实验中,调试程序时,给出了三组顺序
不同的调试数据。

请读者分析,这对调试程序有何意义。

相关文档
最新文档