专题六 数组(练习)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)

2024-07-29
| 2份
| 11页
| 216人阅读
| 5人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 5.1 一维数组的定义和使用,5.2 二维数组的定义和使用,5.3 字符数组的定义和使用
类型 题集-专项训练
知识点 数组
使用场景 中职复习-二轮专题
学年 2024-2025
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 110 KB
发布时间 2024-07-29
更新时间 2024-07-29
作者 xkw__007
品牌系列 上好课·一轮讲练测
审核时间 2024-07-29
下载链接 https://m.zxxk.com/soft/46571556.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

专题六 数组 一:单选题 1:定义了一维 int 型数组 a[10] 后,下面错误的引用是( ) A.a[0] = 1; B.a[0] = 5*2; C.a[10] = 2; D.a[1] = a[2] * a[0]; 【答案】C 【解析】a[10]超出了数组的有效索引范围,因为它尝试访问第11个元素,而数组只有10个元素(索引0到9)。 2:下列定义二维数组的语句中,正确的是( ) A.int 123go[3][4] B.float a[3][] C.int K=4,a[K][K] D.int a[][6] 【答案】D 【解析】标识符不能以数字开头,可以省略一维数组的长度,但不能省略二维数组的长度。定义数组长度不能是变量。 3:在C语言中,引用数组元素时,其数组下标的数据类型允许是( ) A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 【答案】C 【解析】在C语言中,引用数组元素时使用的数组下标必须是整型。这包括整型常量和整型表达式。 4:假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( ) A. 3 B. 6 C. 10 D. 20 【答案】D 【解析】如果int类型变量占用两个字节,那么数组x中的每个元素也将占用两个字节。数组x定义为有10个int类型的元素,所以它在内存中占用的总字节数是:每个元素的字节数 * 元素数量,即2*10=20。 5:定义int k[][4] = {1,2,3,4,5,6,7,8,9};后,k[2][3]的值是( ) A.0 B.7 C.8 D.9 【答案】A 【解析】第1行:k[0] 被初始化为 {1, 2, 3, 4} 第2行:k[1] 被初始化为 {5, 6, 7, 8} 第3行:k[2] 被初始化为 {9, 0, 0, 0}(因为只有9个初始化值,剩余的元素被初始化为0)所以,k[2][3] 将是一个位于第3行第4列的元素,其值为0。 6:下面程序执行后输出的值是( ) #include <stdio.h> int main() { int arr[] = {1,2,(3,4),5}; printf("%d ", sizeof(arr)); return 0; } A.4 B.16 C.20 D.5 【答案】B 【解析】sizeof是单目操作符,计算元素的大小,单位是字节。arr数组有4个元素,下标2的元素是一个逗号表达式的值,逗号表达式的结果是最后一个元素。arr数组的大小是4,并且这是int类型的数组,4字节,因此4*4为16字节。 7:以下程序的运行结果是 ( ) int main() { int s, k[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9}, i = 1; for (s = 1; i < 10 - i; i++) s += k[i]; printf("%d ", s); } A.12 B.14 C.15 D.20 【答案】C 【解析】当 i = 1,10 - i = 9,i < 9 满足,执行循环。当 i = 2,10 - i = 8,i < 8 满足,执行循环。这个过程一直持续到 i = 4,因为 10 - i = 6,i < 6 满足。当 i = 5 时,10 - i = 5,条件 i < 5 不满足,所以循环结束。初始 s = 1,i = 1: s += k[1] => s = 1 + 2 = 3,i = 2: s += k[2] => s = 3 + 3 = 6,i = 3: s += k[3] => s = 6 + 4 = 10 i = 4: s += k[4] => s = 10 + 5 = 15。 8:下面程序的输出结果是 ( ) int main() { int i, j, k = 0; int s[4][4] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}}; for (i = 1; i < 3; i++) for (j = 0; j < i; j++) k += s[i][j]; printf("%d ", k); } A.19 B.16 C.11 D.10 【答案】A 【解析】当i = 1,j从0开始:k += s[1][0] => k += 4。当i = 2,j从0开始:k += s[2][0] => k += 7。j增加到1,再次累加:k += s[2][1] => k += 8。现在,我们可以计算k的值: 初始值为0,累加4得到4,累加7得到11,累加8得到19,所以,程序的输出结果是19 二:分析题 1.正确声明以下各变量: a.digits是一个内含10个int类型值的数组 b.rates是一个内含6个float类型值的数组 c.mat是一个内含3个元素的数组,每个元素都是内含5个整数的数组 【答案】a.int digits[10]; b.float rates[6]; c.int mat[3][5]; 2:下面的程序输出的结果是什么? 若定义 char a[]="\3Love\3";则 strlen(a)的值为_______,sizeof(a)的值为_______ 若定义 char a[]="Hello! ";则 strlen(a)的值为_______,sizeof(a)的值为_______ 【答案】6,7 7,8 三:编程题 1:输入10名学生的成绩,计算总分和平均分,输出平均分 【答案】 #include <stdio.h> int main() { float scores[10]; // 存储10名学生的成绩 float total = 0.0; // 总分 float average; // 平均分 // 输入学生成绩 printf("请输入10名学生的成绩: "); for (int i = 0; i < 10; i++) { printf("学生 %d 的成绩:", i + 1); scanf("%f", &scores[i]); total += scores[i]; // 累加总分 } // 计算平均分 average = total / 10; // 输出平均分 printf("平均分是:%.2f ", average); return 0; } 2:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开 【答案】 #include <stdio.h> #include <string.h> int main() { char line[1024]; // 假设一行最多有1024个字符 int wordCount = 0; // 单词计数器 // 提示用户输入一行字符 printf("请输入一行字符: "); fgets(line, sizeof(line), stdin); // 读取一行 // 去除可能的换行符 size_t len = strlen(line); if(len > 0 && line[len - 1] == ' ') { line[len - 1] = '\0'; } // 统计单词数量 char *token = strtok(line, " "); // 使用空格和换行符作为分隔符 while (token != NULL) { wordCount++; // 每找到一个单词,计数器加1 token = strtok(NULL, " "); // 继续查找下一个单词 } // 输出单词数量 printf("输入的行中有 %d 个单词。 ", wordCount); return 0; } 3:打印杨辉三角前十行 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ... 【答案】 #include <stdio.h> int main() { int rows = 10; // 杨辉三角的行数 int triangle[rows][rows]; // 初始化杨辉三角 for (int i = 0; i < rows; i++) { for (int j = 0; j <= i; j++) { if (j == 0 || i == j) { triangle[i][j] = 1; // 杨辉三角的边缘元素都是1 } else { triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]; // 计算中间元素 } } } // 打印杨辉三角 for (int i = 0; i < rows; i++) { // 打印前导空格 for (int k = 0; k < rows - i; k++) { printf(" "); } // 打印当前行的元素 for (int j = 0; j <= i; j++) { printf("%d ", triangle[i][j]); } printf(" "); } return 0; } 学科网(北京)股份有限公司 $$ 专题六 数组 一:单选题 1:定义了一维 int 型数组 a[10] 后,下面错误的引用是( ) A.a[0] = 1; B.a[0] = 5*2; C.a[10] = 2; D.a[1] = a[2] * a[0]; 2:下列定义二维数组的语句中,正确的是( ) A.int 123go[3][4] B.float a[3][] C.int K=4,a[K][K] D.int a[][6] 3:在C语言中,引用数组元素时,其数组下标的数据类型允许是( ) A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 4:假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( ) A. 3 B. 6 C. 10 D. 20 5:定义int k[][4] = {1,2,3,4,5,6,7,8,9};后,k[2][3]的值是( ) A.0 B.7 C.8 D.9 6:下面程序执行后输出的值是( ) #include <stdio.h> int main() { int arr[] = {1,2,(3,4),5}; printf("%d ", sizeof(arr)); return 0; } A.4 B.16 C.20 D.5 7:以下程序的运行结果是 ( ) int main() { int s, k[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9}, i = 1; for (s = 1; i < 10 - i; i++) s += k[i]; printf("%d ", s); } A.12 B.14 C.15 D.20 8:下面程序的输出结果是 ( ) int main() { int i, j, k = 0; int s[4][4] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}}; for (i = 1; i < 3; i++) for (j = 0; j < i; j++) k += s[i][j]; printf("%d ", k); } A.19 B.16 C.11 D.10 二:分析题 1.正确声明以下各变量: a.digits是一个内含10个int类型值的数组 b.rates是一个内含6个float类型值的数组 c.mat是一个内含3个元素的数组,每个元素都是内含5个整数的数组 2:下面的程序输出的结果是什么? 若定义 char a[]="\3Love\3";则 strlen(a)的值为_______,sizeof(a)的值为_______ 若定义 char a[]="Hello! ";则 strlen(a)的值为_______,sizeof(a)的值为_______ 三:编程题 1:输入10名学生的成绩,计算总分和平均分,输出平均分 2:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开 3:打印杨辉三角前十行 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ... 学科网(北京)股份有限公司 $$

资源预览图

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