题目内容

若有以下说明,则下面哪个叙述是正确的。struct { short a; float b;} v1;

A. 执行sizeof(v1)获得的结果是8个字节,对结构体变量v1中的任何一个成员都可以进行初始化。
B. 执行sizeof(v1)获得的结果是6个字节,只能对结构体变量v1中的第一个成员进行初始化。
C. 执行sizeof(v1)获得的结果是8个字节,只能对结构体变量v1中的第一个成员进行初始化。
D. 执行sizeof(v1)获得的结果是4个字节,对结构体变量v1中的任何一个成员都可以进行初始化。

查看答案
更多问题

以下是时钟模拟显示程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include typedef struct clock{ int hour; int minute; int second;}CLOCK;/* 函数功能:时、分、秒时间的更新 */void Update(________) { static long m = 1; t->hour = m / 3600; t->minute = __________________; t->second = ___________; m++; if (t->hour == 24) m = 1; }/* 函数功能:时、分、秒时间的显示 */void Display(CLOCK *t) { printf("%2d:%2d:%2d\r", t->hour, t->minute, t->second);}/* 函数功能:模拟延迟1秒的时间 */void Delay(void) { long t; for (t=0; t<50000000; t++) {/* 循环体为空语句的循环,起延时作用 */ }}int main(){ long i; CLOCK myclock; myclock.hour = myclock.minute = myclock.second = 0; for (i=0; i<100000; i++) /* 利用循环,控制时钟运行的时间 */ { Update(&myclock); /* 时钟值更新 */Display(__________); /* 时间显示 */Delay(); /* 模拟延时1秒 */ } return 0;}

A. 第10行: CLOCK *t第14行: (m – 3600 * hour) / 60第15行: m / 60第44行: &myclock
B. 第10行: CLOCK t第14行: (m – 3600 * t->hour) / 60第15行: m / 60第44行: myclock
C. 第10行: CLOCK *t第14行: (m – 3600 * t->hour) / 60第15行: m % 60第44行: &myclock
D. 第10行: CLOCK t第14行: (m – 3600 * hour) / 60第15行: m % 60第44行: myclock

下面说法错误的是

A. 在一个结构体内不能包含另一个不同类型的结构体作为其成员。
B. 用结构体变量做函数参数,是将结构体变量的所有成员的内容传给被调函数,因此在被调函数中对结构体内容的修改不影响原结构体变量。
C. 结构体在内存中所占的字节数不仅与所定义的结构体类型有关,还与计算机系统本身有关。
D. 用指向结构体变量的指针做函数参数,是将结构体变量的地址传给被调函数,因此在被调函数中对结构体内容的修改会影响原结构体变量。

以下程序的功能是计算每个学生3门课成绩的总和,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include struct stu{ char num[10]; float score[3];};int main(){ struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s; int i,j; float sum; __________return 0;}

A. for (j=0;j<3;j++){ sum=0; for(i=0;i<3;i++) { sum=sum+p->score[i];p++; } printf("%6.2f\n",sum); }
B. sum=0;for(i=0;i<3;i++){ sum=sum+p->score[i];}printf("%6.2f\n",sum);
C. sum=0;for(i=0;i<3;i++){ sum=sum+p->score[i]; p++;} printf("%6.2f\n",sum);
D. for (j=0;j<3;j++){ sum=0; for(i=0;i<3;i++) { sum=sum+p->score[i]; } printf("%6.2f\n",sum); p++;}

若能使程序运行后的输出结果如下:201501201502201503则空白处填写的表达式或语句应该是#include struct student{ int age; char num[8];};int main(){ struct student stu[3]={{20,"201501"},{21,"201502"},{19,"201503"}}; struct student *p=stu; ____________________return 0;}

A. printf("%s\n",(p++).num);printf("%s\n",(p++).num);printf("%s\n",(p++).num);
B. printf("%s\n",(*p).num);printf("%s\n",(++p)->num);printf("%s\n",stu[2].num);
C. printf("%s\n",(++p)->num);printf("%s\n",(++p)->num);printf("%s\n",(*p).num);
D. printf("%s\n",stu[0]->num);printf("%s\n",stu[1]->num);printf("%s\n",stu[2]->num);

答案查题题库