zoukankan      html  css  js  c++  java
  • C语言博客作业05指针

    1.本章学习总结(2分)

    1.1 思维导图

    1.2 本章学习体会及代码量学习体会

    1.2.1 学习体会

    我在C语言的学习过程中,意识到指针是相当重要的一部分,学好指针对C的学习有很重要的意义。
    指针和内存如果说内存相当于街道,那么地址就相当于位于街道中房子的房号。
    并且懂得了如何对指针初始化,赋值等。

    1.2.2 代码累计

    2.PTA总分(2分)

    2.1截图PTA中函数题目集的排名得分

    2.2 我的总分:110分。

    3.PTA实验作业(1分)

    3.1 PTA题目1

    藏尾诗
    本题要求编写一个解密藏尾诗的程序。

    3.1.1 算法分析

    定义char型a,b数组
    for循环
    输入第一行诗词
    j=strlen(a);计算歌词的长度
    b[i]=a[j-2];因为汉字占俩个字节
    b[i+1]=a[j-1];
    i=i+2;
    输出数组b

    3.1.2 代码截图

    3.1.4 PTA提交列表及说明

    Q1:出现错误是在汉字占用俩个字节这里

    4.大作业(5分)

    题目:实现小学四则运算。
    在函数那章,我们已经实现小学四则运算这份作业,现在要求大家把之前设计函数升级改造,原来的函数大家都是用全局变量实现不同函数参数传递,这次作业要求改地址传递,减少全局变量的使用。

    题目要求:
    题目有3个难度级别,分别为:
    第一级是1位数的一步加减乘除计算
    第二级是2位数的2步加减运算
    第三级是3位数的2步加减运算
    改进内容:

    1.构造字符数组存放算术表达式

    不管哪个级别的算式,请都生成一个字符数组存放。不管用户选择哪个级别题目,都能在表达式生成函数中生成一个算术式子。具体函数接口
    void CreateExp(char *exp,int level)
    {
    switch(level)
    {
    case 1:生成一位数一步加减式子,写入字符数组exp;
    case 2:生成2位数2步加减式子,写入字符数组exp;
    case 3:生成3位数2步加减式子,写入字符数组exp;
    }
    // 注意三位数随机数,应该也包含生成一位数,即用rand()%1000就可以。
    }

    2.表达式是否合法(选做)

    对于不合法或者超出该级别小学生学习范围的表达式,视为不合法,需重造一个。不合法表达式体现有除数为0的表达式、1,2级别中出现不能整除的除法表达式或其他不合法情况
    int IsExp(char *exp,int level)
    {
    }

    3.表达式运算

    根据字符表达式,能计算其结果。有能力同学深入研究表达式优先级。
    int ComputeExp(char *exp)
    {
    }
    这块代码可以参考这题做法:

    include <stdio.h>
    int main()
    {
    int m=0, sum=0;
    char c, oldc='+';
    do {
    c = getchar();
    if( c<='9'&&c>='0' )
    m = 10*m + c - '0';//1
    else
    {
    if( oldc == '+' )
    sum += m;
    else
    sum -= m;
    m = 0;//2
    oldc = c;
    }
    } while(c!='=');
    printf("sum=%d", sum);
    return;
    }

    4.1.改造函数介绍

    主要上述三个函数的改造说明

    1.函数1

    void CreateExp(char exp,int level)
    定义intx型变量n1,n2用于生成随机数;c用于生成四个数判断运算符
    定义char型变量op;
    switch level
    case 1
    srand 生成一位数 n1,n2 c
    switch(c)
    case 0:strcat(exp,"+");break;
    case 1:strcat(exp,"-");break;
    case 2:strcat(exp,"
    ");break;
    case 3:strcat(exp,"/");break;
    case 2
    同上
    case 3
    同上
    strcat(exp,"=");
    输出表达式的字符串exp

    3.函数3

    int ComputeExp(char *exp,int level)
    定义int型变量len
    strlen exp 赋值给len
    do
    op=getchar();
    if(op<='9'&&op>='0' )
    返回result的值

    4.4 改进大作业总结

    1.使用指针来传递数据,相对于全局变量来说在运算上比较不容易出现错误
    2.改进过程中遇到的问题较多,很多问题无法解决
    3.在这次的改进中我意识到自己的不足,在C的学习上我更应该努力的学习!

  • 相关阅读:
    看net2.0头晕眼花,是不是该做个具体的程序呢
    安装SQLServer2000时,提示"以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机"
    刚装的WIN7,用了一下午,记一下备忘
    不同系统开启和关闭fso的方法(转)
    希腊字母以及发音
    meta 标签的作用
    电信禁止路由上网的最佳破解方法(转)
    安装系统
    网络工程师笔记
    GHOST操作
  • 原文地址:https://www.cnblogs.com/jellysheep/p/10131886.html
Copyright © 2011-2022 走看看