2018/05/30

一、例程调试(20分)

调试下面2个例程,各位同学调试用自己的学号模3(即除以3取余数)加1序号及该序号乘以2的题。写明调试过程,如错误现象(如给定输入数据,但输出未实现预计功能),编译错误(截小图)提示等,写明调试修改过程(10分); 说明:有可能没有错误提示,但未达到预计功能。题目来源为“ C语言程序设计实验与习题指导(第3版)调试源程序”中error07_1~6;利用Autoflowchart软件查看程序的流程图,将流程图导成word格式,加入必要的文字说明,并说明该程序的功能(10分)

16%3+1=2

2.

#include <stdio.h>

int main(void)

{

    int i, x, n;

    int a[10];

    printf("输入数组元素的个数:");

扫描二维码关注公众号,回复: 1188219 查看本文章

    scanf("%d", &n);

    printf("输入数组%d个元素:", n);

    for(= 0; i < n; i++)

        scanf("%d", a[i]);

    printf( "输入x:" );   

    scanf("%d", &x);

    for(= 0; i < n; i++) 

        if(a[i] != x)  break;

    if(!= n)

        printf( "没有找到与%d相等的元素!\n", x);

    else

        printf( "和%d相同的数组元素是a[%d] = %d\n", x, i, a[i]);

    return 0;

}

更改后:

#include<stdio.h>

int main(void)

{

int N,X;

printf("输入数组个数:");

scanf("%d",&N);

printf("输入判断元素:");

  scanf("%d",&X);

  int i;

  i=N;

  int num[i];

  for(i=0;i<N;i++)

  {

    scanf("%d",&num[i]);

  }

  for(i=0;i<N;i++)

  {

    if(num[i]==X)

    {

      printf("和%d相同的数组元素是num[%d] = %d\n", X, i, num[i]);

      return 0;

    }

  }

  printf("没有找到与%d相等的元素!\n");

  return 0;

}

二、Pta作业 计算机高级语言(C)_第6次作业_数组1   20分)

三、Pta作业 计算机高级语言(C)_第6次作业_数组2  20分)

四、Pta作业 算机高级语言(C)_第6次作业_数组3二维数组+字符数组 10分)

五、数组知识点自测(每一项均写一个例程,并附测试数据及测试结果) (30)

5.1读入若干整数,找出最大值,最小值及位于数组的位置;

5.2 读入若干整数,输入要查找的整数X,输出X第一个位置或not found;

#include<stdio.h>

 

int main(void)

{

  int N,X;

  scanf("%d",&N);

  scanf("%d",&X);

  int i;

  i=N;

  int num[i];

  for(i=0;i<N;i++)

  {

    scanf("%d",&num[i]);

  }

  for(i=0;i<N;i++)

  {

    if(num[i]==X)

    {

      printf("%d\n",i);

      return 0;

    }

  }

  printf("Not Found\n");

 

  return 0;

}

5.3 交换排序(降序);

#include<stdio.h>

#include<stdlib.h>

void bubleSort(int data[], int n);

 

int main()

{

    int data[10] = {43, 65, 4, 23, 6, 98, 2, 65, 7, 79};

    int i;

    printf("原先数组:");

    for(i=0;i<10;i++) {

        printf("%d    ", data[i]);

    }

    printf("\n");

    printf("冒泡排序:");

    bubleSort(data, 10);

    for(i=0;i<10;i++) {

        printf("%d    ", data[i]);

    }

    printf("\n");

}

 

void bubleSort(int data[], int n) {

    int i,j,temp;

    for(j=0;j<n-1;j++) {

        for(i=0;i<n-j-1;i++) {

            if(data[i]<data[i+1]) {

                temp = data[i];

                data[i] = data[i+1];

                data[i+1] = temp;

            }

        }

    } 

}

5.4 选择排序(升序);

#include<stdio.h>

#include<stdlib.h>

 

void shellSort(int data[], int n);

 

int main()

{

    int data[10] = {43, 65, 4, 23, 6, 98, 2, 65, 7, 79};

    int i;

    printf("原先数组:");

    for(i=0;i<10;i++) {

        printf("%d    ", data[i]);

    }

    printf("\n");

    printf("选择排序:");

    selectSort(data, 10);

    for(i=0;i<10;i++) {

        printf("%d    ", data[i]);

    }

    printf("\n");

}

 

void selectSort(int data[], int n) {

    int i,j,mix,temp;

    for(i=0;i<n-1;i++) {

        int mix = i;

        for(j=i+1;j<n;j++) {

            if(data[j] < data[mix]) {

                mix = j;

            }

        }

        if(i != mix) {

            temp = data[i];

            data[i] = data[mix];

            data[mix] = temp;

        }

    }

}

5.5 二维数组编程;读入一个整形二维数组,找出最小值及位置,求各行数据的和 ;

#include<stdio.h>

 

int main(void)

{

  int m,n;

  scanf("%d %d",&m,&n);

  int num[m][n];

  int a,b;

  for(a=0;a<m;a++)

  {

    for(b=0;b<n;b++)

    {

      scanf("%d",&num[a][b]);

    }

  }

  for(a=0;a<m;a++)

  {

    int sum=0;

    for(b=0;b<n;b++)

    {

      sum+=num[a][b];

    }

    printf("%d\n",sum);

  }

 

  return 0;

}

5.6 读入一个字符串,直到遇到#为止,将字符中大小字符转为小写,小写字符转为大写。

#include<stdio.h>

 

int main(void)

{

       char ch[30];

       int i;

       for(i=0;ch[i-1]!='#';i++)

       {

              scanf("%c",&ch[i]);

       }

       for(i=0;ch[i]!='#';i++)

       {

              if(islower(ch[i]))

              {

                     ch[i]=toupper(ch[i]);

              }

              else

              {

                     ch[i]=tolower(ch[i]);

              }

              printf("%c",ch[i]);

       }

      

       return 0;

}

六、持续改进学习方法、措施落实情况(10分)

6.1结合上次博客作业,针对自己所提出的各种学习中遇到的困难解决方法,总结一下,自己是否落实之前的计划。没有落实的原因是什么。

  没有完成上次的目标,差了半章的章程,最近学习高数时间有点长,加上玩ps4时间有点多,所以学习c语言分配的时间有点少,所以没有完成,下次控制一下时间,争取能完成每个阶段的小目标

6.2记录近一周的课下编码情况,(实事求事)

  具体内容为包括但不限于日期、每天编码时间(分钟)、每天代码行数,要求插入表,并统制拆线图。

6.3下一步的学习改进措施与计划

  下一个阶段是第十一章和第十二章,两周,包括编程练习。

猜你喜欢

转载自www.cnblogs.com/moqidulian/p/9114169.html