第27卷 C语言-C语言卷14——库函数、函数类型返回值、局部变量与全局变量——江苏省计算机类——考纲百套卷

2026-07-01
| 2份
| 21页
| 7人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 函数
使用场景 中职复习-中职高考
学年 2027-2028
地区(省份) 江苏省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 94 KB
发布时间 2026-07-01
更新时间 2026-07-01
作者 xy06893
品牌系列 学易金卷·考纲百套卷
审核时间 2026-07-01
下载链接 https://m.zxxk.com/soft/58571361.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。 本试卷是第27卷为专业核心模块训练卷,按《C语言》中"C语言卷14——库函数、函数类型返回值、局部变量与全局变量"范围和要求编写。具体内容为:理解库函数的正确调用;理解函数的类型和返回值;理解函数的调用;理解局部变量和全局变量。 江苏省对口招生职业技能考试 C语言 试卷 (C语言卷14——库函数、函数类型返回值、局部变量与全局变量) 考试时间:90分钟 满分:100分 一、单项选择题(共20题,每题2分,共40分) 1. 下列关于库函数,正确的是( ) A.库函数需要用户自己实现 B.使用库函数需要包含相应的头文件 C.库函数不能直接使用,必须重新实现 D.库函数只能用于特定操作系统 2. 想要使用数学函数sin、cos、sqrt等,应该包含头文件( ) A.<stdio.h> B.<stdlib.h> C.<math.h> D.<string.h> 3. 下列关于函数返回值,正确的是( ) A.所有函数都必须有返回值 B.void函数没有返回值 C.函数的返回值类型必须与函数定义时的返回类型一致 D.函数可以通过return语句返回多个值 4. 想要从函数返回一个整型值,函数定义时返回类型应该是( ) A.void B.int C.char D.float 5. 下列关于return语句,正确的是( ) A.return语句只能出现在函数末尾 B.void函数不能有return语句 C.return语句可以提前结束函数执行 D.一个函数只能有一个return语句 6. 想要从函数返回表达式的值,应该使用( ) A.return 表达式; B.return; C.exit(表达式); D.break; 7. 下列关于局部变量,正确的是( ) A.局部变量在函数外部定义 B.局部变量只在定义它的函数内部有效 C.局部变量在程序整个运行期间都有效 D.局部变量可以与全局变量同名且不影响 8. 下列关于全局变量,正确的是( ) A.全局变量只能在main函数中定义 B.全局变量在函数外部定义,可以被多个函数共享 C.全局变量名不能与局部变量同名 D.全局变量必须定义在程序开头 9. 当局部变量与全局变量同名时,在局部变量的作用域内( ) A.全局变量优先 B.局部变量优先 C.编译错误 D.运行错误 10. 想要在函数内部访问被屏蔽的全局变量,可以使用( ) A.:: 作用域运算符 B.extern关键字 C.无法访问 D.以上都不对 11. 下列关于变量的存储类型,正确的是( ) A.auto关键字必须显式书写 B.局部变量默认是auto存储类型 C.全局变量可以是auto存储类型 D.static局部变量在函数调用间不保留值 12. 想要使局部变量在函数调用间保留值,应该使用( ) A.auto关键字 B.register关键字 C.static关键字 D.extern关键字 13. 下列关于register变量,正确的是( ) A.register变量一定存储在CPU寄存器中 B.register变量不能取地址 C.register变量比auto变量快很多 D.register变量可以用于所有数据类型 14. 想要在多个源文件间共享全局变量,应该使用( ) A.static关键字 B.extern关键字 C.auto关键字 D.register关键字 15. 下列关于static全局变量,正确的是( ) A.static全局变量可以被其他文件使用 B.static全局变量只能被本文件使用 C.static全局变量不保留值 D.static全局变量必须定义在main函数之前 16. 想要使用随机数函数rand(),应该包含头文件( ) A.<stdio.h> B.<stdlib.h> C.<math.h> D.<time.h> 17. 下列关于函数的返回类型,错误的是( ) A.函数可以返回基本类型 B.函数可以返回指针类型 C.函数可以返回数组类型 D.函数可以返回结构体类型 18. 想要使全局变量只在定义它的文件内有效,应该使用( ) A.auto关键字 B.register关键字 C.static关键字 D.extern关键字 19. 下列关于库函数的调用,正确的是( ) A.库函数调用时不需要包含头文件 B.库函数调用时需要包含相应的头文件 C.库函数可以由用户重新定义 D.所有库函数都在stdio.h中 20. 想要在程序开始时初始化全局变量,应该( ) A.在定义时初始化 B.在main函数开始时初始化 C.使用专门的初始化函数 D.全局变量不能初始化 二、判断题(共10题,每题1分,共10分) 21. 使用库函数需要包含相应的头文件( ) 22. void函数可以没有return语句,也可以有带值的return语句( ) 23. 局部变量只在定义它的函数内部有效( ) 24. 全局变量可以被本文件中的所有函数共享( ) 25. 当局部变量与全局变量同名时,局部变量优先( ) 26. static局部变量在函数调用间保留值( ) 27. register变量一定存储在CPU寄存器中( ) 28. static全局变量可以被其他文件使用( ) 29. 全局变量在定义时可以初始化,初始值必须是常量表达式( ) 30. 函数可以返回结构体类型的值( ) 三、填空题(共10空,每空2分,共20分) 31. 使用数学库函数sin、cos等,需要包含头文件____。 32. void类型的函数____(填有或没有)返回值。 33. 想要从函数返回一个值,应该使用____语句。 34. 局部变量具有____作用域。 35. 全局变量在函数____定义,具有文件作用域。 36. 当局部变量与全局变量同名时,____变量优先。 37. 想要使局部变量在函数调用间保留值,可以使用____关键字。 38. 想要在多个源文件间共享全局变量,应该使用____关键字声明。 39. 想要使全局变量只在定义它的文件内有效,可以使用____关键字。 40. 使用随机数函数rand()需要包含头文件____。 四、程序综合题(共3题,每题10分,共30分) 41. 程序填空题:以下程序用递归函数求阶乘。请将①~④表示的内容填写完整。 #include <stdio.h> long fac(int n) { if(①____) return 1; else return ②____; } int main() { int n=5; printf("%d!=%ld ",n,③____); return ④____; } 42.文件vote.dat存储N条问卷记录,每条记录包含问卷ID和投票选项(A/B/C)。将相同选项的记录分别输出到A.txt、B.txt、C.txt,且每组内按问卷ID升序排列。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 200 void sort_by_id(char id[][10],char opt[],int n); int main() { FILE *fp,*fa,*fb,*fc; int i=0,n; char qid[N][10],opt[N]; fp=fopen("vote.dat","r"); while(!feof(fp)) { fscanf(fp,"%s",qid[i]); fgetc(fp); opt[i]=fgetc(fp); ①; } n=i; fclose(fp); sort_by_id(qid,opt,n); fa=fopen("A.txt","w"); fb=fopen("B.txt","w"); fc=fopen("C.txt","w"); for(i=0;i<n;i++) { if(opt[i]=='A')fprintf(fa,"%s ",qid[i]); else if(opt[i]=='B')fprintf(fb,"%s ",qid[i]); else if(opt[i]=='C')fprintf(fc,"%s ",qid[i]); } fclose(fa);fclose(fb);fclose(fc); return 0; } void sort_by_id(char id[][10],char opt[],int n) { int i,j,p; char tid[10],topt; for(i=0;i<n-1;i++) { p=i; for(j=i+1;j<n;j++) if(②) p=j; if(p!=i) { strcpy(tid,id[p]);strcpy(id[p],id[i]);strcpy(id[i],tid); topt=opt[p];opt[p]=opt[i];opt[i]=topt; } } } 43.文件answer.dat存储问卷答案(答案字符串)。去掉重复答案后,按字典序升序输出所有不重复的答案。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 void sort_str(char s[][20],int n); int main() { FILE *fp; int i=0,n,j,k,cnt=0; char ans[N][20],unq[N][20]; fp=fopen("answer.dat","r"); while(!feof(fp)) { fscanf(fp,"%s",ans[i]); ①; } n=i; fclose(fp); sort_str(ans,n); strcpy(unq[0],ans[0]); cnt=1; for(i=1;i<n;i++) { for(k=0;k<cnt;k++) if(②)break; if(k==cnt) { strcpy(unq[cnt],ans[i]); cnt++; } } for(i=0;i<cnt;i++) printf("%s ",unq[i]); return 0; } void sort_str(char s[][20],int n) { int i,j; char t[20]; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(s[i],s[j])>0) { strcpy(t,s[i]);strcpy(s[i],s[j]);strcpy(s[j],t); } } 学科网(北京)股份有限公司 $ 编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。 本试卷是第27卷为专业核心模块训练卷,按《C语言》中"C语言卷14——库函数、函数类型返回值、局部变量与全局变量"范围和要求编写。具体内容为:理解库函数的正确调用;理解函数的类型和返回值;理解函数的调用;理解局部变量和全局变量。 江苏省对口招生职业技能考试 C语言 试卷 (C语言卷14——库函数、函数类型返回值、局部变量与全局变量) 考试时间:90分钟 满分:100分 一、单项选择题(共20题,每题2分,共40分) 1. 下列关于库函数,正确的是( ) A.库函数需要用户自己实现 B.使用库函数需要包含相应的头文件 C.库函数不能直接使用,必须重新实现 D.库函数只能用于特定操作系统 【答案】B 【解析】使用库函数需要包含相应的头文件,如stdio.h、math.h等。 2. 想要使用数学函数sin、cos、sqrt等,应该包含头文件( ) A.<stdio.h> B.<stdlib.h> C.<math.h> D.<string.h> 【答案】C 【解析】数学函数在math.h中声明。 3. 下列关于函数返回值,正确的是( ) A.所有函数都必须有返回值 B.void函数没有返回值 C.函数的返回值类型必须与函数定义时的返回类型一致 D.函数可以通过return语句返回多个值 【答案】B 【解析】void函数没有返回值,不能使用带值的return语句。 4. 想要从函数返回一个整型值,函数定义时返回类型应该是( ) A.void B.int C.char D.float 【答案】B 【解析】返回整型值,返回类型应为int。 5. 下列关于return语句,正确的是( ) A.return语句只能出现在函数末尾 B.void函数不能有return语句 C.return语句可以提前结束函数执行 D.一个函数只能有一个return语句 【答案】C 【解析】return语句可用于提前结束函数执行。 6. 想要从函数返回表达式的值,应该使用( ) A.return 表达式; B.return; C.exit(表达式); D.break; 【答案】A 【解析】return 表达式; 用于返回表达式的值。 7. 下列关于局部变量,正确的是( ) A.局部变量在函数外部定义 B.局部变量只在定义它的函数内部有效 C.局部变量在程序整个运行期间都有效 D.局部变量可以与全局变量同名且不影响 【答案】B 【解析】局部变量具有函数作用域,只在定义它的函数内有效。 8. 下列关于全局变量,正确的是( ) A.全局变量只能在main函数中定义 B.全局变量在函数外部定义,可以被多个函数共享 C.全局变量名不能与局部变量同名 D.全局变量必须定义在程序开头 【答案】B 【解析】全局变量在函数外部定义,具有文件作用域,可以被多个函数共享。 9. 当局部变量与全局变量同名时,在局部变量的作用域内( ) A.全局变量优先 B.局部变量优先(局部屏蔽全局) C.编译错误 D.运行错误 【答案】B 【解析】当局部变量与全局变量同名时,局部变量优先(局部屏蔽全局)。 10. 想要在函数内部访问被屏蔽的全局变量,可以使用( ) A.:: 作用域运算符(C++才有) B.extern关键字 C.无法访问 D.以上都不对 【答案】D 【解析】标准C语言没有机制在局部变量作用域内访问被屏蔽的全局变量。 11. 下列关于变量的存储类型,正确的是( ) A.auto关键字必须显式书写 B.局部变量默认是auto存储类型 C.全局变量可以是auto存储类型 D.static局部变量在函数调用间不保留值 【答案】B 【解析】局部变量默认是auto存储类型,auto关键字通常省略。 12. 想要使局部变量在函数调用间保留值,应该使用( ) A.auto关键字 B.register关键字 C.static关键字 D.extern关键字 【答案】C 【解析】static局部变量在函数调用间保留值,只在第一次进入函数时初始化。 13. 下列关于register变量,正确的是( ) A.register变量一定存储在CPU寄存器中 B.register变量不能取地址 C.register变量比auto变量快很多 D.register变量可以用于所有数据类型 【答案】B 【解析】register变量建议编译器将其放入寄存器,但不能对其使用&取地址符。 14. 想要在多个源文件间共享全局变量,应该使用( ) A.static关键字 B.extern关键字 C.auto关键字 D.register关键字 【答案】B 【解析】在一个文件中定义全局变量,在其他文件中用extern声明后使用。 15. 下列关于static全局变量,正确的是( ) A.static全局变量可以被其他文件使用 B.static全局变量只能被本文件使用 C.static全局变量不保留值 D.static全局变量必须定义在main函数之前 【答案】B 【解析】static全局变量具有文件作用域,只能被本文件使用。 16. 想要使用随机数函数rand(),应该包含头文件( ) A.<stdio.h> B.<stdlib.h> C.<math.h> D.<time.h> 【答案】B 【解析】rand()和srand()在stdlib.h中声明。 17. 下列关于函数的返回类型,错误的是( ) A.函数可以返回基本类型 B.函数可以返回指针类型 C.函数可以返回数组类型 D.函数可以返回结构体类型 【答案】C 【解析】函数不能直接返回数组类型,但可以返回指向数组的指针。 18. 想要使全局变量只在定义它的文件内有效,应该使用( ) A.auto关键字 B.register关键字 C.static关键字 D.extern关键字 【答案】C 【解析】static全局变量具有文件作用域。 19. 下列关于库函数的调用,正确的是( ) A.库函数调用时不需要包含头文件 B.库函数调用时需要包含相应的头文件 C.库函数可以由用户重新定义 D.所有库函数都在stdio.h中 【答案】B 【解析】使用库函数需要包含相应的头文件。 20. 想要在程序开始时初始化全局变量,应该( ) A.在定义时初始化 B.在main函数开始时初始化 C.使用专门的初始化函数 D.全局变量不能初始化 【答案】A 【解析】全局变量在定义时可以初始化,初始值必须是常量表达式。 二、判断题(共10题,每题1分,共10分) 21. 使用库函数需要包含相应的头文件( ) 【答案】√ 【解析】库函数声明在头文件中,使用时应包含相应头文件。 22. void函数可以没有return语句,也可以有带值的return语句( ) 【答案】× 【解析】void函数不能有带值的return语句,但可以有不带值的return;。 23. 局部变量只在定义它的函数内部有效( ) 【答案】√ 【解析】局部变量具有函数作用域。 24. 全局变量可以被本文件中的所有函数共享( ) 【答案】√ 【解析】全局变量具有文件作用域。 25. 当局部变量与全局变量同名时,局部变量优先( ) 【答案】√ 【解析】局部变量屏蔽同名全局变量。 26. static局部变量在函数调用间保留值( ) 【答案】√ 【解析】static局部变量的值在函数调用间保留。 27. register变量一定存储在CPU寄存器中( ) 【答案】× 【解析】register只是建议,编译器可以忽略。 28. static全局变量可以被其他文件使用( ) 【答案】× 【解析】static全局变量只能被本文件使用。 29. 全局变量在定义时可以初始化,初始值必须是常量表达式( ) 【答案】√ 【解析】全局变量的初始值必须是编译时可求值的常量表达式。 30. 函数可以返回结构体类型的值( ) 【答案】√ 【解析】C语言函数可以返回结构体类型的值。 三、填空题(共10空,每空2分,共20分) 31. 使用数学库函数sin、cos等,需要包含头文件____。 【答案】math.h 【解析】数学函数在<math.h>中声明。 32. void类型的函数____(填有或没有)返回值。 【答案】没有 【解析】void表示函数没有返回值。 33. 想要从函数返回一个值,应该使用____语句。 【答案】return 【解析】return语句用于从函数返回值。 34. 局部变量具有____作用域。 【答案】函数(块) 【解析】局部变量只在定义它的函数(或块)内有效。 35. 全局变量在函数____定义,具有文件作用域。 【答案】外部(函数外部) 【解析】全局变量定义在函数外部。 36. 当局部变量与全局变量同名时,____变量优先。 【答案】局部 【解析】局部变量屏蔽同名全局变量。 37. 想要使局部变量在函数调用间保留值,可以使用____关键字。 【答案】static 【解析】static局部变量在函数调用间保留值。 38. 想要在多个源文件间共享全局变量,应该使用____关键字声明。 【答案】extern 【解析】用extern声明其他文件中定义的全局变量。 39. 想要使全局变量只在定义它的文件内有效,可以使用____关键字。 【答案】static 【解析】static全局变量具有文件作用域。 40. 使用随机数函数rand()需要包含头文件____。 【答案】stdlib.h 【解析】rand()在<stdlib.h>中声明。 四、程序综合题(共3题,每题10分,共30分) 41. 程序填空题:以下程序用递归函数求阶乘。请将①~④表示的内容填写完整。 #include <stdio.h> long fac(int n) { if(①____) return 1; else return ②____; } int main() { int n=5; printf("%d!=%ld ",n,③____); return ④____; } 【答案】① n==0 ② n*fac (n-1) ③ fac (n) ④ 0 【解析】 ① 递归终止条件:n 等于 0 时阶乘结果为 1; ② 递归公式:n 的阶乘等于 n 乘以 n-1 的阶乘; ③ 调用递归函数 fac (n) 计算 5 的阶乘并输出; ④ main 函数正常结束,返回值固定为 0。 42.文件vote.dat存储N条问卷记录,每条记录包含问卷ID和投票选项(A/B/C)。将相同选项的记录分别输出到A.txt、B.txt、C.txt,且每组内按问卷ID升序排列。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 200 void sort_by_id(char id[][10],char opt[],int n); int main() { FILE *fp,*fa,*fb,*fc; int i=0,n; char qid[N][10],opt[N]; fp=fopen("vote.dat","r"); while(!feof(fp)) { fscanf(fp,"%s",qid[i]); fgetc(fp); opt[i]=fgetc(fp); ①; } n=i; fclose(fp); sort_by_id(qid,opt,n); fa=fopen("A.txt","w"); fb=fopen("B.txt","w"); fc=fopen("C.txt","w"); for(i=0;i<n;i++) { if(opt[i]=='A')fprintf(fa,"%s ",qid[i]); else if(opt[i]=='B')fprintf(fb,"%s ",qid[i]); else if(opt[i]=='C')fprintf(fc,"%s ",qid[i]); } fclose(fa);fclose(fb);fclose(fc); return 0; } void sort_by_id(char id[][10],char opt[],int n) { int i,j,p; char tid[10],topt; for(i=0;i<n-1;i++) { p=i; for(j=i+1;j<n;j++) if(②) p=j; if(p!=i) { strcpy(tid,id[p]);strcpy(id[p],id[i]);strcpy(id[i],tid); topt=opt[p];opt[p]=opt[i];opt[i]=topt; } } } 【答案】① i++ ② strcmp (id [p],id [j])>0 【解析】 ① 每读取一条记录,下标 i 自增 1,统计总记录数; ② 按 ID 升序排序,ID 大的向后排,满足条件则更新位置。 43.文件answer.dat存储问卷答案(答案字符串)。去掉重复答案后,按字典序升序输出所有不重复的答案。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 void sort_str(char s[][20],int n); int main() { FILE *fp; int i=0,n,j,k,cnt=0; char ans[N][20],unq[N][20]; fp=fopen("answer.dat","r"); while(!feof(fp)) { fscanf(fp,"%s",ans[i]); ①; } n=i; fclose(fp); sort_str(ans,n); strcpy(unq[0],ans[0]); cnt=1; for(i=1;i<n;i++) { for(k=0;k<cnt;k++) if(②)break; if(k==cnt) { strcpy(unq[cnt],ans[i]); cnt++; } } for(i=0;i<cnt;i++) printf("%s ",unq[i]); return 0; } void sort_str(char s[][20],int n) { int i,j; char t[20]; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(s[i],s[j])>0) { strcpy(t,s[i]);strcpy(s[i],s[j]);strcpy(s[j],t); } } 【答案】① i++ ② strcmp (unq [k],ans [i])==0 【解析】 ① 每读取一条答案,下标 i 自增 1,统计总记录数; ② 判断当前答案是否已存在,存在则跳出循环不重复保存。 学科网(北京)股份有限公司 $

资源预览图

第27卷 C语言-C语言卷14——库函数、函数类型返回值、局部变量与全局变量——江苏省计算机类——考纲百套卷
1
第27卷 C语言-C语言卷14——库函数、函数类型返回值、局部变量与全局变量——江苏省计算机类——考纲百套卷
2
第27卷 C语言-C语言卷14——库函数、函数类型返回值、局部变量与全局变量——江苏省计算机类——考纲百套卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。