内容正文:
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第10卷,为知识训练卷,按《C语言程序设计知识》中“字符数组”范围和要求编写。具体内容为:(5)掌握字符数组的定义及引用。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第10卷 C语言程序设计知识——字符数组
(考试时间:45分钟 满分:100分)
一、选择题(共20题,每题3分,共60分)
1.下列语句中,正确的字符数组定义是( )
A.character s[6];
B.string s[6];
C.char[6] s;
D.char s[6];
2.字符常量'a'的类型是( )
A.字符串型
B.字符型
C.数组型
D.整型
3.字符串常量"abc"在内存中至少需要多少个字符数组元素存放( )
A.5个
B.2个
C.4个
D.3个
4.下列初始化方式正确的是( )
A.char s[5] = "abcd";
B.char s[6] = "abcde";
C.char s[4] = "abcd";
D.char s[3] = "abcd";
5.执行下列语句后,s[0]的值是( )
char s[4] = {'C', 'A', 'T', '\0'};
A."C"
B.'C'
C.'A'
D.0
6.执行下列语句后,s[2]的值是( )
char s[] = "cat";
A.'c'
B.'a'
C.'t'
D.'\0'
7.执行下列程序后,输出结果是( )
char s[5] = "abcd";
printf("%c", s[1]);
A.b
B.c
C.d
D.a
8.下列语句中,表示字符'Z'的是( )
A.[Z]
B."Z"
C.Z
D.'Z'
9.若定义char s[4] = {'a', 'b', 'c', '\0'};,字符串结束标志的下标是( )
A.3
B.2
C.1
D.0
10.执行下列程序后,输出结果是( )
char s[4] = {'A', 'B', 'C', '\0'};
int i;
for (i = 0; s[i] != '\0'; i++)
printf("%c", s[i]);
A.CBA
B.012
C.ABCD
D.ABC
11.下列关于字符数组的说法正确的是( )
A.字符数组不能逐个元素赋值
B.字符数组下标从1开始
C.字符数组的元素类型为char
D.字符数组只能存放数字
12.执行下列程序后,输出结果是( )
char s[5] = "hello";
printf("%c%c", s[0], s[4]);
A.hl
B.ho
C.eo
D.he
13.若定义char s[6] = "hello";,s[5]的值是( )
A.'o'
B.随机值
C.'\0'
D.'h'
14.下列语句执行后,字符数组s的内容是( )
char s[4] = {'a', 'b', 'c', '\0'};
s[1] = 'x';
A.axc
B.xbc
C.abc
D.abx
15.下列定义中,能够完整存放字符串"cat"的是( )
A.char s[3] = "cat";
B.char s[4] = "cat";
C.char s[1] = "cat";
D.char s[2] = "cat";
16.执行下列程序后,count的值是( )
char s[6] = "abcde";
int i, count = 0;
for (i = 0; s[i] != '\0'; i++)
count++;
A.6
B.0
C.4
D.5
17.下列语句中,将字符数组s的第一个元素改为'X'的是( )
A.s = 'X';
B.s[0] = 'X';
C.'X' = s[0];
D.s[1] = 'X';
18.执行下列程序后,输出结果是( )
char s[] = "C language";
printf("%c", s[2]);
A.空格
B.C
C.a
D.l
19.若定义char s[5] = {'a', 'b'};,s[2]的值是( )
A.'\0'
B.随机值
C.'a'
D.'b'
20.下列字符数组定义中,数组长度为6的是( )
A.char s[5] = "hello";
B.char s[7] = "hello";
C.char s[6] = "hello";
D.char s[] = "hello";
二、简答题(共2题,每题10分,共20分)
1.阅读程序,写出程序的输出结果。
#include <stdio.h>
int main( )
{
char s[6] = "hello";
int i;
for (i = 0; s[i] != '\0'; i++) {
printf("%c", s[i]);
}
printf(" %d
", i);
return 0;
}
2.阅读程序,写出程序的输出结果。
#include <stdio.h>
int main( )
{
char s[5] = {'A', 'B', 'C', '\0', 'D'};
printf("%c%c%c
", s[0], s[2], s[4]);
return 0;
}
三、案例分析题(共1题,共10分)
1.下面程序用于输出字符数组s中的3个字符,但程序中有一处错误,请指出并改正。
#include <stdio.h>
int main( )
{
char s[4] = {'A', 'B', 'C', '\0'};
int i;
for (i = 0; i <= 3; i++) {
printf("%c", s[i]);
}
return 0;
}
四、综合应用题(共1题,共10分)
1.编写程序:输入一个不含空格的英文单词,存入字符数组并输出该单词中英文字母的个数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第10卷,为知识训练卷,按《C语言程序设计知识》中“字符数组”范围和要求编写。具体内容为:(5)掌握字符数组的定义及引用。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第10卷 C语言程序设计知识——字符数组
(考试时间:45分钟 满分:100分)
一、选择题(共20题,每题3分,共60分)
1.下列语句中,正确的字符数组定义是( )
A.character s[6];
B.string s[6];
C.char[6] s;
D.char s[6];
【答案】D
【解析】C语言使用char定义字符数组,形式为char s[6]。string和character不是C语言的基本类型名。
2.字符常量'a'的类型是( )
A.字符串型
B.字符型
C.数组型
D.整型
【答案】B
【解析】用单引号括起的单个字符是字符常量,'a'表示一个字符;双引号括起的才是字符串常量。
3.字符串常量"abc"在内存中至少需要多少个字符数组元素存放( )
A.5个
B.2个
C.4个
D.3个
【答案】C
【解析】字符串包含a、b、c三个字符,末尾还需要一个字符串结束标志'\0',所以至少需要4个元素。
4.下列初始化方式正确的是( )
A.char s[5] = "abcd";
B.char s[6] = "abcde";
C.char s[4] = "abcd";
D.char s[3] = "abcd";
【答案】A
【解析】"abcd"包含4个字符和末尾的'\0',需要5个元素,因此char s[5]="abcd"正确。
5.执行下列语句后,s[0]的值是( )
char s[4] = {'C', 'A', 'T', '\0'};
A."C"
B.'C'
C.'A'
D.0
【答案】B
【解析】字符数组的第一个元素下标为0,初始化列表中第一个字符为'C',所以s[0]为'C'。
6.执行下列语句后,s[2]的值是( )
char s[] = "cat";
A.'c'
B.'a'
C.'t'
D.'\0'
【答案】C
【解析】字符串"cat"的字符依次存放在s[0]、s[1]、s[2]中,所以s[2]为't'。
7.执行下列程序后,输出结果是( )
char s[5] = "abcd";
printf("%c", s[1]);
A.b
B.c
C.d
D.a
【答案】A
【解析】s[1]是字符串中的第二个字符'b',%c按字符形式输出b。
8.下列语句中,表示字符'Z'的是( )
A.[Z]
B."Z"
C.Z
D.'Z'
【答案】D
【解析】单引号表示字符常量,'Z'表示一个字符;"Z"是字符串常量。
9.若定义char s[4] = {'a', 'b', 'c', '\0'};,字符串结束标志的下标是( )
A.3
B.2
C.1
D.0
【答案】A
【解析】初始化列表的第4个元素为'\0',下标从0开始,因此结束标志的下标为3。
10.执行下列程序后,输出结果是( )
char s[4] = {'A', 'B', 'C', '\0'};
int i;
for (i = 0; s[i] != '\0'; i++)
printf("%c", s[i]);
A.CBA
B.012
C.ABCD
D.ABC
【答案】D
【解析】循环依次输出s[0]、s[1]、s[2],遇到s[3]的'\0'时结束,所以输出ABC。
11.下列关于字符数组的说法正确的是( )
A.字符数组不能逐个元素赋值
B.字符数组下标从1开始
C.字符数组的元素类型为char
D.字符数组只能存放数字
【答案】C
【解析】字符数组的每个元素都是char类型,可以通过下标逐个访问和赋值,下标从0开始。
12.执行下列程序后,输出结果是( )
char s[5] = "hello";
printf("%c%c", s[0], s[4]);
A.hl
B.ho
C.eo
D.he
【答案】B
【解析】s[0]为'h',s[4]为'o',两个%c依次输出ho。
13.若定义char s[6] = "hello";,s[5]的值是( )
A.'o'
B.随机值
C.'\0'
D.'h'
【答案】C
【解析】"hello"有5个字符,s[0]到s[4]存放字母,s[5]存放字符串结束标志'\0'。
14.下列语句执行后,字符数组s的内容是( )
char s[4] = {'a', 'b', 'c', '\0'};
s[1] = 'x';
A.axc
B.xbc
C.abc
D.abx
【答案】A
【解析】s[1]原来是'b',赋值后变为'x',数组字符内容变为axc。
15.下列定义中,能够完整存放字符串"cat"的是( )
A.char s[3] = "cat";
B.char s[4] = "cat";
C.char s[1] = "cat";
D.char s[2] = "cat";
【答案】B
【解析】"cat"需要3个字母和1个'\0',所以至少需要4个元素。
16.执行下列程序后,count的值是( )
char s[6] = "abcde";
int i, count = 0;
for (i = 0; s[i] != '\0'; i++)
count++;
A.6
B.0
C.4
D.5
【答案】D
【解析】s中有5个有效字符a、b、c、d、e,遇到结束标志时停止,因此count为5。
17.下列语句中,将字符数组s的第一个元素改为'X'的是( )
A.s = 'X';
B.s[0] = 'X';
C.'X' = s[0];
D.s[1] = 'X';
【答案】B
【解析】字符数组第一个元素的下标为0,给s[0]赋值'X'即可完成修改。
18.执行下列程序后,输出结果是( )
char s[] = "C language";
printf("%c", s[2]);
A.空格
B.C
C.a
D.l
【答案】D
【解析】s[0]为'C',s[1]为空格,s[2]为'l',因此输出l。
19.若定义char s[5] = {'a', 'b'};,s[2]的值是( )
A.'\0'
B.随机值
C.'a'
D.'b'
【答案】A
【解析】字符数组部分初始化时,未列出的元素自动初始化为0;对char数组而言,0可表示字符串结束标志'\0'。
20.下列字符数组定义中,数组长度为6的是( )
A.char s[5] = "hello";
B.char s[7] = "hello";
C.char s[6] = "hello";
D.char s[] = "hello";
【答案】C
【解析】"hello"包含5个字母和1个字符串结束标志'\0',完整存放时数组长度为6。
二、简答题(共2题,每题10分,共20分)
1.阅读程序,写出程序的输出结果。
#include <stdio.h>
int main( )
{
char s[6] = "hello";
int i;
for (i = 0; s[i] != '\0'; i++) {
printf("%c", s[i]);
}
printf(" %d
", i);
return 0;
}
【答案】输出:hello 5
【解析】循环依次输出hello的5个字符,i从0增加到5时遇到字符串结束标志,循环结束并输出5。
2.阅读程序,写出程序的输出结果。
#include <stdio.h>
int main( )
{
char s[5] = {'A', 'B', 'C', '\0', 'D'};
printf("%c%c%c
", s[0], s[2], s[4]);
return 0;
}
【答案】输出:ACD
【解析】s[0]、s[2]和s[4]分别为'A'、'C'和'D',printf按指定顺序输出ACD;数组中的'\0'不影响直接下标访问s[4]。
三、案例分析题(共1题,共10分)
1.下面程序用于输出字符数组s中的3个字符,但程序中有一处错误,请指出并改正。
#include <stdio.h>
int main( )
{
char s[4] = {'A', 'B', 'C', '\0'};
int i;
for (i = 0; i <= 3; i++) {
printf("%c", s[i]);
}
return 0;
}
【答案】将for (i = 0; i <= 3; i++)改为for (i = 0; i < 3; i++)。
【解析】数组s的有效字符为s[0]、s[1]、s[2],s[3]是字符串结束标志。原循环把'\0'也作为字符输出,改为i<3后只输出ABC。
四、综合应用题(共1题,共10分)
1.编写程序:输入一个不含空格的英文单词,存入字符数组并输出该单词中英文字母的个数。
【答案】
#include <stdio.h>
int main( )
{
char s[100];
int i = 0;
scanf("%99s", s);
while (s[i] != '\0') {
i++;
}
printf("%d
", i);
return 0;
}
【解析】scanf以字符串形式读入单词并自动在末尾添加'\0';while循环逐个检查字符,遇到结束标志时i就是单词中的字母个数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$