《高考C语言题PDF.pdf》由会员分享,可在线阅读,更多相关《高考C语言题PDF.pdf(29页珍藏版)》请在金锄头文库上搜索。
1、书 山 有 路 1 试卷编号 试卷编号 82588258 所属语言 计算机基础 试卷方案 111 试卷总分 400 分 共有题型 3 种 一 程序填空一 程序填空 共共 5 5 题题 共计 共计 100100 分 分 第 1 题 20 0 分 题号 650 难度 中 第 1 章 程序填空 函数 int change char s 将 s 中的数字字符串转换成整数 并返回该数 例如 s 中为 123 转换后为 123 函数 int multi char s char t 将 s 字符串转换的整数乘 以 t 字符串转换的整数 并返回乘积 注意 请勿改动程序中的其他内容 include int ch
2、ange char s int i sum sum 0 for i 0 s i i SPACE sum sum 10 0 return sum int multi char s char t int mul SPACE mul return mul int main char s1 123 s2 56 int mst 书 山 有 路 2 mst multi s1 s2 printf d n mst return 0 答案 答案 1 s i 或 s i 答案 2 change s change t 或 change t change s 第 2 题 20 0 分 题号 651 难度 中 第 1
3、章 程序填空 函数 void check long n int c 检测长整型正整数 n 是几 位数 同时找出最小的数字 将位数和最小的数字存放在数 组 c 中 例如 n 1256044 时 n 是 7 位数 最小的数字是 0 注意 请勿改动程序中的其他内容 include SPACE void check long n int int min p k min 9 p 0 do k n 10 min min k k min n 10 p 书 山 有 路 3 while n c 0 p c 1 min int main long n int c 2 printf 输入长整型正整数 scanf l
4、d check n c SPACE printf ld 是 d 位数 最小数字是 d n return 0 答案 答案 1 c 或 c 2 答案 2 n c 0 c 1 第 3 题 20 0 分 题号 652 难度 中 第 1 章 程序填空 函数 int convert int a int nsys 将 nsys nsys 10 进制数 a 转换成十进制数并返回 注意 请勿改动程序中的其他内容 include define N 5 int convert int a int nsys int t p 书 山 有 路 4 if a nsys return a t 0 p 1 while a 0
5、t t a 10 p SPACE p nsys return t int main int i d int num N 2 704 8 10011 2 266 7 3 5 22110 3 for i 0 i N i d convert num i 0 num i 1 SPACE printf d 进制数的 d t 十进制数的 d n return 0 答案 答案 1 a 10 或 a a 10 答案 2 num i 1 num i 0 d 第 4 题 20 0 分 题号 653 难度 中 第 1 章 程序填空 函数 void rearr int a int n 将已经升序排列的一维数 组 a
6、中的 n 个元素重新排列 重新排列的规则是 书 山 有 路 5 将 a 数组中的最小元素放到 a 0 最大元素放到 a 1 将次小元素放到 a 2 次大元素放到 a 3 以此类推 例如 原 a 数组各元素为 11 7 0 3 8 15 16 20 38 重新排列后 a 数组各元素为 11 38 7 20 0 16 3 15 8 注意 请勿改动程序中的其他内容 include define N 9 void rearr int a int n int left right i int b N left 0 right N 1 for i 0 left right i 2 b i a left S
7、PACE b i 1 a if left right b i a left for i 0 i N i SPACE a i int main int i a N 11 7 0 3 8 15 16 20 38 rearr a N for i 0 i z B y Z a 小写字母转换规则 z A y B a Z 数字字符转换规则 0 9 1 8 9 0 注意 请勿改动程序中的其他内容 include include void change char s char t int i for i 0 s i i if isalpha s i t i isupper s i Z s i a z s i A
8、 else if isdigit s i t i 9 s i 0 else SPACE t i 0 int main 书 山 有 路 7 char t 100 7984 RH hSVVK BVZI dRHS BLF TLLW OFXP char s 100 SPACE printf s n s return 0 答案 答案 1 t i s i 答案 2 change t s 二 程序改错二 程序改错 共共 5 5 题题 共计 共计 150150 分 分 第 1 题 30 0 分 题号 575 难度 中 第 1 章 程序改错 题目 int sort int a int n 函数将 n 个元素的数
9、组 a 中互不相 同的元素按升序排列 重新存入数组 a 中 函数返回按升序 排列后互不相同元素的个数 例如 数组 a 中元素为 6 2 7 5 4 3 4 6 5 4 调用 sort 函数后 函数值为 6 主函数中输出排序后的数组 a 元素为 2 3 4 5 6 7 请改正程序中的错误 使它能得出正确的结果 注意 不得增行或删行 也不得更改程序的结构 include int sort int a int n int i j k low high mid t for k i 1 i n i low 0 书 山 有 路 8 high k 1 while low a i high mid 1 els
10、e low mid 1 if low k a low a i FOUND t a i 1 FOUND for j k j low j a j 1 a j a low t k return k int main int a 6 2 7 5 4 3 4 6 5 4 int i n n sizeof a sizeof int for i 0 i n i printf d t a i FOUND sort a n printf nAfter sorting n for i 0 i low j 书 山 有 路 9 答案 3 n sort a n 第 2 题 30 0 分 题号 576 难度 中 第 1
11、章 程序改错 题目 函数 unsigned delbits unsigned x unsigned p unsigned n 把非负整数 x 从左端第 p p 1 位开始的 n 位删除 形成新的数 返回 例如 若 x 为 12345 p 为 3 n 为 2 形成新的数为 125 若 x 为 12345 p 为 6 n 为 2 形成新的数为 12345 若 x 为 12345 p 为 3 n 为 4 形成新的数为 12 请改正程序中的错误 使它能得出正确的结果 注意 不得增行或删行 也不得更改程序的结构 include unsigned delbits unsigned x unsigned p
12、 unsigned n int a 10 i j k i 0 while x FOUND a i x 10 x 10 k i for i 0 i k 2 i a i a k i 1 a k i 1 a i a k i 1 a i a i a k i 1 j p 1 FOUND for i p n i k 1 i 书 山 有 路 10 a j a i j k j for i 0 i k i FOUND x a i 10 return x int main unsigned x p n printf Input x unsigned int n scanf u printf Input p uns
13、igned int n scanf u printf Input n unsigned int n scanf u x delbits x p n printf After deleting x u n x return 0 答案 答案 1 a i x 10 或 a i x 10 i 或 a i x 10 i 或 a i x 10 i i 1 或 a i x 10 i 1 i 或 a i x 10 i 1 或 a i x 10 i 或 a i x 10 i 或 a i x 10 i i 1 书 山 有 路 11 或 a i x 10 i 1 i 或 a i x 10 i 1 答案 2 for
14、i p n 1 i k 1 i 或 for i p 1 n i k 1 i 答案 3 x x 10 a i 或 x 10 x a i 或 x a i x 10 或 x a i 10 x 第 3 题 30 0 分 题号 577 难度 中 第 1 章 程序改错 题目 void move int a int n int m 函数将 n 个元素的一维 数组 a 循环左移 m 个位置 void change int a int n int b N 函数将数组 a 按 行存入二维数组 b 然后将 b 按列重新存入数组 a 例如 数组 a 的元素为 1 2 3 4 5 6 7 8 9 10 11 12 调用
15、 move 函 数将 a 循环左移 3 个位置后 a 的元素为 4 5 6 7 8 9 10 11 12 1 2 3 调用 change 函数后 a 的元 素为 4 8 12 5 9 1 6 10 2 7 11 3 请改正程序中的错误 使它能得出正确的结果 注意 不得增行或删行 也不得更改程序的结构 include define M 3 define N 4 void move int a int n int m 书 山 有 路 12 int i t while m t a 0 for i 0 i n 1 i FOUND a i a i m a n 1 t m void change int
16、a int n int b N int i j for i 0 i n i FOUND b i M i i N a i for i 0 i N i for j 0 j M j FOUND a j M i b i j int main int a M N 1 2 3 4 5 6 7 8 9 10 11 12 int b M N i j m printf Before moving nArray a n for i 0 i M N i printf d a i printf nInput m n scanf d move a M N m printf nAfter moving nArray a n for i 0 i M N i printf d a i change a M N b printf n nAfter changing nArray b n for i 0 i M i for j 0 j N j printf d t b i j printf n printf Array a n 书 山 有 路 13 for i 0 i M N i printf d a i printf