您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 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语言规定可以把一个二维数组当成多个一维数组处理。因此本题又可以按五个一维数组处理,而每一个一维数组就是一个国家名字符串。用字符串比较函数比较各一维数组的大小,并排序,输出结果即可。inputcountry'sname:ChinaIndiaUSABKKorea输出:BKChinaIndiaKoreaUSA[参考程序]第3页共7页【第三题具体要求】阅读并理解题目要求后,用一个主函数编写程序,实现字符串的合并。【2009春上机编程题_C06;2010年秋上机题C02改错题中有相同内容】【编程要求】1.编写函数voidfun(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【参考程序】:涉及到书P374:strlen()函数。第4页共7页课堂练习空余时间或课后业余时间练习知识题【软件第七章】选择题:3、若有数组A和B的声明staticcharA[]=ABCDEF,B[]={'A','B','C','D','E','F'};,则数组A和数组B的的长度分别是_____(25)___。A.7,6B.6,7C.6,6D.7,79、若有声明charss[8]=Red;,则sizeof(ss)的值是___(30)____。A.8B.4C.3ID.112、已知有声明chars[80];,若需要将键盘输入的一个不含空格的字符串保存到s数组中,则下列语句中正确的是_____________(28)________。A.scanf(%s,s);B.scanf(%s,s[0]);C.gets();D.s=getchar();13、已知有声明chars[26]=Hello;,在程序运行过程中,若要想使数组s中的内容修改为Good,则以下语句中能实现此功能的是_______(26)_____。A.s=Good;B.s[20]=Good;C.strcat(s,Good);D.strcpy(s,Good);填空:填空12、以下程序运行时,输出结果第一行为____(13)_____,第二行为_____(14)____,第三行为_____(15)____。#includestdio.h#defineN3main(){inta[N][N],b[N*N]={1,1},i,j;for(i=2;iN*N;i++)b[i]=b[i-1]+b[i-2];for(i=0;iN;i++)for(j=0;jN;j++)a[j][i]=b[i*N+j];for(i=0;iN;i++){for(j=0;jN;j++)printf(%5d,a[i][j]);printf(\n);}}填空15、以下程序运行时输出结果中第一行是____(11)_____,第二行是_____(12)____。#includestdio.hvoidmain(){inti,j,a[3][3];for(i=0;i3;i++)for(j=0;j3;j++)if(ij)第5页共7页a[i][j]=1;elsea[i][j]=i-j+1;for(i=0;i3;i++){for(j=0;j3;j++)printf(%4d,a[i][j]);printf(\n);}}21(下列两题均是杨辉三角形数列)、以下程序运行时输出到屏幕的结果中第二行是____(13)_____,第四行是_____(14)____。#includestdio.h#defineN6voidmain(){inti,j,a[N+1][N+1];for(i=1;i=N;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i=N;i++)for(j=2;ji;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i=N;i++){for(j=1;j=i;j++)printf(%4d,a[i][j]);printf(\n);}}补充题、以下程序运行时,输出结果第二行为___(21)____,第三行为___(22)____,第四行为___(23)____,第五行为___(24)____,第六行为___(25)____。#includestdio.hvoidmain(){inti,j,a[7][7];for(i=1;i=6;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i=6;i++)for(j=2;ji;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i=6;i++){for(j=1;j=i;j++)printf(%4d,a[i][j]);printf(\n);}}第6页共7页【参考资料】一、sizeof():按照书P365规定,它是关键字。引用格式有:1、sizeof(表达式):表达式结果按照书P47说法“C语言编译系统将浮点型常量作为双精度来处理”和遵循书P54图3-10规定来确定其数值。例如:#includestdio.hvoidmain(){intx=sizeof(1/3.0);printf(\n%d\n,x);}其值显示为:82、sizeof(类型说明符):TC30下,int为2(书P43表3-1);long为4;float为4(书P46表3-2);VC++下,int和long为4;float为4(书P46表3-2);例如:2010春基本概念第3题在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占______(3)_______字节。此题标准答案是:2。实际江苏省出题老师是指TC30条件下的数据。若是在VC++,则答案为4。3、sizeof(字符串常量或变量):该值取决于串字符串长度加上1(字符串结束符'\0'),例如实验五上机练习题5,strlen()函数遇到第一个字符串结束符'\0',计数结束;而sizeof()以a[7]中7为准。又例如软件第七章选择第9题:若有声明charss[8]=Red;,则sizeof(ss)的值是___(30)____。A.8B.4C.3D.1而sizeof()以ss[8]中8为准。若无下标,则为字符总个数加1。4、#defineLENsizeof(structstudent):见书P298结构体中建立链表时,度量结构体的长度之用。第7页共7页二、数制变换:
本文标题:C语言实验六(第七章二维数组字符串数组)
链接地址:https://www.777doc.com/doc-2907938 .html