当前位置:文档之家› C语言实验习题

C语言实验习题

实验七:指针程序设计
实验内容
以下均用指针方法编程:
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个字符串,调用函数按从大到小顺序对字符串进行排序,在主函数中输出排序结果。

相关主题