【计算机类职业资格】二级C语言机试-254及答案解析.doc

上传人:赵齐羽 文档编号:1325727 上传时间:2019-10-17 格式:DOC 页数:6 大小:31.50KB
下载 相关 举报
【计算机类职业资格】二级C语言机试-254及答案解析.doc_第1页
第1页 / 共6页
【计算机类职业资格】二级C语言机试-254及答案解析.doc_第2页
第2页 / 共6页
【计算机类职业资格】二级C语言机试-254及答案解析.doc_第3页
第3页 / 共6页
【计算机类职业资格】二级C语言机试-254及答案解析.doc_第4页
第4页 / 共6页
【计算机类职业资格】二级C语言机试-254及答案解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、二级 C 语言机试-254 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)请补充 main()函数,该函数的功能是:把一个二维字符数组每行字符串中最大的字符复制到字符数组 s中。例如,如果 arr3=“hoih“, “yufui“, “xgf“,则 str=“oyx“。注意:部分源程序已给出。请勿改动主函数 main 和其他函数中的任何内容。试题程序:#includestdlib.h#includestdio.hvoid main()int i=0;char *arr3=“hoih“, “yufui“, “xgf“; char *p;char

2、str8;system(“CLS“);(1) ;for(i=0; i3; i+)stri= *pi;while(* pi)if (stri*pi)stri=*pi;(2) ;(3) ;printf(“new string/n“);puts(str);(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、改错题(总题数:1,分数:30.00)1.下列给定程序中,函数 proc()的功能是:先从键盘上输入一个 3 行 3 列的矩阵的各个元素的值,然后输出主对角线元素之积。请修改函数 proc()中的错误,使它能得出正确的结果。注意:不要改动 main()函数,不得增行或删行,也不得更改

3、程序的结构。试题程序:#includestdio.hvoid proc()int arr33, mul;int i, j;mul=1;printf(“please input an 3*3 array: /n“);for(i=0; i3; i+)/*found*for(i=0; j3; j+)scanf(“%d“, arrij);for(i=0; i3; i+)/*found*mul=mul*arrij;printf(“Mul=%d/n“, mul);void main()proc();(分数:30.00)填空项 1:_三、编程题(总题数:1,分数:40.00)2.请编写一个函数 unsign

4、ed proc(unsigned u),u 是一个大于 10 的无符号整数,若 u 是 n(5n2)位的整数,则函数求出 u 的后 n-1 位的数作为函数值返回。例如,u 值为 1234,则函数返回 234;若 u 值为 234,则函数返回 34。注意:部分源程序已给出。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 proc 的花括号中填入所编写的若干语句。试题程序:#includestdlib.h#includeconio.h)#includestdio.hunsigned proc(unsigned u)void main()unsigned x;system(“CLS“);

5、printf(“Enter a unsigned integer number: “);scanf(“%u“, x);printf(“The original data is:%u/n“, x);if(x10)printf(“Data error!“);elseprintf(“The result: %/kn“, proc(x);(分数:40.00)_二级 C 语言机试-254 答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)请补充 main()函数,该函数的功能是:把一个二维字符数组每行字符串中最大的字符复制到字符数组 s中。例如,如果 arr3

6、hoih“, “yufui“, “xgf“,则 str=“oyx“。注意:部分源程序已给出。请勿改动主函数 main 和其他函数中的任何内容。试题程序:#includestdlib.h#includestdio.hvoid main()int i=0;char *arr3=“hoih“, “yufui“, “xgf“; char *p;char str8;system(“CLS“);(1) ;for(i=0; i3; i+)stri= *pi;while(* pi)if (stri*pi)stri=*pi;(2) ;(3) ;printf(“new string/n“);puts(str)

7、分数:30.00)填空项 1:_ (正确答案:p=arr)解析:填空项 1:_ (正确答案:pi+)解析:填空项 1:_ (正确答案:stri=/0)解析:解析 由程序可知,变量 p 指向的二维数组的首地址,因此1处填 p=arr;要找出二维数组中每一行的最大字符,就要检查每一行的每一个字符,因此2处填 pi+;最后要为得到的结果字符串加上结束符,因此3处填 stri=/0。二、改错题(总题数:1,分数:30.00)1.下列给定程序中,函数 proc()的功能是:先从键盘上输入一个 3 行 3 列的矩阵的各个元素的值,然后输出主对角线元素之积。请修改函数 proc()中的错误,使它能得出正

8、确的结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#includestdio.hvoid proc()int arr33, mul;int i, j;mul=1;printf(“please input an 3*3 array: /n“);for(i=0; i3; i+)/*found*for(i=0; j3; j+)scanf(“%d“, arrij);for(i=0; i3; i+)/*found*mul=mul*arrij;printf(“Mul=%d/n“, mul);void main()proc();(分数:30.00)填空项 1:_ (

9、正确答案:(1)错误:for(i=0; j3; j+) 正确:for(j=0; j3; j+)(2)错误:mul=mul*arrij; 正确:mul=mul*arrii;)解析:解析 由函数 proc 可知,变量 i,j 分别表示二维数组的行和列,从键盘输入二维数组的元素是按行输入的。因此 for(i=0; j3; j+)应改为 for(j=0; ja; j+);二维数组主对角线上元素的两个下标是相等的,因此 mul=mul*arrij;应改为 mul=mul*arrii。三、编程题(总题数:1,分数:40.00)2.请编写一个函数 unsigned proc(unsigned u),u 是一

10、个大于 10 的无符号整数,若 u 是 n(5n2)位的整数,则函数求出 u 的后 n-1 位的数作为函数值返回。例如,u 值为 1234,则函数返回 234;若 u 值为 234,则函数返回 34。注意:部分源程序已给出。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 proc 的花括号中填入所编写的若干语句。试题程序:#includestdlib.h#includeconio.h)#includestdio.hunsigned proc(unsigned u)void main()unsigned x;system(“CLS“);printf(“Enter a unsigned

11、 integer number: “);scanf(“%u“, x);printf(“The original data is:%u/n“, x);if(x10)printf(“Data error!“);elseprintf(“The result: %/kn“, proc(x);(分数:40.00)_正确答案:(unsigned proc(unsigned u)if(u=10000) /此时 w 为 5 位,则返回其后的 4 位return u% 10000;if(u=1000) /此时 w 为 4 位,则此时返回其后的 3 位return u%1000;if(u=100) /此时 w 为 3 位,则返回其后的 2 位return u%100;if(u=10) /此时 w 为 2 位,则返回其后的 1 位return u%10;)解析:解析 要返回无符号整数的后 n-1 位,首先要判断无符号整数的位数,然后通过求余来实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1