一、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.数组上级考试小结

考试全都不会,错误调试不出来。