已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上机题要求(不要交作业)1、 做2008春C07“上机套题”;(思考:改错题中有什么值得参考的和借鉴的?)下面两题在软件安装后,可查阅“C:江苏省高校计算机C语言练习系统历年二级C语言操作题2009秋上机题”下两套上机题2、 选做题(数制变换2009春C01编程题):由2009秋C02改错题设想上机编程题程序功能:十进制数转换为以数组形式表示的十六、八、二进制数形式的字符串编程要求:1、编写函数void dtov(char s,unsigned num, int type)。函数功能是将输入一个无符号十进制数num 和数制值type。函数返回以数组形式表示的十六、八、二进制数形式的字符串s。2、编写main函数。函数功能是声明字符数组p10,键盘输入无符号十进制数m 和数制值type,并作为实参,调用函数dtov,输出相应的数制的字符串数组p到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中 。测试数据:3、 选做题(闰年题):由2009秋C01改错题设想上机编程题程序功能:输入两个正确日期且年份在1900-9999范围内,计算并输出两个日期之间间隔的天数。例如:2008-8-1和2009-8-1之间间隔的天数为365。提示:能被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,其他年份则是平年。编程要求:1、选定义结构体:struct d int y,m,d; ;2、编写函数int days( struct d d1, struct d d2)。函数声明二维数组int mon213=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30, 31,31,30,31,30,31;和函数返回值long td。3、编写main函数。函数功能是输入第一个日期、第二个日期后,调用函数days,输出相应第一个日期与第二个日期之间间隔的天数到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中 。测试数据:显示:first date:输入:1980-2-1显示:second date:输入:2009-8-1输出:10774 days最后一次书面作业,共十三题(要求2010年12月13日上课时间交)第十章选择题1、下列程序段的输出结果是_(24)_。int i,x33=9,8,7,6,5,4,3,2,1,*p=&x11;for(i=0;i4;i+=2) printf(%d ,*(p+i);A. 5 2 B. 5 1 C. 5 3 D. 9 72、已知某程序中有声明int a4,j;,及语句for(j=0;j4;j+) pj=a+j,则标识符p正确的声明形式应为为_ (27) _。 A. int p4; B. int *p4; C. int *p4; D. int (*p)4;3、若有如下声明和语句,则表达式*(*(pt+1)+2)所引用的是_ (25) _。 int t33, *pt3, k;for(k=0; k3; k+) ptk=&tk0;A. t20 B. &t20 C. t12 D. &t125、若有声明char a5 =A, B, C, D, E,*p=a,i;,则以下语句中不能正确输出a数组全部元素值的是_ (26) _。 A. for(i=0;i5;i+) printf(%c,ai); B. for(i=0;i5;i+) printf(%c,*(a+i);C.for(i=0;i5;i+) printf(%c,*p+); D. for(i=0;i5;i+) printf(%c,*a+);15、已知有声明int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;, 若需要引用值为12的数组元素,则下列选项中错误的是_(27)_。A. *(a+2)+3 B. *(*(a+2)+3) C. *(a2+3) D. a23 第十章填空题6、若有函数声明int sub(int (*x1)(),int *x2);,则形式参数x1是指向_ (4) _的指针变量。7、若要使表达式p=jiangsu;无任何错误(包括语法错误和警告错误),p的声明形式应为是_(5)_。12、以下程序运行时输出结果第一行是_(14)_,第二行是_(15)_。 #include int fun(char *a, char *b) int m=0, n=0; while(*(a+m)!=0) m+; while(bn) *(a+m)=bn; m+; n+; *(a+m)= 0; return m;void main() char s120= yes, s25= no; printf( %dn , fun(s1, s2); puts(s1);16、以下程序运行时输出到屏幕的结果第一行是_(15)_,第二行是_(16)_。#include void fun(char *p1, char *p2);void main() int i; char a=54321; puts(a+2); /*与printf(%sn, a+2);等效*/ fun(a,a+4); puts(a); /*与printf(%sn, a);等效*/void fun(char *p1, char *p2) char t; while(p1p2) t=*p1; *p1=*p2; *p2=t; p1+=2,p2-=2;第十一章填空题1、以下程序输出结果为_。(答案: )#include struct sint a; struct s *next;main()int i; static struct s x2=5, &x1, 7, &x0, *ptr; ptr=&x0; for(i=0;ia); ptr=ptr-next;10、以下程序运行时输出结果为_ (7) _。(答案: )#include stdio.henum days mon=1,tue,wed,thu,fri,sat,sun today=tue;void main()printf(%d ,(today+2)%7); 18、若已有定义enum TPA,B,C;,则执行语句printf(%dn,A+1);后的输出结果是_(3)_。(答案:)20、以下程序运行时若输入8,则输出结果第一行是_ (16) _,第二行是_ (17) _,第三行是_ (18) _。 (答案:要求回答本题是什么排序方法? )#include typedef struct int x; int y; S;void fun(S pp, int n) int i, j, k; S t; for(i=0; in-1; i+) k=i; for(j=i+1; jn; j+) if(ppj.xppk.x)|(ppj.x=ppk.x&ppj.yppk.y) k=j; if(k!=i) t=ppi; ppi=ppk; ppk=t; void main() S a5=3,2, 3, 1, 1, 2, 2, 4, 2, 3; int i, n=5; fun(a, n); for(i=0; in; i+) printf(%d, %dn, ai.x, ai.y);等级考试编程题可能出现“奇特数”题(寒假作业)陷阱数阅读材料四位黑洞数6174(2006秋C05上机编程题)请随便写出一个四位数,这个数的四个数字有相同的也不要紧,但这四个数不准完全相同或有完全相同趋向,例如 3333、7777、7337等都应该排除。 写出四位数后,把数中的各位数字按大到小的顺序和小到大的顺序重新排列,将得到由这四个数字组成的四位数中的最大者和最小者,两者相减,就得到另一个四位数。将组成这个四位数的四个数字施行同样的变换,又得到一个最大的数和最小的数,两者相减这样循环下去,一定在经过若干次(最多7次)变换之后,得到6174。 例如,开始时我们取数8208,重新排列后最大数为8820,最小数为0288,882002888532;对8532重复以上过程:85322358=6174。这里,经过两步变换就掉入6174这个“陷阶”。 需要略加说明的是:以0开头的数,例如0288也得看成一个四位数。再如,我们开始取数2187,按要求进行变换: 2187 87211278744374433447399699633699=6264664224664176764114676174。 这里,经过五步变换就掉入了“陷阱”6174。三位黑洞数495(尚未出题)简易推导过程:随便找个数,如297,三个位上的数从小到大和从大到小各排一次,为972和279,相减,得693 按上面做法再做一次,得到594,再做一次,得到495 之后反复都得到495四位黑洞数1089(2009春C04上机编程题)用一组整数验证命题:“任意一个百位数字与个位数不同的三位正整数n1在经过以下操作后一定变换到1089:将n1的百位数字与个位数交换得到n2,求n1与n2差的绝对值得到n3;将n3的百位数字与个位数交换得到n4;求n3与n4的和得到n5,n5一定是1089。若n1、n3是一位数或两位数,则在高位补0,使其成为三位数。”例如:n1:123,n2=321,n3=198(321-123),n4=891,n5=1089(198+891)亲密数对阅读材料(尚未出题)定义:如果a的因子和等于b,b的因子和等于a,(因子或称真因子是指包括1但不包括本身的数),且a不等于b,则称a,b为亲密数对。一般通过叠代编程求出相应的亲密数对。例如请编程求取11000之间亲密数对。“一个数的真因子之和”的函数请参阅“程序设计与C语言复习资料P19”(220,284) 220=1+2+4+5+10+11+20+22+44+55+110=284 284=1+2+4+71+142=220 (1184,1210) 1184=1+2+4+8+16+32+37+74+148+296+592=1210 1210=1+2+5+10+11+22+55+110+121+242+605=1184 (2620,2924) 2620=1+2+4+5+10+20+131+262+524+655+1310=2924 2924=1+2+4+17+34+43+68+86+172+731+1462=2620 (5020,5564) 5020=1+2+4+5+10+20+251+502+1004+1255+2510=5564 5564=1+2+4+13+26+52+107+214+428+1391+2782=5020 (6232,6368) 6232=1+2+4+8+19+38+41+76+82+152+164+328+779+1558+3116=6368 6368=1+2+4+8+16+32+199+398+796+1592+3184=6232类似题:2008秋C06编程题:一个数的真因子之和分解为另一个真因子之和,而此值恰是原值的的两倍,则原数称“超完全数”)。原题为:超完全数是指具有下以下特性的整数N:(N)=2N,其中(N)表示整数N的所有因子之和(因子包括N自身)。例如16的所有因子之和为31(1+2+4+8+16=31),31的所有因子之和为32(1+31=32),而32=216,因此16是一个超完全数。(2008春C06编程题)“完全数”阅读材料(尚未出题)定义:其真因子之和等于它本身的数称为完全数:例如28的因子是1、2、4、7、14,且1+2+4+7+14=28,则28是完全数。试编程求出1-1000的所有完全数。 “水仙花”和“玫瑰花”数阅读材料(尚未出题)如果一个3位数等于它的各位数字的立方和,则这个3位数称为“水仙花”数。例如:153=13+53+33。试编程求出1-10000的所有水仙花数。如果一个4位数等于它的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年仓库管理初级题库及答案
- 2025年国开行考试题及答案机械
- 2026年企业人力资源管理师之二级人力资源管理师考试题库500道及参考答案1套
- 2026年一级造价师之建设工程计价考试题库500道附完整答案【夺冠系列】
- 2026年初级银行从业资格之初级银行业法律法规与综合能力考试题库500道带答案
- 2026年初级银行从业资格之初级个人贷款考试题库及参考答案【夺分金卷】
- 2025年高三化学高考化学前沿知识拓展模拟试题
- 2026年一级注册建筑师之建筑材料与构造考试题库500道含完整答案(各地真题)
- 宝妈高烧护理方法
- Optigo白光测量系统介绍-wls400
- 本科金课建设标准与评价体系
- 大巴车车辆技术知识培训课件
- 手机网络安全知识培训课件
- 内分泌外出进修后回院汇报
- 2025年小学诗词大会题库(含答案)
- 肾动脉狭窄的诊断和处理中国专家共识
- 医院护工消毒隔离培训
- 在建公路安全知识培训内容课件
- 2026版高中汉水丑生生物-第三章第1节激素与内分泌系统
- 关于辩论的教学课件
- 2025P气瓶充装证考试及P气瓶充装模拟考试题库及答案
评论
0/150
提交评论