C语言程序设计答案(黄保和编)第9章_第1页
C语言程序设计答案(黄保和编)第9章_第2页
C语言程序设计答案(黄保和编)第9章_第3页
C语言程序设计答案(黄保和编)第9章_第4页
C语言程序设计答案(黄保和编)第9章_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

选择题若已经定义“structstu{inta,b;}student;”,则下列输入语句中正确的是D)scanf(“%d”,&student.a);若已有以下结构体定义,则值为2的表达式是A)c[0].y;structcmplx{ intx; inty;}c[]={1,2,3,4};设有如下程序段,则vu.a的值为D)A、B、C都不是unionu{ inta; intb; floatc;}vu;vu.a=1;vu.b=2;vu.c=3;设已经定义“unionu{chara;intb;}vu;”在VC中存储char型数据需要1个字节,存储int型数据需要4个字节,则存储变量vu需要B)4个字节设已经定义“unionu{inta;intb}vu={1,2};”,则D)该定义错误设有定义“enumdate{year,month,day}d;”则下列叙述中正确的是A)date是类型、d是变量、year是常量设有定义“enumdate{year,month,day}d;”则正确的表达式是B)d=year若已经定义了“typedefstructstu{inta,b}student;”则下列叙述中正确的是C)student是结构体类型下列有关typedef语句的叙述中,正确的是C)typedef语句用于给已定义类型取别名编程题设计一个通讯录的结构体类型,并画出该结构体变量在内存中的存储形式struct{name占10个字节telephone占20个字节address占100个字节 namechar[10]; telephonechar[20]; addresschar[100];};用结构体变量表示平面上的一个点(横坐标和纵坐标),输入两个点,求两点之间的距离#include<stdio.h>#include<math.h>voidmain(){ structPoint { floatx; floaty; }a,b; printf("输入点a的横坐标:\n"); scanf("%f",&a.x); printf("输入点a的纵坐标:\n"); scanf("%f",&a.y); printf("输入点b的横坐标:\n"); scanf("%f",&b.x); printf("输入点b的纵坐标:\n"); scanf("%f",&b.y); printf("a、b两点之间的距离为:%f\n",sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)));}用结构体变量表示日期(年、月、日),任意输入两个日期,求它们之间相差的天数#include<iostream>#include<stdio.h>usingnamespacestd;#defineDAY_OF_YEAR365//一年的天数,当为闰年时需要另外操作//日期结构体typedefstructdate{ intyear; intmonth;intday;intday_of_year;//该日为该年的第几天}DATE,*DATE_P;//函数声明boolcompear(DATE_Pmax,DATE_Pmin);inttitoal(DATE_Pdate);boolleap_year(constintyear);intfuntion(DATE_Pmax,DATE_Pmin);//主函数voidmain(){DATEdate_1,date_2;//输入的两个日期 DATE_Pmax,min;//max指向大日期,min指向小日期 intresult; //数据输入 case9: case11:result+=30;break;//小月31天 default:result+=28;//2月28天}}returnresult+=date->day;//加上本月天数既为最后结果}//判断某年是否为闰年,若是返回1,否则返回0boolleap_year(constintyear){if((!(year%4)&&year%100)||!(year%400))return1;return0;}用结构体变量表示复数(实部和虚部),输入两个复数,求两复数之积#include<stdio.h>structcom{ intreal; intim;};voidmain(){ structcoma,b,c; structcomcmult(structcomcreal,structcomcim); inti,j; printf("输入两个复数的实部和虚部:"); scanf("%d%d%d%d",&a.real,&a.im,&b.real,&b.im); c=cmult(a,b); printf("乘积为:%d+%di",c.real,c.im);}structcomcmult(structcomcreal,structcomcim)/*求乘积的函数*/{ structcoma; a.real=creal.real*cim.real-creal.im*cim.im; a.im=creal.real*cim.im+creal.im*cim.real; return(a);}/*设复数为a+bi和c+di,那么和为:(a+c)+(b+d)i,乘积为:(ac-bd)+(ad+bc)i。*/有20个学生,每个学生的数据包括学号(num)、姓名(name)、性别(sex)、5门课程成绩(score[5])。要求编写一个程序,输入学生数据,计算并输出每个学生的总分和平均分。#include<stdio.h>#defineN2 voidmain(){ structstudent { intnum; charname[10]; charsex[10]; intscore[5]; intsum; floataverage; }; structstudentstu[N],s; inti,j; for(i=0;i<N;i++) { stu[i].sum=0; stu[i].average=0; printf("pleasescanfnumnamesexscore(1)score(2)score(3)score(4)score(5)\n"); scanf("%d%s%s",&stu[i].num,stu[i].name,stu[i].sex); for(j=0;j<5;j++) { scanf("%d",&stu[i].score[j]); stu[i].sum+=stu[i].score[j]; } stu[i].average=stu[i].sum/5.0; } for(i=0;i<N;i++) { printf("numnamesexscore(1)score(2)score(3)score(4)score(5)sumaverage\n"); printf("%d%s%s",stu[i].num,stu[i].name,stu[i].sex); for(j=0;j<5;j++) { printf("%d",stu[i].score[j]); } printf("%d",stu[i].sum); printf("%f",stu[i].average); printf("\n"); }}箱子中有若干个红、黄、白3中颜色的小球,每次从中取出2个,求得到两种不同颜色的小球的可能情况,并输出每种颜色组合(使用枚举类型)#include<stdio.h>#include<string.h>voidmain(){ enumColor{Red,Yellow,White}; enumColori,j; for(i=Red;i<=White;i=(Color)(i+1)) { for(j=i;j<=White;j=(Color)(j+1)) { chars1[3],s2[3]; switch(i) { case0:strcpy(s1,"红");break; case1:strcpy(s1,"黄");break

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论