




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
56号试题程序填空题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。#include #include #define N 8typedef struct char num10; int year,month,day ;STU;/*found*/【1】 fun(STU *std, char *num) int i; STU a=,9999,99,99; for (i=0; i字符数组2,函数值大于0(正数);若字符数组1字符数组2,函数值等于0;若字符数组1字符数组2,函数值小于0(负数)。【解题思路】填空1:根据函数fun的返回值类型可知,函数类型标识符应该是结构体类型的,所以填入STU。填空2:根据题目说明,找出指定编号人员,并将其数据返回。通过strcmp函数比较编号,若相同则函数值为0,所以填入stdinum。 填空3:由题目可知,假如编号对应,则返回其编号对应数据,所以填入数据stdi。二程序改错题下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数返回值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3.请改正程序中的错误,使它能得出正确的结果。#include #include #include #include int fun (char *s, char *t)int n; char *p, *r; n=0; while(*s) p=s; r=t; while (*r)/*found*/ if(*r=*p) r+; p+ else break;/*found*/ if(r=0) n+; s+; return n;void main( )char s100, t100; int m; system(CLS); printf(nPlease enter string s: );scanf(%s,s); printf(nPlease enter substring t: );scanf (%s,t); m=fun(s,t); printf(nThe result is: m=%dn, m);【参考答案】(1)if(*r=*p) r+;p+; (2)if(*r=0)【考点分析】本题考查:if语句,考生需要根据题意确定if语句的判断条件;字符串结束标识,所有的字符串都要以0结尾,上机考试常考知识点,考生一定要牢记;复合赋值运算,常用于循环控制和变量的累加、累乘。【解题思路】 从字符串s中找出子串t的方法是:从第1个字符开始,对字符串进行遍历,若s串的当前字符等于t串的第1个字符,两个字符串的指针自动加1,继续比较下一个字符;若比较至字符串t的结尾,则跳出循环;若s串的字符与t串的字符不对应相同,则继续对s串的下一个字符进行处理。三程序设计题请编写函数fun,该函数的功能是:将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符B的ASCII码值为偶数,字符2的ASCII码值为偶数,都应当删除,其他依次类推。最后t所指的数组中的内容应是“ACEG135”。#include#include#include#includevoid fun(char *s, char t) void main() FILE *wf; char s100,t100; system(CLS); printf(nPlease enter string S: ); scanf(%s,s); fun(s,t); printf(nThe result is :%sn,t);/*/ wf=fopen(out.dat,w); fun(ABCDEFG12345,t); fprintf(wf,%s,t); fclose(wf);/*/【参考答案】void fun(char *s, char t) int i=0; for(;*s!=0;s+) /*找出ASCII值为奇数的字符依次存入数组t中*/ if(*s%2=1) ti+=*s; ti=0; /*在字符串的末尾加上串结束符*/【考点分析】本题要求将s所指字符串中ASC码值为偶数的字符删除,因此本题要求采用一个for循环来找出ASC码值为奇数的字符依次存入数组t中,并使用if条件句来判断s所指字符串中ASC码值是否为奇数。用0加在字符串的末尾来表示字符串的结束。【解题思路】要删除ASCII码值为偶数的字符,也就是要留下ASCII码值为奇数的字符。由于最终是要求出剩余字符(即ASCII码值为奇数)形成的新串,所以本题程序的算法是对原字符串从头到尾扫描,并找出ASCII码值为奇数的字符并将其依次存入数组t中。此外,还要注意数组t的下标变化和下标的初值(初值必须为0,即i0),ti的作用是先使用ti,然后再使i自增1。57号试题一 程序填空题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。#include #define N 8typedef struct int num; int year,month,day ;STU;int fun(STU *std, STU *k, int year) int i,n=0; for (i=0; iN; i+)/*found*/ if( _1_=year)/*found*/ kn+= _2_;/*found*/ return (_3_);main() STU stdN= 1,1984,2,15,2,1983,9,21,3,1984,9,1,4,1983,7,15, 5,1985,9,28,6,1982,11,15,7,1982,6,22,8,1984,8,19; STU kN; int i,n,year; printf(Enter a year : ); scanf(%d,&year); n=fun(std,k,year); if(n=0) printf(nNo person was born in %d n,year); else printf(nThese persons were born in %d n,year); for(i=0; in; i+) printf(%d %d-%d-%dn,ki.num,ki.year,ki.month,ki.day); 【参考答案】(1)stdi.year(2)stdi(3)n【考点分析】本题考查:数组变量判断;for循环语句;函数返回值。【解题思路】本题要求从给定的人员数据中找出与指定出生年份相同的记录存入k中,并返回符合条件的人数。填空1:此空判断结构体变量中的年份与year是否相等,所以应填stdiyear。填空2:把符合条件的记录依次存入实参k中,所以应填stdi。填空3:函数返回符合满足条件的人数,所以应填n。二 程序改错题下列给定程序的功能是:读入一个整数(2=k=10000),输出它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2,3,5,7,11。请改正程序中的错误,使它能得出正确的结果。#include #include /*found*/IsPrime(int n); int i,m; m=1; for(i=2;in;i+) /*found*/ if!(n%i)m=0;break; return(m);main() int j,k; printf(nPlease enter an interger number between 2 and 10000: ); scanf(%d,&k); printf(nThe prime factor(s) of %d is(are): ,k); for(j=2;jk;j+) if(!(k%j) & (IsPrime(j)printf(%4d,j); printf(n);【参考答案】(1)IsPrime(int n)(2)if(!(n%i)【考点分析】本题考查:函数定义的格式;if条件的判断语句,这些知识点必须掌握,因为经常考到。【解题思路】(1)函数定义格式错误,函数定义时后面不能加;,所以应该去掉分号。(2)根据题意可知,if条件语句判断n是否可以整除i,如果不能整除则为质因子,所以if!(n%i) 应改为 if(!(n%i)。三 程序设计题已知学生的记录由学号和成学习绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。#include#include#include#include#define N 10typedef struct ss /*定义结构体*/ char num10; int s; STU;fun(STU a, STU *s) void main() FILE *wf; STU aN= A01,81, A02,89, A03,66, A04,87, A05,77, A06,90, A07,79, A08,61, A09,80, A10,71,m; int i; system(CLS); printf(*The original data*); for(i=0;iN;i+) printf(No=%s Mark=%dn,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高校发文管理办法
- 城市快速路隧道安全设施改造项目涉路工程安全评价
- 陕西防疫管理办法
- 中储粮资格管理办法
- 温岭市渣土管理办法
- 石家庄食堂管理办法
- 竞争性谈判管理办法
- 环评新资质管理办法
- 生态林资金管理办法
- 福建省暂住管理办法
- 理疗店合伙协议合同范本
- 2025年施工员-土建方向-岗位技能(施工员)考试题库
- 2025年度跨境电商平台合作运营合同
- 2024广西专业技术人员继续教育公需科目参考答案(97分)
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 施工班组考核评分表
- 干式喷漆房的安全操作规程
- 【屈原列传】原文及译文
- 山东省普通高中学生发展报告
- 航运上市公司的绩效评价概述
- 初中虚拟语气讲解PPT精品文档
评论
0/150
提交评论