☆C语言实验六(二维数组、字符串数组)
第七章二维数组、字符串数组题
[书面作业]以书面作业形式上交,11月1日课堂交三道题的源程序
编写一个主函数:用二维数组存放六行的“杨辉三角形”。
编写一个主函数:输入五个国家的名称存放在字符串数组,然后按字母顺序排列输出。
编写一个主函数:实现两串字符串的合并
上课演示名单及提问名单选定:1、0821张成龙;周俊杰
2、0823陈智勇、戴佳
3、周徐明、顾文斌
单选、填空题:0822(重点关注杨辉三角形、Fibonnacii数列形成)
【第一题具体要求】参考下列三个资料后,
教科书P153习题7.6(实验指导书P55);
软件中“第七章填空第21题(或春阅读程序第11题)”;或后面附录
软件中“第六章填空第3题(或秋阅读程序第11题)”
编一主函数,用二维数组存放六行的“杨辉三角形”,并要求按六行输出该三角形数据的参考源程序。
【第二题具体要求】输入五个国家的名称按字母顺序排列输出。
编程思路如下:五个国家名应由一个二维字符数组来处理。然而C语言规定可以把一个二维数组当成多个一维数组处理。 因此本题又可以按五个一维数组处理, 而每一个一维数组就是一个国家名字符串。用字符串比较函数比较各一维数组的大小,并排序, 输出结果即可。
input country's name:
China
India
USA
BK
Korea
输出:
BK
China
India
Korea
USA
[参考程序]
【第三题具体要求】
阅读并理解题目要求后,用一个主函数编写程序,实现字符串的合并。
【春上机编程题_C06;秋上机题C02改错题中有相同内容】
【编程要求】
编写函数void fun( char *a, char *b, char *c),其功能是先将b指向的字符串逆序存放。然后按a[0]、b[0]、a[1]、b[1]……的顺序合并a字符串和b字符串到c指向的数组中,将a或b中剩余字符拼接在c数组的尾部。
编写main函数,声明三个一维数组s1、s2和s,接收键盘输入的两个字符串并保存到数组s1和s2中,调用fun函数对s2字符串做逆序变换,再合并s1字符串和s2字符串到s数组中。将合并后产生的数组s中的字符串输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。
【测试数据与运行结果】
测试数据:s1字符串为"abcdefg",s2字符串为"ABCD"
运行结果:aDbCcBdAefg
【参考程序】:涉及到书P374:strlen()函数。
课堂练习空余时间或课后业余时间练习知识题
【软件第七章】选择题:
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";",则sizeof(ss)的值是___(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. s=getchar();
13、已知有声明"char s[26]= "Hello";",在程序运行过程中,若要想使数组s中的内容修改为"Good",则以下语句中能实现此功能的是_______(26)_____。
A. s="Good"; B. s[20]= "Good"; C. strcat(s, "Good"); D. strcpy(s, "Good");
填空:
填空12、以下程序运行时,输出结果第一行为____(13)_____,第二行为_____(14)____,第三行为_____(15)____。
#include
#define N 3
main()
{ int a[N][N],b[N*N]={1,1},i,j;
for(i=2;i
for(i=0;i
for(j=0;j