當前位置:首頁 » 編程語言 » 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);
}

熱點內容
博越存儲異常 發布:2025-01-11 01:24:31 瀏覽:916
我的世界還原中國伺服器版圖 發布:2025-01-11 01:18:45 瀏覽:382
pythonopenasfile 發布:2025-01-11 01:17:06 瀏覽:971
hbasejavaapi 發布:2025-01-11 01:11:09 瀏覽:744
我的世界pe版飢餓伺服器 發布:2025-01-11 01:09:39 瀏覽:485
異構資料庫數據同步 發布:2025-01-11 01:09:04 瀏覽:957
c語言三角波 發布:2025-01-11 01:02:11 瀏覽:78
php正則轉義 發布:2025-01-11 01:00:03 瀏覽:691
手拉的箱包上的密碼鎖一般是多少 發布:2025-01-11 00:59:55 瀏覽:8
oppo手機系統更新密碼是多少 發布:2025-01-11 00:56:55 瀏覽:87