一维数组练习.doc

合集下载

一维数组练习题

一维数组练习题

一维数组练习题

题目一:数组元素反转

描述:给定一个整数数组,将数组中的元素反转并输出。

要求:

1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);

2. 输入n个整数构成的数组;

3. 输出数组中的元素,按照逆序输出。

解答:

题目二:查找数组中的最大值和最小值

描述:给定一个整数数组,找出数组中的最大值和最小值,并输出。

要求:

1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);

2. 输入n个整数构成的数组;

3. 输出数组中的最大值和最小值。

解答:

题目三:计算数组的和与平均值

描述:给定一个整数数组,计算数组中所有元素的和及平均值,并

输出结果。

要求:

1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);

2. 输入n个整数构成的数组;

3. 输出数组中所有元素的和及平均值,结果保留两位小数。

解答:

题目四:数组去重

描述:给定一个整数数组,去除数组中的重复元素,并输出结果。

要求:

1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);

2. 输入n个整数构成的数组;

3. 输出去除重复元素后的数组。

解答:

题目五:数组元素排序

描述:给定一个整数数组,对数组中的元素进行排序,并输出结果。要求:

1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);

2. 输入n个整数构成的数组;

3. 输出排序后的数组。

解答:

题目六:数组元素查找

描述:给定一个整数数组和一个目标值,判断目标值是否存在于数组中,并输出结果。

要求:

1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);

一维数组练习题

一维数组练习题

一维数组练习题

一维数组练习题

一维数组是计算机编程中常用的数据结构之一,它可以存储一系列相同类型的数据。在实际的编程过程中,我们经常需要使用一维数组来解决各种问题。下面,我将给出一些一维数组的练习题,希望能帮助大家更好地理解和掌握一维数组的使用。

1. 求数组元素的和

给定一个整数数组,编写一个函数来计算数组中所有元素的和。这个问题可以通过遍历数组并累加每个元素来解决。首先,我们可以定义一个变量sum,初始值为0,然后使用for循环遍历数组,每次将当前元素加到sum中,最后返回sum即可。

2. 查找数组中的最大值和最小值

给定一个整数数组,编写一个函数来查找数组中的最大值和最小值。我们可以使用两个变量来保存当前的最大值和最小值,然后遍历数组,如果当前元素比最大值大,则更新最大值,如果当前元素比最小值小,则更新最小值。最后返回最大值和最小值即可。

3. 数组元素的反转

给定一个整数数组,编写一个函数来反转数组中的元素。我们可以使用两个指针,一个指向数组的第一个元素,一个指向数组的最后一个元素,然后交换这两个指针所指向的元素,并向中间移动指针,直到两个指针相遇。

4. 数组元素的去重

给定一个整数数组,编写一个函数来去除数组中的重复元素。我们可以使用一

个新的数组来存储不重复的元素,然后遍历原数组,如果当前元素不在新数组中,则将其添加到新数组中。最后返回新数组即可。

5. 数组元素的排序

给定一个整数数组,编写一个函数来对数组中的元素进行排序。我们可以使用冒泡排序、插入排序、选择排序等算法来对数组进行排序。这些排序算法的基本思想都是比较相邻的元素并交换位置,直到整个数组有序。

PHP数组练习及答案

PHP数组练习及答案

1.一维数组是最简单的数组,其定义形式是?$arr = array()或者$arr = [];

2.怎么判断一个变量是否为空,怎么判断一个变量是否存在?empty($str); isset($str);

3.如何获取数组$arr = array(array(‘a’,’b’,’c’));中的

值’c’ ?

$arr[0][2];

4.如何定义一个三维数组?

$arr = array(array(array()));或者$arr = [[[]]];

5.怎么才能从数组$multi_array中找出值cat?

$multi_array = array(

"red","green",

42 => "blue",

"yellow" => array("apple",9 => "pear","banana", "orange" => array("dog","cat","iguana"))

);

$multi_array[‘yellow’][‘orange’][1];

6.下面数组$arr中,打印$arr[1][1]输出的值是什么?

$arr = array(

array('jack','boy',23,'18nan'=>array(18000,180,18)),

array('rose','girl',18)

);

答案:girl

7.遍历输出数组$arr =

array(1=>’ff’,‘aa,’dd,’cc’,’eee’);

foreach($arr as $value){

echo $value;

一维数组练习题

一维数组练习题

维数组练习题1 、以下对一维数组 a 进行正确初始化的是 ____________

A) int a[10]=(0,0,0,0,0);

C) int a[ ]={0}; B) int a[10]={ };

D) int

a[10]={ 10*2};

2 、以下一维数组 a 的正确定义是_________ 。

A) int a(10); B) int n=10,a[n];

C) int n; D) #define SIZE 10 scanf("%d",&n); int a[SIZE];

int a[n];

3 、执行下面的程序段后 , 变量 k 中的值为 __________ 。

int k=3,s[2];

s[0]=k;

k=s[1]*10;

A) 不定值B) 33

C) 30 D) 10

4 、下列程序执行后的输出结果是

main()

{int a,b[5];

a=0; b[0]=3;

printf("%d,%d\n",b[0],b[1] );

A) 3,0

C) 0,3 }

B) 3 0

D) 3, 不定值

5、已知数组a的赋值情况如下所示,则执行语句a[2]++; 后a[1]和a[2]的值分别是_______________ 。

a[0] a[1] a[2] a[3]

a[4]

10 | 20 | 30 | 40 | 50

|

A) 20 和 30 C) 21 和 30 B) 20 和 31 D) 21 和 31

6、以下程序输出 a 数组中的最小值及其下标,在划线处应填入的是 _____________ main( )

{ int i,p=0,a[10];

☆C语言实验五(第七章一维数组:排序综合题)

☆C语言实验五(第七章一维数组:排序综合题)

【2008春上机编程题_C07】

【解题思路】:在理解上述要求基础上,只用一个主函数完成:找出Fibonacci 数列的前40个数,存放在一维数组m[40](声明长整型变量long)中,然后找出其中所有素数,存放在一维数组n[40]中(提示:n数组要求对素数总数以k计数),再选用一种排序法对一维数b进行降序排列,最后按长整型量以“%9ld”

形式、一行五个数据将满足条件的数据输出到屏幕:

【提示】:排序方法有“简单起泡法”;“双向起泡法”;“选择法”;所以要求学生在调试上述程序基础上按班组选取排序方法,编写本次作业。(约定:起始Fibonacci数列存放在一维数组m[40]中,挑选出的素数存放在一维数组n[40]中,最后以升序排列的数组n输出,满足素数的个数设定为k)。

(参考教科书P134)

(参考上机指导书P54例7.5、2010春完善程序题第15题或软件第七章填空第15题)原理为“下列程序的功能是对n数组n[0]~a[k-1]中存储的k个整数从大到小排序。排序算法是:第一趟通过比较将k个整数中的最小值放在a[k-1]中,最大值放在a[0]中;第二趟通过比较将k个整数中的次小值放在a[k-2]中,次大值放在a[1]中,………,依次类推,直到待排序序列为递减序列。”

P50例7.2)

【软件第七章】

选择:

1,下列一维数组的声明中,正确的是____(22)_____。

A. int a[];

B. int n=10,a[n];

C. int a[10+1]={0};

D. int a[3]={1,2,3,4};

(完整版)数据结构练习题及参考答案

(完整版)数据结构练习题及参考答案

数据结构练习题

第一部分绪论

一、单选题

1. 一个数组元素a[i]与________的表示等价。

A、 *(a+i)

B、 a+i

C、 *a+i

D、 &a+i

2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型

B、参数个数

C、函数类型

3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数

A、指针

B、引用

C、值

4. 下面程序段的时间复杂度为____________。

for(int i=0; i<m; i++)

for(int j=0; j<n; j++)

a[i][j]=i*j;

A、 O(m2)

B、 O(n2)

C、 O(m*n)

D、 O(m+n)

5. 执行下面程序段时,执行S语句的次数为____________。

for(int i=1; i<=n; i++)

for(int j=1; j<=i; j++)

S;

A、 n2

B、 n2/2

C、 n(n+1)

D、 n(n+1)/2

6. 下面算法的时间复杂度为____________。

int f( unsigned int n ) {

if ( n==0 || n==1 ) return 1; else return n*f(n-1);

}

A、 O(1)

B、 O(n)

C、 O(n2)

D、 O(n!)

二、填空题

1. 数据的逻辑结构被分为__________、_________、__________和__________四种。

2. 数据的存储结构被分为__________、_________、__________和__________四种。

C语言程序设计练习题参考答案第四章(1)一维数组

C语言程序设计练习题参考答案第四章(1)一维数组

C语言程序设计练习题参考答案第四章(1)一维数组

C语言程序设计练习题参考答案第四章 (1) 一维数组

/* 4.11 fibonacci数列,前15项 1,1,2,3,5,。。。。。*/ #include "stdio.h"

void main()

{

int f[15]={1,1}, i;

for(i=2;i<=14;i++) /* 计算 */

f[i]=f[i-2]+f[i-1];

printf("fibonacci数列,前15项\n"); /* 输出 */

for(i=0;i<=14;i++)

{

printf("%5d",f[i]);

if((i+1)%5==0)

printf("\n");

}

}

/* 4.12 数组元素前移动一个位置 */

#include "stdio.h" void main()

{

int a[10]={0,1,2,3,4,5,6,7,8,9};

int i,t;

printf("\n移动之前:\n");

for(i=0;i<=9;i++)

printf("%3d",a[i]);

/* 移动 */

t=a[0];

for(i=0;i<=9;i++)

a[i]=a[i+1];

a[9]=t;

printf("\n移动之后:\n");

for(i=0;i<=9;i++)

printf("%3d",a[i]);

}

/* 4.13 有序数列中插入若干个数,仍然保持有序 */

#include "stdio.h" void main()

{

int a[100]={1,4,8,10};

int i,k,x,count=4;/* i,k 循环变量, x 输入整数,count 有多少整数*/

C二级操作题 5 一维字符数组删除及统计

C二级操作题 5 一维字符数组删除及统计

第五课

教学内容:一维字符数组删除及统计类算法

教学目的:掌握一维字符数组删除及统计类算法的考题

教学内容:

一、一维字符数组删除及统计类算法的考题特点

此类算法多以填空题和程序设计题为考试形式。常见考点

1、在一维字符数组中删除指定的单个字符,删除符合某条件的多个字符。

2、统计一维字符数组中某个字符出现的次数,子串出现的次数。

二、课堂练习

第一套

1、程序填空题删除所有小写字母‟c‟

下列给定程序中,函数fun()的功能是:从字符串s 中,删除所有小写字母‟c‟。试题程序:__1__<stdio.h> //# include

void fun(char *s)

{ int i, j;

for(i=j=0;__2__;i++) //s[i]!= '\0'

if(s[i]!= 'c')

__3__; //s[j++]=s[i];

s[j]='\0';

}

main()

{ char s[80];

printf("\nEnter a string: "); gets(s);

printf("The original string: "); puts(s);

fun(s);

printf("The string after deleted: ");

puts(s);

printf("\n\n ");

}

2、程序改错题删除字符串s 中的所有空白字符

给定程序modi.c 中函数fun 的功能是:删除字符串s 中的所有空白字符(包括Tab 字符、回车符及换行符)。输入字符串时用'#'结束输入。请改正程序中的错误,使它能输出正确的结果。

一维数组练习

一维数组练习

一维数组练习

一维数组练习

6.1 定义如下数组

1.表示20中商品的价格;

2.表示30件邮件的安全邮递情况;

3.统计50个学生在一次考试(满分100,最低分60)中各分数的分布情况;

4.统计一篇文章中各字母的出现频率(所有字母均小写)。

6.2 按照顺序读入十个数据,以逆序的范式输出。X

6.3 计算并输出s =∑=10

1i XiYi ,

其中,Xi 的值为1,3,5,7,……17,19,Yi 的值为21,22,23,……,29,30。

6.4 将a 数组中第一个元素移到最后数组末尾,其余数据依次往前平移一个位置。如:输入 1 2 3 4 5

输出 2 3 4 5 1

6.5 对数组a,输入一个测试数据x ,如果x 存在于数组a,则把x 元素删除;否则将x 插入相应的位置,要求数组仍然有序(假设数组递增)。

6.6编程输入十个正整数,然后自动按从大到小的顺序输出。

6.7 从键盘输入若干个数,将它们按照从小到大的顺序输出。

一维数组的应用

6.8 将一个十进制整数转化成二进制数

6.9总务室在商店购买了八种文具用品,其数量及单价如下表:

序号 1 2 3 4 5 6 7 8

品名圆珠笔铅笔笔记本订书机计算器三角板圆规文件夹

件数 24 110 60 16 26 32 32 42

单价 1.18 0.45 1.8 8.8 78.50 3.28 4.20 2.16

编程计算各物品计价及总计价。

6.10用筛法求出100以内的全部素数,并按每行五个数显示。(要得到不大于某个自然数N 的所有素数,只要在2---N 中将不大于N 的素数的倍数全部划去即可)

一维数组练习题

一维数组练习题

一维数组练习题

一维数组练习题

1、以下对一维数组a进行正确初始化的是__________。

A) int a[10]=(0,0,0,0,0); B) int a[10]={ };

C) int a[ ]={0}; D) int a[10]={ 10*2};

2、以下一维数组a的正确定义是________ 。

A) int a(10); B) int n=10,a[n];

C) int n; D) #define SIZE 10

scanf("%d",&n); int a[SIZE];

int a[n];

3、执行下面的程序段后,变量k中的值为__________。

int k=3,s[2];

s[0]=k; k=s[1]*10;

A) 不定值B) 33

C) 30 D) 10

4、下列程序执行后的输出结果是__________。

main()

{int a,b[5];

a=0; b[0]=3;

printf("%d,%d\n",b[0],b[1]); }

A) 3,0 B) 3 0

C) 0,3 D) 3,不定值

5、已知数组a的赋值情况如下所示,则执行语句a[2]++;后a[1]和a[2]的值

分别是________。

a[0] a[1] a[2] a[3] a[4]

┌──┬──┬──┬──┬──┐

│ 10 │ 20 │ 30 │ 40 │ 50 │

└──┴──┴──┴──┴──┘

A) 20和30 B) 20和31

C) 21和30 D) 21和31

6、以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。main( )

数组编程练习(带答案)

数组编程练习(带答案)

数组编程练习

1、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。

解:

#include

#include

#define N 10

int main()

{

int a[N],i;

for(i=0;i

{

a[i]=rand()%100;

}

printf("array a:\n");

for(i=0;i

{

printf("%4d",a[i]);

}

printf("\n");

return 0;

}

2、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。求该数组的最大值、最小值、总和和平均值并输出。

解:

#include

#include

#define N 10

int main()

{

int a[N],i,max,min,sum;

float ave;

for(i=0;i

{

a[i]=rand()%100;

}

printf("array a:\n");

for(i=0;i

{

printf("%4d",a[i]);

}

printf("\n");

max=a[0];

min=a[0];

sum=0;

for(i=0;i

{

sum=sum+a[i];

if(a[i]>max)

{

max=a[i];

}

if(a[i]

{

min=a[i];

}

}

ave=(float)sum/N;

printf("max=%d,min=%d,sum=%d,ave= %.2f\n",max,min,sum,ave);

return 0;

}

3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。按照升序排列并输出。解:(冒泡法)

c语言第七章数组课后练习题答案

c语言第七章数组课后练习题答案

c语言第七章数组课后练习题答案

第七章数组

学习目的与要求:

1 、重点掌握一维数组的定义和引用;

、基本掌握二维数组的定义和引用;

、重点掌握字符型数组的定义与引用;

、能正确使用字符串处理函数;

、学会使用数组解决实际问题。

重点:

1 、一维数组的定义与引用;

、二维数组的定义与引用;

、字符数组的定义与引用;

第1讲

知识归纳:

1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ;

数组名后必须用方括弧 [ ] ,用其他括弧均错误;

方括弧中的常量表达式表示数组的元素个数;

方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;

2、一维数组的引用:

数组名[ 下标 ] //下标从0

如 int a[10] ;

//可以引用的数组元素为不是本数组元素;

3、一维数组的初始化:

int a[3] ;

a = { 1,3,} ;

可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, ??, float 0.0 ;

如 int a [3]= {1,} ; //a[0] =1 ; a[1]= ; a[2]= 0 ;

在对数组全部元素赋初值时,可以不指定元素个数;

可以在循环控制下,给数组各元素赋值;

如:int a[10] ;

for

a [ i ] = i ;

基础训练

一、选择题

1、在c语言中,引用数组元素时,其数组下标的数据类型允许是。

A)整型常量 B)整型表达式 )整型常量或整型表达式

D)任何类型的表达式

2、要说明一个有10个int元素的数组,应当选择语句。 ) int a[10]; B) int a; C) int a[9] D) int a[11]

一维数组的和函数综合编程练习

一维数组的和函数综合编程练习
printf("学号成绩\n");
Find2(num,score,n,aver);
Find3(score,stu,n);
printf("60分以下人数%d,所占百分比%.2f%%\n",stu[0],((float)stu[0]/n)*100);
printf("60~69人数%d,所占百分比%.2f%%\n",stu[1],((float)stu[1]/n)*100);
(1)程序源代码
#include<stdio.h>
#define SIZE 30
void input(long a[],float b[],int n);
void Find1(long a[],float b[],int n,int m);
float sum(float a[],int n);
void Find2(long a[],float b[],int n,float m);
void Find3(float a[],int b[],int n);
void main(void)
{
lon百度文库 num[SIZE];
float score[SIZE],sum1,aver;
int n,stu[6]={0};
printf("请输入班级人数");

chap4习题练习

chap4习题练习

线上的敌方棋子,所以八皇后问题的所有解满足:8 个皇后都不在同一行、同一 列,或者同一斜线上。 输出所有的解。 提示:使用递归。
要求:读入一个奇数n,按照上述规则,输出n*n 的方阵。 16. **十五个猴子围成一圈选大王,依次1-7 循环报数,报到7 的猴子被淘汰, 直到最后一只猴子成为大王。问,哪只猴子最后能成为大王? 17. **螺旋填数 读入两个整数m,n,输出一个m 行n 列的矩阵,这个矩阵是1~m*n 这些自然 数ห้องสมุดไป่ตู้照右、下、左、上螺旋填入的结果。 例如:读入4, 5, 则输出 1 2 3 4 5 14 15 16 17 6 13 20 19 18 7 12 11 10 9 8 18. ***八皇后问题 在8×8 的国际象棋盘上,放置八个皇后,使任何一个皇后都不能吃掉另一 个。国际象棋规则中,皇后可以吃到任何一个与他在同一行、同一列或者同一斜
… } } 实现方式: 1. delete 方法:把数组pos 位后的所有元素向前移动1 位 2. insert 方法:把数组 pos 位以及之后的元素向后移动 1 位,然后设置 value。要注意的是,insert 时有可能需要数组扩容。有效元素的个数的含义: 对于a 数组,调用一次delete 之后,a 数组的长度不变,长度依然为5,然而有 效元素的个数为4 个。 Tips: insert 方法中,如何判断是否需要扩容:比较有效元素的个数和数组的长 度,如果这两者一致,则需要扩容。 10. *完成数组的冒泡排序算法:给定一个数组:int[] a = {1,3,2,7,5},利用 冒泡排序对其按照从小到大的顺序排序,然后输出结果。 11. *使用第二种算法对数组进行排序 12. *输出杨辉三角 杨辉三角如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 …… 杨辉三角的特点: 1. 第i 行有i 个元素 2. 每一行的第一个元素和最后一个元素都为1 3. 除了1 之外,每个元素的值,都等于上一行同位置的元素以及前一个元 素的和。 例如: 1 4 6 4 1 的下一行 1 a1 a2 a3 a4 1 a1 = 4 + 1 = 5 a2 = 6 + 4 = 10 a3 = 4 + 6 = 10 a4 = 1 + 4 = 5 依次类推。 要求:读入一个整数n,输出杨辉三角的前n 行 13. *数学黑洞6174 已知:一个任意的四位正整数。将数字重新组合成一个最大的数和最小的数 相减,重复这个过程,最多七步,必得6174。即:7641-1467=6174。将永远出不 来。 求证:所有四位数数字(全相同的除外) ,均能得到6174。输出掉进黑洞的 步数。 14. *筛选法求质数:输入一个整数n,求小于这个整数的所有质数。

一维数组选择题练习题

一维数组选择题练习题

一维数组选择题练习题

第五章数组

第一讲一维数组的定义和使用

1.以下定义语句错误的是()

A.int a[5]={1};

B.int c[ ]={1,2,0,0,0};

C.int b[3+3];

D.int i=5,a[i];

2.以下一维数组的定义方式,正确的是()

A.int n=10;

B.#define Max 10

int a[n]; int a[Max];

C.int a[8.5];

D.int a[ ];

3.以下选项中,不能正确赋值的是()

A.char s1[10];s1=”Ctest”;

B.char s2[ ]={‘C’,’t’,’e’,’s’,’t’};

C.char s3[20]=”Ctest”;

D.char s4[10]={“Ctest”};

4.对赋值语句int b[10]={1,2,3,4,5};的正确理解是()

A.将5个初值依次赋给b[1]至b[5]

B.将5个初值依次赋给b[0]至b[4]

C.5个初值依次赋给b[6]至b[10]

D.因为数组长度与初值的个数不相同,所以此语句不正确

5.在C语言中,数组的下标可以是()

A.整型常量表达式

B.整型表达式

C.整型常量或整型表达式

D.任何类型的表达式

6.在C语言中,数组名表示()

A.数组第1个元素的地址

B.数组第2个元素的地址

C.数组所有元素的地址

D.数组最后一个元素的地址

7.若有说明:int a[10];,则对a数组元素的正确引用是()

A.a[10]

B.a[3.5]

C.a(5)

D.a[10-10]

8.以下能正确定义一维数组的选项是()

A.int a[5]={0,1,2,3,4,5};

上机五:C51单片机一维数组和二维数组的应用循环结构练习

上机五:C51单片机一维数组和二维数组的应用循环结构练习
任务1:控制LED小灯亮灭
1.流程图如下:
2.程序如下:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
void main()//主函数
{
while(1)//while死循环
{
if((P3&0x10)==0)//判断P3口上的八位与00010000相与后是否等于0,若是,则P3.4口为低电平,也就是接在P3.4口上的开关按上了。
任务二:循环点亮led小灯
1.流程图如下:
Biblioteka BaiduP1=0xfe;//当P3.4口上的开关按上了,那么就由用户使接在P1.0口上的灯亮。
else if((P3&0x20)==0)//和上面的一样,判断P3.5口上的开关是否按上了。
P1=0Xfd;//当P3.5口上的开关按上了,点亮接在P1.1口上的灯。
else if((P3&0x40)==0)//判断P3.6口的开关是否按上了。
}
3.仿真结果如下:
4.仿真结果分析:
从仿真图以及程序可以看出,当P3.4口上的开关按下时,不管其它三个开关有没有按下,只有受P3.4口开关控制的那个灯(p1.0口上的灯)才亮,以此类推,当只有P3.7口上的开关按下时,P1.3口上的灯才亮,而其它灯不亮,因为控制其它灯的按键没有按下,接在其它灯的IO口处于高电平状态。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基本练习:(釆用文件输入输岀)

1.输入一串小写字母(以〃.〃为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出),例:

输入:aaaabbbccc.

输出:a:4

b:3

c: 3

规定:文件名:tongji. pas 输出文件:tongji. in输出文件tongji. out

程序:

var a:array/ z" ] of integer;

n:char;

begin

assign (input, ' tongji,in' );reset (input);

assign(output,' tongji. out' );rewrite(output);

read (n);

while n〈>'.' do

begin

inc (a[n]);

read(n);

end;

for n:=,a" to,z‘ do

if a[n]<>0 then writeln(n,J :,, a[n]);

close (input);close (output);

end.

2.输入一个不大于32767 (integer)的正整数N,将它转换成一个二进制数,例如:输A: 100 输出:1100100

规定:文件名:erjinzhi. pas 输出文件:erjinzhi. in输出文件erjinzhi. out

程序:

var

a:array[L . 16] of integer;

b, c, d, e: integer;

begin

assign (input,' erjinzhi. in');reset(input);

assign(output,' erjinzhi. out');rewrite(output);

readln(b);

if b>=0 then write(b,)

else write(b,'= -');

b:=abs(b);d:=0;

while b>0 do

begin

inc(d);

a[d]:=b mod 2;

b:=b div 2;

end;

for e:=d downto 1 do write(a[ej);

writein;

readln;

close (input);close(output);

end.

提高练习:(釆用文件输入输岀)

火3.输入一个由10个整数组成的序列,其中序列中任意连续三个整数都互不相同,求该序列中所有递增或递减子序列的个数,例如:

输入:1 10 85932674

输出:6

对应的递增或递减子序列为:

1 10

10 8 5

5 9

9 3 2

2 6 7

7 4

规定:文件名:geshu. pas 输出文件:geshu. in输出文件geshu. out

【拓展】

fuction

keytype:Boolean;

begin

if keytype then ......

【检测任意键回车出外)】

程序:

label 1, 3, 4;

var

c:array[1..10] of longint;

y, b, i:longint;

a, al:boolean;

begin

assign(input,' geshu. if);reset (input); assign(output,' geshu. out');rewrite(output); writ eC Please in put 10 numbers:,);

for i:=l to 10 do read(c[i]);

y: —0; b:=1; i: —0;

3:if c[b]>c[b+l] then

begin

a:=true;

dec (b);

l:inc (b);

while b

begin

if b=10 then begin inc(y) ; break; end;

if c[b]>c[b+l] then

begin

al:=true;

if al=a then goto 1

end

else

begin

inc (y);

goto 3;

end;

end;

end

else

begin

a:二false;

dec (b);

4:inc (b);

wh订e b

begin

if b=10 then begin inc(y) ; break; end;

if c[b]〈c[b+l] then

begin

al:=false;

if al=a then goto 4;

end

else

begin

inc(y);

goto 3;

end;

end;

end;

writein('Then answer is y);

close (input);close(output);

end.

*4.输入N个数,将这N个数按从小到大的顺序显示出來;

规定:文件名:paixu. pas 输出文件:paixu. in输出文件paixu. out

var

a:array[1.. 100000000] of integer;

b, c, d, i, z:longint;

begin

assign (input,' paixu.in,):reset(input);

assign (output,,paixu. out");rewrite(output);

readln(i); //读入输入个数

for i:=l to i do read(a[i]); //循环读入,放入数组

for c:=1 to i do

begin

for b: = (c+l) to i do begin

if a[c]>a[b] then

begin

a[c]:二a[c] xor a[b];

a[b]:=a[c] xor a[b];

a[c]:=a[c] xor a[b];

end;

end;

end;

for z:=l to i do

write(a[z],'');

close (input);close(output);

end.

猴子选大王;有"只猴子围成一圈,每只猴子各一个从1到N中的依次编号,打算从中选出一个大王;经过协商,决定出选大王的规则:从第一个开始循环报数,数到M的猴子出圈,最后剩下來的就是大王。要求:从键盘输入N、M,编程计算哪一个编号的猴子成为大王样例:

输入:7 3

输出:4

相关文档
最新文档