• 2019年春季学期第五周作业


    2019春季第五周作业

    这个作业属于哪个课程 C语言程序设计ll
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824
    我在这个课程的目标是 希望对字符串的用法了解得更深入,学习更多其他新的排序算法
    这个作业在哪个具体方面帮助我实现目标 让我能灵活运用之前的冒泡排序法,浅显的了解并使用到了strlen命令语句
    参考文献 https://blog.csdn.net/step_ma/article/details/74115184)

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

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

    输入格式:

    输入给出一行字符。

    输出格式:

    在一行中输出单词个数。

    输入样例:

    Let's go to room 209.
    

    输出样例:

    5
    

    1.代码

    #include<stdio.h>
    int main ()
    {
    	int i,sum=0,x=0;
    	char ch[921],c;
    	gets (ch);
    	for(int i=0;i<921;i++)
    	{
    		c=ch[i];
    		if(c==' ')
    		{
    			x=0;
    		}
    		else if(c=ch[i]=='')
    		{
    		    break;
    		}
    		else if(x==0)
    		{
    			x=1;sum++;
    		}
    	}
    	printf("%d",sum);
    	return 0;
     } 
    

    2.思路总结

    3.本题遇到的问题及解决办法

    问题:编程运行出现运行超时的错误
    解决办法:重新检查编码,发现自己将用于字符的单引号打成了双引号,改正后正确
    

    4.运行结果截图


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

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

    输入格式:

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

    输出格式:

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

    输入样例:

    blue
    red
    yellow
    green
    purple
    #
    

    输出样例:

    red blue green yellow purple
    

    1.代码

    #include<bits/stdc++.h>
    using namespace std;
    int main ()
    {
    	int k;
    	char a[20][10],js[10];
    	for(k=0;k<20;k++)
    	{
    		scanf("%s",a[k]);
    		if(a[k][0]=='#')
    		break;
    	}
    	for(int x=1;x<k;x++)
    	for(int y=0;y<k-x;y++)
    	{
    		if(strlen(a[y])>strlen(a[y+1]))
    		{
    			strcpy(js,a[y]);
    			strcpy(a[y],a[y+1]);
    			strcpy(a[y+1],js);
    		}
    	}
    	for(int t=0;t<k;t++)
    	printf("%s ",a[t]);
    	return 0;
     } 
    

    文件代码

    #include<bits/stdc++.h>
    using namespace std;
    int main ()
    {
    	FILE*fp;
       	int k;
    	char a[20][10],js[10];
    	 if((fp=fopen("D:\wonzenkei.word","r+"))==NULL)
        {
            printf("Error!
    ");
            exit(0);
        }
    	for(k=0;k<20;k++)
    	{
    		scanf("%s",a[k]);
    		fprintf(fp,"%s
    ",a[k]);
    		if(a[k][0]=='%')
    		break;
    	}
    	for(int x=1;x<k;x++)
    	for(int y=0;y<k-x;y++)
    	{
    		if(strlen(a[y])>strlen(a[y+1]))
    		{
    			strcpy(js,a[y]);
    			strcpy(a[y],a[y+1]);
    			strcpy(a[y+1],js);
    		}
    	}
    	for(int t=0;t<k;t++){
    	printf("%s ",a[t]);
    	fprintf(fp,"%s ",a[t]);
    }
           if(fclose (fp)){
            printf("Can't close!
    ");
            exit(0);
        }
    	return 0;
     }
    

    2.思路总结

    3.本题遇到的问题及解决办法

    问题:做题思路不清晰,无从下手
    解决办法:通过搭档的尽心指导,理清了思路,运用冒泡排序法以及搭档教的strlen命令语句将题目解出

    4.运行结果截图



    第五周预习题

    预习内容

    1.指针,数组和地址之间的关系
    2.数组名作为函数的参数

    单选题

    2-1

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

    2-2

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

    2-3

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

    2-4

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

    2-5

    有如下程序段

    int *p,a=10,b=1;
    p=&a; a=*p + b;
    

    执行该程序段后,a的值是 B (2分)
    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 (2分)

    #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

    预习中存在的疑惑:

    a.对于指针的基本运算不大清楚
    b.对于指针的程序运用还有许多疑惑

    4.学习进度条

    周/日期 这周所花时间 代码行数 知识点简介 目前比较迷惑的问题
    3/4-3/10 五个多小时 30 编写程序时处理文件 fprintf语句和fscanf语句的运用有些地方还有稍许疑惑
    3/11-3/15 四天 65 二维数组的运用 二维数组的运用还存在稍许疑惑
    3/17-3/22 三天 108 二维数组的定义及运用,选择排序法和冒泡排序法的运用 冒泡排序法的运用还存在稍许问题
    3/25-3/29 五天 72 学习了判断回文,使用字符串编程以及一维数组的灵活使用 对于一维数组的使用还有稍许疑惑

    5.学习感想

    本周学习了字符串编程等新知识,老师讲了许多书上没有的知识,使得我在编程时更得心应手了,下周一定要再接再厉。

    6.结对编程感想

    本周我们自主选择了搭档编程,首先,十分感谢我搭档对我的尽心指导,其次,我也从他那学到了新的排序法,下周我一定会继续努力,争取更上一层楼。

  • 相关阅读:
    centos已经安装了python2,同时安装python3
    linux下判断磁盘是ssd还是hdd
    Java中如何判断两个对象是否相等
    NPOI导出Excel和基于office导出Excel比较
    asp
    又找到了一个blog
    关于宋朝及中国历史的一点想法
    Android中实现EditText圆角
    Python小练习
    软件架构设计(三) 架构、架构师和架构设计
  • 原文地址:https://www.cnblogs.com/linkedashewaixueyuan/p/10622231.html
Copyright © 2020-2023  润新知