☆C语言实验十(结构体、共同体)

上传人:宝路 文档编号:2792136 上传时间:2017-07-27 格式:DOC 页数:7 大小:68.01KB
返回 下载 相关 举报
☆C语言实验十(结构体、共同体)_第1页
第1页 / 共7页
☆C语言实验十(结构体、共同体)_第2页
第2页 / 共7页
☆C语言实验十(结构体、共同体)_第3页
第3页 / 共7页
☆C语言实验十(结构体、共同体)_第4页
第4页 / 共7页
☆C语言实验十(结构体、共同体)_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《☆C语言实验十(结构体、共同体)》由会员分享,可在线阅读,更多相关《☆C语言实验十(结构体、共同体)(7页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 7 页上机题要求( 不要交作业)1、 做 2008 春 C07“上机套题”;(思考:改错题中有什么值得参考的和借鉴的?)下面两题在软件安装后,可查阅“C:江苏省高校计算机 C 语言练习系统历年二级 C 语言操作题2009 秋上机题” 下两套上机题2、 选做题(数制变换 2009 春 C01 编程题) :由 2009 秋 C02 改错题设想上机编程题程序功能:十进制数转换为以数组形式表示的十六、八、二进制数形式的字符串编程要求:1、编写函数 void dtov(char s,unsigned num, int type)。函数功能是将输入一个无符号十进制数 num 和数制值 ty

2、pe。函数返回以数组形式表示的十六、八、二进制数形式的字符串 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 整

3、除并且不能被 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,输出相应第一个日期与第二个日期之间间隔的天

4、数到屏幕及文件 myf2.out 中。最后将考生本人的准考证号输出到文件 myf2.out 中 。第 2 页 共 7 页测试数据:显示: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;iint fun(char *a, char *b) int m=0, n=0;while(*(a+m)!=0) m+;w

5、hile(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

6、, a);等效*/void fun(char *p1, char *p2) char t;while(p1struct s int 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

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&pp

8、j.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;第 5 页 共 7 页int i, n=5;fun(a, n);for(i=0; in; i+)printf(%d, %dn, ai.x, ai.y);等级考试编程题可能出现“奇特数”题(寒假作业)陷阱数阅读材料四 位 黑 洞 数 6174( 2006 秋 C05 上 机 编 程 题 )请 随 便 写 出 一 个 四 位 数 , 这 个 数 的 四 个 数 字 有 相 同 的 也 不 要 紧 , 但 这 四 个 数不

9、 准 完 全 相 同 或 有 完 全 相 同 趋 向 , 例 如 3333、 7777、 7337 等 都 应 该 排 除 。写 出 四 位 数 后 , 把 数 中 的 各 位 数 字 按 大 到 小 的 顺 序 和 小 到 大 的 顺 序 重 新排 列 , 将 得 到 由 这 四 个 数 字 组 成 的 四 位 数 中 的 最 大 者 和 最 小 者 , 两 者 相 减 ,就 得 到 另 一 个 四 位 数 。 将 组 成 这 个 四 位 数 的 四 个 数 字 施 行 同 样 的 变 换 , 又 得到 一 个 最 大 的 数 和 最 小 的 数 , 两 者 相 减 这 样 循 环 下 去

10、, 一 定 在 经 过 若干 次 ( 最 多 7 次 ) 变 换 之 后 , 得 到 6174。 例 如 , 开 始 时 我 们 取 数 8208, 重 新 排 列 后 最 大 数 为 8820, 最 小 数 为0288, 88200288 8532; 对 8532 重 复 以 上 过 程 : 8532 2358=6174。 这里 , 经 过 两 步 变 换 就 掉 入 6174 这 个 “陷 阶 ”。 需 要 略 加 说 明 的 是 : 以 0 开 头 的 数 , 例 如 0288 也 得 看 成 一 个 四 位 数 。再 如 , 我 们 开 始 取 数 2187, 按 要 求 进 行 变

11、换 : 2187 8721 1278 7443 7443 3447 3996 9963 3699=6264 6642 24664176 7641 1467 6174。 这 里 , 经 过 五 步 变 换 就 掉 入 了 “陷 阱 ”6174。三 位 黑 洞 数 495( 尚 未 出 题 )简 易 推 导 过 程 : 随 便 找 个 数 , 如 297, 三 个 位 上 的 数 从 小 到 大 和 从 大 到 小 各排 一 次 , 为 972 和 279, 相 减 , 得 693 按 上 面 做 法 再 做 一 次 , 得 到 594, 再 做 一 次 , 得 到 495 之 后 反 复 都 得

12、 到 495第 6 页 共 7 页四 位 黑 洞 数 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)亲密数对阅读

13、材料 ( 尚 未 出 题 )定 义 : 如 果 a 的 因 子 和 等 于 b, b 的 因 子 和 等 于 a, ( 因 子 或 称 真 因 子 是 指 包 括 1 但 不包 括 本 身 的 数 ) , 且 a 不 等 于 b, 则 称 a, b 为 亲 密 数 对 。 一 般 通 过 叠 代 编 程 求 出 相 应的 亲 密 数 对 。例 如 请 编 程 求 取 11000 之 间 亲 密 数 对 。 “一 个 数 的 真 因 子 之 和 ”的 函 数 请 参 阅 “程序 设 计 与 C 语 言 复 习 资 料 P19”(220,284) 220=1+2+4+5+10+11+20+22+4

14、4+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

15、+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 编程题)“完全数”阅读材料 ( 尚 未 出 题 )定义:其真因子之和等于它本身的

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

当前位置:首页 > 中学教育 > 试题/考题

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