第五章 数组《编程语言基础-C语言》(高教版第5版)章节过关卷(二)

2026-04-10
| 2份
| 19页
| 19人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 -
章节 第5章 数组
类型 作业-单元卷
知识点 数组
使用场景 同步教学-单元练习
学年 2026-2027
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 272 KB
发布时间 2026-04-10
更新时间 2026-04-10
作者 xkw_063129603
品牌系列 学易金卷·阶段检测模拟卷
审核时间 2026-04-10
下载链接 https://m.zxxk.com/soft/57276945.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

《编程语言基础-C语言》高等教育出版社(第5版) 第五章 数组 章节过关卷(二)(原卷版) 考试时间:90分钟 满分:100分 姓名 班级 学号 一、单项选择题(本题共25小题,每题2分,共50分) 1、以下关于数组的叙述中,正确的是( ) A. 数组元素的下标可以是浮点数 B. 数组定义后,其长度可以改变 C. 数组名代表数组的首地址 D. 数组元素在内存中是随机存储的 2、若有定义 int a[5];,则对数组元素引用正确的是( ) A. a[0] B. a[5] C. a[1.5] D. a(-1) 3、以下定义中,将数组所有元素初始化为0的是( ) A. int a[5] = 0; B. int a[5] = {0}; C. int a[5] = {1}; D. int a[5] = {5,0}; 4、以下程序段的输出结果是( ) int a[5] = {1, 3, 5, 7, 9}; int i; for (i = 0; i < 5; i++) a[i] = a[i] / 2; printf("%d", a[2]); A. 2 B. 3 C. 4 D. 5 5、以下程序段的功能是( ) int a[10], i, s = 0; for (i = 0; i < 10; i++) s += a[i]; printf("%d", s); A. 求数组最大值 B. 求数组最小值 C. 求数组元素之和 D. 求数组平均值 6、若有定义 int a[2][3];,则以下能正确表示数组元素个数的是( ) A. 2+3 B. 2*3 C. (2+3)*2 D. (2*3)/2 7、以下二维数组定义中,错误的是( ) A. int a[][3] = {1,2,3,4,5}; B. int a[2][3] = {1,2,3,4,5,6}; C. int a[2][3] = {{1,2},{3,4}}; D. int a[2][] = {{1,2},{3,4}}; 8、若有定义 int a[2][3] = {{1,2,3},{4,5}};,则 a[1][2] 的值为( ) A. 0 B. 5 C. 4 D. 随机值 9、以下程序段的输出结果是( ) int a[3][3] = {1,2,3,4,5,6,7,8,9}; int i, j, s = 0; for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) if (i + j == 2) s += a[i][j]; printf("%d", s); A. 9 B. 12 C. 15 D. 18 10、以下对二维数组a中元素的引用,与a[1][2]等价的是( ) A. *(a[1] + 2) B. *(*(a + 1) + 2) C. *(a + 1)[2] D. A和B都正确 11、以下关于字符数组的叙述,正确的是( ) A. 字符数组只能存储字符,不能存储数字 B. 字符数组的每个元素只能存放一个字符 C. 字符数组必须以'\0'结尾 D. 字符数组的长度必须大于字符串长度 12、以下字符串的长度是( ) char s[] = "C\tProgram\0ming"; A. 11 B. 12 C. 9 D. 10 13、以下程序段的输出结果是( ) char s[20] = "University"; s[5] = '\0'; printf("%s", s); A. Unive B. University C. Univer D. 编译错误 14、以下能正确将字符串"Hello"复制到字符数组s中的是( ) A. char s[5]; s = "Hello"; B. char s[6]; strcpy(s, "Hello"); C. char s[5]; strcpy(s, "Hello"); D. char s[6]; s = "Hello"; 15、以下程序段执行后,输出结果是( ) char s1[20] = "abc", s2[20] = "ABC"; strcat(s1, s2); printf("%d", strcmp(s1, "abcABC")); A. 0 B. 正数 C. 负数 D. 不确定 16、以下函数调用中,能正确输出数组a中所有元素的是( ) void print(int a[], int n) { for (int i = 0; i < n; i++) printf("%d ", a[i]); } main() { int a[5] = {1,2,3,4,5}; print(a, 5); } A. print(a, 5) B. print(a[0], 5) C. print(&a, 5) D. print(a[5], 5) 17、以下程序段的功能是( ) int a[10] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3}; int i, k = 0; for (i = 1; i < 10; i++) if (a[i] > a[k]) k = i; printf("%d", k); A. 输出最大值 B. 输出最大值所在下标 C. 输出最小值 D. 输出最小值所在下标 18、若有定义 int a[3][4];,则数组a中第2行第3列元素在内存中的位置相对于数组首地址的偏移量是(假设int占2字节)( ) A. 4 B. 8 C. 12 D. 16 19、以下程序段执行后,输出结果是( ) char str[20] = "C Language"; str[2] = '\0'; printf("%s", str + 3); A. Language B. C L C. anguage D. 编译错误 20、以下程序段中,能正确统计字符串s中数字字符个数的是( ) char s[100]; gets(s); int count = 0; for (int i = 0; s[i] != '\0'; i++) if (_______) count++; A. s[i] >= '0' || s[i] <= '9' B. s[i] >= '0' && s[i] <= '9' C. s[i] >= 0 && s[i] <= 9 D. s[i] >= '0' & s[i] <= '9' 21、以下程序段的输出结果是( ) int i, j, a[2][2] = {1, 2, 3, 4}; for (i = 0; i < 2; i++) for (j = 0; j < 2; j++) a[j][i] = a[i][j]; for (i = 0; i < 2; i++) printf("%d", a[i][i]); A. 13 B. 14 C. 24 D. 23 22、以下关于数组初始化的叙述,错误的是( ) A. 静态数组未初始化时,元素值为0 B. 局部数组未初始化时,元素值为随机值 C. 可以使用memset函数将数组元素全部置0 D. 数组初始化时,如果提供的初始值个数少于数组长度,多余元素自动赋0 23、以下程序段的输出结果是( ) int a[5] = {10, 20, 30, 40, 50}; int *p = a; printf("%d", *(p + 3) - *p); A. 10 B. 20 C. 30 D. 40 24、以下程序段执行后,数组b中元素的值是( ) int a[5] = {2, 4, 6, 8, 10}, b[5], i; for (i = 0; i < 5; i++) b[i] = a[i] + i; A. {2,4,6,8,10} B. {2,5,8,11,14} C. {3,6,9,12,15} D. {0,2,4,6,8} 25、以下程序段用于将字符串s中的大写字母转换为小写字母,划线处应填( ) char s[100]; gets(s); for (int i = 0; s[i] != '\0'; i++) if (s[i] >= 'A' && s[i] <= 'Z') __________; puts(s); A. s[i] = s[i] + 32 B. s[i] = s[i] - 32 C. s[i] = s[i] + 'a' - 'A' D. A和C均正确 二、多选题(本题共5小题,每题4分,共20分) 1、以下关于一维数组的初始化,正确的有( ) A. int a[5] = {0, 0, 0}; B. int a[5] = {1, 2, 3, 4, 5}; C. int a[5] = {1, 2, 3, 4, 5, 6}; D. int a[5] = {1}; 2、以下选项中,能正确引用二维数组a中元素的有( ) A. a[1][2] B. *(a[1] + 2) C. *(*(a + 1) + 2) D. *(a + 1)[2] 3、以下关于字符串处理函数的功能,描述正确的有( ) A. strlen(s) 返回字符串s的长度,不包括'\0' B. strcmp(s1, s2) 比较两个字符串,相等时返回0 C. strcpy(s1, s2) 将s2复制到s1,包括'\0' D. strcat(s1, s2) 将s2连接到s1末尾,s1必须有足够空间 4、以下程序段中,能够实现数组a中元素逆序存放的有( ) A. for (i = 0; i < n/2; i++) { t = a[i]; a[i] = a[n-1-i]; a[n-1-i] = t; } B. int b[n]; for (i = 0; i < n; i++) b[i] = a[n-1-i]; for (i = 0; i < n; i++) a[i] = b[i]; C. for (i = 0; i < n; i++) a[i] = a[n-1-i]; D. for (i = 0; i < n/2; i++) { a[i] = a[i] + a[n-1-i]; a[n-1-i] = a[i] - a[n-1-i]; a[i] = a[i] - a[n-1-i]; } 5、以下关于数组作为函数参数的叙述,正确的有( ) A. 形参数组和实参数组共享同一段内存 B. 在函数内部,sizeof(形参数组名) 得到的是指针的大小 C. 传递数组时,通常需要额外传递数组长度 D. 形参数组的第一维长度可以省略 三、判断题(本题共10小题,每题2分,共20分) 1、数组元素的下标可以是负整数。( ) 2、二维数组在内存中是按列优先顺序存储的。( ) 3、使用strcpy函数时,目标字符数组的长度必须大于等于源字符串的长度。( ) 4、对于字符数组,可以用赋值语句直接给数组名赋值字符串。( ) 5、定义数组时,如果对数组进行初始化,可以省略数组长度。( ) 6、静态局部数组未初始化时,其元素值是不确定的。( ) 7、字符串函数strlen计算的是字符数组的长度(包括'\0')。( ) 8、对于二维数组int a[2][3],a[0]和&a[0][0]的值相同。( ) 9、在函数内部,使用sizeof运算符对形参数组名操作,得到的是整个数组的字节数。( ) 10、char s[10] = "Hello"; 等价于 char s[10] = {'H','e','l','l','o','\0'};。( ) 四、填空题(本题共5小题,每题2分,共10分) 1、若有定义 int a[3][2] = {{1,2},{3,4}};,则 a[2][1] 的值为 ( )。 2、以下程序段的功能是统计字符串中空格字符的个数,请填空( )。 char s[100]; gets(s); int i, count = 0; for (i = 0; s[i] != '\0'; i++) if (_______) count++; printf("%d", count); 3、以下程序段执行后,输出结果为 ( )。 char s[20] = "abcde"; strcpy(s + 2, "xyz"); printf("%s", s); 4、以下程序段执行后,数组a中元素的值按行输出为 ( )。 int a[2][3] = {0}; int i, j; for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) a[i][j] = i + j; 5、以下程序段用于求二维数组a中所有元素的最大值,请填空( )。 int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; int i, j, max; max = _________; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) if (a[i][j] > max) max = a[i][j]; 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 《编程语言基础-C语言》高等教育出版社(第5版) 第五章 数组 章节过关卷(二)(解析版) 考试时间:90分钟 满分:100分 姓名 班级 学号 一、单项选择题(本题共25小题,每题2分,共50分) 1、以下关于数组的叙述中,正确的是( ) A. 数组元素的下标可以是浮点数 B. 数组定义后,其长度可以改变 C. 数组名代表数组的首地址 D. 数组元素在内存中是随机存储的 【答案】C 【解析】数组名是一个地址常量,代表数组首元素地址;下标必须是整型表达式,A错误;数组长度在定义后固定,B错误;数组元素在内存中连续存储,D错误。 2、若有定义 int a[5];,则对数组元素引用正确的是( ) A. a[0] B. a[5] C. a[1.5] D. a(-1) 【答案】A 【解析】下标范围0~4,A正确;B越界;C下标必须为整型;D语法错误。 3、以下定义中,将数组所有元素初始化为0的是( ) A. int a[5] = 0; B. int a[5] = {0}; C. int a[5] = {1}; D. int a[5] = {5,0}; 【答案】B 【解析】{0}使第一个元素为0,其余自动为0,整个数组为0。A语法错误;C只有a[0]=1;D初始化值过多。 4、以下程序段的输出结果是( ) int a[5] = {1, 3, 5, 7, 9}; int i; for (i = 0; i < 5; i++) a[i] = a[i] / 2; printf("%d", a[2]); A. 2 B. 3 C. 4 D. 5 【答案】A 【解析】数组元素依次为:1/2=0(整数除法),3/2=1,5/2=2,7/2=3,9/2=4,a[2]=2。 5、以下程序段的功能是( ) int a[10], i, s = 0; for (i = 0; i < 10; i++) s += a[i]; printf("%d", s); A. 求数组最大值 B. 求数组最小值 C. 求数组元素之和 D. 求数组平均值 【答案】C 【解析】循环累加每个元素到s,输出总和。 6、若有定义 int a[2][3];,则以下能正确表示数组元素个数的是( ) A. 2+3 B. 2*3 C. (2+3)*2 D. (2*3)/2 【答案】B 【解析】二维数组元素个数 = 行数 × 列数 = 2×3=6。 7、以下二维数组定义中,错误的是( ) A. int a[][3] = {1,2,3,4,5}; B. int a[2][3] = {1,2,3,4,5,6}; C. int a[2][3] = {{1,2},{3,4}}; D. int a[2][] = {{1,2},{3,4}}; 【答案】D 【解析】二维数组中可以省略行的长度,不能省略列的长度。 8、若有定义 int a[2][3] = {{1,2,3},{4,5}};,则 a[1][2] 的值为( ) A. 0 B. 5 C. 4 D. 随机值 【答案】A 【解析】第二行初始化{4,5},只有两个值,第三个元素自动补0,所以a[1][2]=0。 9、以下程序段的输出结果是( ) int a[3][3] = {1,2,3,4,5,6,7,8,9}; int i, j, s = 0; for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) if (i + j == 2) s += a[i][j]; printf("%d", s); A. 9 B. 12 C. 15 D. 18 【答案】C 【解析】i+j=2的元素有:(0,2)=3,(1,1)=5,(2,0)=7,和为3+5+7=15。 10、以下对二维数组a中元素的引用,与a[1][2]等价的是( ) A. *(a[1] + 2) B. *(*(a + 1) + 2) C. *(a + 1)[2] D. A和B都正确 【答案】D 【解析】A:a[1]是第二行首地址,加2得a[1][2]地址,再取内容;B:a+1指向第二行,*(a+1)得第二行首地址,加2再取内容;C:(a+1)[2]相当于a[3],越界。 11、以下关于字符数组的叙述,正确的是( ) A. 字符数组只能存储字符,不能存储数字 B. 字符数组的每个元素只能存放一个字符 C. 字符数组必须以'\0'结尾 D. 字符数组的长度必须大于字符串长度 【答案】B 【解析】字符数组每个元素存放一个字符(可以是数字字符或ASCII码),A错;字符数组不一定需要'\0'结尾(只有作为字符串时才需要),C错;数组长度可以等于字符串长度+1,并非必须大于,D错。 12、以下字符串的长度是( ) char s[] = "C\tProgram\0ming"; A. 11 B. 12 C. 9 D. 10 【答案】C 【解析】字符串中'\0'是结束符,之前字符为'C','\t','P','r','o','g','r','a','m'共9个。 13、以下程序段的输出结果是( ) char s[20] = "University"; s[5] = '\0'; printf("%s", s); A. Unive B. University C. Univer D. 编译错误 【答案】A 【解析】将s[5](即第6个字符,原为'r')改为'\0',字符串提前结束,输出"Unive"。 14、以下能正确将字符串"Hello"复制到字符数组s中的是( ) A. char s[5]; s = "Hello"; B. char s[6]; strcpy(s, "Hello"); C. char s[5]; strcpy(s, "Hello"); D. char s[6]; s = "Hello"; 【答案】B 【解析】A数组长度不足且不能直接赋值;C长度不足("Hello"需6字节含'\0');D不能直接赋值;B正确。 15、以下程序段执行后,输出结果是( ) char s1[20] = "abc", s2[20] = "ABC"; strcat(s1, s2); printf("%d", strcmp(s1, "abcABC")); A. 0 B. 正数 C. 负数 D. 不确定 【答案】A 【解析】strcat后s1="abcABC",与"abcABC"相等,strcmp返回0。 16、以下函数调用中,能正确输出数组a中所有元素的是( ) void print(int a[], int n) { for (int i = 0; i < n; i++) printf("%d ", a[i]); } main() { int a[5] = {1,2,3,4,5}; print(a, 5); } A. print(a, 5) B. print(a[0], 5) C. print(&a, 5) D. print(a[5], 5) 【答案】A 【解析】数组名作为参数传递首地址,正确。B传递元素值;C传递数组地址(类型不匹配);D越界。 17、以下程序段的功能是( ) int a[10] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3}; int i, k = 0; for (i = 1; i < 10; i++) if (a[i] > a[k]) k = i; printf("%d", k); A. 输出最大值 B. 输出最大值所在下标 C. 输出最小值 D. 输出最小值所在下标 【答案】B 【解析】k记录当前最大值的下标,遍历后k为最大值的下标。 18、若有定义 int a[3][4];,则数组a中第2行第3列元素在内存中的位置相对于数组首地址的偏移量是(假设int占2字节)( ) A. 4 B. 8 C. 12 D. 16 【答案】C 【解析】行优先存储,第2行(下标1)第3列(下标2)前面有1整行(4个元素)加2个元素,共6个元素,偏移6*2=12字节。 19、以下程序段执行后,输出结果是( ) char str[20] = "C Language"; str[2] = '\0'; printf("%s", str + 3); A. Language B. C L C. anguage D. 编译错误 【答案】C 【解析】str[2]设为'\0',str+3指向原第4个字符,所以输出字符串时,输出从字符a及之后的字母。 20、以下程序段中,能正确统计字符串s中数字字符个数的是( ) char s[100]; gets(s); int count = 0; for (int i = 0; s[i] != '\0'; i++) if (_______) count++; A. s[i] >= '0' || s[i] <= '9' B. s[i] >= '0' && s[i] <= '9' C. s[i] >= 0 && s[i] <= 9 D. s[i] >= '0' & s[i] <= '9' 【答案】B 【解析】判断字符是否为数字字符,应同时满足大于等于'0'且小于等于'9'。A逻辑或错误;C比较ASCII码与数字0-9,不正确;D位运算错误。 21、以下程序段的输出结果是( ) int i, j, a[2][2] = {1, 2, 3, 4}; for (i = 0; i < 2; i++) for (j = 0; j < 2; j++) a[j][i] = a[i][j]; for (i = 0; i < 2; i++) printf("%d", a[i][i]); A. 13 B. 14 C. 24 D. 23 【答案】B 【解析】先给a赋值:a[0][0]=1, a[0][1]=2, a[1][0]=3, a[1][1]=4。然后双重循环将a[i][j]赋给a[j][i],相当于转置,a[0][0]=a[0][0]=1,a[1][0]=a[0][1]=2,a[0][1]=a[1][0]=2,a[1][1]=a[1][1]=4。最终a[0][0]=1, a[1][1]=4,输出"14"。 22、以下关于数组初始化的叙述,错误的是( ) A. 静态数组未初始化时,元素值为0 B. 局部数组未初始化时,元素值为随机值 C. 可以使用memset函数将数组元素全部置0 D. 数组初始化时,如果提供的初始值个数少于数组长度,多余元素自动赋0 【答案】A 【解析】静态数组(全局或static)未初始化默认为0;局部数组未初始化是随机值,A错误。23、以下程序段的输出结果是( ) int a[5] = {10, 20, 30, 40, 50}; int *p = a; printf("%d", *(p + 3) - *p); A. 10 B. 20 C. 30 D. 40 【答案】C 【解析】*(p+3)=a[3]=40,*p=a[0]=10,差为30。 24、以下程序段执行后,数组b中元素的值是( ) int a[5] = {2, 4, 6, 8, 10}, b[5], i; for (i = 0; i < 5; i++) b[i] = a[i] + i; A. {2,4,6,8,10} B. {2,5,8,11,14} C. {3,6,9,12,15} D. {0,2,4,6,8} 【答案】B 【解析】b[i]=a[i]+i,依次:2+0=2,4+1=5,6+2=8,8+3=11,10+4=14。 25、以下程序段用于将字符串s中的大写字母转换为小写字母,划线处应填( ) char s[100]; gets(s); for (int i = 0; s[i] != '\0'; i++) if (s[i] >= 'A' && s[i] <= 'Z') __________; puts(s); A. s[i] = s[i] + 32 B. s[i] = s[i] - 32 C. s[i] = s[i] + 'a' - 'A' D. A和C均正确 【答案】D 【解析】大写转小写加32,或通过差值计算,A和C均正确。 二、多选题(本题共5小题,每题4分,共20分) 1、以下关于一维数组的初始化,正确的有( ) A. int a[5] = {0, 0, 0}; B. int a[5] = {1, 2, 3, 4, 5}; C. int a[5] = {1, 2, 3, 4, 5, 6}; D. int a[5] = {1}; 【答案】ABD 【解析】A部分初始化,多余元素为0;B完全初始化;D第一个元素为1,其余0;C初始值过多,编译错误。 2、以下选项中,能正确引用二维数组a中元素的有( ) A. a[1][2] B. *(a[1] + 2) C. *(*(a + 1) + 2) D. *(a + 1)[2] 【答案】ABC 【解析】D中(a+1)[2]等价于a[3],再取内容可能越界,且不等价于a[1][2]。 3、以下关于字符串处理函数的功能,描述正确的有( ) A. strlen(s) 返回字符串s的长度,不包括'\0' B. strcmp(s1, s2) 比较两个字符串,相等时返回0 C. strcpy(s1, s2) 将s2复制到s1,包括'\0' D. strcat(s1, s2) 将s2连接到s1末尾,s1必须有足够空间 【答案】ABCD 【解析】所有描述均正确。 4、以下程序段中,能够实现数组a中元素逆序存放的有( ) A. for (i = 0; i < n/2; i++) { t = a[i]; a[i] = a[n-1-i]; a[n-1-i] = t; } B. int b[n]; for (i = 0; i < n; i++) b[i] = a[n-1-i]; for (i = 0; i < n; i++) a[i] = b[i]; C. for (i = 0; i < n; i++) a[i] = a[n-1-i]; D. for (i = 0; i < n/2; i++) { a[i] = a[i] + a[n-1-i]; a[n-1-i] = a[i] - a[n-1-i]; a[i] = a[i] - a[n-1-i]; } 【答案】ABD 【解析】A标准交换;B借助辅助数组;D通过加减交换;C错误,会丢失数据。 5、以下关于数组作为函数参数的叙述,正确的有( ) A. 形参数组和实参数组共享同一段内存 B. 在函数内部,sizeof(形参数组名) 得到的是指针的大小 C. 传递数组时,通常需要额外传递数组长度 D. 形参数组的第一维长度可以省略 【答案】ABCD 【解析】数组名作参数传递地址,形参是指针,因此A正确;sizeof得到指针大小,B正确;长度信息丢失,需额外传递,C正确;形参第一维可省略,D正确。 三、判断题(本题共10小题,每题2分,共20分) 1、数组元素的下标可以是负整数。( ) 【答案】× 【解析】下标必须是非负整数(≥0)。 2、二维数组在内存中是按列优先顺序存储的。( ) 【答案】× 【解析】按行优先存储。 3、使用strcpy函数时,目标字符数组的长度必须大于等于源字符串的长度。( ) 【答案】√ 【解析】需包括结束符,即长度 ≥ strlen(src)+1。 4、对于字符数组,可以用赋值语句直接给数组名赋值字符串。( ) 【答案】× 【解析】数组名是地址常量,不可赋值,只能用strcpy或初始化。 5、定义数组时,如果对数组进行初始化,可以省略数组长度。( ) 【答案】√ 【解析】编译器根据初始化值的个数自动确定长度。 6、静态局部数组未初始化时,其元素值是不确定的。( ) 【答案】× 【解析】静态局部数组(static)未初始化时,元素自动初始化为0。 7、字符串函数strlen计算的是字符数组的长度(包括'\0')。( ) 【答案】× 【解析】strlen计算字符串长度,不包括'\0'。 8、对于二维数组int a[2][3],a[0]和&a[0][0]的值相同。( ) 【答案】√ 【解析】a[0]是第0行首地址,与第0行第0列地址相同。 9、在函数内部,使用sizeof运算符对形参数组名操作,得到的是整个数组的字节数。( ) 【答案】× 【解析】形参数组名退化为指针,sizeof得到指针大小(通常4或8字节)。 10、char s[10] = "Hello"; 等价于 char s[10] = {'H','e','l','l','o','\0'};。( ) 【答案】√ 【解析】字符串初始化自动添加'\0',剩余元素补0,但这里数组长度10,后面元素自动为0。 四、填空题(本题共5小题,每题2分,共10分) 1、若有定义 int a[3][2] = {{1,2},{3,4}};,则 a[2][1] 的值为 ( )。 【答案】0 【解析】第三行未初始化,自动补0,a[2][1]=0。 2、以下程序段的功能是统计字符串中空格字符的个数,请填空( )。 char s[100]; gets(s); int i, count = 0; for (i = 0; s[i] != '\0'; i++) if (_______) count++; printf("%d", count); 【答案】s[i] == ' ' 【解析】判断字符是否为空格。 3、以下程序段执行后,输出结果为 ( )。 char s[20] = "abcde"; strcpy(s + 2, "xyz"); printf("%s", s); 【答案】abxyz 【解析】从s[2]开始复制"xyz",覆盖原"cde",结果为"abxyz"。 4、以下程序段执行后,数组a中元素的值按行输出为 ( )。 int a[2][3] = {0}; int i, j; for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) a[i][j] = i + j; 【答案】0 1 2 1 2 3 【解析】a[0][0]=0, a[0][1]=1, a[0][2]=2; a[1][0]=1, a[1][1]=2, a[1][2]=3。 5、以下程序段用于求二维数组a中所有元素的最大值,请填空( )。 int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; int i, j, max; max = _________; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) if (a[i][j] > max) max = a[i][j]; 【答案】a[0][0] 【解析】max初始化为第一个元素。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第五章 数组《编程语言基础-C语言》(高教版第5版)章节过关卷(二)
1
第五章 数组《编程语言基础-C语言》(高教版第5版)章节过关卷(二)
2
第五章 数组《编程语言基础-C语言》(高教版第5版)章节过关卷(二)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。