二级C语言机试-72.doc

上传人:scccc 文档编号:14014850 上传时间:2022-01-30 格式:DOC 页数:5 大小:38.50KB
返回 下载 相关 举报
二级C语言机试-72.doc_第1页
第1页 / 共5页
二级C语言机试-72.doc_第2页
第2页 / 共5页
二级C语言机试-72.doc_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《二级C语言机试-72.doc》由会员分享,可在线阅读,更多相关《二级C语言机试-72.doc(5页珍藏版)》请在三一文库上搜索。

1、二级C语言机试-72(总分:100.00,做题时间:90分钟)一、填空题(总题数:1,分数:33.00)1. 请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2倒置后接在字符串strl后面例如:str仁 “How de”,str2= “?od uoy ,结果输出:“ How do you do? ”。注意:部分源程序给岀如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序:#include #include #define N 40void fun(char *str1 ,char *str2)int i=0

2、,j=0, k=0,n;char ch ;char *p1=str1;char *p2=str2;while(*(p1+i)i+ ;while(*(p2+j)j+ ;n=【1】;for(;k=j/2 ; k+,j-)ch=*(p2+k);*(p2+k)=*(p2+j);*(p2+j)=ch ;【2】;for(;【3】;i+)*(p1+i)=*p2+;*(p1+i)=/0;main() char str1N ,str2N;int m ,n,k;clrscr() ;printf(*Input the string str1 & str2*/n);printf(/nstr1:);gets(str1)

3、 ;printf(/nstr2:);gets(str2);printf(*The string str1 & str2 */n)puts(str1);puts(str2);fun(str1 , str2) ; printf(* The new string */n) puts (str1) ;(分数: 33.00 )填空项 1: (正确答案:【 1】 j-【2】*(p2+n)=/0【3】*p2 )解析: 解析 填空 1:while 循环执行后,变量 j 中保存了字符串 str2 的长度,而后面的 for 循环是将字 符串 str2 倒置, 即将第一个字符与最后一个字符对调, 第二个字符与倒数第

4、二个字符对调, 如此循环直到 中间的字符。 第一次执行循环时, *(p2+j) 指向最后一个字符, 所以 j 要减 1,并将未减 1 之前的数赋给 n。 填空 2:将字符串 str2 倒置后, 在字符串的最后要加上结束标记符, /0 。填空 3:当 *p2 所指的字符为, /0 时,说明已经将倒置后的字符串 str2 都接在字符串 str1 后面了, for 循环应该结束。 当 *p2 所指的为 其他字符时, for 循环要继续执行。二、改错题 ( 总题数: 1,分数: 33.00)2. 下列给定程序中,函数 fun()的功能是找出100n(n不大于1000)之间百位数字加十位数字等于个位数

5、字的所有整数,把这些整数放在 s 所指的数组中,个数作为函数值返回。请改正程序中的错误,使它能得到正确结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题程序:#include #define N 100int fun(int *s , int n)int i , j , k, a, b, c;j=0 ;for(i=100 ;i n;i+)*found*k=n ; a=k%10; k/=10 ; b=k%10; c=k/10 ; if(a=b+c) sj=i return j main()*found*int aN , n, num=0, i ;doprintf(

6、/nEnter n( 1000);num=fun(a ,n) ; printf(/n/nThe result : /n) ;for(i=0 ; i num i+)printf(%5d ,ai);printf(/n/n) ;(分数: 33.00 )填空项 1: (正确答案: (1) 错误: k=n; 正确: k=i ;(2) 错误: sj=i ; 正确: sj+=i;)解析:解析错误1: k就是当前要被判断的数,是随着 i值的变化而变化的。错误 2:在循环中,j是数 组的下标要递增。三、编程题 (总题数: 1,分数: 34.00)3. 程序定义了 NXN的二维数组,并在主函数中自动赋值。请编写函

7、数 fun(int aN, int n) ,该函数的功能是使数组左下半三角元素中的值加上 n。例如:若n的值为3, a数组中的值为a=2 5 41 6 95 3 7则返回主程序后 a 数组中的值应为5 5 44 9 98 6 10注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 full 的花括号中填入所编写的若干语句。 试题程序:#include #include #include #define N 5fun(int aN, int n) main()int aNN, n, i , j ;clrscr() ;printf(* The array */n)

8、for(i=0 ; i N; i+)/* 产生个随机 5*5 矩阵 */for(j=0 ; j =5); printf(n=%4d/n ,n) ; fun(a ,n) ;printf(*THE RESULT*/n)for(i=0 ; i v N; i+)for(j=0 ; j v N; i+) printf(%4d ,aij);printf(/n) ;分数: 34.00 ) 正确答案: (fun (int a N, int n)int i,j;for(i=0; iv N; i+)for(j=0; jvi; j+)aij=aij+n /*使数组左下半三角元素中的值加上 n*/)解析:解析首先从数组中找出要被加上n的那部分元素,找的过程其实就是找出将被挑出的那部分元素在原数组中的分布规律的过程。通过观察得出,要被处理的那部分元素的下标值的范围是每行中从第一个 元素开始,直到列数等于该行行数时为止。找到这个规律后,依次从数组中取得合乎要求的元素,然后再 加上 n。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1