内容正文:
编写说明: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 和数组元素,计算数组元素的总和与平均值,并输出结果。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$