小学pascal数组题目2

合集下载

pascal语言试题及答案

pascal语言试题及答案

pascal语言试题及答案1. Pascal语言的创始人是谁?- A. Dennis Ritchie- B. Bjarne Stroustrup- C. Niklaus Wirth- D. Guido van Rossum答案: C2. 以下哪个选项不是Pascal语言的特性?- A. 结构化编程- B. 强类型- C. 面向对象- D. 编译型语言答案: C3. Pascal语言中,用于声明变量的关键字是什么?- A. var- B. let- C. def- D. declare答案: A4. 在Pascal中,以下哪个运算符用于比较两个变量是否不相等? - A. =- B. <>- C. ==- D. !=答案: B5. Pascal语言中,以下哪个关键字用于定义函数?- A. function- B. procedure- C. define- D. method答案: A6. 在Pascal中,如何声明一个整型数组?- A. var arr: array[1..10] of integer;- B. var arr: integer[1..10];- C. var arr: integer array[1..10];- D. var arr: integer[10];答案: A7. Pascal语言中,以下哪个语句用于循环执行一段代码? - A. loop- B. repeat- C. while- D. for答案: D8. 在Pascal中,以下哪个关键字用于定义过程?- A. function- B. procedure- C. subroutine- D. method答案: B9. Pascal语言中,以下哪个运算符用于取模运算?- A. %- B. mod- C. div- D. rem答案: D10. 在Pascal中,以下哪个关键字用于定义一个记录类型? - A. record- B. struct- C. type- D. class答案: A。

经典:NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组2

经典:NOIP(全国青少年信息学奥林匹克联赛)复习Pascal——数组2

end.
JSOI2009年大丰冬令营(3B层)
P 程序设计
例6-9打印杨辉三角形的前10行,杨辉三角形如图所示:ascal
1 11 121 13 3 1 14 6 4 1 1 5 10 10 5 1
分析:由图可知,每行的首尾元素都为1, 每行中元素个数和行数相同,且 yh[I,j]=yh[I-1,j-1]+yh[I-1,j] (I>2, 1< j<i)
输出时只要确定每行的起始位置即可打印 输出了.
Program ex6-9(input,output); var yh:array[1..10,1..10] of integer; I,j:integer; begin yh[1,1]:=1; for i:=2 to 10 do begin yh[I,1]:=1;yh[I,I]:=1; for j:=2 to I-1 do yh[I,j]:=yh[I-1,j-1]+yh[I-1,j]; end; writeln(‘yanghui:’);
数Байду номын сангаас组 (二)
6.3 多维数组
P 程序设计 ascal
定义:
Type
类型标识符号=array
[下标类型1,下标类型2…] of
元素类型;
or Va数r 组名:类型标识符;
Var 数组名:array[下标类型1,下标类型2…] of 元素类型;
例6-8 定义数组score:有50名学生,四门功课。
学号 1 2
for I:=1 to 10 do begin write(‘ ‘:40-3*I); for j:=1 to I do write(yh[I,j]:6); writeln; end;

认识数组我们先做下面两个题第一个...

认识数组我们先做下面两个题第一个...

认识数组我们先做下面两个题:第一个:输入n(n<100)个数,并且以相反的顺序输出这些数。

(假设当n=5时,我们可以通过定义5个不同变量很轻松地解决这个问题。

程序为:(假设5个变量分别为x1、x2、x3、x4、x5)请写出程序。

但是当n值超过一定个数时,如n=100,定义变量及数据的输出、输出成为一个非常繁琐的过程,需要定义100个变量,写100个read语句和100个write语句。

这样是不现实的。

利用数组就能很方便地处理这个问题,且程序规模不受影响,并且非常明了清晰:假设n=100,我们引入数组x,分别用x[1], x[2],…,x[100]表示这100个变量,其中x为数组名称,方括号中的数字称为下标,下标可以用变量表示,如x[i]表示的数据由i决定,当i=1,x[i]表示x[1],i=20, x[i]表示x[20],i=100, x[ i ]表示x[100], ……,不同的x[i]就是不同的数组元素,于是程序可以修改为:Const n=100;V ar x: array[1..n] of integer ;I: integer ;BeginFor i:=1 to n do read(x[i]);For i:=n downto 1 do write(x[i] );End.整个程序非常简洁,而且直接通过修改常量n的定义就可解决不同的n值需要。

可见,引入数组之后,程序设计变得十分有效。

特别是对于一批数据的排序、查找等操作,不使用数组将寸步难行。

第二个:输入三个整数,由程序计算他们的平均值,并将其中大于平均值的数显示出来,例如输入3、8、7其平均值是6,因此显示8和7。

分析:readln语句从键盘读入三个数,分别存储到a、b、c三个整形变量中;求出a、b、c的平均值,在存储到变量s中;将a、b、c的值与s的值依次进行比较,将其中大于s的值用writeln语句输出程序:program lx1;var a, b, c:integer;s: real ;beginreadln(a);readln(b);readln(c);s: =(a+b+c)/3 ;if a>s then writeln(a);if b>s then writeln(b);if c>s then writeln(c );end.运行程序,输入3、8、7,输出结果为8、7现在,我们改变一下题目要求:输入100个整数,将其中大于平均值的数显示出来。

小学组Pascal语言试题

小学组Pascal语言试题

小学组Pascal语言试题(一)一、单项选择。

(每小题1.5分,共15分)1.下面是某同学定义的变量名,合符Pascal语法的是()。

A.integer B. x1 B. 2x D. x*y2.假定所有变量均为实型,算式的正确Pascal表达式是()。

A.(u+a)/((b-v)/(c-w)+u*d)B. (u+a)/(b-v)/(c-w)+u*dC. u+a/b-v/c-w+u*dD. (u+a)/((b-v/c-w)+u*d)3. 有如下的变量说明var x,y,z:integer;a:real;则下面的赋值语句中正确的是()A.x=y div 7; B. x:=y/z; C. a:=x*y; D. x+y:=z;4. 设a,b,c,d均为整型变量,对于下面的程序段a:=0;b:=0;readln(a,b);read(c);readln(d);若从键盘输入:12 3 45 6 7其中,表示“回车”,则a,b,c,d中的数应为下面哪一组?()A.1,2,3,4B.1,2,3,5C.1,2,5,6D.1,0,3,55. 设n为整型变量,且n:=1997,下面能将n的十位数字(即右边第2位数字)分离出来的语句是()。

A. d:=n mod 100B. d:=n div 100;C. d:=n div 100 mod 10;D. d:=n mod 100 div 106.“判断一个整数x是另一整数y的整数倍”的pascal表达式是()。

A.x=2*y B. x/y=2 C. x mod y=0 D. x mod y=17. Pascal表达式“2008 div 5 mod -2”的结果是:A. 8B. -1C. 0D. 18. 设实型变量pi已赋值为3.14159,下面不能输出3.14的语句是( )。

A. write(pi:0:2);B. writeln(pi:1:2);C. write(pi:2:2);D. writeln(pi:2);9.下列程序段的输出结果是()。

鄞州区小学生信息学奥林匹克试题(PASCAL样卷)_ 2

鄞州区小学生信息学奥林匹克试题(PASCAL样卷)_ 2

鄞州区小学生信息学奥林匹克竞赛试题(小学组PASCAL语言 2.5小时完成)准考证号姓名学校得分一.选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题1分,每题只有一个正确答案,多选或错选都无分。

共30分)1.标准PASCAL程序说明部分的正确顺序是( )。

A.label-->const-->var-->type B.var-->const-->label-->typeC.label-->const-->type-->var D.const-->var-->type-->label2.下列( )是合法的标识符。

A.A23456 B.X*Y C.BEGIN D.H(X)3.下列( )不是保留字。

A.div B.program C. new D.var4.若a=true,b=false,x=7,y=12,m=3,n=35,求表达式a and not(m>n) and (x<y-m) or(a or b)的值()。

A.true B.false C.0 D.15.下列常量定义中正确的是()。

A.const d=40 or d=100; B.const s = 0.5;C.const s : 2.15; D.const s: = (2>5);6.下列函数值是整型的是()。

A.CHR(23) B.ORD(FALSE) C.SUCC(FALSE) D.ODD(98)7.设x是实型变量,下列表达式能将x四舍五入后保留两位小数的是()。

A.round(x) B.round(x)/100C.round(x*100)/100 D.round(x*10)/108. 表达式 35 DIV 3 MOD 4 的值是()。

A.0 B.2 C.3 D.69.把整数5转换为字符'5'的表达式是()。

A.chr(5)-ord('0') B.chr(5+ord('0'))C.chr(5)-ord('0') D.chr(5+ord(0))10. 下列程序段运行后,变量value的值为( )。

小学Pascal练习题

小学Pascal练习题

一、编程实现:(1):输入x,y的值,用程序实现输出时x为y的值,y为x的值。

(test1)(2):输入一个三位数,输出它的相反数。

如:输入234,输出432。

(3):从键盘输入一个数x,计算表达式3*x-6的值,并在屏幕输出结果。

(test3)(4):输入20个数,统计其中正数、负数和零的个数。

要求:程序名ex统计个数变量:num1(正),num2(负),num3(零)循环变量:i(5):用当循环语句(while)编程计算1×2×4×6×8×……×20的积。

(test5)(6):李冬期末考试考语文、数学、英语三门课程,编程求他期末考试的总分和平均分(test6) (7):随机产生互不相同的两位数20个,并按从小到大的顺序排列。

(8):新年联欢会,来宾聚一堂,互相碰一杯,903响,问有多少人,饮酒在会上?(9):编程求1~100以内所有质数的和。

(10):编程判断某个年份是否是闰年。

输入年份(变量名称:year),若是闰年,则在屏幕上显示Yes,否则输出No (test10(11):小明有一本书,第一天看了全书的一半,第二天又看了剩余的2/3,还有10页没看完,问全书共有几页?(12):一本1000页的书,黄强第一天看了10页。

以后每天比前一天多看3页,编程求出黄强最后一天看了多少页。

(13):兄弟三人岁数和是30,大哥的岁数减2,二哥的岁数加2,弟弟的岁数乘以2 ,结果三人的岁数相同,求三人的岁数各是多少?(14):求1+5+9+13+…101的和。

(15):剧场中有1000个座位,已知第一排有30个座位,以后每排增加2 个座位,1000个座位最多能排几排?最后剩余不够一排的座位有几个?如果按前边的排法再补全一排,整个剧场有多少个座位?(16):爸爸比儿子大30岁,四年后爸爸的年龄将是儿子的四倍,问爸爸和儿子各是多少岁?(17):用数组形式求1-100以内所有奇数的和。

pascal 练习题

pascal 练习题Pascal练习题Pascal是一种结构化的编程语言,于20世纪70年代由Niklaus Wirth开发。

它以其简洁、易读和高效的特点而闻名。

由于Pascal语言的特殊性质,它被广泛用于教育和训练编程入门者。

本篇文章将为大家呈现一些适用于Pascal编程的练习题。

通过这些练习题,读者们可以增加他们的Pascal编程技能,深入了解Pascal语言的特性与用法。

下面列出了一些练习题,每个练习题都有对应的题目和要求。

练习题一:阶乘计算器题目:编写一个程序,实现阶乘的计算。

要求:用户输入一个正整数,程序将输出该数的阶乘。

练习题二:质数判断器题目:编写一个程序,判断一个数是否为质数。

要求:用户输入一个整数,程序将输出该数是否为质数。

练习题三:字符串翻转题目:编写一个程序,实现字符串的翻转。

要求:用户输入一个字符串,程序将输出该字符串的翻转结果。

练习题四:数列求和题目:编写一个程序,计算数列的和。

要求:给定一个正整数n,程序将计算1到n的所有整数的和。

练习题五:矩阵转置题目:编写一个程序,实现矩阵的转置。

要求:用户输入一个m×n的矩阵,程序将输出该矩阵的转置矩阵。

练习题六:冒泡排序题目:编写一个程序,实现冒泡排序算法。

要求:用户输入一个整数数组,程序将按照升序或降序的方式对数组进行排序。

通过上述练习题,我们可以锻炼Pascal编程的各个方面,包括基本的算术运算、条件语句、循环语句、字符串处理以及数组操作等。

通过编写这些程序,读者不仅可以提高他们的编程技能,还可以更好地理解算法的实现过程。

为了更好地完成这些练习题,以下是一些有用的提示:1. 阶乘计算器:使用一个循环结构,递增一个变量并与用户输入的数相乘,直到达到用户输入的数。

2. 质数判断器:使用一个循环结构,检查除了1和自身以外的数是否可以整除用户输入的数。

3. 字符串翻转:使用一个循环结构,从字符串的末尾开始逐个提取字符,然后将提取的字符逐个连接起来形成新的字符串。

pascal 练习题

pascal 练习题Pascal练习题Pascal是一种流行的编程语言,被广泛应用于科学计算、算法设计和软件开发等领域。

为了提高编程能力和熟练掌握Pascal语言的特性,练习题是一种非常有效的学习方法。

本文将介绍一些Pascal练习题,并探讨它们的解决方法和应用场景。

一、计算圆的面积和周长编写一个Pascal程序,根据用户输入的半径,计算并输出圆的面积和周长。

这个练习题可以帮助我们熟悉Pascal的基本语法和数学计算。

解决这个问题的关键是理解圆的面积和周长的计算公式,并正确地应用到程序中。

二、查找最大值和最小值给定一个整数数组,编写一个Pascal程序,找出数组中的最大值和最小值,并输出它们。

这个练习题可以帮助我们熟悉Pascal的数组操作和条件判断。

解决这个问题的关键是遍历数组,比较每个元素的值,并使用变量记录最大值和最小值。

三、猜数字游戏编写一个Pascal程序,实现一个猜数字的游戏。

游戏开始时,随机生成一个0到100之间的整数,玩家需要通过输入猜测的数字来猜出正确的答案。

程序会根据玩家的猜测给出提示,直到猜对为止。

这个练习题可以帮助我们熟悉Pascal的随机数生成和条件判断。

解决这个问题的关键是使用随机数生成器生成一个随机数,并与玩家的猜测进行比较。

四、斐波那契数列编写一个Pascal程序,计算并输出斐波那契数列的前N项。

斐波那契数列是一个非常经典的数列,每一项都是前两项的和。

这个练习题可以帮助我们熟悉Pascal的循环和递归。

解决这个问题的关键是使用循环或递归的方式计算数列的每一项,并将结果输出。

五、排序算法给定一个整数数组,编写一个Pascal程序,实现排序算法对数组进行排序,并输出排序后的结果。

常见的排序算法包括冒泡排序、插入排序和快速排序等。

这个练习题可以帮助我们熟悉Pascal的排序算法和数组操作。

解决这个问题的关键是理解排序算法的原理和实现方式,并正确地应用到程序中。

练习题不仅可以帮助我们巩固Pascal语言的知识,还可以提高我们的编程能力和解决问题的能力。

PASCAL练习题

PASCAL练习题PASCAL练习题序号题目难度完成数1计算路程167 2摄氏温度转华氏温度165 3求一元二次方程的根265 4成绩评定266 5商场折扣268 6倒数数列和357 7阶乘和357 8求最大值和最小值362 9菲波拉契数列354 10求素数347 11百钱买百鸡363 12水仙花数362 13计算π的值355 14最大公约数和最小公倍数458 15完数461 16亲密数对455 17奖学金认定259 18计算年龄261 19汽车时速计算353 20猴子吃桃问题454 21验证哥德巴赫猜想435 22钞票兑换344 23成绩评定2225 24聪明的猪414 25插入排序47 26约瑟夫问题516 27不重复的随机数413 28侦察任务310 29猜数游戏218 30因式分解411 31砝码选择34 32电灯开闭36 33追查凶手34 34十进制转二进制315 35分糖216 36贮油点53 37运动会成绩统计45 38等式填空315 39验证尼科彻斯定理410 40回文字符串217 41中缀表达式转后缀表达式57 42二叉树的遍历313 43留学生应会的语言31 44绝对素数20 45互不相同的七位完全平方数30 46求数字的乘积根50 47纯粹素数30 58完全平方数40 49十六进制数转十进制数20 50楼梯的不同走法50 51计数排序30 52厄拉多赛筛法求素数20 53杨辉三角形30 54打印图形20 55扑克分发30 56统计单词个数40 57二叉排序树20 58按比例组数30 59数字三角形40 60最佳字符编码40 1.计算路程【题目描述】从键盘输入速度v和时间t,要求计算路程s。

2.摄氏温度转华氏温度【题目描述】读入摄氏温度c,将它转换成华氏温度f输出,写出程序。

已知:f=9/5*c+32 3.求一元二次方程的根输入a,b,c,求一元二次方程ax2+bx+c=0的根。

Pascal数组习题

1.读入10个数,输出偶数项及它们的和,输出奇数项及它们的平均数。

2.读入n个数,打印其中的最大数、最小数及它们的位置。

3.有一组数(设有n个),编一程序交换这组数中任意指定的两段不重合数据。

4.给定一串整数数列,求出所有的递增和递减子序列的数目。

如数列7,2,6,9,8,3,5,2,1可分为(7,2),(2,6,9),(9,8,3),(3,5),(5,2,1)5个子序列,其中递增数列2个,递减数列3个。

5.将1~9这9个数字分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。

6.设数组a是一个有n个元素的整数数组,从中找出最大和的子序列。

(数组中有负数)。

7.已知数组a中含n个整型元素,求a中有多少个最大数?多少个次大数?…,多少个互不相同的数?编程实现之。

8.将一个十进制整数转化为二进制数。

9.编程,打印1000以内二进制和十进制正读和反读都一样的整数清单。

10.读入n个正整数,将其按从小到大的顺序排列,说明该数出现的次数及其在原序列中的位置。

11.圆盘找数,找出4个相邻的数,使其相加之和最大和最小的是哪4个数?并给出它们的起始位置。

12.约瑟夫问题:n个人围成一圈,从第一个人开始报数,数到k的人出圈。

再由下一个人开始报数,数到k的人出圈,依次输出出圈人的编号。

n的值预先设定,k的值由键盘读入。

比如:n=8,k=6出圈顺序为:6、4、3、5、8、7、2、1。

13.输入矩阵a(m行n列)和矩阵b(n行h列),计算并输出c=a*b。

14.求n*n数阵中的马鞍数,输出它的位置。

所谓马鞍数,是指在行上最小而在列上最大的数。

如下:(n=5)5 6 7 8 94 5 6 7 83 4 5 2 12 3 4 9 01 2 5 4 8则1行1列上的数就是马鞍数。

15.大部分元素是0的矩阵称为稀疏矩阵,假设有k个非零元素,则可把稀疏矩阵用k×3的矩阵简记之,其中第一列是行号,第二列是列号,第三列是该行、该列下的非零元素的值。

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

某宾馆有一百个房间,从 1~100编了号。第一个服务员 把所有的房间门都打开了,第二个服务员把所有编号是2的倍 数的房间作”相反处理”,第三个服务员把所有编号是3的倍 数的房间再作”相反处理”……,以后每个服务员都是如此。 当第100个服务员来过后,哪几扇门是打开的。(所谓的“相 反处理”指:原来开着的门关上,原来关着的门打开。) 分析:可设置一个表示门是开的还是关的标志数组,另 外由于有固定的循环次数,可用for循环。
输入一个以‘.’结束的英文句子,统计并输出其中各字 母出现的次数。假设句子中没有大写字母。 分析:引入一个下标类型为子界类型的数组num,用 于存放句子中各字母出现的次数。例如用num[‘a’]记录 字母a出现的次数。开始时应将num的每个元素置成0, 当读入一个ch后,若ch是字母,则让num[ch]加1
var num:array['a'..'z'] of integer; ch:char; begin for ch:='a' to 'z' do( num[ch]:=0 ; read(ch);
while ch<>‘.' do
begin (ch>='a') and (ch<='z') )then num[ch]:=num[ch]+1; if ( ( read(ch) ); end; for ch:=( 'a' to 'z' )do if num[ch] <>0 then writeln(ch,' ',num[ch]); end.
7、输入一个整数x,在已存的一个整数数组中顺序查找x是 否存在,若找到,输出x在整数数组中所对应的位置,否则输出 找不到的信息。(已知数组中没有相同元素) 分析: ⑴先输入待查找的值x;令i=1。 ⑵让x与a[i]比较; ⑶若a[i]<>x,则i:=i+1,如果i<=n然后转⑵继续进行比较, 如果i>n,则退出循环,输出找不到的信息;若a[i]=x,则退出 循环,输出找到的信息。
8、用筛法求100以内的素数。如:20以内的素数为 2、3、5、7、9、11、13、17、19。 分析:素数是除了1和它本身以外没有其它约数的数 。用筛法求素数的方法是:用质数筛去合数。从第一 个素数2开始,把它的倍数去掉(置为0)。这样2以后 的第一个非0数就一定也是素数,把它的倍数也删了 ……重复这个删数过程,直到在所找到的素数之后再 也找不到一个非0数为止。最后把所有非0数输出。
const n=100; var a:array[1...n] of( boolean); i,j,k:integer; begin for i:=1 to n do a[i]:=true; for i:=2 to n do for j:=( i to n )do if( j mod i=0 )then a[j]:=not(a[j]); for i:=1 to n do if( a[i]=true )then write(i:5); end.
const n=8; var x,i:integer; a:array[1..n] of integer; found:boolean; begin for i:=1 to n do read(a[i]);readln; readln(x); i:=1;( found:=false ); while( i<=n )and not(found) do if a[i]=x then found:=true else( i:=i+1 ); if( found )then writeln(‘x at’,i:6) else writeln(‘not found’); end.
相关文档
最新文档