




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国全国计算机等计算机等级考试级考试二级二级 C C C C 语言语言 2012201220122012 年年 3 3 3 3 月试题及答案月试题及答案 一 填空题一 填空题 1 C 语言中基本的数据类型有 2 C 语言中普通整型变量的类型说明符为 在内 存中占 字节 有符号普通整型的数据范围是 3 整数 35 在机内的补码表示为 4 执行下列语句 int a 8 a a a a 后 a 的值是 5 有如下语句 char A I am a student 该字符串的长 度是 A 3 6 符号 a 和 a 的区别是 7 所谓 指针 就是 为使变量 a 的值为 1 b 的值为 3 c 的值为 2 从键盘输入数据 的正确形式应是 二 选择题二 选择题 1 设整型变量 a 为 5 使 b 不为 2 的表达式是 A b a 2 B b 6 a C b a 2 D b a 3 2 1 2 为了避免嵌套的条件分支语句 if else 的二义性 C 语言规 定 C 程序中的 else 总是与 组成配对关系 A 缩排位置相同的 if B 在其之前未配对的 if C 在其之前未配对的最近的 if D 同一行上的 if 3 以下程序的输出结果是 int x 10 y 10 printf d d n x y A 10 10 B 9 9 C 9 10 D 10 9 4 设 A 为存放 短 整型的一维数组 如果 A 的首地址为 P 那么 A 中第 i 个元素的地址为 A P i 2 B P i 1 2 C P i 1 D P i 5 选出下列标识符中不是合法的标识符的是 A hot do B cat1 C pri D 2ab 6 以下程序的输出结果是 int a 5 float x 3 14 a x E A printf f n float a A 62 000000 B 62 800000 C 63 000000 D 62 7 设有说明 double p1 N 其中标识符 p1 是 A N 个指向 double 型变量的指针 B 指向 N 个 double 型变量的函数指针 C 一个指向由 N 个 double 型元素组成的一维数组的指针 D 具有 N 个指针元素的一维指针数组 每个元素都只能指向 double 型量 8 在 C 程序中有如下语句 char func int x int y 它是 A 对函数 func 的定义 B 对函数 func 的调用 C 对函数 func 的原型说明 D 不合法的 9 以下程序的输出结果是 char str 15 hello printf d n strlen str A 15 B 14 C 7 D 6 10 分析以下程序的输出结果是 main int a 5 b 1 c c adds a b printf d c c adds a b printf d n c int adds int x int y static int m 0 n 3 n m m n x y return m A 2 3 B 2 2 C 3 2 D 2 4 11 下列描述中不正确的是 A 字符型数组中可能存放字符串 B 可以对字符型数组进行整体输入 输出 C 可以对整型数组进行整体输入 输出 D 不能在赋值语句中通过赋值运算符 对字符型数组进行 整体赋值 12 以下程序的输出结果是 define f x x x main int a 6 b 2 c c f a f b printf d n c A 9 B 6 C 36 D 18 13 设有如下定义 int x 10 y 3 z 则语句 printf d n z x y x y 的输出结果是 A 1 B 0 C 4 D 3 14 定义如下变量和数组 int i int x 3 3 1 2 3 4 5 6 7 8 9 则语句 for i 0 i5 printf d x else printf d n x A 7 和 5 B 6 和 3 C 7 和 4 D 6 和 4 17 设有如下定义 char aa 2 abcd ABCD 则以下说 法中正确的是 A aa 数组成元素的值分别是 abcd 和 ABCD B aa 是指针变量 它指向含有两个数组元素的字符型一维数 组 C aa数组的两个元素分别存放的是含有 4个字符的一维字符 数组的首地址 D aa 数组的两个元素中各自存放了字符 a 和 A 的地址 18 下列程序的输出结果是 char p1 abcd p2 ABCD str 50 xyz strcpy str 2 strcat p1 2 p2 1 printf s str A xyabcAB B abcABz C ABabcz D xycdBCD 19 下列程序的输出结果是 int a 5 2 4 6 8 10 P k p a k printf d p printf d n k A 4 4 B 2 2 C 2 4 D 4 6 20 不能把字符串 Hello 赋给数组 b 的语句是 A char b 10 H e l l o B char b 10 b Hello C char b 10 strcpy b Hello D char b 10 Hello 三 读程序题三 读程序题 1 float f 3 1415927 printf f 5 4f 3 3f f f f 则程序的输出结果是 2 int x 6 y 7 printf d x printf d n y 程序的输出结果是 3 a 3 a a 1 a 1 printf d a 结果是 4 for a 1 b 1 a 20 break if b 3 1 b 3 continue b 5 程序的输出结果 a 的值为 5 int y 1 x p a 2 4 6 8 10 p for x 0 x 3 x y p x printf d n y 程序的输出结果 y 的值是 四 程序填空题四 程序填空题 1 从键盘上输入 10 个数 求其平均值 main int i float f sum for i 1 sum 0 0 iamax amax x if amin x scanf f printf namax f namin f n amax amin 五 编程题五 编程题 1 三个整数 a b c 由键盘输入 输出其中最大的一个数 2 输出 1900 2000 年中所有的闰年 每输出 3 个年号换一行 判断闰年的条件为下面二者之一 能被 4 整除 但不能被 100 整除 或者能被 400 整除 3 请编一个函数int fun int a 它的功能是 判断a是否是素数 若 a 是素数 返回 1 若不是素数 返回 0 A 的值由主函数从键 盘读入 4 有 N 个学生 每个学生的信息包括学号 性别 姓名 四 门课的成绩 从键盘上输入 N 个学生的信息 要求输出总平均成 绩最高的学生信息 包括学号 性别 姓名和平均成绩 参考答案参考答案 一 填空题 1 整型 实型 字符型 2 int 2 32768 32767 3 1111111111011101 4 112 5 14 m 6 a 是字符串常量 而 a 是字符常量 7 存放地址值的变量或常量 或者答地址 8 取运算对象的地址 取指针变量所指的内容 8 a 1 b 3 c 2 二 选择题 1 C 2 C 3 D 4 B 5 D 6 A 7 C 8 C 9 D 10 A 11 C 12 C 13 D 14 C 15 B 16 C 17 D 18 D 19 C 20 B 三 阅读程序题 1 3 141593 3 1416 3 142 2 6 8 3 4 4 22 5 19 四 程序填空题 1 scanf f sum f 2 fopen myfile w fclose fp 3 x 0 0 x amin 五 编程题 1 main int a b c printf 请输入三个整数 scanf d d d if aif belse printf max d n b else if aelse printf max d n a 2 include stdio h main int I n for n 0 I 1900 I 2000 I if I 4 0 n if n 3 0 printf n 3 include stdio h int fun int a int I if a 2 return 1 I 2 while a I 0 if a I 0 printf d is not a prime a return 0 printf d is a prime a return 1 main int x printf n please enter a number scanf d printf d n fun x 4 include stdio h define N 3 struct student long stu num char sex char name 15 int score 4 float average main int I j index float sum max struct student stuarr N for I 0 I printf please input d student information n I 1 scanf ld c s for j 0 j 4 j scanf d for I 0 I sum 0 0 for j 0 jmax max stuarr I average index I printf 总平均成绩最高的学生信息是学号 ld 性别 c 姓 名 s 平均成绩 4 1f n stuarr index stu num stuarr index sex stuarr index nam e stuarr index average 全国计算机等级考试二级全国计算机等级考试二级 C C C C 语言机试预测十套题语言机试预测十套题 模拟试题 一 1 填空题 请补充函数fun 该函数的功能是 把从主函数 中输入的字符串str2接在字符串str1的后面 例如 str1 How do str2 you do 结果输出 How do you do 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的横线上填入所编写的若干表达式或语句 试题程序 include include defineN40 void fun char str1 char str2 inti 0 char p1 str1 char p2 str2 while 1 i for 2 i p1 i 3 p1 i 0 main char str1 N str2 N clrscr printf Inputthestring str1 printf nstr1 gets str1 printf nstr2 gets str2 printf The string str1 puts str1 puts str2 fun str1 str2 printf Thenewstring n puts str1 答案及评析 1 p1 i 2 p2 3 p2 解析 填空 1 变量 i 用来记录字符串 str1 的长度 当指针指 到字符串 str1 结束标志符 0 时 while 循环结束 变量 i 停止 累加 填空 2 指针 p2 指向字符串 str2 通过 for 循环将字符 串 str2 接在 str1 后面 循环结束的条件是指针 p2 所指的字符 是字符串结束标志符 0 填空 3 指针 p2 最初指向字符串 str2 的首字符 通过自加 1 使指针 p2 依次向后移动 指向 str2 的 各个字符 实现将字符串 str2 接在 str1 后面的功能 2 改错题 下列给定程序中 函数fun 的作用是 将字符串tt中的小写字 母都改为对应的大写字母 其他字符不变 例如 若输入 edS dAd 则输出 EDS DAD 请改正程序中的错误 使它能得到正确结果 注意 不要改动main函数 不得增行或删行 也不得更改程 序的结构 试题程序 include include include found charfun char tt int i for i 0 tt i i found if tt i A int i p n 15 printf The original data n for i 0 i n i printf 3d a i printf n nEnter p scanf d fun a p n printf nThe data after moving n for i 0 i n i printf 3d a i printf n n 答案及评析 void fun int w int p int n int i j t for i p i 0 j 实现循环右移 w j 1 w j w 0 t 解析 本题采用 循环右移 的算法 和我们在前面分析的稍有 不同的是 一个是整型数组 一个是字符型数组 模拟试题 二 1 填空题 请补充函数fun 该函数的功能是求一维数组x N 的平均值 并对所得结果进行四舍五入 保留两位小数 例如 当x 10 15 6 19 9 16 7 15 2 18 3 12 1 15 5 11 0 10 0 16 0 结果为 avg 15 030000 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的横线上填入所编写的若干表达式或语句 试题程序 include include double fun double x 10 int i longt double avg 0 0 double sum 0 0 for i 0 i 10 i 1 avg sum 10 avg 2 t 3 avg double t 100 return avg main double avg x 10 15 6 19 9 16 7 15 2 18 3 12 1 15 5 11 0 10 0 16 0 int i clrscr printf nThe original datais n for i 0 i 10 i printf 6 1f x i printf n n avg fun x printf average f n n avg 答案及评析 1 sum x i 2 avg 1000 3 avg 5 10 解析 填空 1 通过 for 循环求出 10 个数的累加和 存于变量 sum 中 填空 2 为了实现四舍五入保留两位小数的功能 应将 平均值先扩大 1000 倍 填空 3 将平均值加上 5 再除以 10 实 现四舍五入的功能 2 改错题 下列给定程序中 函数fun 的功能是 先从键盘上输入一个3 行3列的矩阵的各个元素的值 然后输出主对角线元素之积 请改正函数fun 中的错误 使它能得出正确的结果 注意 不要改动main函数 不得增行或删行 也不得更改程 序的结构 试题程序 include int fun int a 3 3 mul int i j mul 1 for i 0 i 3 i found for i 0 j 3 j scanf d for i 0 i 3 i found mul mul a i j printf Mul d n mul main fun 答案及评析 1 错误 for i 0 j 3 j 正确 for j 0 j 3 j 2 错误 mul mul a i j 正确 mul mul a i i 解析 错误1 循环结构中 要给变量j赋初值0 错误2 主对角元素的行号和列号相等 所以参加乘法的是 a i i 而不是a i j 3 编程题 学生的记录由学号和成绩组成 N名学生的数据已在主函数中 放入结构体数组s中 请编写函数fun 它的功能是 把分数最低 的学生数据放在h所指的数组中 注意 分数低的学生可能不只一 个 函数返回分数最低学生的人数 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的花括号中填入所编写的若干语句 试题程序 include defineN16 typedefstruct char num 10 ints STREC intfun STREC a STREC b main STREC s N GA005 82 GA003 75 GA002 85 GA004 78 GA001 95 GA007 62 GA008 60 GA006 85 GA015 83 GA013 94 GA012 78 GA014 97 GA011 60 GA017 65 GA018 60 GA016 74 STREC h N int i n FILE out n fun s h printf The d lowest score n n for i 0 i n i printf s 4d n h i num h i s 输出最低分学生的学号和成绩 printf n out fopen out19 dat w fprintf out d n n for i 0 i n i fprintf out 4d n h i s fclose out 答案及评析 intfun STREC a STREC b int i j 0 min a 0 s for i 0 ia i s min a i s 找出最小值 for i 0 i N i if min a i s b j a i 找出成绩与min相等的学 生 的 记 录 存 入 构体b中 return j 返回最低成 绩 的 学 生 人 数 解析 该程序使用循环嵌套 第1个for语句的作用是找出最 小值 第2个循环的作用是找出与min相等的成绩 也即最低成绩 的学生记录 并存入b中 模拟试题 三 1 填空题 请补充函数fun 该函数的功能是 从 a 到 z 统计一个字符 串中所有字母字符各自出现的次数 结果保存在数组alf中 注意 不区分大小写 不能使用字符串库函数 例如 输入 abc 5 c 结果为 a 2 b 1 c 2 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的横线上填入所编写的若干表达式或语句 试题程序 include include defineN100 void fun char tt int alf int i char p tt for i 0 i A 3 main char str N char a a intalf 26 k clrscr printf nPlease enterachar string scanf s str printf n The original string n puts str fun str alf printf n The numberofletter n for k 0 k 26 k if k 5 0 printf n printf c d a k alf k printf n 答案及评析 1 alf i 0 2 p 32 3 p 解析 填空 1 数组 alf 26 用来存放字母字符出现的次数 在使用之前需要清零 填空 2 题目要求不区分大小写 所以可 以先将所有的大写字母都转换为对应的小写字母 然后一并记录 出现的次数 将大写字母转换为对应的小写字母 只需将 ASCII 码加上 32 就可以了 填空 3 指针 p 指向字符串 tt 通过 p 自 加 1 来移动指针 访问字符串中的所有字符 2 改错题 下列给定程序中函数fun 的功能是 从低位开始取出长整型 变量s中奇数位上的数 依次构成一个新数放在t中 例如 当s中 的数为4576235时 t中的数为4725 请改正程序中的错误 使它能得到正确结果 注意 不要改动main函数 不得增行或删行 也不得更改程 序的结构 试题程序 include include found int fun long s long t long s1 10 t s 10 while s 0 found s s 100 t s 10 s1 t s1 s1 10 main long s t clrscr printf nPlease enter s scanf ld fun s printf The result is ld n t 答案及评析 1 错误 int fun long s long t 正确 void fun long s long t 2 错误 s s 100 正确 s s 100 解析 错误1 函数由指针来完成参数的传递 所以没有返 回值 应定义函数的类型为void 错误2 此处要注意特殊运算符号 取余和 整除的区 别 将一个数整除100则可得到由其百位数以上的数组成的新数 字 将一个数整除100取余则可得到由十位数和个位数组成的新 数 3 编程题 请编写一个函数fun 它的功能是 求出一个4 M整型二维 数组中最小元素的值 并将此值返回调用函数 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的花括号中填入所编写的若干语句 试题程序 define M 4 include fun int a M main int arr 4 M 11 3 9 35 42 4 24 32 6 48 32 7 23 34 12 7 printf min d n fun arr 答案及评析 fun int a M int i j min a 0 0 for i 0 i 4 i for j 0 ja i j min a i j 求出二维数组的最 小 值 return min 解析 此类求最大值或最小值的C语言问题 我们可以采用 逐个比较的方式 要求数组中的所有元素走动一遍 并从中找出 最大 最小值 要注意一开始应使min存放数组中的第一个元素的 值 可按逐行查找也可按逐列查找的方式 本题采用的是逐行查 找的方式 即行下标在外层循环 列下标在内层循环 因为在循 环的嵌套中越在内层循环 循环变化就越快 模拟试题 四 1 填空题 请补充函数fun 该函数的功能是 分类统计一个字符串中 元音字母和其他字符的个数 不区分大小写 例如 输入aeiouAOUpqrt 结果为A 2E 1I 1O 2U 2 other 4 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的横线上填入所编写的若干表达式或语句 试题程序 include include defineN100 void fun char str int bb char p str inti 0 for i 0 i 6 i 1 while p switch p case A case a bb 0 break case E case e bb 1 break case I case i bb 2 break case O case o bb 3 break case U case u bb 4 break default 2 3 main char str N ss 6 AEIOU int i intbb 6 clrscr printf Inputastring n gets str printf the stringis n puts str fun str bb for i 0 i 5 i printf n c d ss i bb i printf nother d bb i 答案及评析 1 bb i 0 2 bb 5 3 p 解析 填空1 数组bb 6 用来存放5个元音字母和其他字 符的个数 在使用之前需要清零 填空 2 数组元素 bb 5 用来存放其他字符的个数 当指针 p 所 指的字符不是元音字母时 则认为是其他字符 bb 5 加 1 填空 3 指针 p 指向字符串 str 通过 p 自加 1 来移动指针 访问字符 串中的所有字符 2 改错题 下列给定的程序中 函数fun 的功能是 计算并输出k以内最 大的6个能被7或11整除的自然数之和 K的值由主函数传入 若k 的值为500 则函数的值为2925 请改正程序中的错误 使它能得到正确结果 注意 不要改动main函数 不得增行或删行 也不得更改程 序的结构 试题程序 include include int fun int k int m 0 mc 0 j found while k 2 正确 m m k 解析 错误1 C语言规定while语句后的表达式两侧必须要 有圆括号 错误2 if语句的判断条件应用关系运算符 而不是赋值运算 符 错误3 根据题意 将满足条件的数求累加和 3 编程题 请编写一个函数fun 它的功能是 将ss所指字符串中所有 下标为偶数位置的字母转换为小写 若该位置上不是字母 则不 转换 例如 若输入ABC4efG 则应输出aBc4efg 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的花括号中填入所编写的若干语句 试题程序 include include include void fun char ss main char tt 81 clrscr printf nPlease enter an string within 80 characters n gets tt printf n nAfter changing the string n s tt fun tt printf nbecomes n s n tt 答案及评析 void fun char ss int i for i 0 ss i 0 i 将ss所指 字符串中所有下标为偶数位置的字母转 if i 2 0 解析 从C语言的学习中我们知道 只要将小写字母减去32 则转成大写字母 将大写字母加上32则转成小写字母 该程序是 用if语句实现该功能转化的 模拟试题 五 1 填空题 str是全部由小写字母字符和空格字符组成的字符串 由num 传入字符串的长度 请补充函数fun 该函数的功能是 统计字 符串str中的单词个数 结果由变量num传回 每个单词之间都由 空格隔开 并且字符串str开始不存在空格 例如 str how do you do 结果为 num 4 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的横线上填入所编写的若干表达式或语句 试题程序 include defineN80 void fun char s int num inti n 0 for i 0 1 i if s i a 3 main char str N intnum 0 printf Enterastring n gets str while str num num fun str printf The numberofwordis d n n num 答案及评析 1 i num 2 n 3 num n 解析 填空 1 num 传入字符串的长度 所以 for 循环中变量 i 的变化范围是从 0 到 num 1 填空 2 如果当前判断的字符是 小写字母 并且它的下一个字符是空格或者是字符串结束标记 符 则表示当前字符是一个单词的最后一个字母 统计单词数的 变量 n 要加上 1 填空 3 题目要求结果由变量 num 传回 所以 要将 n 的值赋给指针 num 所指的单元 2 改错题 下列给定程序中 fun 函数的功能是 根据形参m 计算下列 公式的值 t 1 1 2 1 3 1 4 1 m 1 m 例如 若输入5 则应输出0 783333 请改正程序中的错误 使它能得到正确结果 注意 不要改动main函数 不得增行或删行 也不得更改程 序的结构 试题程序 include include found int fun int m double t 1 0 j 1 0 int i found for i 1 i m i j 1 j t j i return t main int m clrscr printf nPlease enter 1 integer number scanf d printf nThe result is lf n fun m 答案及评析 1 错误 int fun int m 正确 double fun int m 2 错误 for i 1 i m i 正确 for i 2 i m i 解析 错误 函数的返回值为实型数 所以应定义为double 类型 错误2 根据题目的公式 参加运算的数应从2到m 包括m 3 编程题 请编写函数fun 它的功能是 求出1到1000之内能被5或13 整除 但不能同时被5和13整除的所有整数并将它们放在a所指的 数组中 通过n返回这些数的个数 注意 部分源程序给出如下 请勿改动主函数main和其他函数中的任何内容 仅在函数fun 的花括号中填入所编写的若干语句 试题程序 include include void fun int a int n main int aa 1000 n k clrscr fun aa for k 0 k n k if k 1 10 0 printf 5d aa k printf n 一行写10个数 else printf 5d aa k 答案及评析 void fun int a int n int i j 0 for i 1 i 1000 i 求1到1000之内 能被5或13整除 但 不能同时被5和13整 除的所有整数 并放 入数组a中 if i 5 0 i 13 0 n j 传回满足条件的数的个数 解析 注意本题题目是找出能被5或13整除但不能同时被5 和13整除的所有整数 能同时被5和13整除的整数一定能被65整 除 且不能被65整除的数不一定就是能被5或13整除的数 所以可 得出程序中的if 按运算优先级可知 i 5 0 i 13 0 注意 两边必须要有小括号 模拟试题 六 1 填空题 str 是一个由数字和字母字符组成的字符串 由变量 num 传入字 符串长度 请补充函数 fun 该函数的功能是 把字符串 str 中 的数字字符转换成数字并存放到整型数组 bb 中 函数返回数组 bb 的长度 例如 str Bcd123e456hui890 结果为 123456890 注意 部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容 仅在函数 fun 的横线上填入所编写的若干表达式或语句 试题程序 include define N 80 int bb N int fun char s int bb int num int i n 0 for i 0 i num i if 1 bb n 2 n return 3 main char str N int num 0 n i printf Enter a string n gets str while str num num n fun str bb num printf nbb for i 0 i 0 int count 0 k i for k 0 k n k t s k ave t n for i 0 i n i found if s i ave count found aver ave return count main float s 30 aver int m i clrscr printf nPlease enter m scanf d printf nPlease enter d mark n m for i 0 i m i scanf f s i printf nThe number of students d n fun s m printf Ave f n aver 答案及评析 1 错误 int ave t 0 正确 float ave t 0 0 2 错误 if s i ave 3 错误 aver ave 正确 aver ave 解析 错误 1 ave 和 t 分别用来存放成绩的平均值和总分 应 为实型数 错误 2 根据题意 找出高于平均分的数 所以此处的关系运算 符应为 错误 3 aver 是指针 而 ave 是一个数 不能将一个数赋值给一 个指针 而要用符号 3 编程题 请编写一个函数 fun 它的功能是 比较两个字符串的长度 不 得调用 C 语言提供的求字符串长度的函数 函数返回较短的字 符串 若两个字符串长度相等 则返回第 1 个字符串 例如 输入 nanjing nanchang 为回车键 函 数将返回 nanjing 注意 部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容 仅在函数 fun 的花括号中填入所编写的若干语句 试题程序 include char fun char s char t main char a 20 b 10 p q int i printf Input 1th string gets a printf Input 2th string gets b printf s fun a b 答案及评析 char fun char s char t int i j for i 0 s i 0 i 求字符串的长度 for j 0 t j 0 j if i j 比较两个字符串的长度 return s 函数返回较短的字符串 若两个字符串长度 相等 则返回第 1 个字符串 else return t 解析 本题中 第 1 个 for 循环的作用是求出 s 的字符个数 i 第 2 个 for 循环的作用是求出 t 的字符个数 j 因为任何循环都要 控制一条语句 所以在每一个 for 循环条件后面必须要有一个分 号 本题也可用如下技巧 include 一定要注意在最前面加 include char fun char s char t if strlen s strlen t return s else return t 模拟试题 七 1 填空题 从键盘输入一组无符号整数并保存在数组 xx N 中 以整数 0 结 束输入 要求这些数的最大位数不超过 4 位 其元素的个数通过 变量 num 传入函数 fun 请补充函数 fun 该函数的功能是 从数组 xx 中找出个位和十位的数字之和大于 5 的所有无符号整 数 结果保存在数组 yy 中 其个数由函数 fun 返回 例如 当 xx 8 123 11 25 222 42 333 14 5451 时 bb 4 25 42 333 5451 注意 部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容 仅在函数 fun 的横线上填入所编写的若干表达式或语句 试题程序 include defineN1000 int fun int xx int bb int num int i n 0 int g s for i 0 i5 2 return 3 main int xx N int yy N int num 0 n 0 i 0 printf Input number n do scanf u while xx num 0 n fun xx yy num printf nyy for i 0 i n i printf u yy i 答案及评析 1 xx i 10 2 bb n xx i 3 n 解析 填空 1 将一个整数对 10 取余 则得到这个整数的个位 数 将一个整数除以 10 再对 10 取余 则得到这个整数的十位数 由程序可以看出 变量 s 保存了整数的十位数 所以应该将整数 的个位数保存于变量 g 中 填空 2 当整数的个位与十位的数字 之和大于 5 时 则将这个整数存于数组 bb 中 同时 变量 n 记 录了满足条件的无符号整数的个数 填空 3 题目要求满足条件 的无符号整数的个数由 fun 函数返回 所以函数返回 n 2 改错题 下列给定程序中 函数 fun 的功能是 在字符串 str 中找出 ASC 码值最小的字符 将其放在第一个位置上 并将该字符前的原 字符向后顺序移动 例如 调用 fun 函数之前给字符串输入 fagAgBDh 调用后字符串中的内容为 AfaggBDh 请改正程序中的错误 使它能得到正确结果 注意 不要改动 main 函数 不得增行或删行 也不得更改程序 的结构 试题程序 include found void fun char p char min q int i 0 min p i while p i 0 if min p i found p q i min p i i while q p q q 1 q p 0 min main char str 80 printf Enter a string gets str printf nThe original string puts str fun str printf nThe string after moving puts str printf n n 答案及评析 1 错误 void fun char p 正确 void fun char p 2 错误 p q i 正确 q p i 解析 错误 由于本题中函数的功能是对字符串进行处理 而 不是对单个字符进行处理 因此 函数的参数应为字符串指针 错误 2 使指针 q 指向 ASCII 码最小的字符 本题解答需要 3 个步骤 1 找到字符串中 ASCII 码值最小的字符 并保存 2 将该字符复制 并将该字符前面的字符串顺次后移 3 将 ASCII 码值最小的字符赋给字符串的第 1 个字符 找到 ASCII 码值最小的字符可以通过定义一个字符 min 该字符初始 时等于字符串的第 1 个字符 若字符串的下一个字符小于 min 则将下一个字符赋给 min 如此循环到字符尾 即可得到 ASCII 码值最小的字符 同时令指针 q 指向最小字符 之后对最小字符 前面的子串顺次后移 可采用 while 语句实现 此题需要熟练掌握和灵活应用C语言的字符与整型变量的关系以 及字符串操作 3 编程题 N 名学生的成绩已在主函数中放入一个带头节点的链表结构中 h 指向链表的头节点 请编写函数 fun 它的功能是 找出学生 的最低分 由函数值返回 注意 部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容 仅在函数 fun 的花括号中填入所编写的若干语句 试题程序 include include defineN8 structslist doubles struct slist next typedef struct slistSTREC double fun STREC h STREC creat double s STREC h p q inti 0 h p STREC malloc sizeof STREC p s 0 while is s i i p next q p q p next NULL returnh 返回链表的首地址 outlist STREC h STREC p p h printf head do printf 2 0f p s p p next 输出各分数 while p NULL printf n n main double s N 56 89 76 95 91 68 75 85 min STREC h h creat s outlist h min fun h printf min 6 1f n min 答案及评析 double fun STREC h double min h s while h NULL 通过循环找到最低分数 if min h s min h s h h next return min 解析 在本题中 h 为一个指向结构体的指针变量 若要引用 它所指向的结构体中的某一成员时 要用指向运算符 由于 是链表 所以要使 h 逐一往后移动 使用的是 h h next 模拟试题 八 1 填空题 请补充函数 fun 该函数的功能是判断一个数的个位数字和百位 数字之和是否等于其十位上的数字 是则返回 yes 否则返回 no 注意 部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容 仅在函数 fun 的横线上填入所编写的若干表达式或语句 试题程序 include include char fun int n int g s b g n 10 s n 10 10 b 1 if g b s return 2 else return 3 main int num 0 clrscr printf Input data n scanf d printf n n n printf The result n printf n n n s fun num 答案及评析 1 n 100 10 2 yes 3 no 解析 填空 1 由程序可以知道 变量 g 保存了整数的个位数 变量 s 保存了整数的十位数 所以变量 b 应该保存整数的百位数 将整数除以 100 再对 10 取余 则得到这个整数的百位数 填空 2 当个位数字和百位数字之和等于十位数字时 则返回 yes 填空 3 当个位数字和百位数字之和不等于十位数字时 则返回 no 2 改错题 下列给定的程序中 函数 fun 的功能是 用选择法对数组中的 n 个元素按从大到小的顺序进行排序 请改正程序中的错误 使它能得到正确结果 注意 不要改动 main 函数 不得增行或删行 也不得更改程序 的结构 试题程序 include define N 20 void fun int a int n int i j t p found for j 0 j n 1 j p j for i j ia p p i t a p a p a j found a p t main int a N 11 32 5 2 14 i m 5 printf 排序前的数据 for i 0 i m i printf d a i printf n fun a m printf 排序后的顺序 for i 0 i m i printf d a i printf n 答案及评析 1 错误 for j 0 j n 1 j 正确 for j 0 j n 1 j 2 错误 a p t 正确 a j t 解析 错误 1 根据 C 语言语法 for 循环中循环条件后不加分 号 除非做空操作 错误 2 将两数进行交换的常用语句 借助第三个变量 3 编程题 下列程序定义了 N N 的二维数组 并在主函数中赋值 请编写 函数 fun 函数的功能是 求出数组周边元素的平方和并作为函 数值返回给主函数中的 s 例如 若 a 数组中的值为 a 01279 1112155 2216111 979102 54141 则返回主程序后 s 的值应为 310 注意 部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容 仅在函数 fun 的花括号中填入所编写的若干语句 试题程序 include include include defineN5 int fun int w N main int a N N 0 1 2 7 9 1 11 21 5 5 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论