一、PTA实验作业
题目1:统计一行文本的单词个数
1.本题PTA提交列表
2.设计思路
// 一个非空格和一个空格代表一个单词
char str[1000]; 存放一行文本
定义 I,j=0;用作循环和统计单词个数
gets(输入一行文本)
for(i =0;;i++)用来循环下面的步骤
if (str[i]不为空格并且它后一位str[i+1]为空格)
j++
else 如果str[i]为‘\0’
如果str[I-1]为空格
j++ 并跳出循环
输出 j
3.代码截图
4.调试过程中所遇到的问题
开始的思路是单词前面是一个空格,后面不是空格来数,但是总会发生未知错误,怎么调试都调试不出来,后来换为单词后面是一个空格来计数一个单词。
题目2:删除字符串中的子串
1.本题PTA提交列表
2.设计思路
int I=0,j,k,long_s1,long_s2,flag 定义循环变量和表示字符长度的变量
char s1[81],s2[81]
gets[输入s1,s2]
long_s1 =strlen(s1)
long_s2 =strlen(s2 )利用c++的语言来计算数组长度
for I=0 to long_s1-1
flag初始化为0
for j=0,k=I s1[k]==s2[j] 时进入循环 j++,k++
flag++
如果s2[j+1]为\0
break
如果flag ==long_s2 //删除子串的操作
for int m=I to s1[m]==0 m++
s1[m] =s1[m+long_s2]
I =-1
输出s1
3.代码截图
4.本题调试过程碰到问题
flag没有每次的都归零导致结果错误,删除子串的这几步骤参考了同学的代码。
题目三:字符串转换成十进制整数
1.提交列表
2.设计思路
3.代码截图
4.调试过程中所遇到的问题
无
二截图本周题目集的PTA最后排名
三、同学代码结对互评
四、本周学习总结
1.你学会了什么?
1.1 指针变量的定义: 类型名 指针变量名
1.2 指针运算在指针指向数组时两指针变量可相加,如(p+1)=a[1]
1.3 指针不赋初值直接使用会出现——程序将无法运行
1.4 int *i 和 float *f 作为形参,函数实参可用地址表示,指针变量做作函数形参可以通过地址改变实参的值
1.5 课本的冒泡排序的函数改成指针变量做形参格式
void bubble(int *p,int n)
{
int i,j,t;
for(i =1;i <n;i++)
for(j =0;j <n-1;j++,p++)
if(*p >*(p+1)){
t =*p;
*p =*(p+1)
*(p+1) =*t
}
}
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
- 定义指针时指向数组名. 如, int a[10],*p=a.
- 用 *(p+i) 表示 a[i].
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里? - 例 char *p = “abc” 初始位置在首地址
2.本周你不会内容有什么?
指针和数组的混合使用很混乱
PTA错题罗列
3.数组上级考试小结
考试全都不会,错误调试不出来。