实验3数组与指针.docx

上传人:b****6 文档编号:6117290 上传时间:2023-01-03 格式:DOCX 页数:8 大小:18KB
下载 相关 举报
实验3数组与指针.docx_第1页
第1页 / 共8页
实验3数组与指针.docx_第2页
第2页 / 共8页
实验3数组与指针.docx_第3页
第3页 / 共8页
实验3数组与指针.docx_第4页
第4页 / 共8页
实验3数组与指针.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

实验3数组与指针.docx

《实验3数组与指针.docx》由会员分享,可在线阅读,更多相关《实验3数组与指针.docx(8页珍藏版)》请在冰豆网上搜索。

实验3数组与指针.docx

实验3数组与指针

实验3-数组与指针

实验3数组与指针

程序填空

1.

本题分值:

10

题目描述:

随机产生10个整数存放到数组中(下标0的位置不放,从下标1开始),输入待查找的整数x,查找x是否存在于这10个数中。

若存在,则输出x(最初)出现在这批数中的位置序号(例如1或2或……);若不存在x,则输出“不存在”。

以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include

usingnamespacestd;

voidmain()

{

inta[101],k,x;

for(k=1;k<=10;k++)//从数组中下标1的元素开始存放数据

{

a[k]=rand()%101;//产生0~100之间的的整数

cout<

}

cout<

cin>>x;//输入待查找数x

for(k=1;k<=10;k++)

if(a[k]==x)__

(1)__;//若发现了x,则不用继续循环、继续查找

if(k__

(2)__)

cout<<"x存在,它的位置序号是:

"<<__(3)__<

else

cout<<"不存在!

"<

}

2.

本题分值:

10

题目描述:

编写一个程序,可以根据用户输入的不同值,建立不同长度的整型数组。

给这个数组赋值,并求其所有元素之和。

请填空使程序完整,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include

usingnamespacestd;

voidmain()

{

intn,i,sum=0,*p;

cin>>n;//输入一个整数n

p=newint[__

(1)__];//创建一个含有n个整数的整数数组

for(i=0;i

cin>>__

(2)__;

for(i=0;i

sum=sum+*(p+i);

cout<

delete__(3)__;//删除动态数组p

}

3.

本题分值:

10

题目描述:

输入5个整数依次存放到数组a中(从下标1开始存放),再输入待插入的整数x以及它要插入到数组中的位置下标k(1≤k≤5),要求插入后不影响a中原来下标为k到5的所有元素的先后顺序。

请按照数组中的元素顺序,输出插入前的5个整数和插入后的这6个整数。

提示:

插入时,应该先从后往前地(从下标5到下标k)将每个数组元素都后移1个位置,最后再将x存放到下标k的元素中。

请在计算机上调试以下程序以补足其中的空格。

代码:

#include

#include

usingnamespacestd;

voidmain()

{

inta[101],k,j,x;

//分别输入5个整数

for(j=1;j<=5;j++)cin>>a[j];

cin>>x>>k;//输入待插入的数x和插入的位置下标k

if(k<1||k>5)exit(0);

for(j=5;j>=k;__

(1)__)//从下标5到下标k,将每个数组元素都后移1个位置

a[j+1]=a[j];

__

(2)__=x;

//输出将x插入到下标k后的这6个数

for(j=1;j__(3)__;j++)cout<

cout<

}

4.

本题分值:

10

题目描述:

输入字符串s及待删除的字符ch,将s中所有与ch相同的字符都删除掉,输出删除后得到的新串。

以下程序是直接在数组s中进行删除,得到的新串仍然在数组s中。

请在计算机上调试该程序以补足其中的空格。

代码:

#include

#include

usingnamespacestd;

voidmain()

{

chars[81],ch;

intk,j;

gets(s);//输入一个字符串后按回车键,该字符串存入s中

cin>>ch;//输入待删除的字符后按回车键

//k代表s中每个字符的下标

//j代表未删除(保留)字符应放在s中新的位置下标

for(k=j=0;s[k]!

='\0';k++)

if(s[k]!

=ch)

{

s[j]=__

(1)__;

__

(2)__;

}

__(3)__='\0';//得到的新串末尾要放结束符

cout<

}

5.

本题分值:

10

题目描述:

输入一行字符串,分别统计其中英文字母、空格、数字和其他字符的个数,并输出。

请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。

代码:

#include

#include

usingnamespacestd;

voidmain()

{

inta,b,c,d;//a,b,c,d分别用来记录英文字母、空格、数字和其他字符的个数

chars[101],*p;

p=s;//指针p指向字符串s的第一个字符

cin.getline(s,101);//输入一个含有空格的字符串存入s中

a=b=c=d=__

(1)__;

while(__

(2)__)//当p指向的字符不是字符串结束标记时循环

{

if(*p>='A'&&*p<='Z'||*p>='a'&&*p<='z')//如果p指向的是一个英文字母字符

a++;

else

if(*p=='')//如果p指向的是一个数字字符

b++;

else

if(__(3)__)//如果p指向的是一个数字字符

c++;

else

__(4)__;

p++;//使指针p指向字符串中的下一个字符

}

cout<

}

程序设计

6.

本题分值:

10

题目标题:

陶陶摘苹果。

时间限制:

1000MS

内存限制:

32768KB

题目描述:

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。

苹果成熟的时候,陶陶就会跑去摘苹果。

陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。

假设她碰到苹果,苹果就会掉下来。

输入描述:

输入包括两行数据。

第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。

第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出描述:

输出只包含一个整数,表示陶陶能够摘到的苹果的数目。

样例输入:

100200150140129134167198200111

110

样例输出:

5

7.

本题分值:

10

题目标题:

歌唱比赛选手成绩计算。

时间限制:

1000MS

内存限制:

32768KB

题目描述:

歌唱大赛选手成绩这样计算:

去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。

现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。

提示:

将6个评分存入score数组中。

关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。

输入描述:

依次输入6位评委的打分score1~score6,每个scorei都是double型,且满足0≤scorei≤100。

输出描述:

输出一行,表示该选手的最后得分。

提示:

输出时不需要对精度特殊控制,用cout<

样例输入:

78.892.387.694.885.894.8

样例输出:

90.125

8.

本题分值:

10

题目标题:

神秘的字符加、解密技术。

时间限制:

1000MS

内存限制:

32768KB

题目描述:

插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。

例如,对于明文:

China,在间隔为1的位置依次插入一个字母而形成密文:

Coheifnia。

因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。

请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。

提示:

定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。

解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。

输入描述:

输入一行:

密文字符串。

输出描述:

输出有一行:

翻译后的明文字符串。

样例输入:

Coheifnia

样例输出:

China

9.

本题分值:

10

题目标题:

字符串大小写转换。

时间限制:

1000MS

内存限制:

32768KB

题目描述:

输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:

对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。

要求用指针对字符串进行处理。

输入描述:

输入一行:

长度小于20的不含空格的字符串。

输出描述:

输出一行:

处理以后的字符串。

样例输入:

ILoveC++!

样例输出:

ilOVEc++!

10.

本题分值:

10

题目标题:

打印极值点下标。

时间限制:

3000MS

内存限制:

32768KB

题目描述:

在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。

注意:

数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。

输入描述:

有2行输入:

第一行是此数组的元素个数k(4

输出描述:

输出为1行:

依次对应于数组的所有极值点下标值,下标值之间用空格分隔。

样例输入:

15

12121221122222222222217636312342567673

样例输出:

23101214

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1