上机练习八 数组
- 格式:doc
- 大小:36.00 KB
- 文档页数:2
1输入三个整数*,y,z,把这三个数由小到大输出。
# include <stdio.h>void main(){int *,y,z,a;scanf ("%d,%d,%d",&*,&y,&z);if(*>y) {a=*; *=y;y=a;}if(*>z) { a=*; *=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",*,y,z);}2输入圆的半径,输出圆的周长和面积。
# include<stdio.h># define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# include<stdio.h>void main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# include<stdio.h>int main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
Java数组练习题(带答案)一填空题1)数组的元素通过下标来访问,数组Array的长度为Array、length 。
2)数组复制时,"="将一个数组的引用传递给另一个数组。
3)JVM将数组存储在栈(堆或栈)中。
4)数组的二分查找法运用的前提条件就是数组已经排序。
5)Java中数组的下标的数据类型就是整型。
6)数组最小的下标就是0 。
7)arraycopy()的最后一个参数指明复制元素的个数。
8)向方法传递数组参数时,传递的就是数组的引用。
9)数组初始化包括数组的申明,创建与初始化。
10)数组下标访问超出索引范围时抛出数组越界异常11)浮点型数组的默认值就是0、0f 。
12)数组创建后其大小不能改变。
二选择题1.下面错误的初始化语句就是_ABD__A、char str[]="hello";B、char str[100]="hello";C、char str[]={'h','e','l','l','o'};D、char str[]={'hello'};2.定义了一维int型数组a[10]后,下面错误的引用就是_B__A、a[0]=1;B、a[10]=2;C、a[0]=5*2;D、a[1]=a[2]*a[0];3.下面的二维数组初始化语句中,正确的就是____A、float b[2][2]={0、1,0、2,0、3,0、4};B、int a[][]={{1,2},{3,4}};C、int a[2][]= {{1,2},{3,4}};D、float a[2][2]={0};4.引用数组元素时,数组下标可以就是_D___A、整型常量B、整型变量C、整型表达式D、以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A、24B、25C、18D、176.下列初始化字符数组的语句中,正确的就是__B__A、char str[5]="hello";B、char str[]={'h','e','l','l','o','\0'};C、char str[5]={"hi"};D、char str[100]="";7.数组在Java中储存在 C 中A、栈B、队列C、堆D、链表8.下面程序的运行结果就是____main() {int a[][]={{1,2,3},{4,5,6}};System、out、printf("%d", a[1][1]);}A、3B、4C、5D、69.下面程序的运行结果就是_C___main() {int x=30;int[] numbers=new int[x];x=60;System、out、println(numbers、length); }A、60B、20C、30D、5010.下面程序的运行结果就是__BDF__ main() {char s1[]="ABCDEF"、toCharArray();int i=0;while(s1[i++]!='\0')System、out、println(s1[i++]);}A、ABCDEFB、BDFC、ABCDED、BCDE11.下面不就是创建数组的正确语句CA、float f[][]=new float[6][6];B、float f[]=new float[6];C、float f[][]=new float[][6];D、float [][]f=new float[6][];12.下面不就是数组复制方法的就是(C)A、用循环语句逐个复制数组B、用方法arraycopyC、用"="进行复制D、用clone方法13.数组a的第三个元素表示为DA、a(3)B、a[3]C、a(2)D、a[2]14.当访问无效的数组下标时,会发生BA、中止程序B、抛出异常C、系统崩溃D、直接跳过15.使用arraycopy()方法将数组a复制到b正确的就是AA、arraycopy(a,0,b,0,a、length)B、arraycopy(a,0,b,0,b、length)C、、arraycopy(b,0,a,0,a、length)D、arraycopy(a,1,b,1,a、length)16.关于数组默认值,错误的就是BA、char--'"u0000'B、Boolean--trueC、float--0、0fD、int-- 017.关于数组作为方法的参数时,向方法传递的就是AA、数组的引用B、数组的栈地址C、数组自身D、数组的元素18.关于数组复制,下列说法错误的就是ACA、"="可以实现数组复制B、运用循环语句进行数组复制必须两个数组长度相同C、arraycopy()方法没有给目标数组分配内存空间D、数组复制就是数组引用的传递19.下列语句会造成数组new int[10]越界就是DA、a[0] += 9;B、a[9]=10;C、—a[9]D、for(int i=0;i<=10;i++) a[i]++;20.在JDK环境下编译JAVA源程序使用的命令就是(B )A、javaB、javacC、jvmD、tomcatD、子类不能使用父类的构造方法21.main方法就是java Application 程序执行的入口点。
8-1 编写程序,将10个数34,3,29,63,70,16,85,82,90,93存放于一组数组中,求出这十个数的和及平均值。
解:#include "stdio.h"void main(){int a[10]={34,3,29,63,70,16,85.82,90,93};int i ,sum=0;float average ;for(i=0;i<10;i++){sum=sum+a[i] ;}average=sum/10.0;printf("sum=%d,average=%f\n",sum,average);}运行结果:sum=565,average=56.5000思考:数组有何特点?此问题如果不用数组进行处理将会怎样?8-2 编写程序,求存放于上题数组中10个数的最大值,最小值及所在的位置。
解:#include "stdio.h"void main(){int a[10]={34,3,29,63,70,16,85,82,90,93};int i,sum,max,min,d_max,d_min;max=min=a[0];d_max=d_min=0;for(i=1;i<10;i++){if(a[i]>max) {max=a[i];d_max=i;}if(a[i]<min) {min=a[i];d_min=i;}}printf("max=%d,a[%d]\n",max,d_max);printf("min=%d,a[%d]\n",min,d_min);}运行结果:max=93,a[9]Min=3,a[1]思考:数组a[i]中i的变化意味着什么?8-3 编写程序,从键盘读入50个数存放于一数组中,求出该数组中最大值、最小值及所在位置。
解:#include "stdio.h"void main(){float a[50],max,min;int i,d_max,d_min;for(i=0;i<50;i++)scanf("%f",&a[i]);max=min=a[0];d_max=d_min=0;for(i=1;i<50;i++){if(a[i]>max) {max=a[i];d_max=i;}if(a[i]<min) {min=a[i];d_min=i;}}printf("max=%d,a[%d]\n",max,d_max);printf("min=%d,a[%d]\n",min,d_min);}思考:此题中不用数组也可以处理吗?如果可以,区别之处在哪里?8-4将存放于上题数组中的50个数分别按升序,降序排序。
第五章数组练习题及答案一、选择题1、判断字符串a和b是否相等,应当使用()A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))2、以下正确的定义语句是()A、int a[1][4]={1,2,3,4,5};B、float x[3][]={{1},{2},{3}};C、long b[2][3]={{1},{1,2},{1,2,3}};D、double y[][3]={0};3、以下各组选项中,均能正确定义二维实型数组a的选项是()A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}};B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}};C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}};D、float a[3][4]; float a[3][ ]; float a[ ][4];4、下面程序的运行结果是()1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB#include "stdio.h"main(){ char str[]="SSSWLIA",c;int k;for(k=2;(c=str[k]!='\0');k++){ switch(c){case 'I':++k;break;case 'L':continue;default:putchar(c);continue;}putchar('*');}}A、SSW*B、SW*C、SW*AD、SW5、下面程序段是输出两个字符串中对应相等的字符。
1。
阅读以下程序,说出其功能和运算结果。
#include 〈stdio.h〉int main( ){int n ;int factorial(int n);scanf(”%d”,&n) ;printf(”%d\n",factorial(n)) ;return 0 ;}int factorial(int n){int i, fact=1 ;for(i=1;i<=n;i++)fact=fact*i ;return fact ;}若输入5↙2.改正下列程序中的错误,在屏幕上显示“Welcome to You!”.#include <stdio.h〉int mian( ){printf(”Welcome to You!\n”)return 0 ;}3.若输入4,程序运行结果为【1 】,若输入-4,运行结果为【2 】,若输入10,运行结果为【3 】.#include〈stdio.h〉main(){i nt x,y;scanf(”%d",&x);if(x〈1){y=x;printf("x=%d,y=x=%d\n”,x,y);}else if(x<10){y=2*x-1;printf(”x=%d,y=2*x—1=%d\n",x,y);}else{y=3*x-11;printf(”x=%d,y=3*x—11=%d\n”,x,y);}}4.当输入19,2,21时下列程序运行的结果是()。
#include<stdio。
h>main(){int a,b,c,max;printf(”please scan three number a,b,c:\n");scanf(”%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max〈c)max=c;printf("max is:%d”,max);}5. 运行以下程序时,从键盘键入China#<CR〉(〈CR〉代表回车),则下面程序的运行结果是。
实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。
参考公式V=4/3πr3.。
2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。
运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。
2.掌握格式输入/输出函数的用法。
3.学会简单顺序程序的设计。
4.养成良好的程序设计习惯。
二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。
Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。
Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。
二、实验内容1.编写一个程序,确定一个数的位数。
Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。
提示:利用if语句进行数的判定。
例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
《程序设计语言(Java)》上机实验及综合设计评分标准一、实验总体安排《程序设计语言(Java)》课程面向全校非计算机专业理工类本科生,是程序设计语言类必修的公共基础课之一。
该课程重点介绍Java语言的基本语法和面向对象编程方法。
为配合课堂教学,本课程安排了32学时的课内上机和10学时的学生课外自主上机,实验内容由3个基本单元和综合设计共4个单元组成,各实习单元的具体内容和学时安排(包括自主上机的10学时)如下:第一单元(10学时):Java编程基础,包括课堂教学的第1,2,3章。
主要涉及JDK开发工具的使用、Java基本语法和流程控制语句的使用。
第二单元(10学时):Java编程提高,包括课堂教学的第4,5,6章。
主要涉及数组、向量和字符串、类和对象的创建和使用以及Java异常处理。
第三单元(12学时):Java编程进阶,包括课堂教学的第7,8,9,10章,主要涉及Java图形界面设计和Swing组件的使用、Applet程序涉及以及数据流方面的知识。
第四单元(10学时):综合设计。
根据教师所给出的参考课题或自选课题,综合应用所学的Java编程知识和面向对象程序设计方法,设计一个相对完整的Java应用程序或Java Applet小应用程序。
说明:每次上机实习,学生应按实验要求认真完成实习内容。
教师应认真指导学生进行上机实习,检查实验情况,把好上机实习关。
学生完成前三个基本单元的实习内容后,需填写相应的《上机实验报告》,综合设计单元需按要求提交相关设计的电子文档和相应的《综合实践报告》,教师则根据完成情况按下述评分标准给出成绩。
二、上机实验评分标准《程序设计语言(Java)》实验课为独立设课,课程的考核和成绩记载方式请参见该课程的考核要求。
对于3个基本实验单元,每个单元均由一定数量的相关实验组成,各单元的评分标准如表1所示。
表1 上机实验评分标准说明:每个学生需提交上述单元的《上机实验报告》,共1个。
上机操作练习题1.某数组有20个元素,其值为随机产生的两位整数。
现要求将前10个元素与后10个元素对换。
即第1个元素与第20个元素互换,第2个数与第19个元素互换,…,第10个元素与第11个元素互换.在窗体上输出数组原来各元素的值与对换后各元素的值。
Option explicitDim a(1 to 20) as integer, I as integer,j as integer, t as integerPrivate Sub Form_Load()ShowPrint "原始数组是:”RandomizeFor i = 1 To 20a(i) = Int(Rnd *90)+ 10Print a(i);If i Mod 10 = 0 Then PrintNext iPrintPrint ”现在数组是:”For i = 1 To 10j = 21 - it = a(i):a(i)= a(j):a(j) = tNext iFor i = 1 To 20Print a(i);If i Mod 10 = 0 Then PrintNext iEnd Sub2.从数组中删除一个数。
先定义一个一维数组,大小、数组的值自定。
从键盘上输入一个数,若这个数在数组当中,就把它删除;若这个数不在数组中,提示“该数不在数组中"注意:1)如果数组中存在多个与该数相同的元素,每一个都能删除;2)能实现多次删除Private Sub Form_Load()ShowReDim a(9)As Integerm = 1Print ”原来数组为:”For i = 0 To 9a(i) = InputBox(”请输入第”&m &"个数:”)Print a(i);m = m + 1Next iPrintn = InputBox(”查找的数是:")i = 0:flag = FalseDoIf a(i) = n Thenj = i:flag = TrueFor k = j To UBound(a) - 1a(k)= a(k + 1)Next kReDim Preserve a(UBound(a) - 1)i = i - 1End Ifi = i + 1Loop While (i <= UBound(a))If flag = False ThenMsgBox n &"不在该数组中”ElsePrint ”删除”&n &"后的数组是:”For i = 0 To UBound(a)Print a(i);Next iEnd IfEnd Sub3.数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。
上机练习八数组
一、背景知识
理解一维数组、多维数组、静态数组、动态数组的概念;
二、目的要求
1、掌握一维数组基本操作的程序设计方法;
2、掌握控件数组的建立和使用;
三、上机练习内容
生成10个0-100之间的随机数存放于数组A,将这10个数按递增和递减的顺序排序,并显示在窗体上。
(1)程序界面设计
(2)代码设计
参考教材 P145-147
四、上机练习说明
(1)点击“生成数组”按钮,生成数组,并显示在第一个文本框
(2)点击“递增排序”按钮,将排序后结果显示在第二个文本框
(3)点击“递减排序”按钮,将排序后结果显示在第三个文本框
五、注意问题
(1)注意数组变量的作用范围,应该定义在“代码窗口”的“通用”位置(2)注意排序代码设计,外重循环和内重循环的变化范围
(3)注意两个数组元素交换的代码需借助中间变量
六、程序扩展
将文本框1和文本框2变换成文本框控件数组,同样实现排序设计(产生5
个随机数,保存在数组中,显示在第一个文本框控件数组,排序后显示在第二个文本框控件数组)
注意问题
(1)控件数组的建立和使用
七、课后习题。