题目内容

//指针与动态内存分配示例――单位人员信息管理//某单位职工基本情况表如表所示。由于职工众多,现计划开发一款软件以提高管理效率,要求先输入职工原始信息,计算出各人实发工资(=基本工资+奖金),再按职工编号升序排序后输出以方便查看。//请选择空白位置的全部正确答案#include #include #define N 300000int main(){struct info_type{int zgbh;//职工编号char bm[11]; //部门char xm[11]; //姓名char xb[3]; //性别char sfzh[19];//身份证号char zc[11]; //职称int jbgz;//基本工资int jj;//奖金int sfgz;//实发工资};int i,j,n;struct info_type *p;do//输入实际人数{printf("\n请输入职工总数(1--%d):",N);scanf("%d",&n);}while((n<1)||(n>N));//分配n+1份内存空间,每份大小为sizeof(struct info_type),多出的1份用于排序p=(struct info_type *)malloc((n+1)*sizeof(struct info_type));if(p==NULL)printf("\n内存空间的分配不成功!\n");else//内存分配成功,进行后续操作{printf("请逐个输入职工信息(职工编号 部门 姓名 性别 身份证号 职称 基本工资 奖金):\n");for(i=1;i<=n;i++){printf("No.%d:",i);scanf("%d%s%s%s%s%s%d%d",&p[i].zgbh,p[i].bm,p[i].xm,p[i].xb,p[i].sfzh,p[i].zc,&p[i].jbgz,&p[i].jj);p[i].sfgz=p[i].jbgz+p[i].jj;}for(j=1;jp[i].zgbh){________}printf("\n职工基本信息表如下(按职工编号升序排列):\n");for(i=1;i<=n;i++)printf("%10d%12s%12s%4s%20s%12s%6d%6d%6d\n",p[i].zgbh,p[i].bm,p[i].xm,p[i].xb,p[i].sfzh,p[i].zc,p[i].jbgz,p[i].jj,p[i].sfgz);free(p);}system("pause");return 0;}

A. p[0]=p[i];p[i]=p[j];p[j]=p[0];
B. p[0]=p[j];p[j]=p[i];p[i]=p[0];
C. p[0]=p[i];p[i]=p[j];

查看答案
更多问题

//指针与动态内存分配示例――单位人员信息管理//某单位职工基本情况表如表所示。由于职工众多,现计划开发一款软件以提高管理效率,要求先输入职工原始信息,计算出各人实发工资(=基本工资+奖金),再按职工编号升序排序后输出以方便查看。//请选择空白位置的全部正确答案#include #include #define N 300000int main(){struct info_type{int zgbh;//职工编号char bm[11]; //部门char xm[11]; //姓名char xb[3]; //性别char sfzh[19];//身份证号char zc[11]; //职称int jbgz;//基本工资int jj;//奖金int sfgz;//实发工资};int i,j,n;struct info_type *p;do//输入实际人数{printf("\n请输入职工总数(1--%d):",N);scanf("%d",&n);}while((n<1)||(n>N));//分配n+1份内存空间,每份大小为sizeof(struct info_type),多出的1份用于排序p=(struct info_type *)malloc((n+1)*sizeof(struct info_type));if(________)printf("\n内存空间的分配不成功!\n");else//内存分配成功,进行后续操作{printf("请逐个输入职工信息(职工编号 部门 姓名 性别 身份证号 职称 基本工资 奖金):\n");for(i=1;i<=n;i++){printf("No.%d:",i);scanf("%d%s%s%s%s%s%d%d",&p[i].zgbh,p[i].bm,p[i].xm,p[i].xb,p[i].sfzh,p[i].zc,&p[i].jbgz,&p[i].jj);p[i].sfgz=p[i].jbgz+p[i].jj;}for(j=1;jp[i].zgbh){p[0]=p[i];p[i]=p[j];p[j]=p[0];}printf("\n职工基本信息表如下(按职工编号升序排列):\n");for(i=1;i<=n;i++)printf("%10d%12s%12s%4s%20s%12s%6d%6d%6d\n",p[i].zgbh,p[i].bm,p[i].xm,p[i].xb,p[i].sfzh,p[i].zc,p[i].jbgz,p[i].jj,p[i].sfgz);free(p);}system("pause");return 0;}

A. p=NULL
B. p==NULL
C. p
D. !p

//结构体应用示例――处理多个学生多门课组成的成绩表//编一个程序,输入某个班N个人的姓名、性别、年龄、平时、笔试、操作这几项信息,计算每个人的平均成绩,按平均成绩降序排序,再输出完整的成绩表,如表所示。//请选择空白位置的正确内容#include "stdio.h"#include "stdlib.h"#include "string.h"#define N 5 //假设总人数为5,可根据需要修改int main(){struct student_info//定义结构体类型{charname[7];//姓名charsex[5];//性别unsignedint age;//年龄intpingshi;//平时intbishi;//笔试intcaozuo;//操作doubleaverage;//平均};struct student_info stu[N+1];//定义结构体数组stu,0号元素不存放有效数据int i,j;printf("\n输入%d个人的相关信息(姓名、性别、年龄、平时、笔试、机试):\n",N);//以下循环输入各人相关原始信息并存入结构体数组stu,同时计算各人平均成绩for(i=1;i<=N;i++){printf("\nNo.%d:",i);scanf("%s%s%d%d%d%d",stu[i].name,stu[i].sex,&stu[i].age,&stu[i].pingshi,&stu[i].bishi,&stu[i].caozuo);stu[i].average=(stu[i].pingshi+stu[i].bishi+stu[i].caozuo)/3.0;}//以下二重循环按平均成绩排序for(j=1;j<=N-1;j++)for(i=j+1;i<=N;i++)if(stu[j].average

A. stu[0]=stu[j];stu[j]=stu[i];stu[i]=stu[0];
B. stu[i]=stu[j];stu[j]=stu[i];
C. stu[j]=stu[i];stu[i]=stu[j];
D. stu[0]=stu[i];stu[i]=stu[j];stu[j]=stu[0];

//结构体应用示例――处理多个学生多门课组成的成绩表//编一个程序,输入某个班N个人的姓名、性别、年龄、平时、笔试、操作这几项信息,计算每个人的平均成绩,按平均成绩降序排序,再输出完整的成绩表,如表所示。//请选择空白位置的正确内容#include "stdio.h"#include "stdlib.h"#include "string.h"#define N 5 //假设总人数为5,可根据需要修改int main(){________struct student_info stu[N+1];//定义结构体数组stu,0号元素不存放有效数据int i,j;printf("\n输入%d个人的相关信息(姓名、性别、年龄、平时、笔试、机试):\n",N);//以下循环输入各人相关原始信息并存入结构体数组stu,同时计算各人平均成绩for(i=1;i<=N;i++){printf("\nNo.%d:",i);scanf("%s%s%d%d%d%d",stu[i].name,stu[i].sex,&stu[i].age,&stu[i].pingshi,&stu[i].bishi,&stu[i].caozuo);stu[i].average=(stu[i].pingshi+stu[i].bishi+stu[i].caozuo)/3.0;}//以下二重循环按平均成绩排序for(j=1;j<=N-1;j++)for(i=j+1;i<=N;i++)if(stu[j].average

A. struct student_info//定义结构体类型{charname[7];//姓名charsex[5];//性别unsignedint age;//年龄intpingshi;//平时intbishi;//笔试intcaozuo;//操作doubleaverage;//平均};
B. struct student_info//定义结构体类型{charname[7],sex[5];//姓名,性别unsignedint age;//年龄intpingshi,bishi,caozuo;//平时,笔试,操作doubleaverage;//平均};
C. struct student_info//定义结构体类型{charname[7];//姓名charsex[5];//性别unsignedint age;//年龄intpingshi;//平时intbishi;//笔试intcaozuo;//操作doubleaverage;//平均}
D. struct student_info//定义结构体类型{unsignedint age;//年龄intpingshi;//平时intbishi;//笔试intcaozuo;//操作doubleaverage;//平均charname[7];//姓名charsex[5];//性别};

两个指针变量不可以相加。

A. 对
B. 错

答案查题题库