zoukankan      html  css  js  c++  java
  • C语言博客作业--数据类型

    一、PTA实验作业

    题目1:区位码输入法

    1. 本题PTA提交列表

    2. 设计思路

    Begin
    1.输入zone_bit_code //int zone_bit_code,high,low
    2.high←zone_bit_code/100
    3.low←zone_bit_code%100
    4.输出字符high+160
    5.输出字符low+160
    End

    3.代码截图

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

    忘记将输入的区位码变成两个字节,导致错误。

    改正:利用取余的方式将区位码变成两个字节,并分别加上160,然后输出,结果正确。

    题目2:倒顺数字串

    1. 本题PTA提交列表

    2. 设计思路

    Begin
    1.输入n //int n,i,flag
    2.for i←1 to n
    1)then if flag→1 输出空格
    2)输出i
    3)flag←1
    3.for i←n-1 to 1
    1)then if flag→1 输出空格
    2)flag←1
    3)输出i
    End

    3.代码截图

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

    (1)忘记输出要空格

    (2)在加上空格后,忽略了题中所说两个数字之间有一个空格,但首尾没有空格

    改正:用flag对空格输出做控制

    题目3:简单计算器

    1. 本题PTA提交列表

    2. 设计思路

    Begin
    1.输入N //N,i,sum,flag皆为整型变量,op为字符型变量
    2.sum←0
    3.flag←0
    4.sum←N
    5.while op!='='
    1)do 输入op
    2)if op→'=' then break
    3)输入 i
    4)sum←calculate(sum,op,i)
    5)if op→'/' and i→0 then flag←1
    6)if op!='+' and op!='-' and op!='/' and op!='' then flag←1
    6.if flag→1
    1)then 输出“ERROR”
    7.else
    1)输出 sum
    8.calculate(a,op,b) //定义整型函数calculate(int a,char op,int b)
    1)if op→'+' then Sum←a+b //定义整型变量Sum
    2)elseif op→'-' then Sum←a-b
    3)elseif op→'
    ' then Sum←a*b
    4)elseif op→'/' then if b!=0 then Sum←a/b
    5)返回 Sum
    End

    3.代码截图


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

    1.题目理解错误,将结果与上一个计算结果相加

    改正:sum=calculate(sum,op,i);

    2.没考虑只输入一个数的情况

    改正:在输入N时,对sum做处理

    补充:多个重复错误是为了看错误提示。

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

    三、本周学习总结

    1.你学会了什么?

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

    • 定义的一般形式:类型名 数组名 [数组长度]; 数组长度必须是一个常量
    • 初始化的一般形式:类型名 数组名 [数组长度]={初值表};
    • 注意
      1.静态数组如果没有初始化,系统自动给所有的数组元素赋0
      2.数组的初始化可以只针对部分元素
      3.数组初始化时,如果对全部元素都赋了初值,就可以省略数组长度,系统会根据初值的个数自动给出数组的长度。

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

    • 数组名表示该数组所分配连续内存空间中第一个单元的地址
    • 数组名是一个地址常量,不允许修改。

    1.3 为什么用数组?

    数组是一组相同类型数据的集合,用数组名和下标可以唯一地确定数组元素,管理数据十分方便。

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

    • 选择法:

    for i ← 1 to n-1 //n为数组长度
    key ← a[i]
    k = i
    for j ← i+1 to n
    if A[j] < key
    k = j
    exchange A[i] and A[k]

    • 冒泡法:

    for i = 1 to n //n为数组长度
    for j = n to i+1
    if A[j] < A[j-1]
    exchane A[j] and A[j-1]

    • 插入法:

    for i ← 1 to n-1
    for j ← i-1 to 0
    if a[i] > a[j] break
    if j!=i-1
    temp ← a[i]
    for k ← i to j+2
    a[k] ← a[k-1]
    a[j+1] ← temp

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

    • 二分查找法:假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
    • 与顺序法的区别:二分查找的一定是从小到大排列好的表,二分查找法的查找速度快,效率高;
      顺序查找是从头到尾逐个查找,与二分法比较,效率较低。

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

    • 二维数组的定义:类型名 数组名[行长度][列长度];
    • 初始化:类型名 数组名[行长度][列长度]={{初值表0},...,{初值表k},...};
      - 二维数组的初始化也可以只针对部分元素;
      - 顺序赋初值:根据数组元素在内存中的存放顺序,把初值表中的数据依次赋给元素,如果只对部分元素赋初值,要注意初值表中数据的书写顺序;
      - 二维数组初始化时,如果对全部元素都赋了初值,或分行赋初值时,在初值表中列出了全部行,就可以省略行长度。

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

    • 矩阵转置:定义数组a[i][j],那么数组b[j][i]就是数组a[i][j]的转置矩阵;
    • 下三角:i>=j
    • 上三角:i<=j
    • 对称矩阵:i=j

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

    需要输入一组二维数据的时候要用到二维数组,比如数学中的矩阵。

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

    • 本周PTA数据类型的题目,第八题,对控制条件不是很了解,修改多次,要么判断都是“yes”,要么都是“no”;
    • 第九题还没来得及做;
    • 关于数组的自定义函数,好像明白,但是写的时候又写不来;
    • 关于期中考:看代码找错的能力有点弱,还有手写代码果然要加强。
  • 相关阅读:
    ASP.NET MVC中 CKeditor 通过两种方法向后台传值以及编码、乱码问题
    如何解析<textarea>标签中的html代码
    ASP.NET MVC中,后台向前台传递多个对象(表)的方法
    ASP.NET MVC 环境下CKeditor 的配置以及用jQuery进行数据存取操作
    jquery下 动态显示jqGrid 以及jqGrid的属性设置容易出现的问题
    ASP.NET MVC 中 CKeditor.js的正确引用
    关于有道词典的一个小错误
    ASP.NET MVC 标签绑定传值及后台获取并进行修改操作
    每天学点GDB 6
    每天学点GDB 9
  • 原文地址:https://www.cnblogs.com/wwwwxy128/p/7898883.html
Copyright © 2011-2022 走看看