内容正文:
编写说明: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,在数组中查找目标值,将所有目标值替换为新值,并输出替换后的数组。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$