当前位置:首页 » 编程语言 » c语言结构体例题

c语言结构体例题

发布时间: 2022-09-21 11:55:08

❶ 二级c语言关于结构体的题目

struct
s
{
int
i;
struct
s
*i2;
};
static
struct
s
a[3]={1,
&a[1],2,&a[2],3,&a[0]};
static
struct
s
*ptr;
ptr=&a[1];
A)ptr->i++
B)ptr++->I
C)*ptr->i
D)++ptr->i
A选项:ptr指向的是a[1],ptr->i可表示为a[1].i,也就是2。i++运算是先用后加,所以A表达式的值为2
D选项:++ptr->i的意思是将指针ptr向后移一个元素,再取这个元素中i的值,也就是a[2].i的值3
#include
<stdio.h>
typedef
union
{
long
i;
//4字节
int
k[5];
//2*5=10字节
char
c;
//1字节
}
DATE;
//DATA类型的变量将占用10字节
struct
date
{
int
cat;
//2字节
DATE
cow;
//10字节
double
dog;//8字节
}
too;
//too占用2+10+8=20字节
DATE
max;
main()
{
printf("%d\n",sizeof(struct
date)+sizeof(max));
sizeof()的功能是求某种数据类型或某个变量所占字节数
struct
data类型的数据占20个字节。max占10个字节。相加为30
}
A)25
B)30
C)18
D)8

❷ 一道c语言关于结构体的题目

union
是共用体,里面的成员占用同一段内存,因而,其总的大小为成员中占内存最大的一个。
x[2];8
int
y[4];16
char
z[8];8
所以是16

❸ 一道c语言结构体的题目

B,struct TT,是没有定义的类型,不能用来定义变量st

❹ C语言结构体编程题,求助大神啊

根据题意:

一、教师信息定义为结构体,其成员年月也为结构体(可直接定义成两个成员变量,本题没有强制要求),婚姻状态采用共用体类型。

二、输入信息直接写在main函数,实际软件开发应单独写输入函数,输入验证我只写了性别和婚姻状态的验证,其余成员的输入验证需要自己添加。(实际开发,验证也应单独写函数调用)。

三、输出单独函数。

#include <stdio.h>

typedef union maType//结婚状态共用体

{

int type;//0未婚1已婚2离异

}MTE;

typedef struct s_date

{

int year;

int month;

}SDATE;

typedef struct teacher

{

char idNum[20];

char name[20];

int sex;//0女1男

SDATE date;

MTE mtype;

char dtName[100];//工作部门名称

}TEER;

void printfTinfo(TEER tInfo);

int main()

{

TEER tInfo;

printf("输入一名教师信息: ");

printf("工资卡号(20个字符):"),scanf("%s",tInfo.idNum);

printf("姓名(20个字符):"),scanf("%s",tInfo.name);

do

printf("性别(0女1男):"),scanf("%d",&tInfo.sex);

while(tInfo.sex!=0 && tInfo.sex!=1);

printf("出生年月(格式:YYYY MM):"),scanf("%d%d",&tInfo.date.year,&tInfo.date.month);

do

printf("婚姻状态(0未婚1已婚2离异):"),scanf("%d",&tInfo.mtype.type);

while(tInfo.mtype.type!=0 && tInfo.mtype.type!=1 && tInfo.mtype.type!=2);

printfTinfo(tInfo);

return 0;

}

void printfTinfo(TEER tInfo)

{

printf(" ---------------- 输入的信息为: ");

printf("工资卡号:%s ",tInfo.idNum);

printf("姓名:%s ",tInfo.name);

printf("性别:%s ",tInfo.sex?"男":"女");

printf("出生年月:%04d-%02d ",tInfo.date.year,tInfo.date.month);

printf("婚姻状态:");

switch(tInfo.mtype.type)

{

case 0:printf("未婚 ");break;

case 1:printf("已婚 ");break;

case 2:printf("离异 ");break;

}

}

❺ 简单的C语言结构体题目

输出的结果为3。
首先你定义了一个结构体,这个结构体中包含了3个int型数。通常一个int为32位,那么这个struct就是32*3=96位。
你接着定义了一个对应类型的变量s,并赋予初值3,5,6。再接着又定义了一个指针指向了s的地址。
最后你在输出的时候有一个类型强制转换(int*),你将原来96位的pt指针强制变为指向32位的int指针,然后再用*号取出所存的值。这样一来,程序将会取出地址前32位对应的数,即为3。

❻ C语言结构体题

#include<stdio.h>

#defineN5

voidinput_stu(structStu*stu);
voidoutput_avg(structStu*stu);

structStu
{
intid;
charname[10];
intsex;
floatmath;
floateng;
floatc;
};

intmain()
{
structStustu[N];
input_stu(stu);
output_avg(stu);
return0;
}

voidinput_stu(structStu*stu)
{
inti=1;
do
{
printf("请输入第%d个学生的姓名学号性别数学成绩英语成绩C语言成绩:",i);
structStu*s=stu+i-1;
scanf("%s%d%d%f%f%f",s->name,&s->id,&s->sex,&s->math,&s->eng,&s->c);
i++;
}while(i<=N);
}

voidoutput_avg(structStu*stu)
{
inti=1;
printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s","学号","姓名","性别","高数","英语","C","平均分");
structStu*s=stu+i-1;
floatmath_avg=stu->math,eng_avg=stu->eng,c_avg=stu->c;
putchar(10);
do
{
structStu*s=stu+i-1;
math_avg=((i-1)*math_avg+s->math)/i;
eng_avg=((i-1)*eng_avg+s->eng)/i;
c_avg=((i-1)*c_avg+s->c)/i;
printf("%-8d%-8s%-8s%-8.1f%-8.1f%-8.1f%-8.1f",
s->id,s->name,s->sex==1?"男":"女",s->math,s->eng,s->c,(s->math+s->eng+s->c)/3);
putchar(10);
i++;
}while(i<=N);

printf("%-12s%-12s%-12s%","数学平均分","英语平均分","C平均分");
putchar(10);
printf("%-12.1f%-12.1f%-12.1f",math_avg,eng_avg,c_avg);
}

热点内容
python3哪个版本好 发布:2025-01-11 05:07:29 浏览:864
手机怎么访问外网 发布:2025-01-11 05:07:27 浏览:532
财务信息服务器搭建 发布:2025-01-11 04:48:09 浏览:875
算法实现过程 发布:2025-01-11 04:43:45 浏览:457
瞄准下载ftp 发布:2025-01-11 04:43:44 浏览:573
校园电影脚本 发布:2025-01-11 04:32:08 浏览:437
现在手机配置最高是什么 发布:2025-01-11 04:30:37 浏览:549
学信网默认密码是多少 发布:2025-01-11 04:25:45 浏览:530
jdbctemplate调用存储过程 发布:2025-01-11 04:25:41 浏览:256
我的世界怎么不用钱创建服务器 发布:2025-01-11 04:25:39 浏览:283