数组c++-习题答案解析_第1页
数组c++-习题答案解析_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 4/4_数组c+_习题答案解析 习题 4 一、单项选择题 1. 若有说明int a34;则a数组元素的非法引用是【】 A. a02*1 B. a13 C. a4-20 D. a04 【答案】D 【解析】数组下标从0开始,a04的列下标越界。 2. 在C+语言中,引用数组元素时,其数组下标的数据类型允许是【】 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 【答案】C 3. 以下不正确的定义语句是【】 A. double x5=2.0,4.0,6.0,8.0,10.0; B. int y5=0,1,3,5,7,9; C. char c1=1,2,3,4,5

2、; D. char c2=x10,xa,x8; 【答案】B 【解析】初始值的个数大于数组的大小,系统会出现编译错误。 4. 对以下说明语句的正确理解是【】 int a10=6,7,8,9,10; A. 将5个初值依次赋给a1至a5 B. 将5个初值依次赋给a0至a4 C. 将5个初值依次赋给a6至a10 D. 因为数组长度与初值的个数不相同,所以此语句不正确 【答案】B 5. 若有说明:int a 4=0,0;则下面不正确的叙述是【】 A. 数组a的每个元素都可得到初值0 B. 二维数组a的第一维大小为1 C. 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小 D. 只有

3、元素a00和a01可得到初值,其余元素均得不到确定的初值 【答案】D 【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。元素a00和a01赋初值为0 ,其余元素初值系统默认为0。 6. 以下能对二维数组c进行正确的初始化的语句是【】 A. int c3=3,3,4; B. int c3=3,3,4; C. int c32=3,3,4,5; D. int c3=3,3; 【答案】B 【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A答案错误。C 答案中初始值行数多于数组大小中的行大小,也是错误的。另外

4、初始化时,初值之间不能有空位置,故D错误。 7. 以下不能对二维数组a进行正确初始化的语句是【】 A. int a23=0; B. int a3=1,2,0; C. int a23=1,2,3,4,5,6; D. int a3=1,2,3,4,5,6; 【答案】C 8. 阅读下面程序,则程序段的功能是【】 #include using namespace std; int main() int c=23,1,56,234,7,0,34,i,j,t; for(i=1;i=0 j-; cj+1=t; for(i=0;i using namespace std; int main() int k,

5、p,s=1, -9, 7, 2, -10, 3; for(p =0, k =p; psk) _ cout using namespace std; int main() char s80; int i,j; gets(s); for(i=j=0;si!=0;i+) if(si!=H) _ sj=0; puts(s); return 0; 【答案】sj+ =si; 【解析】此处相当于补充了2条语句,等价于sj =si; j+;。 6. 已知:char a20= abc,b20= defghi;则执行cout using namespace std; int main() char a30=nic

6、e to meet you!; strcpy(a+strlen(a)/2,you); cout0) puts(a); else if(k,所以结果输出字符串a。 四、编程题 1编程实现功能:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由 小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 思路:fun函数的2个形式参数,分别接收数组名,即数组的首地址,和数组中存放的原始数据的个数,fun函数对原始数组按

7、题目处理后,在主函数中输出的数组a就是处理后的数组,这里函数之间参数传递属于地址传递。 程序代码如下: #include using namespace std; const N=80; int fun(int a, int n) int i,j=1; for(i=1;i using namespace std; int main( ) const N=800; float xN,sum=0,ave,a; int n=0,i; couta; while (a=0 xn=a; n+; cina; cout using namespace std; #include string.h int main( ) char str180, str280,c; int i=0,s; gets (str1); gets (str2); while (st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论