主函数中输入10个等长的字符串-用另一函数对它们排序-然后在主函数输出这10个已排序的字符串。
- 格式:docx
- 大小:15.71 KB
- 文档页数:1
—06.30北京理工大学M O O C C语言程序设计(下)网上作业答案第一周编程作业1、求最大公约数和最小公倍数(15分)题目内容:编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别求 a 和 b 的最大公约数和最小公倍数,在主函数中输出结果。
输入格式:两个正整数输出格式:最大公约数和最小公倍数输入样例:12,40[回车]输出样例:最大公约数:4[回车]最小公倍数:120[回车]时间限制:500ms内存限制:32000kbCode:#include <stdio.h>int fun1(int m,int n){int r;r=m%n;return r==0?n:fun1(n,r);}int fun2(int m,int n){int t;t=m*n/fun1(m,n);return t;}int main(){ int t,m,n;scanf("%d,%d",&m,&n);if(m<n){t=m;m=n;n=t;}printf("最大公约数:%d\n",fun1(m,n));printf("最小公倍数:%d\n",fun2(m,n));return 0;}2、排序并插入(15分)题目内容:编写程序,在主函数中定义一个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出。
输入格式:9个整数和1个整数输出格式:10个整数输入样例:2,3,1,5,6,76,89,31,90[回车]7[回车]输出样例:1,2,3,5,6,7,31,76,89,90[回车]时间限制:500ms内存限制:32000kb Code:#include <stdio.h>int main(){int t,j,i,n[10];for(i=0; i<9; i++){scanf("%d", &n[i]);if(i<8) scanf(",");}scanf("%d",&n[9]) ;for(i=0;i<9;i++){for(j=0;j<= 8-i;j++){if(n[j] > n[j+1]){t = n[j];n[j] = n[j+1];n[j+1] = t;}}}for(i=0;i<10;i++){printf("%d",n[i]);if(i<9) printf(",");}return 0;}第二周编程作业1、最大公约数(15分)题目内容:输入两个整数m,n,用递归算法实现计算两个数的最大公约数。
★★★★★编写一个函数,功能是使输入的字符串逆序输出。
输入输入一串字符串,注意字符串中不要有空格。
输出输出该字符串的逆序。
样例输入ABCDEFG样例输出GFEDCBA提示#include<iostream>#include<cstring>using namespace std;int fuction(char *str, int len){int i;for(i=len-1;i>=0;i--)cout<<str[i];return 0;}int main(){char str[100];cin>>str;int len;len=strlen(str);int fuction(char *, int);fuction(str,len);return 0;}★★★★★用指针编写一个程序,输入字符串后,统计其中各种字符的个数,输出其中大小写字母,数字,以及其他字符的个数。
主函数已经给出,请编写统计字符种类函数。
输入一串字符串输出该字符串中大小写字母,数字,以及其他字符的个数,最后输出总字符串长度。
样例输入I play LOL for 3 years.样例输出4121623#include <stdio.h>#include<iostream>using namespace std;void fuction(char *ptr){int a=0,b=0,c=0,d=0,t=0;for(;*ptr!='\0';ptr++){if(*ptr>='a'&&*ptr<='z')a++;else if(*ptr>='A'&&*ptr<='Z')b++;else if(*ptr>='0'&&*ptr<='9')c++;else d++;}t=a+b+c+d;cout<<b<<endl;cout<<a<<endl;cout<<c<<endl;cout<<d<<endl;cout<<t<<endl;}int main(){char str[100];gets(str);char *ptr=str;void fuction(char *);fuction(ptr);return 0;}★★★★★指针的功能多种多样,指针是c语言的灵魂,所以说掌握指针是很重要的。
题44:编程输入10个正整数,然后自动按从大到小的顺序输出。
题44:编程输入10个正整数,然后自动按从大到小的顺序输出。
Input输入只有一行,包括10整数.Output输出只有一行,包括10个整数。
Sample Input1 2 3 4 5 7 6 8 9 10Sample Output10 9 8 7 6 5 4 3 2 1提示:数组与排序,注意输出最后一个空格要考虑。
处理方法最后一个单独输出。
program ex_44;var a:array[1..10] of integer;i,j,t:integer;beginfor i:=1 to 10 do read(a[i]);for i:=1 to 9 dofor j:=i+1 to 10 doif a[i]<a[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t; end;for i:=1 to 9 do write(a[i],' ');write(a[10]);end.题46:统计字母出现次数输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出)。
Input输入只有一行,包括若干个字符。
Output输出只有两行,第一行为出现的小写字母,第二行为字母的出现次数。
Sample Inputabdceeef.Sample Outputabcdef111131提示:注意利用字符做下标,可以让程序简单。
program ex_45;var a:array['a'..'z'] of integer;i,ch:char;beginread(ch);for i:='a' to 'z' do a[i]:=0;while ch<>'.' dobegina[ch]:=a[ch]+1;read(ch);end;for i:='a' to 'z' doif a[i]<>0 then write(i);writeln;for i:='a' to 'z' doif a[i]<>0 then write(a[i]);end.题48:求序列中所有递增或递减子序列的个数并输出子序列题48:求序列中所有递增或递减子序列的个数并输出子序列。
C语⾔必考100题解析1.按下述格式,从键盘输⼊⼀个整数加法表达式:操作数1+操作数2,然后计算并输出表达式的计算结果,形式如下:操作数1+操作数2=计算结果。
2.输⼊两个整形数并打印,如果⽤户不慎输⼊了⾮法字符,那么程序提⽰“输⼊数据类型错误”。
3.已知三⾓形的三边长a,b,c,要求编写程序,从键盘输⼊a,b,c的值,计算并输出三⾓形的⾯积(注意不存在的情况)。
4.编程从键盘输⼊圆的半径r,计算并输出圆的周长和⾯积。
5.任意从键盘输⼊⼀个三位整数,要求正确分离它的个位,⼗位和百位数,并分别在屏幕上输出。
6.写⼀个函数实现统计⼀个输⼊的整形数的位数。
7.编程计算⽅程ax*x+bx+c=0的根,a,b,c由键盘输⼊,只是⽤主函数来实现。
8.编写三个函数,分别在b*b-4*a*c⼤于0、⼩于0、等于0时进⾏调⽤,并输出结果,在主函数中读⼊a、b、c的值。
9.从键盘输⼊你和你朋友的年龄,变成判断谁的年龄⼤,并打印最⼤者的年龄。
10.从键盘输⼊⼀个年份,判断该年是否是闰年,并输出结果。
11.判断某⼈是否属于肥胖体型。
根据⾝⾼与体重因素,医务⼯作者经⼴泛的调查分析给出了以下按“体指数”对肥胖程度的划分:体指数t=w/h*h(w为体重,单位为kg,h为⾝⾼,单位为m)。
当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t≧27时,为肥胖。
编程从键盘输⼊你的⾝⾼h和体重w,根据上式,判断体重类型。
12.利⽤switch语句将百分制成绩转化为五分制成绩。
13.利⽤switch语句将五分制成绩转换成对应分数范围并输出。
14.编程设计⼀个简单的计算器程序,要求根据⽤户从键盘输⼊的表达式:操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。
15.利⽤时间函数编写⼀个猜数程序。
16.编程实现计算n的阶乘。
17.利⽤函数递归实现计算n!。
18.利⽤π/4=1-1/3+1/5-1/7……计算π的值直到最后⼀项的绝对值⼩于0.0001为⽌,要求统计总共累加了多少项。
第一次上机作业(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说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
1)要将“China”译成密码,密码规律是:用原来的字母后面第4个字母替原来的字母。
例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。
因此,“China”应译为“Glmre”。
请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为‘C’,‘h’、‘i’、‘n’、‘a’,经过运算,使分别变为‘G’,‘l’,‘m’,‘r’、‘e’,并输出。
2)给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’,90分以上为‘A’,80—89分为‘B’,70—79分为‘B’,60—69分为‘B’,60分以下为‘E’3)给出一个不多于5位的正整数,要求:1、求出它是几位数;2、分别打印出每一位数字;3、按逆序打印出个位数字,例如原数是321,应输出123。
4)输入4个整数,要求按由小到大的顺序输出。
5)企业发放的奖金根据利润提成。
数组6)用筛选法求100之内的素数7)用选择法对10个整数排序8)求一个3*3的整型矩形对角线元素之和9)已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中10)将一个数组中的值按逆序重新存放。
11)打印魔方阵。
行,列,对角线和相等12)找出一个二维数组的鞍点,该行最大,该列最小,也可能没有。
13)有15个数按由大到小存放,用折半法找出该数是数组中第几个元素的值。
14)电文加密15)字符串连接16)字符串比较17)字符串拷贝函数18)写两个函数,分别求两个整数的最大公约数和最小公倍数19)写一个判素数的函数20)写一个函数,使一个给定的二维数组行列互换21)写一个函数,使字符串反序存放,在主函数中输入输出22)写一函数,将一个字符串中元音字母复制到另一字符串23)写一函数,输入一个4位数字,要求输出4个数字字符,但要求数字间空一个空格24)编写一个函数,统计参数字符串中字母、数字、空格和其他字符的个数25)写一个函数,输入一行字符,将此字符串最长的单词输出26)写一函数,用起泡法对10个字符排序27)输入10个学生5门课的成绩,分别用函数求:每个学生的平均分,每门课的平均分,找出最高分数对应的学生和课程,28)写几个函数,输入10个职工的姓名和职工号,按职工号从大到小的顺序排序,姓名顺序也随着调整;用折半法查找输入的一个职工号,输出该职工姓名。
实验一 C语言的运行环境、运行过程和表达式的使用一、目的与要求1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2、了解在该系统上如何编辑、编译、连接和运行一个C程序。
3、通过运行简单的C程序,初步了解C源程序的特点。
4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
5、学会使用C的有关算术运算符,以及包含这些运算符的表达式二、实验例题【例1】编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for.在Turbo C的集成环境下,键入如下源文件。
敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认noname.c文件名改为任意文件名。
程序example.c如下:main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}然后用Ctrl+F9执行example.c,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。
按回车键重新返回Turbo C的编辑环境。
注意,在运行程序之前最好先存盘。
【例2】输入并运行程序,写出运行结果。
main(){int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}运行方法同上,最后结果为:sum is 579。
【例3】输入并运行程序,写出运行结果。
main(){int a,b,c;int max(int,int);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);}int max(int x,int y){int z;if (x>y) z=x;else z=y;return(z);}这个程序的功能是对于任意输入的两个整数,输出较大的那个数。
东华大学试卷2017—2018 学年第 2 学期课号课程名称C语言程序设计(期末; B 卷)适用班级(或年级、专业)1. 在程序中可以用来作为变量名的合法的标识符是()A. voidB. 123C. #ASD. a3_b22. 以下叙述正确的是()A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始3. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是()A.x=y==5 ;B. x=n%2.5 ;C. x+n=i ;D. x=5=4+1 ;4.能正确表示a和b同时为正或同时为负的逻辑表达式是()A.(a>=0||b>=0)&&(a<0||b<0)B. (a>=0&&b>=0)&&(a<0&&b<0)C. (a+b>0)&&( a+b<=0)D. a*b>05.设有程序段int k=10 ;while(k=0) k=k-1 ;以下描述正确的是()A. while循环语句执行10次B. 循环是无限循环C. 循环体一次也不执行D. 循环体语句执行一次6.设整型变量a为5,使b不为2的表达式是()A. b=a/2B. b= a%2C. b=6-(--a)D. b=a>3 ?2 :17.为了判断两个字符串s1和s2是否相等,应当使用()A. if(s1==s2)B. if(strcpy(s1,s2))C. if(strcmp(s1,s2)==0)D. if(s1=s2)8.在switch(<表达式>)中,<表达式>的值除了()外都可以。
A. 整型B. 字符型C. 枚举型D. 字符串9.C语言简单变量做实参时,它和对应形参之间的数据传递方式为()A. 单向值传递B. 由用户指定传递方式C. 由实参传给形参,再由形参传回给实参D. 地址传递10.变量的指针,其含义为该变量的()A. 值B. 地址C. 名D. 一个标志11. 设有数组定义“char array[ ] = ’’China’’;”,则数组array所占的空间为()字节。
《程序设计基础(C语言)》目录第1 章概述 (1)1.1 课程简介 (1)1.2 实验环境选择 (1)第 2 章实验要求 (1)2.1 实验过程要求 (1)2.2 考核及评分标准 (1)第 3 章实验内容 (2)3.1 实验1 熟悉C语言运行环境 (2)3.2 实验2 数据类型 (3)3.3 实验3 运算符和表达式 (4)3.4 实验4 顺序结构及输入和输出 (6)3.5 实验5 选择结构 (7)3.6 实验6 循环结构 (9)3.7 实验7 数组(1) (11)3.8 实验8 数组(2) (12)3.9 实验9 字符串及其操作 (13)3.10 实验10 函数 (14)3.11 实验11 结构体 (15)3.12 实验12 指针 (16)第 1 章概述1.1 课程简介《程序设计基础(C语言)》是软件工程各专业或其它相近专业学生的公共职业基础课,是软件类各专业的入门课程,直接影响学生后继职业技术课程的学习及可持续发展能力的培养。
通过本书,学习基本的程序设计概念和程序设计方法,学会使用C语言解决实际问题,进行初级的程序设计。
1.2 实验环境选择VC++6.0第 2 章实验要求2.1 实验过程要求本课程中,实验者必须服从指导教师和实验室工作人员的安排,遵守纪律与实验制度,爱护设备及卫生。
在指定的实验时间内,必须到机房内实验,其余时间可自行设计和分析。
本课程所涉及的程序代码,都要求有较高的可读性和效率,多文件表示。
2.2 考核及评分标准若实验者在指定上机时间三次不到课,取消考核资格。
请假,必须提前出具正式假条,不接受事后假条。
如果发现抄袭、篡改、伪造实验数据,或实验报告和设计报告雷同,涉及的所有学生的该课程成绩计为0 分。
本课程采用结构化评分,主要由指导教师灵活处理,可以是考勤等。
第 3 章实验内容3.1 实验1 熟悉C语言运行环境一、实验目的1.了解什么是C语言2.熟悉C语言程序开发环境二、实验内容和步骤1.大学生涯的第一个程序1)运行Microsoft Visual Studio 2008或者VC6.02)创建项目,选择win32控制台应用程序或者空项目,项目名为MyFirstApp3)新建项目,选择C++源文件,文件名为HelloWorld4)在程序编辑窗口,输入如下代码#include <stdio.h>/* 主程序*/void main(){printf("hello world\n");}5)执行程序,Ctrl+F56)观察输出结果,并记录2.修改程序1)增加语句,观察输出结果是否不同printf("hello world\n");printf("world is me\n");2)删除输出字符串中的“\n”,观察输出结果是否不同printf("hello world\n");3)进行换行输出,观察输出结果是否不同printf("hello, ");printf("world");printf("\n");4)将上个程序块中的printf("\n");去掉,观察输出结果是否不同3.用自己的语言,描述下对C语言程序的第一印象4.简单描述下,第二步骤中,输出结果相同与不同的原因;以及“\n”的用途3.2 实验2 数据类型一、实验目的1.掌握变量的命名规则和定义2.掌握C语言程序中的各种数据类型并使用它们二、实验内容和步骤1.定义3个变量numInt、numFloat、charInfo,他们的类型分别为整型,单精度类型,字符型;并分别初始化为2,2.0和‘A’,最后输出这三个变量的值。
附加题1.编程序求 5X+2Y+Z=50 的所有非负整数解。
2.有一长度不大于40的字符串,已知其中包含两个字符“A”,求处于这两个字符“A”中间的字符个数,并把这些字符依次打印出来。
3.把25个字母A、B 、C、···、X、Y按如下要求打印出来:从最中间的字母M开始打印,然后一左一右依次打印出其它字母,即M,L,N,K,O,...。
要求:初始化时按字母表顺序赋值。
4.编一个程序,把一批非零整数中的偶数、奇数的平均值分别计算出来。
用零作为终止标记。
5.某单位排队形,开始排成3路纵队,末尾多出了2人。
后改成5路纵队,末尾又多出了3人,最后改成7路纵队,正好没有余数。
编程序求出该单位至少有多少人。
6.将一个6×6数组的第一行、第六行、主对角线和副对角线上的元素都存入1,其余的元素都存入-1。
请编程序实现。
要求:1)不许对数组初始化。
2)尽量少用循环。
7.个位数是6,且能被3整除的五位数共有多少个。
8.求100至200之间能同时被6和8整除的数,把这些数打印出来,并且打印这些数的和。
9.雨淋湿了一道算术题,9个数字现在只能认清4个(第一个数字虽模糊不清但肯定不是1):[ ×( 3 + )]2 = 8 9请编程序找出那些看不清的数字。
10.编程序计算下述函数在X=-7,-1,0,7时的值。
f x exx x Ln x xxx x x x x()()()()()() =>≤-+≤≤=⋅-<<≠⎧⎨⎪⎪⎪⎩⎪⎪⎪21077410 00740或且11.判断一个给定的5×5方阵是否以第3列为轴线对称?12.编写一个函数JOIN,让它实现字符串连接运算功能。
13.编写函数IND,让它判断一个字符串是否为另一个字符串的子串的功能,若是则返回第一次出现的起始位置,否则返回0。
14.编写一个函数,由参数传来一个字符串,分别求出此字符串中字母、数字和其它字符(不包括空格)的个数,输入和输出均由主函数实现。
《C语言》上机实验题及参考答案2017《C语言》上机实验题及参考答案为了帮助大家备考接下来的计算机二级考试,应届毕业生店铺整理了2017《C语言》上机实验题及参考答案,希望能帮助大家备考计算机二级考试。
1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和*作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
下列给定程序中,函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。
各字符串在主函数中输入,并放入一个字符串数组中。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:#include <string.h>#include <stdio.h>#define N 5#define M 81/*************found**************/fun(char (*sq)[N]){int i; char *sp;sp=sq[0];for(i=0;i<N;i++)if(strlen(sp)<strlen(sq[i]))sp=sq[i];/*************found**************/return sq;}void main(){char str[N][M], *longest; int i;printf("Enter %d lines:\n ",N);for(i=0;i<N;i++) gets(str[i]);printf("\nThe %d string :\n ",N);for(i=0;i<N;i++) puts(str[i]);longest=fun(str);printf("\nThe longest string :\n ");puts(longest);}(1)错误:fun(char (*sq)[N]) 正确:char *fun(char (*sq)[M])(2)错误:return sq; 正确:return sp;。
第一期:1. 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身,例如:153是一水仙花数,因为153=1+125+27.2. 一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如:6的因子是1,2,3,而6=1+2+3因此6是“完数”。
编程序找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,33. 有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20相之和。
4.一个球从100M高度自由下落,每次落地后反跳回原高度的一半,再落下,再反弹,求它在第10次落地时,共经过多少米,第10次反弹多高。
5.猴子吃桃问题。
猴子第一天,摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。
第二天早上又将剩下的桃子吃掉一半,有多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第十天早上想再吃时,就只剩一个桃子了。
求第一天共摘了多少个桃。
6.两个乒乓球队进行比赛,各出3人。
甲队为A,B,C;乙队X,Y,Z。
以抽签决定比赛名单。
有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3队赛手的名单。
7.将一个二维数组行和列的元素互换,存到另一个数组中。
原始二位数组手动输入,行和列自定。
8.输出以下的杨辉三角形(要求输出15行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 19.输出“魔方阵”。
所谓魔方阵就是指这样的方阵,它的每一行,每一列和对角线之和均相等。
例如三阶魔方阵为:8 1 64 9 2要求输出1~n2的自然数构成的魔方阵。
10.找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
第二期:1.有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。
如果该数不在数组中,则输出“无此数”。
汇编语⾔输⼊10个数排序并输出的实现⼀:题⽬描述在键盘输⼊任意10个数1. 按从⼩到⼤排序后,在计算机屏幕上先输出来。
要有结果提⽰(字符串显⽰)。
2. 将10个数做累加,结果在计算机屏幕显⽰累加和。
⼆:伪指令的定义1.数据段ATAS SEGMENTstring_1 DB 'Please input a numbers(0-65536):','$'string_2 DB 'ERROR: OVERFLOW! Please input again:','$'string_3 DB 'The array you have input is:',0ah,0dh,'$'string_4 DB 'After Sort the num is:',0ah,0dh,'$'string_5 DB ' ','$'DATA DW 10 DUP(?)massege DB 'The sum of the array is: ',0ah,0DH,'$'DATAS ENDS说明:string_1输⼊范围提⽰string_2输⼊错误提⽰string_3输出原数组提⽰string_4输出排序后数组提⽰string_5空格符DATA缓冲区数组2.堆栈段STACKS SEGMENTDW 256 dup(?)STACKS ENDS3.代码段CODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS三:模块分解与实现1. DOS输⼊10个数字输⼊10个⽆符号数存⼊缓冲区,并且保证 num<65536num < 65536num<65536为何输⼊范围是65536呢⼀个字的最⼤表⽰范围是 FFFFFFFFFFFF 其在⼗进制的表⽰下为 65535HEX FFFFDEC65535BIN1111 1111 1111 11111.1 输⼊函数⼦程序;---------输⼊函数(单数字输⼊)------------Input PROC Nearpush AXpush BXpush CXpush DX;---------输⼊提⽰--------------MOV BX, 0CLCMOV DX, 0;----------输⼊数字--------------Lp_0:MOV AH, 1INT 21HCMP AL, 20H ;回车JE L_CRLF;----- x belong to [0,9] ----------SUB AL, 30H ; ASCII -> intJL L_ERRORCMP AL, 9JG L_ERROR;------- string -> int -----------MOV AH, 0 ;将 AL扩展成 AXXCHG AX, BX ;保护 AX值MOV CX, 10MUL CX ; bx *= 10ADD AX , BXJC L_ERROR ; OVERFLOW处理XCHG AX, BXJMP Lp_0L_ERROR:MOV DX, 0MOV BX, 0CALL CRLF ; 换⾏CALL ERROR ; 输出错误提⽰JMP Lp_0L_CRLF: ; 以换⾏作为⼀个数的结束标志MOV DX, 0MOV DATA[SI], BX ;解析函数功能:本质类似于⾼精度计算,将读⼊的⼀个串转成数字存储在DATA数组中分成三⼤部分⼀:输⼊提⽰⼆:错误判断及提⽰三:转化为数字L_ERROR 错误处理L_CRLF 结束处理我们来举⼀个123412341234 的例⼦Register1234AX1234BX0112123CX10101010AX+(BX∗CX)AX + (BX * CX)AX+(BX∗CX)最后将结果存储在DATA数组⾥2.实现冒泡排序冒泡排序作为⼀个简单的排序算法,时间复杂度 O(n2)O(n^2)O(n2) 需要两层循环,为了提⾼代码的可读性,我们将内层的循环写成⼀个⼦程序每次调⽤内层循环很简单,每次从头⽐到尾,遇到⽐它⼩的交换就可以了。
/* 5、猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩一个桃子了。
求第一天共摘了多少桃子。
*/#include<iostream.h>void main(){int number,i;number=1;for(i=10;i>1;i--)number=(number+1)*2;cout<<"number="<<number<<endl;}8.++程序中使用流格式输入、输出,我们可以怎么做?答:在程序的开头包含头文件iostream.hcin输入,cout输出。
例如:#include<iostream.h>void main(){int a;cout<<"请输入a的值:";cin>>a;cout<<"a的值为:"<<a<<endl;}第4章函数/* 1、写一函数用“气泡法”对输入的10个字符按由小到大的顺序排列。
*/#include<iostream.h>void main(){int i,j,temp,a[10];cout<<"please input ten numbers:\n";for(i=0;i<10;i++)cin>>a[i];for(i=0;i<10;i++) //每循环一次确定数组中一个数的位置for(j=i+1;j<10;j++) //每次循环对比一个数的大小{if(a[i]>a[j]){temp=a[j];a[j]=a[i];a[i]=temp;}}cout<<"resort result=";for(i=0;i<10;i++)cout<<a[i]<<" ";}/* 2、用递归方法求n阶勒让得多项式的值,递归公式为1 (n = 0)Pn(x) = x (n = 1)((2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x))/n (n > 1) */#include<iostream.h>double fun (double,double);void main(){double n,x,sum;cout<<"input n and x"<<endl;cin>>n>>x;sum=fun(n,x);cout<<"P"<<n<<"("<<x<<")"<<"="<<sum<<endl;}double fun(double n1,double x1){if (n1==0)return 1;else if (n1==1)return x1;else if (n1>1)return ((2*n1-1)*x1*fun(n1-1,x1)-(n1-1)*fun(n1-2,x1))/n1;}/* 3、编写一函数,由实参传来一字符串,统计此字符串中字母、数字、空格、和其它字符的个数,并在主函数中输入字符串以及输出上述结果。