《程序设计基础实验》课程期末考查题
- 格式:doc
- 大小:39.50 KB
- 文档页数:3
程序设计期末试题及答案1. 题目描述假设有一个学生成绩管理系统,具有以下功能:- 添加学生信息- 修改学生信息- 删除学生信息- 查询学生信息- 统计学生人数- 计算学生平均分请你设计一个基于面向对象编程思想的学生成绩管理系统。
2. 解题思路首先,我们需要定义一个Student类,该类包含以下属性:- 学生姓名- 学生学号- 学生成绩可以使用构造函数初始化这些属性,同时提供设置和获取属性值的方法。
接下来,我们需要设计一个ManageSystem类,该类用于实现学生成绩管理系统的各种功能。
我们可以将学生信息存储在一个列表中,通过列表的操作来实现添加、修改、删除和查询学生信息的功能。
具体来说,ManageSystem类需要实现以下方法:- 添加学生信息:接受学生姓名、学号和成绩作为参数,创建一个Student对象并将其添加到学生列表中。
- 修改学生信息:接受学生学号和新的学生信息作为参数,遍历学生列表,找到对应学号的学生对象并修改其属性值。
- 删除学生信息:接受学生学号作为参数,遍历学生列表,找到对应学号的学生对象并从列表中删除。
- 查询学生信息:接受学生学号作为参数,遍历学生列表,找到对应学号的学生对象并返回其属性值。
- 统计学生人数:返回学生列表的长度。
- 计算学生平均分:遍历学生列表,累加每个学生的成绩,并返回总成绩除以学生人数的结果。
3. 代码实现```pythonclass Student:def __init__(self, name, student_id, score): = nameself.score = scoredef get_name(self):return def get_student_id(self):return self.student_iddef get_score(self):return self.scoredef set_name(self, name): = namedef set_student_id(self, student_id):self.student_id = student_iddef set_score(self, score):self.score = scoreclass ManageSystem:def __init__(self):self.students = []def add_student(self, name, student_id, score): student = Student(name, student_id, score)def modify_student(self, student_id, name=None, score=None): for student in self.students:if student.get_student_id() == student_id:if name:student.set_name(name)if score:student.set_score(score)def delete_student(self, student_id):for student in self.students:if student.get_student_id() == student_id:self.students.remove(student)def query_student(self, student_id):for student in self.students:if student.get_student_id() == student_id:return studentdef count_students(self):return len(self.students)def calculate_average_score(self):total_score = 0for student in self.students:total_score += student.get_score()return total_score / len(self.students)```4. 程序使用示例```python# 创建学生成绩管理系统对象system = ManageSystem()# 添加学生信息system.add_student("张三", "001", 80)system.add_student("李四", "002", 90)system.add_student("王五", "003", 85)# 修改学生信息system.modify_student("002", name="赵六", score=95) # 删除学生信息system.delete_student("001")# 查询学生信息student = system.query_student("003")print(student.get_name()) # 输出:王五# 统计学生人数count = system.count_students()print(count) # 输出:2# 计算学生平均分average_score = system.calculate_average_score()print(average_score) # 输出:90.0```5. 总结通过以上设计和实现,我们可以得到一个基于面向对象编程思想的学生成绩管理系统。
程序设计基础期末样题题目:程序设计基础期末样题字数:1990程序设计基础期末样题一、题目描述请编写一个程序,实现以下功能:1. 从用户输入中获取一组数据,包括整数和浮点数,个数不限;2. 对输入的数据进行排序,从小到大排列;3. 计算排序后数据的平均值、最大值和最小值;4. 将排序后的数据输出到屏幕上。
要求使用C语言编写程序,采用任意合适的排序算法。
二、程序设计思路在编写程序之前,我们需要明确设计思路。
根据题目描述,我们需要实现以下功能:获取一组数据、排序数据、计算统计值、输出数据。
首先,我们需要定义一个数组,用于存储用户输入的所有数据。
为了便于操作和统计,我们可以定义一个足够大的数组,以保证可以存储用户可能输入的任意个数的数据。
然后,通过循环语句,从用户输入中逐个读取数据,并将其存储到数组中。
根据题目要求,数据包括整数和浮点数,因此我们可以使用合适的数据类型来接收用户输入。
接下来,我们需要对数组中的数据进行排序。
可以选择常用的排序算法,如冒泡排序、快速排序等。
这里我们以冒泡排序为例。
通过嵌套循环,不断比较并交换相邻元素的位置,实现对数据的排序。
在排序完成后,我们可以通过循环遍历数组,计算平均值、最大值和最小值。
通过累加数据的总和,再除以数据个数,即可得到平均值。
同时,通过比较每个元素的大小,可以找到最大值和最小值。
最后,将排序后的数据逐个输出到屏幕上。
通过循环遍历数组,将每个元素依次输出即可。
三、程序设计实现以下是使用C语言编写的程序实现:#include <stdio.h>#define MAX_SIZE 100int main(){float data[MAX_SIZE];int size;int i, j;float sum = 0;float avg, max, min;float temp;printf("请输入数据个数:");scanf("%d", &size);if (size > MAX_SIZE){printf("输入数据过多,请重新运行程序!\n"); return 0;}printf("请输入一组数据:\n");for (i = 0; i < size; i++){scanf("%f", &data[i]);}for (i = 0; i < size - 1; i++){for (j = 0; j < size - i - 1; j++){if (data[j] > data[j + 1]){temp = data[j];data[j] = data[j + 1];data[j + 1] = temp;}}}for (i = 0; i < size; i++){sum += data[i];}avg = sum / size;max = data[size - 1];min = data[0];printf("排序后的数据为:\n"); for (i = 0; i < size; i++){printf("%.2f ", data[i]);}printf("\n");printf("平均值:%f\n", avg);printf("最大值:%f\n", max);printf("最小值:%f\n", min);return 0;}四、实验结果和分析我们运行上述程序,并输入一组测试数据进行验证。
c语言程序设计期末试题A(含答案)一、单项选择题(选择一个最佳答案,每题2分,共20分)1.一个C程序的执行是从( )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束2.下列选项中,不能用作标识符的是( )。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_3.以下定义语句中正确的是( )。
A) char a='A'b='B'; B) float a=b=10.0;C) int a=10,*b=&a; D) float *a,b=&a;4.设有以下定义:#define d 2int a=0; double b=1.25; char c=’A’;则下面语句中错误的是()。
A) a++; B) b++ C) c++; D) d++;5.以下4个选项中,不能作为一条C语句的是( )。
A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;6.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。
A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b;7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。
A) p=1; B) *q=2; C) q=p; D) *p=5;8.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。
A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ;C) scanf(“%d”,&pa) ; D) scanf(“%d”,*pa);9.若有说明:char *language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};则表达式*language[1]>*language[2]比较的是()。
一、单项选择题,请将正确答案填在横线处。
(每小题2分,共20分)1. 一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是______。
A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性2.下述标识符中,______不是合法的标识符。
A.A#CB.getchC.vodD.ab3. 下列关于单目运算符++.--的叙述中正确的是______。
A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量.int型变量和float型变量5. 以下程序的输出结果是______。
#include<stdio.h>void main(){ int a=5,b=4,c=6,d;printf("%d\n",d=a>c?(a>c?a:c):(b));}A.5B.4C.6D.不确定6. 有以下程序main(){int a=0,b=0,c=0,d=0;if(a=1) b=1;c=2;else d=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序输出______。
A.0,1,2,0B. 0,0,0,3C.1,1,2,0D.编译有错7. C语言中,下列叙述正确的是______。
A.不能使用do-while语句构成的循环B.do-while语句构成的循环,必须用break语句才能退出C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环8. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是______。
A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元9. 有如下程序#define N 2#define M N+1#define NUM 2*M+1main(){ int i;for(i = 1; i <= NUM; i++)printf("%d\n",i);}该程序中的for循环执行的次数是______。
C语言程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,正确的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数必须有参数答案:C3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列关于数组的描述中,错误的是?A. 数组可以是多维的B. 数组的下标从0开始C. 数组的大小在编译时确定D. 数组可以动态分配答案:D5. C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. void答案:C6. 在C语言中,以下哪个关键字用于定义一个静态变量?A. staticB. externC. registerD. auto答案:A7. 下列关于C语言中文件操作的描述中,正确的是?A. 文件操作只能使用标准库函数B. 文件指针必须使用FILE类型C. 文件操作必须使用fclose函数关闭文件D. 文件操作不能使用缓冲区答案:B8. 在C语言中,以下哪个关键字用于定义一个宏?A. defineB. typedefC. enumD. struct答案:A9. 下列关于C语言中位运算的描述中,错误的是?A. & 表示按位与B. | 表示按位或C. ^ 表示按位异或D. ~ 表示按位取反答案:B10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的内存空间通常是______个字节。
答案:42. C语言中,使用______关键字可以定义一个无限循环。
答案:while3. C语言中,数组的元素默认初始化为______。
适用专业:一、选择题(每小题2分,共40分)(1) 下列说法正确的是()A.main()函数必须放在C 程序的开头B main()函数必须放在C 程序的最后C main()函数可以放在C 程序的中间部分,但在执行C程序时是从程序开头执行的D main()函数可以放在C 程序的中间部分,但在执行C程序时是从main()函数开始执行的。
(2) C语言规定,必须用()作为主函数名。
A FunctionB includeC mainD stdio(3) 下列说法正确的是()A 执行C程序不是从main()函数开始的B C程序书写格式严格限制,一行内必须写一个语句C C程序书写格式自由,一行内可以分写在多行上D C程序书写格式严格限制,一行内必须写一个语句,并要有行号(4) 下列字符串属于标识符的是()A _WLB 3_3333C intD LINE3(5) C语言中能用来表示整型常量的进制是()A 十进制、八进制、十六进制B 十二进制、十进制C 六进制、八进制D 二进制、十进制(6) C 语言中,回车换行符是()A \nB \tC \vD \b(7) C语言中,下列类型属于基本类型的是()A整型、实型、字符型B 空类型、枚举型C 结构体类型、实型D 数组类型、实型(8) printf( )函数中用到格式符”%4s”,其中数字4表示输出的字符串占4列。
如果字符串长度大于4,则按原字符长从左各右全部输出;如果字符串长度小于4,则输出方式为()。
A 从左起出该字符串,右补空格B 按原字符长从左向右全部输出C 右对齐输出该字符,左补空格D 输出错误信息。
(9) 以下正确的C语言标识符是()A %xB a+bC a123D test!(10) 以下程序的输出结果是()main(){ int I=012,j=12,k=0x12;Printf(“%d,%d,%d\n”,I,j,k);}A 10,12,18B 12,12,12C 10,12,12D 12,12,18(11) 已知int x=30,y=50,z=80;以下语句执行后变量x,y,z的值分别为( ) If(x>y||x<z&&y>z) z=x;x=y;y=z;A x=50,y=80,z=80B x=50,y=30,z=30C x=30,y=50,z=80D x=80,y=30,z=50(12) 判断字符型变量ch为小写字母的表达式是()A ‘a’<=ch<=’z’B (ch>=a)&&(ch<=z)C (ch>=’a’)||(ch<=’z’)D (ch>=’a’)&&(ch<=’z’)(13) for语句中的表达式可以部分或全部省略,但两个()不可省略。
程序基础设计期末试题答案一、选择题1. 在面向对象编程中,封装的主要作用是:A. 隐藏对象的实现细节B. 提高代码的复用性C. 增强程序的安全性D. 优化程序的性能答案:A2. 下列哪种数据结构在插入和删除元素时不需要重新排列其他元素?A. 链表B. 数组C. 栈D. 队列答案:A3. 以下哪个关键字在Java中用于定义一个类?A. interfaceB. staticC. classD. public答案:C4. 在C++中,动态内存分配可以使用哪个操作符?A. newB. deleteC. thisD. nullptr答案:A5. 以下哪种排序算法在最坏情况下拥有最好的性能?A. 冒泡排序B. 快速排序C. 归并排序D. 选择排序答案:C二、填空题1. 在软件开发过程中,__________方法是一种通过原型制作来逐渐完善系统的过程。
答案:迭代2. 数据库管理系统(DBMS)的主要功能是管理__________和__________。
答案:数据、信息3. 在HTML中,用于创建超链接的标签是__________。
答案:a4. 软件测试的目的是__________和__________软件中的缺陷。
答案:发现、修复5. 算法的时间复杂度表示了算法执行时间与输入数据量之间的关系,它通常用__________表示。
答案:大O符号三、简答题1. 请简述面向对象编程的三个基本特征。
答:面向对象编程的三个基本特征包括封装性、继承性和多态性。
封装性是指将对象的数据和行为包装在一起,对外隐藏实现细节。
继承性允许新的类继承现有类的属性和方法,从而提高代码的复用性。
多态性是指允许使用子类的对象来替代父类的对象,使得同一个方法或属性可以在不同的对象中具有不同的表现形式。
2. 什么是软件设计模式?请举例说明。
答:软件设计模式是在特定上下文中解决常见问题的一套经典解决方案。
它们是对在软件开发过程中经常遇到的问题的一种经验总结。
2020年Visual Basic 程序设计期末测试复习题288题[含答案]一、选择题1.命令按钮Command1 的Caption属性为“退出(x)”,要将命令按钮的快捷键设为Alt+x,应修改Caption属性为_________。
a) 在x前插入&b) 在x后插入&c) 在x前插入 #d) 在x后插入# 答案:A2.表达式Int(-17.8)+Sgn(17.8)的值是______。
a) 18b) -17c) -18d) -16 答案:B3.复选框控件其Value属性的可取值是_______。
a) Trut和Falseb) 0和1c) 1、2、3d) 0、1、2 答案:D4.所有控件都有的属性是_______,在程序中作为对象的标识引用。
a) Captionb) Valuec) Textd) name 答案:D5.下述的说法哪种是Windows的程序设计方法:_______。
a) 面向对象,顺序驱动b) 面向过程、事件驱动c) 面向过程、顺序驱动d) 面向对象、事件驱动答案:D6.要在C盘当前文件夹下建立一个名为Sd.dat的顺序文件,应先使用_____语句。
a) Open "Sd.dat" For Output As #1b) Open "C:Sd.dat" For Input As #1c) Open "C:Sd.dat" For Output As #1d) Open "Sd.dat" For Input As #1 答案:C7.以下不属于Visual Basic系统的文件类型是a) .frmb) .clsc) .batd) .vbp 答案:C8.下列输出语句中,错误的是______。
a) ? X,yb) Print x,yc) Debug.Print x,yd) Print.Form x,y 答案:D9.下列_______方法是将项目添加到List控件中。
程序设计基础期末复习题程序设计基础期末复习题随着信息技术的不断发展,程序设计已经成为了一个重要的技能。
无论是在科研、工程还是日常生活中,我们都离不开程序设计。
因此,学习程序设计基础是非常重要的。
下面,我们来复习一些程序设计的基础知识。
一、变量和数据类型在程序设计中,变量是存储数据的容器。
不同的数据类型有不同的特点和用途。
常见的数据类型包括整数、浮点数、字符和布尔值等。
在定义变量时,需要指定变量的数据类型,并为其分配内存空间。
例如,整数类型的变量可以用来存储整数值,而浮点数类型的变量可以用来存储带小数点的数值。
字符类型的变量可以存储单个字符,而布尔类型的变量只能存储真或假的值。
在程序设计中,我们还可以使用运算符对变量进行运算。
常见的运算符包括加减乘除和取余等。
此外,我们还可以使用条件语句和循环语句来控制程序的执行流程。
二、函数和模块函数是一段具有特定功能的代码块,可以被多次调用。
函数可以接受输入参数,并返回输出结果。
通过使用函数,我们可以将程序分解成多个模块,提高代码的可读性和可维护性。
在程序设计中,函数可以是内置函数,也可以是自定义函数。
内置函数是编程语言提供的函数,可以直接调用。
而自定义函数则是由程序员根据需要编写的函数。
在编写函数时,我们需要考虑函数的输入和输出。
输入参数可以是必需的,也可以是可选的。
输出结果可以是一个值,也可以是一个数据结构。
通过合理设计函数的输入和输出,我们可以使函数更加灵活和通用。
三、数组和列表数组和列表是存储多个数据的数据结构。
它们可以存储相同类型的数据,并按照一定的顺序进行访问。
数组和列表的主要区别在于其大小是否可变。
数组是一种固定大小的数据结构,一旦创建后,其大小就不能改变。
而列表是一种大小可变的数据结构,可以根据需要动态调整其大小。
在程序设计中,我们可以使用数组和列表来存储一系列数据,并通过索引来访问其中的元素。
通过使用循环语句,我们可以对数组和列表中的元素进行遍历和操作。
《程序设计基础》期末考试卷试卷一一、语言基础(每小题2分,共26分)1.设有变量定义:int a=3, b=4, c=5; 表达式 !(a+b)+c-1 && b+c/2的值是多少?2.写出与代数式(x+2)e x+2对应的C表达式。
3.写出执行下列语句后的输出结果。
int x=5;if(x=3) printf(“%d\n”,x);else printf (“%d\n”,x+2);4.写出“仅当char类型变量ch是大写英文字母时改变ch为对应小写字母”的C表达式。
5.若程序中使用了库函数toupper、strcpy,写出在预处理命令中必须包含的头文件名。
6.写出下列程序段的输出结果:int i,s=0;for(i=1;i<10;i=i+2) s=s+i;printf(“i=%d s=%x\n”,i,s);7.设有宏定义“#define f(a,b,x) a*x+b”,写出下列语句的输出结果: printf(“%d %d\n”,f(1,2,3),f(f(1,2,3),4,2) );8.写出下列程序段的输出结果:int x=010,y=0x10,z=10;printf(“%d,%d,%d\n,x,y,z);9.写出下列程序段的输出结果:int k,j=3;k=j++;printf(“k=%d j=%d\n”,k,j);10.student 是结构体类型标识符,x是student类型变量,写出计算x字节数的表达式。
11.写出下列程序段的输出结果:int f(int x){ static y=1;x+=y; y++;return x;}void main( ){ int k;k=f(3);printf(“%d %d\n”,k,f(k) );}12.自定义函数fact的功能是计算k的阶乘,函数原型可以写作“float fact(int)”。
按照以下各小题的要求写出相应的函数原型。
(1)自定义函数f1的功能是计算平面上任意两点之间的距离。
C程序设计期末考试习题(含答案)c语言程序设计期末试题A(含答案)一、单项挑选题(挑选一个最佳答案,每题2分,共20分)1.一个C程序的执行是从( )。
A) 本程序的main函数开头,到main函数结束B) 本程序文件的第一个函数开头,到本程序文件的最后一个函数结束C) 本程序的main函数开头,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开头,到本程序main函数结束2.下列选项中,不能用作标识符的是( )。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_3.以下定义语句中正确的是( )。
A) char a='A'b='B'; B) float a=b=10.0;C) int a=10,*b= D) float *a,b=4.设有以下定义:#define d 2int a=0; double b=1.25; char c=’A’;则下面语句中错误的是()。
A) a++; B) b++ C) c++; D) d++;5.以下4个选项中,不能作为一条C语句的是( )。
A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;6.有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。
A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b;7.设有定义:int n=0,*p=则以下选项中,正确的赋值语句是( )。
A) p=1; B) *q=2; C) q=p; D) *p=5;8.设有定义:int a,*pa= 以下scanf语句中能正确为变量a读入数据的是( )。
A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ;C) scanf(“%d”, D) scanf(“%d”,*pa);9.若有说明:char*language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JA V A”,”C”};则表达式*language[1]>*language[2]比较的是()。
《程序设计基础》期末考试A 答案一、选择题(每题1.5分,共30分) A B C D A B C D 1、 ○ ○ ○ ● 11、○ ● ○ ○ 2、 ○ ○ ● ○ 12、○ ● ○ ○ 3、 ● ○ ○ ○ 13、○ ○ ● ○ 4、 ● ○ ○ ○ 14、○ ○ ○ ● 5、 ○ ○ ● ○ 15、○ ● ○ ○ 6、 ○ ○ ● ○ 16、● ○ ○ ○ 7、 ○ ● ○ ○ 17、● ○ ○ ○ 8、 ● ○ ○ ○ 18、○ ● ○ ○ 9、 ○ ○ ○ ● 19、○ ○ ○ ● 10、○ ● ○ ○ 20、● ○ ○ ○ 二、填空题(每题2分,共30分) 【21】 -1.7 【22】 1 【23】 8 【24】 26 【25】 0,0,2,3 【26】 2 【27】 1 【28】 8 【29】 x%10 【30】 ch>=’a ’&&ch<=’z ’ 【31】 a[row][colum] 【32】 strcmp(cRu[k].cname,cN)==0 【33】 xHao[m]=cRu[k].sno 【34】 max=iSc[0]; 【35】 iSc[k]>max三改错题(每题5分共10分)36 语句号: ①正确语句: int IsPrime(int n)语句号: ⑤正确语句: if(!(n%i)) 37 语句号: ⑤正确语句: t+=s[k];语句号: ⑦正确语句: for(i=0;i<n;i++) 四编程(共30分)38#include <stdio.h>void main(){ float x,y;printf(“Input x:”);scanf(“%f”,&x);if(x<0) y=x*x-1;else if(x>5&&x<10) y=2*x*x*x+3*x-6;else y=5*x+9;printf(“y=%f\n”,y);}39#include <stdio.h>void fun(char str[]){ int k=0,m=0;while(str[k]!=’\0’){ if (str[k]>=’0’&&str[k]<=’9’) str[m++]=str[k];k++;}str[m]=’\0’;}void main(){ char chs[80];printf(“Input a string:”);gets(chs);fun(chs);puts(chs);}40#include <stdio.h>int select(int iSc[][5],int n,int a,int b,int iZw[]){ int k,l,avg,fl,m=0;for(k=0;k<n;k++){ avg=0;fl=1;for(l=0;l<5;l++){ avg+=iSc[k][l];if (iSc[k][l]<b) fl=0;}avg=avg/5;if(fl||avg>=a) iZw[m++]=k+1;}return(m);}void main(){ int iCj[20][5],iZh[20],k,m;for(k=0;k<20;k++){ printf(“\n输入%d号学生5门课成绩”,k+1)for(m=0;m<5;m++)scanf(“%d”,&iCj[k][m]);}m=select(iCj,20,90,85,iZh);printf(“满足平均成绩不低于90或各科成绩不低于85:\n”); for(k=0;k<m;k++)printf(“%d\n”,iZh[k]);}。
5、如何产生一个0 <= i < 20的随机整数i ?请写出表达式。
6、假设x 是1 ,经过下面的表达式运算后,x 的值是多少?7、执行下列switch 语句后,y 的值是多少?8、使用条件表达式改写下面的语句。
二、简答题(每小题6分,共60分)1.、指出并修改下列程序的错误:2.、修改下列程序中的错误,将修改后的程序写在右边。
3、将下面的while循环转换成do-while循环,将修改后的程序写在右边。
4、假设输入是 2 3 4 5 0 ,那么下面代码的输出结果是什么?5、下面程序中将for循环转换成while循环存在错误,请指出错误原因并改正之。
6、确定并更正下列程序中的错误,回答在题目右边区域。
7、显示下列程序每执行一行之后数组的内容。
8、以下代码的输出是什么?9、图a) 和b)中的程序在同一个包(package)中,f是Foo类的一个实例(instance),那么图b)中的哪些语句是不正确的?10、请说明下面出现“?”的地方是否可以加上static 关键字,是否必须加上static关键字?三、编程题(每小题16分,共16分)1. 1. 编写一个程序,读入学生的成绩,置入一个数组int[] scores中,获得学生成绩的最高分best,根据下面的规则将学生的成绩转换成等级输出到控制台:●如果分数>=best – 10,等级为A●如果分数>=best – 20,等级为B●如果分数>=best – 30,等级为C●如果分数>=best – 40,等级为D●其它情况下,等级为F(可将程序写在试卷背面)参考答案A:一、填空题(每小题3分,共24分)1. 答案:Valid identifiers: applet, Applet, $4, apps, x, y, radiusInvalid identifiers: a++, --a, 4#R, #44, class, public, int2. 答案:(2 + 100) % 7 = 4. So it is Thursday.3. 答案:f is 12.5i is 124. 答案:0.5, 0.0, 0.2345. 答案:(int)(Math.random() * 20)6. 答案:27.答案:28.答案:pay = (temperature > 90) ? pay * 1.5 : pay * 1.1;二、简答题(每题6分,共60分)1、答案:Line 2. Main should be main.Line 2. static is missing.Line 3: Welcome to Java! should be enclosed inside double quotation marks.Line 5: The last ) should be }.2、答案:if (score < 60)grade = ‘F’;else if (score < 70)grade = ‘D’;else if (score < 80)grade = ‘C’;else if (score < 90)grade = ‘B’;else if (score <= 100)grade = ‘A’;3、答案:int sum = 0;int number;do {number = input.nextInt();sum += number;} while (number != 0);4、答案:max is 5Number 05、答案:int i = 0;while (i < 4) {if (i % 3 == 0) {i++;continue;}sum += i;i++;}6、答案:Line 2: method1 is not defined correctly. It does not have a return type or void.Line 2: type int should be declared for parameter m.Line 7: parameter type for n should be double to match method2(3.4).Line 11: if (n<0) should be removed in method, otherwise a compile error is reported.7、答案:Line 1: list is {2, 4, 7, 10}Line 2: list is {7, 7, 7, 7}Line 3: list is {7, 8, 8, 7}Line 4: list is {7, 8, 8, 7}8、答案:array[0][1] is 2.9、答案:System.out.println(Foo.i); Foo.imethod();10、答案:第一个问号处必须加static ,第二个?处不可以加static , 第三个?处可加可不加static.三、编程题(每题16分,共16分)1、答案:public class Exercise6_1{public Exercise6_1(){}public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.print("Enter number of students: ");int numberOfStudents = input.nextInt();int scores[] = new int[numberOfStudents];int best = 0;System.out.print("Enter "+numberOfStudents+" scores: ")for (int i = 0; i < scores.length; i++){scores[i] = input.nextInt();if (scores[i] > best)best = scores[i];}String output = "";for (int i = 0; i < scores.length; i++){char grade;if (scores[i] >= best - 10)grade = 'A';elseif (scores[i] >= best - 20)grade = 'B';elseif (scores[i] >= best - 30)grade = 'C';elseif (scores[i] >= best - 40)grade = 'D';elsegrade = 'F';output = output + "Student "+i+ " score is "+ scores[i]+" and grade is "+ grade +"\n";}System.out.println(output);}。
《程序设计基础》期末试题答题时间60分钟一、单项选择题(每小题4分,共40分)1、当代计算机的最主要的体系结构称为是 ______ 。
A冯•诺依曼机B非冯•诺依曼机C图灵机 D PASCAL机2、计算机软件是指 _____ OA计算机程序B源程序和目标程序C源程序D计算机程序及其有关文挡3、汇编程序的任务是______ oA将汇编语言编写的程序转换为目标程序B将汇编语言编写的程序转换为可执行程序C将髙级语言编写的程序转换为汇编语言程序D将髙级语言编写的程序转换为可执行程序4、C语言•是_____ oA机器语言 B汇编语言 C高级语言D目标语言5、关于C语言语句的正确概念是_______ oA在C语言中不能使用goto语句 B goto语句可以从C语言中去除C WhiIe和do-while都是直到型循环D SWitCh语句可以替代if语句6、如果在具有层次结构的一组元素中,存在着一对一的关系,我们可以认为这样的数据的逻辑类型就是__________ OA集合B线性结构C树型结构D图型结构7、图的典型特点是各个结点之间是 _______ OA没有直接关系 B 一对一关系 C 一对多关系 D多对多关系8、如果在内存中采用链式保存线性表,则元素之间的逻辑关系通过.A元素在内存中的相对位置表示逻借次序B保存在元素中的指针表示先后次序C设立单独的区域存储元素之间的逻辑次序D元素本身的关键字来表示逻借次序9、在软件系统进行组装测试的时候发现错误,则针对被发现的错误,可以判断在整个软件开发过程最可能岀现错误的阶段是__________ 。
A需求分析 B概要设计 C详细设计D单元测试10、早期进行程序开发过程中存在不少问题,在下列问题中有一个并不是早期程序员常见的问题,它是______ 。
A程序员过分依赖技巧与天分,不太注重所编写程序的结构B程序中的控制随意跳转,不加限制地使用goto语句C无固定程序设计方法D对问题的抽象层次不够深入二、填空题(每小题6分,共30分)1、计算机的运算器除了能够完成基本的_____ ①_______ 运算外,还具有进行比较、______ ②______ 等逻辑运算的功能。
2014-2015学年第2学期
《程序设计基础实验》课程期末考查题
注意:考试结束时,将该试题页以你的“学号_姓名”命名并发送到
liruisheng2013@
提交时间截至16:30分,不按指定格式命名的或未按时提交者,成
绩按0分计。
一、程序填空题(共10空,每空2分,共20分)
注意:将蓝色下划线部分补充完整并使得程序能够完成要求的功能
1.下列程序功能是:输出100以内能被3整除且个位数为6的所有整数。
#include <stdio.h>
void main()
{ int i,j;
for(i=0;(1);i++)
{j=i*10+6;
if((2)) continue;
printf("%d,",j); } }
2.下面程序用以求解“1!+2!+3!+……+20!”的值,请将其补充完整
#include <stdio.h>
int main()
{double s=0,t=1;
int n;
for (n=1;n<=20;n++)
{
(3);
(4);
}
printf("1!+2!+...+20!=%22.15e\n",s);
return 0;
}
3. 下面程序的功能是:把数组a(大小为M)中前M-1个元素中的最小值放入a 的最后一个元素中。
#include <stdio.h>
#define M 11
void main()
{ int a[M],i;
for(i=0;i<M-1;i++)
scanf("%d",&a[i]);
a[M-1]=a[0];
for(i=1;(5);i++)
if((6))
a[M-1]=a[i];
printf("Max is %d\n",a[M-1]);
}
4. 下面程序的功能是:打印出1至1000中满足其个位数字的立方等于其本身的所有整数。
本题的结果为:1 64 125 216 729。
#include <stdio.h>
main()
{
int i,g;
for(i=1;i<1000;i++)
{
g=i(7)10;
if((8))
printf("%4d",i);
}
printf("\n");
}
5. 下面程序的功能是:统计整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。
例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。
#include <stdio.h>
int c1,c2,c3;
void fun(long n)
{
c1 = c2 = c3 = 0;
while (n)
{
switch((9))
{
case 1: c1++; break;
case 2: c2++;(10);
case 3: c3++;
}
n /= 10;
}
}
main()
{
int n=123114350;
fun(n);
printf("\nn=%d c1=%d c2=%d c3=%d\n",n,c1,c2,c3); }
二、算法设计题(共2小题,每小题10分,共20分)
1. 已知∏2/6≈1/12+1/22+1/32+……+1/n2。
请用伪码描述运用上述公式求解∏值的算法。
2.请用伪代码描述下面问题的算法:有n个人围坐成一圈,顺序排号。
从第
1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的人。
三、程序设计题(共4小题,每题15分,共60分)
1.运用指向函数的指针方法编写程序实现以下功能:
编写四个函数int add(int,int),int sub(int,int),int mul(int,int)。
int div(int,int)分别用于求解两个整数的“和”、“差”、“积”、“商”;当通过键盘输入不同字符时,主函数分别调用int add(int,int),int sub(int,int),int mul(int,int)。
int div(int,int)函数并输出相应结果。
(如当键盘输入字符‘A’或‘a’时,主函数调用add(int,int)函数并输出其结果。
)
将源程序和执行结果截图粘贴在下方:
2.假定一个一维数组中存放8个整数,编写一个函数,当主函数调用该函数时,能够求出一维数组中8个整数的和、最大值及最小值并输出它们。
(要求:不能编写多个函数来实现)
将源程序和执行结果截图粘贴在下方:
3.试编写程序实现将保存在字符数组a中的字符串“I am student ,I study hard”复制到字符数组b中并输出字符数组b中字符串的程序(要求:不能使用strcpy函数)。
将源程序和执行结果截图粘贴在下方:
4.有3个学生的信息,这些信息包括:学号、姓名、性别、年龄、家庭住址、学分。
试编写程序,运用结构体数组保存这3个学生信息并输出全部学生的信息。
将源程序和执行结果截图粘贴在下方:。