内容正文:
编写说明:2027版湖南省普通高等学校对口招生考试计算机应用类《考纲百套卷》,依据《2022年湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共96份试卷,其中知识训练卷62份、专题训练卷21份、课程综合卷13份。
本试卷是第50卷,为知识训练卷,按《C语言程序设计》中“程序调试与综合应用”范围和要求编写。具体内容为:④程序的分析、调试与编译。(技能部分)。⑤简单的应用编程。(技能部分)。
湖南省对口招生考试
计算机应用类《考纲百套卷》
第50卷 C语言程序设计——程序调试与综合应用
(考试时间:45分钟 满分:100分)
一、单项选择题(共20题,每题2分,共40分)
1.编译器报告语句结构不符合语言规则,这类错误通常属于( )
A.语法结构违反规则
B.运行输入数据出现错误
C.执行路径选择出现错误
D.目标文件链接过程失败
【答案】A
【解析】语法错误是在编译阶段由编译器发现的,常见表现是缺少分号、括号不匹配或关键字使用不当。
2.程序编译通过但运行过程中发生除零异常,这类错误通常属于( )
A.编译阶段发现语法错误
B.程序运行时出现异常
C.输出结果与预期不一致
D.链接阶段找不到外部函数
【答案】B
【解析】除零发生在程序执行过程中,属于运行时错误;编译器不一定能根据普通变量的运行值提前确定。
3.程序能够运行但计算结果始终不符合题意,这类问题通常属于( )
A.语句结构未通过编译
B.编译器无法识别关键字
C.程序逻辑与题意不相符
D.启动时无法分配资源
【答案】C
【解析】程序可以运行而结果错误,说明语法和基本链接可能正确,但算法或条件判断存在逻辑错误。
4.编译目标文件时提示找不到自定义函数的实现,这类错误通常属于( )
A.函数调用参数数目错误
B.程序运行时输入格式错误
C.表达式运算顺序有误
D.链接阶段缺少函数定义
【答案】D
【解析】函数声明能够通过编译,但链接时找不到对应实现,通常是源文件未参与编译或函数名、作用域不一致。
5.调试程序时希望在某行暂停并观察执行过程,通常应设置( )
A.指定位置的断点
B.当前变量的监视项
C.程序结束的返回值
D.编译器使用的优化项
【答案】A
【解析】断点用于让程序执行到指定位置时暂停,便于查看变量、调用栈和下一步执行路径。
6.调试过程中希望持续观察变量值随执行过程的变化,适合使用( )
A.源文件保存窗口
B.变量监视窗口
C.编译选项设置窗口
D.程序输出结果窗口
【答案】B
【解析】监视功能可跟踪指定表达式或变量的值,适合发现循环中数据何时发生异常变化。
7.定位函数调用错误时,最有助于查看当前调用关系的是( )
A.源程序的文件名称
B.编译器的版本信息
C.当前函数的调用栈
D.输出窗口的字体设置
【答案】C
【解析】调用栈记录当前函数由谁调用以及调用层次,能够帮助判断参数传递和返回路径是否正确。
8.编译器给出未使用变量的warning时,通常说明程序( )
A.已经确定不能正常链接
B.一定会在运行时崩溃
C.必然会输出错误结果
D.存在值得检查的潜在问题
【答案】D
【解析】warning通常是警告而非必然的编译失败,但未使用变量可能反映遗漏逻辑、拼写错误或无效代码,应当检查。
9.在C语言中,判断两个整数是否相等应使用运算符( )
A.==进行相等性比较
B.=进行相等性比较
C.!=进行相等性比较
D.>=进行相等性比较
【答案】A
【解析】==用于比较两个表达式是否相等,=是赋值运算符;把二者混用是常见逻辑错误来源。
10.自动变量定义后未赋初值就参与加法运算,主要问题是( )
A.变量类型一定无法识别
B.变量初值具有不确定性
C.加法运算符不能使用
D.程序一定无法通过链接
【答案】B
【解析】局部自动变量未初始化时值不确定,直接使用可能得到不可预测结果,应在使用前赋予明确初值。
11.访问数组时下标等于数组元素个数,主要问题是( )
A.数组元素会自动增加一个
B.编译器一定会扩展数组空间
C.访问位置已经越过数组末尾
D.下标会自动改回数组开头
【答案】C
【解析】长度为n的数组合法下标是0到n-1,下标n已越界,可能破坏其他内存或造成运行异常。
12.指针变量为NULL时执行*p,最直接的风险是( )
A.自动创建一个新的变量
B.把指针改成数组首地址
C.让编译器重新分配内存
D.对无效地址进行解引用
【答案】D
【解析】NULL不指向可访问对象,对NULL指针解引用属于无效内存访问,可能导致程序运行异常。
13.使用scanf读取整数变量x时,通常应传入( )
A.变量x的地址
B.变量x当前的数值
C.变量x的类型名称
D.变量x所在的文件
【答案】A
【解析】scanf需要把输入结果写回变量,因此整数变量通常传入&x;直接传x会把数值误当作地址。
14.函数在调用前没有声明且编译器无法推断其原型,主要应检查( )
A.输出语句是否使用换行
B.函数原型是否提前声明
C.数组名称是否全部大写
D.源文件是否保存为文本
【答案】B
【解析】函数原型包含返回类型、函数名和参数信息,调用前提供正确声明有助于编译器检查参数和返回值。
15.循环执行次数比预期多1次,最应优先检查循环的( )
A.程序标题、文件名和注释
B.输出字体、颜色和窗口大小
C.初值、条件和更新表达式
D.编译器版本和安装路径
【答案】C
【解析】循环次数由初值、继续条件和更新表达式共同决定,边界条件或更新位置错误都可能造成多执行一次。
16.希望函数修改调用者中的整数变量,形参通常应设计为( )
A.该变量的一份副本
B.只读的字符常量
C.表示长度的浮点数
D.指向该变量的指针
【答案】D
【解析】按值传递只修改形参副本;传入变量地址并通过指针解引用,函数才能修改调用者中的原变量。
17.函数已经完成计算但调用者得到的数值不正确,首先应检查( )
A.返回值及其接收方式
B.源文件的显示比例
C.编辑器的主题颜色
D.键盘输入法的状态
【答案】A
【解析】应检查函数是否返回正确表达式、调用者是否保存返回值以及返回类型是否匹配,避免结果在传递过程中丢失。
18.为了发现程序只在空输入时出错的问题,测试数据应包含( )
A.只有一个普通中间值
B.空输入和边界输入
C.与样例完全相同的数据
D.不涉及任何条件的数据
【答案】B
【解析】边界测试应覆盖空数据、最小值、最大值和临界值,能够发现循环、数组和除法中的边界错误。
19.调试时发现结果偶尔错误而不是每次错误,优先怀疑( )
A.标题文字长度不够整齐
B.程序使用了标准输入
C.未初始化数据或越界访问
D.输出语句包含空格字符
【答案】C
【解析】未初始化变量和越界访问可能受内存布局影响,表现为偶发错误,应结合断点和监视逐步检查。
20.解决一个综合编程错误时,较合理的调试顺序是( )
A.先修改所有变量再运行程序
B.先删除测试数据再看结果
C.先调整输出格式再查逻辑
D.先复现问题再定位和验证
【答案】D
【解析】应先用稳定数据复现问题,再缩小范围定位原因,修改后用原测试和边界测试验证修复效果。
二、程序填空题(共5题,每题4分,共20分)
1.下面程序计算数组元素之和,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int a[5] = {2, 4, 6, 8, 10};
int i, sum = 0;
for (i = 0; i < 5; __________)
sum += a[i];
printf("%d
", sum);
return 0;
}
【答案】i++(4分)。
【解析】循环从下标0开始,每次处理一个元素,更新表达式应使i递增;填写i++后访问下标0至4,结果为30。
2.下面程序调用交换函数交换两个整数,请在横线处填入适当内容。
#include <stdio.h>
void swap(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
}
int main()
{
int x = 3, y = 8;
swap(__________, &y);
printf("%d %d
", x, y);
return 0;
}
【答案】&x(4分)。
【解析】swap的形参是指针,需要接收变量地址;传入&x和&y后,函数通过解引用交换x、y的原值。
3.下面程序调用自定义函数求数组最大值,请在横线处填入适当内容。
#include <stdio.h>
int max_value(const int a[], int n)
{
int i, max = a[0];
for (i = 1; i < n; i++)
if (a[i] > max)
max = a[i];
return max;
}
int main()
{
int a[4] = {7, 2, 11, 5};
printf("%d
", __________);
return 0;
}
【答案】max_value(a, 4)(4分)。
【解析】函数需要接收数组首地址和有效元素个数,传入a和4后,函数逐项比较并返回数组最大值11。
4.下面程序从键盘读取整数并输出其平方,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int value;
if (scanf("%d", __________) == 1)
printf("%d
", value * value);
return 0;
}
【答案】&value(4分)。
【解析】scanf需要把输入结果写入value,因此应传入value的地址&value;返回值为1表示成功读取一个整数。
5.下面程序计算1到n的累加和,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int n, i, sum = 0;
scanf("%d", &n);
for (i = 1; __________; i++)
sum += i;
printf("%d
", sum);
return 0;
}
【答案】i <= n(4分)。
【解析】累加范围是1到n,循环从i=1开始,只有i不超过n时才继续,因此条件应写为i<=n。
三、程序改错题(共4题,每题4分,共16分)
1.下面程序判断除法是否可以进行,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
int a = 10, b = 2;
if (b = 0)
printf("%d
", b / a);
else
printf("cannot divide
");
return 0;
}
【答案】(1)if (b = 0)改为if (b != 0);(2)printf("%d
", b / a)改为printf("%d
", a / b)。
【解析】条件中应使用!=判断除数不为0,不能用赋值运算符;除法结果应为被除数a除以除数b,而不是b除以a。
2.下面程序计算数组元素之和,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
int a[5] = {1, 3, 5, 7, 9};
int i, sum = 0;
for (i = 0; i <= 5; i++)
sum += a[i];
printf("%d
", sum)
return 0;
}
【答案】(1)i <= 5改为i < 5;(2)printf("%d
", sum)后补分号。
【解析】数组长度为5时合法下标是0到4,循环条件应为i<5;printf语句末尾必须有分号,否则会产生语法错误。
3.下面程序使用指针保存并输出一个整数,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
int value = 6;
int *p;
*p = value;
printf("%d
", &value);
return 0;
}
【答案】(1)int *p;改为int *p = &value;(2)printf("%d
", &value)改为printf("%d
", *p)。
【解析】p必须先指向有效对象才能解引用,初始化为&value后才可执行*p=value;%d要求传入整数值,应输出*p而不是地址&value。
4.下面程序计算数组平均值,其中有2处错误,请找出并改正。
#include <stdio.h>
int average(int a[], int n)
{
int i, sum;
for (i = 0; i < n; i++)
sum += a[i];
return sum / n;
}
int main()
{
int a[4] = {6, 8, 10, 12};
printf("%d
", average(a, 0));
return 0;
}
【答案】(1)int i, sum;改为int i, sum = 0;(2)average(a, 0)改为average(a, 4)。
【解析】累加变量sum必须在进入循环前初始化为0;数组有4个有效元素,传入0会导致除数为0且无法读取数据,调用时应传入4。
四、写程序运行结果题(共4题,每题4分,共16分)
1.写出下面程序的运行结果。
#include <stdio.h>
int adjust_positive(int *p, int n)
{
int i;
for (i = 0; i < n; i++)
if (p[i] > 0)
p[i]++;
return p[n - 1];
}
int main()
{
int data[4] = {-1, 2, 0, 3};
int result = adjust_positive(data + 1, 3);
printf("%d %d %d
", result, data[1], data[3]);
return 0;
}
【答案】4 3 4
【解析】函数从data+1开始处理3个元素,即2、0、3,正数分别变为3和4;返回最后一个元素4,data[1]和data[3]分别为3、4。
2.写出下面程序的运行结果。
#include <stdio.h>
int main()
{
int i, j, total = 0;
for (i = 1; i <= 3; i++)
for (j = 1; j <= i; j++)
total += i * j;
printf("%d
", total);
return 0;
}
【答案】25
【解析】i=1时累加1;i=2时累加2+4=6;i=3时累加3+6+9=18,总和为1+6+18=25。
3.写出下面程序的运行结果。
#include <stdio.h>
void transform(int *p, int n)
{
int i;
for (i = 0; i < n; i++)
p[i] = p[i] * (i + 2) - i;
}
int main()
{
int a[3] = {2, 4, 6};
transform(a, 3);
printf("%d %d %d
", a[0], a[1], a[2]);
return 0;
}
【答案】4 11 22
【解析】三个元素依次计算为2*2-0=4、4*3-1=11、6*4-2=22,函数通过指针直接修改数组原内容。
4.写出下面程序的运行结果。
#include <stdio.h>
int choose_value(int x)
{
if (x % 3 == 0)
return x / 3;
if (x % 3 == 1)
return x + 2;
return x - 1;
}
int main()
{
int a = choose_value(4);
int b = choose_value(8);
int c = choose_value(9);
printf("%d %d %d %d
", a, b, c, a + b + c);
return 0;
}
【答案】6 7 3 16
【解析】4除以3余1,返回6;8除以3余2,返回7;9能被3整除,返回3;四个输出值最后为6+7+3=16。
五、程序设计题(共1题,共8分)
1.编写程序:先输入一个不超过30的正整数n,再输入n个整数。使用自定义函数完成数据处理:计算总和、平均值、最大值和最小值;统计大于平均值的元素个数;把原数组中偶数元素复制到even数组、奇数元素复制到odd数组,并分别输出两个数组。程序应检查n的合法范围,避免数组越界,并对n为0或输入失败的情况给出提示。
【答案】参考程序如下。评分点:正确检查n并限制数组范围;使用自定义函数完成读取和求和;正确求最大值、最小值、平均值及高于平均值的数量;正确按奇偶复制并输出数组;处理非法输入、空数据和边界并避免越界。
#include <stdio.h>
int read_values(int a[], int limit)
{
int n, i;
if (scanf("%d", &n) != 1 || n <= 0)
return 0;
if (n > limit)
n = limit;
for (i = 0; i < n; i++)
if (scanf("%d", &a[i]) != 1)
return i;
return n;
}
int sum_values(const int a[], int n)
{
int i, sum = 0;
for (i = 0; i < n; i++)
sum += a[i];
return sum;
}
int count_above_average(const int a[], int n, int sum)
{
int i, count = 0;
for (i = 0; i < n; i++)
if (a[i] * n > sum)
count++;
return count;
}
void split_values(const int a[], int n, int even[], int *neven,
int odd[], int *nodd)
{
int i;
*neven = 0;
*nodd = 0;
for (i = 0; i < n; i++)
{
if (a[i] % 2 == 0)
even[(*neven)++] = a[i];
else
odd[(*nodd)++] = a[i];
}
}
void print_values(const int a[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", a[i]);
putchar('
');
}
int main()
{
int a[30], even[30], odd[30];
int n, i, sum, max, min, neven, nodd;
n = read_values(a, 30);
if (n == 0)
{
printf("invalid input
");
return 0;
}
sum = sum_values(a, n);
max = min = a[0];
for (i = 1; i < n; i++)
{
if (a[i] > max)
max = a[i];
if (a[i] < min)
min = a[i];
}
split_values(a, n, even, &neven, odd, &nodd);
printf("sum=%d average=%.2f max=%d min=%d above=%d
",
sum, sum / (double)n, max, min,
count_above_average(a, n, sum));
printf("even: ");
print_values(even, neven);
printf("odd: ");
print_values(odd, nodd);
return 0;
}
【解析】程序先通过read_values检查输入并把n限制在数组容量内,再由sum_values求和。平均值比较使用a[i]*n>sum,避免直接比较浮点数造成的边界误差。主函数计算最大值和最小值,split_values通过指针返回两个新数组的长度,最后用print_values统一输出;n为0时提前给出提示并结束。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版湖南省普通高等学校对口招生考试计算机应用类《考纲百套卷》,依据《2022年湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共96份试卷,其中知识训练卷62份、专题训练卷21份、课程综合卷13份。
本试卷是第50卷,为知识训练卷,按《C语言程序设计》中“程序调试与综合应用”范围和要求编写。具体内容为:④程序的分析、调试与编译。(技能部分)。⑤简单的应用编程。(技能部分)。
湖南省对口招生考试
计算机应用类《考纲百套卷》
第50卷 C语言程序设计——程序调试与综合应用
(考试时间:45分钟 满分:100分)
一、单项选择题(共20题,每题2分,共40分)
1.编译器报告语句结构不符合语言规则,这类错误通常属于( )
A.语法结构违反规则
B.运行输入数据出现错误
C.执行路径选择出现错误
D.目标文件链接过程失败
2.程序编译通过但运行过程中发生除零异常,这类错误通常属于( )
A.编译阶段发现语法错误
B.程序运行时出现异常
C.输出结果与预期不一致
D.链接阶段找不到外部函数
3.程序能够运行但计算结果始终不符合题意,这类问题通常属于( )
A.语句结构未通过编译
B.编译器无法识别关键字
C.程序逻辑与题意不相符
D.启动时无法分配资源
4.编译目标文件时提示找不到自定义函数的实现,这类错误通常属于( )
A.函数调用参数数目错误
B.程序运行时输入格式错误
C.表达式运算顺序有误
D.链接阶段缺少函数定义
5.调试程序时希望在某行暂停并观察执行过程,通常应设置( )
A.指定位置的断点
B.当前变量的监视项
C.程序结束的返回值
D.编译器使用的优化项
6.调试过程中希望持续观察变量值随执行过程的变化,适合使用( )
A.源文件保存窗口
B.变量监视窗口
C.编译选项设置窗口
D.程序输出结果窗口
7.定位函数调用错误时,最有助于查看当前调用关系的是( )
A.源程序的文件名称
B.编译器的版本信息
C.当前函数的调用栈
D.输出窗口的字体设置
8.编译器给出未使用变量的warning时,通常说明程序( )
A.已经确定不能正常链接
B.一定会在运行时崩溃
C.必然会输出错误结果
D.存在值得检查的潜在问题
9.在C语言中,判断两个整数是否相等应使用运算符( )
A.==进行相等性比较
B.=进行相等性比较
C.!=进行相等性比较
D.>=进行相等性比较
10.自动变量定义后未赋初值就参与加法运算,主要问题是( )
A.变量类型一定无法识别
B.变量初值具有不确定性
C.加法运算符不能使用
D.程序一定无法通过链接
11.访问数组时下标等于数组元素个数,主要问题是( )
A.数组元素会自动增加一个
B.编译器一定会扩展数组空间
C.访问位置已经越过数组末尾
D.下标会自动改回数组开头
12.指针变量为NULL时执行*p,最直接的风险是( )
A.自动创建一个新的变量
B.把指针改成数组首地址
C.让编译器重新分配内存
D.对无效地址进行解引用
13.使用scanf读取整数变量x时,通常应传入( )
A.变量x的地址
B.变量x当前的数值
C.变量x的类型名称
D.变量x所在的文件
14.函数在调用前没有声明且编译器无法推断其原型,主要应检查( )
A.输出语句是否使用换行
B.函数原型是否提前声明
C.数组名称是否全部大写
D.源文件是否保存为文本
15.循环执行次数比预期多1次,最应优先检查循环的( )
A.程序标题、文件名和注释
B.输出字体、颜色和窗口大小
C.初值、条件和更新表达式
D.编译器版本和安装路径
16.希望函数修改调用者中的整数变量,形参通常应设计为( )
A.该变量的一份副本
B.只读的字符常量
C.表示长度的浮点数
D.指向该变量的指针
17.函数已经完成计算但调用者得到的数值不正确,首先应检查( )
A.返回值及其接收方式
B.源文件的显示比例
C.编辑器的主题颜色
D.键盘输入法的状态
18.为了发现程序只在空输入时出错的问题,测试数据应包含( )
A.只有一个普通中间值
B.空输入和边界输入
C.与样例完全相同的数据
D.不涉及任何条件的数据
19.调试时发现结果偶尔错误而不是每次错误,优先怀疑( )
A.标题文字长度不够整齐
B.程序使用了标准输入
C.未初始化数据或越界访问
D.输出语句包含空格字符
20.解决一个综合编程错误时,较合理的调试顺序是( )
A.先修改所有变量再运行程序
B.先删除测试数据再看结果
C.先调整输出格式再查逻辑
D.先复现问题再定位和验证
二、程序填空题(共5题,每题4分,共20分)
1.下面程序计算数组元素之和,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int a[5] = {2, 4, 6, 8, 10};
int i, sum = 0;
for (i = 0; i < 5; __________)
sum += a[i];
printf("%d
", sum);
return 0;
}
2.下面程序调用交换函数交换两个整数,请在横线处填入适当内容。
#include <stdio.h>
void swap(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
}
int main()
{
int x = 3, y = 8;
swap(__________, &y);
printf("%d %d
", x, y);
return 0;
}
3.下面程序调用自定义函数求数组最大值,请在横线处填入适当内容。
#include <stdio.h>
int max_value(const int a[], int n)
{
int i, max = a[0];
for (i = 1; i < n; i++)
if (a[i] > max)
max = a[i];
return max;
}
int main()
{
int a[4] = {7, 2, 11, 5};
printf("%d
", __________);
return 0;
}
4.下面程序从键盘读取整数并输出其平方,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int value;
if (scanf("%d", __________) == 1)
printf("%d
", value * value);
return 0;
}
5.下面程序计算1到n的累加和,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int n, i, sum = 0;
scanf("%d", &n);
for (i = 1; __________; i++)
sum += i;
printf("%d
", sum);
return 0;
}
三、程序改错题(共4题,每题4分,共16分)
1.下面程序判断除法是否可以进行,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
int a = 10, b = 2;
if (b = 0)
printf("%d
", b / a);
else
printf("cannot divide
");
return 0;
}
2.下面程序计算数组元素之和,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
int a[5] = {1, 3, 5, 7, 9};
int i, sum = 0;
for (i = 0; i <= 5; i++)
sum += a[i];
printf("%d
", sum)
return 0;
}
3.下面程序使用指针保存并输出一个整数,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
int value = 6;
int *p;
*p = value;
printf("%d
", &value);
return 0;
}
4.下面程序计算数组平均值,其中有2处错误,请找出并改正。
#include <stdio.h>
int average(int a[], int n)
{
int i, sum;
for (i = 0; i < n; i++)
sum += a[i];
return sum / n;
}
int main()
{
int a[4] = {6, 8, 10, 12};
printf("%d
", average(a, 0));
return 0;
}
四、写程序运行结果题(共4题,每题4分,共16分)
1.写出下面程序的运行结果。
#include <stdio.h>
int adjust_positive(int *p, int n)
{
int i;
for (i = 0; i < n; i++)
if (p[i] > 0)
p[i]++;
return p[n - 1];
}
int main()
{
int data[4] = {-1, 2, 0, 3};
int result = adjust_positive(data + 1, 3);
printf("%d %d %d
", result, data[1], data[3]);
return 0;
}
2.写出下面程序的运行结果。
#include <stdio.h>
int main()
{
int i, j, total = 0;
for (i = 1; i <= 3; i++)
for (j = 1; j <= i; j++)
total += i * j;
printf("%d
", total);
return 0;
}
3.写出下面程序的运行结果。
#include <stdio.h>
void transform(int *p, int n)
{
int i;
for (i = 0; i < n; i++)
p[i] = p[i] * (i + 2) - i;
}
int main()
{
int a[3] = {2, 4, 6};
transform(a, 3);
printf("%d %d %d
", a[0], a[1], a[2]);
return 0;
}
4.写出下面程序的运行结果。
#include <stdio.h>
int choose_value(int x)
{
if (x % 3 == 0)
return x / 3;
if (x % 3 == 1)
return x + 2;
return x - 1;
}
int main()
{
int a = choose_value(4);
int b = choose_value(8);
int c = choose_value(9);
printf("%d %d %d %d
", a, b, c, a + b + c);
return 0;
}
五、程序设计题(共1题,共8分)
1.编写程序:先输入一个不超过30的正整数n,再输入n个整数。使用自定义函数完成数据处理:计算总和、平均值、最大值和最小值;统计大于平均值的元素个数;把原数组中偶数元素复制到even数组、奇数元素复制到odd数组,并分别输出两个数组。程序应检查n的合法范围,避免数组越界,并对n为0或输入失败的情况给出提示。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$