java上机编程题_部分上机编程题详细分析
【shitiku.jxxyjl.com--等级考试】
请编一个函数fun,其中n所指存储单元中存放了数组中元素的个数。函数的功能是:删除所有值为y的元素。已在主函数中给数组元素赋值,y的值由主函数通过键盘读入。注意:部分源程序存在PROG1.C中,请勿改动主函数和其他函数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。
试题源程序如下:
#include <stdio.h>
#define M 20
void fun(int bb[],int *n, int y)
{
}
main()
{ int aa[M]={1,2,3,3,2,1,1,2,3,4,5,4,3,2,1}, n=15, y, k;
printf("The original data is: \n");
for(k=0; k<n; k++ ) printf("%3d",aa[k]);
printf("\nEnter a number to deleted: "); scanf("%d",&y);
fun(aa, &n, y);
printf("The data after deleted %d: \n",y);
for(k=0; k<n; k++ ) printf("%3d",aa[k]);
printf("\n\n");
}
分析:
(1)本题的基本算法是查找和删除。
(2)若循环控制变量是i,通过for循环逐个检查元素中的值,把数组元素中不等于y的值从头开始重新放入bb所指的数组中。用i作为下标,逐个引用数组元素;用i作为下标,把不等于y的元素中的值逐一重新放入bb所指的数组中。这一操作可用以下语句来实现:
if(bb[i]!=y)bb[j++]=bb[i];
(3)因为已删除了与y值相等的元素,因此,数组中数据的个数已经改变;所以循环结束后,需要重新给n所指变量赋值。退出循环后,变量j中存放的是删除后数组中数据的个数,通过语句*n=j;把它赋给n所指变量即可。
(4)主函数中输出aa数组中原有的数据,和删除后的数据。考生可以对照所编函数是否正确。
请编写一个函数void fun(char m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17和5,则应输出:19,23,29,31, 37。
注意:部分源程序存在PROG1.C中,请勿改动主函数和其他函数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。
试题源程序如下:
#include <stdio.h>
void fun(int m, int k, int xx[])
{
}
main()
{ int m, n, zz[100];
printf("\nPlease enter two integers(m & n): ");
scanf("%d%d",&m,&n);
fun(m, n, zz);
for(m=0; m<n; m++) printf("%d ",zz[m]);
printf("\n\n");
}
分析:
(1)本题的基本算法是求素数。假设有整数i,若i不能被2到i之间的任意一个数除尽,则i就是素数;若一旦能被某个数除尽就不是素数。
(2)以下是求i是否为素数的基本算法:变量ok用作i是素数的标志,ok为1,则i是素数。
ok=1;
for(p=2; p<i/2; p++)
if( i%p==0){ ok=0; break; }
if(ok)……
(3)本题要求把大于m的k个素数存入xx所指的数组中。所以,i的值应大于m;取大于m的值逐一进行判断,若是素数就放入xx所指数组中。把以上语句放入一个循环中:
for( i=m+1,j=0; ? i++ )
{ ok=1;
for(p=2; p<=i/2; p++)
if( i%p==0 ){ ok=0; break; }
if (ok) { xx[j]=i;j++; }
}
此处,变量i统计存入数组中元素的个数,同时作为下标。
(4)按本题的要求,外循环结束的条件应当是:j<k(j的值从0到k-1)。只要求得了k个素数,就可退出循环。因此在?处应填入j<k。
相关试题
- 2005年一月17日|2005年9月17日二级Access笔试试题答案
- 计算机等级考试四级考试时间_计算机等级考试四级考试笔试模拟试题二
- [计算机等级考试三级含金量]计算机等级考试三级PC上级题精选46-50
- 计算机等级考试三级含金量_计算机等级考试三级PC上级题精选1-5
- [java上机编程题]部分上机编程题详细分析1
- [2005年九月三]2005年9月17三级信息管理笔试试题答案
- [计算机等级考试java二级真题]计算机等级考试二级JAVA模拟试题
- [计算机等级考试三级含金量]计算机等级考试三级PC上级题精选41-45
- [2005年什么年]2005年NCRE考前密卷及解析-选择第21-40题
- 公共基础模拟题及答案_二级公共基础模拟题第四套答案
-
2005年正月17_2005年9月17二级C笔试试题答案详细阅读
选择题01-05)CACDC 06-10)DAABB11-15)ACBBA 16-20)CCDAB21-25)DCABC 26-30)DDABD31-35)BCCBA 36-40)DCCAD41-45)ADBAC 46-50)DABAD填空题1 数据库系统阶段2 空间3...
-
[计算机等级考试三级含金量]计算机等级考试三级PC上级题精选21-25详细阅读
上机题之21以下内容为程序代码:;* 请编制程序PROG1 ASM,其功能是:内存中连续存放着十个无符;* 号8位二进制数,现将此十个数转换成十个8位格雷码表示的数,结果;* 存入内存。其转换方法为格雷码的最高位g[7]与二进制数的最高位d[7];* 相同, 格雷码的其余七位g[k]...
-
2006年二级建造师网上可查询吗|2006年二级VF笔试答案(含试题)详细阅读
visual foxpro数据库程序设计(考试时间90分钟,满分100分)一、选择题((1)~(35)每小题2分,共70分)下列各题a)、b)、c)、d)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)数据的存储结构是指a) 存储在外存中的数据b) 数据...
-
2005年九月三_2005年9月17三级网络技术笔试试题答案详细阅读
选择题:01-05)DCABD 06-10)BBDCA11-15)BCABD 16-20)CABAD21-26)ADBCC 26-30)BADCB31-35)CBDBD 36-40)CCBBA41-45)DDABA 46-50)BCCBD51-55)CDDCA 56-60)A...
-
全国计算机等级考试二级c语言历年真题_2005年全国计算机等级考试二级C语言真题3详细阅读
第3页 (45)有以下程序point(char *p){ p+=3;}main(){ char b[4]={a,b,c,d},*p=b; point(p); printf(%c n,*p);}程序运行后的输出结果是 AA)aB)...
-
[公共基础模拟题及答案]二级公共基础模拟题第三套试题详细阅读
(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素 D)没有共同点(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba(3)链表不具有的特点是A)不必事先估...
-
2005年9月二十四午时|2005年9月二级VB笔试真正标准答案详细阅读
选择题【 1- 5】 CACDC 【 6-10】 DAABB 【11-15】 BCCDC 【16-20】 CABBA 【21-25】 DAADC 【26-30】 ADBAC 【31-35】 CCDAB 填空题【1】数据库系统 【2】空间...
-
全国计算机等级考试二级c语言历年真题|2005年全国计算机等级考试二级C语言真题2详细阅读
第2页 (29)有以下程序main(){ int a[3][3],*p,i; p=&a[0][0]; for(i=0;i...
-
[计算机等级考试一级考试题目]计算机等级考试一级B考试自测题详细阅读
1 现代微型机中采用的主要元件是()。 A)电子管 B)晶体管 C)中、小规模集成电路 D)大规模、超大规模集成电路 正确答案:D 2 计算机之所以能按人们的意志自动进行工作,主要是因为采用了()。 A)二进制数制 B)高速电子元件 C)存储程序控制 D)程序设计语言 正确答案:C 3 下列...
-
计算机等级考试三级含金量_计算机等级考试三级PC上级题精选11-15详细阅读
PC上机题之11以下内容为程序代码:;* 请编制程序PROG1 ASM,其功能是:内存中连续存放着二十个;* ASCII字符,如果是0~9或A~F之间的字符,请把它们转换成二进制;* 数;若为其他字符,不作转换。;* 例如:;* 内存中有;* 30H(...