内容正文:
山东省春季高考技能测试
C语言程序设计第六套(原卷版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入5个互不相同的整数到一维数组a中,找出数组中最大的元素,并从数组中删除该值,再输出剩余数组元素。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 #define N 5
3 int main()
4 {
5 int a[N],max=0,i,t;
6 for(i=0;i<N;i++)
7 scanf("%d",&a[N]);
8 for(i=0;i<N;i++)
9 {
10 if(a[i]>max)
11 {
12 a[i]=max;
13 t=i;
14 }
15 }
16 printf("最大值为:%d
",max);
17 for(i=t+1;i<=N-1;i++)
18 a[i+1]=a[i];
19 for(i=0;i<N-1;i++)
20 printf("%d",a[i]);
21 return 0;
22 }
答案:
【1】错误行号:
正确代码:
【2】错误行号:
正确代码:
【3】错误行号:
正确代码:
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:定义长度为5的一维数组a和b。编写函数add()将两个数组中下标相同的元素相加,如果和能被4整除,就将其存入数组c;如果和不能被4整除,就将其乘以4再存入数组c,并在主函数中输出数组c。
Program2.c代码如下:
#include <stdio.h>
int add(int a,int b)
{
int sum;
sum=a+b;
【1】
}
int main()
{
int a[5],b[5],c[5],i;
printf("输入数组a的元素值:
");
for(i=0;i<5;i+ +)
scanf("%d",&a[i]);
printf("输入数组b的元素值:
");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
for(i=0;i<5;i++)
c[i]=add(a[i],b[i]);
printf("输出数组c:
");
for(i=0;i<5;i++)
printf("%d ",c[i]);
return 0;
}
答案:
【1】
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:自定义函数splitNum(),实现对一个三位正整数各位进行拆分。在主函数中从键盘输入一个三位正整数,并调用自定义函数输出拆分后百位、十位、个位数字。例如输入185,输出1,8,5。
答案:
程序代码:
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:输入一个长度不大于80的字符串,编写程序将字符串中的大写字母转换成相应的小写字母,将小写字母转换成相应的大写字母,其余字符不变,并输出转换后的字符串。例如:输入”TYU##xyz”,转换后输出”tyu##XYZ”。
答案:
程序代码:
学科网(北京)股份有限公司
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
1 #include <stdio.h>
2 #define N 5
3 int main()
4 {
5 int a[N],max=0,i,t;
6 for(i=0;i<N;i++)
7 scanf("%d",&a[N]);
8 for(i=0;i<N;i++)
9 {
10 if(a[i]>max)
11 {
12 a[i]=max;
13 t=i;
14 }
15 }
16 printf("ОЬ┤зох╬ф:%d
",max);
17 for(i=t+1;i<=N-1;i++)
18 a[i+1]=a[i];
19 for(i=0;i<N-1;i++)
20 printf("%d",a[i]);
21 return 0;
22 }
#include <stdio.h>
int add(int a,int b)
{
int sum;
sum=a+b;
【1】
}
int main()
{
int a[5],b[5],c[5],i;
printf("输入数组a的元素值:
");
for(i=0;i<5;i+ +)
scanf("%d",&a[i]);
printf("输入数组b的元素值:
");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
for(i=0;i<5;i++)
c[i]=add(a[i],b[i]);
printf("输出数组c:
");
for(i=0;i<5;i++)
printf("%d ",c[i]);
return 0;
}
$$
山东省春季高考技能测试
C语言程序设计第六套(答案版)
第 一 题 程序改错题
本题有3行代码错误,请考生找到错误代码行,将错误代码行号、修改后的该行程序代码填写到考试系统中对应的答题区域。
程序功能:从键盘输入5个互不相同的整数到一维数组a中,找出数组中最大的元素,并从数组中删除该值,再输出剩余数组元素。
Program1.c代码(首行数字为行号)如下:
1 #include <stdio.h>
2 #define N 5
3 int main()
4 {
5 int a[N],max=0,i,t;
6 for(i=0;i<N;i++)
7 scanf("%d",&a[N]);
8 for(i=0;i<N;i++)
9 {
10 if(a[i]>max)
11 {
12 a[i]=max;
13 t=i;
14 }
15 }
16 printf("最大值为:%d
",max);
17 for(i=t+1;i<=N-1;i++)
18 a[i+1]=a[i];
19 for(i=0;i<N-1;i++)
20 printf("%d",a[i]);
21 return 0;
22 }
答案:(满分18分)
【1】错误行号:7
正确代码:scanf("%d", &a[i]);
【2】错误行号:12
正确代码:max = a[i];
【3】错误行号:18
正确代码:a[i-1] = a[i];
第 二 题 程序填空题
请考生将【序号】处所缺的多行程序代码填写到考试系统中对应的答题区域,实现程序功能。
程序功能:定义长度为5的一维数组a和b。编写函数add()将两个数组中下标相同的元素相加,如果和能被4整除,就将其存入数组c;如果和不能被4整除,就将其乘以4再存入数组c,并在主函数中输出数组c。
Program2.c代码如下:
#include <stdio.h>
int add(int a,int b)
{
int sum;
sum=a+b;
【1】
}
int main()
{
int a[5],b[5],c[5],i;
printf("输入数组a的元素值:
");
for(i=0;i<5;i+ +)
scanf("%d",&a[i]);
printf("输入数组b的元素值:
");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
for(i=0;i<5;i++)
c[i]=add(a[i],b[i]);
printf("输出数组c:
");
for(i=0;i<5;i++)
printf("%d ",c[i]);
return 0;
}
答案:(满分18分)
if (sum % 4 == 0) {
return sum;
} else {
return sum * 4;
}
第 三 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:自定义函数splitNum(),实现对一个三位正整数各位进行拆分。在主函数中从键盘输入一个三位正整数,并调用自定义函数输出拆分后百位、十位、个位数字。例如输入185,输出1,8,5。
答案:(满分28分)
程序代码:
#include <stdio.h>
// 自定义函数:拆分三位正整数的百位、十位、个位
void splitNum(int num, int *hundred, int *ten, int *unit) {
*hundred = num / 100; // 获取百位数字
*ten = (num % 100) / 10; // 获取十位数字
*unit = num % 10; // 获取个位数字
}
int main() {
int num;
int h, t, u; // 分别存储百位、十位、个位数字
printf("请输入一个三位正整数:");
scanf("%d", &num);
// 调用自定义函数拆分数字
splitNum(num, &h, &t, &u);
// 输出拆分结果
printf("%d,%d,%d
", h, t, u);
return 0;
}
第 四 题 编程题
请考生将编写的程序代码填写到考试系统中对应的答题区域。
程序功能:输入一个长度不大于80的字符串,编写程序将字符串中的大写字母转换成相应的小写字母,将小写字母转换成相应的大写字母,其余字符不变,并输出转换后的字符串。例如:输入”TYU##xyz”,转换后输出”tyu##XYZ”。
答案:(满分36分)
程序代码:
#include <stdio.h>
// 自定义函数:拆分三位正整数的百位、十位、个位
void splitNum(int num, int *hundred, int *ten, int *unit) {
*hundred = num / 100; // 获取百位数字
*ten = (num % 100) / 10; // 获取十位数字
*unit = num % 10; // 获取个位数字
}
int main() {
int num;
int h, t, u; // 分别存储百位、十位、个位数字
printf("请输入一个三位正整数:");
scanf("%d", &num);
// 调用自定义函数拆分数字
splitNum(num, &h, &t, &u);
// 输出拆分结果
printf("%d,%d,%d
", h, t, u);
return 0;
}
5.综合素质(15分)
(1)考生全程无不当操作(如随意插拔设备、误触系统设置等)且能正确使用考试系统功能(如提交答案、标记题目等);5分
(2)按题目要求正确保存相关素材,规范答题;5分
(3)考生全程无任何违规行为(如交头接耳、携带违禁物品、偷看他人答案等);5分
【根据考生实际答题情况,即使无任何作答,只要参加考试并登录考试系统即有30分,因此大胆猜测软件专业技能考试数据库和C语言各有15分综合素质分,仅提供参考。阅卷时需按照卷面满分各科100分进行阅卷,阅卷结束后,根据需要自行补充30分综合素质分】
学科网(北京)股份有限公司原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$