☆C语言实验六(第七章二维数组、字符串数组)
第 1 页 共 7 页 第七章二维数组、字符串数组题 [书面作业]以书面作业形式上交,2010 年 11 月 1 日课堂交三道题的源程序 1、 编写一个主函数用二维数组存放六行的“杨辉三角形” 。 2、 编写一个主函数输入五个国家的名称存放在字符串数组,然后按字母顺 序排列输出。 3、 编写一个主函数实现两串字符串的合并 上课演示名单及提问名单选定1、0821 张成龙;周俊杰 2、0823 陈智勇、戴佳 3、周徐明、顾文斌 单选、填空题0822(重点关注杨辉三角形、Fibonnacii 数列形成) 【第一题具体要求】参考下列三个资料后, ① 教科书 P153 习题 7.6 (实验指导书 P55) ; ② 软件中“第七章填空第 21 题或 2010 春阅读程序第 11 题) ” ;或后面附录 ③ 软件中“第六章填空第 3 题或 2006 秋阅读程序第 11 题) ” 编一主函数,用二维数组存放六行的“杨辉三角形” ,并要求按六行输出该三角 形数据的参考源程序。 第 2 页 共 7 页 【第二题具体要求】输入五个国家的名称按字母顺序排列输出。 编程思路如下五个国家名应由一个二维字符数组来处理。然而C语言规定可 以把一个二维数组当成多个一维数组处理。 因此本题又可以按五个一维数组处 理, 而每一个一维数组就是一个国家名字符串。用字符串比较函数比较各一维 数组的大小,并排序, 输出结果即可。 countrys name China India USA BK Korea 输出 BK China India Korea USA [参考程序] 第 3 页 共 7 页 【第三题具体要求】 阅读并理解题目要求后,用一个主函数编写程序,实现字符串的合并。 【2009 春上机编程题_C06;2010 年秋上机题 C02 改错题中有相同内容】 【编程要求】 1. 编写函数 void fun char *a, char *b, char *c,其功能是先将 b 指向的字符串逆序存放。然后按 a[0]、 b[0]、a[1]、b[1]的顺序合并 a 字符串和 b 字符串到 c 指向的数组中,将 a 或 b 中剩余字符拼接在 c 数组的尾部。 2. 编写 main 函数, 声明三个一维数组 s1、 s2 和 s, 接收键盘输入的两个字符串并保存到数组 s1 和 s2 中, 调用 fun 函数对 s2 字符串做逆序变换,再合并 s1 字符串和 s2 字符串到 s 数组中。将合并后产生的数 组 s 中的字符串输出到屏幕并保存到文件 myf2.out 中。最后将考生本人的准考证号字符串也保存到结 果文件 myf2.out 中。 【测试数据与运行结果】 测试数据s1 字符串为“abcdefg“,s2 字符串为“ ABCD“ 运行结果aDbCcBdAefg 【参考程序】 涉及到书 P374strlen函数。 第 4 页 共 7 页 课堂练习空余时间或课后业余时间练习知识题 【软件第七章】选择题 3 、若有数组 A 和 B 的声明“static char A[]“ABCDEF“,B[]{A, B, C, D, E, F};“,则数组 A 和数组 B 的的长度分别是_____25___。 A.7,6 B.6,7 C.6,6 D.7,7 9 、若有声明“char ss[8] “Red“;“,则 sizeofss的值是___30____。 A. 8 B. 4 C. 3 I D. 1 12、已知有声明“char s[80];“,若需要将键盘输入的一个不含空格的字符串保存到 s 数组中,则下列语句 中正确的是_____________28________。 A. scanf“s“,s; B. scanf“s“,s[0]; C. gets; D. sgetchar; 13、已知有声明“char s[26] “Hello“;“,在程序运行过程中,若要想使数组 s 中的内容修改为“Good“,则 以下语句中能实现此功能的是_______26_____。 A. s“Good“; B. s[20] “Good“; C. strcats, “Good“; D. strcpys, “Good“; 填空 填空 12、以下程序运行时,输出结果第一行为____13_____,第二行为_____14____,第三行为 _____15____。 include define N 3 main { int a[N][N],b[N*N]{1,1},i,j; fori2;iN*N;i b[i]b[i-1]b[i-2]; fori0;iN;i forj0;jN;j a[j][i]b[i*Nj]; fori0;iN;i { forj0;jN;j printf“5d“,a[i][j]; printf“\n“; } } 填空 15、以下程序运行时输出结果中第一行是____11_____,第二行是_____12____。 include void main { int i,j,a[3][3]; fori0;i3;i forj0;j3;j ifij 第 5 页 共 7 页 a[i][j]1; else a[i][j]i-j1; fori0;i3;i { forj0;j3;j printf“ 4d “,a[i][j]; printf“\n “; } } 21下列两题均是杨辉三角形数列 、以下程序运行时输出到屏幕的结果中第二行是 ____13_____,第四行是_____14____。 include define N 6 void main { int i,j,a[N1][N1]; fori1;iN;i { a[i][i]1;a[i][1]1; } fori3;iN;i forj2;ji;j a[i][j]a[i-1][j-1]a[i-1][j]; fori1;iN;i { forj1;ji;j printf“4d“,a[i][j]; printf“\n “; } } 补充题、 以下程序运行时, 输出结果第二行为___21____, 第三行为___22____, 第四行为___23____, 第五行为___24____,第六行为___25____。 include void main { int i,j,a[7][7]; fori1;i6;i { a[i][i]1;a[i][1]1; } fori3;i6;i forj2;ji;j a[i][j]a[i-1]