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

    第五周作业

    第四周作业预习题

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

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

    代码:

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

    流程图:

    出现的错误:

    原因:没有读取字符串。

    第五周基础题

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

    本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
    
    输入格式:
    输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
    
    输出格式:
    输出为排序后的结果,每个单词后面都额外输出一个空格。
    
    输入样例:
    blue
    red
    yellow
    green
    purple
    #
    输出样例:
    red blue green yellow purple
    

    代码:

    #include<stdio.h>
    #include<string.h>
    int main(void)
    {
    	char a[20][10];
    	char b[10];
        int i,j,k=1,n=0;
        for(i=0;i<20;i++)
        {
        	scanf("%s",a[i]);
            for(j=0;j<10;j++)
            {
            	if(a[i][j]=='#')
                {
                	k=0;
                }
            }
            if(k==0) 
            break;
            else
            n++;
        }
        for(i=0;i<n;i++)
        {
        	for(j=0;j<n-1;j++)
            {
            	if(strlen(a[j])>strlen(a[j+1]))
                {
                	strcpy(b,a[j]);
                    strcpy(a[j],a[j+1]);
                    strcpy(a[j+1],b);
                }
            } 
        }
    
        for(i=0;i<n;i++)
        printf("%s ",a[i]);
        return 0; 
    }
    

    流程图:

    出现的错误:

    原因:没有在单词之间空格导致格式错误。

    文件代码:

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(void)
    {
    	FILE * fp; 
    	char a[20][10];
    	char b[10];
        int i,j,k=1,n=0;
        if((fp=fopen("D:\ljr.txt","r+"))==NULL)
        {
        	printf("File open error!
    ");
        	exit(0);
    	}
        for(i=0;i<20;i++)
        {
        	scanf("%d",&a[i]);
        	fscanf(fp,"%s",a[i]);
            for(j=0;j<10;j++)
            {
            	if(a[i][j]=='#')
                {
                	k=0;
                }
            }
            if(k==0) 
            break;
            else
            n++;
        }
        for(i=0;i<n;i++)
        {
        	for(j=0;j<n-1;j++)
            {
            	if(strlen(a[j])>strlen(a[j+1]))
                {
                	strcpy(b,a[j]);
                    strcpy(a[j],a[j+1]);
                    strcpy(a[j+1],b);
                }
            } 
        }
        for(i=0;i<n;i++)
        printf("%s ",a[i]);
        fprintf(fp,"%s ",a[i]);
        if(fclose(fp))
    	{
        	printf("Can not close the file!
    ");
        	exit(0);
    	}
        return 0; 
    }
    

    预习题

    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
    

    学习总结:

    学习感悟:

    对新学的知识完全不熟悉,以前的知识也掌握得不牢固,需要重温一下以前的知识了。

  • 相关阅读:
    C#小型资源管理器
    C#换肤LrisSkin
    面向对象的24种设计模式
    七大设计原则
    非泛型集合和泛型集合
    C#经理评价系统
    深入C#.NET框架
    C#窗口航空总结
    java基础数据结构和语法
    HTML
  • 原文地址:https://www.cnblogs.com/ljr33/p/10623654.html
Copyright © 2011-2022 走看看