内容正文:
编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第15卷为专业核心模块训练卷,按《C语言》中"C语言卷2——C语言的结构与书写格式"范围和要求编写。具体内容为:掌握程序结构的main函数;理解头文件、数据说明、函数的开始和结束标志;掌握源程序的书写格式;理解C语言的风格。
江苏省对口招生职业技能考试
C语言 试卷
(C语言卷2——C语言的结构与书写格式)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C语言程序的基本组成单位是( )
A.表达式语句 B.函数 C.变量定义 D.预处理指令
2. C语言程序执行的起点是( )
A.程序的第一行 B.main函数 C.第一个#include D.最后一行
3. C语言中使用#includes引入的是( )
A.函数体代码 B.头文件 C.主函数定义 D.变量声明
4. C语言中,函数体使用什么符号括起来( )
A.圆括号() B.方括号[] C.花括号{} D.尖括号<>
5. 下列关于C语言注释,正确的是( )
A.只有一种注释方式 B./* */注释可以嵌套使用 C.// 用于单行注释 D.注释会被编译和执行
6. C语言源程序文件的扩展名是( )
A..exe可执行文件 B..c源程序文件 C..obj目标文件 D..cppC++文件
7. 在C语言中,语句以什么符号结束( )
A.英文句号. B.逗号, C.分号; D.冒号:
8. 下列头文件中,用于标准输入输出函数声明的是( )
A.<stdlib.h> B.<stdio.h> C.<string.h> D.<math.h>
9. 下列关于C语言书写格式,正确的是( )
A.所有语句必须从第1列开始写 B.一条语句可以分多行书写 C.一行只能写一个语句 D.花括号必须单独占一行
10. 在C语言中,预处理指令以什么符号开头( )
A.英文句号. B.井号# C.AT符号@ D.美元符号$
11. 下列关于main函数,正确的是( )
A.C语言区分大小写,main必须小写 B.MAIN也可以作为主函数名
C.Main和main是同一个函数 D.主函数名可以省略不写
12. C语言中,函数头部结束后,函数体开始的标志是( )
A.分号; B.冒号: C.左花括号{ D.左圆括号(
13. 在一个C语言源文件中,可以定义( )
A.只能有一个函数 B.只能有一个main函数 C.多个函数 D.不能有多个函数
14. C语言程序的执行过程是( )
A.从源文件第一行开始执行 B.从main函数开始执行 C.从最后一个函数开始执行 D.从#include处开始执行
15. 下列表示回车换行的转义字符是( )
A.\
B.\\t制表符 C.\\0空字符 D.\\b退格符
16. C语言中,下列关于空语句的说法正确的是( )
A.空语句会产生编译错误 B.空语句就是一个分号; C.空语句不能用于循环体 D.空语句必须包含空格
17. 下列关于C语言风格,正确的是( )
A.不使用任何缩进 B.花括号不对齐
C.适当使用空格和缩进增加程序可读性 D.所有代码必须写在一行
18. C语言中的注释不会被( )
A.编辑器显示 B.编译器编译 C.程序员阅读 D.解释器解释
19. 下列关于C语言源文件,正确的是( )
A.一个源文件必须有头文件 B.一个源文件必须有main函数 C.一个源文件可以没有main函数 D.一个源文件不能包含函数调用
20. C语言程序的开发过程正确的顺序是( )
A.编辑→编译→链接→运行 B.编译→编辑→运行→链接 C.运行→编译→编辑→链接 D.编辑→运行→编译→链接
二、判断题(共10题,每题1分,共10分)
21. C语言程序从main函数开始执行( )
22. C语言程序中,每条语句以逗号结束( )
23. #include <stdio.h>的作用是引入标准输入输出头文件( )
24. C语言程序的书写格式要求十分严格,不能随意换行( )
25. 函数体必须用一对花括号{}括起来( )
26. C语言区分大小写,main和Main是同一个函数( )
27. 一个C源程序文件中只能有一个函数( )
28. C语言中的注释会被编译和执行( )
29. 预处理指令以#开头,以分号结束( )
30. C语言源程序文件的扩展名是.txt( )
三、填空题(共10空,每空2分,共20分)
31. C语言程序的基本组成单位是____。
32. C语言程序的执行总是从____函数开始。
33. 在C语言中,引入头文件使用____预处理指令。
34. C语言函数体使用____和____(填写符号)括起来。
35. C语言中,每条语句必须以____结束。
36. 用于标准输入输出函数声明的头文件是____。
37. C语言的注释方式有两种:// 用于____注释,/* */用于____注释。
38. C语言预处理指令以____符号开头。
39. C语言源程序文件的扩展名通常是____。
40. 一个C源程序文件中只能有____个main函数。
四、程序综合题(共3题,每题10分,共30分)
41. 程序阅读题:阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int x=7,y=3;
float z;
z=(float)x/y;
printf("z=%.1f
",z);
printf("x/y=%d
",x/y);
printf("x%%y=%d
",x%y);
return 0;
}
42. 程序填空题:阅读下列程序,请将①~④表示的内容填写完整。
(1) #include <stdio.h>
(2) int max(int a,int b)
(3) {
(4) if(a>b)
(5) return a;
(6) return b;
(7) }
(8) int main()
(9) {
(10) int m=5,n=8;
(11) int r=max(m,n);
(12) printf("%d
",r);
(13) return 0;
(14) }
上述程序中,函数max的返回值类型是①____,第10行变量n的初始值是②____,
函数调用语句位于第③____行,程序输出结果为④____。
43.文件intern.dat存储学生实习申请(姓名、首选企业、次选企业、专业成绩、综合素质分)。三家企业各接收5名实习生,按总分(专业×60%+素质×40%)排名录取。请完善程序。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define QUOTA 5
void sort_app(char na[][3][20],float sc[][2],int n);
int main()
{
FILE *fp,*f1,*f2,*f3;
int i=0,co[3]={0};
char app[150][3][20];
float score[150][2];
fp=fopen("intern.dat","r");
while(!feof(fp))
{
fscanf(fp,"%s%s%s%f%f",app[i][0],app[i][1],app[i][2],&score[i][0],&score[i][1]);
①;
}
fclose(fp);
sort_app(app,score,i);
f1=fopen("A公司.txt","w");
f2=fopen("B公司.txt","w");
f3=fopen("C公司.txt","w");
for(int k=0;k<i;k++)
{
float tot=score[k][0]*0.6+score[k][1]*0.4;
if(strcmp(app[k][1],"A公司")==0&&co[0]<QUOTA)
{fprintf(f1,"%s %.2f
",app[k][0],tot);co[0]++;}
else if(strcmp(app[k][1],"B公司")==0&&co[1]<QUOTA)
{fprintf(f2,"%s %.2f
",app[k][0],tot);co[1]++;}
else if(strcmp(app[k][1],"C公司")==0&&co[2]<QUOTA)
{fprintf(f3,"%s %.2f
",app[k][0],tot);②;}
else if(strcmp(app[k][2],"A公司")==0&&co[0]<QUOTA)
{fprintf(f1,"%s %.2f
",app[k][0],tot);co[0]++;}
else if(strcmp(app[k][2],"B公司")==0&&③)
{fprintf(f2,"%s %.2f
",app[k][0],tot);co[1]++;}
else if(strcmp(app[k][2],"C公司")==0&&co[2]<QUOTA)
{fprintf(f3,"%s %.2f
",app[k][0],tot);④;}
}
fclose(f1);fclose(f2);fclose(f3);
return 0;
}
void sort_app(char na[][3][20],float sc[][2],int n)
{
int i,j,p,k;
float tp,ti,tj;
char tc[20];
for(i=0;i<n-1;i++)
{
p=i;
ti=sc[p][0]*0.6+sc[p][1]*0.4;
for(j=i+1;j<n;j++)
{
tj=sc[j][0]*0.6+sc[j][1]*0.4;
if(ti<tj){p=j;ti=tj;}
}
if(p!=i)
{
for(k=0;k<3;k++){strcpy(tc,na[p][k]);strcpy(na[p][k],na[i][k]);strcpy(na[i][k],tc);}
tp=sc[p][0];sc[p][0]=sc[i][0];sc[i][0]=tp;
tp=sc[p][1];sc[p][1]=sc[i][1];sc[i][1]=tp;
}
}
}
学科网(北京)股份有限公司
$
编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第15卷为专业核心模块训练卷,按《C语言》中"C语言卷2——C语言的结构与书写格式"范围和要求编写。具体内容为:掌握程序结构的main函数;理解头文件、数据说明、函数的开始和结束标志;掌握源程序的书写格式;理解C语言的风格。
江苏省对口招生职业技能考试
C语言 试卷
(C语言卷2——C语言的结构与书写格式)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C语言程序的基本组成单位是( )
A.表达式语句 B.函数 C.变量定义 D.预处理指令
【答案】B
【解析】C程序由一个或多个函数组成,函数是C程序的基本组成单位。
2. C语言程序执行的起点是( )
A.程序的第一行 B.main函数 C.第一个#include D.最后一行
【答案】B
【解析】每个C程序必须从main函数开始执行,无论main函数在文件中的什么位置。
3. C语言中使用#includes引入的是( )
A.函数体代码 B.头文件 C.主函数定义 D.变量声明
【答案】B
【解析】#include是预处理指令,用于引入头文件,提供函数声明和宏定义。
4. C语言中,函数体使用什么符号括起来( )
A.圆括号() B.方括号[] C.花括号{} D.尖括号<>
【答案】C
【解析】函数体用一对花括号{}括起来,标志函数的开始和结束。
5. 下列关于C语言注释,正确的是( )
A.只有一种注释方式 B./* */注释可以嵌套使用 C.// 用于单行注释 D.注释会被编译和执行
【答案】C
【解析】C语言支持//单行注释和/* */多行注释,注释内容不会被编译和执行。
6. C语言源程序文件的扩展名是( )
A..exe可执行文件 B..c源程序文件 C..obj目标文件 D..cppC++文件
【答案】B
【解析】C语言源程序文件扩展名为.c,.exe是可执行文件,.obj是目标文件。
7. 在C语言中,语句以什么符号结束( )
A.英文句号. B.逗号, C.分号; D.冒号:
【答案】C
【解析】C语言中每条语句必须以分号;作为结束标志。
8. 下列头文件中,用于标准输入输出函数声明的是( )
A.<stdlib.h> B.<stdio.h> C.<string.h> D.<math.h>
【答案】B
【解析】stdio.h是标准输入输出头文件,提供printf、scanf等函数的声明。
9. 下列关于C语言书写格式,正确的是( )
A.所有语句必须从第1列开始写 B.一条语句可以分多行书写 C.一行只能写一个语句 D.花括号必须单独占一行
【答案】B
【解析】C语言书写格式自由,一条语句可以分多行书写,以分号作为语句结束标志。
10. 在C语言中,预处理指令以什么符号开头( )
A.英文句号. B.井号# C.AT符号@ D.美元符号$
【答案】B
【解析】预处理指令以#开头,如#include、#define等。
11. 下列关于main函数,正确的是( )
A.C语言区分大小写,main必须小写 B.MAIN也可以作为主函数名
C.Main和main是同一个函数 D.主函数名可以省略不写
【答案】A
【解析】C语言区分大小写,主函数必须写为main,不能大写。
12. C语言中,函数头部结束后,函数体开始的标志是( )
A.分号; B.冒号: C.左花括号{ D.左圆括号(
【答案】C
【解析】函数头部后使用左花括号{标志函数体的开始。
13. 在一个C语言源文件中,可以定义( )
A.只能有一个函数 B.只能有一个main函数 C.多个函数 D.不能有多个函数
【答案】C
【解析】一个C源文件可以定义多个函数,但只能有一个main函数。
14. C语言程序的执行过程是( )
A.从源文件第一行开始执行 B.从main函数开始执行 C.从最后一个函数开始执行 D.从#include处开始执行
【答案】B
【解析】C程序总是从main函数开始执行,无论main在文件中的什么位置。
15. 下列表示回车换行的转义字符是( )
A.\
B.\\t制表符 C.\\0空字符 D.\\b退格符
【答案】A
【解析】
是转义字符,表示回车换行(换行符)。
16. C语言中,下列关于空语句的说法正确的是( )
A.空语句会产生编译错误 B.空语句就是一个分号; C.空语句不能用于循环体 D.空语句必须包含空格
【答案】B
【解析】空语句只包含一个分号;,不执行任何操作,可以用作循环体等场合。
17. 下列关于C语言风格,正确的是( )
A.不使用任何缩进 B.花括号不对齐
C.适当使用空格和缩进增加程序可读性 D.所有代码必须写在一行
【答案】C
【解析】良好的C语言编程风格包括适当缩进、合理空格和清晰的对齐,增加程序可读性。
18. C语言中的注释不会被( )
A.编辑器显示 B.编译器编译 C.程序员阅读 D.解释器解释
【答案】B
【解析】注释不会被编译,编译器会忽略所有注释内容。
19. 下列关于C语言源文件,正确的是( )
A.一个源文件必须有头文件 B.一个源文件必须有main函数 C.一个源文件可以没有main函数 D.一个源文件不能包含函数调用
【答案】C
【解析】一个C源文件可以没有main函数(如只包含辅助函数的文件),但程序必须有且仅有一个main函数。
20. C语言程序的开发过程正确的顺序是( )
A.编辑→编译→链接→运行 B.编译→编辑→运行→链接 C.运行→编译→编辑→链接 D.编辑→运行→编译→链接
【答案】A
【解析】C程序开发需要依次经过编辑、编译、链接、运行四个步骤。
二、判断题(共10题,每题1分,共10分)
21. C语言程序从main函数开始执行( )
【答案】√
【解析】C程序总是从main函数开始执行,无论main函数在文件中的什么位置。
22. C语言程序中,每条语句以逗号结束( )
【答案】×
【解析】C语言语句以分号;结束,不是逗号。
23. #include <stdio.h>的作用是引入标准输入输出头文件( )
【答案】√
【解析】#include是预处理指令,用于引入头文件,stdio.h提供标准输入输出函数声明。
24. C语言程序的书写格式要求十分严格,不能随意换行( )
【答案】×
【解析】C语言书写格式相对自由,可以合理换行,以分号作为语句结束标志。
25. 函数体必须用一对花括号{}括起来( )
【答案】√
【解析】C语言中函数体必须用花括号{}括起来。
26. C语言区分大小写,main和Main是同一个函数( )
【答案】×
【解析】C语言区分大小写,main和Main是不同的标识符。
27. 一个C源程序文件中只能有一个函数( )
【答案】×
【解析】一个C源程序文件可以包含多个函数,但只能有一个main函数。
28. C语言中的注释会被编译和执行( )
【答案】×
【解析】注释不会被编译和执行,编译器会忽略注释内容。
29. 预处理指令以#开头,以分号结束( )
【答案】×
【解析】预处理指令以#开头,但不以分号结束。
30. C语言源程序文件的扩展名是.txt( )
【答案】×
【解析】C语言源程序文件扩展名是.c,不是.txt。
三、填空题(共10空,每空2分,共20分)
31. C语言程序的基本组成单位是____。
【答案】函数
【解析】C程序由一个或多个函数组成,函数是C程序的基本单位。
32. C语言程序的执行总是从____函数开始。
【答案】main
【解析】每个C程序都必须有且仅有一个main函数,程序从此开始执行。
33. 在C语言中,引入头文件使用____预处理指令。
【答案】#include
【解析】#include是预处理指令,用于引入头文件。
34. C语言函数体使用____和____(填写符号)括起来。
【答案】{}
【解析】函数体用一对花括号{}括起来。
35. C语言中,每条语句必须以____结束。
【答案】;
【解析】C语言中每条语句以分号作为结束标志。
36. 用于标准输入输出函数声明的头文件是____。
【答案】stdio.h
【解析】stdio.h提供了printf、scanf等标准输入输出函数的声明。
37. C语言的注释方式有两种:// 用于____注释,/* */用于____注释。
【答案】单行、多行
【解析】C语言支持//单行注释和/* */多行注释两种方式。
38. C语言预处理指令以____符号开头。
【答案】#
【解析】所有预处理指令都以#开头。
39. C语言源程序文件的扩展名通常是____。
【答案】.c
【解析】C语言源程序文件标准扩展名为.c。
40. 一个C源程序文件中只能有____个main函数。
【答案】一(1)
【解析】一个C程序中只能有一个main函数。
四、程序综合题(共3题,每题10分,共30分)
41. 程序阅读题:阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int x=7,y=3;
float z;
z=(float)x/y;
printf("z=%.1f
",z);
printf("x/y=%d
",x/y);
printf("x%%y=%d
",x%y);
return 0;
}
【答案】z=2.3;x/y=2;x% y=1
【解析】
1.已知x=7,y=3,(float)x将 x 强制转换为浮点型,7.0/3=2.333...,%.1f保留 1 位小数,输出z=2.3;
2.x/y是整数除法,7÷3 商为 2,舍去小数,输出x/y=2;
3.x%y是取余运算,7 除以 3 余 1,%%在 printf 中表示输出一个 %,最终输出x%y=1。
42. 程序填空题:阅读下列程序,请将①~④表示的内容填写完整。
(1) #include <stdio.h>
(2) int max(int a,int b)
(3) {
(4) if(a>b)
(5) return a;
(6) return b;
(7) }
(8) int main()
(9) {
(10) int m=5,n=8;
(11) int r=max(m,n);
(12) printf("%d
",r);
(13) return 0;
(14) }
上述程序中,函数max的返回值类型是①____,第10行变量n的初始值是②____,
函数调用语句位于第③____行,程序输出结果为④____。
【答案】① int ② 8 ③ 11 ④ 8
【解析】
①:函数max定义为int max(...),返回值类型是int(整型);
②:第 10 行int m=5,n=8;,变量 n 的初始值为8;
③:第 11 行int r=max(m,n);是调用 max 函数的语句;
④:函数功能是返回两个数的最大值,5 和 8 的最大值是 8,程序输出8。
43.文件intern.dat存储学生实习申请(姓名、首选企业、次选企业、专业成绩、综合素质分)。三家企业各接收5名实习生,按总分(专业×60%+素质×40%)排名录取。请完善程序。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define QUOTA 5
void sort_app(char na[][3][20],float sc[][2],int n);
int main()
{
FILE *fp,*f1,*f2,*f3;
int i=0,co[3]={0};
char app[150][3][20];
float score[150][2];
fp=fopen("intern.dat","r");
while(!feof(fp))
{
fscanf(fp,"%s%s%s%f%f",app[i][0],app[i][1],app[i][2],&score[i][0],&score[i][1]);
①;
}
fclose(fp);
sort_app(app,score,i);
f1=fopen("A公司.txt","w");
f2=fopen("B公司.txt","w");
f3=fopen("C公司.txt","w");
for(int k=0;k<i;k++)
{
float tot=score[k][0]*0.6+score[k][1]*0.4;
if(strcmp(app[k][1],"A公司")==0&&co[0]<QUOTA)
{fprintf(f1,"%s %.2f
",app[k][0],tot);co[0]++;}
else if(strcmp(app[k][1],"B公司")==0&&co[1]<QUOTA)
{fprintf(f2,"%s %.2f
",app[k][0],tot);co[1]++;}
else if(strcmp(app[k][1],"C公司")==0&&co[2]<QUOTA)
{fprintf(f3,"%s %.2f
",app[k][0],tot);②;}
else if(strcmp(app[k][2],"A公司")==0&&co[0]<QUOTA)
{fprintf(f1,"%s %.2f
",app[k][0],tot);co[0]++;}
else if(strcmp(app[k][2],"B公司")==0&&③)
{fprintf(f2,"%s %.2f
",app[k][0],tot);co[1]++;}
else if(strcmp(app[k][2],"C公司")==0&&co[2]<QUOTA)
{fprintf(f3,"%s %.2f
",app[k][0],tot);④;}
}
fclose(f1);fclose(f2);fclose(f3);
return 0;
}
void sort_app(char na[][3][20],float sc[][2],int n)
{
int i,j,p,k;
float tp,ti,tj;
char tc[20];
for(i=0;i<n-1;i++)
{
p=i;
ti=sc[p][0]*0.6+sc[p][1]*0.4;
for(j=i+1;j<n;j++)
{
tj=sc[j][0]*0.6+sc[j][1]*0.4;
if(ti<tj){p=j;ti=tj;}
}
if(p!=i)
{
for(k=0;k<3;k++){strcpy(tc,na[p][k]);strcpy(na[p][k],na[i][k]);strcpy(na[i][k],tc);}
tp=sc[p][0];sc[p][0]=sc[i][0];sc[i][0]=tp;
tp=sc[p][1];sc[p][1]=sc[i][1];sc[i][1]=tp;
}
}
}
【答案】① i++ ② co [2]++ ③ co [1]<QUOTA ④ co [2]++
【解析】
①:while循环读取文件数据,每读取一条学生信息,数组下标i需要自增 1,统计总人数,填i++;
②:录取 C 公司首选学生后,C 公司录取人数co[2]需要加 1,填co[2]++;
③:次选 B 公司的录取条件和首选一致,要求人数未达上限QUOTA(5),填co[1]<QUOTA;
④:录取 C 公司次选学生后,C 公司人数加 1,填co[2]++。
学科网(北京)股份有限公司
$