上海理工大学 C语言 实验6答案
更新时间:2024-05-11 01:43:01 阅读量: 综合文库 文档下载
- 上海天气推荐度:
- 相关推荐
实验6 一维数组
参考答案
[DIY]
1、调试下列程序(下列各程序中存在一些问题,通过调试发现问题,并加以修正,使其实现预期目标)
[1.1]以下程序输入整数n和n个整数,将n个整数向前移动一个位置,第一个数字移到最后,并输出移动位置后的结果。该程序有3行错误,请改正。 [代码] #include #include { int a[100],n,i,t; printf(\ scanf( \ printf(\ for (i=0; i for(i=0;i for ( i=0; i printf( \ } [1.2] 本题用来统计某数组中值大于0和小于0的元素个数(等于0的元素个数不统计)。并求数组中所有元素的平均值。,请纠正程序中的错。 # include { int i,x[ ]={0,12,33,-9,-5,27,80,0,54,-63},c1,c2; double av; for(i=0;i av=sum/n; printf(”\\nc1=%d,c2=%d,aver=%f”,c1,c2,av); } 参考答案: # include { int i,x[ ]={0,12,33,-9,-5,27,80,0,54,-63},c1=0,c2=0,sum=0,n=10; double av; for(i=0;i av=sum/n; printf(\} 2.程序填空(请填写适当的符号,使程序实现其功能) [2.1] 下面的程序是利用插入排序法对输入的N个整数按从小到大排序。插入排序的基本思想:将数组元素分为已排序和未排序部分;从第二个元素起,与前面已排好序的元素进行比较(第一次将a[1]与a[0]比较);若当前为i元素,则与前面已排好序的i-1个元素进行比较,若比j元素大,则插在j元素的后面。 [代码] #include { int i, j, temp, a[N]; for( i=0; i temp= ; /* 保留要插入的元素*/ for(j=i-1; && j>=0; j-- ) a[j+1]=a[j]; /* 找要插入的位置,同时将大于a[i]的元素往后移*/ j++; a[j]= ; } for( i=0; i 参考答案: #include temp=a[i]; /* 保留要插入的元素*/ for(j=i-1; temp=0; j-- ) a[j+1]=a[j]; /* 找要插入的位置,同时将大于a[i]的元素往后移*/ j++; a[j]=temp; } for( i=0; i [2.2] 本程序输入 n (0 < n < 100 ) 个整数,找出其中出现频率最高的元素(当有多个不同的元素有相同的最高出现频率时,选择更大的元素)。 [代码] # define N 100 #include void main ( ) { int a [N], i, j, n, ind=0, c1, c2; do { printf (“Enter n (0 < n < 100 ).\\n”); scanf (“%d”, &n); } while ( n <= 0 | | n >= 100 ); printf (“Enter data.\\n”); for (i = 0; i < n,; i ++ ) scanf (“%d”,&a [ i ]); for ( c2 = i = 0; i < n; i ++ ) { for ( c1 = 0, ; (3) ; j ++ ) if ( (4) ) c1 ++; if ( (5) ) { c2 = c1; ind = i; } } printf (“%d appears %d times.\\n”, a[ind], c2 ); } 参考答案: # define N 100 #include void main ( ) { int a [N], i, j, n, ind=0, c1, c2; do { printf (\ scanf (\ } while ( n <= 0 || n >= 100 ); printf (\ for ( i = 0; i < n; i ++ ) scanf (\ for ( c2 = i = 0; i < n; i ++ ) { for ( c1=0,j=0;j 3.编程 [3.1] 编程分别输入两个按从小到大排序的数组a和b,将这两个有序数组合并,使合并后的数组仍有序 (从小到大)(要求不用排序算法) #include \#define N 10 #define M 5 main() { int a[N], b[M], c[N+M], i, j, k ; printf(\ for(i=0; i c[k++] =a[i++]; else c[k++] = b[j++]; while(i for ( i=0; i [3.2]输入10名学生的学号(学号为整数)和四门课的成绩,计算出每位学生的平均分,然后按平均成绩由高到低的顺序输出这10名学生四门课的成绩表。 #define N 10 #include \main() { int no[10],s1[10],s2[10],s3[10],s4[10],i,j,k1,k2,k3,k4,k5;float av[10],temp; for(i=0;i scanf(\ av[i]=(s1[i]+s2[i]+s3[i]+s4[i])/4.0; } printf(\ s1 s2 s3 s4 aver\\n\ for(i=0;i printf(\ } for(i=0;i [本章测试] 一、 单选题(10分) 1、以下程序段给数组所有的元素输入数据,空白处的正确答案是___ A____。 main() { int a[10],i=0; while(i<10)scanf(\ …… } A)&a[i++] B)&a[i+1] C)a+i D)&a[++i] 2、若有说明:int a[10];,则对数组元素的正确引用的是__ D __。 A) a[10] B) a[3,5] C) a(5) D) a[10-10] 3、定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是__D __。 A.3 B.6 C.10 D.20 4、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是__ C _。 A. &aa[0]+1 B.&aa[1] C.&aa[0]++ D.aa+1 5、程序的输出结果是__ B__。 main() {int i, k, a[10], p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf(\ } A)20 B)21 C)22 D)23 10、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main() { int n,k; float score ,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf(“%f”,&score); sum+=score;} ave=sum/4.0; printf(“NO%d:%f\\n”,n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是A A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf(“NO%d:%f\\n”,n,ave); 二、填空题(7分) 1、有定义int a[10]; ,写出语句片段:输出a数组中的10个整数。 __for(j=0; j<10; j++) printf( (\ 2、定义 int a[5]={1,9,9, 2,11}; 则语句printf(“%d”,a[2]-a[4])的值是____-2________。 3、在C语言中,数组名是一个不可变的地址_________量,代表__第1个数组元素地址___________,不能对它进行赋值运算。 4、C语言程序在执行过程中,不检查数组下标是否越界。 5、设有数组a的定义为: int a[ ]={1, 2, 3, 4}; 若语句a[3]= --a[0]?a[1]++:a[2]++; 执行后,数组a的各元素依次为___0 2 4 3______。 6、以下程序的输出结果是 12345678 。 #include { long n; int a[10],i; scanf(\ for (i=0;n>0;i++) { a[i] = n; n /= 10; } for (i--;i>=0;i--) printf(\ } 输入:12345678 三、程序调试题(10分) 1、 程序的功能是判断一个输入的正整数是否是回文数,如:123321是回文数,12321也是 回文数。 【程序3-1】 main() { int a[20],i,j;long d; printf(\ scanf(\ for(i=0;d;d/=10,i++) a[i]=d/10; for(j=0;j continue; if(j>=i/2) printf(\回文\\n\}?? #include int a[20],i,j;long d; printf(\ scanf(\ for(i=0;d;d/=10,i++) a[i]=d; for(j=0;j=i/2) } printf(\回文\\n\ 2、给定程序功能是:给一维数组a输入任意4个整数,并按下例的规律输出。例如输入1、2、3、4,程序运行后将输出以下方阵。 4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4 【程序3-2】 #include int a[M]; int i,j,k,m; printf(\ for(i=0; i for(j=M-1;j>0;j--) a[j]=a[j+1]; a[0]=k; } for(m=0; m #include int a[M]; int i,j,k,m; printf(\ for(i=0; i for(j=M-1;j>0;j--) a[j]=a[j-1]; a[0]=k; for(m=0; m } } 四、程序填空题(30分) 1、输入n个无序的数放入数组a中,将相同的数删得只剩一个,输出删除后的数列。 【程序4-1】 #define N 30 main() { int a[N], i, j, k, n; n=N; for(i=0; i for (___________; j< n; j++ ) if (a[i]= = a[j] ) { for(k = j; k _____________ ; /*删除*/ ____________; /* 删除后,将数组元素的总数减1*/ } for ( i=0; i #define N 30 #include { int a[N], i, j, k, n; n=N; for(i=0; i { for(k = j; k a[k]=a[k+1]; /*删除*/ n--; /* 删除后,将数组元素的总数减1*/ } for ( i=0; i 五、编程题(36分) 1.数组a包括10个整数,把a中所有的后项除以前项之商取整后存入数组b,并按每行3个元素的格式输出数组b。 #include \main() { int a[10]={121,433,134,645,1156,1465,7764,9988,11981,99990},i,j,b[9]; for(j=0,i=1;i<10;i++) b[j++]=a[i]/a[i-1]; for(j=0;j<9;j++) printf(\ } printf(\ 2.输入4个学生的4门课的成绩,计算出每位学生的平均分,然后按平均成绩由高到低的 顺序输出4门课的排序前的成绩表和排序后成绩表。(成绩表包括每位学生的4门课成绩,平均分)。 #define N 4 #include \main() { int no[10],s1[10],s2[10],s3[10],s4[10],i,j,k1,k2,k3,k4,k5;float av[10],temp; for(i=0;i scanf(\ av[i]=(s1[i]+s2[i]+s3[i]+s4[i])/4.0; } printf(\未排序成绩\\nstudent no s1 s2 s3 s4 aver\\n\ for(i=0;i printf(\ } for(i=0;i printf(\ } }
正在阅读:
上海理工大学 C语言 实验6答案05-11
支部委员会会议记录06-06
这么久的小学日记10-29
21世纪大学英语应用型综合教程修订版4课本练习答案11-28
排水管网课程设计说明书08-28
会计专业毕业论文-论企业应收账款管理01-25
关于大石镇开发与拓展的调研01-06
2008年城市规划师考试城市规划相关知识模拟试题(5)-中大网校04-06
《红色旗帜代代相传》心得体会300字07-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 上海理工大学
- 答案
- 语言
- 实验
- 雨水三级技术交底 - 图文
- 水系统水力计算
- 潞安集团典型案例警示教育读本+
- 浙江省慈溪市金山中学2014学年“体育节、艺术节、读书节、科技节
- 2012天津市高中学业水平考试历史试卷 - 图文
- 2018届中考生物专题冲刺:动物的主要类群
- 高三学习心得
- 百色市产业定位与产业发展研究报告
- 以案明纪警示教育活动心得体会
- 朱子治家格言译文
- 竞赛java编程题50题(有答案)
- 2财务管理基本价值观念练习
- 建筑设计中节能设计理念的重要性及应用研究
- 高中数学第三章空间向量与立体几何3.1空间向量及其运算3.1.2空间
- 某项目装饰改造施工组织设计
- 半导体物理习题
- 1T医院污水处理方案课件 - 图文
- 酸碱盐十大知识点
- 2009年4月-9月计算机考试二级VB真题及答案
- 用判别分析的方法判定DNA序列的类别数学建模