第5章 第4节:数组的应用举例(练习)-《编程语言基础—C语言》(高教版第5版)同步精品课堂

| 2份
| 21页
| 51人阅读
| 2人下载

内容正文:

5.4节:数组的应用举例 一、单项选择题 1.执行语句char str[] = "abcde"; printf("%d", strlen(str)); 输出( ) A. 5 B. 6 C. 不确定 D. 编译错误 2.以下代码段输出结果是() int a[3][3] = {1,2,3,4,5,6,7,8,9}; printf("%d", a[1][2]); A. 2 B. 4 C. 6 D. 8 3.以下关于strcpy函数的说法正确的是() A. strcpy会检查目标数组空间是否足够 B. strcpy会自动在目标字符串末尾添加'\0' C. strcpy可以用于连接两个字符串 D. strcpy的第一个参数是源字符串 4.以下代码段输出结果是() char s1[] = "abc", s2[] = "def"; strcat(s1, s2); printf("%s", s1); A. abc B. def C. abcdef D. 运行时错误 5.以下代码段输出结果是() int a[5] = {1,2,3,4,5}, i, sum = 0; for(i = 0; i < 5; i++) sum += a[i]; printf("%d", sum); A. 15 B. 10 C. 5 D. 不确定 6.以下关于字符数组的说法错误的是() A. 字符数组可以存储字符串 B. 字符数组可以用%s格式输出 C. 字符数组名表示数组首地址 D. 字符数组可以用=运算符整体赋值 7.以下关于数组的说法正确的是() A. 数组元素在内存中连续存放 B. 数组名可以赋值给另一个数组名 C. 数组下标可以是负数 D. 数组定义时大小必须是常量表达式 8.以下代码段输出结果是() char s[] = "abc\0def"; printf("%d", strlen(s)); A. 3 B. 7 C. 6 D. 不确定 二、程序运行结果题 9.执行以下程序的输出结果是() #include <stdio.h> main() { int a[5] = {1,2,3,4,5}, i, j; for(i = 0; i < 5; i++) { for(j = 0; j < i; j++) printf("*"); printf(" "); } } 10.执行以下程序的输出结果是() #include <stdio.h> #include <string.h> main() { char s[] = "12345"; printf("%c", s[strlen(s)-1]); } 11.执行以下程序的输出结果是() #include <stdio.h> main() { int a[5] = {1,2,3,4,5}, i, sum = 0; for(i = 0; i < 5; i++) { if(i % 2 == 0) sum += a[i]; else sum -= a[i]; } printf("%d", sum); } 12.执行以下程序的输出结果是() #include <stdio.h> main() { int a[3][3] = {1,2,3,4,5,6,7,8,9}, i, j; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) printf("%d ", a[j][i]); printf(" "); } } 13.执行以下程序的输出结果是() #include <stdio.h> #include <string.h> main() { char s1[10] = "123", s2[10] = "456"; strcat(s1 + 1, s2 + 1); printf("%s", s1); } 14.执行以下程序的输出结果是() #include <stdio.h> main() { int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, i, sum = 0; for(i = 0; i < 3; i++) sum += a[i][i % 2 + 1]; printf("%d", sum); } 15.执行以下程序的输出结果是() #include <stdio.h> main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}, i, j; for(i = 0; i < 3; i++) { for(j = 0; j <= i; j++) printf("%d ", a[i][j]); printf(" "); } } 16.执行以下程序的输出结果是() #include <stdio.h> main() { int a[5] = {1,2,3,4,5}, i, sum = 0; for(i = 0; i < 5; i++) { if(a[i] % 2 == 0) continue; sum += a[i]; } printf("%d", sum); } 17.执行以下程序的输出结果是() #include <stdio.h> main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}, i, j; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) if(i == j) printf("%d ", a[i][j]); printf(" "); } } 18.执行以下程序的输出结果是() #include <stdio.h> main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}, b[3][3], i, j; for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) b[j][i] = a[i][j]; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) printf("%d ", b[i][j]); printf(" "); } } 19.执行以下程序的输出结果是() #include <stdio.h> #include <string.h> main() { char s1[20] = "hello", s2[20] = "world"; int len1 = strlen(s1), len2 = strlen(s2), i; for(i = 0; i < len2; i++) s1[len1 + i] = s2[i]; s1[len1 + len2] = '\0'; printf("%s", s1); } 20.执行以下程序的输出结果是() #include <stdio.h> #include <string.h> main() { char s[20] = "Programming", result[20]; int i, j = 0; for(i = 0; s[i] != '\0'; i++) if(s[i]!= 'a' && s[i] != 'e'&& s[i] != 'i' && s[i] != 'o' && s[i] != 'u') result[j++] = s[i]; result[j] = '\0'; printf("%s", result); } 三、编程题 1.编写程序,在有序数列{1,3,5,7,9}中插入一个数,使数列仍然有序。 2.编写程序,输入5个学生的3门课程成绩,计算每个学生的平均成绩。 3.编写程序,输入一个5×5矩阵,求副对角线元素之和。 4.编写程序,输入10个学生的成绩,找出最高分和最低分,并计算去掉最高分和最低分后的平均分。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 5.4节:数组的应用举例 一、单项选择题 1.执行语句char str[] = "abcde"; printf("%d", strlen(str)); 输出( ) A. 5 B. 6 C. 不确定 D. 编译错误 【答案】A 2.以下代码段输出结果是( ) int a[3][3] = {1,2,3,4,5,6,7,8,9}; printf("%d", a[1][2]); A. 2 B. 4 C. 6 D. 8 【答案】C 3.以下关于strcpy函数的说法正确的是( ) A. strcpy会检查目标数组空间是否足够 B. strcpy会自动在目标字符串末尾添加'\0' C. strcpy可以用于连接两个字符串 D. strcpy的第一个参数是源字符串 【答案】B 4.以下代码段输出结果是( ) char s1[] = "abc", s2[] = "def"; strcat(s1, s2); printf("%s", s1); A. abc B. def C. abcdef D. 运行时错误 【答案】D s1空间不足,连接后可能导致缓冲区溢出 5.以下代码段输出结果是( ) int a[5] = {1,2,3,4,5}, i, sum = 0; for(i = 0; i < 5; i++) sum += a[i]; printf("%d", sum); A. 15 B. 10 C. 5 D. 不确定 【答案】A 6.以下关于字符数组的说法错误的是( ) A. 字符数组可以存储字符串 B. 字符数组可以用%s格式输出 C. 字符数组名表示数组首地址 D. 字符数组可以用=运算符整体赋值 【答案】D 7.以下关于数组的说法正确的是( ) A. 数组元素在内存中连续存放 B. 数组名可以赋值给另一个数组名 C. 数组下标可以是负数 D. 数组定义时大小必须是常量表达式 【答案】A 8.以下代码段输出结果是( ) char s[] = "abc\0def"; printf("%d", strlen(s)); A. 3 B. 7 C. 6 D. 不确定 【答案】A 二、程序运行结果题 9.执行以下程序的输出结果是( ) #include <stdio.h> main() { int a[5] = {1,2,3,4,5}, i, j; for(i = 0; i < 5; i++) { for(j = 0; j < i; j++) printf("*"); printf(" "); } } 【答案】 * ** *** **** 10.执行以下程序的输出结果是( ) #include <stdio.h> #include <string.h> main() { char s[] = "12345"; printf("%c", s[strlen(s)-1]); } 【答案】5 11.执行以下程序的输出结果是( ) #include <stdio.h> main() { int a[5] = {1,2,3,4,5}, i, sum = 0; for(i = 0; i < 5; i++) { if(i % 2 == 0) sum += a[i]; else sum -= a[i]; } printf("%d", sum); } 【答案】3 12.执行以下程序的输出结果是( ) #include <stdio.h> main() { int a[3][3] = {1,2,3,4,5,6,7,8,9}, i, j; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) printf("%d ", a[j][i]); printf(" "); } } 【答案】 1 4 7 2 5 8 3 6 9 13.执行以下程序的输出结果是( ) #include <stdio.h> #include <string.h> main() { char s1[10] = "123", s2[10] = "456"; strcat(s1 + 1, s2 + 1); printf("%s", s1); } 【答案】12356 14.执行以下程序的输出结果是( ) #include <stdio.h> main() { int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, i, sum = 0; for(i = 0; i < 3; i++) sum += a[i][i % 2 + 1]; printf("%d", sum); } 【答案】19 15.执行以下程序的输出结果是( ) #include <stdio.h> main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}, i, j; for(i = 0; i < 3; i++) { for(j = 0; j <= i; j++) printf("%d ", a[i][j]); printf(" "); } } 【答案】 1 4 5 7 8 9 16.执行以下程序的输出结果是( ) #include <stdio.h> main() { int a[5] = {1,2,3,4,5}, i, sum = 0; for(i = 0; i < 5; i++) { if(a[i] % 2 == 0) continue; sum += a[i]; } printf("%d", sum); } 【答案】9 17.执行以下程序的输出结果是( ) #include <stdio.h> main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}, i, j; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) if(i == j) printf("%d ", a[i][j]); printf(" "); } } 【答案】 1 5 9 18.执行以下程序的输出结果是( ) #include <stdio.h> main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}, b[3][3], i, j; for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) b[j][i] = a[i][j]; for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) printf("%d ", b[i][j]); printf(" "); } } 【答案】 1 4 7 2 5 8 3 6 9 19.执行以下程序的输出结果是( ) #include <stdio.h> #include <string.h> main() { char s1[20] = "hello", s2[20] = "world"; int len1 = strlen(s1), len2 = strlen(s2), i; for(i = 0; i < len2; i++) s1[len1 + i] = s2[i]; s1[len1 + len2] = '\0'; printf("%s", s1); } 【答案】helloworld 20.执行以下程序的输出结果是( ) #include <stdio.h> #include <string.h> main() { char s[20] = "Programming", result[20]; int i, j = 0; for(i = 0; s[i] != '\0'; i++) if(s[i]!= 'a' && s[i] != 'e'&& s[i] != 'i' && s[i] != 'o' && s[i] != 'u') result[j++] = s[i]; result[j] = '\0'; printf("%s", result); } 【答案】Prgrmmng 三、编程题 1.编写程序,在有序数列{1,3,5,7,9}中插入一个数,使数列仍然有序。 【答案】 #include <stdio.h> main() { int a[6] = {1,3,5,7,9}, n, i, pos = 5; scanf("%d", &n); for(i = 4; i >= 0; i--) { if(a[i] > n) { a[i+1] = a[i]; pos = i; } else break; } a[pos] = n; for(i = 0; i < 6; i++) printf("%d ", a[i]); } 2.编写程序,输入5个学生的3门课程成绩,计算每个学生的平均成绩。 【答案】 #include <stdio.h> main() { float score[5][3], avg[5]; int i, j; for(i = 0; i < 5; i++) { avg[i] = 0; for(j = 0; j < 3; j++) { scanf("%f", &score[i][j]); avg[i] += score[i][j]; } avg[i] /= 3; } for(i = 0; i < 5; i++) printf("学生%d平均分:%.2f ", i+1, avg[i]); } 3.编写程序,输入一个5×5矩阵,求副对角线元素之和。 【答案】 #include <stdio.h> main() { int a[5][5], i, j, sum = 0; for(i = 0; i < 5; i++) for(j = 0; j < 5; j++) scanf("%d", &a[i][j]); for(i = 0; i < 5; i++) sum += a[i][4-i]; printf("副对角线元素之和:%d ", sum); } 4.编写程序,输入10个学生的成绩,找出最高分和最低分,并计算去掉最高分和最低分后的平均分。 【答案】 #include <stdio.h> main() { float score[10], max, min, sum = 0, avg; int i; for(i = 0; i < 10; i++) { scanf("%f", &score[i]); sum += score[i]; } max = min = score[0]; for(i = 1; i < 10; i++) { if(score[i] > max) max = score[i]; if(score[i] < min) min = score[i]; } avg = (sum - max - min) / 8; printf("最高分:%.2f,最低分:%.2f,平均分:%.2f ", max, min, avg); } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第5章 第4节:数组的应用举例(练习)-《编程语言基础—C语言》(高教版第5版)同步精品课堂-第1页
1
第5章 第4节:数组的应用举例(练习)-《编程语言基础—C语言》(高教版第5版)同步精品课堂-第2页
2
第5章 第4节:数组的应用举例(练习)-《编程语言基础—C语言》(高教版第5版)同步精品课堂-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。