一、练习题
1.选择题
A.int a[4] B.int a[4]={1,2,3,4,5};
C.int a[4]={1,2,3} D.int a[4]={1};
则数组x在内存中所占字节数为____。
A.6 B.12 C.20 D.40
(3)以下数组定义中,错误的是____。
A.int a[2][3] B.int b[][3]={0,1,2,3};
C.int c[100][100]={0} D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
(4)若已定义:int a[3][2]={1,2,3,4,5,6};,值为6的数组元素是____。
A.a[3][2] B.a[2][1] C.a[1][2] D.a[2][3]
A.int x[2][]={{1,0,1},{5,2,3}} B.int x[][3]={{1,2,3},{4,5,6}};
C.int x[2][4]={{1,2,3},{4,5},{6}} D.int x[][]={{1,0,1},{ },{1,1}};
(6)若已定义:int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是____。
A.2 B.3 C.4 D.不确定
(7)给出以下定义:
则正确的叙述为____。
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
A.char str[]="string" B.char str[7]={'s','t','r','i','n','g'};
C.char str[10];str="string" D.char str[7]={'s','t','r','i','n','g','\0'};
(9)若已定义int x[ ][4]={2,4,6,8,1,3,7,9,5};,数组x的第一维的长度是____。
A.3 B.4 C.2 D.1
(10)以下程序的输出结果是____。
A.0650 B.1470 C.5430 D.输出值不确定
2.填空题
(1)若定义int a[10]={1,2,3};则a[3]的值是____。
(2)在C语言中,二维数组各个元素在内存中的存放顺序是____。
(3)若定义int a[2][3]={{2},{3}};则值为3的数组元素是_____。
(4)若定义char string[]="This is a book!";则该数组的长度是____。
(5)#include<stdio.h>
程序的输出结果是____。
(6)下列程序的输出结果是____。
(7)判断字符串s1是否大于字符串s2,应使用的判断条件是____。
(8)若有定义语句:char s[100],d[100];int j=0,i=0;,且s中已赋字符串,请填空以实现字符串拷贝(注意:不得使用逗号表达式)。
(9)下面程序的功能是将一个字符串按逆序存放,请填空。
(10)下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。
3.程序改错题
(1)下列程序的功能是计算矩阵A的主对角线上的元素之和并输出。该程序有错误,请将程序修改正确(只能对有错误的行进行修改,不得修改正确的行,也不得删除或增加程序行)。
(2)下列程序的功能是统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,其他以此类推。用#号结束输入(函数isupper(c)用于判断c是否为大写字母)。
4.编程题
(1)随机产生10个1~100的正整数存入数组a,输出该数组各个元素,并求最大值、最小值和平均值。
提示:
①用srand()和100*(rand()+1)/32768产生1~100之间的随机数(参见例4-9)。
②以a[0]作为最大值、最小值及累加和的初始值,用数组和循环相结合求出数组的最大值、最小值和平均值。
(2)编制程序计算矩阵a[5][5]的周边元素之和。
(3)实行学分制,学生的平均绩点是衡量学生学习的重要依据。成绩等级与绩点的关系如下表所示。
编一程序利用两个一维数组分别输入某学生20门课程的学分和对应成绩,计算其平均绩点。
(4)编制程序将一个字符串按逆序存放。
(5)编制程序测试字符串str2是否整体包含在字符串str1中,若包含,则指明str2在str1中的起始位置。例如:str1="abcde",str2="cd",则str2包含在str1中,起始位置为3。
二、测试题
1.选择题
(1)合法的数组定义语句是()。
A.int a[4]={1,2,3,4,5} B.int a[3]={0},b[3]=a;
C.int a[4] D.int a[]={0};
(2)将字符串“hello”存放在一个字符数组中,正确的定义方式是()。
A.char s[5]="hello" B.char s[5]={'h','e','l','l','o'};
C.char s[10]="hello" D.char s[10];s="hello";
(3)若有以下语句,描述正确的是()。
A.数组s1和s2的长度相同 B.数组s1的长度大于s2的长度
C.数组s1的长度小于s2的长度 D.两个数组是等价的
(4)以下能对二维数组进行正确初始化的语句是()。(www.xing528.com)
A.int a[2][ ]={{1,2,3},{4,5,6}} B.int a[ ][ ]={{1,2,3},{4,5,6}};C.int a[ ][2]={{1,2,3},{4,5,6}} D.int a[ ][2]={1,2,3,4,5,6};
(5)若有数组定义:
则以下说法正确的是()。
A.字符串s的长度为7 B.字符串s的长度为8
C.字符数组s的大小为7 D.sizeof(s)和strlen(s)的值相等
(6)引用数组时,数组下标的数据类型为()。
A.整型常量 B.整型表达式
C.整型常量或整型表达式 D.任意类型表达式
(7)若有说明:int a[4]={1};则正确的叙述是()。
A.数组a中所有元素的值都为1 B.数组a首元素为1,其他元素值不确定
C.数组a中所有元素的值都为0 D.数组a首元素为1,其他元素值为0
(8)有以下语句:
输出结果为()。
A.2 2 B.2 3 C.7 3 D.2 6
(9)若有说明:int a[][3]={1,2,3,4,5,6,7}; 则数组a的行数为()。
A.2 B.3 C.4 D.不确定
(10)已知二维数组每行有m列,元素a[i][j]前共有多少个元素()。
A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1
(11)有以下语句段:
用户从键盘输入“Hello World!”,以下说明正确的是()。
A.产生越界错误 B.输出字符串“Hello Worl”
C.输出字符串“Hello World” D.输出字符串“Hello”
(12)判断两个字符串a和b相等,应使用()。
A.if(a==b) B.if(a=b)
C.if(strcmp(a,b)==0) D.if(strlen(a)==strlen(b))
(13)以下程序段的输出结果为()。
A.12 B.9 C.13 D.14
(14)以下程序段的输出结果为()。
A.LiNing B.ZhangShan
C.ZhangShan Lily D.Lily
(15)以下程序段的输出结果为()。
A.1,2,3,4,5,6,7,8,9,10 B.6,7,8,9,10,1,2,3,4,5
C.10 9 8 7 6 5 4 3 2 1 D.10,9,8,7,5,6,4,3,2,1
(16)有以下程序段:
输出结果为()。
A.45 B.42 C.56 D.60
(17)以下能正确定义二维数组的是()。
A.int a[][3] B.int a[][3]={3*3};
C.int a[][3]={} D.int a[2][3]={{1},{2,3},{0}};
(18)以下程序段的输出结果是()。
A.6 B.7 C.8 D.9
(19)若有以下程序段:
该程序段的功能是()。
A.对数组a进行插入排序(升序)
B.对数组a进行选择排序(升序)
C.对数组a进行插入排序(降序)
D.对数组a进行选择排序(降序)
(20)以下程序段给数组所有元素输入数据:
应在下划线处填入的是()。
A.&a[i++] B.&a[i+1] C.a+i D.&a[++i]
2.填空题
(1)执行以下程序且输入是“abc”时,输出的结果是()。
(2)以下的程序的输出结果是()。
(3)以下程序在数组a中查找某个数。请补全程序:
(4)以下程序将两个已按升序排列的数组合并成一个升序数组。请补全程序:
(5)以下程序在一个字符数组中查找一个指定的字符,若找到该字符,则输出该字符在数组中首次出现的位置下标;否则输出-1。请补全程序:
(6)下面程序的运行结果是()。
(7)下面的程序统计从键盘输入的字符中的大写字母个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,依此类推,用#结束输入。请补全程序:
(8)阅读下面程序并写出运行结果为()。
(9)以下程序的功能是将字符串s中下标值为偶数的元素从小到大排序,其他元素保持不变。请补全程序:
(10)假设当年的年产值为100,当产值的增长率分别为6%、8%、10%、12%时,求产值分别经过多少年可实现翻番。请补全程序:
3.编程题
(1)编写程序,找出数组元素中的最小值。为了增强程序的通用性,数组元素的值由键盘输入。
(2)编写程序,求一维数组元素的平均值和与平均值之差绝对值最小的元素。
(3)编写程序,求出3~100之间的所有素数。
(4)编写程序,对输入的一行字符,统计其中有多少个单词,单词之间用空格隔开。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。