《C语言程序设计》常考题训练卷 2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第122卷

2025-09-09
| 2份
| 27页
| 94人阅读
| 2人下载

内容正文:

编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第122卷,是常考题训练卷。按“C语言程序设计”考试纲要的七点要求编写,其七点要求是: (一)C语言的概述(二)基本数据类型与简单程序设计(三)分支程序设计(四)循环程序设计(五)数组(六)函数(七)指针。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第122卷 《C语言程序设计》 常考题训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) #define SQR(X) X*X main() {int a=16,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d ",a); getch();} A. 1 B. 2 C. 9 D. 16 答案:B 2.执行以下程序的输出结果是( ) main() {int s=11; char t=-11; printf("%d,%d ",~s,~t); getch();} A. 10,-12 B. -11,11 C. -12,11 D. -12,10 答案:D 3.下列程序的输出结果是( ) main() {char x=040; printf("%d ",x=x<<1); getch();} A. 160 B. 120 C. 100 D. 64 答案:D 4. 以下代码的输出结果是( ) int x = 5; if (x > 3) { if (x < 10) { printf("Yes"); } } else { printf("No"); } A. Yes B. No C. 编译错误 D. 无输出 答案:A 5. 以下代码的输出结果是( ) int x = 3; switch (x) { case 1: printf("One"); break; case 2: printf("Two"); break; case 3: printf("Three"); break; default: printf("Other"); } A. One B. Two C. Three D. Other 答案:C 6. 以下代码的输出结果是( ) int num = 0; while (num < 3) { switch (num) { case 0: printf("Zero"); break; case 1: printf("One"); break; case 2: printf("Two"); break; } num++; } A. ZeroOneTwo B. Zero C. OneTwo D. 编译错误 答案:A 7. 若有定义 int arr[5] = {1, 2, 3, 4, 5};,则 arr[3] 的值是( ) A. 1 B. 3 C. 4 D. 5 答案:C 8. 以下代码中,函数 swap 试图交换两个整数的值,但无法实现,原因是( ) #include <stdio.h> void swap(int a, int b) { int temp = a; a = b; b = temp; } int main() { int x = 10, y = 20; swap(x, y); printf("x = %d, y = %d ", x, y); return 0; } A. 函数 swap 的参数传递方式是值传递,无法修改实参的值 B. 函数 swap 的返回类型应该是 int C. 函数 swap 中变量 temp 的定义错误 D. 函数 swap 中交换语句的顺序错误 答案:A 9. 执行以下程序的输出结果是( ) main() {int a,b,c,d,m,n; a=7; b=c=d=5; m=n=0; for(; a>b;++b) m++; while(a>++c) n++; printf("m=%d,n=%d ",m,n); getch();} A. m=1,n=1 B. m=2,n=1 C. m=2,n=2 D. m=1,n=2 答案:B 10.以下赋值语句中不合法的是( ) A. n=(i=2,++i); B. j++; C. ++(i+1); D. x=j>0; 答案:C 二、判断题(本大题共10小题,每小题2分,共20分) 1.for(int i=0;i<3;i++); printf("%d",i);中,printf 输出 3。( ) 答案:错误 2.int i=1,s=0; while(i<=3){s+=i;i++;},s 最终为 6。( ) 答案:正确 3.int x=10; printf("%d",x- -+(++x));输出 22。( ) 答案:正确 4.for(int i=0;i<5;i+=2) printf("%d",i);输出 024。( ) 答案:正确 5. 函数声明必须在函数调用之前。( ) 答案:正确 6. 在 switch 语句中,如果 case 标签后面没有 break 语句,会继续执行下一个 case 分支。( ) 答案:正确 7.当数组作为函数参数传递时,函数内部可以使用 sizeof 运算符准确计算数组的大小。( ) 答案:错误 8.对于一个函数,如果它的参数是一个数组,那么在函数内部可以使用数组下标的方式访问元素,就像在函数外部使用数组一样。( ) 答案:正确 9.当使用数组名作为函数实参时,传递的是数组第一个元素的值。( ) 答案:错误 10.int x=8; printf("%d",--x * x++);输出49。( ) 答案:正确 三、填空题(本大题共5小题,每题2分,共10分) 1.以下程序的功能是调用函数计算两个数的和,横线处应该填入的程序代码是________。 #include <stdio.h> int add(int a, int b) { return ( );} int main() { int x=5,y=3; printf("%d", add(x,y));} 答案:a+b 2.C语言中,用于实现多分支结构的语句是________。 答案:switch 3.以下程序的功能是使用 do-while 循环计算 1 到 5 的平方和,________。 #include <stdio.h> main() { int i=1, s=0; do { s += i*i; ; } while(i<=5); printf("%d", s);} 答案:i++或i=i+1或i+=1 4.以下程序的功能是使用 for 循环输出数组中的所有元素,横线处应该填入的程序代码是________。 #include <stdio.h> int main() { int arr[4]={10,20,30,40}; int i; for(i=0; ; i++) { printf("%d ", arr[i]); }} 答案:i<4 5.C语言中,用于访问指针所指向的变量的运算符是________。 答案:* 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main() {void fun1(int),fun2(); extern int a,b; printf("a=%d,b=%d ",a,b); b=30; {int k=20; printf("k=%d ",k); } fun1(55); fun2(); getch();} void fun1(int b) {int a=1; printf("a=%d,b=%d ",a,b); } int a,b; void fun2() {printf("a=%d,b=%d ",a,b);} 答案: a=0,b=0 k=20 a=1,b=55 a=0,b=30 2.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> void fun(int a[ ],int n) {int i,t; for(i=0;i<n/2;i++) {t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; }} main() {int k[10]={2,4,6,8,10,12,14,16,18,20},i; fun(k,5); for(i=2;i<8;i++) printf("%d ",k[i]); printf(" "); getch(); } 答案:6 4 2 12 14 16 3.以下程序的运行结果是______。 #include <stdio.h> void func(int arr[], int size) { for (int i = 0; i < size / 2; i++) { int temp = arr[i]; arr[i] = arr[size - i - 1]; arr[size - i - 1] = temp; } } int main() { int arr[] = {1, 2, 3, 4}; func(arr, 4); for (int i = 0; i < 4; i++) { printf("%d ", arr[i]); } printf(" "); return 0; } 答案:4 3 2 1 4.以下程序的运行结果是______。 #include <stdio.h> int main() { int i; for (i = 10; i >= 1; i--) { if (i % 2 != 0) { continue; } printf("%d ", i); } printf(" "); return 0; } 答案:10 8 6 4 2 5.以下程序的运行结果是______。 #include <stdio.h> int mystery(int *arr, int n) { int result = 0; for (int i = 0; i < n; i++) { if (i % 2 == 0) { result += arr[i]; } else { result -= arr[i]; } } return result; } int main() { int arr[] = {10, 20, 30, 40, 50}; int res = mystery(arr, sizeof(arr) / sizeof(arr[0])); printf("Result: %d ", res); return 0; } 答案:Result: 30 五、编程题(本大题共5小题,每题5分,共25分) 1. 猴子第一天摘下了若干个桃子,当即吃了一半,但还不觉过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天一共摘了多少个桃子。 答案: #include <stdio.h> #include <conio.h> main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day--;} printf("the total is %d ",x1); getch();} 2. 如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网。编程实现当输入2011年1月1日以后的任意一天,输出该渔夫是在打渔还是在晒网。 答案: #include <stdio.h> #include <conio.h> int leap(int a) {if(a%4==0&&a%100!=0||a%400==0) return 1; else return 0;} int number(int year,int month,int day) {int sum=0,i,j,k; int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int b[12]={31,29,31,30,31,30,31,31,30,31,30,31}; if(leap(year)==1) for(i=0;i<month-1;i++) sum+=b[i]; else for(i=0;i<month-1;i++) sum+=a[i]; for(j=2011;j<year;j++) if(leap(j)==1) sum+=366; else sum+=365; sum+=day; return sum;} main() { int year,month,day,n; printf("请输入年月日 "); scanf("%d%d%d",&year,&month,&day); n=number(year,month,day); if((n%5)<4&&(n%5)>0) printf("%d:%d:%d 打渔 ",year,month,day); else printf("%d:%d:%d 晒网 ",year,month,day); getch();} 3. 编写程序,输入一个字符串,统计其中大写字母、小写字母和数字的个数。 答案: #include <stdio.h> int main() { char s[100]; int upper = 0, lower = 0, digit = 0; scanf("%s", s); for (int i = 0; s[i] != '\0'; i++) { if (s[i] >= 'A' && s[i] <= 'Z') upper++; else if (s[i] >= 'a' && s[i] <= 'z') lower++; else if (s[i] >= '0' && s[i] <= '9') digit++; } printf("大写:%d 小写:%d 数字:%d", upper, lower, digit); return 0; } 4.编写一个程序,根据用户输入的数组长度 n 和数组元素,找出数组中的最大子数组和(即连续子数组元素之和的最大值)。 答案: #include <stdio.h> #define MAX_SIZE 100 int maxSubArraySum(int arr[], int n) { int maxSoFar = arr[0]; int currentMax = arr[0]; for (int i = 1; i < n; i++) { currentMax = (arr[i] > currentMax + arr[i]) ? arr[i] : currentMax + arr[i]; maxSoFar = (maxSoFar > currentMax) ? maxSoFar : currentMax; } return maxSoFar; } int main() { int n; int arr[MAX_SIZE]; printf("请输入数组的长度 n: "); scanf("%d", &n); printf("请输入数组的 %d 个元素: ", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } int maxSum = maxSubArraySum(arr, n); printf("最大子数组和是: %d ", maxSum); return 0; } 5.编写一个程序,根据用户输入的数组长度 n、数组元素、要查找的目标值 target 和用于替换的新值 newValue,在数组中查找目标值,将所有目标值替换为新值,并输出替换后的数组。 答案: #include <stdio.h> #define MAX_SIZE 100 void replaceTarget(int arr[], int n, int target, int newValue) { for (int i = 0; i < n; i++) { if (arr[i] == target) { arr[i] = newValue; } } } int main() { int n, target, newValue; int arr[MAX_SIZE]; printf("请输入数组的长度 n: "); scanf("%d", &n); printf("请输入数组的 %d 个元素: ", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } printf("请输入要查找的目标值: "); scanf("%d", &target); printf("请输入用于替换的新值: "); scanf("%d", &newValue); replaceTarget(arr, n, target, newValue); printf("替换后的数组: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf(" "); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第122卷,是常考题训练卷。按“C语言程序设计”考试纲要的七点要求编写,其七点要求是: (一)C语言的概述(二)基本数据类型与简单程序设计(三)分支程序设计(四)循环程序设计(五)数组(六)函数(七)指针。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第122卷 《C语言程序设计》 常考题训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) #define SQR(X) X*X main() {int a=16,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d ",a); getch();} A. 1 B. 2 C. 9 D. 16 2.执行以下程序的输出结果是( ) main() {int s=11; char t=-11; printf("%d,%d ",~s,~t); getch();} A. 10,-12 B. -11,11 C. -12,11 D. -12,10 3.下列程序的输出结果是( ) main() {char x=040; printf("%d ",x=x<<1); getch();} A. 160 B. 120 C. 100 D. 64 4. 以下代码的输出结果是( ) int x = 5; if (x > 3) { if (x < 10) { printf("Yes"); } } else { printf("No"); } A. Yes B. No C. 编译错误 D. 无输出 5. 以下代码的输出结果是( ) int x = 3; switch (x) { case 1: printf("One"); break; case 2: printf("Two"); break; case 3: printf("Three"); break; default: printf("Other"); } A. One B. Two C. Three D. Other 6. 以下代码的输出结果是( ) int num = 0; while (num < 3) { switch (num) { case 0: printf("Zero"); break; case 1: printf("One"); break; case 2: printf("Two"); break; } num++; } A. ZeroOneTwo B. Zero C. OneTwo D. 编译错误 7. 若有定义 int arr[5] = {1, 2, 3, 4, 5};,则 arr[3] 的值是( ) A. 1 B. 3 C. 4 D. 5 8. 以下代码中,函数 swap 试图交换两个整数的值,但无法实现,原因是( ) #include <stdio.h> void swap(int a, int b) { int temp = a; a = b; b = temp; } int main() { int x = 10, y = 20; swap(x, y); printf("x = %d, y = %d ", x, y); return 0; } A. 函数 swap 的参数传递方式是值传递,无法修改实参的值 B. 函数 swap 的返回类型应该是 int C. 函数 swap 中变量 temp 的定义错误 D. 函数 swap 中交换语句的顺序错误 9. 执行以下程序的输出结果是( ) main() {int a,b,c,d,m,n; a=7; b=c=d=5; m=n=0; for(; a>b;++b) m++; while(a>++c) n++; printf("m=%d,n=%d ",m,n); getch();} A. m=1,n=1 B. m=2,n=1 C. m=2,n=2 D. m=1,n=2 10.以下赋值语句中不合法的是( ) A. n=(i=2,++i); B. j++; C. ++(i+1); D. x=j>0; 二、判断题(本大题共10小题,每小题2分,共20分) 1.for(int i=0;i<3;i++); printf("%d",i);中,printf 输出 3。( ) 2.int i=1,s=0; while(i<=3){s+=i;i++;},s 最终为 6。( ) 3.int x=10; printf("%d",x- -+(++x));输出 22。( ) 4.for(int i=0;i<5;i+=2) printf("%d",i);输出 024。( ) 5. 函数声明必须在函数调用之前。( ) 6. 在 switch 语句中,如果 case 标签后面没有 break 语句,会继续执行下一个 case 分支。( ) 7.当数组作为函数参数传递时,函数内部可以使用 sizeof 运算符准确计算数组的大小。( ) 8.对于一个函数,如果它的参数是一个数组,那么在函数内部可以使用数组下标的方式访问元素,就像在函数外部使用数组一样。( ) 9.当使用数组名作为函数实参时,传递的是数组第一个元素的值。( ) 10.int x=8; printf("%d",--x * x++);输出49。( ) 三、填空题(本大题共5小题,每题2分,共10分) 1.以下程序的功能是调用函数计算两个数的和,横线处应该填入的程序代码是________。 #include <stdio.h> int add(int a, int b) { return ( );} int main() { int x=5,y=3; printf("%d", add(x,y));} 2.C语言中,用于实现多分支结构的语句是________。 3.以下程序的功能是使用 do-while 循环计算 1 到 5 的平方和,________。 #include <stdio.h> main() { int i=1, s=0; do { s += i*i; ; } while(i<=5); printf("%d", s);} 4.以下程序的功能是使用 for 循环输出数组中的所有元素,横线处应该填入的程序代码是________。 #include <stdio.h> int main() { int arr[4]={10,20,30,40}; int i; for(i=0; ; i++) { printf("%d ", arr[i]); }} 5.C语言中,用于访问指针所指向的变量的运算符是________。 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main() {void fun1(int),fun2(); extern int a,b; printf("a=%d,b=%d ",a,b); b=30; {int k=20; printf("k=%d ",k); } fun1(55); fun2(); getch();} void fun1(int b) {int a=1; printf("a=%d,b=%d ",a,b); } int a,b; void fun2() {printf("a=%d,b=%d ",a,b);} 2.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> void fun(int a[ ],int n) {int i,t; for(i=0;i<n/2;i++) {t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; }} main() {int k[10]={2,4,6,8,10,12,14,16,18,20},i; fun(k,5); for(i=2;i<8;i++) printf("%d ",k[i]); printf(" "); getch(); } 3.以下程序的运行结果是______。 #include <stdio.h> void func(int arr[], int size) { for (int i = 0; i < size / 2; i++) { int temp = arr[i]; arr[i] = arr[size - i - 1]; arr[size - i - 1] = temp; } } int main() { int arr[] = {1, 2, 3, 4}; func(arr, 4); for (int i = 0; i < 4; i++) { printf("%d ", arr[i]); } printf(" "); return 0; } 4.以下程序的运行结果是______。 #include <stdio.h> int main() { int i; for (i = 10; i >= 1; i--) { if (i % 2 != 0) { continue; } printf("%d ", i); } printf(" "); return 0; } 5.以下程序的运行结果是______。 #include <stdio.h> int mystery(int *arr, int n) { int result = 0; for (int i = 0; i < n; i++) { if (i % 2 == 0) { result += arr[i]; } else { result -= arr[i]; } } return result; } int main() { int arr[] = {10, 20, 30, 40, 50}; int res = mystery(arr, sizeof(arr) / sizeof(arr[0])); printf("Result: %d ", res); return 0; } 五、编程题(本大题共5小题,每题5分,共25分) 1. 猴子第一天摘下了若干个桃子,当即吃了一半,但还不觉过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天一共摘了多少个桃子。 2. 如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网。编程实现当输入2011年1月1日以后的任意一天,输出该渔夫是在打渔还是在晒网。 3. 编写程序,输入一个字符串,统计其中大写字母、小写字母和数字的个数。 4.编写一个程序,根据用户输入的数组长度 n 和数组元素,找出数组中的最大子数组和(即连续子数组元素之和的最大值)。 5.编写一个程序,根据用户输入的数组长度 n、数组元素、要查找的目标值 target 和用于替换的新值 newValue,在数组中查找目标值,将所有目标值替换为新值,并输出替换后的数组。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

《C语言程序设计》常考题训练卷 2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第122卷
1
《C语言程序设计》常考题训练卷 2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第122卷
2
《C语言程序设计》常考题训练卷 2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第122卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。