第10卷 字符数组的定义及引用《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》

2026-06-12
| 2份
| 16页
| 4人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 5.3 字符数组的定义和使用
类型 题集-专项训练
知识点 数组
使用场景 中职复习
学年 2026-2027
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 183 KB
发布时间 2026-06-12
更新时间 2026-06-12
作者 xkw__007
品牌系列 学易金卷·考纲百套卷
审核时间 2026-06-12
下载链接 https://m.zxxk.com/soft/58312452.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第10卷,按《C语言程序设计》范围和要求编写。具体内容为: 掌握字符数组的定义及引用。 山东省《软件与应用技术类考纲百套卷》 第10卷 《C语言程序设计》 字符数组的定义及引用 考点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共20小题,每题3分,共60分) 1.以下字符数组定义语句中,正确的是( ) A. char str [10]; B. char str (10); C. char str [5.0]; D. char str [n]; 【答案】A 【解析】字符数组定义格式为类型名 数组名[常量表达式];,长度必须是整型常量。B 用括号错误;C 用浮点数错误;D 用变量错误。 2.以下字符数组初始化语句中,正确的是( ) A. char str [3]={'a','b','c','d'}; B. char str [5]={'a','b','c','d','e'}; C. char str []={}; D. char str [5]={'a',,'c'}; 【答案】B 【解析】初始化元素个数不能超过数组长度,A 错误;不能省略所有元素,C 错误;不能连续出现逗号,D 错误;B 是完整初始化,所有元素都被赋值。 3.若有定义char str[]="abc";,则数组 str 的长度是( ) A. 3 B. 4 C. 5 D. 不确定 【答案】B 【解析】字符串 "abc" 包含 4 个字符:'a'、'b'、'c' 和结束符 '\0',因此数组长度为 4。 4.在 C 语言中,字符数组名str代表的是( ) A. 数组全部元素的值 B. 数组最后一个元素的值 C. 数组最后一个元素的地址 D. 数组第一个元素的地址 【答案】D 【解析】字符数组名是常量指针,指向数组第一个元素的首地址,与普通数组名含义相同。 5.若有定义char str[5]={'a','b'};,则数组元素str[3]的值是( ) A. '\0' B. 'b' C. ' ' D. 随机值 【答案】A 【解析】字符数组部分初始化时,未显式初始化的元素自动赋值为 '\0'。 6.若有定义char str[10]="abc";,则strlen(str)的值是( ) A. 10 B. 3 C. 4 D. 不确定 【答案】B 【解析】strlen函数计算字符串的有效长度,不包括结束符 '\0',因此 "abc" 的长度为 3。 7.若有定义char str[]="hello";,则数组元素str[1]的值是( ) A. 'h' B. 'l' C. 'e' D. 'o' 【答案】C 【解析】数组下标从 0 开始,str [0]='h',str [1]='e',str [2]='l',str [3]='l',str [4]='o'。 8.以下输入字符数组的语句中,正确的是( ) A. char str [10]; scanf ("% c", str); B. char str [10]; scanf ("% s", &str); C. char str [10]; scanf ("% d", str); D. char str [10]; scanf ("% s", str); 【答案】D 【解析】用%s格式符输入字符串时,参数直接写数组名,不需要加&。A 用%c只能输入单个字符;B 多了&;C 用%d输入整数错误。 9.以下字符数组定义语句中,错误的是( ) A. char str [3]="abc"; B. char str [4]="abc"; C. char str []="abc"; D. char str [5]={'a','b','c','\0'}; 【答案】A 【解析】字符串 "abc" 需要 4 个字节存储(含 '\0'),A 选项数组长度为 3,空间不足,会导致越界错误。 10.以下关于字符数组与字符串的描述中,正确的是( ) A. 字符数组就是字符串 B. 字符串必须以 '\0' 结尾,字符数组不一定 C. 字符数组必须以 '\0' 结尾 D. 字符串可以用赋值运算符直接赋值,字符数组不行 【答案】B 【解析】字符串是特殊的字符数组,必须以 '\0' 结尾;普通字符数组可以不包含 '\0',但不能当作字符串使用。 11.执行以下程序段后,输出结果是( ) char str[]="abcde"; for(int i=0;str[i]!='\0';i++) printf("%c", str[i]+1); A. abcde B. bcdef C. edcba D. 编译错误 【答案】B 【解析】循环遍历字符串,每个字符的 ASCII 码加 1 后输出,'a'+1='b','b'+1='c',依此类推,结果为 bcdef。 12.执行以下程序段后,输出结果是( ) char str[5]={'a','b','\0','c','d'}; printf("%s", str); A. abcd B. ab\0cd C. ab D. 编译错误 【答案】C 【解析】printf用%s输出字符串时,遇到 '\0' 就停止,因此只输出 '\0' 前面的 'ab'。 13.以下给字符数组赋值的语句中,正确的是( ) A. char str [10]; str [0]='a'; str [1]='b'; str [2]='\0'; B. char str [10]; str="abc"; C. char str1 [10]="abc", str2 [10]; str2=str1; D. char str [10]={'a','b','c'}; str="def"; 【答案】A 【解析】字符数组不能直接用赋值运算符=赋值,只能逐个元素赋值或初始化时赋值。B、C、D 都错误地使用了=赋值。 14.若有定义char str[5];,以下数组元素引用中,错误的是( ) A. str [0]='a'; B. str [4]='e'; C. str [5]='f'; D. str [2]=str [0]+1; 【答案】C 【解析】字符数组下标范围是 0 到长度 - 1,str [5] 下标越界,会导致运行错误。 15.若有定义char str[]="";,则数组 str 的长度是( ) A. 0 B. 1 C. 2 D. 不确定 【答案】B 【解析】空字符串 "" 包含一个字符 '\0',因此数组长度为 1。 16.执行以下程序段后,输出结果是( ) char str[]="hello\0world"; printf("%s", str); A. hello B. helloworld C. hello\0world D. 编译错误 【答案】A 【解析】字符串中第一个 '\0' 就是结束符,后面的内容不会被输出,因此只输出 "hello"。 17.以下关于字符数组初始化的描述中,正确的是( ) A. 可以用字符串常量初始化字符数组 B. 只能用字符常量逐个初始化字符数组 C. 初始化时必须指定数组长度 D. 初始化时元素个数必须等于数组长度 【答案】A 【解析】可以用字符串常量直接初始化字符数组,系统会自动添加 '\0'。B 错误,也可以用字符串初始化;C 错误,可以省略长度;D 错误,可以部分初始化。 18.若有定义char str[]="abcdef";,则sizeof(str)的值是( ) A. 6 B. 7 C. 8 D. 不确定 【答案】B 【解析】sizeof计算数组所占的总字节数,"abcdef" 包含 7 个字符(6 个字母 + 1 个 '\0'),因此 sizeof (str)=7。 19.以下循环中,能正确遍历字符串所有字符的是( ) A. for (int i=0;i<sizeof (str);i++) printf ("% c", str [i]); B. for (int i=0;i<strlen (str)+1;i++) printf ("% c", str [i]); C. for (int i=0;str [i]!='\0';i++) printf ("% c", str [i]); D. for (int i=0;i<10;i++) printf ("% c", str [i]); 【答案】C 【解析】遍历字符串的标准写法是判断字符是否为 '\0',遇到结束符停止。A 会输出 '\0' 及后面的垃圾值;B 多输出了 '\0';D 固定循环 10 次,可能越界或输出不完整。 20.若用scanf("%s", str)输入字符串,以下说法正确的是( ) A. 可以输入包含空格的字符串 B. 输入的字符串会自动添加 '\0' C. 输入时必须加 & 符号 D. 输入的字符串长度可以超过数组长度 【答案】B 【解析】scanf("%s")输入字符串时,会自动在末尾添加 '\0';A 错误,遇到空格就停止输入;C 错误,数组名本身是地址,不需要 &;D 错误,长度超过数组会导致越界。 二、简答题(本大题共2小题,每题10分,共20分) 1.阅读以下 C 语言程序,程序运行后的结果为______ #include <stdio.h> int main() { char str[]="Hello World"; int count=0,i=0; while(str[i]!='\0') { if(str[i]=='o') count++; i++; } printf("count=%d ", count); return 0; } 【答案】count=2 2.阅读以下 C 语言程序,程序运行后的结果为______ #include <stdio.h> int main() { char str[]="12345"; int i,temp; for(i=0;i<2;i++) { temp=str[i]; str[i]=str[4-i]; str[4-i]=temp; } printf("%s ", str); return 0; } 【答案】54321 三、案例分析题(本大题共1小题,每题10分,共10分) 1.以下程序的功能是:输入一个字符串,计算并输出该字符串的长度(不包括结束符 '\0')。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。 #include <stdio.h> int main() { char str[100]; int len=0,i=0; printf("请输入一个字符串:"); scanf("%s", ____1____); while(str[i]!='\0') { ____2____; ____3____; } printf("字符串长度为:%d ", ____4____); return 0; } 【答案】 1.str 2.len++(或len=len+1、len+=1) 3.i++(或i=i+1、i+=1) 4.len 四、综合应用题(本大题共1小题,每题10分,共10分) 1.编写一个 C 语言程序,实现以下功能:输入一个不超过 100 个字符的字符串 统计并输出字符串中大写字母的个数。 【答案】 #include <stdio.h> int main() { char str[100]; int count=0,i=0; printf("请输入一个字符串:"); scanf("%s", str); while(str[i]!='\0') { if(str[i]>='A' && str[i]<='Z') count++; i++; } printf("大写字母的个数为:%d ", count); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第10卷,按《C语言程序设计》范围和要求编写。具体内容为: 掌握字符数组的定义及引用。 山东省《软件与应用技术类考纲百套卷》 第10卷 《C语言程序设计》 字符数组的定义及引用 考点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共20小题,每题3分,共60分) 1.以下字符数组定义语句中,正确的是( ) A. char str [10]; B. char str (10); C. char str [5.0]; D. char str [n]; 2.以下字符数组初始化语句中,正确的是( ) A. char str [3]={'a','b','c','d'}; B. char str [5]={'a','b','c','d','e'}; C. char str []={}; D. char str [5]={'a',,'c'}; 3.若有定义char str[]="abc";,则数组 str 的长度是( ) A. 3 B. 4 C. 5 D. 不确定 4.在 C 语言中,字符数组名str代表的是( ) A. 数组全部元素的值 B. 数组最后一个元素的值 C. 数组最后一个元素的地址 D. 数组第一个元素的地址 5.若有定义char str[5]={'a','b'};,则数组元素str[3]的值是( ) A. '\0' B. 'b' C. ' ' D. 随机值 6.若有定义char str[10]="abc";,则strlen(str)的值是( ) A. 10 B. 3 C. 4 D. 不确定 7.若有定义char str[]="hello";,则数组元素str[1]的值是( ) A. 'h' B. 'l' C. 'e' D. 'o' 8.以下输入字符数组的语句中,正确的是( ) A. char str [10]; scanf ("% c", str); B. char str [10]; scanf ("% s", &str); C. char str [10]; scanf ("% d", str); D. char str [10]; scanf ("% s", str); 9.以下字符数组定义语句中,错误的是( ) A. char str [3]="abc"; B. char str [4]="abc"; C. char str []="abc"; D. char str [5]={'a','b','c','\0'}; 10.以下关于字符数组与字符串的描述中,正确的是( ) A. 字符数组就是字符串 B. 字符串必须以 '\0' 结尾,字符数组不一定 C. 字符数组必须以 '\0' 结尾 D. 字符串可以用赋值运算符直接赋值,字符数组不行 11.执行以下程序段后,输出结果是( ) char str[]="abcde"; for(int i=0;str[i]!='\0';i++) printf("%c", str[i]+1); A. abcde B. bcdef C. edcba D. 编译错误 12.执行以下程序段后,输出结果是( ) char str[5]={'a','b','\0','c','d'}; printf("%s", str); A. abcd B. ab\0cd C. ab D. 编译错误 13.以下给字符数组赋值的语句中,正确的是( ) A. char str [10]; str [0]='a'; str [1]='b'; str [2]='\0'; B. char str [10]; str="abc"; C. char str1 [10]="abc", str2 [10]; str2=str1; D. char str [10]={'a','b','c'}; str="def"; 14.若有定义char str[5];,以下数组元素引用中,错误的是( ) A. str [0]='a'; B. str [4]='e'; C. str [5]='f'; D. str [2]=str [0]+1; 15.若有定义char str[]="";,则数组 str 的长度是( ) A. 0 B. 1 C. 2 D. 不确定 16.执行以下程序段后,输出结果是( ) char str[]="hello\0world"; printf("%s", str); A. hello B. helloworld C. hello\0world D. 编译错误 17.以下关于字符数组初始化的描述中,正确的是( ) A. 可以用字符串常量初始化字符数组 B. 只能用字符常量逐个初始化字符数组 C. 初始化时必须指定数组长度 D. 初始化时元素个数必须等于数组长度 18.若有定义char str[]="abcdef";,则sizeof(str)的值是( ) A. 6 B. 7 C. 8 D. 不确定 19.以下循环中,能正确遍历字符串所有字符的是( ) A. for (int i=0;i<sizeof (str);i++) printf ("% c", str [i]); B. for (int i=0;i<strlen (str)+1;i++) printf ("% c", str [i]); C. for (int i=0;str [i]!='\0';i++) printf ("% c", str [i]); D. for (int i=0;i<10;i++) printf ("% c", str [i]); 20.若用scanf("%s", str)输入字符串,以下说法正确的是( ) A. 可以输入包含空格的字符串 B. 输入的字符串会自动添加 '\0' C. 输入时必须加 & 符号 D. 输入的字符串长度可以超过数组长度 二、简答题(本大题共2小题,每题10分,共20分) 1.阅读以下 C 语言程序,程序运行后的结果为______ #include <stdio.h> int main() { char str[]="Hello World"; int count=0,i=0; while(str[i]!='\0') { if(str[i]=='o') count++; i++; } printf("count=%d ", count); return 0; } 2.阅读以下 C 语言程序,程序运行后的结果为______ #include <stdio.h> int main() { char str[]="12345"; int i,temp; for(i=0;i<2;i++) { temp=str[i]; str[i]=str[4-i]; str[4-i]=temp; } printf("%s ", str); return 0; } 三、案例分析题(本大题共1小题,每题10分,共10分) 1.以下程序的功能是:输入一个字符串,计算并输出该字符串的长度(不包括结束符 '\0')。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。 #include <stdio.h> int main() { char str[100]; int len=0,i=0; printf("请输入一个字符串:"); scanf("%s", ____1____); while(str[i]!='\0') { ____2____; ____3____; } printf("字符串长度为:%d ", ____4____); return 0; } 四、综合应用题(本大题共1小题,每题10分,共10分) 1.编写一个 C 语言程序,实现以下功能:输入一个不超过 100 个字符的字符串 统计并输出字符串中大写字母的个数。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第10卷 字符数组的定义及引用《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
1
第10卷 字符数组的定义及引用《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
2
第10卷 字符数组的定义及引用《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。