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

2025-09-09
| 2份
| 28页
| 95人阅读
| 1人下载

内容正文:

编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第125卷,是常考题训练卷。按“C语言程序设计”考试纲要的七点要求编写,其七点要求是: (一)C语言的概述(二)基本数据类型与简单程序设计(三)分支程序设计(四)循环程序设计(五)数组(六)函数(七)指针。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第125卷 《C语言程序设计》 常考题训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) main() { int a=8,b; b=(a>>2)%2; printf("%d,%d ",a,b); getch();} A. 8,0 B. 4,0 C. 4,1 D. 8,1 2.执行以下程序的输出结果是( ) main() { int i,array[5]={3,5,10,4}; for(i=0;i<5;i++) printf("%d,",array[i]&3); printf(" "); getch();} A. 3,5,10,4,0, B. 3,1,2,0,0, C. 3,3,3,3,0, D. 3,2,2,2,0, 3.执行以下程序的输出结果是( ) #include <stdio.h> #include<string.h> main() {char str[12]={'s','t','r','i','n','g'}; printf("%d,%d ",strlen(str),sizeof(str)); getch();} A. 12,12 B. 6,12 C. 7,12 D. 12,6 4. 以下关于 if - else 语句的说法,正确的是( ) A. if 语句后面的条件表达式只能是关系表达式 B. if 语句可以没有 else 分支 C. if 语句中的条件表达式必须用括号括起来,且括号后面要加分号 D. if - else 语句不能嵌套使用 5. 以下关于 for 循环的说法,错误的是( ) A. for 循环的初始化部分、条件判断部分和迭代部分都可以省略 B. for 循环的初始化部分只执行一次 C. for 循环的条件判断部分在每次循环结束后执行 D. for 循环可以嵌套使用 6. 以下代码的输出结果是( ) int a = 1; while (a < 5) { if (a % 2 == 0) { break; } printf("%d ", a); a++; } A. 1 3 B. 1 C. 1 2 D. 1 3 4 7. 若有函数定义 void func(int arr[], int size),调用该函数时,以下正确的是( ) A. int arr[5] = {1, 2, 3, 4, 5}; func(arr[0], 5); B. int arr[5] = {1, 2, 3, 4, 5}; func(&arr, 5); C. int arr[5] = {1, 2, 3, 4, 5}; func(arr[5], 5); D. int arr[5] = {1, 2, 3, 4, 5}; func(arr, 5); 8. 执行以下程序的输出结果是( ) void fun(int *a,int *b) {int *k; k=a;a=b;b=k;} main() { int a=3,b=6,*x=&a,*y=&b; fun(x,y); printf("%d %d",a,b); getch();} A. 6 3 B. 3 6 C. 编译出错 D. 0 0 9. 若要将一个数组元素逆置,以下函数实现正确的是( ) A. void reverse(int arr[], int size) { int left = 0, right = size - 1; while (left < right) { int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; left++; right--; } } B. void reverse(int arr[], int size) { for (int i = 0; i < size; i++) { int temp = arr[i]; arr[i] = arr[size - i - 1]; arr[size - i - 1] = temp; } } C. void reverse(int arr[], int size) { for (int i = 0; i < size / 2; i++) { int temp = arr[i]; arr[i] = arr[size - i]; arr[size - i] = temp; } } D. void reverse(int arr[], int size) { for (int i = 0; i < size; i++) { arr[i] = arr[size - i - 1]; } } 10.下列程序段完全正确的是( ) A. int *p;scanf(“%d”,&p); B. int *p;scanf(“%d”,p); C. int k,*p=&k;scanf(“%d”,p); D. int k,*p;*p=&k;scanf(“%d”,&p); 二、判断题(本大题共10小题,每小题2分,共20分) 1.for 循环的初始化部分只能初始化一个变量。( ) 2.C语言中,unsigned int类型的变量可以存储比int类型更大的正整数。( ) 3.C语言中,逻辑非运算符!的优先级高于算术运算符。( ) 4. break 语句不仅可以用于循环语句,还可以用于 switch 语句。( ) 5. do-while 循环 “int i=4; do {i+=2;} while (i<10);” 的循环体执行 3 次,i 最终为 10。( ) 6. 二维数组 “int mat [2][3]={{1},{2}};” 中,mat [0][2] 的值为 0,mat [1][1] 的值为 0。( ) 7.执行 “int a=6,b=3; int c=--a < b++?a:b;” 后,c 的值为 3,b 的值为 4。( ) 8.若函数返回一个指向静态数组的指针,调用者在使用该指针时不需要担心内存释放问题。( ) 9.函数声明 “int add (int a, int b);” 与函数定义 “int add (int x, int y){return x+y;}” 因参数名不同而不匹配。( ) 10.执行 “int i=2,s=0; while (i<=5){s+=i*i; i++;}” 后,s 的值为 54。( ) 三、填空题(本大题共5小题,每题2分,共10分) 1.以下函数的功能是用于求三个整数的最小值,横线处应该填入的程序代码是________。 int minThree(int x, int y, int z) { int min = x; if(y < min) min = y; if( ) min = z; return min;} 2.以下程序的功能是使用 while 循环计算 1 到 20 中能被 3 整除的数的个数,横线处应该填入的程序代码是________。 #include <stdio.h> int main() { int i=1, count=0; while(i<=20) { if( ) count++; i++; } printf("%d", count);} 3.以下程序的功能是调用函数计算数组所有元素的平均值,横线处应该填入的程序代码是________。 #include <stdio.h> int avgArray(int arr[], int len) { int sum=0; for(int i=0; i<len; i++) { sum += arr[i]; } return ( );} int main() { int num[4]={78,85,92,69}; printf("%d", avgArray(num,4));} 4.C语言中,用于声明一个指向数组的指针的语法是:________ 指针名。 5.以下函数的功能是用于判断一个数是否为三位数,若是返回 1,否则返回 0,横线处应该填入的程序代码是________。 int isThreeDigit(int num) { if( ) return 1; else return 0;} 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> 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();} 2.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> #define N 4 void fun(int a[ ][N]) {int i; for(i=0;i<N;i++) a[0][i]=a[N-1][N-1-i]; } main() { int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i; fun(x); for(i=0;i<N;i++) printf("%d ",x[i][i]); printf(" "); getch();} 3.以下程序的运行结果是______。 #include <stdio.h> void func(int *a, int *b) { *a = *a + *b; *b = *a - *b; *a = *a - *b; } int main() { int x = 10, y = 20; func(&x, &y); printf("x = %d, y = %d ", x, y); return 0; } 4.以下程序的运行结果是______。 #include <stdio.h> void func(int *a, int n) { for (int i = 0; i < n; i++) { if (*(a + i) > 5) { break; } printf("%d ", *(a + i)); } } int main() { int arr[] = {1, 2, 3, 6, 4}; func(arr, 5); printf(" "); return 0; } 5.以下程序的运行结果是______。 #include <stdio.h> void transpose(int matrix[3][3]) { for (int i = 0; i < 3; i++) { for (int j = i + 1; j < 3; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } } int main() { int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; transpose(matrix); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("%d ", matrix[i][j]); } printf(" "); } return 0; } 五、编程题(本大题共5小题,每题5分,共25分) 1. A、B、C、D、E 5个人在某天夜里合伙去捕鱼,到凌晨时都疲惫不堪,于是各自找地方睡觉。第二天,A第一个醒来,他将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为5份,把多余的一条扔掉,拿走自己的一份。C、D、E依次醒来,也按照同样的方法拿鱼。编写程序,求出它们合伙至少捕了多少条鱼? 2. 编写两个函数分别计算两个整数的最大公约数和最小公倍数,由主函数调用这两个函数。 3. 编写函数reverseArray逆序数组,并在主函数中调用。 4.编写一个程序,根据用户输入的二维数组的行数 m 和列数 n,以及数组元素,找出二维数组中的鞍点(即该元素在所在行上最大,在所在列上最小)。如果没有鞍点,输出提示信息。 5.编写一个程序,根据用户输入的学生成绩(整数),判断并输出对应的成绩等级。成绩等级划分如下:90 - 100 为 A,80 - 89 为 B,70 - 79 为 C,60 - 69 为 D,0 - 59 为 F。 答案: 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第125卷,是常考题训练卷。按“C语言程序设计”考试纲要的七点要求编写,其七点要求是: (一)C语言的概述(二)基本数据类型与简单程序设计(三)分支程序设计(四)循环程序设计(五)数组(六)函数(七)指针。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第125卷 《C语言程序设计》 常考题训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) main() { int a=8,b; b=(a>>2)%2; printf("%d,%d ",a,b); getch();} A. 8,0 B. 4,0 C. 4,1 D. 8,1 答案:A 2.执行以下程序的输出结果是( ) main() { int i,array[5]={3,5,10,4}; for(i=0;i<5;i++) printf("%d,",array[i]&3); printf(" "); getch();} A. 3,5,10,4,0, B. 3,1,2,0,0, C. 3,3,3,3,0, D. 3,2,2,2,0, 答案:B 3.执行以下程序的输出结果是( ) #include <stdio.h> #include<string.h> main() {char str[12]={'s','t','r','i','n','g'}; printf("%d,%d ",strlen(str),sizeof(str)); getch();} A. 12,12 B. 6,12 C. 7,12 D. 12,6 答案:B 4. 以下关于 if - else 语句的说法,正确的是( ) A. if 语句后面的条件表达式只能是关系表达式 B. if 语句可以没有 else 分支 C. if 语句中的条件表达式必须用括号括起来,且括号后面要加分号 D. if - else 语句不能嵌套使用 答案:B 5. 以下关于 for 循环的说法,错误的是( ) A. for 循环的初始化部分、条件判断部分和迭代部分都可以省略 B. for 循环的初始化部分只执行一次 C. for 循环的条件判断部分在每次循环结束后执行 D. for 循环可以嵌套使用 答案:C 6. 以下代码的输出结果是( ) int a = 1; while (a < 5) { if (a % 2 == 0) { break; } printf("%d ", a); a++; } A. 1 3 B. 1 C. 1 2 D. 1 3 4 答案:A 7. 若有函数定义 void func(int arr[], int size),调用该函数时,以下正确的是( ) A. int arr[5] = {1, 2, 3, 4, 5}; func(arr[0], 5); B. int arr[5] = {1, 2, 3, 4, 5}; func(&arr, 5); C. int arr[5] = {1, 2, 3, 4, 5}; func(arr[5], 5); D. int arr[5] = {1, 2, 3, 4, 5}; func(arr, 5); 答案:D 8. 执行以下程序的输出结果是( ) void fun(int *a,int *b) {int *k; k=a;a=b;b=k;} main() { int a=3,b=6,*x=&a,*y=&b; fun(x,y); printf("%d %d",a,b); getch();} A. 6 3 B. 3 6 C. 编译出错 D. 0 0 答案:B 9. 若要将一个数组元素逆置,以下函数实现正确的是( ) A. void reverse(int arr[], int size) { int left = 0, right = size - 1; while (left < right) { int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; left++; right--; } } B. void reverse(int arr[], int size) { for (int i = 0; i < size; i++) { int temp = arr[i]; arr[i] = arr[size - i - 1]; arr[size - i - 1] = temp; } } C. void reverse(int arr[], int size) { for (int i = 0; i < size / 2; i++) { int temp = arr[i]; arr[i] = arr[size - i]; arr[size - i] = temp; } } D. void reverse(int arr[], int size) { for (int i = 0; i < size; i++) { arr[i] = arr[size - i - 1]; } } 答案:A 10.下列程序段完全正确的是( ) A. int *p;scanf(“%d”,&p); B. int *p;scanf(“%d”,p); C. int k,*p=&k;scanf(“%d”,p); D. int k,*p;*p=&k;scanf(“%d”,&p); 答案:C 二、判断题(本大题共10小题,每小题2分,共20分) 1.for 循环的初始化部分只能初始化一个变量。( ) 答案:错误 2.C语言中,unsigned int类型的变量可以存储比int类型更大的正整数。( ) 答案:正确 3.C语言中,逻辑非运算符!的优先级高于算术运算符。( ) 答案:正确 4. break 语句不仅可以用于循环语句,还可以用于 switch 语句。( ) 答案:正确 5. do-while 循环 “int i=4; do {i+=2;} while (i<10);” 的循环体执行 3 次,i 最终为 10。( ) 答案:正确 6. 二维数组 “int mat [2][3]={{1},{2}};” 中,mat [0][2] 的值为 0,mat [1][1] 的值为 0。( ) 答案:正确 7.执行 “int a=6,b=3; int c=--a < b++?a:b;” 后,c 的值为 3,b 的值为 4。( ) 答案:正确 8.若函数返回一个指向静态数组的指针,调用者在使用该指针时不需要担心内存释放问题。( ) 答案:正确 9.函数声明 “int add (int a, int b);” 与函数定义 “int add (int x, int y){return x+y;}” 因参数名不同而不匹配。( ) 答案:错误 10.执行 “int i=2,s=0; while (i<=5){s+=i*i; i++;}” 后,s 的值为 54。( ) 答案:正确 三、填空题(本大题共5小题,每题2分,共10分) 1.以下函数的功能是用于求三个整数的最小值,横线处应该填入的程序代码是________。 int minThree(int x, int y, int z) { int min = x; if(y < min) min = y; if( ) min = z; return min;} 答案:z < min 2.以下程序的功能是使用 while 循环计算 1 到 20 中能被 3 整除的数的个数,横线处应该填入的程序代码是________。 #include <stdio.h> int main() { int i=1, count=0; while(i<=20) { if( ) count++; i++; } printf("%d", count);} 答案:i%3 == 0 3.以下程序的功能是调用函数计算数组所有元素的平均值,横线处应该填入的程序代码是________。 #include <stdio.h> int avgArray(int arr[], int len) { int sum=0; for(int i=0; i<len; i++) { sum += arr[i]; } return ( );} int main() { int num[4]={78,85,92,69}; printf("%d", avgArray(num,4));} 答案:sum/len 4.C语言中,用于声明一个指向数组的指针的语法是:________ 指针名。 答案:数据类型 5.以下函数的功能是用于判断一个数是否为三位数,若是返回 1,否则返回 0,横线处应该填入的程序代码是________。 int isThreeDigit(int num) { if( ) return 1; else return 0;} 答案:num>=100 && num<=999 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> 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();} 答案:32 2.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> #define N 4 void fun(int a[ ][N]) {int i; for(i=0;i<N;i++) a[0][i]=a[N-1][N-1-i]; } main() { int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i; fun(x); for(i=0;i<N;i++) printf("%d ",x[i][i]); printf(" "); getch();} 答案:16 6 11 16 3.以下程序的运行结果是______。 #include <stdio.h> void func(int *a, int *b) { *a = *a + *b; *b = *a - *b; *a = *a - *b; } int main() { int x = 10, y = 20; func(&x, &y); printf("x = %d, y = %d ", x, y); return 0; } 答案:x = 20, y = 10 4.以下程序的运行结果是______。 #include <stdio.h> void func(int *a, int n) { for (int i = 0; i < n; i++) { if (*(a + i) > 5) { break; } printf("%d ", *(a + i)); } } int main() { int arr[] = {1, 2, 3, 6, 4}; func(arr, 5); printf(" "); return 0; } 答案:1 2 3 5.以下程序的运行结果是______。 #include <stdio.h> void transpose(int matrix[3][3]) { for (int i = 0; i < 3; i++) { for (int j = i + 1; j < 3; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } } int main() { int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; transpose(matrix); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("%d ", matrix[i][j]); } printf(" "); } return 0; } 答案: 1 4 7 2 5 8 3 6 9 五、编程题(本大题共5小题,每题5分,共25分) 1. A、B、C、D、E 5个人在某天夜里合伙去捕鱼,到凌晨时都疲惫不堪,于是各自找地方睡觉。第二天,A第一个醒来,他将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为5份,把多余的一条扔掉,拿走自己的一份。C、D、E依次醒来,也按照同样的方法拿鱼。编写程序,求出它们合伙至少捕了多少条鱼? 答案: #include <stdio.h> #include <conio.h> int sub(int n) {if(n==1) {static int i=0; do{i++;}while(i%5!=0); return i+1;} else {int t; do{ t=sub(n-1); }while(t%4!=0); return (t/4*5+1);}} main() { int total; total=sub(5); printf("the total number of fish is %d ",total); getch();} 2. 编写两个函数分别计算两个整数的最大公约数和最小公倍数,由主函数调用这两个函数。 答案: #include <stdio.h> #include <conio.h> int hf(int u,int v) {int t,r; if(v>u) {t=u; u=v; v=t;} while((r=u%v)!=0) {u=v; v=r; } return v;} int ld(int u,int v,int h) {return (u*v/h);} main() { int u,v,h,l; printf("input two integer number: "); scanf("%d%d",&u,&v); h=hf(u,v); l=ld(u,v,h); printf("最大公约数是:%d ",h); printf("最小公倍数是:%d ",l); getch();} 3. 编写函数reverseArray逆序数组,并在主函数中调用。 答案: #include <stdio.h> void reverseArray(int arr[], int n) { for (int i = 0; i < n / 2; i++) { int temp = arr[i]; arr[i] = arr[n - i - 1]; arr[n - i - 1] = temp; } } int main() { int n; scanf("%d", &n); int arr[n]; for (int i = 0; i < n; i++) scanf("%d", &arr[i]); reverseArray(arr, n); for (int i = 0; i < n; i++) printf("%d ", arr[i]); return 0; } 4.编写一个程序,根据用户输入的二维数组的行数 m 和列数 n,以及数组元素,找出二维数组中的鞍点(即该元素在所在行上最大,在所在列上最小)。如果没有鞍点,输出提示信息。 答案: #include <stdio.h> #define MAX_ROWS 100 #define MAX_COLS 100 int findSaddlePoint(int matrix[MAX_ROWS][MAX_COLS], int m, int n) { for (int i = 0; i < m; i++) { int maxInRow = matrix[i][0]; int maxColIndex = 0; // 找出当前行的最大值及其列索引 for (int j = 1; j < n; j++) { if (matrix[i][j] > maxInRow) { maxInRow = matrix[i][j]; maxColIndex = j; } } // 检查该最大值是否为所在列的最小值 int isSaddle = 1; for (int k = 0; k < m; k++) { if (matrix[k][maxColIndex] < maxInRow) { isSaddle = 0; break; } } if (isSaddle) { printf("鞍点是: %d,位于第 %d 行,第 %d 列 ", maxInRow, i + 1, maxColIndex + 1); return 1; } } printf("没有找到鞍点。 "); return 0; } int main() { int m, n; int matrix[MAX_ROWS][MAX_COLS]; printf("请输入二维数组的行数 m: "); scanf("%d", &m); printf("请输入二维数组的列数 n: "); scanf("%d", &n); printf("请输入二维数组的 %d 行 %d 列元素: ", m, n); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { scanf("%d", &matrix[i][j]); } } findSaddlePoint(matrix, m, n); return 0; } 5.编写一个程序,根据用户输入的学生成绩(整数),判断并输出对应的成绩等级。成绩等级划分如下:90 - 100 为 A,80 - 89 为 B,70 - 79 为 C,60 - 69 为 D,0 - 59 为 F。 答案: #include <stdio.h> char getGrade(int score) { if (score >= 90 && score <= 100) { return 'A'; } else if (score >= 80 && score <= 89) { return 'B'; } else if (score >= 70 && score <= 79) { return 'C'; } else if (score >= 60 && score <= 69) { return 'D'; } else if (score >= 0 && score <= 59) { return 'F'; } else { return 'X'; // 表示输入的成绩无效 } } int main() { int score; char grade; printf("请输入学生的成绩: "); scanf("%d", &score); grade = getGrade(score); if (grade == 'X') { printf("输入的成绩无效,请输入 0 - 100 之间的整数。 "); } else { printf("该学生的成绩等级是: %c ", grade); } return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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