C语言实验习题

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

实验七:指针程序设计

实验内容

以下均用指针方法编程:

1. 调试下列程序,使之具有如下功能:用指针法输入12个数,然后按每行4个数输出。写出调试过程。

main()

{ int j,k,a[12],*p;

for(j=0;j<12;j++)

scanf("%d",p++);

for(j=0;j<12;j++)

{ printf("%d",*p++);

if(j%4 == 0)

printf("\n");

}

}

调试此程序时将a设置为一个"watch",数组a所有元素的值在一行显示出来。调试时注意指针变量指向哪个目标变量。

2. 在主函数中任意输入10个数存入一个数组,然后按照从小到大的顺序输出这10个数,要求数组中元素按照输入时的顺序不能改变位置。

3. 自己编写一个比较两个字符串s和t大小的函数strcomp(s,t),要求s小于t 时返回-1,s等于t•时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求最小字符串。

4.调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求:

⑴ 2个数的和,

⑵ 2个数交换值。

要求用函数指针调用这两个函数,结果在主函数中输出。

main()

{ int a,b,c,(*p)();

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

p=sum;

*p(a,b,c);

p=swap;

*p(a,b);

printf("sum=%d\n",c);

printf("a=%d,b=%d\n",a,b);

}

sum(int a,int b,int c)

{ c=a+b;

}

swap(int a;int b)

{ int t;

t=a;

a=b;

b=t;

}

调试程序时注意参数传递的是数值还是地址。

5.输入一个3位数,计算该数各位上的数字之和,如果在[1,12]之内,则输出与和数相对应的月份的英文名称,否则输出***。

例如:输入:123 输出:1+2+3=6→ June

输入:139 输出:1+3+9=13→ ***

用指针数组记录各月份英文单词的首地址。

6.任意输入5个字符串,调用函数按从大到小顺序对字符串进行排序,在主函数中输出排序结果。

相关文档
最新文档