内容正文:
编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第16卷为专业核心模块训练卷,按《C语言》中"C语言卷3——数据类型及定义方法"范围和要求编写。具体内容为:掌握C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
江苏省对口招生职业技能考试
C语言 试卷
(C语言卷3——数据类型及定义方法)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C语言中的基本数据类型不包括( )
A.int整型 B.float浮点型 C.array数组 D.char字符型
【答案】C
【解析】array(数组)是构造类型,不是基本数据类型。C语言基本类型包括int、float、double、char等。
2. 下列可以用来定义字符型变量的是( )
A.int关键字 B.char关键字 C.float关键字 D.double关键字
【答案】B
【解析】char关键字用于定义字符型变量,占1个字节。
3. sizeof(int)在典型C环境中的值是( )
A.1个字节 B.2或4个字节 C.8个字节 D.16个字节
【答案】B
【解析】int类型在16位系统中占2字节,在32/64位系统中通常占4字节。
4. 定义长整型变量的关键字是( )
A.long int B.short int C.unsigned int D.double int
【答案】A
【解析】long int或简写为long用于定义长整型变量,通常占4或8个字节。
5. 下列 C 语言变量定义语句书写完全正确的是()
A. int 1x;
B. char c1;
C. float 3.14;
D. int a;b;c;
【答案】B
【解析】C 语言变量名只能由字母、数字、下划线构成,首字符不能为数字;同类型多变量定义需用逗号分隔,不能分号隔开。
6. C语言中,浮点型数据包括( )
A.int和char B.float和double C.int和float D.char和int
【答案】B
【解析】浮点型数据包括float(单精度浮点型)和double(双精度浮点型)。
7. 定义无符号整型变量的关键字是( )
A.signed int B.unsigned int C.short int D.long int
【答案】B
【解析】unsigned int用于定义无符号整型变量,只能存储非负整数。
8. 下列关于char类型,正确的是( )
A.占4个字节 B.只能存储英文字母 C.存储字符的ASCII码值 D.不能参与算术运算
【答案】C
【解析】char类型存储字符的ASCII码值(整数),本质上就是小整数,可以参与算术运算。
9. 下列定义语句正确的是( )
A.int a,b,c; B.int a b c;(缺少逗号)
C.int,a,b,c(缺少等号) D.define int a;(错误关键字)
【答案】A
【解析】在同一行定义多个同类型变量时,用逗号分隔。
10. C语言中,枚举类型enum属于( )
A.基本数据类型 B.构造数据类型 C.指针类型 D.空类型
【答案】B
【解析】C语言数据类型包括基本类型、构造类型、指针类型和空类型。枚举类型enum属于构造类型。
11. 下列关于数据类型的说法,错误的是( )
A.int是整数类型 B.float是单精度浮点型 C.double是双精度浮点型 D.string是C语言基本类型
【答案】D
【解析】C语言没有string基本类型,字符串用字符数组处理。
12. 想要定义一个精确度很高的浮点数变量,应该使用( )
A.float类型 B.int类型 C.double类型 D.char类型
【答案】C
【解析】double双精度浮点型比float单精度有更高的精度和更大的数值范围。
13. C语言中,空类型使用什么关键字表示( )
A.null关键字 B.void关键字 C.empty关键字 D.none关键字
【答案】B
【解析】void表示空类型,常用于函数无返回值或指针不指向具体类型。
14. 下列能正确定义并初始化整型变量的是( )
A.int x=3.14;(精度损失) B.int y=10;(正确)
C.char z=1000;(可能溢出) D.以上都正确
【答案】B
【解析】int y=10;正确定义并初始化了整型变量。A将浮点数赋给整型会造成精度损失。
15. 指针类型属于C语言数据类型中的( )
A.基本类型 B.构造类型 C.指针类型 D.空类型
【答案】C
【解析】C语言数据类型包括基本类型、构造类型、指针类型和空类型四大类。
16. 想要定义存储真或假的变量,最适合的类型是( )
A.int类型 B.char类型 C.枚举类型 D.以上都可以
【答案】D
【解析】可以用int、char或enum来定义标志变量,C99标准引入了_Bool类型。
17. 下列关于变量定义的位置,正确的是( )
A.变量必须定义在程序开头 B.变量可以定义在使用前的任何位置 C.变量必须定义在main函数开头 D.变量定义顺序没有要求
【答案】B
【解析】现代C语言标准(C99及以后)允许变量在使用前的任何位置定义。
18. short int类型通常占用的字节数是( )
A.1个字节 B.2个字节 C.4个字节 D.8个字节
【答案】B
【解析】short int通常占用2个字节(16位)。
19. 下列关于数据类型转换,说法正确的是( )
A.只能进行显式类型转换 B.自动类型转换从小范围类型向大范围类型
C.赋值总是需要进行类型转换 D.不同类型的数据不能进行运算
【答案】B
【解析】自动类型转换(隐式转换)通常从小范围类型向大范围类型转换,如int转换为double。
20. 想要定义一个变量使其只作为标志使用而不参加算术运算,可以使用( )
A.只能使用int类型 B.只能使用char类型
C.可以使用int、char或enum D.以上都不可以
【答案】C
【解析】可以用int、char或enum来定义标志变量,根据实际需要选择。
二、判断题(共10题,每题1分,共10分)
21. C语言中的基本数据类型包括int、float、double和char( )
【答案】√
【解析】C语言基本数据类型包括整型、浮点型、字符型等。
22. 数组属于C语言的基本数据类型( )
【答案】×
【解析】数组属于构造类型,不是基本数据类型。
23. char类型变量只能存储英文字母字符( )
【答案】×
【解析】char类型存储字符的ASCII码值,可以存储任何ASCII字符,包括字母、数字、符号等。
24. unsigned int类型只能存储非负整数( )
【答案】√
【解析】unsigned表示无符号,只能存储非负数(0和正数)。
25. C语言中,变量可以在使用前的任何位置定义( )
【答案】√
【解析】现代C语言标准允许变量在使用前的任何位置定义。
26. double类型比float类型精度更高( )
【答案】√
【解析】double是双精度浮点型,比float单精度有更高的精度和更大的范围。
27. void类型表示空类型,不能用来定义普通变量( )
【答案】√
【解析】void表示空类型,不能用来定义普通变量,主要用于函数返回值类型和通用指针。
28. C语言有专门的布尔类型bool( )
【答案】×
【解析】标准C语言(C89/C90)没有专门的布尔类型,C99标准引入了_Bool类型。
29. 指针类型属于C语言的构造类型( )
【答案】×
【解析】指针类型是C语言四大类型之一,不属于构造类型。
30. string是C语言的基本数据类型之一( )
【答案】×
【解析】C语言没有string基本类型,字符串用字符数组处理。
三、填空题(共10空,每空2分,共20分)
31. C语言中,定义整型变量的关键字是____。
【答案】int
【解析】int是定义整型变量的关键字。
32. 定义单精度浮点型变量的关键字是____。
【答案】float
【解析】float用于定义单精度浮点型变量。
33. 定义双精度浮点型变量的关键字是____。
【答案】double
【解析】double用于定义双精度浮点型变量。
34. 定义字符型变量的关键字是____。
【答案】char
【解析】char用于定义字符型变量。
35. 定义无符号整型变量的关键字是____。
【答案】unsigned int
【解析】unsigned int用于定义无符号整型变量。
36. C语言的数据类型分为基本类型、构造类型、指针类型和____类型。
【答案】空(void)
【解析】C语言数据类型包括基本类型、构造类型、指针类型和空类型(void)。
37. 想要获取变量或类型所占字节数,可以使用____运算符。
【答案】sizeof
【解析】sizeof是C语言运算符,用于获取变量或类型所占的字节数。
38. short int类型通常占用____个字节。
【答案】2
【解析】short int通常占用2个字节(16位)。
39. long int类型在32位及以上系统中通常占用____个字节。
【答案】4或8
【解析】在32位系统中long占4字节,在64位Linux/Mac系统中占8字节。
40. C语言中,枚举类型使用关键字____定义。
【答案】enum
【解析】enum是定义枚举类型的关键字。
四、程序综合题(共3题,每题10分,共30分)
41. 程序填空题:阅读下列程序,请将①~④表示的内容填写完整。
(1) #include <stdio.h>
(2) int main()
(3) {
(4) char ch='A';
(5) int x=ch+32;
(6) float y=3.7;
(7) int z=(int)y;
(8) printf("%c,%d,%d
",ch,x,z);
(9) return 0;
(10) }
上述程序中,第4行变量ch的数据类型是①____,占用②____个字节,
第5行赋值后x的值为③____,第7行强制转换后z的值为④____。
【答案】① char ② 1 ③ 97 ④ 3
【解析】
1.第 4 行 char ch='A',ch 的类型是 char(字符型);
2.C 语言中 char 类型固定占用 1 个字节;
3.字符 A 的 ASCII 码是 65,65+32=97,所以 x=97;
4.float y=3.7 强制转为 int,直接截断小数,z=3。
42. 程序填空题:以下程序用冒泡排序将数组按升序排列。请将①~④表示的内容填写完整。
#include <stdio.h>
int main()
{
int a[6]={9,3,7,1,5,2};
int i,j,t;
for(i=0;i<①____;i++)
{
for(j=0;j<②____;j++)
{
if(③____)
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
for(i=0;i<6;i++)
printf("%d ",a[i]);
printf("④____");
return 0;
}
【答案】① 5 ② 5-i ③ a [j]>a [j+1] ④
【解析】
1.数组共 6 个元素,冒泡排序外层循环需执行 6-1=5 次;
2.每轮冒泡都会确定一个末尾最大值,内层循环终点逐轮减少 i 次,填 5-i;
3.要求升序排列,前项大于后项就交换,判断条件为 a [j]>a [j+1];
4.数组遍历输出完毕,用
实现换行,规范输出格式。
43. 文件source.txt中存放一个正整数(位数≥4)。用削峰法删除1个数字,使新数能被3整除且尽可能大。请完善程序。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int max_div3(char strn[]);
int main()
{
char strn[30];
int result;
FILE *fp=fopen("source.txt","r");
fscanf(fp,"%s",strn);
fclose(fp);
result=max_div3(strn);
if(result>0)printf("最大可被3整除的数:%d
",result);
else printf("不存在");
return 0;
}
int max_div3(char strn[])
{
int lenth,i,k,maxn=-1,sum,num;
char tmp[30];
lenth=strlen(strn);
for(i=0;i<lenth;i++)
{
strcpy(tmp,strn);
for(k=i;k<lenth-1;k++)
①;
num=0;sum=0;
for(k=0;k<lenth-1;k++)
{
num=num*10+tmp[k]-'0';
②;
}
if(sum%3==0&&num>maxn)maxn=num;
}
return maxn;
}
【答案】① tmp [k]=tmp [k+1] ② sum+=tmp [k]-'0'
【解析】
1.把当前位置后一位字符前移,实现删除第 i 个字符的效果;
2.逐个取出字符转为对应数字,累加求和,用来判断整体能否被 3 整除。
学科网(北京)股份有限公司
$
编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第16卷为专业核心模块训练卷,按《C语言》中"C语言卷3——数据类型及定义方法"范围和要求编写。具体内容为:掌握C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
江苏省对口招生职业技能考试
C语言 试卷
(C语言卷3——数据类型及定义方法)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C语言中的基本数据类型不包括( )
A.int整型 B.float浮点型 C.array数组 D.char字符型
2. 下列可以用来定义字符型变量的是( )
A.int关键字 B.char关键字 C.float关键字 D.double关键字
3. sizeof(int)在典型C环境中的值是( )
A.1个字节 B.2或4个字节 C.8个字节 D.16个字节
4. 定义长整型变量的关键字是( )
A.long int B.short int C.unsigned int D.double int
5. 下列 C 语言变量定义语句书写完全正确的是()
A. int 1x;
B. char c1;
C. float 3.14;
D. int a;b;c;
6. C语言中,浮点型数据包括( )
A.int和char B.float和double C.int和float D.char和int
7. 定义无符号整型变量的关键字是( )
A.signed int B.unsigned int C.short int D.long int
8. 下列关于char类型,正确的是( )
A.占4个字节 B.只能存储英文字母 C.存储字符的ASCII码值 D.不能参与算术运算
9. 下列定义语句正确的是( )
A.int a,b,c; B.int a b c;(缺少逗号)
C.int,a,b,c(缺少等号) D.define int a;(错误关键字)
10. C语言中,枚举类型enum属于( )
A.基本数据类型 B.构造数据类型 C.指针类型 D.空类型
11. 下列关于数据类型的说法,错误的是( )
A.int是整数类型 B.float是单精度浮点型 C.double是双精度浮点型 D.string是C语言基本类型
12. 想要定义一个精确度很高的浮点数变量,应该使用( )
A.float类型 B.int类型 C.double类型 D.char类型
13. C语言中,空类型使用什么关键字表示( )
A.null关键字 B.void关键字 C.empty关键字 D.none关键字
14. 下列能正确定义并初始化整型变量的是( )
A.int x=3.14;(精度损失) B.int y=10;(正确)
C.char z=1000;(可能溢出) D.以上都正确
15. 指针类型属于C语言数据类型中的( )
A.基本类型 B.构造类型 C.指针类型 D.空类型
16. 想要定义存储真或假的变量,最适合的类型是( )
A.int类型 B.char类型 C.枚举类型 D.以上都可以
17. 下列关于变量定义的位置,正确的是( )
A.变量必须定义在程序开头 B.变量可以定义在使用前的任何位置 C.变量必须定义在main函数开头 D.变量定义顺序没有要求
18. short int类型通常占用的字节数是( )
A.1个字节 B.2个字节 C.4个字节 D.8个字节
19. 下列关于数据类型转换,说法正确的是( )
A.只能进行显式类型转换 B.自动类型转换从小范围类型向大范围类型
C.赋值总是需要进行类型转换 D.不同类型的数据不能进行运算
20. 想要定义一个变量使其只作为标志使用而不参加算术运算,可以使用( )
A.只能使用int类型 B.只能使用char类型
C.可以使用int、char或enum D.以上都不可以
二、判断题(共10题,每题1分,共10分)
21. C语言中的基本数据类型包括int、float、double和char( )
22. 数组属于C语言的基本数据类型( )
23. char类型变量只能存储英文字母字符( )
24. unsigned int类型只能存储非负整数( )
25. C语言中,变量可以在使用前的任何位置定义( )
26. double类型比float类型精度更高( )
27. void类型表示空类型,不能用来定义普通变量( )
28. C语言有专门的布尔类型bool( )
29. 指针类型属于C语言的构造类型( )
30. string是C语言的基本数据类型之一( )
三、填空题(共10空,每空2分,共20分)
31. C语言中,定义整型变量的关键字是____。
32. 定义单精度浮点型变量的关键字是____。
33. 定义双精度浮点型变量的关键字是____。
34. 定义字符型变量的关键字是____。
35. 定义无符号整型变量的关键字是____。
36. C语言的数据类型分为基本类型、构造类型、指针类型和____类型。
37. 想要获取变量或类型所占字节数,可以使用____运算符。
38. short int类型通常占用____个字节。
39. long int类型在32位及以上系统中通常占用____个字节。
40. C语言中,枚举类型使用关键字____定义。
四、程序综合题(共3题,每题10分,共30分)
41. 程序填空题:阅读下列程序,请将①~④表示的内容填写完整。
(1) #include <stdio.h>
(2) int main()
(3) {
(4) char ch='A';
(5) int x=ch+32;
(6) float y=3.7;
(7) int z=(int)y;
(8) printf("%c,%d,%d
",ch,x,z);
(9) return 0;
(10) }
上述程序中,第4行变量ch的数据类型是①____,占用②____个字节,
第5行赋值后x的值为③____,第7行强制转换后z的值为④____。
42. 程序填空题:以下程序用冒泡排序将数组按升序排列。请将①~④表示的内容填写完整。
#include <stdio.h>
int main()
{
int a[6]={9,3,7,1,5,2};
int i,j,t;
for(i=0;i<①____;i++)
{
for(j=0;j<②____;j++)
{
if(③____)
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
for(i=0;i<6;i++)
printf("%d ",a[i]);
printf("④____");
return 0;
}
43. 文件source.txt中存放一个正整数(位数≥4)。用削峰法删除1个数字,使新数能被3整除且尽可能大。请完善程序。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int max_div3(char strn[]);
int main()
{
char strn[30];
int result;
FILE *fp=fopen("source.txt","r");
fscanf(fp,"%s",strn);
fclose(fp);
result=max_div3(strn);
if(result>0)printf("最大可被3整除的数:%d
",result);
else printf("不存在");
return 0;
}
int max_div3(char strn[])
{
int lenth,i,k,maxn=-1,sum,num;
char tmp[30];
lenth=strlen(strn);
for(i=0;i<lenth;i++)
{
strcpy(tmp,strn);
for(k=i;k<lenth-1;k++)
①;
num=0;sum=0;
for(k=0;k<lenth-1;k++)
{
num=num*10+tmp[k]-'0';
②;
}
if(sum%3==0&&num>maxn)maxn=num;
}
return maxn;
}
学科网(北京)股份有限公司
$