2018上IEC计算机高级语言(C)作业 第3次作业

2018上IEC计算机高级语言(C)作业 第3次作业

一、例程调试(20分)

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

1.该程序作用为插入一个整数到已给个数的输入的数组中并排序。可以正常编译但程序无法正常运行。


修改部分:第四行a[n]改为a[100],第17行a[j]=a[j+1]改为a[j+1]=a[j],第18行j++改为j--。此程序的插入排序方法有问题且开数组大小错误,修改后正常。

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

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

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

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

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

#include<stdio.h>
int main (void)
{
    double a[20];
    int i;
    int max=0,min=0;
    printf("input 20 data\n");
    for (i=0;i<20;i++)
        scanf("%lf",&a[i]);
    for (i=0;i<20;i++){
        if (a[i]>a[max]){
            max=i;
        }
        if (a[i]<a[min]){
            min=i;
        }
    }
    printf("max=%g  location=%d\n", a[max],max);
    printf("min=%g  location=%d\n", a[min],min);
    return 0;
}  

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

#include <stdio.h>
#define N 20
int main (void)
{
    int a[N],X;
    int i,n,index;
    index=-1;
    scanf("%d%d",&n,&X);
    for (i = 0; i < n; i++) {
        scanf("%d",&a[i]);
    }
    for (i = 0; i < n; i++) {
        if (a[i]==X){
            index=i;
            break;
        }
    }
    if (index!=-1){
        printf("%d",index);
    }
    else{
        printf("Not Found");
    }
    return 0;
}  


5.3 交换排序(降序);

#include <stdio.h>
#define N 10
int main(void)
{
    int a[N];
    int i,j,temp;
    for (i=0;i<N;i++){
        scanf("%d",&a[i]);
    }
    for (i=0;i<N-1;i++) {
        for (j = 0; j < N - 1; j++) {
            if (a[j] < a[j + 1]) {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    for (i=0;i<N;i++){
        printf("%4d",a[i]);
    }
    return 0;
}  

5.4 选择排序(升序);

#include <stdio.h>
int main(void)
{
    const int N = 10;
    int a[N], i, j , t;
    for(i = 0; i < N; i++) {
        scanf("%d", &a[i]);
    }
    for(j = 0; j <3; j++){
        int idx;
        idx = j;
        for(i = j + 1; i < N ; i++){
            if(a[i] < a[idx]) {
                idx = i;
            }
        }
        if(idx != j) {
            t = a[idx] ;
            a[idx] = a[j];
            a[j] = t;
        }
    }
    for(i = 0; i < N; i++) {
        printf("%5d", a[i]);
    }
    return 0;
}  

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

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

#include <stdio.h>
int main()
{
    char str[100];
    char ch;
    int i=0;
    while((ch=getchar())!='#')
    {
        if(ch<='z' && ch>='a')
            ch=ch-32;
        else if(ch>='A' && ch<='Z')
            ch=ch+32;
        str[i++]=ch;
    }
    str[i]='\0';
    printf("%s\n",str);
    return 0;
}

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

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

没有落实,因为近期学校活动刚刚结束。

6.2记录近一周的课下编码情况,(实事求事)具体内容为包括但不限于日期、每天编码时间(分钟)、每天代码行数,要求插入表,并统制拆线图。

6.3下一步的学习改进措施与计划,按条目写明具体可行的措施及可验证的检测方法。

1.复习 措施:做PTA上合集 检测办法:于18周前查看PTA完成情况

2.强化学习 措施:做新学内容的练习题 检测办法:查看记录

猜你喜欢

转载自www.cnblogs.com/NamakoNeko/p/9104227.html