一、PTA实验作业
题目1:7-2 统计一行文本的单词个数
1.本题PTA提交列表
2.设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
当时写是认为当字符串中的一个字符为空格时,只要其两边的字符不为空格,那就可以算是一个单词了,调试发现用多个空格隔开单词时它就不算进单词个数里了。调试之后把条件改为,当字符串中一个字符为空格时,只要它的下一个字符不为空格或结束符时,单词个数加一。正确通过。
题目2:7-3 找最长的字符串
1.本题PTA提交列表
2.设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
本题错误不太明显,是在同学指导下才发现了问题所在。问题就是找出最长单词后没有结束符,输出不正确。加上结束符即可。
题目3:7-5 统计大写辅音字母
1.本题PTA提交列表
2.设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
这题是范围不够大,统计不完全,将字符串的长度从80改为81之后问题得到解决。
二、截图本周题目集的PTA最后排名
三、同学代码结对互评
7-1代码截图
我的
吴军霖的
我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题
军霖同学的代码只用了一个变量来对进制转换进行运算,而我的用了两个,显而易见的,他的代码比我的更为简便,而且思路极为清晰,而我的则是给人一种走一步算一步的感觉。相较之下,他的代码显然更能让人接受。
四、本周学习总结
1.你学会了什么?
1.1指针变量如何定义
定义指针变量要使用指针声明符*,如int i,*p
int *p 代表指向整型变量
char *p 代表指向字符型变量
float *fp 代表指向单精度实型变量
double *dpl 代表指向双精度实型变量
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
(1)指针+一个整型常量
(2)不能
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
指针变量做函数形参:void splitfloat(float x,int *intpart,float *fracpart)
实参传地址,用地址表示:splitfloat(x,&intpart,&fracpart);
指针变量做函数形参可以返回多个结果
1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染
#include<stdio.h>
void bubble(int *a,int n){
int i,j,c;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++){
if(*(a+j)>*(a+j+1)){
c=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)=c;}
}
}
int main(){
int i,n;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++) scanf("%d",&a[i]);
bubble(a,n);
for(i=0;i<n;i++) printf("%d ",a[i]);
return 0;
}
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int a[10],i,*p;
p=a;
for(i=0;i<10;i++)
*(p+i)=i;
或者
int a[10],i,*p
p=a;
for(i=0;i<10;i++)
*p=i;
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *p,str[3]={abc};
p=str;
初始位置str[0]
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
指针能够直接对地址内的元素进行操作;
指针表示字符,字符不会被覆盖。
2.本周你不会内容有什么?
2.1 课堂派错题罗列及如何订正
(1)题目
(2)解析
c选择中的*&point不是地址。