Java语言程序设计教程试题试卷及答案_第1页
Java语言程序设计教程试题试卷及答案_第2页
Java语言程序设计教程试题试卷及答案_第3页
Java语言程序设计教程试题试卷及答案_第4页
Java语言程序设计教程试题试卷及答案_第5页
已阅读5页,还剩84页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

你好,请你自觉遵守考场纪律,违纪必究,祝你顺利通过考试并取得好成绩。你好,请你自觉遵守考场纪律,违纪必究,祝你顺利通过考试并取得好成绩。2016~2017学年第一学期期末《C语言程序设计》课程考试试题(A)卷考试时间120考试方式闭卷学生类别本科人数275适用专业或科类计算机科学与技术、软件工程、计算机网络、中兴年级2016级特别提醒:答题必须写在答题纸上,写在试卷上的不给分。学生必须遵守考场纪律,违者将受到严肃处理。得分评卷人一、单项选择题(每小题1分,共10分)构成C语言程序的基本单位是()。A、变量和表达式B、数据类型和变量C、C语句D、C函数以下说法中正确的是()。A、C语言程序中,可以在函数中定义其他函数B、C语言程序中,可以在函数中调用其他函数C、C语言程序中,可以在函数中调用main()函数D、C语言程序中的main()函数必须放在程序的开始部分下列正确的标识符是()。A.+a1B.a[i]C.a2_iD.int如果inta=3,b=4;则条件表达式"a<b?a:b"的值是____。A)3B)4C)0D)1设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是()A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)已知:inta[10];则对a数组元素的正确引用是()。A、a[10]B、a[3.5]C、a(5)D、a[0]C语言中函数返回值的类型是由决定的.A)函数定义时指定的类型B)return语句中的表达式类型C)调用该函数时的实参的数据类型D)形参的数据类型在C语言中,表示静态存储类别的关键字是:()A)auto B)register C)static D)extern在下变量声明中是错误的是:()inta; int*p=&a; A)int**l=&p; B)int***h=&l; C)int****k=&p;D)int*****r=&k;若有以下结构体说明语句:structstudent{intnum;charname[];floatscore;}stu;则下面的叙述不正确的是:()A.struct是定义结构体类型的关键字B.structstudent是用户定义的结构体类型C.num,score都是结构体成员名D.stu是用户定义的结构体类型名得分评卷人二、问答题(每小题3分,共15分)什么是源程序?什么是可执行程序?它们之间有何联系?什么是数据类型?什么是变量?它们之间有何联系?三种循环结构中的条件是循环进行的条件还是循环结束的条件?循环结构中break语句和continue语句的作用是什么,二者有何区别?什么是数组?它的作用是什么?什么是指针?什么指针变量?得分评卷人三、程序阅读题(每小题5分,共25分)阅读理解下面程序,给出运行结果。#include<stdio.h>voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidmain(){intx=5,y=6;swap(x,y);printf("%d,%d\n",x,y);}运行结果为:阅读理解下面程序,给出运行结果。#include<stdio.h>voidmain(){intx=2,y=-1,z=5;if(x<y)if(y<0)z=0;elsez=z+1;printf(“%d\n”,z);}运行结果为:阅读理解下面程序,给出运行结果。#include<stdio.h>intmain(){enumweek{Mon=1,Tues,Wed,Thurs,Fri,Sat,Sun}day;scanf("%d",&day);switch(day){caseMon:puts("Monday");break;caseTues:puts("Tuesday");break;caseWed:puts("Wednesday");break;caseThurs:puts("Thursday");break;caseFri:puts("Friday");break;caseSat:puts("Saturday");break;caseSun:puts("Sunday");break;default:puts("Error!");}return0;}输入5,运行结果为:,阅读理解下面程序,给出运行结果。#include<stdio.h>intm[3][3]={{1},{2},{3}};intn[3][3]={1,2,3};main(){printf(“%d,”,m[1][0]+n[0][0]);printf(“%d\n”,m[0][1]+n[1][0]);}运行结果为:阅读理解下面程序,给出运行结果。#include<stdio.h>intfac(intn){intf=1,i;for(i=1;i<=n;i++)f=f*i;return(f);}main(){intj,s;scanf(“%d”,&j);s=fac(j);printf("%d!=%d\n",j,s);}如果从键盘输入3,运行结果为:得分评卷人四、程序填空题(每空2分,共20分)从键盘输入一个字符,判断它是否是英文字母。#include<stdio.h> voidmain(){charc;printf("inputacharacter:");c=getchar();if(c>=&&c<=||c>=‘a’&&c<=‘z’)printf("Yes\n");elseprintf("No");}用键盘输入10个整数,利用循环语句进行选择排序(由小到大)。#include<stdio.h>voidmain(){inti,j,index,x;printf("Input10numbers:\n");for(i=0;i<10;i++);printf("\n");for(i=0;i<10;i++){ index=i;/*k用来记录每一趟比较下来后,最小数的下标值*/for(j=i+1;j<10;j++)if(a[j]<a[index]) ;if(i!=index)/*如果k的值发生改变,则把i和k所指向的元素进行交换*/ { ;;; }}printf("Thesortednumbers:\n");下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。#include<stdio.h>voidmain(){inta[10],i,x;printf(“input10integers:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);printf(“inputthenumberyouwanttofindx:”);scanf(“%d”,);for(i=0;i<10;i++)if()break;if()printf(“theposofxis:%d\n”,i);elseprintf(“cannotfindx!\n”);}得分评卷人五、编程题(每题10分,共30分)编程序实现求1-1000之间的所有奇数的和并输出。根据欧几里得算法:gcd(M,N)=gcd(N,r),r=M%N,写一个递归函数,求任意两个整数的最大公约数。(M,N,M>N,N!=0)定义一个函数,把任意一个十进制整数n转换为二进制,其原型是D2B(int*res,intn),返回值是整数组*res,数组长度n。通过这种方式达到一个函数返回多个值的目的。并设计主函数测试该函数。

2016~2017学年第一学期期末《C语言程序设计》课程考试试题(A)卷答题纸题号一二三四五六总分个人阅卷签名得分集体阅卷签名单项选择题(每小题1分,共10分)..9.10.二、问答题(每小题3分,共15分).5.三、程序阅读题(每小题5分,共25分).5.四、程序填空题(每空2分,共20分)1.2.3.五、编程题(每题10分,共30分)1.2.3.

2016~2017学年第一学期期末《C语言程序设计》课程考试试题(A)卷答题纸题号一二三四五六总分个人阅卷签名得分集体阅卷签名单项选择题(每小题1分,共10分)1.D2.B3.C4.A5.B6.D7.A8.C9.C10.D二、问答题(每小题3分,共15分)1.源程序,是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。通常由高级语言编写。源程序可以是以书籍或者磁带或者其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。一般用高级语言编写的程序称为“源程序”。目标程序,又称为“目的程序”,为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。2.变量,从字面上理解就是可以变化的量,放到c语言里面,就是可以被赋值改变的量。比如说定义一个变量inta;我可以给它赋值a=10;现在a的值就是10。然后我在给它赋值a=20;那么现在它的值就从10变成20了。a就叫做变量。和变量对应的就是常量,我上面写的1020就是常量,一个确定的值。不能被赋值也不能被改变。而数据类型这个概念则是因为计算机存储的缘故而发展出来的一个概念。其实说起来也很好理解,比如我们在现实中会用整数和小数,分数来区分我们遇到的数字。在计算机里面没有分数,所以它用整型浮点型来区分整数和小数。当然因为计算机存储的问题,同时也算是节约计算机的内存资源,人们又将整数分为普通的整型,和长整型。长整型和普通整型的区别就是存储的位数更多了(现在好像不区分长整型和整型了)。而同样的浮点型也分为单精度和双精度,这是数字方面。数据还有字符型,字符串型等等,字符型就是之存储一个字符,而字符串则是一串字符。3.for语句、while语句:循环进行的条件;do-while语句:循环结束的语句。break可用于switch语句,表示跳出整个switch块,而continue则不能用于switch语句它们都可用于循环语句的循环体,break用于立即退出当前循环,而continue仅跳过当次循环,本次循环体内不执行continue语句后的其它语句,但下次循环还会执行。4.数组就是一组具有相同数据类型的变量的集合。也就是说很多个上述的这些变量组成,注意哦,这些变量类型都一样,并且一般情况下它们是有一定的相互联系的。比如,用来存放4个学生成绩的数组intscore[4]={78,89,90,86};它们都是int型的,都表示学生的成绩。这里还要特别注意一点,既然他们都是变量,那说明它们在程序运行期间都能改变,也就是说数组元素里面的值是可以改变的。数组就是一群相同数据类型又有一定的相互联系的变量的集合,有时是为了方便使用才把这些变量都放在一起的。5.指针保存了某个变量的地址,指针本身是一个变量,它也有自身的地址,而指针的内容是某个变量的地址。注意细节:要初始化、正确的传递地址方式三、程序阅读题(每小题5分,共25分)1.5,62.运行结果为:5遇到选择结构,首先要明确条件表达式成立时执行哪些操作。本题中,第一个if语句,其后的复合语句没有大括号{},说明复合语句中只包含一条语句,进而省略了{}。内层的if...else...是选择结构的第二种基本形式,在结构上视为一条语句。因此内层的if...else...作为第一个if语句的复合语句。3.运行结果为:Friday4.运行结果为:3,05.运行结果为:3!=6四、程序填空题(每空2分,共20分)1.‘A’‘Z’2.scanf(“%d”,&a[i]);index=j;x=a[index];a[index]=a[i];a[i]=x;3.&xx==a[i]i<10五、编程题(每题10分,共30分)1.#include<stdio.h>voidmain(){inti,sum=0;for(i=1;i<1000;i=i+2)sum=sum+i;printf(“thesumofoddis:%d”,sum);}2.#include“stdio.h”intgcd(inta,intb){ returna%b==0?b:gcd(b,a%b);}intmain(){ inta,b; scanf(“%d,%d”,&a,&b); if(!(a==0||b==0)) printf(“gcd(%d,%d)=%d\n”,a,b,gcd(a.b)); else printf(“div/0!”)’ return0;}3.#include<stdio.h>voidD2B(intdec){ inta[100],len=0; while(dec>0) { a[len]=dec%2; dec=dec/2; len++; } while(len>0) { printf("%d",a[len-1]); len--; } printf("\n");}voidmain(){inta;scanf("%d",&a);D2B(a);}

2016~2017学年第一学期期末《C语言程序设计》课程考试试题(B)卷考试时间120考试方式闭卷学生类别本科人数275适用专业或科类计算机科学与技术、软件工程、计算机网络、中兴年级2016级特别提醒:答题必须写在答题纸上,写在试卷上的不给分。学生必须遵守考场纪律,违者将受到严肃处理。得分评卷人一、单项选择题(每小题1分,共10分)C语言程序从开始执行。A)程序中第一条可执行语句

B)程序中第一个函数

C)程序中的main函数

D)包含文件中的第一个函数下列关于C语言的说法错误的是()。A)C程序的变量是用来表示数据的B)C程序的变量是用来存取数据的C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行在C语言程序中,表达式5%2的结果是。A)2.5B)2C)1D)3C语言中,关系表达式和逻辑表达式的值是()。 A)0B)0或1C)1D)‘T’或’F’已知charx[]="hello",y[]={'h','e','a','b','e'};则关于两个数组长度的正确描述是A)相同B)x大于yC)x小于yD)以上答案都不对在C语言中,函数的数据类型是指()A函数返回值的数据类型B.函数形参的数据类型C调用函数时的实参的数据类型D.定义函数时指定的数据类型在函数调用时,以下说法正确的是()A.函数调用后必须带回返回值B.实际参数和形式参数可以同名C.函数间的数据传递不可以使用全局变量D.主调函数和被调函数总是在同一个文件里语句int*p;说明了。A)p是指向一维数组的指针B)p是指向函数的指针,该函数返回一int型数据C)p是指向int型数据的指针D)p是函数名,该函数返回一指向int型数据的指针若有语句:inta[10],;则是对指针变量p的正确定义和初始化。A)intp=*a;B)int*p=a;C)intp=&a;D)int*p=&a;设有如下结构体定义:strucksk{inta;floatb;}data;int*p;若要使P指向data中的a域,正确的赋值语句是A)p=&a; B)p=data.a; C)p=&data.a; D)*p=data.a;得分评卷人二、问答题(每小题3分,共15分)可执行程序的运行环境是什么?需要什么硬件资源?什么是标识符?什么是关键字?它们之间有何不同?什么是枚举?它的作用是什么?什么是函数?函数的基本结构是什么?什么是结构体?它的作用是什么?得分评卷人三、程序阅读题(每小题5分,共25分)阅读理解下面程序,给出运行结果。#include<stdio.h>voidmain(){inta=12,b=-34,c=56,min=0;min=a;if(min>b)min=b;if(min>c)min=c;printf("min=%d",min);}运行结果为:阅读理解下面程序,给出运行结果。#include<stdio.h>voidswap(int*x,int*y){inttemp;temp=x;x=y;y=temp;}voidmain(){intx=5,y=6;swap(&x,&y);printf("%d,%d\n",x,y);}运行结果为:阅读理解下面程序,给出运行结果。#include<stdio.h>main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}运行结果为:阅读理解下面程序,给出运行结果。#include<stdio.h>intSub(inta,intb){return(a-b);}main(){intx,y,result=0; scanf("%d,%d",&x,&y);result=Sub(x,y);printf("result=%d\n",result);}当从键盘输入:6,3运行结果为:阅读理解下面程序,给出运行结果。#include<stdio.h>structst{intx;inty;}a[2]={5,7,2,9};main(){printf("%d\n",a[0].y*a[1].x);}运行结果是:得分评卷人四、程序填空题(每空2分,共20分)下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。#include<stdio.h>voidmain(){inta[10],i,x;printf(“input10integers:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);printf(“inputthenumberyouwanttofindx:”);scanf(“%d”,);for(i=0;i<10;i++)if()break;if()printf(“theposofxis:%d\n”,i);elseprintf(“cannotfindx!\n”);}printf(“s=%d\tcount=%d\n”,s,count”);程序读入20个整数,统计非负数个数,并计算非负数之和。#include<stdio.h>main(){inti,a[20],s,count;s==0;for(i=0;;i++)scanf(“%d”,&a[i]);for(i=0;i<20;i++){if(a[i]<0)continue;;count++;}printf(“s=%d\tcount=%d\n”,s,count”);}输入一个字符,判断该字符是数字、字母、空格还是其他字符。main(){charch;ch=getchar();if()printf("ItisanEnglishcharacter\n");elseif()printf("Itisadigitcharacter\n");elseif()printf("Itisaspacecharacter\n");printf("Itisothercharacter\n");}得分评卷人五、编程题(每题10分,共30分)编程输出所有的玫瑰花数(玫瑰花数,即一个四位数,abcd=a4+b4+c4+d4)。用键盘输入10个整数,利用选择排序算法进行排序(由小到大)。定义一个函数,intaverMaxMin(inta[],intn,int*pmax,int*pmin);它的返回值是整型数组的平均值,*pmax为最大值,*pmin为最小值.通过这种方式达到一个函数返回多个值的目的。并设计主函数测试该函数。

2016~2017学年第一学期期末《C语言程序设计》课程考试试题(B)卷答题纸题号一二三四五六总分个人阅卷签名得分集体阅卷签名单项选择题(每小题1分,共10分)..9.10.二、问答题(每小题3分,共15分).5.三、程序阅读题(每小题5分,共25分).5.四、程序填空题(每空2分,共20分)1.2.3.五、编程题(每题10分,共30分)1.2.3.

2016~2017学年第一学期期末《C语言程序设计》课程考试试题(B)卷答题纸题号一二三四五六总分个人阅卷签名得分集体阅卷签名单项选择题(每小题1分,共10分)1.C2.A3.C4.B5.B6.D7.B8.C9.B10.C二、问答题(每小题3分,共15分)1.运行时软件环境是运行程序所需要的支持的软件集合,比如运行.net开发出来的windows应用程序一般都需要Microsoft.NETFramework2.0;或者某些服务器程序需要装数据库;最基本的就是软件是在什么操作系统下运行的,那这个操作系统也是运行时的软件环境。同样运行时的硬件环境也是支持这个软件运行的硬件标准。比如需要什么样的CUP、显卡、内存大小。一般的运行软硬件环境都会在运行的软件的产品说明书里说明的。2.标识符使用来标识源程序中的某个对象的名字的,一个标识符由字母、数字和下划线组成关键字可以定义变量、表达语句功能和对一些文件进行预处理,关键字已被编译系统本身使用,所以用户编写程序时不能够使用这些关键字来作为标识符,如unsignedchar,int,long,if,for,include,define等。3.在代码中使用Enum枚举类型,可以将以前笨拙的代码变得优雅简单。枚举在C/C++/c#中,是一个被命名的整型常数的集合,枚举在日常生活中很常见。例如表示星期的SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,就是一个枚举。4.一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。5.结构体是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型。特点:第一:结构体可以在一个结构中声明不同的数据类型;第二:相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。第三:节省内存空间第四:高效率。三、程序阅读题(每小题5分,共25分)1.运行结果为:-342.运行结果为:7.03.运行结果为:1 2 34.运行结果为:35.运行结果为:14四、程序填空题(每空2分,共20分)1.&xx==a[i]<102.counti<20s+=a[i]3.ch>=’a’&&ch<=’z’||ch>=’A’&&ch<=’Z’ch>=’0’&&ch<=’9’ch==‘’else五、编程题(每题10分,共30分)1.#include<stdio.h>intmain(){inta;for(a=100;a<=999;a++){//x^3在C++代表x与3异或//而非x的立方//if(a==(a/100)^3+((a-(a/100)*100)/10)^3+(a-(a/100)*100-((a-(a/100)*100)/10)*10)^3)if(a==(a/100)*(a/100)*(a/100)+((a-(a/100)*100)/10)*((a-(a/100)*100)/10)*((a-(a/100)*100)/10)+(a-(a/100)*100-((a-(a/100)*100)/10)*10)*(a-(a/100)*100-((a-(a/100)*100)/10)*10)*(a-(a/100)*100-((a-(a/100)*100)/10)*10))//printf("%d",a);printf("%d",a);}return0;}2.//冒泡法排序#include"stdio.h"#defineN10main(){inta[N];inti,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-i;j++)if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}printf("\n");for(i=0;i<N;i++)printf("%d",a[i]);}/*选择排序*/#include"stdio.h"#defineN10main(){inta[N];inti,j,p,temp;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++){p=i;for(j=i+1;j<N;j++) if(a[j]<a[p])p=j;temp=a[i];a[i]=a[p];a[p]=temp;}printf("\n");for(i=0;i<N;i++)printf("%d",a[i]);}3.#include<stdio.h>intaverMaxMin(inta[],intn,int*pmax,int*pmin){ inti=0,sum=0; *pmax=*pmin=a[0]; for(;i<n;i++) { if(*pmax<a[i])*pmax=a[i]; if(*pmin>a[i]) *pmin=a[i]; sum+=a[i]; } returnsum/n;}intmain(void){ intn,max,min,ave,a[9]={1,2,3,4,5,9,8,7,6}; ave=averMaxMin(a,9,&max,&min); printf("最大值:%d\n最小值:%d\n平均值:%d\n",max,min,ave);}

附件1重庆人文科技学院考试命题任务书课程名称C语言程序设计使用学院计算机工程学院专业班级2016级计算机科学与技术课程类型专业课课程性质必修考试形式闭卷考试学期2016~2017第一学期考试时间120分钟命题份数A、B两套章节或

知识块考试考查内容授课学时试题分值附加说明第一章C语言概论42第二章数据类型、常量与变量45第三章运算符与表达式48第四章顺序结构415第五章分支结构415第六章循环结构410第七章数组415第八章函数610第九章指针810第十章结构体610总计48100试卷满分为100分,其中还应满足如下命题要求题型类别内容难度主观题客观题基础知识综合应用较易中等较难百分比%35654060304030说明:1.本表须根据《教学大纲》和《课程教学进度表》中规定的知识内容和目标层次要求编制;本表既是命题的依据,也是试卷分析、质量评价的依据,应经有关领导审定签字后方可正式命题编卷。2.“课程类型”分“公共基础”、“学科基础”、“专业核心”、“职业技能”、“专业选修”、“公共选修”六类;

“课程性质”分“必修课”、“选修课”两类。“考试形式”分“开卷”、“半开卷”和“闭卷”三种。3.“考试考查内容”按大纲或教材章节内容依序列出,但不得超纲,也可按“知识块”内容分类组合列出。

“授课学时”是指各个考试内容在该门课程教学中所占的学时数;“考试学期”按自然年的学年学期填写。4.“百分比%”是指占试卷中的比例,应视教学时数的长短和各知识单元在整个课程中的重要性而定。院系领导教研室主任任课教师年月日

Java程序设计电子试卷A课程名称Java程序设计姓名学号班级专业时间9:00——11:00满分100分成绩评卷劉發久审核张海绒2014年12月30日Java程序设计电子试卷答案问答题(10个小题,每小题3分,共30分):什么是java?什么是类?什么是对象?静态(static)变量与动态变量的区别是:Java中一般类、抽象类和接口的区别是:Java中接口的主要作用是:什么是封装?什么是继承?什么是多态?匿名内部类的作用是什么?论述题(2个小题,每小题10分,共20分):用实例说明Java简单工厂模式:试论述ActionListener监听器实现事件处理的过程:编程题(2个小题,每小题25分,共50分):创建一个窗口对象,在这个窗口对象中添加3JLabel、3个JTextField和2个JButton用户图形界面如下:姓名:输入你的真实姓名,电话:输入你的学号,成绩:随意输入。请你按要求注释部分代码和补充缺少的代码,创建数据库和表Students,创建数据源yuan,在开发环境MyEclipse完成完整的代码,并运行和演示这个项目。importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.*;importjavax.swing.*;publicclassMyWindowextendsJFrame{JTextFieldn1,n2,n3;JButtonb1,b2,b3,b4;//请注释以下3行代码Connectioncn;Statementst;ResultSetrs; MyWindow(){ setVisible(true); n1=newJTextField(); n2=newJTextField(); n3=newJTextField(); b1=newJButton("添加"); b2=newJButton("修改"); b3=newJButton("删除"); b4=newJButton("查询"); setLayout(newGridLayout(5,2)); add(newJLabel("姓名:"));add(n1); add(newJLabel("电话:"));add(n2); add(newJLabel("成绩:"));add(n3); add(b1);add(b2); add(b3);add(b4);//请注释监听器代码 b1.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ Stringsql="insertStudentsvalues('"+n1.getText()+"','"+n2.getText()+"','"+n3.getText()+"')"; doUpdate(sql); n1.setText("");n2.setText("");n3.setText(""); }}); b4.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ Stringsql="select*fromStudents"; rs=doQuery(sql); JFramew=newJFrame(); w.setVisible(true); try{ intr=rs.getRow(); w.setLayout(newGridLayout(r,3));while(rs.next()){w.add(newJLabel(rs.getString(1)));w.add(newJLabel(rs.getString(2)));w.add(newJLabel(rs.getString(3)));}}catch(Exceptionee){}}});}voiddoUpdate(Stringsql){ try{//1.请补充加载数据库驱动的代码: //2.请补充连接数据源的代码: //3.请补充创建语句对象的代码: //4.请补充执行SQL语句的代码: }catch(Exceptionee){} }ResultSetdoQuery(Stringsql){ try{//请补充缺少的代码: }catch(Exceptionee){} returnrs; } publicstaticvoidmain(String[]args){ newMyWindow(); }}一个TCP/IPSocket程序设计,实现Client/Server通信,等待接受对方发来的数据,当点击OK按钮时,可以向对方发送数据,用户界面如下图所示的:发送:输入你的姓名。请你按要求注释部分代码和补充缺少的代码,请在开发环境MyEclipse完成完整的代码,并运行和演示这个项目。Server代码:import.*;importjava.io.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassFrameServerextendsJFrame{//请注释以下4行代码 ServerSocketserver; Socketclient; DataOutputStreamout; DataInputStreamin;JTextFieldsend,receive;JButtonbutton;FrameServer(){button=newJButton("OK");send=newJTextField(10);receive=newJTextField(10);receive.setEditable(false);add(newJLabel("接收"));add(receive);add(newJLabel("发送"));add(send);add(newJLabel("确认"));add(button);setTitle("FrameServer");setBounds(100,100,600,200);setLayout(newGridLayout(3,2));setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){speak();}});try{//请补充缺少的创建server、client、out、in对象的代码: }catch(Exceptioneee){eee.printStackTrace();} listen();}voidspeak(){ try{//请补充缺少的发送数据的代码:}catch(Exceptioneee){eee.printStackTrace();}}voidlisten(){ try{while(true){//请补充缺少的接收数据的代码:StringreadClient=in.readUTF();receive.setText(readClient);}}catch(Exceptioneee){eee.printStackTrace();}}publicstaticvoidmain(Stringargs[]){newFrameServer();}}Client代码:import.*;importjava.io.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassFrameClientextendsJFrame{ Socketclient; DataOutputStreamout; DataInputStreamin; JTextFieldsend,receive;JButtonbutton;FrameClient(){button=newJButton("OK");send=newJTextField(10);receive=newJTextField(10);receive.setEditable(false);setLayout(newGridLayout(3,2));add(newJLabel("接收"));add(receive);add(newJLabel("发送"));add(send);add(newJLabel("确认"));add(button);setTitle("FrameClient");setBounds(100,100,600,200);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);try{//请补充缺少创建client、out、in对象的代码:}catch(Exceptioneee){eee.printStackTrace();}button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){speak();}});listen();}voidspeak(){ try{ //请补充缺少的发送数据的代码:}catch(Exceptioneee){eee.printStackTrace();}}voidlisten(){ try{while(true){ //请补充缺少的接收数据的代码:receive.setText(readClient);}}catch(Exceptioneee){eee.printStackTrace();}}publicstaticvoidmain(Stringargs[]){newFrameClient();}}

Java程序设计电子试卷A课程名称Java程序设计姓名学号班级专业时间9:00——11:00满分成绩评卷刘发久2014年12月5日Java程序设计电子试卷答案问答题(每小题3分):什么是java?Java包含两个方面的内容,一个是Java语言,Java语言是一种多用途的面向对象的编程语言,另一个是Java平台,Java平台是支撑Java语言程序开发和运行的环境,包括Java虚拟机JVM和编程接口API。什么是类?类定义由类声明和类体两部分组成,类体的主要内容是成员变量声明和方法定义,用类创建的每个对象都会类的成员变量拷贝成自己的变量,称为对象的实例变量。什么是对象?对象是类的实例,对象是通过newclassName()产生的,当用类创建对象时,用对象名.方法名()调用类中定义的方法其中“.”是分量运算符,对象调用方法操作的是实例变量。用一个类创建的每个对象可以调用该类中的方法,方法是执行代码,不需要每个对象拷贝一个副本。静态(static)变量与动态变量的区别是:静态(static)变量对于所有对象来说是同一个变量,即静态(static)变量的值对所有对象是相同的;动态变量对于每一个对象来说是一个独立的变量,每个对象都有一个自己的变量,即动态变量的值对不同对象是可以不同的。Java中一般类、抽象类和接口的区别是:一般类中不能有抽象方法,抽象类中可以有抽象方法,接口中只能有抽象方法。Java中接口的主要作用是:实现方法的调用与方法的实现相分离,用于事件处理可使事件的发生与事件的处理相分离。体现解决实际问题的工程化和分工协作的原则。什么是封装?封装指的是把变量声明和方法定义一起放在一个类体中,变量和方法形成一个整体,从而对使用该类的其他人来说,可以不管它的内部实,而只管用它的功能,然后用一个类名进行整体操作。封装是客观事物整体性和外观在面向对象程序设计中的体现。什么是继承?利用已存在类,创建一个新类,新类继承(extends)已经存在的类,新类就包含已存在类的所有的非private成员变量和方法,相当于新类重写了已存在类的代码。称已存在类为新类的父类,新类称为已存在类的一个子类,子类只能继承一个父类,父类可以被多个子类继承。继承是客观事物既具有一般性又具有特殊性在面向对象程序设计中的体现。什么是多态?由于父类对象可以用子类创建,同一个父类对象可用不同的子类创建,所以同一个父类对象可以有不同的状态,即多态,特别是当父类的方法是抽象的时。多态是客观事物多样性在面向对象程序设计中的体现。匿名内部类的作用是什么?匿名内部类既可以操一个类的内部对象又可以实现接口中的方法,可以用于监听器的设计。论述题(每小题10分,共20分):用实例说明Java工厂模式:工厂模式主要是为创建对象提供过渡接口,使得创建对象的过程对客户不是直接的而是间接的,即不是用new创建的,提高了灵活性,即具体产品代码修改不会影响客户程序。//抽象产品角色interfaceCar{publicvoidmovSpeed();}//具体产品角色classBAOMimplementsCar{publicvoidmovSpeed(){System.out.println("BAOM");}}classBENZimplementsCar{publicvoidmovSpeed(){System.out.println("BENZ");}}//工厂类角色classCarManager{publicstaticCargetCar(Stringwhat){ //判断逻辑,返回具体的产品角色给Clientif(what.equalsIgnoreCase("BAOM")){returnnewBAOM();}elseif(what.equalsIgnoreCase("BENZ")){returnnewBENZ();}else{returnnull;}}}publicclassFactoryDemo{ staticCarcar1,car2; publicstaticvoidmain(String[]args){ car1=CarManager.getCar("BAOM"); car2=CarManager.getCar("BENZ"); car1.movSpeed(); car2.movSpeed(); }}试论述ActionListener监听器实现事件处理的过程:事件处理实际上是当用户用鼠标或快捷键点击一个按钮对象时,会有一个监听器对象的方法被执行。ActionListener监听器实现事件处理过程是:调用按钮的addActionListener(监听器对象);实现监听器ActionListener中的publicvoidactionPerformed(ActionEvente)方法,在这个方法中实现事件处理过程。编程题(每小题25分,共50分):创建一个窗口对象,在这个窗口对象中添加3JLabel、3个JTextField和2个JButton用户图形界面如下:实现对数据库表的数据添加和查询操作,查询结果显示在另外一个窗口中。下面是不完整的代码,请你在开发环境MyEclipse中成这些代码,并创建数据库和表Students,创建数据源yuan,最后要运行这个程序。importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.*;importjavax.swing.*;publicclassMyWindowextendsJFrame{JTextFieldn1,n2,n3;JButtonb1,b2,b3,b4;Connectioncn;Statementst;ResultSetrs; MyWindow(){ setVisible(true); n1=newJTextField(); n2=newJTextField(); n3=newJTextField(); b1=newJButton("添加"); b2=newJButton("修改"); b3=newJButton("删除"); b4=newJButton("查询"); setLayout(newGridLayout(5,2)); add(newJLabel("姓名:"));add(n1); add(newJLabel("电话:"));add(n2); add(newJLabel("成绩:"));add(n3); add(b1);add(b2); add(b3);add(b4); b1.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ Stringsql="insertStudentsvalues('"+n1.getText()+"','"+n2.getText()+"','"+n3.getText()+"')"; doUpdate(sql); n1.setText("");n2.setText("");n3.setText(""); }}); b4.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ Stringsql="select*fromStudents"; rs=doQuery(sql); JFramew=newJFrame(); w.setVisible(true); try{ intr=rs.getRow(); w.setLayout(newGridLayout(r,3)); while(rs.next()){ w.add(newJLabel(rs.getString(1)));w.add(newJLabel(rs.getString(2)));w.add(newJLabel(rs.getString(3)));} }catch(Exceptionee){} }}); } voiddoUpdate(Stringsql){ try{ //1.加载数据库驱动 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //2.连接数据源 cn=DriverManager.getConnection("jdbc:odbc:km"); //3.创建语句对象 st=cn.createStatement(); //4.执行SQL语句 st.executeUpdate(sql); }catch(Exceptionee){} }ResultSetdoQuery(Stringsql){ try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); cn=DriverManager.getConnection("jdbc:odbc:km"); st=cn.createStatement(); rs=st.executeQuery(sql); }catch(Exceptionee){} returnrs; } publicstaticvoidmain(String[]args){ newMyWindow(); }}一个TCP/IPSocket程序设计,实现Client/Server通信,等待接受对方发来的数据,当点击OK按钮时,可以向对方发送数据,用户界面如下图所示的:请你按要求注释部分代码和补充缺少的代码,请在开发环境MyEclipse完成完整的代码,并运行和演示这个项目。Server代码:import.*;importjava.io.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassFrameServerextendsJFrame{ ServerSocketserver; Socketclient; DataOutputStreamout; DataInputStreamin;JTextFieldsend,receive;JButtonbutton;FrameServer(){button=newJButton("OK");send=newJTextField(10);receive=newJTextField(10);receive.setEditable(false);add(newJLabel("接收"));add(receive);add(newJLabel("发送"));add(send);add(newJLabel("确认"));add(button);setTitle("FrameServer");setBounds(100,100,600,200);setLayout(newGridLayout(3,2));setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){speak();}});try{server=newServerSocket(5678);client=server.accept();out=newDataOutputStream(client.getOutputStream()); in=newDataInputStream(client.getInputStream()); }catch(Exceptioneee){eee.printStackTrace();} listen();}voidspeak(){ try{ out.writeUTF(send.getText().trim());}catch(Exceptioneee){eee.printStackTrace();}}voidlisten(){ try{while(true){StringreadClient=in.readUTF();receive.setText(readClient);}}catch(Exceptioneee){eee.printStackTrace();}}publicstaticvoidmain(Stringargs[]){newFrameServer();}}Client代码:import.*;importjava.io.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassFrameClientextendsJFrame{ Socketclient; DataOutputStreamout; DataInputStreamin; JTextFieldsend,receive;JButtonbutton;FrameClient(){button=newJButton("OK");send=newJTextField(10);receive=newJTextField(10);receive.setEditable(false);setLayout(newGridLayout(3,2));add(newJLabel("接收"));add(receive);add(newJLabel("发送"));add(send);add(newJLabel("确认"));add(button);setTitle("FrameClient");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论