C语言数组试题
第4章数组
4.1内容概述
本章主要介绍了数值数组和字符数组的定义、初始化、元素引用和数组数据的输入与输出字符数组实现字符串、字符串函数的实现与调用.指针数组与数组指针定义、元素引用。利用一维数组实现如挑数、排序、求和等实际应用问题。利用二维数组实现矩阵的应用问题。利用字符数组实现字符串的各种操作。本章知识结构如图4.1所示。
数组
图4。 1第章知识结构图
考核要求:掌握一维数组、二维数组、字符数组和指针数组的定义和初始化掌握数组元素存储地址计算;掌握数组元素的下标法、指针法引用掌握字符数组与字符串的区别与联系掌握有关字符串处理函数的使用方法能利用一维数组、二维数组解决向量、矩阵等实际应用问题.
重点难点本章的重点是一维数组、二维数组和字符数组的定义、
C语言数组试题
初始化、元素引用字符串处理函数的使用。本章的难点是字符串与字符数组的区别指针数组和数组元素的指针法引用。
核心考点:数组的定义、初始化和数组元素的引用方法一维数组、二维数组和字符数组的实际应用字符串的处理方法.
4 2典型题解析
【例4.1 】以下对一维数组a的定义中正确的是( 。
A. hra 0) B t a[. .1 0]
C. int a[5] D. int = 0; i a[
解析:一维数组定义的一般形式为
类型标识符 数组名常量表达式]
其中常量表达式可以是任意类型,一般为算术表达式其值表示数组元素的个数即数组长度.
答案:C
【例4。 】以下对一维数组的定义中不正确的是( )。
。 doubl x5]={2。 0,4 0 6。 0 8.0, .}
B。 nt 5= 1 3 ,7 }
. cha ch1 [ ]={’ ’ ’2 '3’ , '4' , ’5 };
D。 char h ]= ’\x0’ , ' xa’ '\x8'};
解析:可以对一维数组的全部元素或部分元素赋初值。在对全部数组元素初始化时数组长度可以省略.若数组长度没有省略则初
C语言数组试题
始化列表中值的个数不能超过数组的长度。
答案B
【例.3】以下对二维数组的定义中正确的是 )。
. t a[4][ 1 2 3 ,5,6} B. nt ] 3
C。 n a[ 3 = ,2 4 5 6 ; D. in a[ []={{ ,2, {4 5 6 };
解析定义二维数组时,若按一维格式初始化,则第一维的长度可以省略,此时,系统可根据初始化列表中值的个数及第二维的长度计算出省略的第一维长度,但无论如何,第二维的长度不能省略。没有初始化时每一维的长度都不能省略。
答案:
【例4。 4】假定一个int型变量占用两个字节,若有定义 int x[
0]{0 2 4 则数组x在内存中所占字节数是 )。
A。 3 B。 6 10.2
解析一维数组在内存中所占的字节数为数组长度×izo(元素类型 .
答案:D
【例4 5】以下程序的输出结果是 ).ma )
{ int a[4 4={ 1 ,3, , ,4 6 ,{3,5 }
nt ”%d%%dd\n”a[0 [3 a[1 [2] a[2 1]
C语言数组试题a[3 ;
}
065 B. 1470 C 54 D.输出值不定
解析定义的数组a为4行4列,且前三行三列元素已初始化根据C语法规定未初始化的元素值为。
答案A
【例4.6】以下程序的输出结果是( 。main
{ it m[ [3 = 1 4,7 2 5 8 , ; int i j k=;for(i0; i< i++) p intf("%d ",m[ [i
}
A。 4 5 B 2 5 C。 3 6 9
D.7 9
解析根据初始化列表中值的个数和第二维的长度,可求得第一维长度为3.第一行的元素值依次为1 ,7 第二行元素值依次为25,8;第三行元素值依次为3,6,9.循环执行三次依次输出行标为的三个元素即第三行的3个元素。
答案
【例.7】以下程序的输出结果是( ).mai()
itb3 [ ={0, 0 1 2 0 1 }, i j t=0
C语言数组试题for(i=0 i 〈3 + for j ;j<=i + t= b[i] b[ [ ]];prin "d\n",t);
}
3 B。 C。 1。 9
解析:程序中,引用的数组元素的行下标为循环变量 列下标为数组元素b[j j].外层循环共进行3次对于每次外循环内层循环只执行一次即j= 所以变量t的值为元素b[0 b0 [0 、b ] 1] ] 、 2 [b[2 []]的和。由于数组元素b[00、 b[1][1]、 b[ ]的值分别为0、 、 2 所以t的值为:0+0++ 。
答案A
【例4 】若有定义 int a[2] 4] 则引用数组元素正确的是 。
A [0][ B. a0] 4] C。 a2][]
D。 a[2][2+ ]
解析:引用二维数组元素时行下标范围为0~行数-1 列下标范围为0列数— 。
答案
【例。 9】若有定义 intaa[8] 则不能代表数组元素a 1
C语言数组试题
地址的是 .
A & 0 +1 B。 &a .&aa[0 + D.aa+1
解析: aa 1]、 aa0+1和aa+都是数组元素a[ 的地址。 由于a[0]是地址值常量,不能进行自加、 自减运算,所以选项不能代表a ]地址。
答案:C
【例4 0】下列程序执行后的输出结果是( 。main()
{ int [ 3], *, i p= 0 [0 for(i=0; i9; i++) [i]= 1 ;printf("d\n" 1 [2
}
A. B 6 C 9
D 随机数
解析:二维数组的物理存储结构为一维即按行序顺序存储在连续存储空间中。
本题中,p为指向数组元素的指针变量初始时,p指向a[0 0 .通过指针实现对对二维数组元素按行依次赋值。a[1] 2 即p5 ,其值6。
答案:
【例.1 】下列程序的输出结果是 )。
C语言数组试题main()
ch a 0={9,8,, 5,4,3,2 ,0 *pa+5
rin f "%d",*——);
}
A。 运行出错 B a[4]的地址 C。 5
D 3
解析初始时 指向a5].由于单目运算符的结合方向为右结合,所以 ——p等价于 ——p ,即先执行-- p指向a[4 再输出a4的值5。
答案
【例。 2】若有如下定义则b的值是 )。inta[10] 1 ,,3,4 6,,8 9 1 , p=a3],=p[5
。 5 B.6 C 8.9
解析 指向a[3 ,即p=a+3;bp5 ,即b=*(p5。 因此= (a+8)=a =9.
答案
【例4.13】若二维数组有列则排在[ ][j]前的元素个数为
。 j*m+i B. i m+j C i*m+j—1
D. i*m+j+1
解析C语言中的二维数组按行存储。行标为的元素前共有i
C语言数组试题
行元素,元素个数为i m每行列标为j的元素前共有j个元素。因此, i 前的元素个数为i*m+j。
答案
【例4.1】若有定义car a 10 ,*b=a 则不能给数组输入字符串"Tis is boo"的语句是 .
A. gt a sanf "%s" a) C.gets(a[0 D gets
解析 ges为字符串输入函数,调用该函数时需给出字符串的存储地址以回车作为字符串输入的结束,并将回车符转换成为'\' .而scanf函数则以回车、空格或跳格作为串输入结束因此sanf不能输入有空格的字符串。
答案:B
【例4 1】以下程序执行后的输出结果是 )。
A 2 B. 3 C 4
D。 5
clde ”string."main(
har *[1 abc" "abdfg","cdbe" "ab” "cd };printf("%d\n",strlen [ ))
}
解析:定义了一个含有10个元素的字符指针数组p 并对前个
C语言数组试题
元素初始化其中p 4指向字符串” ”其串长为2.
答案:
【例。 16】若定义一个名为s且初值为 123"的字符数组,则下列定义错误的是 .
A。 char ]{’1' '' 3' , \ ’ ; Bca s[ = " 2”}
C.cha s ]{”13\n”} 。char s 4]= ’ ' ’ '3’}
解析:字符数组中所存字符中有’\0’时,字符数组才能作为字符串使用。选项A是用字符常量对字符数组初始化,且最后一个元素的值为字符串结束标记 ’\0’ 所以数组中存放的就是字符串 12" 选项是用字符常量对部分元素初始化根据 语言的规定系统为第四个元素赋初值为空值即’\0 ,所以数组s中存放的也是字符串” 123 。选项B是直接使用字符串”12"对字符数组初始化选项C也是使用字符串初始化但是字符串不是 123" 而是”123\ 数组长度为5。
答案C
【例4。 7】下列程序的功能是输入N个实数,然后依次输出前l个实数和、前2个实数和、…、前个实数和。填写程序中缺少的语句。
define N 10ma n
蓝速数据金秋上云季2G58/年怎么样?蓝速数据物理机拼团0元购劲爆?蓝速数据服务器秒杀爆产品好不好?蓝速数据是广州五联科技信息有限公司旗下品牌云计算平台、采用国内首选Zkeys公有云建设多种开通方式、具有IDC、ISP从业资格证IDC运营商新老用户值得信赖的商家。我司主要从事内地的枣庄、宿迁、深圳、绍兴、成都(市、县)。待开放地区:北京、广州、十堰、西安、镇江(市、县)。等地区数据中心业务,均KV...
云基成立于2020年,目前主要提供高防海内外独立服务器用户,欢迎各类追求稳定和高防优质线路的用户。业务可选:洛杉矶CN2-GIA+高防(默认500G高防)、洛杉矶CN2-GIA(默认带50Gbps防御)、香港CN2-GIA高防(双向CN2GIA专线,突发带宽支持,15G-20G DDoS防御,无视CC)、国内高防服务器(广州移动、北京多线、石家庄BGP、保定联通、扬州BGP、厦门BGP、厦门电信、...
六一云 成立于2018年,归属于西安六一网络科技有限公司,是一家国内正规持有IDC ISP CDN IRCS电信经营许可证书的老牌商家。大陆持证公司受大陆各部门监管不好用支持退款退现,再也不怕被割韭菜了!主要业务有:国内高防云,美国高防云,美国cera大带宽,香港CTG,香港沙田CN2,海外站群服务,物理机,宿母鸡等,另外也诚招代理欢迎咨询。官网www.61cloud.net最新直销劲爆...