第一篇:C语言程序设计实验七:函数、数组、指针
C语言程序设计实验七:函数、数组、指针
1、程序运行后,用户任意输入一个字符串,求出字符串长度,然后输出字符串内容及个 数。不能使用strlen函数。
求字符串长度函数的函数原型必须如下:
int MyStrLenPt(char *str)
若输入:nihao123!
则输出:nihao123!:9 chars2、编写一个对一维数组进行排序的程序。
要求:
写两个函数,一个主函数,一个sort函数。在主函数中完成数组的输入和输出,通过调 用sort函数对数组进行排序。
sort函数的原型为:voidsort(int*p, intn);
说明:
(1)请大家按学号来坐,便于考勤和管理。
(2)请珍惜宝贵的实验时间!不要做与实验无关的事情,比如聊QQ、上网或打游戏。
(3)直接把C语言代码粘贴到相应的实验题目下方,上交实验报告时只交word文档。
(4)文档名称:班级+学号后2位+姓名+实验编号,例如11电1班12张山实验七.doc。
第二篇:C语言程序设计实验十指针
C语言程序设计实验十——指针
【实验1】
实验题目:
1、下列代码片段哪里有错误?
char var1,ptr1;
var1 = „x‟;
ptr1 = &var1;
2、设有如下定义:
Double var1, *ptr1, *ptr2;
Float* ptr3;
Int var2, *var4;
那么,var1, *ptr1, ptr2,*ptr2,ptr3,* ptr3,var2, var4,*var4个属于哪种数据类型?
3、下列代码片段在哪里有错误?
Char c = ‟ A ‟;
Char * p;
p = c;或*p=‟A‟;
4、下列代码片段的输出结果是什么?
charvar1 = „ S „;
charvar2 = „ X ‟;
char*ptr1, *ptr2;
ptr1 = &var1;
ptr2 = &var2;
*ptr2 = *ptr1;
printf(“%ct%cn”, *ptr1, var2);
【实验2】
实验题目:输入3个整数,按由小到大的顺序输出。
【实验3】
实验题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
实验要求:写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。
【实验4】输入年和天数,输出对应的年、月、日。
例如:输入2000和61,输出2000-3-1。
要求:都用指针实现。
第三篇:C语言实验程序、总结 实验七 指针
一 实验目的
实验七 指针 了解指针的概念,学会定义和使用指针变量。2 掌握指针、变量和数组的关系及使用方法。3 学会使用指向函数的指针变量。
二 实验内容 编写函数fun(float *sn,int n),其功能是:根据以下公式计算s,计算结果通过形参sn传回;n通过实参传入,n的值大于等于0。上机运行并记录输入输出(主函数已给出)。
s11111 3572n1fun(float *sn,int n){ 定义变量:和s,通项w,符号f,循环控制变量i; /* 其中s、f要初始化 */ 循环求累加和s { 改变符号;/* 由负变正或由正变负 */ 求通项w;累加:s+=w;} 形参指针变量sn赋值;/* 通过形参sn传回累加和s */ } main(){ float s;int n;printf(“n=”);scanf(“%d”,&n);fun(&s,n);printf(“s=%fn”,s);}
完整程序如下:
#include
输出结果如下图: 想使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的? swap(int *p1,int *p2){ int *p;p=p1;p1=p2;p2=p } main(){ int a,b;int *pt1,*pt2;scanf(“%d,%d”,&a,&b);pt1=&a;pt2=&b;if(a
上机调试此程序。如果不能实现题目要求,指出原因并修改之。
子函数swap改成下面程序方可实现目的,主函数不变: swap(int *p1,int *p2){ int p;p=*p1;*p1=*p2;*p2=p;} 下面的程序用来实现将一个3×3的矩阵转置。#include 程序修改如下: #include 应改为: printf(“%cn”,*pt++); 实验总结:本次实验主要掌握指针的概念,学会定义和使用指针变量,掌握指针、变量和数组的关系及使用方法,学会使用指向函数的指针变量,通过本次实验,很好的了解了指针的使用,加深了对指针的认识。 C语言函数指针变量 在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为函数指针变量。 函数指针变量定义的一般形式为: 类型说明符(*指针变量名)();其中类型说明符表示现金网96y.org被指函数的返回值的类型。(* 指针变量名)表示*后面的变量是定义的指针变量。最后的空括号表示指针变量所指的是一个函数。例如: int(*pf)(); 表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。 本例用来说明用指针形式实现对函数调用的方法。 int max(int a,int b){ if(ab)return a; else return b; } main(){ int max(int a,int b); int(*pmax)(); int x,y,z; pmax=max; printf(input two numbers:n); scanf(%d%d,x,y); z=(*pmax)(x,y); printf(maxmum=%d,z); } 从上述程序可以看出用,函数指针变量形式调用函数的步骤如下: 先定义函数指针变量,如后一程序中第9行 int(*pmax)();定义 pmax为函数指针变量。 把被调函数的入口地址(函数名)赋予该函数指针变量,如程序中第11行 pmax=max; 用函数指针变量形式调用函数,如程序第14行 z=(*pmax)(x,y); 调用函数的一般形式为:(*指针变量名)(实参表) 使用函数指针变量还应注意以下两点: 函数指针变量不能进行算术运算,这是与数组指针变量不同的。数组指针变量加减一个整数可使指针移动指向后面或前面的数组元素,而博彩娱乐棋牌q07i5.org函数指针的移动是毫无意义的。 函数调用中(*指针变量名)的两边的括号不可少,其中的*不应该理解为求值运算,在此处它只是一种表示符号。 讲授 9.6二维数组和指针 2课时 掌握二维数组的地址表示方法 掌握指向数组元素的指针变量 掌握指向数组元素的指针变量 掌握用指向由m个元素组成的一维数组的指针变量 指向一维数组的指针变量 无 作业见后 一、二维数组的地址 例:定义二维数组int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; 则二维数组a是数组的数组,由3个一维数组所组成的,即3个元素:a[0],a[1],a[2]。而每个元素又是一个一维数组。 二、指向二维数组元素的指针变量 1、指向数组元素的指针变量 例1 用指向元素的指针变量输出二维数组元素的值 #include { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p;第四篇:C语言函数指针变量
第五篇:c语言 二维数组与指针 教案