C语言博客做业--字符数组

1、PTA实验做业

题目1:7-5 统计大写辅音字母

1. 本题PTA提交列表

2. 设计思路(用代码表示扣分)

3.代码截图

4.本题调试过程碰到问题及PTA提交列表状况说明。

  • 最开始没有看清楚题意,题目要求的是输出大写辅音字母,没有没弄清条件致使错误
  • 设计思路问题,在统计大写字母总个数时,我最开始用了i来直接统计,没有另外设置一个变量,可是i的值已经不是从0开始了,致使错误,后查错改正

题目2:字符串转换成十进制整数

1. 本题PTA提交列表

2. 设计思路(用代码表示扣分)

- 定义i做循环变量,index存放负号所在的下标,数组a[100],number用来存放最后结果
- 输入字符串
- for  i=0  to   a[i]!='#'
- 若是字符在数字0到9之间, number=number*16+a[i]-'0';
- 若是在a到f之间 number=number*16+a[i]-'a'+10;
- 若是在A到Z之间number=number*16+a[i]-'A'+10;
- i值自增1
- for  i=0  to   a[i]!='#'
- 若是a【i】中的元素在0到9;a到f;A到Z
- index=i;记录这个元素下标,并结束循环
- for i=0  to  i<index 
- if(a[i]=='-'){ number=-number并结束循环
- 输出number

3.代码截图

4.本题调试过程碰到问题及PTA提交列表状况说明。

  • 最开始用了两个数组,另外一个数组用来存放删掉非十六进制字符的字符们,这样作由于一些下标问题致使错误,后来放弃了它,为何错怎么改正解决中
  • 在判断负号问题的时候,最开始我把负号放在最前面判断,但它的保留又是个问题,参考了一下同窗的方法改进

题目3:IP地址转换

1. 本题PTA提交列表

2. 设计思路(用代码表示扣分)

- 定义长度为32的数组a,循环变量i,j,num
- for i=0 to 32
- 不断输入字符存进数组a
- for i=0 to 32 每循环一次i值自增8
- 赋num=0
- for(j=i;j<i+8;j++)
- 若是字符==1;num=num+(int)pow(2,8-j+i-1)
- 输出num
- j!=32,每结束一次上述循环输出一个点

3.代码截图

4.本题调试过程碰到问题及PTA提交列表状况说明。

  • 小数点的位置的添加错误,在内循环每结束一次就应该加小数点

2、截图本周题目集的PTA最后排名。

3、同窗代码结对互评

1.互评同窗名称

  • 李琴同窗

2.个人代码、互评同窗代码截图

  • 上图为同窗的,下图为个人

3.我和同窗代码不一样在哪里?有哪些各自优点?你更喜欢哪一种代码风格?

  • 我和同窗的代码的主要不一样在于分支结构部分,我用的是switch语句来选择元音字母的个数,而后再统计整体大写字母的个数再减去元音字母的个数; 同窗则直接用if选择大写字母进入嵌套分支,若是是大写字母并且它不为元音字母,则负责统计的变量值加一;
  • 同窗的优点在于更加简便,直接就能够统计出辅音字母的数目;个人方法还得再进行算术操做,更喜欢同窗的一点

4、本周学习总结

1.你学会了什么?

1.1指针变量如何定义(设计代码能够用markdown代码符号渲染)?

  • 通常形式:类型名 *指针变量名
  • int *p,a=3; p=&a;

1.2 指针加法运算运用在哪一种状况,2个指针变量可否相加?

  • 指针p所指向的变量值加一:p=p+一、++p、(p)++;p++==(p++),是将*p的值做为表达式的值,再将指针p加一,运算后p再也不指向原来所指的变量
  • 两个指针变量不能相加

1.3 指针不赋初值,直接使用,会出现什么状况,请用DEVC验证,并截图展现?


  • 指针不赋初值便使用会致使系统奔溃,见图二

1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证明现,并在此贴图展现,同时说明哪句是指针变量作函数形参,函数实参应该怎么表示。指针变量作函数形参有什么用处?


  • 分别为指针变量作形参和函数作实参
  • 指针变量作形参能够在调用函数中改变主函数的值

1.5 请把课本的冒泡排序的函数改为指针变量作形参格式,并把代码写在底下,注意用markdown语法渲染。

void bubble(int *p,int n)
 {
int i,j,t;
for(i=1;i<n;i++)
   for(j=0;j<n-i;j++)
   if(*(p+j)>*(p+j+1)){
t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}
}

1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?

  • 先定义好数组,p=a即表示指针变量p首指的地址为数组元素a[0]的地址
  • p=a+1等同于p=&a[1]

1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?

  • 类型名 *指针变量名=“字符串”
  • 初始位置是存放字符串常量首字符的储存单元的地址

1.8 利用字符指针操做字符串,如设计函数实现字符串链接,请在此贴图展现代码。说明指针表示字符的方法好处是什么?

char str1[80] =''hello'',t[80]=''world'';
strcat(str1,t);
stract(str1,''!'');
最后输出结果:hello world!

2.本周你不会内容有什么?

2.1 课堂派错题罗列及如何订正。


这种类型的题我写了前两步或者写到第三步就不知道要写什么了,答案已经给出,只要再其实在题目中也有,须要认真阅读和发现数组

2.2 其余不会的?打算怎么解决

  • 对于指针变量做为参数的应用和写法不是很熟悉,多分析课本例题和敲一些代码。

3.数组上机考试小结

3.1 那题错了,请罗列?

  • jmu-c-二维数组转置并按列排序
  • 数组元素的删除

  • 二维数组的题对数组有些不会运用,下标也常常搞混,数组的转置出现问题,到排序的时候不知道怎么按行和列排
  • 数组元素的删除时,删除了一个元素致使数组发生变化再次删除时不是按旧的数组来,,,致使错误
相关文章
相关标签/搜索