美菲特健身价格:c语言的题目struct STU {char num[10];

来源:百度文库 编辑:高校问答 时间:2024/05/13 19:56:40
44有以下程序
struct STU {char num[10]; float score[3]; }
main() {struct STU s[3]={{"20021",90,95,85},{"20022"95,80,75},
{"20023",100,95,90}},*p=s;
int i; flaot sum =0; for(i=0;i<3;i++) sum=sum+p->score[i]; printf("%6.2f\n",sum);}
程序运行后的结果是:
270.00为什么?
struct STU {char num[10]; float score[3]; }是什么意思
struct STU s[3]={{"20021",90,95,85},{"20022"95,80,75},
{"20023",100,95,90}},*p=s;是什么意思
sum=sum+p->score[i]; 是什么意思
50
以下程序中函数f的功能是将n个字符串,按由大到小的顺序排列
#include <string.h>
void f(char p[][10],int n) { char t[20]; int i,j;
for(i=0; i<n-1;i++) for (j=i+1; j<n; j++) if (strcmp(p[i],p[j])<0)
{ strcpy(t,p[i]); strcpy(p[i],p[j]);strcpy(p[j],t);} }
main() {char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};int i;
f(p,5); printf("%d\n",strlen(p[0])); }

输出结果是5为什么?
void f(char p[][10],int n) 是什么意思
char t[20]; 是什么意思
strcmp(p[i],p[j])<0)是什么意思
strcpy(t,p[i]); 是什么意思

strcpy(p[i],p[j]);strcpy(p[j],t);} 是什么意思

char p[][10]={"abc","aabdfg","abbd","dcdbe","cd是什么意思

11
下面程序运行结果是:
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main() {int i1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d %d\n",i1,i2); }
运行结果是:
1000 10

为什么?
#define N 10是什么意思
#define s(x) x*x是什么意思
#define f(x) (x*x)是什么意思
i1=1000/s(N);i2=1000/f(N);是什么意思

一个小小的问题,居然搞这么多为什么,让人家怎么回答你呀?要是我的学生这么个问法,我非训他不可!

不过既然不是我学生,就尽可能点一下吧:

struct STU {char num[10]; float score[3]; } //定义一个结构体类型STU
main() {struct STU s[3]={{"20021",90,95,85},{"20022"95,80,75},
{"20023",100,95,90}},*p=s; //定义结构体变量s并初始化
int i; flaot sum =0; for(i=0;i<3;i++) sum=sum+p->score[i]; //将p指向的第一个结构体数组的元素中的三个score 累加到sum中
printf("%6.2f\n",sum);} //将sum保留两位小数输出
程序运行后的结果是:
270.00为什么?

以下程序中函数f的功能是将n个字符串,按由大到小的顺序排列
#include <string.h>
void f(char p[][10],int n) { char t[20]; int i,j;
for(i=0; i<n-1;i++) for (j=i+1; j<n; j++) if (strcmp(p[i],p[j])<0)
{ strcpy(t,p[i]); strcpy(p[i],p[j]);strcpy(p[j],t);} } //上述f()函数将含n个元素的字符串数组按从大到小的顺序排序
main() {char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};int i;
f(p,5); printf("%d\n",strlen(p[0])); } //输出第一个字符串元素的长度,即最大的那个字符串长度,strlen("dcdbe")当然是5拉。

11
下面程序运行结果是:
#define N 10 // 定义一个宏
#define s(x) x*x // 定义一个带参数x的宏
#define f(x) (x*x) //同上,注意外面有括号
main() {int i1,i2;
i1=1000/s(N); //编译预处理后变为i1=1000/10*10;
i2=1000/f(N); //编译预处理后变为i2=1000/(10*10);
printf("%d %d\n",i1,i2); }
运行结果是:
1000 10

struct STU {char num[10]; float score[3]; }这是定义结构体。
struct STU s[3]={{"20021",90,95,85},{"20022"95,80,75},
{"20023",100,95,90}},*p=s;定义结构体数组s并赋初值,定义指针p指向数组s。
void f(char p[][10],int n) 定义函数f,无返回值。
char t[20]; 定义字符数组
strcmp(p[i],p[j])<0) 比较p[i],p[j]的大小
strcpy(t,p[i]); 连接字符串,把p[i]的值接到t值后面
strcpy(p[i],p[j]);strcpy(p[j],t);} 同上
char p[][10]={"abc","aabdfg","abbd","dcdbe","cd 给字符数组赋初值
#define N 10 宏定义 N代表10
#define s(x) 同上
#define f(x) (x*x) 同上 f(x)代表(x*x)
i1=1000/s(N);i2=1000/f(N);表达式运算并赋值。