版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4 习题 一、单项选择题 】数组元素的非法引用是【 1. 若有说明int a34;则a A. a02*1 B. a13 C. a4-20 D. a04 D 【答案】 的列下标越界。0开始,a04【解析】数组下标从 】C+2. 在语言中,引用数组元素时,其数组下标的数据类型允许是【 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; xa, D. char
2、 c2=x10,x8;B 【答案】 【解析】初始值的个数大于数组的大小,系统会出现编译错误。 4. 对以下说明语句的正确理解是【 】int a10=6,7,8,9,10; a5 a1至A. 将5个初值依次赋给 a4 a0至将5个初值依次赋给 B. a10 至5个初值依次赋给a6 C. 将 D. 因为数组长度与初值的个数不相同,所以此语句不正确B 【答案】 】5. 若有说明:int a 4=0,0;则下面不正确的叙述是【 0 的每个元素都可得到初值 A. 数组a1 B. 二维数组a的第一维大小为 C. 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小 a01可得到初值,其余
3、元素均得不到确定的初值D. 只有元素a00和 D 【答案】【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,和列,所以第一维为个初值说明是21行41。元素a00a01赋初值为0 本题中,有 0。其余元素初值系统默认为 】 进行正确的初始化的语句是【以下能对二维数组6. c ; ; ; ; B 【答案】 C【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A答案错误。初值之间不能有也是错误的。另外初始化时,答案中初始值行数多于数组大小中的行大小, D错误。空位置,故 】 7. 以下不能对二维数组a进行正确初始化的语句是【 A. int a23=0; ;
4、 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 & tcj) cj+1=cj;j-; cj+1=t; for(i=0;i7;i+) coutcit; putchar(n); return 0; A. 对数组元素的升序排列 对数组元素的降序排列 B. 对数组元素的倒序排列 C. D. 对数组元素的随机排列 B 【答案】的大小顺序,如图c0 ,c1【解析】每层外层fo
5、r循环结束会增加对一个元素的排序,确定 4-1所示。c1c2c3c4c5c6c0 23156 234 7 0 34123 56 234 7 0 34123 4-1 第一次排序图的大小顺序,如两个元素比较,插入最前面,确定c0 ,c1, c2 2c2第二次将分别与前 所示。4-2图c6c1c2c3c4c5c0 56 234 7 0 34231156 234 7 0 342311 2356 234 7 0 34231 23t=56 234 7 0 3456231 图4-2 第二次排序 以此类推,外层6次循环后,将无序的数组实现大到小的降序排列。 】9. 下列选项中错误的说明语句是【 0; A. c
6、har a=t,o,y,o,u,B. char a=oyou0; C. char a=oyou0; 0; D. char a=toyouD 【答案】 10. 下述对C+语言字符数组的描述中错误的是【 】 A. 字符数组的下标从0开始 B. 字符数组中的字符串可以进行整体输入/输出 “=”对字符数组整体赋值C. 可以在赋值语句中通过赋值运算符 D. 字符数组可以存放字符串 C 【答案】 】 11. 以下二维数组c的定义形式正确的是【 A. int c3 B. float c3,4 C. double c34 D. float c(3)(4) C 【答案】 12. 已知:int c34;则对数组元
7、素引用正确的是【 】 A. c14 B. c1.50 C. c1+00 以上表达都错误 D. C 【答案】 】若有以下语句,则正确的描述是【13. char a=oyou; char b=t,o,y,o,u; bA. a数组和数组的长度相同 数组长度数组长度小于 B. ab 数组长度b数组长度大于C. a D. a数组等价于b数组 【答案】 C 【解析】 a数组中存放的是字符串,数组大小为6个字节空间,分别存放t,o,y,o,u和0,b数组的长度为5个字节空间,只存放t,o,y,o,u,5个字符。 二、填空题 1. 若有说明:int a3=1,2,3,4,5,6,7;则a数组第一维的大小是_。
8、 【答案】 3 2. 设有数组定义: char array=China; 则数组 array所占的空间为_个字节。 【答案】 6 3. 假定int类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组x在内存中所占字节数是_。 【答案】 20 4. 下面程序的功能是输出数组s中最大元素的下标,请填空。 #include using namespace std; int main() int k, p,s=1, -9, 7, 2, -10, 3; for(p =0, k =p; psk) _ cout kendl; return 0; 【答案】 k=p; 5. 下面程序是删除输入的
9、字符串中字符H,请填空。 #include 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;则执行coutstrlen(strcpy(a,b);语句后的输出结果为_。 【答案】 6 7. 有如下定义语句:int aa3=12,23,34,4,5,6,78
10、,89,45;,则45在数组aa中的行列坐标各为 _。 【答案】 2和2 a00在数组中相对位置的公式为(假设aij列,则计算任一元素m有a若二维数组8. 位于数组的第一个位置上) _。 【答案】 i*m+j+1 9. 定义如下变量和数组: int k; int a33=9,8,7,6,5,4,3,2,1; 则语句for(k=0;k3;k+) coutakk;的输出结果是_。 【答案】 951 【解析】 定义的二维数组可以描述一个方阵: 9 8 7 6 5 4 3 2 1 语句功能是实现该方阵主对角线上元素的输出。 10. 已知:char a15,b15=I love china;则在程序中能
11、将字符串I love china赋给数组a的语句是_。 【答案】 strcpy(a,b); 三、读程序写结果 1. 程序代码如下 #include using namespace std; int main() char arr24; strcpy(arr0,you); strcpy(arr1,me); arr03=&; coutarr0endl; return 0; 【答案】 you&me 2. 程序代码如下: #include using namespace std; int main() char a=a, b, c, d, e, f, g,h,0; int i,j; i=sizeof(
12、a); j=strlen(a); cout i ,jendl; return 0; 【答案】 9,8 3. 程序代码如下: #include using namespace std; int main() int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) couta2-ii; return 0; 【答案】 753 【解析】 程序功能是实现一个方阵次对角线上元素的输出。 4. 程序代码如下: #include using namespace std; int main() char a30=ice to meet you!; strcpy(a+st
13、rlen(a)/2,you); coutaendl; return 0; 【答案】nice to you 5. 程序代码如下: #include using namespace std; int main() int k30=12,324,45,6,768,98,21,34,453,456; int count=0,i=0; while(ki) if(ki%2=0|ki%5=0) count+; i+; cout count ,iendl; return 0; 【答案】8,10 6. 程序代码如下: #include using namespace std; int main() char a
14、30,b30; int k; gets(a); gets(b); k=strcmp(a,b); if(k0) 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函数对原
15、始数组按题目处理后,在主函数中输出的数组a就是处理后的数组,这里函数之间参数传递属于地址传递。 程序代码如下: #include using namespace std; const N=80; int fun(int a, int n) int i,j=1; for(i=1;in;i+) if(aj-1!=ai) aj+=ai; return j; int main() int aN= 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10, i, n=19; 潣瑵?原始数组中的数据是:endl; for(i=0;i19;i+) coutai ; n=fun(a,n
16、); cout删除后,数组中的数据是:endl; for(i=0;in;i+) coutai ; coutendl; return 0; 2编程实现功能:从键盘上输入若干个学生的成绩,当输入负数时表示输入结束,计算学生的平均成绩,并输出低于平均分的学生成绩。 思路:使用循环输入学生的成绩,注意循环条件有2个,分别是输入成绩个数大于数组的大小和输入成绩为负数时结束,同时记录输入成绩的个数n。结束输入后,计算平均值和筛选小于60分的成绩并输出。 程序代码如下: #include using namespace std; int main( ) const N=800; float xN,sum=0
17、,ave,a; int n=0,i; 潣瑵?输入学生成绩:a; while (a=0 & na; 潣瑵?输入的?渼?名学生成绩为:; for (i=0; in; i+) coutxi ; coutendl; ave=sum/n; 潣瑵?平均分:aveendl; 潣瑵?低于平均分的成绩:; for (i=0; in; i+) if (xiave) coutxi ; coutendl; return 0; 3编程实现功能:对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码值之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。 的功能,即
18、:strcmp思路:题目要求实现的功能,相当于字符串处理函数dstr10输dstr2 0 bdce astr11-输出 0ebceastr2 0bcaestr11输出 0Aedcbstr2 图4-3 字符串比较示意图跳出循求不相同的两使用循环逐个比较两个字符串的每个字符,当字符出现不相等时, ASCII码值的差输出。个字符的 程序代码如下: #include using namespace std; #include string.h int main( ) i=0,s; int char str180, str280,c; gets (str1); gets (str2); while (s
19、tr1i=str2i) & (str1i!= 0) i+; s= str1i-str2i; coutsendl; return 0; 编程实现功能:求二维数组周边元素之和。4思路:二维数组中的数据可以看成一个二维矩阵,例如下面的二维数组,输出周边元素 for之和为:sum=48,用两个并列的循环实现求累加和。 2 4 3 1 4 5 2 3 6 4 3 5 4 5 6 7 程序代码如下: #include using namespace std; #include string.h const M=4; const N=4; int main( ) int aMN,i,j,sum=0; for (i=0; iM; i+) for (j=0; ja
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中体育教学计划与试题带答案
- 中级茶叶加工工模拟练习题含参考答案
- gis考研题库及答案
- 院感填空试题及答案
- 产后出血预防与处理培训试题(附答案)
- 牙科基本知识题库及答案
- 教练员笔试题附答案
- 医院管理中级考试题库及答案
- 2025年医疗三基三严知识试题库及参考答案
- 计算机网络基础试题及答案
- 2025年司法鉴定人资格考试历年真题试题及答案
- 江苏省连云港市2024-2025学年第一学期期末调研考试高二历史试题
- 生成式人工智能与初中历史校本教研模式的融合与创新教学研究课题报告
- 2025年湖北烟草专卖局笔试试题及答案
- 文化馆安全生产制度
- (2025年)保安员(初级)证考试题库及答案
- 2026年浙江省军士转业岗位履职能力考点练习题及答案
- 2026年开工第一课复工复产安全专题培训
- 2026年检察院书记员面试题及答案
- 安全设备设施安装、使用、检验、维修、改造、验收、报废管理制度
- 2026届四川省成都市2023级高三一诊英语试题(附答案和音频)
评论
0/150
提交评论