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.强化学习 措施:做新学内容的练习题 检测办法:查看记录

posted @ 2018-05-29 11:41  Namako  阅读(271)  评论(0编辑  收藏  举报