作业4(OOP上机) 含答案

合集下载

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。

(3)通过运行简单的 C 程序,初步了解 C程序的特点。

(4)在教师的指导下,学会使用在线评判系统。

二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。

includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。

(2)保存程序,取名为a1.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

,则该题完成。

4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。

实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为a2.c。

(3)按照前二章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。

45(6)按照第三章中介绍的方法进入在线评判系统。

(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。

(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。

(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。

C语言上机练习参考答案

C语言上机练习参考答案

第1章 C语言概述1-1编写程序,在屏幕上显示一个如下输出:1-2---------------------------------1-3Programming in C is fun!1-4I love C language.1-5---------------------------------Program#include <>main(){ printf("---------------------------------\n");printf("Programming in C is fun!\n");printf("I love C language.\n");printf("---------------------------------\n");}1-6编写程序,在屏幕上显示一个如下图案:1-7* * * *1-8 * * *1-9 * *1-10 *Program (1)#include <>main(){ printf("* * * *\n");Program (2)1-11已知某个圆的半径,编写一个程序,用来计算并显示面积。

1-12要求:将π定义为符号常量,并假设一个恰当的半径值。

ProgramOutputThe area of circle is:1-13 已知两个整数20和10,编写程序,自定义函数add( )将这两个数相加,自定义函数sub( )计算这两个数的差,并按照下面形式显示计算结果: 1-1420+10=30 1-1520-10=10 ProgramOutput20 + 10 = 3020 – 10 = 101-16 已知变量a 、b 和c 的值,编写程序,用来计算并显示x 的值,其中cb a -=x1-17请分别用以下数值运行该程序1-18(1)a=250,b=85,c=251-19(2)a=300,b=70,c=80 Program (1)Output (1)x =Program (2)Output (2)x =第2章 常量、变量及数据类型 & 第3章 运算符和表达式 3-1 编写程序,求华氏温度100o F 对应的摄氏温度。

2023年3月青少年软件编程(Python)等级考试四级【答案版】

2023年3月青少年软件编程(Python)等级考试四级【答案版】

一、单选题(共25题,每题2分,共50分)1. 运行下列程序,输出的结果是?( B )(2分)def wenhao(name = 'zhejiang'):print('hello' + name)wenhao()A. helloB. hellozhejiangC. hellonameD. 程序将提示运行错误试题解析:定义函数时,可以指定形参的默认值。

如果在调用函数时给函数提供了实参,Python将使用指定的实参,否则将自动调用形参的默认值。

本题中,调用wenhao函数时没有传值,故使用函数的默认值作为函数的调用。

因此选B2. 运行下列程序,输出的结果是?(C)(2分)rst = lambda a,b=5:a*bprint(rst(5))A. 5B. 15C. 25D. 35答案解析:rst(5)传入一个实参,a被赋值为5,b使用默认值5,因此结果是5*5=25,选C。

3. 运行下列程序,输出的结果是?( C )(2分)def jsarea(r, PI = 3.14):area = PI * r * rprint(jsarea(1))A. 3.14B. 因缺失参数,不能计算C. NoneD. 程序代码有错误答案解析:函数jsarea中,没有return语句,函数中计算的结果area不能传递给函数调用处,因此调用函数的结果是None。

4. 运行下列程序,输出的结果是?(D)(2分)def js(n):s = 0while n:s = s * 10+n % 10n //= 10return sprint(js(20230110))A. 20230110B. 01103202C. 2301102D. 1103202答案解析:函数js的功能是计算n的逆序数,因此选D5. 在传递信息的过程中, 通常会将一些敏感信息进行加密,以下是对数据进行加密的Python程序段,若输入数据为“cie0108”,则输出的结果是?(C)(2分)def jm(t):s = ""for ch in t:if "0" <= ch <= "9":x = int(ch) + 3if x >= 10:x = x % 10ch = str(x)s = s + chreturn sprint(jm('cie0108'))A. 1343eicB. 0108cieC. cie3431D. 3431cie答案解析:函数jm中对原文进行处理,若是字母,不变,累加;若是数字, 转为整型加3然后求其个位上的数,因此答案是cie3431,选C。

上机4参考解答

上机4参考解答

上机4参考答案三、1.⑴f[0]= 0 ;f[i]= 1 ;for(k= 2 ;k< N ;k++){f[k]=f[k-1]+f[k-2];}(2)程序输出的结果是:0 1 1 23 5 8 1321 34 55 89144 233 377 610987 1597 2584 41812.(1)a[i][p]:表示每行中绝对值最小的数i:表示该数所在的行p:表示该数所在的列(2)程序运行的结果是:3 (0,2)2 (1,1)-1 (2,3)3. for(i=0;i<5;i++){for( j=0;j<i;j++ ) /*输出每行前面的空格*/ printf ("%c",space);for( j=0;j<5;j++ ) /*输出每行的星号*/printf ("%c ",' *;printf( n”“);}4./*(1)按字符逐个输入和输出*/#i nclude <stdio.h>int main(){char str[6];int i;for(i=0;i<5;i++)scanf ("%c",&str[i]);for (i=0;i<5;i++)printf ("%c",str[i]);printf( n ”“);return 0;}/*(2)按字符串输入和输出*/#i nclude <stdio.h>int main(){char str[6];gets(str);puts(str);return 0;}for(i=0;i<5;i++) /*与初始化中的5个人进行比较*/ if (strcmp( name,classStu[i]) ==0)flag=1;if ( flag==1 )printf("%s 是这个班的。

\n",name);elseprintf("%s 不是这个班的。

c语言第四次上机作业参考答案

c语言第四次上机作业参考答案

第四次上机作业参考答案:1.数组转置在主函数中定义一个n(1<=n<=6)维方阵,并从键盘读入数组元素;编写函数transpose(a,n)实现数组a转置;在主函数中输出转置后的方阵。

例:输入41 2 3 4 输出 1 5 9 135 6 7 8 2 6 10 149 10 11 12 3 7 11 1513 14 15 16 4 8 12 16#include <stdio.h>#define N 6void transpose(int a[][N],int n);void main( ){ int n,i,j;int a[N][N];printf("Input n(n<=6):");scanf("%d",&n);printf("Input the array:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);printf("Display the array:\n");for(i=0;i<n;i++){ for(j=0;j<n;j++)printf("%-4d",a[i][j]);printf("\n");}transpose(a,n);printf("Display the transposed array:\n");for(i=0;i<n;i++){ for(j=0;j<n;j++)printf("%-4d",a[i][j]);printf("\n");}}void transpose(int a[][N],int n){int i,j,t;for(i=0;i<n;i++)for(j=0;j<i;j++){ t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}2.学生信息编写4个函数实现下列功能:(1)函数input() 输入20个学生姓名和高考总分;(2)函数sort() 按高考总分从高到低的顺序排序,姓名顺序也随之调整;(3)函数display()显示学生姓名及其高考总分;(4)在主函数中输入一个姓名,编写函数search() 用顺序查找方法找出该学生。

上机考试题参考答案

上机考试题参考答案

上机考试题参考答案1、编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。

例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。

试题程序:#define N 10fun(char *s){ int i=0,t,n=strlen(s);for(;s+i<s+n-1-i;i++){t=*(s+i);*(s+i)=*(s+n-1-i);*(s+n-1-i)=t;}}main(){ char a[N];clrscr();printf("Enter a string:"); gets(a);printf("The original string is:");puts(a);fun(a);printf("\n");printf("The string after modified:");puts(a);}2、写程序,实现矩阵(3行3列)的转置(即行列互换)。

int fun(int array[3][3]){ int i,j,t;for(i=0;i<2;i++)for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){ int i,j;clrscr();for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}fun(array);printf("Converted array:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}}3、请编一个函数fun(int *a,int n,int *odd,int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。

第4次上机答案

C++第四次上机答案1. 1)建立一个教师类Teacher,其包含3个私有数据成员:num(工号)、name(姓名)、sex(性别),包含2个公有成员函数:带参构造函数(用于对三个数据成员进行初始化),display 函数(输出数据成员)。

2)建立一个生日类BirthDate,其包含3个私有数据成员:year(年)、month(月)、day(日),包含3个公有成员函数:带参构造函数(用于对三个数据成员进行初始化),display函数(输出数据成员),change函数(修改生日数据,即将3个数据成员的值改为change函数参数指定的值)。

3)建立一个教授类Professor,它是Teacher类的公有派生类,在Teacher类的基础上增加了私有数据生日信息birthday(birthday是BirthDate类的对象),其新增成员函数包含:带参构造函数(对新增的和继承的数据成员初始化),display函数(输出所有数据成员),changebirth函数(将修改生日信息修改为函数参数指定日期)。

4)main函数中的操作步骤如下:●定义Professor类的对象prof1●输出对象prof1的所有数据信息●修改prof1的生日信息●输出对象prof1的所有数据信息#include <iostream>#include <string>using namespace std;class Teacher{public:Teacher(int, string, char);void display(); //输出数据private:int num; //工号string name; //姓名char sex; //性别};Teacher::Teacher(int n, string na, char s): num(n), name(na), sex(s){ }void Teacher::display() //输出数据{cout<<"num:"<<num<<endl;cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl;}class BirthDate{public:BirthDate(int, int, int);void display(); //输出年、月、日数据void change(int, int, int); //修改年、月、日数据private:int year; //年int month; //月int day; //日};BirthDate::BirthDate(int y, int m, int d): year(y), month(m), day(d){ }void BirthDate::display() //输出年、月、日数据{cout<<"birthday:"<<year<<'/'<<month<<'/'<<day<<endl;}void BirthDate::change(int y, int m, int d) //修改年、月、日数据{year = y;month = m;day = d;}class Professor:public Teacher{public:Professor(int, string, char, int, int, int);void display(); //输出数据void changebirth(int, int, int); //修改生日信息private:BirthDate birthday; //子对象};Professor::Professor(int n,string na,char s,int y,int m,int d): Teacher(n,na,s), birthday(y,m,d) {}void Professor::display() //输出数据{Teacher::display(); //父子同名函数birthday.display(); //输出生日信息}void Professor::changebirth(int y,int m,int d) //修改生日信息{birthday.change(y,m,d);}void main(){Professor prof1(1001,"Wangli",'f',1973,5,10);prof1.display(); //调用派生类自己的displaycout<<endl<<endl;prof1.changebirth(1975,10,12); //修改生日信息prof1.display(); //调用派生类自己的display}2. 写一个程序,定义抽象基类Shape,由它派生出3个派生类:Circle(圆形类,含一个数据成员:半径)、Rectangle(矩形类,含两个数据成员:长、宽)、Triangle(三角形类,含三个数据成员:三条边),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。

c语言程序设计上机答案

c语言程序设计上机答案C语言程序设计是一门实践性很强的课程,上机练习是掌握C语言编程技能的重要环节。

以下是一些常见的C语言上机练习题目及其参考答案,供学习者参考。

1. 打印“Hello, World!”```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 计算两个数的和```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("%d + %d = %d\n", a, b, sum);return 0;}```3. 判断一个数是否为素数```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。

\n", num);} else {printf("%d 不是素数。

\n", num); }return 0;}```4. 计算圆的面积```c#include <stdio.h>#include <math.h>double calculateArea(double radius) {return M_PI * radius * radius;}int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = calculateArea(radius);printf("半径为 %f 的圆的面积是:%f\n", radius, area); return 0;}```5. 字符串反转```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; ++i) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```6. 计算阶乘```c#include <stdio.h>unsigned long long factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个非负整数:");scanf("%d", &num);printf("%d 的阶乘是:%llu\n", num, factorial(num)); return 0;}```7. 排序算法(冒泡排序)```c#include <stdio.h>void bubbleSort(int arr[], int n) {for (int i = 0; i < n - 1; ++i) {for (int j = 0; j < n - i - 1; ++j) { if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, n);printf("排序后的数组是:\n");for (int i = 0; i < n; ++i) {printf("%d ", arr[i]);}printf("\n");return 0;}```8. 寻找最大值```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; ++i) {if (arr[i] > max) { max = arr[i]; }}return max;。

计算机四级的上机试题带答案

计算机四级的上机试题带答案计算机四级的上机试题带答案2023年计算机考试时间已经公布了,全国计算机等级考试时间是9月26-29日,期望以下的计算机四级上机试题对大家的复习有帮忙!1、在各种XDSL技术中,能供应上下行信道非对称传输的是________。

A.ADSL和HDSLB.ADSL和VDSLC.SDSL和VDSLD.SDSL和HDSL:B要点解析:数字用户线(XDSL)是各类DSL的总称,包括:①非对称数字用户线(ADSL);②速率自适应数字用户线(RADSL);③高比特率数字用户线(HDSL);④超高比特率数字用户线(VDSL);⑤对称数字用户线(SDSL,或称为单线数据用户线);⑥消费者数字用户线(CDSL);⑦基于ISDN的数字用户线(IDSL)等。

其中,HDSL、SDSL、IDSL属于对称XDSL型技术,ADSL、VDSL、RADSL、CDSL属于非对称型XDSL技术。

ADSL和VDSL使用最广。

2、采纳ADSL虚拟拨号接入方式时,用户端需要安装________软件。

A.PPPB.PPPOEC.PPTPD.L2TP:B要点解析:数字用户线(XDSL)使用PPPOE协议与Internet通信。

PPPOE是在标准PPP报文之前添加以太网的报头,使得PPPOE能通过简洁接入设备连接远端接入设备,并可以利用以太网的共享性连接多台用户主机。

因此,采纳ADSL虚拟拨号接入方式中,用户端需要安装PPPOE软件。

3、__________指可以不经著作权人许可,无需支付酬劳,使用其作品。

A.合理使用B.许可使用C.强制许可使用D.法定许可使用:A要点解析:依据《著作权法》第22条等法规条文,版权在肯定范围内“可以不经许可的合理使用”。

合理使用是指使用人既不必征求著作权人的意见,也不必向其支付酬劳,在肯定的范围内(《著作权法》第22条列举了l2种状况,例如为个人学习、讨论或观赏而使用他人作品;为介绍、评论某一作品或为说明某一问题而适当引用他人作品等)可以使用他人已经发表的作品,但应当指明姓名、作品名称,并且不得侵害著作权人依照本法享有的其他权利。

《计算机应用基础》作业四(含答案)

《计算机应用基础》作业四(含答案)计算机应用基础作业四(含答案)作业四答案如下:一、选择题1. B2. A3. D4. C5. B6. A7. D8. C9. A 10. B二、判断题1. 正确2. 错误3. 错误4. 正确5. 正确三、填空题1. 哈希表2. 二维数组3. 逻辑4. 多态5. 寄存器四、简答题1. 请简要描述什么是数据结构。

数据结构是一种组织和存储数据的方式,它能够有效地管理数据并提供高效的访问方式。

常见的数据结构包括数组、链表、栈、队列等。

2. 请简述线性表和链表的区别。

线性表是数据元素按照线性关系组织起来的数据结构,包括顺序表和链表两种形式。

其中,顺序表的元素在内存中是连续存储的,而链表的元素则是通过指针相互连接在一起的。

3. 简要介绍一下栈和队列的特点和应用场景。

栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。

它常用于实现递归算法、表达式求值、内存分配等场景。

队列是一种先进先出(FIFO)的数据结构,只能在队尾进行插入操作,在队头进行删除操作。

它常用于实现广度优先搜索算法、任务调度等场景。

4. 什么是多态?多态是面向对象编程中的一个重要特性,指的是同一个类的不同对象对同一个消息作出不同的响应。

它能够提高代码的灵活性和可扩展性,并简化代码的实现。

五、编程题```python# 题目:请编写一个Python程序,统计给定列表中每个元素的出现次数并按照次数由大到小进行排序。

def count_elements(lst):count_dict = {}for item in lst:if item in count_dict:count_dict[item] += 1else:count_dict[item] = 1sorted_count = sorted(count_dict.items(), key=lambda x: x[1],reverse=True)return sorted_count# 测试lst = [1, 2, 3, 4, 1, 2, 3, 1, 2, 1]result = count_elements(lst)for item in result:print(f"{item[0]}: {item[1]}")```六、总结本次作业主要涉及计算机应用基础的知识点,包括选择题、判断题、填空题和简答题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编写一个乐器Instrument类:
分为:钢琴(Piano)、小提琴(Violin)
各种乐器的弹奏(Play )方法各不相同。

编写一个乐手类BandsMan :
编写方法TestPlay,对各种乐器进行弹奏测试。

编写一个测试类InstrumentTest,要求:
要依据乐器的不同,进行相应的弹奏。

实战——电脑销售系统
系统需求(一):
电脑类的属性包括:
型号Style(String类型)
厂商Company(string类型)
价格Price(float类型)
内存容量Memory(int类型)
出厂日期OutDate(DateTime类型)
以上属性均为公共属性。

系统需求(二):
电脑类定义构造函数给私有变量赋值。

如果价格小于0,则设置为4000;
如果内存容量小于0,则设置为128。

定义方法void ShowInfo()。

系统需求(三):
有两种类型的电脑:笔记本和台式机,以后业务扩展后可能会销售其他类型的电脑如服务器等,但目前没有。

笔记本电脑定义属性-电池容量Battery(int类型);而台式机定义属性-机箱类型BoxType(立式、卧式)
系统需求(四):
在调用笔记本和台式机的构造函数时调用电脑的构造函数给给私有变量赋值,再给各自的特有属性赋值。

系统需求(五):
设计并且实现类,对类之间的关系进行合理的组织,要求统一调用ShowInfo()方法来显示自身的信息,显示结果如下:
88723。

相关文档
最新文档