网站大量收购独家精品文档,联系QQ:2885784924

C综合练习–4附参考解析.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C综合练习–4附参考解析

C综合练习4 附参考答案(宏,结构体和文件) 较为复杂的宏定义例题 (1)定义一个宏,用于判断所给出的年份year是否为闰年: #define LEAP_YEAR(y) 解:为闰年的条件是符合下面二者之一:(1)能被4整除,但不能被100整除。(2)能被4整除,能被400整除。 #define LEAP_YEAR(y) (y%4==0 y%100!=0) #define max(a,b) ((a)(b)?(a):(b)) 对表达式 max(a,max(b,max(c,d))) 作宏替换为(用文字描述): 。 解: 计算a、b、c、d中的最大值。表达式是调用宏函数,两个参数分别是a,max(b,max(c,d)),其第二个参数又是一个调用宏函数,参数分别是b,max(c,d)。 (3)定义一个带参数的宏,将两个参数的值交换 #define swap(a,b) { double t; } 解:t=a; a=b; b=t; (4)定义一个带参数的宏,若变量中的字符为大写字母则转换成小写字母。 解: #define change(c) c=c=Ac=Z? c:c+32 单项选择题 1.下面语句的输出结果是________。 #include “stdio.h” printf(“%d %d %d”,NULL,’\0’,EOF); A. 0 0 1 B. 0 0 -1 C. NULL EOF D. 1 0 EOF 2.如果二进制文件a.dat已经存在,现要求写入全新的数据,应以________方式打开。 A.“w” B.”wb” C.”w+” D.”wb+” 3.有以下的结构体变量定义语句: struct student { int num; char name[9]; } stu; 则下列叙述中错误的是 ( )。 A. 结构体类型名为student B. 结构体类型名为stu C. num是结构体成员名 D. struct是C的关键字 4. 若有以下定义 struct date { int y,m,d; }; struct student { int num; char name[9]; struct date bir;}stu,*p=stu; 则以下对结构体变量stu成员的引用中错误的是( )。 A. p-bir-y B. p-bir.y C. stu.bir.y D. stu.name 5. 若有以下定义 struct student { int num; char name[9]; }stu[2]={1,”zhangsan”,2,”lisi”}; 以下能输出字符串”lisi”的语句是( )。 A. printf(“%s”,stu[0].name); B. printf(“%s”,stu[1].name); C. printf(“%s”,stu[1].name ); D. printf(“%s”,stu[1].name[0]); 6. 有以下定义语句 struct node { int n; struct node *next; } x,y,*p=x,*q=y; 则能将y节点链接到x节点之前的语句为( )。 A. x.next=p B. x.next=q C. y.next=p D. y.next=q 7. 已建立一单向链表,指针变量p1指向链表中某一节点,p2指向下一节点,将p2所指节点从链表中删除并释放的语句为( )。 A. p1=p2;free(p2); B. p1-next=p2-next;free(p2); C. *p1.next=*p2.next;free(p2); D. p1=p2-next;free(p2); 8. 已建立一单向链表,指针变量p1指向链表中某一节点,p2指向下一节点;指针变量p指向新申请节点,将p所指节点插入到链表中p1与p2之间的语句为( )。 A. p-next=p2;p1-next=p; B. p1-next=p;p-next=p2 C. p=p2;p1-next=p; D. p1=p;p-next=p2; 2。程序阅读题 1. 下列程序的输出结果是 。 #include stdio.h struct st { int num; char name[10]; int age; } x[3]={{1,“zhang”,19},{2,“li”,2

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档