當前位置:首頁 » 編程語言 » c語言結構體編程題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言結構體編程題

發布時間: 2023-02-13 17:55:27

『壹』 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語言結構體題

#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);
}

『叄』 C語言結構體編程題,求助大神

#include<stdio.h>

typedef struct __student_info
{
char num[10];
char name[10];
float score;
} student_info;

int main(void)
{
student_info info[5];
printf("請輸入5名學生信息(學號 姓名 成績): ");
for(int i = 0; i < 5; i++)
{
scanf("%s %s %f",info[i].num,info[i].name,&info[i].score);
}
float sum = 0;
for(int i = 0; i < 5; i++)
{
sum += info[i].score;
}
float average = sum/5;
printf("高於平均成績的學生信息如下: ");
for(int i = 0; i < 5; i++)
{
if(info[i].score > average)
{
printf("%s %s %.1f ",info[i].num,info[i].name,info[i].score);
}
}
return 0;
}

『肆』 C語言結構體題

第9章 結構體 1.定義以下結構體類型 struct s { int a; char b; float f; }; 則語句printf("%d",sizeof(struct s))的輸出結果為【 】。 A) 3 B) 7 C) 6 D) 4 2.當定義一個結構體變數時,系統為它分配的內存空間是【 】 A)結構中一個成員所需的內存容量 B)結構中第一個成員所需的內存容量 C)結構體中占內存容量最大者所需的容量 D)結構中各成員所需內存容量之和 3.定義以下結構體類型 struct s { int x; float f; }a[3]; 語句printf("%d",sizeof(a))的輸出結果為 【 】 A) 4 B) 12 C) 18 D) 6 4.定義以下結構體數組 struct c { int x; int y; }s[2]={1,3,2,7}; 語句printf("%d",s[0].x*s[1].x)的輸出結果為 【 】 A) 14 B) 6 C) 2 D) 21 5.運行下列程序段,輸出結果是 【 】 struct country { int num; char name[10]; }x[5]={1,"China",2,"USA",3,"France",4, "England",5, "Spanish"}; struct country *p; p=x+2; printf("%d,%c",p->num,(*p).name[2]); A) 3,a B) 4,g C) 2,U D) 5,S 6.下面程序的運行結果是【 】。 struct KeyWord { char Key[20]; int ID; }kw[]={"void",1,"char",2,"int",3,"float",4,"double",5}; main() { printf("%c,%d\n",kw[3].Key[0], kw[3].ID); } A) i,3 B) n,3 C) f,4 D) l,4 7.定義以下結構體類型 struct student { char name[10]; int score[50]; float average; }stud1; 則stud1佔用內存的位元組數是【 】。 A) 64 B) 114 C) 228 D) 7 8.如果有下面的定義和賦值,則使用【 】不可以輸出n中data的值。 struct SNode { unsigned id; int data; }n,*p; p=&n; A) p.data B) n.data C) p->data D) (*p).data 9.根據下面的定義,能輸出Mary的語句是【】。 struct person { char name[9]; int age; }; struct person class[5]={"John",17,"Paul",19,"Mary",18,"Adam",16}; A) printf("%s\n",class[1].name); B) printf("%s\n",class[2].name); C) printf("%s\n",class[3].name); D) printf("%s\n",class[0].name); 10.定義以下結構體數組 struct date { int year; int month; int day; }; struct s { struct date birthday; char name[20]; } x[4]={{2008, 10, 1, "guangzhou"}, {2009, 12, 25, "Tianjin"}}; 語句 printf("%s,%d,%d,%d",x[0].name,x[1].birthday.year); 的輸出結果為 【 】。 A) guangzhou,2009 B) guangzhou,2008 C) Tianjin,2008 D) Tianjin,2009 11.運行下列程序段,輸出結果是【】。 struct country { int num; char name[20]; }x[5]={1, "China", 2, "USA", 3, "France", 4, "England", 5, "Spanish"}; struct country *p; p=x+2; printf("%d,%s",p->num,x[0].name); A) 2,France B) 3,France C) 4,England D) 3, China 12. 定義以下結構體數組 struct { int num; char name[10]; }x[3]={1,"china",2,"USA",3,"England"}; 語句printf("\n%d,%s",x[1].num,x[2].name)的輸出結果為【 】 A)2,USA B)3,England C)1,china D)2,England 13. 定義以下結構體數組 struct date { int year; int month;

『伍』 C語言結構體編程題,求大神!

已經調試過了,可以直接使用
#include<stdio.h>
#define
N
3
//學生的數目
typedef
struct
{
char
num[20];
char
name[20];
char
area[20];
float
score;
}
student;
student
stu[N];
float
average
=
0;
void
input()
{
int
i,j;
printf("請輸入%d個學生的成績\n",N);
for(i=0;i<N;i++)
{
printf("學號:");
scanf("%s",&stu[i].num);
printf("姓名:");
scanf("%s",&stu[i].name);
printf("籍貫:");
scanf("%s",&stu[i].area);
printf("C語言的成績:\n");
scanf("%f",&stu[i].score);
}
}
void
output()
{
int
i,j;
printf("學生的信息如下:\n");
for(i=0;i<N;i++)
{
printf("學號:%s\n",stu[i].num);
printf("姓名:%s\n",stu[i].name);
printf("籍貫:%s\n",stu[i].area);
printf("成績:%f\n",stu[i].score);
}
printf("平均分:%f\n",average);
}
void
calucate()
{
int
i;
float
total;
for(i=0;i<N;i++)
{
total
=
total
+
stu[i].score;
}
average
=
total/N;
}
int
main()
{
char
a[100]={0};
input();
calucate();
output();
}