题目一:计算两数的和与差
#include <stdio.h>
void sum_diff( float op1, float op2, float *psum, float *pdiff );
int main()
{
float a, b, sum, diff;
scanf("%f %f", &a, &b);
sum_diff(a, b, &sum, &diff);
printf("The sum is %.2f\\nThe diff is %.2f\\n", sum, diff);
return 0;
}
/* 你的代码将被嵌在这里 */
提交列表:
设计思路及流程图:
用两个分别指向sum和diff的指针来计算sum和diff
提交过程遇到的问题:要明白指针传的是地址
题目二:字符串的连接
#include <stdio.h>
#include <string.h>
#define MAXS 10
char *str_cat( char *s, char *t );
int main()
{
char *p;
char str1[MAXS+MAXS] = {‘\\0‘}, str2[MAXS] = {‘\\0‘};
scanf("%s%s", str1, str2);
p = str_cat(str1, str2);
printf("%s\\n%s\\n", p, str1);
return 0;
}
/* 你的代码将被嵌在这里 */
提交列表:
同学的代码
char *str_cat( char *s, char *t )
{
char*p; p=strcat(s,t);return(p);
}
与他的比较,他直接用了string里面的函数更为简单,而我的又把 comcoy的 函数编写了一遍,
虽然复杂了点,但是更加明了
设计思路及流程图:
提交过程遇到的问题:要明白指证传的是地址,本题是返回一个指针
题目三:移动字母
#include <stdio.h>
#include <string.h>
#define MAXS 10
void Shift( char s[] );
void GetString( char s[] ); /* 实现细节在此不表 */
int main()
{
char s[MAXS];
GetString(s);
Shift(s);
printf("%s\\n", s);
return 0;
}
/* 你的代码将被嵌在这里 */
提交列表:
设计思路及流程图:
提交过程遇到的问题:要明白指证传的是地址,数组名也可以当作地址
三、题目集的PTA最后排名
本周学习总结:
1、 你学会了什么?
如何把以前的一些程序用指针来替代,更加深刻的体会到了指针的好处,可以和数组一样,一次可以返回多个值
2、本周内容, 你还不会什么?
简单的指针是会了,但是对与指针函数,指针数组等掌握的还不够,需多加练习