收藏 分享(赏)

数组习题.doc

上传人:精品资料 文档编号:8064686 上传时间:2019-06-07 格式:DOC 页数:40 大小:127KB
下载 相关 举报
数组习题.doc_第1页
第1页 / 共40页
数组习题.doc_第2页
第2页 / 共40页
数组习题.doc_第3页
第3页 / 共40页
数组习题.doc_第4页
第4页 / 共40页
数组习题.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、1第七章 数组 (8 学时)学习目的与要求:1 、重点掌握一维数组的定义和引用;2 、基本掌握二维数组的定义和引用;3 、重点掌握字符型数组的定义与引用;4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。重点: 1 、一维数组的定义与引用;2 、二维数组的定义与引用;3 、字符数组的定义与引用; 第 1 讲知识归纳:1、一维数组的定义:类型说明符数组名 常量表达式 ;(1) (1) 数组名后必须用方括弧 ,用其他括弧均错误;(2) 方括弧中的常量表达式表示数组的元素个数;(3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;2、 一维数组的引用:数组

2、名 下标 /下标从 0 开始,可以是整型常量或整型表达式;(1) 注意:数组元素引用时,不要超出数组范围;如 int a10 ; /可以引用的数组元素为 a0a9 , a10 不是本数组元素;3、一维数组的初始化:(1) (1) 可以在定义数组后,立刻赋值;如 int a 3 = 1,3, 5 ;但下面这样是错误的:int a3 ; a = 1,3, 5 ;2(2) (2) 可以给数组的部分元素赋值,不赋值的元素,默认值为 int 0, char, , float 0.0 ;如 int a 3= 1,3 ; /a0 =1 ; a1= 3 ; a2= 0 ;(3) 在对数组全部元素赋初值时,可以

3、不指定元素个数;(4) 可以在循环控制下,给数组各元素赋值;如:int a10 ;for ( i=0 ; i =0j-;则该程序段的功能是(对 a 数组降序排)。三、编程题1、有一个已经排好序的数组,现输入一个数,要求按原来排序的规律将它插入到数组中。#includemain() int a11=3,4,7,9,10,13,14,15,18,20;int i,j,n;scanf (“%d“,i=0;while (ii; j-)aj=aj-1;ai=n;break;else i+;if (i=10) a10=n;for (i=0;imain() char str30;16scanf (“%s“,

4、str);printf(“%s“,str);运行程序,输入:Fortran Language运行结果:2、执行语句序列char s110=“abcdef“, s220=“inter“;scanf(“%s“,s1);int k=0,j=0;while(s2k) k+;while(s2j) s2-k=s1+j;时,若键盘输入的是 net,则 s1 中的字符串是() ,s2 中的字符串是() 。三、编程题1、输入一个字符串,统计指定字符的个数。例如:字符串“abcddcba“,指定字符c,则统计个数为 2。2、打印以下图案:* * * * * * * * * * * * * * * * *17第 4

5、 讲知识归纳:1、 1、 puts( )函数:(1) 格式:puts(字符数组名) ; (2) 作用:将一个字符串(以0结束的字符序列)输出到终端;(3) 特点:输出完字符串自动换行;2、 2、 gest( )函数:(1) 格式:gets(字符数组名) ; (2) 作用:从终端输入一个字符串到字符数组,并返回字符数组的起始地址;(3) 特点:空格( )做为有效字符输入;3、 3、 strcat( )函数:(1) 格式:strcat(字符数组 1,字符数组 2) ; (2) 作用:将字符数组 2 中的字符串,连接在字符数组 1 中的字符串后,并返回字符数组 1 的首地址;(3) 要求:字符数组

6、1 足够大;4、 4、 strcpy( )函数:(1) 格式:strcpy(字符数组 1,字符串 2) ; (2) 作用:将字符串 2,复制到字符数组 1 中去,并返回字符数组 1 的首地址;(3) 要求:字符数组 1 足够大;且字符数组 1 必须写成数组名形式,字符串 2 可以使字符数组名,也可以是一个字符串;5、 5、 strcmp( )函数:(1) 格式:strcmp(字符串 1,字符串 2) ; (2) 作用:对两个字符串自左至右逐个字符相比 (按 ASCII码值大小比较),直到出现不同的字符或遇到0为止。并返回字符数组 1 的首地址;(3) 要求:字符数组 1 足够大;且字符数组 1

7、 必须写成数组名形式,字符串 2 可以使字符数组名,也可以是一个18字符串;6、 6、 strlen( )函数:基础练习(A)一、选择题、有两个字符数组 a、b, 则以下正确的输入格式是() 。A) gets (a,b); B) scanf (“%s%s“,a,b);C) scanf (“%s%s“,D) gets (“a“), gets (“b“);、判断字符串 a 和 b 是否相等, 应当使用() 。A) if (a=b) B) if (a=b)C) if (strcpy(a,b) D) if (strcmp(a,b)、下述对 C 语言字符数组的描述中错误的是() 。A)字符数组可以存放字

8、符串B)字符数组的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符“=“对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较、运行下面程序段的输出结果是() 。char s12=“string“;printf(“%d“,strlen(s);A) 12 B) 7 C) 6 D) 55、函数调用 strcat ( strcpy ( str1,str2 ), str3 )的功能是() 。)将字符串 str1 复制到字符串 str2 中,再连接到字符串 str3 之后)将字符串 str1 连接到字符串 str2 之后,再复制到字符串 str3 之后)将字符串 str2 复制到

9、字符串 str1 中,再将字符串str3 连接到字符串 str1 之后)将字符串 str2 连接到字符串 str1 之后,再将字符串 str1 复制到字符串 str3 之中二、填空题1、已知 s1, s2,和 s3 是三个有足够元素个数的字符串数组 ,19利用标准函数并借助于 s3,可以交换 s1 和 s2 中的字符串;实现这一交换过程的语句序列是。2、已知 s1,s2 和 s3 是三个足够元素个数的字符串变量,其值分别是“aaa“,“bbbb“和“ccccc“,执行语句strcat(strcpy(s2, s3), s1);后,s1 ,s2 和 s3 的值分别是。3、已知 s1 和 s2 是两

10、个字符串变量,要求显示输出s1, s2 中较大的那个字符串,若相等,两个都输出;利用标准函数实现这一输出过程的语句序列是。4、执行语句序列chat str1 =“ABCD“,str210=“XYZxyz“;for(int i=0;str2i=str1i;i+) ;后,数组 str2 中的字符串是。三、程序填空、下面程序的功能是将一个字符串 str 的内容颠倒过来,请将程序补充完整。#include “string.h“main() int i,j, ;char str=“0123456789“;for ( i=0,j=strlen(str) ; i# include 20main() char

11、 str100=“How do you do“;strcpy (str, “is she“);printf (“%sn“,str);输出结果:能力提高(B)一、选择题、有下面的程序段char a3,b=“china“;a=b; printf(“%s“,a);则() 。A)运行后将输出 ch B)运行后将输出 ChC)运行后将输出 chi D)编译出错、下面描述正确的是() 。A)两个字符串所包含的字符个数相同时,才能比较字符串B)字符个数多的字符串比字符个数少的字符串大C)字符串 “STOP“与“STOP “相等D)字符串 “hat“小于字符串“het“3、下面程序段的运行结果是() 。cha

12、r c=“tb0willn“;printf ( “%d“, strlen (c);A) 14 B) 3 C) 9 D) 字符串中有非法字符,输出值不确定、下面程序段的运行结果是() 。 (其中表示空格)char a7=“abcdef“,b4=“ABC“;strcpy (a,b);printf (“%c“,a5);A) B) 0 C) e D) f二、填空题、已知 s1,s2 和 s3 是三个足够元素个数的字符串变量,21其值分别是“abc“,“abf“ 和“abcd“ ,执行语句 strcat(s3, strcmp(s1, s2)0 ? s1:s2);后,s1,s2和 s3 的值分别为。、写出

13、下面程序的功能是。#include main() char s80;int i,j;gets(s);for(i=j=0;si!=0;i+)if(si!=c)sj+=siputs(s);三、阅读程序,写出执行结果、下面程序的运行结果是()#include main()char a=“morning“,t;int i,j=0;for(i=1;icdd(表示回车),则下面程序的运行结果是()#include #define N 6 main() char cN; int i=0;for (;i# include main() char str100=“How do you do“;strcpy( s

14、tr+strlen(str)/2,“es she“);printf (“%sn“,str);四、编程题1、设计一函数,将一个字符串中的所有大写字母转换成相应的小写字母。链接二级考试一、 一、选择题1、执行下面的程序段后,变量 k 中的值为 ( )。A) 不定值 B) 33 C) 30 D) 10int k=3, s2;s0=k; k=s1*10;(2000 年 4 月)2、设有数组定义: char array =“China“; 则数组 array 所占的空间为( )。A) 4 个字节 B) 5 个字节 C) 6 个字节 D) 7 个字节(2000 年 4 月)3、下列程序执行后的输出结果是(

15、 )。23A) youstrcpy(arr,“you“); strcpy(arr1,“me“);arr03=printf(“%s n“,arr); (2000 年 4 月)4、执行下列程序时输入:123456789,输出结果是( )。A) 123,456,789 B) 1,456,789C) 1,23,456,789 D) 1,23,456main() char s100; int c, i;scanf(“%c“, scanf(“%d“, scanf(“%s“,s);printf(“%c,%d,%sn“,c,i,s); (2000 年 4 月)5、有如下程序main() int n5=0,0,

16、0,i,k=2;for(i=0;i=0;i-) ai=10-i;printf(“%d%d%d”,a2,a5,a8);A) 258 B) 741 C) 852 D) 36(2001 年 9 月)12、以下数组定义中不正确的是( )。A) int a23;B) int b3=0,1,2,3;C) int c100100=0;D) int d3=1,2,1,2,3,1,2,3,4; (2001 年 9 月)13、以下程序的输出结果是( )。main() int a44=1,3,5,2,4,6,3,5,7;printf(“%d%d%d%dn”,a03,a12,a21,a30;A) 0650 B) 14

17、70 C) 5430 D) 输出值不定(2001 年 9 月)14、以下程序的输出结果是( )。main() char st20= “hello0t”;printf(%d %d n”,strlen(st),sizeof(st);A) 9 9 B) 5 20 C) 13 20 D) 20 20(2001 年 9 月)15、以下程序段的输出结果是( )。char s=“141141abct“;printf (“%dn“,strlen(s);A) 9 B) 12 C) 13 D) 14(2002 年 4 月)16、以下程序的输出结果是( )。26main() char cf35=“AAAA“,“BB

18、B“,“CC“;printf(“%s“n“,ch1);A) “AAAA“ B) “BBB“ C) “BBBCC“ D) “CC“(2002 年 4 月)17、以下程序的输出结果是( )。main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1;for(i=0;imain() char str100,str2100,c;int i,s;printf(“n input string 1:n“); gest(str1);printf(“n input string 2:n“); gest(str2);i=0;while(strli=str2is=;printf(“%dn“,s

19、);29 (1998 年 9 月)3、若想通过以下输入语句使 a 中存放字符串 1234,b 中存放字符 5,则输入数据的形式应该是_。char a10,b;scanf(“a=%s b=%c“,a, (1999 年 4 月)4、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。main( ) float x1000, sum=0.0, ave, a;int n=0, i;printf(“Enter mark:n“) ;scanf(“%f“,int i, j, k;k=strlen(a);30for(i=0; i=k-2;

20、 i+=2)for(j=i+2; j=k; )if( ) t=ai; ai=aj; aj=t; puts(a);printf(“n“); (2000 年 4 月)6、下列程序段的输出结果是_。main() char b=”Hello,you”;b5=0; printf(“%s n”, b ); (2001 年 4 月)7、若变量 n 中的值为 24,则 prnt 函数共输出行,最后一行有个数。void prnt(int n, int aa ) int i;for(i=1; i=n;i+) printf(“%6d”, aai);if( !(i%5) ) printf(“n”); printf(“n”); (2001 年 4 月)8、若已定义:int a10, i;,以下 fun 函数的功能是:在第一个循环中给前 10 个数组元素依次赋 1、2 、 3、4、5 、6、7、8 、9、10;在第二个循环中使 a 数组前 10 个元素中的值对称折叠,变成 1、2 、3、4、 5、5、4、3 、2、1。请填空。fun( int a ) int i;for(i=1; i=10; i+) =i;for(i=0; i5; i+) =ai; (2001 年 9 月)9、若有定义语句: char s100,d100; int j=0, i=0;,且 s 中已赋字符串,请填空以实现字符串拷贝。 (注:不

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报