第5周作业

这个作业属于哪个课程c语言程序设计
作业要求在哪里https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824
我的课程目标能够流利地运用字符
这个作业在哪个具体方面帮助我实现目标有些可以运用其他函数
参考文献http://c.biancheng.net/view/1447.html

7-1 统计一行文本的单词个数 (15 分)

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

Let's go to room 209.

输出样例:

5

代码:

#include<stdio.h>
#include<string.h>
int main (void)
{
    int i,k,len;
    char c[10000];
    
    gets(c);
    len=strlen(c);
    
    if(c[i]==' '){
        k=0; 
    } 
    else{
        k=1;
    }
    for(i=0; i<len-1; i++)
    if(c[i]==' '&&c[i+1]!=' '){
        k++;
    }
    printf("%d",k);
    return 0;
 }

思路和问题:这个题直接统计单词之间 的空格,如果有n个空格且第一个不是空格就是n+1个单词,反之就是n个.一开始我直接从1开始执行,导致错误,尝试从0开始,计算正确。

流程图:
1580183-20190329172454636-776350203.png
截图:

1580183-20190329172550516-736614430.png
(错误的截图被断网卡没了,我也找不到了,做了两遍的博客园)

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

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

输入格式:

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

输出格式:

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

输入样例:

blue
red
yellow
green
purple
#

输出样例:

red blue green yellow purple 

代码:

#include<stdio.h>
#include<string.h>
int main ()
{
    int i, j, len;
    char c[21][11];
    char t[11];
    
    while (1) {
        scanf("%s", &c[i][0]);
        if (c[i][0] == '#') {
            break;
        }
        i++;
    }
        
    c[i][0] = '\0';
    len = i;
    for (i = 0;i<len-1; i++) {
        for (j = 1; j < len - i; j++) {
            if (strlen(c[j-1])> strlen(c[j])) {
                strcpy(t, c[j - 1]);
                strcpy(c[j - 1], c[j]);
                strcpy(c[j], t);
            }
        }
    }
    for (i = 0; i < len; i++) {
        printf("%s ", c[i]);
    }
    return 0;
}

文件:

#include<stdio.h>
#include<string.h>
int main ()
{
    FILE *fp;
    int i,j,len;
    char c[21][11];
    char t[11];
    
      fp=fopen("C:\\Users\\hasee\\Desktop\\longjiasi1\\ljs.txt","r+") ;
      while (1) {
        fscanf(fp,"%s", &c[i][0]);
        if (c[i][0] == '#') {
            break;
        }
        i++;
    }
        
    c[i][0] = '\0';
    len = i;
    for (i = 0;i<len-1; i++) {
        for (j = 1; j < len - i; j++) {
            if (strlen(c[j-1])> strlen(c[j])) {
                strcpy(t, c[j - 1]);
                strcpy(c[j - 1], c[j]);
                strcpy(c[j], t);
            }
        }
    }
    for (i = 0; i < len; i++) {
        fprintf(fp,"%s ", c[i]);
        printf("%s ", c[i]);
    }
    fclose(fp);
    return 0;
}

思路和问题:这个题我一开始不会,然后我翻书看到了两百多页介绍了字符串处理函数,就用了一些,进行for循环用strlen函数比较,如果合理就用复制函数进行变换。

流程图:
1580183-20190329174600690-16086220.png

截图:1580183-20190329174643272-414851079.png
2019春第五周作业—预习

单选题

7

2-1

下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是()。 (2分) B
A. int a, x = a;
B. int a,
x = &a;
C. int *x = &a, a;
D. int a, x = a;

作者: 张泳

单位: 浙江大学城市学院

2-2

int *p 的含义是 (2分) B
A. p是一个指针, 用来存放一个整型数
B. p是一个指针, 用来存放一个整型数据在内存中的地址
C. p是一个整型变量
D. 以上都不对

作者: 李廷元

单位: 中国民用航空飞行学院

2-3

如果有定义:int m, n = 5, p = &m; 与m = n 等价的语句是 () 。 (1分) B
A. m =
p;
B. p = &n;
C. m = &n;
D. m = **p;

作者: 张泳

单位: 浙江大学城市学院

2-4

变量的指针,其含义是指该变量的( )。 (1分) B
A. 值
B. 地址
C. 名
D. 一个标志

作者: 张泳

单位: 浙江大学城市学院

2-5

有如下程序段
int p,a=10,b=1;
p=&a; a=
p + b;

执行该程序段后,a的值是 (2分) B
A. 12
B. 11
C. 10
D. 编译出错

作者: 李廷元

单位: 中国民用航空飞行学院

2-6

对于下列程序,正确的是() 。 (2分) A

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

执行如下程序段,打印输出的内容是: (2分) 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

1580183-20190329175332930-1687949437.png

1580183-20190329175339053-933602143.png

学习总结:
|周期 |行数 |所花时间 |所学简介 |所遇困惑 |
| --------- | ------- | ---------------- | ------------------------------- | ------------------------------- |
|第一周 |22 |三天 |求最大值 |掌握的不够好 |
|第二周 |31 |四天 |学习了文件 |对文件还是不够了解 |
|第三周 |28 |三天 |学了二维数组 |对二维数组不够熟练 |
|第四周 |23-51 |四天 |对数组的进一步了解 |开始了解一点关于大小交换 |
|第五周 |花了两天 |32 |学习了字符串的判断 |所了解的字符处理函数太少 |

学习感悟:本周的作业让我有了看书的乐趣,我很喜欢这次的作业,因为我发现了许多自己不了解的知识点,不懂的就多看一些书,书是很基础的。

结对编程感悟:两人之间的讨论使问题解决的速度快了许多,并且两人所了解的知识点也有点不同,可以促进我们之间的学习进步。

转载于:https://www.cnblogs.com/shadowzzz/p/10622035.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值