C语言程序设计—指针—实验报告

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

实验报告

专业软件工程班级X 班学号_ _ 姓名

实验日期:201X年X月X日报告退发(订正、重做)

课程C程序设计实验实验名称指针

一、实验目的

二、实验环境(描述实验的软件、硬件环境)

①软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器;

②硬件环境:PC机一台

三、实验内容、步骤和结果分析

题目一:输入3个整数,按由小到大的顺序输出

要求:

使用指针方法实现;

#include

void function(int *a, int *b)

{

int temp;

if (*a<*b)

{

temp = *a;

*a = *b;

*b = temp;

}

}

int main()

{

int a, b, c;

int *p1, *p2, *p3;

p1 = &a;

p2 = &b;

p3 = &c;

scanf("%d%d%d", &a, &b, &c);

function(p1, p2);

function(p1, p3);

function(p2, p3);

printf("%d %d %d\n", *p3, *p2, *p1);

return 0;

题目二:将长度为10的整型数组arr中的元素按照从小到大排列并输出要求:

使用指针方法实现;

#include

int main()

{

struct METRIC {

float m;

float cm;

} m1, m2;

struct BRITISH{

float foot;

float inches;

} b1, b2;

printf("Enter the info of m1(米,厘米):");

scanf("%f%f", &m1.m, &m1.cm);

printf("Enter the info of m2(米,厘米):");

scanf("%f%f", &m2.m, &m2.cm);

printf("\nEnter the info of m2(英尺,英寸):");

scanf("%f%f", &b1.foot, &b1.inches);

printf("Enter the info of m2(英尺,英寸):");

scanf("%f%f", &b2.foot, &b2.inches);

printf("\nSum of m1 and m2 is:%.2f(厘米)\n", (m1.m + m2.m) * 100 + m1.cm + m2.cm);

printf("Sum of b1 and b2 is:%.2f(厘米)\n\n", (b1.inches + b2.inches)*30.48 + (b1.foot + b2.foot)*2.54);

return 0;

题目三:已知一个长度为10的一维数组arr,编写函数,求出第m个数到第n个数的和要求:

使用指针方法实现。

#include

int main()

{

int arr[] = { 9, 1, 5, 6, 8, 4, 2, 7, 0, 3 };

int *p1, *p2, a, m, n, temp = 0;

scanf("%d%d", &m, &n);

p1 = arr + m - 1;

for (a = 0; a <= (n - m); a++)

{

temp += *(p1 + a);

}

printf("%d\n", temp);

return 0;

}

题目四:写一函数实现以上功能,在主函数中输入n个整数和输出调整后的的n个数要求:

Arr是一个包含n个整数的一维数组。现将数组中的每个元素向后移m个位置,使最后m个数变成最前面的m个数。

指针作为函数参数。

#include

#include

void fun(int *arr, int n, int m)

{

int a, b, temp;

for (a = 0; a

{

temp = *(arr + n - 1);

for (b = n; b>0; b--)

{

*(arr + b) = *(arr + b - 1);

}

*arr = temp;

}

}

int main()

{

int *arr, n, m, a;

scanf("%d%d", &n, &m);

fflush(stdin);

arr = (int *)calloc(n, sizeof(int));

for (a = 0; a

{

scanf("%d", arr + a);

}

fun(arr, n, m);

for (a = 0; a

{

printf("%d ", *(arr + a));

}

printf("\n");

return 0;

}

题目五:编写一个函数实现将字符串str1和字符串str2合并。

要求:

①合并后的字符串中的字符按其ASCII码值从小到大进行排序)

②相同的字符在新字符串中只出现一次

#include

#include

#include

void fun(char str1[], char str2[])

{

int a, b = strlen(str1), c = strlen(str2), d, f, g;

char *str = (char *)calloc(b + c + 1, sizeof(char)), e;

for (a = 0; a < (b + c); a++)

{

if (a < b)

{

相关文档
最新文档