二级C语言机试-143

上传人:cn****1 文档编号:509897335 上传时间:2023-08-29 格式:DOC 页数:4 大小:34.50KB
返回 下载 相关 举报
二级C语言机试-143_第1页
第1页 / 共4页
二级C语言机试-143_第2页
第2页 / 共4页
二级C语言机试-143_第3页
第3页 / 共4页
二级C语言机试-143_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《二级C语言机试-143》由会员分享,可在线阅读,更多相关《二级C语言机试-143(4页珍藏版)》请在金锄头文库上搜索。

1、二级C语言机试-143(总分:100.00,做题时间:90分钟)一、填空题(总题数:1,分数:30.00)1. 请补充函数fun(),该函数的功能是:把数给aa中元素下标为奇数的元素按从大到小的顺序重新保存在原数组中,其它元素位置不变。例如,输入“ 33, 67,42, 58, 25,76, 85, 16,41,56”,则输出“ 33, 76, 42,67, 25, 58,85,56, 41, 16”。注意:部分源程序给岀如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序:#include #define N 10void f

2、un(int aa)int i, j, t;for (【1】;i N; i=i+2)for(j=i; j N; j=j+2)if (aa i aaj)aa j=aai;main()int i;int aaN=33, 67, 42, 58, 25, 76, 85, 16, 41,56;clrscr();printf(/n* original list */n);for (i=0;i N; i+)printf (%4d,aai);fun (aa);printf(/n* new list */n);for (i=0; i N; i+)printf (%4d,aa i);(分数:30.00 )填空项

3、1: (正确答案:1 i=1 2 t=aaj 3 aai=t)解析:解析填空1:本题采用选择法进行排序。因为题目要求将下标为奇数的元素进行排序,所以下标为0的元素不用考虑,从下标为1的元素开始。填空2 :借助第三个变量t交换两数。首先将 aaj赋给t暂存。填空 3:然后将 aai 赋给 aaj 此时 aaj 中的数已经发生变化,而 t 中暂存了 aj 原来的值,所 以最后将 t 赋给 aai 。二、改错题 ( 总题数: 1,分数: 30.00)2. 下列给定程序中,函数fun()的功能是:从N个字符串中找出最长的那个中,并将其地址作为函数值返 回。各字符串在主函数中输入,并放入一个字符串数组中

4、。请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #define N 5#define M 81*found*fun(char (*sq) N)int i; char *sp;sp=sq0;fori=0;i N;i+) if(strlen(sp) strlen(sqi)sp=sqi;*found*return sq;main ()char strNM, *longest; int i; printf(Enter %d lines:/n ,N); for(i=0;i N;i+) get

5、s(stri);printf(/nThe %d string :/n ,N); for(i=0;i N;i+) puts(stri);longest=fun(str);printf(/nThe longest string :/n ); puts(longest);(分数: 30.00 )填空项 1: (正确答案: fun(char(*sq)N 正确: char*fun(char(*sq)M)(2) 错误: return sq ; 正确: return sp ;)解析:解析函数fun()的肜参为字符串指针数组,每个元素指向一个长度为M的字符串。从主函数中的语句可以看出,字符串指针数组的每个元素

6、指向一个字符串,要求函数fun() 找出其中最长的字符串。可先假设指针数组的第 1 个元素所指的字符串最长,之后对字符串指针数组进行遍历,若遇字符串长度大于 待定最长字符期,则令该字符串为待定最长字符串,如此循环直至指针数组末尾,即可得到最氏字符中的 地址。三、编程题 (总题数: 1,分数: 40.00)3. 下列程序定义了 Nxn的二维数组,并在主函数中自动赋值。请编写函数fun(int aN,int n),该函数的功能是:使数字右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为a=1 92 7 则返回主程序后 a 数组的值应为2 182 14 注意:部分源程序给出如下请勿改动主

7、函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句 试题程序:#include #include #include #define N 5 int fun(int a N, int m) main()int aN N,m, i, j; clrscr ();printf *The array*/n); for (i=O; i N; i+)/*输出一个随机的5X5矩阵*/ for(j=0; j =3); /* 产生一个上于 3 的随机数 */ printf (m=%4d/n, m);fun (a,m); printf (THE RESULT/n);for (i

8、=0; i N; i+) for(j=0;j N;j+) printf (%4d,ai j); printf (/n);分数: 40.00 ) 正确答案: (int fun(int a N, int m)int i,j;for (i=0; iN; i+)for (j=i; jN; j+)a i j =a i j *m; /*右上半三角元素中的值乘以 m*/)解析:解析本题考查表示右上关三角元素的算法。行下标肯定是从0到N-1 ,而列下标要根据行下标来中有 j=i( 不是 1);若要i 行时列只到 i 。所以要定,当到第 i 行时列下标要从第 i 列开始,所以我们在编写程序时,第 2 个 for() 表示左下半三角元素时,行下标也是从 0 到 N-1 ,列下标也是从 0 开始,但当到第 把上述的第2个for()改成for(j=0;j =i;+)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号