C语言博客作业--数据类型

一、PTA实验作业

题目1: 区位码输入法

1.本题PTA提交列表

2. 设计思路

  • 第一步:定义变量,a放区码,b放位码,s放区位码。
  • 第二步:输入s。
  • 第三步:取s的前两位数为a=s/100,后两位数为b=s-a*100。
  • 第四步:分别字符输出a+160和b+160。

3.代码截图

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

  • 刚开始时直接输入区码和位码,然后输出,但应该输入区位码,在分解成区码和位码。

题目2: 判断合法标识符

1.本题PTA提交列表

2. 设计思路

  • 第一步:定义变量i,j,n,用数组定义字符变量c[80]。
  • 第二步:输入n。
  • 第三步:for i=1 to n,输入字符c[0]。
  • 第四步:如果第一个字符为下划线或者字母,则继续判断下一个字符。否则输出No。
  • 第五步:如果下一个字符为空格或不是下划线或不是字母或者不是数字,则输出No。
  • 第六步:否则continue继续判断。
  • 第七步:如果字符为0时,则全部判断完,输出Yes。

3.代码截图

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

  • 输入空格时,输出会做出空格两旁的判断,输出两个结果,解决方法是把空格做为字符判断条件。

题目3:简单计算器

1.本题PTA提交列表

2. 设计思路

  • 第一步:定义变量a和b放运算数,sum放结果并赋值0,定义字符变量ch。
  • 第二步:输入a。
  • 第三步:如果输入的字符不是=,则输入b,否则输出a。
  • 第四步:如果ch'/'&&b0,输出ERROR,结束程序。
  • 第五步:判断字符如果是四则运算,则分别进行a,b之间的四则运算并将结果sun赋值给a再重复判断。
  • 第六步:否则输出ERROR,结束程序。
  • 第七步:输出a。

3.代码截图

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

  • 刚开始不知道运算后怎么输出值,解决方法是将每一步运算结果赋给运算数,再进行下一步计算。

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

三、本周学习总结

1.你学会了什么?

1.1 一维数组如何定义、初始化?

  • 定义格式为类型名 数组名 [数组长度]; 初始化格式为类型名数组名 [数组长度] = {初值表}; 当初始化把数组中的每一个数都初始化时,可以省略数组长度

1.2 一维数组在内存中结构?可画图说明。数组名表示什么?

  • 连续的,线性的
  • 数组名是一个地址常量,存放数组内存空间的首地址

1.3 为什么用数组?

  • 让程序变得简单,减少繁琐的代码量。

1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.

  • 冒泡法:循环n趟,每趟比较n-i次,相邻比较,逆序交换,大数沉底
  • 选择法:n个数循环n-1趟,将第一个数作为最大数,比较n次,与后面数比较,如果后面数比较大,记住他的下标,与最大数交换
  • 插入法:循环n趟,将待插入数暂存于变量t中,在数组中寻找插入位置,若未找到插入位置,则当前元素后移一个位置

1.5 介绍什么是二分查找法?它和顺序查找法区别?

  • 二分查找法就是先寻找数组中间位置的数,判断其是否为要寻找的数,不是的话,大于要找的数,则往左继续二分,小于要找的数,则往右二分。
  • 二分查找法适用于排序过的数组,速度快,顺序查找法要遍历数组,在数组很大时效率低,但对数组本身没有要求,适用于短数组

1.6 二维数组如何定义、初始化?

  • 二维数组定义格式为类型名 数组名 [行长度][列长度]
  • 初始化格式为类型名数组名 [行长度][列长度] = { {初值表0}, ... ,{初值表k}, ...} 如果初始化了全部行,则可以忽略行长度

1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?

  • 用嵌套循环遍历数组,如果i<j,就交换i,j的值,下三角:列小于行,上三角列大于行

1.8 二维数组一般应用在哪里?

  • 矩阵问题

2.本周的内容,你还不会什么?

  • 对数组的行列下标要从0开始,经常会犯错
  • 对二维数组还不够理解
posted @ 2017-11-26 20:11  做人要有疯度  阅读(225)  评论(2编辑  收藏  举报