• 第五周作业


    2019第五周作业

    2019年春季学期第五周作业


    课程名称:c语言程序设计Ⅱ
    |--|:--
    |作业要求|第五周作业|
    |我的课程目标|学会使用字符数组和字符串|
    |这个作业在哪个方面帮助我实现目标|加深使用C语言|
    |参考文献|课本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]!='\0')  
        {  
            if(a[i]!=' ')  
            {   
                c++;  
                while(a[i]!=' ')  
                {  
                    if(a[i]=='\0')  
                        break;  
                    i++;      
                }  
            }  
            else  
            {  
                while(a[i]==' ' )  
                    i++;      
            }  
        }  
        printf("%d\n",c);  
        return 0;
    }
    

    (2)设计思路

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

    问题1:不太清楚get char与gets的区别
    解决方法:翻书看,get char表示从标准输入文件读入一个字符,而gets表示读入一串字符

    (4)运行结果截图

    ##作业二
    

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

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

    输入格式:

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

    输出格式:

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

    输入样例:

    blue
    red
    yellow
    green
    purple

    输出样例:

    red blue green yellow purple

    ####(1)实验代码
    

    include <stdio.h>

    include <string.h>

    main()
    {
    char str[20][10],t[20],str1[10];
    int i,j,n=0;
    while(1)
    {
    scanf("%s",str1);
    if(str1[0]=='#')
    {
    break;
    }
    else
    {
    strcpy(str[n],str1);
    n++;
    }
    }
    for(i=0;i<n-1;i++)
    for(j=0;j<n-i-1;j++)
    {
    if(strlen(str[j])>strlen(str[j+1]))
    {
    strcpy(t,str[j]);
    strcpy(str[j],str[j+1]);
    strcpy(str[j+1],t);
    }
    }
    for(i=0;i<n;i++)
    {
    printf("%s ",str[i]);
    }
    }

    ####(2)设计思路
    
    ####(3)实验遇到的问题及解决方案
    问题1:第一次 遇到strcpy,不知道它的含义及用法
    解决方法:查资料上百度大概了解了它的用法
    
    ####(4)运行结果截图
    ![](https://img2018.cnblogs.com/blog/1580433/201903/1580433-20190329200342405-1335196031.png)
    
    
    

    作业三

    ###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
    
  • 相关阅读:
    图论概况
    [NOI2006]最大获利
    Dining
    [USACO5.3]校园网Network of Schools 缩点
    I Hate It
    [USACO06JAN]牛的舞会The Cow Prom Tarjan
    爱在心中
    [HAOI2006]受欢迎的牛
    泥泞的道路
    上白泽慧音
  • 原文地址:https://www.cnblogs.com/ai010/p/10623681.html
Copyright © 2020-2023  润新知