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

2025-09-09
| 2份
| 25页
| 74人阅读
| 1人下载

内容正文:

编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第123卷,是常考题训练卷。按“C语言程序设计”考试纲要的七点要求编写,其七点要求是: (一)C语言的概述(二)基本数据类型与简单程序设计(三)分支程序设计(四)循环程序设计(五)数组(六)函数(七)指针。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第123卷 《C语言程序设计》 常考题训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) main() {int i=0,a=0; while(i<20) {for( ; ;) {if((i%10)==0) break; else i--;} i+=11; a+=i; } printf("%d ",a); getch();} A. 11 B. 21 C. 32 D. 33 答案:C 2.执行以下程序的输出结果是( ) main() {int x,i; for(i=1;i<=50;i++) {x=i; if(x%2==0) if(x%3==0) if(x%7==0) printf("%d",i);} getch();} A. 27 B. 28 C. 41 D. 42 答案:D 3.执行以下程序的输出结果是( ) int fun(int a,int b) {int c; c=a-b; return c;} main() { int x=6,y=7,z=8,r; r=fun((x--,++y,x+y),z--); printf("%d ",r); getch();} A. 4 B. 5 C. 6 D. 7 答案:B 4. 以下会无限循环下去的语句是( ) A. for (int i = 0; i < 10; i--) B. while (0) C. for (int i = 10; i > 0; i--) D. do { } while (0); 答案:A 5. 以下代码中,break 语句的作用是( ) for (int i = 0; i < 10; i++) { if (i == 5) { break; } printf("%d ", i); } A. 跳过本次循环 B. 结束整个循环 C. 结束 if 语句 D. 无作用 答案:B 6. 若要实现输入一个整数,判断其是否为偶数,以下代码正确的是( ) A. int num; scanf("%d", &num); if (num % 2 == 0) { printf("Even"); } else { printf("Odd"); } B. int num; scanf("%d", num); if (num % 2 == 0) { printf("Even"); } else { printf("Odd"); } C. int num; scanf("%d", &num); if (num % 2 != 0) { printf("Even"); } else { printf("Odd"); } D. int num; scanf("%d", num); if (num % 2 != 0) { printf("Even"); } else { printf("Odd"); } 答案:A 7. 以下关于函数的说法,错误的是( ) A. 函数可以有返回值,也可以没有返回值 B. 函数的参数可以是数组 C. 函数的定义不能嵌套,但函数的调用可以嵌套 D. 函数名可以和变量名相同 答案:D 8. 以下关于数组作为函数参数的说法,正确的是( ) A. 数组作为函数参数时,会将整个数组复制一份传递给函数 B. 数组作为函数参数时,传递的是数组的第一个元素的值 C. 数组作为函数参数时,传递的是数组首元素的地址 D. 数组作为函数参数时,函数无法修改数组元素的值 答案:C 9. 执行以下程序的输出结果是( ) main() {char a[2][4]; strcpy(a[0],"are"); strcpy(a[1],"you"); a[0][3]='&'; printf("%s ",a); getch();} A. are&you B. you C. are D. & 答案:A 10.若有定义:int a[5];,则以下选项中对数组元素a[i][j](0<=i<4,0<=j<8)的错误引用是( ) A. *(&a[0][0]+8*i+j) B. *(a+i)[j] C. *(*(a+i)+j) D. *(a[i]+j) 答案:B 二、判断题(本大题共10小题,每小题2分,共20分) 1.int score=85; if(score>=90) printf("A"); else if(score>=80) printf("B");输出 B。( ) 答案:正确 2.C语言中,逻辑运算符&&和||的短路特性意味着只要第一个操作数满足条件,第二个操作数就不会被计算。( ) 答案:正确 3.C语言中,sizeof运算符的结果是一个无符号整数。( ) 答案:正确 4.switch 语句中的 case 标签后面必须跟常量表达式。( ) 答案:正确 5. 函数int fun(int x){static int y=0; y+=x; return y;},两次调用fun(2),第二次返回值为 4。( ) 答案:正确 6. for(int i=1;i<=4;i++){if(i==2) continue; printf("%d",i);}输出 135。( ) 答案:错误 7.int arr[5]={10,20,30,40,50};,arr [4]-arr [0] 的值为 40。( ) 答案:正确 8.int arr[]={10,20,30,40}; int len = sizeof(arr)/sizeof(arr[0]);,len 的值为 4,arr[len]访问合法。( ) 答案:错误 9.int i=0,s=0; while(i<=4){if(i%2==0) s+=i;i++;},s 的值为 6。( ) 答案:正确 10.C语言中,指针变量可以通过 & 运算符获取其所指向的变量的地址。( ) 答案:错误 三、填空题(本大题共5小题,每题2分,共10分) 1.以下函数的功能是用于判断一个数是否为偶数,若为偶数返回 1,否则返回 0,横线处应该填入的程序代码是________。 int isEven(int num) { if( ) return 1; else return 0;} 答案:num%2==0 2.以下函数的功能是用于求 1 到 n 的累加和,横线处应该填入的程序代码是________。 int sum(int n) { int i, s=0; for(i=1; i<=n; i++) { ; } return s; } 答案: s += i或s=s+i 3. 以下程序的功能是通过数组存储 3 个学生的成绩,并计算平均值,横线处应该填入的程序代码是________。 #include <stdio.h> int main() { int scores[3]={85,92,78}; int avg = (scores[0]+scores[1]+ )/3; printf("%d", avg);} 答案:scores [2] 4.C语言中,用于获取数组长度的表达式是________。 答案:sizeof(arr) / sizeof(arr[0]) 5.C语言中,用于声明一个指向整型的指针的语法是________。 答案:int *p 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main() { int a[3][3]={0,2},i,j; for(i=0;i<3;i++) {for(j=0;j<3;j++) {if(i==3) a[i][j]=a[i-1][a[i-1][j]]+1; else a[i][j]=j+1; printf("%d ",a[i][j]); } printf(" ");} getch(); } 答案: 1 2 3 1 2 3 1 2 3 2.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[] = {1, 2, 3, 4, 5}; int *p = arr; while (*p < 3) { printf("%d ", *p); p++; } printf(" "); return 0; } 答案:1 2 3.以下程序的运行结果是______。 #include <stdio.h> int main() { int num = 20; if (num > 10) { if (num < 30) { if (num % 2 == 0) { printf("All conditions met "); } } } return 0; } 答案:All conditions met 4.以下程序的运行结果是______。 #include <stdio.h> void func(int arr[], int size) { int max = arr[0]; for (int i = 1; i < size; i++) { if (arr[i] > max) { max = arr[i]; } } printf("%d ", max); } int main() { int arr[] = {3, 7, 2, 9, 5}; func(arr, 5); return 0; } 答案:9 5.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> int f1(int a,int b) {int c; a+=a; b+=b; c=f2(a,b); return c*c;} int f2(int a,int b) {int c; c=a*b%5; return c;} main() { int x=21,y=12; printf("f1(x,y)=%d,",f1(x,y)); printf("x=%d,y=%d",x,y); getch(); } 答案:f1(x,y)=9,x=21,y=12 五、编程题(本大题共5小题,每题5分,共25分) 1. 使用希尔排序法对输入的一组数据由小到大进行排序。希尔排序是在直接插入排序的基础上做的改进,将要排序的序列按固定增量分成若干组,等距离者在同一组中,然后再在组内进行直接插入排序。 答案: #include <stdio.h> #include <conio.h> void shsort(int s[ ],int n) {int i,j,d; d=n/2;//确定固定增量值 while(d>=1) { for(i=d+1;i<=n;i++)//数组下标从d+1开始进行直接插入排序 { s[0]=s[i];//设置监视哨 j=i-d;//确定要进行比较的元素的最右边位置 while((j>0)&&(s[0]<s[j])) { s[j+d]=s[j];//数据右移 j=j-d;//向左移d个位置 } s[j+d]=s[0];//在确定的位置插入s[i] } d=d/2;//增量变为原来的一半 }} main() {int a[11],i; printf("请输入10个数据: "); for(i=1;i<=10;i++) scanf("%d",&a[i]); shsort(a,10); printf("排序后的顺序是: "); for(i=1;i<=10;i++) printf("%d ",a[i]); getch();} 2. 编写程序实现:十进制数转为二进制。注意int型数据范围。 答案: #include <stdio.h> #include <conio.h> main() {int i,j,m,n; int a[32]={0}; printf("请输入一个十进制数: "); scanf("%d",&n); for(m=0;m<31;m++) {i=n%2; j=n/2; n=j; a[m]=i;} for(m=31;m>=0;m--) {printf("%d",a[m]); if(m%4==0) printf(" "); } printf(" "); getch();} 3. 使用指针遍历数组并输出所有元素。 答案: #include <stdio.h> int main() { int arr[5], *p; for (p = arr; p < arr + 5; p++) scanf("%d", p); for (p = arr; p < arr + 5; p++) printf("%d ", *p); return 0; } 4.编写一个程序,根据用户输入的数组长度 n、数组元素和移位次数 k,将数组元素循环右移 k 位。例如,数组 [1, 2, 3, 4, 5] 右移 2 位后变为 [4, 5, 1, 2, 3]。 答案: #include <stdio.h> #define MAX_SIZE 100 // 反转数组指定范围的元素 void reverse(int arr[], int start, int end) { while (start < end) { int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } // 循环右移数组 void rotate(int arr[], int n, int k) { k = k % n; // 处理 k 大于数组长度的情况 reverse(arr, 0, n - 1); reverse(arr, 0, k - 1); reverse(arr, k, n - 1); } int main() { int n, k; int arr[MAX_SIZE]; printf("请输入数组的长度 n: "); scanf("%d", &n); printf("请输入数组的 %d 个元素: ", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } printf("请输入移位次数 k: "); scanf("%d", &k); rotate(arr, n, k); // 输出移位后的数组 for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf(" "); return 0; } 5.编写一个程序,根据用户输入的数组长度 n 和数组元素,计算数组元素的总和与平均值,并输出结果。 答案: #include <stdio.h> #define MAX_SIZE 100 void calculateSumAndAverage(int arr[], int n, int *sum, float *average) { *sum = 0; for (int i = 0; i < n; i++) { *sum += arr[i]; } *average = (float)*sum / n; } int main() { int n, sum; float average; int arr[MAX_SIZE]; printf("请输入数组的长度 n: "); scanf("%d", &n); printf("请输入数组的 %d 个元素: ", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } calculateSumAndAverage(arr, n, &sum, &average); printf("数组元素的总和是: %d ", sum); printf("数组元素的平均值是: %.2f ", average); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第123卷,是常考题训练卷。按“C语言程序设计”考试纲要的七点要求编写,其七点要求是: (一)C语言的概述(二)基本数据类型与简单程序设计(三)分支程序设计(四)循环程序设计(五)数组(六)函数(七)指针。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第123卷 《C语言程序设计》 常考题训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) main() {int i=0,a=0; while(i<20) {for( ; ;) {if((i%10)==0) break; else i--;} i+=11; a+=i; } printf("%d ",a); getch();} A. 11 B. 21 C. 32 D. 33 2.执行以下程序的输出结果是( ) main() {int x,i; for(i=1;i<=50;i++) {x=i; if(x%2==0) if(x%3==0) if(x%7==0) printf("%d",i);} getch();} A. 27 B. 28 C. 41 D. 42 3.执行以下程序的输出结果是( ) int fun(int a,int b) {int c; c=a-b; return c;} main() { int x=6,y=7,z=8,r; r=fun((x--,++y,x+y),z--); printf("%d ",r); getch();} A. 4 B. 5 C. 6 D. 7 4. 以下会无限循环下去的语句是( ) A. for (int i = 0; i < 10; i--) B. while (0) C. for (int i = 10; i > 0; i--) D. do { } while (0); 5. 以下代码中,break 语句的作用是( ) for (int i = 0; i < 10; i++) { if (i == 5) { break; } printf("%d ", i); } A. 跳过本次循环 B. 结束整个循环 C. 结束 if 语句 D. 无作用 6. 若要实现输入一个整数,判断其是否为偶数,以下代码正确的是( ) A. int num; scanf("%d", &num); if (num % 2 == 0) { printf("Even"); } else { printf("Odd"); } B. int num; scanf("%d", num); if (num % 2 == 0) { printf("Even"); } else { printf("Odd"); } C. int num; scanf("%d", &num); if (num % 2 != 0) { printf("Even"); } else { printf("Odd"); } D. int num; scanf("%d", num); if (num % 2 != 0) { printf("Even"); } else { printf("Odd"); } 7. 以下关于函数的说法,错误的是( ) A. 函数可以有返回值,也可以没有返回值 B. 函数的参数可以是数组 C. 函数的定义不能嵌套,但函数的调用可以嵌套 D. 函数名可以和变量名相同 8. 以下关于数组作为函数参数的说法,正确的是( ) A. 数组作为函数参数时,会将整个数组复制一份传递给函数 B. 数组作为函数参数时,传递的是数组的第一个元素的值 C. 数组作为函数参数时,传递的是数组首元素的地址 D. 数组作为函数参数时,函数无法修改数组元素的值 9. 执行以下程序的输出结果是( ) main() {char a[2][4]; strcpy(a[0],"are"); strcpy(a[1],"you"); a[0][3]='&'; printf("%s ",a); getch();} A. are&you B. you C. are D. & 10.若有定义:int a[5];,则以下选项中对数组元素a[i][j](0<=i<4,0<=j<8)的错误引用是( ) A. *(&a[0][0]+8*i+j) B. *(a+i)[j] C. *(*(a+i)+j) D. *(a[i]+j) 二、判断题(本大题共10小题,每小题2分,共20分) 1.int score=85; if(score>=90) printf("A"); else if(score>=80) printf("B");输出 B。( ) 2.C语言中,逻辑运算符&&和||的短路特性意味着只要第一个操作数满足条件,第二个操作数就不会被计算。( ) 3.C语言中,sizeof运算符的结果是一个无符号整数。( ) 4.switch 语句中的 case 标签后面必须跟常量表达式。( ) 5. 函数int fun(int x){static int y=0; y+=x; return y;},两次调用fun(2),第二次返回值为 4。( ) 6. for(int i=1;i<=4;i++){if(i==2) continue; printf("%d",i);}输出 135。( ) 7.int arr[5]={10,20,30,40,50};,arr [4]-arr [0] 的值为 40。( ) 8.int arr[]={10,20,30,40}; int len = sizeof(arr)/sizeof(arr[0]);,len 的值为 4,arr[len]访问合法。( ) 9.int i=0,s=0; while(i<=4){if(i%2==0) s+=i;i++;},s 的值为 6。( ) 10.C语言中,指针变量可以通过 & 运算符获取其所指向的变量的地址。( ) 三、填空题(本大题共5小题,每题2分,共10分) 1.以下函数的功能是用于判断一个数是否为偶数,若为偶数返回 1,否则返回 0,横线处应该填入的程序代码是________。 int isEven(int num) { if( ) return 1; else return 0;} 2.以下函数的功能是用于求 1 到 n 的累加和,横线处应该填入的程序代码是________。 int sum(int n) { int i, s=0; for(i=1; i<=n; i++) { ; } return s; } 3. 以下程序的功能是通过数组存储 3 个学生的成绩,并计算平均值,横线处应该填入的程序代码是________。 #include <stdio.h> int main() { int scores[3]={85,92,78}; int avg = (scores[0]+scores[1]+ )/3; printf("%d", avg);} 4.C语言中,用于获取数组长度的表达式是________。 5.C语言中,用于声明一个指向整型的指针的语法是________。 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main() { int a[3][3]={0,2},i,j; for(i=0;i<3;i++) {for(j=0;j<3;j++) {if(i==3) a[i][j]=a[i-1][a[i-1][j]]+1; else a[i][j]=j+1; printf("%d ",a[i][j]); } printf(" ");} getch(); } 2.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[] = {1, 2, 3, 4, 5}; int *p = arr; while (*p < 3) { printf("%d ", *p); p++; } printf(" "); return 0; } 3.以下程序的运行结果是______。 #include <stdio.h> int main() { int num = 20; if (num > 10) { if (num < 30) { if (num % 2 == 0) { printf("All conditions met "); } } } return 0; } 4.以下程序的运行结果是______。 #include <stdio.h> void func(int arr[], int size) { int max = arr[0]; for (int i = 1; i < size; i++) { if (arr[i] > max) { max = arr[i]; } } printf("%d ", max); } int main() { int arr[] = {3, 7, 2, 9, 5}; func(arr, 5); return 0; } 5.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> int f1(int a,int b) {int c; a+=a; b+=b; c=f2(a,b); return c*c;} int f2(int a,int b) {int c; c=a*b%5; return c;} main() { int x=21,y=12; printf("f1(x,y)=%d,",f1(x,y)); printf("x=%d,y=%d",x,y); getch(); } 五、编程题(本大题共5小题,每题5分,共25分) 1. 使用希尔排序法对输入的一组数据由小到大进行排序。希尔排序是在直接插入排序的基础上做的改进,将要排序的序列按固定增量分成若干组,等距离者在同一组中,然后再在组内进行直接插入排序。 2. 编写程序实现:十进制数转为二进制。注意int型数据范围。 3. 使用指针遍历数组并输出所有元素。 4.编写一个程序,根据用户输入的数组长度 n、数组元素和移位次数 k,将数组元素循环右移 k 位。例如,数组 [1, 2, 3, 4, 5] 右移 2 位后变为 [4, 5, 1, 2, 3]。 5.编写一个程序,根据用户输入的数组长度 n 和数组元素,计算数组元素的总和与平均值,并输出结果。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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