实验6分析和总结.docxVIP

  • 6
  • 0
  • 约1.83千字
  • 约 3页
  • 2022-06-30 发布于上海
  • 举报
- PAGE 1 - PAGE 1 - 通信 123 班 张朋 C 语言程序设计实验报告 实验六 使用指针的程序设计 班级 学号 20 姓名一、实验目的 掌握指针的概念,会定义和使用指针变量; 能正确使用数组的指针和指向数组的指针变量; 熟悉指针做函数参数的使用方法; 能正确使用字符串的指针和指向字符串的指针变量。二、实验内容及步骤 1、按要求完善程序 下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参 n 给了数组中数据的个数,利用指针 odd 返回奇数之和,利用指针 even 返回偶数之和。例如:数组中的值依次为:1,9,2, 3,11,6;则利用指针 odd 返回奇数之和 24;利用指针 even 返回偶数之和 8。请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。 程序代码如下所示: #include stdio.h #define N 20 void fun(int *a,int n,int *odd,int *even) { int i,j=0,k=0; printf(\n); for(i=0;in;i++) { if(a[i]%2==0){j=a[i]+j;} if(a[i]%2!=0){k=a[i]+k;} }*even=j;*odd=k; } void main() { int a[N]={1,9,2,3,11,6},i,n=6,odd,even; printf(The original data is:\n); for(i=0;in;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); } 运行结果: 2、编写程序 (1)假设每班人数最多不超过 40 人,具体人数由键盘输入,试编程打印最高分及其学号。 要求:用一维数组和指针变量作函数参数,编程打印某班一门课成绩的最高分和学号。请编写相应的程序代码,并调试运行出正确结果。 程序代码: #include stdio.h #define arr 40 main() { int i,n; long num[arr],*q=NULL,max1; float score[arr],*p=NULL,max2; printf(请输入学生总数: ); scanf(%d,n); q=num; p=score; printf(请输入学生学号和成绩: \n); for(i=0;in;i++) { scanf(%ld%f,q[i],p[i]); } max1=num[0]; max2=score[0]; for(i=0;in;i++) { if(p[i]max1) { max1=q[i]; max2=p[i]; } } printf(The result is:%ld %.0f\n,max1,max2); } (2)从键盘输入一个字符串,实现利用字符指针将字符串的字符顺序逆置并输出。(例如输入 abcdef, 输出 fedcba)。请编写相应的程序代码,并调试运行出正确结果。程序代码: #include stdio.h #include string.h #define arr 80 main() { int i; char str[arr],*p; printf(input:); gets(str); i=strlen(str); for(p=str+i-1;p=str;p--) { printf(%c,*p); } printf(\n); } 三、问题讨论 简述字符串数组和字符指针的区别,举例说明。 字符串数组是用来存放字符串的数组,在内存中占一段连续的单元。所占内存存放的是字符串。定义方法为: 字符串数组是用来存放字符串的数组,在内存中占一段连续的单元。所占内存存放的是字符串。定义方法为:char a[N];N 为常量表达式,可初始化。字符指针是指向字符的指针,所占内存单元存放的是所指字符的内存单元。定义方法为:char *p; 四、实验心得 本次实验比较简单,通过做实验更好的了解了指针!

文档评论(0)

1亿VIP精品文档

相关文档