zoukankan      html  css  js  c++  java
  • 第五周作业

    2019第五周作业

    2019年春季学期第五周作业


    课程名称 c语言程序设计2
    作业要求 第五周作业
    我的课程目标 学会英文单词的各种排序
    这个作业在哪个方面帮助我实现目标 用字符串的存储与运算的方式,对英文单词进行处理
    参考文献 课本c语言程序设计

    基础作业一

    ###7-1 统计一行文本的单词个数 (15 分)
    本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
    输入格式:
    
    输入给出一行字符。
    输出格式:
    
    在一行中输出单词个数。
    输入样例:
    
    Let's go to room 209.
    输出样例:
    
    5
    

    (1)实验代码

    #include<stdio.h>  
    int main()  
    {  
        char a[1001];  
        gets(a);  
        int c=0; 
        int i=0;  
        while(a[i]==' ') 
            i++;  
        while(a[i]!='')  
        {  
            if(a[i]!=' ')  
            {   
                c++;  
                while(a[i]!=' ')  
                {  
                    if(a[i]=='')  
                        break;  
                    i++;      
                }  
            }  
            else  
            {  
                while(a[i]==' ' )  
                    i++;      
            }  
        }  
        printf("%d
    ",c);  
        return 0;
    }
    

    (2)设计思路

    流程图

    (3)实验遇到的问题及解决方案

    第一次
    在打代码起初出现细节错误,和搭档一起交流后找了出来,最后更改正确
    第二次

    (4)运行结果截图

    ##作业二
    

    7-1 英文单词排序 (25 分)

    本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

    输入格式:

    输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。

    输出格式:

    输出为排序后的结果,每个单词后面都额外输出一个空格。

    输入样例:

    blue
    red
    yellow
    green
    purple

    输出样例:

    red blue green yellow purple

    (1)实验代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int main(void)
    {   
    FILE *fp;
    char input[21][11] = { '' };  
      char snap[11] = { '' };
      int i = 0;
    if((fp=fopen("E:\wangjj fifth.txt","w+"))==NULL){
            printf("File open error!
    ");
            exit (0);
        }
     while (1) {    
    fprintf(fp,"%s
    ",input[i]); 
        if (input[i][0] == '#')     
        break;  
        i++;
        }
        input[i][0] = ''; 
        int len = i;
        int j = 0;
        for (i = 0; i < len; i++)   
        {   
          for (j = 1; j < len - i; j++) 
          { 
            if (strlen(input[j - 1]) > strlen(input[j]))    
            {       
              strcpy(snap, input[j - 1]);       
              strcpy(input[j - 1], input[j]);   
              strcpy(input[j], snap);   
              } 
             } 
          
        }   for (i = 0; i < len; i++)   
        printf("%s ", input[i]); 
     if(fclose(fp)){
                printf("Can not close the file!
    ");
                exit (0);
            }
    return 0;
      }
    

    (2)设计思路

    流程图

    (3)实验遇到的问题及解决方案

    第一次
    做题中发现文件学习不扎实,丢三落四,习惯不好
    第二次
    出错问了问我的搭档后弄对

    (4)运行结果截图

    最后

    
    
    ##作业三
    
    ###2-1 下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是(B)
    A int a, *x = a;
    
    B int a, *x = &a;
    
    Cint *x = &a, a;
    
    D int a, x = a;
    
    ###2-2 int *p 的含义是 (B)
    A p是一个指针, 用来存放一个整型数
    
    B p是一个指针, 用来存放一个整型数据在内存中的地址
    
    C p是一个整型变量
    
    D 以上都不对
    
    ###2-3 如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 (B)
    A m = *p;
    
    B * p = *&n;
    
    C m = &n;
    
    D m = **p;
    
    ###2-4 变量的指针,其含义是指该变量的( B)
    A 值
    
    B 地址
    
    C 名
    
    D 一个标志
    
    ### 2-5 有如下程序段
    int *p,a=10,b=1;
    p=&a; a=*p + b;
    执行该程序段后,a的值是 (B)
    A 12
    
    B 11
    
    C 10
    
    D 编译出错
    
    ### 2-6 对于下列程序,正确的是(A) 。 (2分)
    void f(int *p)
    {
          *p = 5;
    }
    int main(void)
    {
          int a, *p;
    
          a = 10;
          p = &a;
          f(p);
          printf(“%d”, (*p)++);
    
          return 0;
    }
    A 5
    
    B 6
    
    C 10
    
    D 11
    
    ###2-7 执行如下程序段,打印输出的内容是: (C)
    #include <stdio.h>
    void fun (int c, int *d) {
        c++;
        (*d)++;
    }
    int main ( ){
        int a=5, b=9;
        fun(a, &b);
        printf("%d, %d", a, b);
        return 0;
    }
    A 5, 9
    
    B 6, 10
    
    C 5, 10
    
    D 6, 9
    
    ##预习内容```
        指针变量的可以通过指针找到所需要访问变量的地址。定义指针变量时要加上指针声明符,说明所定义变量是指针,此外,定义指针变量所需要注意指针变量同其他变量一样具有地址和数值,使用运算符&可以得到指针本身的地址。```
    ##困惑
    

    在书上找不到。虽然懂得了一点点指针的一些基本知识,但有些简单的指针题解决不了。

    ![我的第五周学习表](https://img2018.cnblogs.com/blog/1580457/201903/1580457-20190329221216543-691224837.png)
    
    ##学习感悟
    ```学习了字符串与一维字符数组的区别、字符串的存储以及字符串的操作方法,对字符串数组还不太会用,还预习了指针,指针比较难,还看不太懂。```
    
    ##结对编程感想
    ```我有一个好队友,在和队友讨论后对这个题目大概的讲解一下有了一个基本的思路,感觉比自己一个人摸索好一点。```
  • 相关阅读:
    每日总结32
    每日总结31
    每日总结30
    Leetcode 115. 不同的子序列(二维DP)
    Leetcode 59. 螺旋矩阵 II
    Leetcode 227. 基本计算器 II
    macOS下将GitHub中单个子文件夹下载到本地
    P3796 【模板】AC自动机(加强版)
    P3808 【模板】AC自动机(简单版)
    【Kubernetes】副本的删除
  • 原文地址:https://www.cnblogs.com/tuziwangjj/p/10624574.html
Copyright © 2011-2022 走看看