11--20编程答案.doc

上传人:公**** 文档编号:562179473 上传时间:2023-04-29 格式:DOC 页数:4 大小:25.90KB
返回 下载 相关 举报
11--20编程答案.doc_第1页
第1页 / 共4页
11--20编程答案.doc_第2页
第2页 / 共4页
11--20编程答案.doc_第3页
第3页 / 共4页
11--20编程答案.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《11--20编程答案.doc》由会员分享,可在线阅读,更多相关《11--20编程答案.doc(4页珍藏版)》请在金锄头文库上搜索。

1、编程答案110000000000【参考答案】int fun( STREC *a, STREC *b ) int i,j=0,max=a0.s; /*找出最大值*/ for(i=0;iN;i+) if(maxai.s) max=ai.s; for(i=0;iN;i+) if(max=ai.s) bj+=ai; /*找出成绩与max相等的学生的记录,存入结构体b中*/ return j; /*返回最高成绩的学生人数*/【考点分析】本题考查:结构体数组操作。用循环判断结构查找数组中的最大值。【解题思路】该程序使用两个循环判断语句,第1个循环判断语句的作用是找出最大值。第2个循环判断语句的作用是找出与

2、max相等的成绩(即最高成绩)的学生记录,并存入b中。【解题宝典】对于如何找出数组中最大值(多个相等)的方法,我们已经不陌生。如果是对结构体数组进行类似操作呢?掌握以下语句:for(i0;iN;i) if(maxais) maxais; 12000000000000【参考答案】void fun( char *a ) int i=0; char *p=a; while(*p&*p=*) ai=*p; i+; p+; while(*p) if(*p!=*) ai=*p;i+; p+; ai=0;【考点分析】本题考查:指针型变量定义;while循环语句;if语句条件表达式;字符串结束标识0。【解题思

3、路】函数fun的功能:除了字符串前导的*号之外,将串中其他*号全部删除。解答本题,(1) 定义一个临时指针p,初始指向原串首地址;(2) 利用循环语句把字符串前导*号拷贝到原串;(3) 继续移动指针,把串中和串尾的非*号字符拷贝到原串;(4)为修改后的字符串赋结束字符0。【解题宝典】要删除字符串中的指定字符,我们通常采用保留非指定字符的方法。可以将非指定字符保留在原串,即将需要保留的字符从原串的起始位置重新赋值;也可以保留到新串,即新建一个字符串,存放要保留的字符。1300000000000000【参考答案】void fun(char *tt, int pp)int i; for(i=0;i=

4、a&*tt=z) pp*tt-a+; 【考点分析】本题考查:for循环语句,注意循环变量取值范围以及循环体语句作用;数组元素初始化和赋值操作;if语句条件表达式,需注意条件表达式的逻辑运算;字符串结束标识0。【解题思路】要求统计在tt所指字符串中az26个小写母各自出现的次数,并依次放在pp所指数组中。首先使用for循环语句初始化pp数组中分别用来统计26个字母的个数,再使用循环判断语句对tt所指字符串中的字符进行逐一比较操作,同时存入相对应的pp数组中。1400000000000000【参考答案】void fun( char *a ) while(*a!=0) a+; a-; /*指针a指向

5、字符串的尾部*/ while(*a=*) a-; /*指针a指向最后一个字母*/ *(a+1)=0; /*在字符串最后加上结束标志符*/【考点分析】本题考查:删除字符串尾部*号;删除的主要思想是把不删除的字符保留起来。【解题思路】对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号0。具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非*号字符为止,最后在该字符后面加上结束符号0。 150000000000000000【参考答案】char *fun ( char *s, char *t) int i,j; for(i=0;si!

6、= 0;i+); /*求字符串的长度*/ for(j=0;tj!= 0;j+); if(i=j) /*比较两个字符串的长度*/ return t; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return s;【考点分析】本题考查:字符串长度比较运算,使用循环语句实现,应注意其循环 条件。【解题思路】本题中,第1个for循环的作用是求出s串的字符个数i,第2个for循环的作用是求出t串的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环语句后面加上一个分号以结束循环。16000000000000000000000【参考答案】 STREC fu

7、n( STREC *a, char *b )int i; STREC str=0,-1; /*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置1*/ for(i=0;i字符数组2,函数值大于0(正数);若字符数组1字符数组2,函数值等于0;若字符数组1=1e-6);return x1;【考点分析】本题考查:迭代法求方程的实根;dowhile循环语句,其形式为: do 语句 while(表达式);dowhile循环与while循环的不同在于,它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, dowhile循环至少要执行一次循环语句。【解

8、题思路】用迭代方法求方程的一个实根,题目已经给出了算法,只要按照算法用合适的程序表达,就可以解题了。19000000000000000000000000000000000000000000000【参考答案】void fun( char *a )int i=0,n=0;char *p;p=a;while (*p=*) /*判断*p是否是*号,并统计*号的个数*/ n+;p+;while(*p) /*将前导*号后的字符传递给a*/ ai=*p;i+;p+;while(n!=0)ai=*;i+;n-;ai=0;【考点分析】本题考查:移动字符串中指定字符的位置,一般采用while循环语句,通过指针型变量来完成。【解题思路】函数fun的功能:将字符串中的前导*号全部移到字符串的尾部。本题解题思路:(1)定义一个指针并指向字符串的首地址;(2)利用循环语句找出字符串的前导*号的个数n;(3)利用循环语句把剩余的字符拷贝到另一个字符串中;(4)在字符串的末尾接上n个*号。200000000000000000000000000000【参考答案】void fun(int a, int b, long *c)*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000; 【考点分析】本题考查:如何取出

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

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

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