《C语言程序设计–第10章课后习题.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计–第10章课后习题.pdf(11页珍藏版)》请在装配图网上搜索。

1、C语言程序设计 第十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 1/11 C语言程序设计 第十章课后习题 电子13-02班 王双喜 一、选择题 1. 若有以下定义和语句,则选项中不正确的引用是(D) struct student int age; int num; ; struct student stu3 = 1001, 20, 1002, 19, 1003, 21; main() struct student *p; p = stu; A. p+-num B. p+ C. (*p).num D. p = int *y; *p; int dt。

2、4 = 10, 20, 30, 40; struct st aa4 = 50, main() p = aa; printf(%d , +p-x); printf(%d , (+p)-x); printf(%d n, +(*p-y); A. 10 20 20 B. 50 60 21 C. 51 60 21 D. 60 70 31 (解释:输出的分别是aa0.x + 1、aa1.x、aa1.y0 + 1 = dt1 + 1) 3. 以下程序的运行结果是(C) # include # include void fun(int *s, int p23) *s = p11; main() int a23。

3、 = 1, 3, 5, 7, 9, 11, *p; p = (int *) malloc(sizeof(int); fun( printf(%dn, *p); A. 1 B. 7 C. 9 D. 11 (解释:p指向一个手动分配的整型数据空间,函数fun将这个空间内填入数据9,因此*p = 9) C语言程序设计 第十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 2/11 4. 设有以下语句,则以下表达式的值为6的是(D) struct st int n; struct st *next; ; static struct st a3 = 5, p 。

4、= A. p+-n B. p-n+ C. (*p).n+ D. +p-n (解释:四个值分别是a0.n、a0.n、a0.n、a0.n + 1;其中A执行后会将p指向a1,B、C执行后会将 a0.n改为6) 5. 设有如下说明,则以下位段结构体数据的引用中不能得到正确数值的是(A) struct packed unsigned one :1; unsigned two :2; unsigned three :3; unsigned four :4; data; A. data.one = 4 B. data.two = 3 C. data.three = 2 D. data.four = 1 (。

5、解释:data.one的取值范围是01;data.two的取值范围是03;data.three的取值范围是07;data.four 的取值范围是015;) 6. 若已经建立下面的链表结构,指针p、q分别指向题图10-1-6所示结点,则不能将q所指的结点插入到链表末 尾的一组语句是(C) a b NULL p c q A. q-next = NULL; p = p-next; p-next = q; B. p = p-next; q-next = p-next; p-next = q; C. p = p-next; q-next = p; p-next = q; D. p = (*p).next。

6、; (*q).next = (*p).next; (*p).next = q; (解释:正确做法应当时将q的next指针置为空,将b的next指针指向c(这一过程由p实现),二者 无顺序。A的步骤是;B、D的步骤是;C中将c.next指向了b,并且还将b.next指向了c,这 是错误的) 7. 以下程序的运行结果是(A) # include main() struct date short int year, month, day; today; union long a; short int b; char c; m; printf(%d %dn, sizeof(struct date) ,。

7、sizeof(m); A. 6 4 B. 8 5 C. 10 6 D. 12 7 (解释:date中有三个short int变量,每个占两个字节,共计6个字节;m中最长的变量是long型,占四个 字节) 8. 以下程序的正确运行结果为(B) # include main() union C语言程序设计 第十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 3/11 short int a2; long b; char c4; s; s.a0 = 0 x39; s.a1 = 0 x38; printf(%lx %cn, s.b, s.c0); A. 3。

8、90038 39 B. 380039 9 C. 3938 38 D. 3839 8 (解释:按照内存的组织:执行s.a0 = 0 x39;之后,s.b自动变成0 xssss0039(s表示所在位未知),且s.c0 也自动被置为0 x39;执行s.a1 = 0 x38;之后,s.b自动变成0 x00380039。由于0 x39是字符9的ASCII,因 此会输出9) 二、填空题 1. 以下程序用来按学生姓名查询其排名和平均成绩。查询可连续进行,直到键入0时结束,请在横线上填入正确 内容。 # include # include # define NUM 4 struct student int r。

9、ank; char name20; float score; ; struct student stu = 3, Tom, 89.3, 4, Mary, 79.2, 1, Jack, 95.1, 2, Jim, 90.6; main() char str10; int i; do printf(Enter a name:); scanf(%s, str); if (strcmp(str, 0) = 0) break; for (i = 0; i NUM; i+) if ( strcmp(str, stui.name) = 0 ) printf(name :%8sn, stui.name); p。

10、rintf(rank :%3dn, stui.rank); printf(average :%5.1fn, stui.score); continue ; while (1); (解释:由后文可知stu是struct stuent类型;若姓名匹配,则执行打印;由程序的功能可知此处应是 对程序流程控制,若填continue则将所有姓名匹配的都打印,若填break,则找到第一个就不再查找) 2. 结构体数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄,请在横线上填入正确内容。 # include static struct man char name20; int age; pe。

11、rson = li-ming, 18, wang-hua, 19, zhang-ping, 20; main() C语言程序设计 第十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 4/11 struct man *p, *q; int old = 0; for ( p = person ; p = person + 2 ; p+) if (old age) q = p; p-age; printf(%s %dn, q-name, q-age ); (解释:此处显然是将p指向结构体数组的零号元素;遍历结构体数组的终点条件;指针q指向最年 长的结构体。

12、元素,因此输出的是q所指的结构体) 3. 以下函数的功能是统计链表中节点的个数,其中head为指向第一个结点的指针。请在横线上填入正确的内容。 struct link char data; struct link *next; ; int count_node(struct link *head) struct link *p; int c = 0; p = head; while ( p ) c+ ; p = p-next ; return c; (解释:当p所指的结构体非空时,将计数变量加一,并且将p指向下一个结构体,如此循环往复) 4. 以下程序用以读入两个学生的情况存入结构体数组。每个。

13、学生的情况包括:姓名、学号、性别。若是男同学, 则还登记视力正常与否(正常用Y,不正常用N);对女生则还登记身高和体重。请在横线上填入正确的内容。 # include struct char name20; int number; char sex; union char eye; struct int height; int weight; f; body; per2; main() int i; for (i = 0; i 2; i+) scanf(%s %5d %c, if (peri.sex = m) scanf(%c, else if (peri.sex = f) C语言程序设计 第。

14、十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 5/11 scanf(%d %d, else printf(input errorn); (解释:若是男生,则录入结构体的body成员的eye成员;若是女生则录入结构体body成员的f结构体的 height和weight成员) 三、编程题 1. 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。 001 /* 002 *功能:求某日期是本年的第几天 003 *作者:xkwy 004 *时间:2014-5-29 14:30:21 005 *版本:V1.0 006 */ 00。

15、7 008 # include 009 # define LEAP_YEAR(y) (y)%4=0 013 int month; 014 int day; 015 ; 016 017 int main(void) 018 019 struct my_date s; 020 const int m = 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; 021 int count, i; 022 while (1) 023 024 printf(yyyymmddr); 025 scanf(%4d%2d%2d, 026 if (LEAP_YEAR(。

16、s.year) 028 else 029 count = 0; 030 while (getchar() != n); 031 for (i = 1; i s.month; i+) 032 count += mi; 033 count += s.day; 034 printf( The day is No.%-d day.n, count); 035 036 return 0; 037 (解释:若今年是闰年且输入的日期大于二月,则初始计数变量为1(闰的那一天),然后从一月到本月将每 月的天数加入计数变量,最后将本月已过的天数加入计数变量,输出) 2. 试利用结构体类型编制一程序,实现输入一个学。

17、生的语文、数学和英语成绩,然后计算并输出其平均成绩。 001 /* 002 *功能:使用结构体处理学生成绩 003 *作者:xkwy 004 *时间:2014-5-29 15:22:14 005 *版本:V1.0 006 */ 007 008 # include 009 struct scorce 010 C语言程序设计 第十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 6/11 011 char num20; 012 int chinese; 013 int math; 014 int english; 015 ; 016 017 int ma。

18、in(void) 018 019 struct scorce x, *p; 020 p = 021 printf(Input Students information:); 022 scanf(%s %d %d %d, p-num, 023 printf(n Your Input is:n); 024 printf( Number:%sn, p-num); 025 printf( Chinese:%dn, p-chinese); 026 printf( Math:%dn, p-math); 027 printf( English:%dn, p-english); 028 printf(n Av。

19、erange:%.1fn, (p-chinese+p-english+p-math)/3.0); 029 030 return 0; 031 (解释:详见程序) 3. 试利用指向结构体的指针编制一程序,实现输入三个学生的学号、语文、数学和英语成绩,然后计算其平均成 绩并输出成绩表。 001 /* 002 *功能:使用结构体指针处理学生成绩 003 *作者:xkwy 004 *时间:2014-5-30 12:57:55 005 *版本:V1.1 006 */ 007 008 # include 009 010 struct stu 011 012 char num20; 013 int chin。

20、ese; 014 int math; 015 int english; 016 double avr; 017 st3; 018 019 int main(void) 020 021 int i; 022 struct stu *p; 023 for (i = 0; i num); 028 scanf(%d, 029 scanf(%d, 030 scanf(%d, 031 p-avr = (p-chinese+p-math+p-english)/3.0; 032 033 034 printf(nScorce Table:n); 035 printf(numberttchinesetmathte。

21、nglishtaveragen); 036 for (i = 0; i num); 040 printf(%-dt, p-chinese); 041 printf(%-dt, p-math); 042 printf(%-dt, p-english); 043 printf(%-.2lfn, p-avr); 044 045 046 return 0; 047 (解释:先让p指向相应的结构体,然后指向该结构体成员。打印成绩表时使用了制表符使打印整齐) 4. 假定每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量 sl(整型)、金额je(长整型)几部分。

22、组成。其中:金额单价数量。在main函数中输入若干个产品销售记录, 并存入结构数组sell中。请编制函数SortDat,其功能要求:按产品名称从小到大进行排列,若产品名称相同,则 按金额从小到大进行排列,最终排列结果仍存入结构数组sell中。最后在main函数中输出结果。 001 /* 002 *功能:使用结构体对销售记录处理 003 *作者:xkwy 004 *时间:2014-5-30 09:50:37 005 *版本:V1.0 006 */ 007 008 # include 009 # include 010 # define N 10 011 012 typedef struct 01。

23、3 014 char dm5; 015 char mc11; 016 int dj; 017 int sl; 018 long je; 019 PRO; 020 021 void ScortDat(PRO sell, int n) 022 023 int i, j, flag; 024 PRO temp; 025 for (i = 0; i N; i+) 026 for (j = i+1; j 0) 030 031 flag = 1; 032 033 else if (strcmp(selli.mc, sellj.mc) = 0 036 037 if (flag) 038 039 temp =。

24、 selli; 040 selli = sellj; 041 sellj = temp; 042 043 044 045 046 void main(void) C语言程序设计 第十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 8/11 047 048 PRO sellN; 049 int i; 050 051 for (i = 0; i n); 068 printf(codettnamettunit-pricetquantitytpricetn); 069 for (i = 0; i N; i+) 070 071 printf(%-16s%-1。

25、6s, selli.dm, selli.mc); 072 printf(%-dtt, selli.dj); 073 printf(%-dtt, selli.sl); 074 printf(%-dn, selli.je); 075 076 (解释:使用的是选择排序法,目标是第i趟时把第i个元素的位置确定下来;用标识变量来识别是否需要交 换元素,即当后者名称小于前者或名称相同但后者价格小于前者时交换。) 5. 利用malloc函数或calloc函数建立一个动态整型数组,存放由键盘输入的几个整数,然后按从小到大的顺序输 出。 001 /* 002 *功能:使用动态内存分配录入并排序数据 003 *作。

26、者:xkwy 004 *时间:2014-5-30 13:32:48 005 *版本:V1.0 006 */ 007 008 # include 009 # include 010 011 # define N 6 012 013 int main(void) 014 015 int i, k; 016 int *p, *m, t; 017 p = (int *)calloc(N, sizeof(int); /分配内存 018 m = p; 019 if (p = NULL) /若内存分配失败,则提前终止 020 021 printf(sorry. There a critical error 。

27、cannot continue to run!n); 022 return -1; 023 024 025 for (i = 0; i N; i+) 026 C语言程序设计 第十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 9/11 027 printf(Input Integer (%d/%d):, i+1, N); 028 if (scanf(%d, p) = 0) /若数据录入失败 029 030 printf( Error Input (%d/%d)!n, i+1, N); 031 i-; 032 033 else 034 printf(。

28、 (%d/%d) has accept:%dnn, i+1, N, *p+); 035 while (getchar() != n); /清除键盘缓冲区 036 037 038 for (i = 0; i N; i+) /执行选择排序 039 for (k = i+1; k N; k+) 040 if (mk mi) 041 042 t = mk; 043 mk = mi; 044 mi = t; 045 046 047 printf(The sort number is:n); 048 for (i = 0; i N; i+) /输出数据 049 printf( No.%-d = %dn, 。

29、i+1, mi); 050 051 return 0; 052 (解释:详见注释) 6. 编写程序,建立一个依学生的学号从小到大有序排列的链表。链表的节点中包括学号,姓名和年龄,最后输出 该链表。 001 /* 002 *功能:使用链表处理学生信息 003 *作者:xkwy 004 *时间:2014-5-30 14:07:14 005 *版本:V1.0 006 */ 007 008 # include 009 # include 010 011 # define N 7 012 013 struct stu /定义结构体 014 015 char num20; 016 char name20;。

30、 017 int age; 018 struct stu *next; 019 ; 020 021 int main(void) 022 023 struct stu *p, *p2, *m; 024 int i; 025 for (i = 0; i next = p; /上一个结点的next指针指向本节点 037 p2 = p; /记下上一个节点地址 038 sprintf(p-num, %06d, i+1301); /自动给学号赋值 039 printf( %d/%d Input name, and age:, i+1, N); 040 scanf(%s %d, p-name, /手动输入。

31、节点数据 041 while (getchar() != n); /清除键盘缓冲区 042 043 p-next = NULL; /链表尾添加结束标记 044 045 printf(nThe chain table are shown as follow:n); 046 printf(numberttnamettagen); 047 while (m) /当本节点非空节点时 048 049 printf(%-16s%-16s, m-num, m-name); 050 printf(%dn, m-age); 051 p = m; /暂时保存本节点地址 052 m = m-next; /指向下一节。

32、点 053 free(p); /释放本节点内存 054 055 056 return 0; 057 (解释:详见注释) 7. 有一个unsigned long型整数,现要分别将其前2字节和后2字节作为两个unsigned short int型整数输出,试 编一函数partition实现上述要求,要求在主函数中输入该long型整数,在函数partition中输出结果。 001 /* 002 *功能:将长整型按短整型数据输出 003 *作者:xkwy 004 *时间:2014-5-30 14:33:32 005 *版本:V1.0 006 */ 007 008 # include 009 010 u。

33、nion 011 012 unsigned long a; 013 struct 014 015 unsigned short int m; 016 unsigned short int n; 017 b; 018 t; 019 020 void partition(unsigned long x); 021 022 int main(void) 023 024 unsigned long x; 025 printf(Input a num (in HEX):); 026 scanf(%X, 027 printf( %#Xn, x); 028 partition(x); 029 return 0; 030 031 C语言程序设计 第十章课后习题 电子13-02班 王双喜 2014年5月31日星期六 Made by xkwy. 11/11 032 void partition(unsigned long x) 033 034 t.a = x; 035 printf( %#X - %#Xn, t.b.n, t.b.m); 036 (解释:关键在于结构体的选择,由题意可知长整型一定和两个短整型公用同一段内存空间,而两个短整型 分别占据这四字节的前两个字节和后两个字节,因此两个短整型是一个联合体。为了方便查看效果,使用了 十六进制来进行输入和输出)。

c语言已知某班男生有n1,C语言程序设计–第10章课后习题.pdf相关推荐

  1. c语言已知某班男生有n1,C语言程序设计复习资料(答案).doc

    C语言程序设计复习资料 一.填空题 1.C语言程序是函数构成的,其中有且只有1个 主 函数,程序的的执行总是从该函数开始. 2.用条件运算符写出求两个整数x,y中大数的表达式 z = x>y?x ...

  2. c语言中置逆三位正整数,C语言程序设计 – 第 05 章课后习题(11页)-原创力文档...

    C 语言程序设计 – 第五章课后习题 电子13-02 班 王双喜 2014 年4 月12 日星期六 Made by xkwy. 1/11 语言程序设计 第五章课后习题 C – 13-02 电子 班 王 ...

  3. c语言已知24有8个因子,C语言上机考试题二(2页)-原创力文档

    C语言上机考试题二 (60分) 对下面的各题编写函数完成其操作,并在主函数中调用它输出结果 (用函数指针调用的加5分).要求对任何一道题不看任何书在25分钟 内完成程序设计,运行无误. 1. 德国数学 ...

  4. c语言已知一个班有10位同学,一个班10位同学参加期末c语言考试,先要输出全班同学的成绩,统计全班同学的平...

    #include #define n 5 struct student { int num; char name[9]; float math; float english; float physic ...

  5. c语言已知祖父年龄70,实验三循环结构程序设计.doc

    实验三循环结构程序设计 实验三 循环结构程序设计 一.实验目的 (1) 掌握while.do~while.for语句的使用. (2) 掌握循环体内使用break.continue语句的作用. (3) ...

  6. C语言已知一数码字符串s,计算机基础与程序设计2005年4月真题试题(02275)

    计算机基础与程序设计2005年4月真题试题与答案解析(02275) 计算机基础与程序设计2005年4月真题试题与答案解析(02275),本试卷总共100分. 一.单项选择题 (本大题共20小题.每小题 ...

  7. 已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在tab表中,要查的学生学号放在变量no中,查表结果放在变量english中。

    已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在tab表中, 要查的学生学号放在变量no中,查表结果放在变量english中. data segmenttab db 68,78,42,84 ...

  8. 已知某个班有 30 个学生,学习 5 门课程,已知所有学生的各科成绩。计算每个学生的平均成绩,并输出

    已知某个班有 30 个学生,学习 5 门课程,已知所有学生的各科成绩.计算每个学生的平均成绩,并输出 注意: 定义一个二维数组 A,用于存放 30 个学生的 5 门成绩. 定义一个一维数组 B,用 于 ...

  9. C语言程序设计(第2版)答案修正版 C语言程序设计(第2版)课后习题答案

    C语言程序设计(第2版)答案修正版 C语言程序设计(第2版)课后习题答案 第一章 1.请参照本章例题,编写一个C程序,输出以下信息: ************************** Very g ...

最新文章

  1. 本周Web2.0小工具推荐[2008-09-13]
  2. java8 lamada表达式
  3. 20个令人称赞的以办公环境为背景的网站作品
  4. Java进阶3. 内存回收机制
  5. CloudStack核心类ApiServlet、ApiServer、ApiDispatcher、GenericDaoBase源码分析
  6. 结构化和面向对象语言的区别
  7. 《Android App开发入门:使用Android Studio 2.X开发环境》——2-5 开始动手编写程序...
  8. 微信小程序直播分销商城源码
  9. 在消费决策上,读懂当代年轻人的B面!
  10. Java对象的GC内存分配和回收策略
  11. 计算机中丢失msvcr100.dll怎么办,msvcr100.dll
  12. 关于VLAN和VXLAN的理解
  13. Leetcode 120 Triangle 三角形最小路径和
  14. SiTime硅晶振MEMS谐振子制作工艺详解
  15. CSDN产品公告第3期:博客数据统计功能上线,OFFER大挑战等你来!
  16. 【kafka专栏】安全认证之SCRAM动态用户管理的方式
  17. 吉利新CP申请新商标,野心远远不止汽车
  18. 【踩坑】npm ERR! missing script: serve
  19. Scratch音效素材试听后缀名问题
  20. el-select默认选中el-option

热门文章

  1. 元器件原理图,自己动手画
  2. 图像噪声(MATLAB)
  3. excel服务器数据同步修改,excel表格数据同步修改-关于excel不同表格(不同工作簿)之间数据同步修改......
  4. 竞品分析|京东和美团如何看待优惠券
  5. 不做XR业务,腾讯如何做元宇宙?
  6. 【书评】《你好哇,程序员——漫话程序员面试求职、升职加薪、创业与生活》...
  7. 苹果heic格式转换jpg的方法
  8. 计算机二级数据库机试题,全国计算机二级数据库机试题7
  9. 智能门锁有哪些安全风险?该如何防范?
  10. i5集显和独显的区别_分不清核显和独显?奸商分分钟坑哭你