第10周 程序设计上机题 II hk
- 格式:doc
- 大小:42.00 KB
- 文档页数:5
第九、十周上机作业设计一个通用链表类模板,可支持在链头插入元素、在链尾插入元素、查找链表中第一个关键字节点(链表中可能有多个相同值的节点,找到其中第一个出现的节点)、删除链表中第一个关键字节点、输出链表元素值。
【链表类模板封装要求】:数据成员提供头指针head和尾指针tail,缺省构造的空链表特征为head==0&&tail==0以下提供2个测试方案,可自选1个完成程序设计:方案1:int main(){List<int> l1, l2; //创建2个空的整型链表int c;Node<T> * head1,head2;for(int i=0;i<8;i++){cin>>c;head1=l1.insertFront(c); //插在链头,倒向生成链表,头指针head1head2=l2.insertRear(c); //插在链尾,正向生成链表,头指针head2 }l1.print(); cout<<endl;l2.print(); cout<<endl;int key; //待查找关键字cin>>key;Node<int> *keyNode, *p;keyNode=new Node<int> (key); //构造关键字节点p=l2.search(keyNode);if(p) l2.deleteNode(p); //删除链表中第一次出现的关键字节点else cout<<”no such keyword”<<endl;l2.print();}方案2int main(){List<Complex> l1, l2; //创建2个空的复数链表double re, im;Node<T> * head1,head2;for(int i=0;i<8;i++){cin>>re>>im; //读入一组数据(实部虚部)Complex c(re,im); //构造复数对象head1=l1.insertFront(c); //插在链头,倒向生成链表,头指针head1head2=l2.insertRear(c); //插在链头,正向生成链表,头指针head2 }l1.print(); cout<<endl;l2.print(); cout<<endl;cin>>re>>im; //实部虚部Complex key(re,im) //构造待查找复数Node<Complex> *keyNode, *p;keyNode=new Node< Complex > (key); //构造关键字节点p=l2.search(keyNode);if(p) l2.deleteNode(p); //删除链表中第一次出现的关键字节点else cout<<”no such keyword”<<endl;l2.print();}【方案2提示】1、复数类成员函数自行确定,定义基本构架完成本程序即可;2、考虑到节点数据的比较、赋值,故应在Complex类中重载==、!=及=运算符。
本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。
(2)考核内容:C++面向过程部分,主要是算法设计与实现。
考题来自本学期布置的作业、部分例题及一些补充的题目。
(3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个班的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。
源程序文件明必须是“学号姓名.cpp”,女IT2012211532刘天.cpp”。
(4)考试要求:机试吋考试规则同课堂考试一致,不允许带书、纸张等。
不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U 盘、磁盘或计算器),不能携带任何类型的通讯工具,包括无线电接收器、移动电话。
(5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。
(6)其它有关事项由主考教师和监考人员负责处理。
附:考试题集1.利用异或运算对输入的文本进行加密解密输出,用户输入一个文本(字符串,设不超过20个字符),然后输入作为密钥的字符,程序输入加密及解密的字符串。
2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。
(提示:对2 月耍考虑是否闰年,闰年年份耍么能被4整除H不能被100整除,要么能被400整除, 除次Z外都不是闰年)。
3.某大桥按不同型号征收车辆过桥费:自行车免费,摩托车2元,小汽车5元,大客车与货车8元,货柜车12元。
编写一个程序,按车辆的不同型号计算通过该大桥应征的过桥费。
(提示:可以用整数对不同型号的车辆进行编码)4.输入一位同学的考试成绩,若是90〜100分,输出“Excellent”,80〜89输出“Very good”,70〜79输出“Good”, 60〜69输出“Pass”,60分以下输出“No Pass”。
5.旅行社的订票量小于10张时,航空公司给予10%的折扣;订票量大于或等于10张且小于20张时,航空公司给予15%的折扣;订票量大于或等于20张口小于30张时,航空公司给子30%的折扣「订票量大于或等于30张时,航空公司给予最高的45%的折扣。
C++面向对象程序设计习题解答与上机指导(第2版)习题参考答案源代码使用源程序的几点注意事项(1) 由于源程序在复制、编辑、解压缩等过程中可能引起部分符号(主要是标点符号,如分号、冒号、逗号、引号)的字体、半全角等发生变化,在编译时可能被检出语法错误,只要使用“替换”功能,纠正后即能顺利运行。
(2) 有的C++系统(如Visual C++6.0)没有完全实现C++标准,它所提供的不带后缀的.h 的头文件不支持友元运算符重载函数,在Visual C++6.0中编译会出错,这时可采用带后缀的.h头文件。
将程序中的#include<iostream>using namespace std;修改成#include<iostream.h>即可顺利运行。
第2章 C++基础【2.2】下面是一个C程序,改写它,使它采用C++风格的I/O语句。
#include<stdio.h>int main(){ int a,b,d,min;printf("Enter two numbers:");scanf("%d%d",&a,&b);min=a>b? b:a;for (d=2; d<min; d++)if (((a%d)==0)&&((b%d)==0)) break;if (d==min){ printf("No common denominators\n");return 0;}printf("The lowest common denominator is %d\n",d);return 0;}【解】#include<iostream>using namespace std;int main(){ int a,b,d,min;cout<<"Enter two numbers:";cin>>a;cin>>b;min=a>b? b:a;for (d=2; d<min; d++)if (((a%d)==0)&&((b%d)==0)) break;if (d==min){ cout<<"No common denominators\n";return 0;}cout<<"The lowest common denominator is "<<endl<<d;return 0;}【2.24】写出下列程序的运行结果。
第3章程序控制结构1.1 选择结构部分一、选择题二、填空题1.OK!NO!ERROR!2.x=1 y=0x=23.ch>=’A’&& c<=’Z’ ch=ch-324.-15.x=66.(1)2(2)3CCa=2,b=2,c=4 7.(1)a<b||a<c(2)a>c&&b>c(3)a<c||b<c(4)a%28.32339.0 1三、程序设计题1.#include <stdio.h>#define pi 3.14159main( ){int k;float r,c,a;printf(“input r,k\n”);scanf(“%f%d”,&r,&k);switch(k){case 1: a=pi*r*r; printf(“area=%f\n”,a);break;case 2: c=2*pi*r;printf(“circle=%f\n”,c);break;cese 3: a=pi*r*r;c=2*pi*r;printf(“area=%f circle=%f\n”,a,c);break;}}2.main( ){int year,leap;scanf(“%d”,&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;else leap=0;}else leap=1;}else leap=0;if(leap)printf(“%d is ”,year);else printf(“%d is not ”,year);printf(“ a leap year\n”);}3.#include <math.h>main(){float x,y;scanf(“%f”,&x);if(x<0) y=x*x;else if(x>=0&&x<10) y=-0.5*x+10;else y=x-sqrt(x);printf(“y=%f”,y);}1.2 循环结构部分二、填空题1.(1)先判断条件是否成立(为真),若成立(为真)再执行循环语句(2)先执行循环语句,再判断条件是否成立(为真),若成立则继续执行循环,若不成立,则结束循环。
C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
实验报告实验日期_____________________实验名称:实验一常用标准控件一【实验目的与要求】1.掌握Visual Basic的启动与退出。
2.熟悉Visual Basic的集成开发环境。
3.掌握在窗体中放置控件的方法。
4.掌握在“属性窗口”中设置控件属性的方法。
5.掌握在“代码编辑器”窗口中输入程序代码的方法。
6.掌握工具栏上启动按钮、结束按钮的使用方法。
7.掌握标签、文本框、命令按钮、列表框等控件的使用方法。
【实验内容与步骤】实验1.1.1 标签的使用(一)1.题目与要求:在名称为Form1、标题为“标签”的窗体上画一个名称为Label1的标签,并设置适当属性以满足以下要求:1)标签的内容为“计算机等级考试”;2)标签可根据显示内容自动调整其大小;3)标签带有边框,且标签内容显示为三号字。
2.实验步骤1)界面设置:在名称为Form1的窗体上放置一个标签控件Label1;2)属性设置(请将表格补充完整)表1.1.1 对象属性对象属性名称属性值Form1 Caption 标签Label1 Caption 计算机等级考试AutoSize TrueFont 三号BorderStyle 13)保存文件:存盘时必须存放在C:\VB\Sy01文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。
实验1.1.2 标签的使用(二)1.在名称为Form1的窗体上画一个名称为 Label1的标签,标签的宽和高分别为2000、300,有边框,并利用属性窗口设置适当的属性,使其居中显示“等级考试”,并使标签的外观如图所示。
实验报告2.属性设置(请将表格补充完整)表1.1.2 对象属性对象属性名称属性值Label1 Width 2000 Height 300 BorderStyle 1 Alignment 2 Caption 等级考试3.存盘时必须存放在C:\VB\Sy01文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。
C++面向对象程序设计习题解答与上机指导(第2版)习题参考答案源代码使用源程序的几点注意事项(1) 由于源程序在复制、编辑、解压缩等过程中可能引起部分符号(主要是标点符号,如分号、冒号、逗号、引号)的字体、半全角等发生变化,在编译时可能被检出语法错误,只要使用“替换”功能,纠正后即能顺利运行。
(2) 有的C++系统(如Visual C++6.0)没有完全实现C++标准,它所提供的不带后缀的.h的头文件不支持友元运算符重载函数,在Visual C++6.0中编译会出错,这时可采用带后缀的.h头文件。
将程序中的#include<iostream>using namespace std。
修改成#include<iostream.h>即可顺利运行。
第2章 C++基础【2.2】下面是一个C程序,改写它,使它采用C++风格的I/O语句。
#include<stdio.h>int main(){ int a,b,d,min。
printf("Enter two numbers:")。
scanf("%d%d",&a,&b)。
min=a>b? b:a。
for (d=2。
d<min。
d++)if (((a%d)==0)&&((b%d)==0)) break。
if (d==min){ printf("No common denominators\n")。
return 0。
}printf("The lowest common denominator is %d\n",d)。
return 0。
}【解】#include<iostream>using namespace std。
int main(){ int a,b,d,min。
cout<<"Enter two numbers:"。
Web程序设计上机考试题(A)Web程序设计上机考试题(A)Web程序设计上机考试题(A卷)上机考试需知1.考试不允许互相交流、夹带、查看任何资料等、不允许使用手机,否则考试以0分处理,并根据情节上报处理。
2.在C盘根目录下建立一个自己学号的文件夹,所有试题均做在该文件夹之内,否则不予成绩。
3.将Student数据库拷入自已学号的文件夹之中4.按试题顺序建立相应的文件名,如第一题的文件名就取15.完成后不要关电脑。
试题:C#基础:1.显示100以内所有奇数每5个数换行。
(6分)2.显示81、72、63、...99个数,并求出其总和(6分)3.显示3、5、7、9阶乘结果(6分)4.显示显示10以内的加法口诀表(8分)注:以上题目必须使用循环语句完成,否则不予分数。
WebForm:1.使用一标签与一按钮控件,标签中的文字为“07网络”,点击按钮文字改为“07安全”,再次点击恢复原来文字。
(8分)2.做二输入窗口与一确定按钮,第一个输入窗口前使用标签控件注明“输入口令”,第二个输入窗口前使用标签控件注明“重复输入口令”;口令必须输入4个以上小写英文字母,第二次口令输入必须与第一次相同,否则提示出错。
(8分)3.设上海市内有黄浦区,徐汇区、虹口区;江苏省内有南京市、无锡市、苏州市;做二个下拉菜单,当选定第一个菜单的内容时,第二个菜单自动显示相应内容。
(8分)4.设置二个输入窗口,与有4个+、-、x、/选项的RadioButtonList按钮及一个“确定”按钮,须输入整数,选择相应的运算,点击确定按钮,产生相应的结果(10分)Web数据库操作:5.使用DataGrid控件连接数据库,显示student表的全部学生的name、sex与Entrancescore字段记录,列名需改为姓名、性别与成绩。
(10分)6.做一个输入窗口(不能输入为空),与一个确定按钮,要求输入学生姓名,按确定按钮后,如有该学生则显示该学生的性别与入学成绩;否则提示无此学生。
C++程序设计上机考试题库江西财经大学10-11第一学期期末考试上机考试100题一、第一类题目(20道,每题7分,在word中保留代码并将输出结果窗口保留)1.定义盒子Box类,要求具有以下成员:长、宽、高分别为x,y,z,可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
2.有两个长方柱,其长、宽、高分别为:(1)30,20,10;(2)12,10,20。
分别求他们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
3.有两个长方柱,其长、宽、高分别为:(1)12,20,25;(2)10,30,20。
分别求他们的体积。
编一个基于对象的程序,且定义两个构造函数,其中一个有参数,一个无参数。
4.声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。
5.建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。
初值自拟。
6.建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
初值自拟。
7.用new建立一个动态一维数组,并初始化int[10]={1,2,3,4,5,6,7,8,9,10},用指针输出,最后销毁数组所占空间。
8.定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。
将运算符函数重载为非成员、非友元的普通函数。
编写程序,求两个复数之和。
初值自拟。
9.定义一个复数类Complex,重载运算符“+”,“—”,使之能用于复数的加,减运算,运算符重载函数作为Complex类的成员函数。
编程序,分别求出两个复数之和,差。
初值自拟。
10.定义一个复数类Complex,重载运算符“*”,“/”,使之能用于复数的乘,除。
运算符重载函数作为Complex类的成员函数。
编程序,分别求出两个复数之积和商。
初值自拟。
提示:两复数相乘的计算公式为:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i。
第⼗周上机练习1、请按照以下要求设计⼀个学⽣类Student,并进⾏测试。
要求如下:1)Student类中包含姓名、成绩两个属性2)分别给这两个属性定义两个⽅法,⼀个⽅法⽤于设置值,另⼀个⽅法⽤于获取值.3)Student类中定义⼀个⽆参的构造⽅法和⼀个接收两个参数的构造⽅法,两个参数分别为姓名和成绩属性赋值4)在测试类中创建两个Student对象,⼀个使⽤⽆参的构造⽅法,然后调⽤⽅法给姓名和成绩赋值,⼀个使⽤有参的构造⽅法,在构造⽅法中给姓名和成绩赋值class text{public static void main(String[] args) {Student s1=new Student();s1.setName("赵");s1.setGrade(60);Student s2=new Student("崔",100);}}public class Student {private String name;private int grade;public Student() {}public Student(String name, int grade) { = name;this.grade = grade;}public String getName() {return name;}public void setName(String name) { = name;}public int getGrade() {return grade;}public void setGrade(int grade) {this.grade = grade;}}2、请编写⼀个程序,该程序由两个类组成,⼀个Person类,⼀个Test类。
在Person类中定义⼀个⽆参构造⽅法,⾥⾯输出⼀句话:”⽆参的构造⽅法被调⽤了...”。
并在测试类中进⾏测试。
package TEXT;public class Person {public Person() {System.out.println("⽆参的构造⽅法被调⽤了...");}}package TEXT;public class test {public static void main(String[] args) {Person p1 = new Person();}}3. 使⽤java类描述⼀个车类,车都具备名字、颜⾊两个属性,还具备跑的功能。
C++第十周自测卷一、选择题1. 下面合法的变量名是 D 。
①1a ②Int③int ④_int ⑤sinxA. ①②③B. ②③④C. ①③⑤D. ②④⑤2. 设有一个变量x,其值的表示范围是2.5≤x≤7.5,则C++正确的表达式是 b 。
A.2.5<=x<=7.5 B.x>=2.5&&x<=7.5C.x>=2.5&x<=7.5 D.x>=2.5||x<=7.53. 在VC++的数据类型中,占用4个字节的是___a________。
A. float和intB. float和doubleC. long和charD. char和double4. 设有说明“int x=5,y=4,z;float f;”,执行表达式“z=f=x/y;”后,z和f 的值分别为_____d______。
A. 1.25和1B. 1和1C.1和1.25D.1.25和1.255. 设有语句int x=5,y=10;,则下面语句cout<<(x,y)<<endl; 的输出结果是_____d______。
A. 5,10B.5C. 10D.表达式不正确6. 有语句int a=20,b;,则执行下列语句后b的值是_____b___。
b=’\20’+’a’;A.40 B.36 C.113 D.1177. a是一个整型变量,则执行下列输出语句后a的值是b 。
cout<<(a=3+6,a+5);A.9 B.14 C.不确定D.非法语句8. 有以下程序段:int k=0;if(k=0)k++;执行语句后k的值是_b______。
A.有语法错,不能执行B.1C.0D.不确定9. 表示程序流程控制的基本结构是___c_____ 。
A、函数、语句、表达式B、主函数、子函数、变量C、顺序、选择、循环D、选择、循环、递归第 1 页共9 页10. 设有宏定义“#define f(x) x*2”,执行语句“cout<<f(-2+3);”,则输出是 b 。
第10周程序设计上机题II
7、运行下列程序譬如噢乖prog7.prg后,屏幕显示的数据为。
CLEAR
STORE “qcw” TO c
cc=SPACE(0)
DO WHILE LEN(c)>0
cc=CHR(ASC(LEFT(c,1))+2)+cc
c=SUBS(c,2)
ENDDO
?cc
答案:
8、下列程序prog8.prg(由17行程序语句组成)的功能是找出101~10000之间所有符合下列条件的数:该数等于其各位数字的阶乘之和。
但程序运行时提示程序的第4行有错,第4行语句应修改为。
如数145=1!+4!+5!
For i=101 to 100000
P=0
C=allt(str(i))
For j=1 to I && i是几位数j就循环几次,j的循环次数是i的位数
P=p+jc(val(substr(c,j,1)))
Endfor
If i=p
?i
Endif
Endfor
Function jc &&该函数的功能是求X的阶乘
PARAMETER x
S=1
For n=1 to x
S=s*n
Endfor
Return s
endfunc
答案:
9、完善下列程序prog9.prg,其功能是统计一个文本文件(内容为英文文章)中各个英文字母(不区分大小写)出现的次数。
提示upper() 将所有字母都换成大写字母。
CLEAR
Cfile=getfile(”txt”,”文件名”)
cc= (filetomem(cfile)) &&文本文件内容,全部变为大写字母
Dimension abc(26) &&定义一个有26个元素的一维数组
abc=0
Do while len(cc)>0
C=left(cc,1)
Cc=substr(cc,2)
If !(c>=’A’ and c<=’Z’) && 如果变量c的值不是字母,返回下一个循环。
Endif
I=asc(c)-asc(’A’)+1
abc(i)=
Enddo
For i=1 to 26
?chr(asc(’A’)-1+i)+’的个数为’,abc(i)
Endfor
Function filetomem &&该函数的功能是将文件内容读到内存变量中
PARAMETER cfilename
Fhandle=fopen(cfilename)
Ctext=space(0)
If fhandle>0
Nsize=fseek(fhandle,0,2)
=fseek(fhandle,0)
Ctext=fread(fhandle,nsize)
=fclose(fhandle)
Endif
Return ctext
Endfunc
答案:
提示: abc(i)=abc(i)+1按字母统计个数,放于abc数组的各个对应元素之中
10、下列程序prog10.prg的功能是求0—100之间的偶数之和,请将它完善。
【程序清单】
STORE 0 TO N
S= 0
DO WHILE .T.
IF N>100
______________
ELSE
S=S+N
ENDIF
N=N+2
ENDDO
? N
程序运行完成后,N的值为。
答案:
解析:DO WHILE .T.
……
ENDDO
上述是永“真”循环,n=? 时,必须用EXIT退出循环。
11.本题程序prog11.prg 求以下正项级数的近似值:
Sn=1/(1*2*3) +1/(2*3*4) +1/(3*4*5) +……+1/(n*(n+1)*(n+2)) +……
计算结果精度小于0.0000001,请完善以下程序:
[程序清单]
Clear
I=0
Sn1=0
Do while .T.
I=i+1
Sn1=Sn1+1/(i*(i+1)*(i+2))
If_______________ <0.0000001
_______________
Endif
Enddo
?sn1
答案
12.下列程序prog12.prg用来计算数列2/1,3/2,5/3,8/4……,155/18,173/19,192/20,……的前20项之和。
阅读程序并完善,使它能实现要求的功能。
【程序清单】
CLEAR
m=2
s=0
FOR i=1 TO 20
?m,i
s=s+m/i
m= ______________-
ENDFOR
?
?s
答案:m+i
13.执行下列prog13.prg程序后,输出到屏幕的结果为________。
【程序清单】
CLEAR
cstring="VisualFoxPro"
nresult=0
m=LEN(cstring)
FOR n=1 to m
c=SUBSTR(cstring,n,1)
IF !BETWEEN(ASC(c),ASC("A"),ASC("Z"))
LOOP
ENDIF
nresult=nresult+1
ENDFOR
?nresult
答案:
14执行下列PROG14.PRG程序后,输出到屏幕的结果为________。
【程序清单】
CLEAR
STORE 5TO ml,m2
STORE 1TO m3,m4
DO PA WITH ml,m2,m3,m4 &&调用自定义过程PA
?m4
PROCEDURE PA &&自定义过程PA
PARAMETER a,b,c,d
d=b^2-4*a*c
DO CASE
CASE d<0
d=100
CASE d=0
d=200
CASE d>0
d=300
ENDCASE
ENDPROC
答案:
15.一只球从100米的高度自由落下,每次落地后反弹回原高度的一半。
下列PROG15.PRG 程序的功能是:计算并显示当它在第10次落地时,总共经过的距离和第10次反弹的高度。
【程序清单】
CLEAR
S=100
h=50
FoR i=1 TO 9
?s,h
s=s+h*2
h=__________
ENDFOR
?
?"球在第10次落地时,共经过了:"+ALLT(STR(s,10,2))+"米"
?"球第1O次反弹的高度是:"+ALLT(STR(h,10,2))+"米"
答案:
16、下列自定义函数abk的功能是计算一个整数的各位数字之和:如数145,1+4+5=10
FUNCTION abk
Parameter x
s=0
DO WHILE x>0
s=s+MOD(x,10)
________________
ENDDO
RETURN s
ENDFUNC
答案:。