内容发布更新时间 : 2024/12/22 15:35:19星期一 下面是文章的全部内容请认真阅读。
char sex; };
main()
{ void input(struct student stu[] ); void stat(struct student stu[]); struct student stu[4]; int i;
input(stu);
for(i=0;i<4;i++)
{ printf(FORMAT,stu[i].num,stu[i].name,stu[i].age,stu[i].sex); }
stat(stu); }
void input(struct student stu[]) {int i;
for(i=0;i<4;i++)
{scanf(\getchar();
scanf(\getchar();
scanf(\getchar();
scanf(\getchar();} }
void stat(struct student stu[]) {int i,c=0,boy=0,girl=0; for(i=0;i<4;i++) {
if(stu[i].age<18) c+=1; if(stu[i].sex=='m') boy++; else girl++; }
printf(\printf(\}
2、
void fun(struct STREC *a) { int i; a->ave=0;
for(i=0;i
正确的程序为:
将 printf(\,*p.num, *p.name, p.sex, p.age);
改为:printf(\, p->.num, p->name, p->sex, p->age);
实验十一 共用体、位运算和文件
四、程序清单
(请写出上机内容2中的程序源代码)
(1) 求100以内能同时被3和5整除的自然数,分别将它们输出到显示器屏幕和x.txt
文件中。
(2)用程序读出上述x.txt文件中的数据,将它们输出到屏幕,并求它们的和。 #include
int main(void) {
int i,sum; FILE *fd;
char s[10],*p,ch;
if( (fd=fopen(\ {
printf(\ exit(0); } else {
for(i=1;i<100;i++) {
if( (i%3 ==0) && (i%5 == 0) ) {
printf(\
itoa(i,s,10); //转换成字符串 fputs(s,fd); fputc(' ',fd); } }
printf(\ fclose(fd); }
//提取字符转换成数字输入
if( (fd=fopen(\ {
printf(\ exit(0); } else {
p=s; sum=0; do {
ch=fgetc(fd); if(ch == ' ') {
i=atoi(s); sum +=i;
printf(\ strset(s,'\\0'); p=s; } else {
*p=ch; p++; }
}while(ch != EOF);
printf(\数的和是:%d\\n\ fclose(fd); }
return 0; }
实验十二 参考答案
实验十二参考答案:(可根据情况,弄清楚一个模块即可)
题目:设某班有n位同学,每位同学的数据包括以下内容:学号(长整型)、姓名(字符串)、数学成绩(整型)、程序设计成绩(整型)。设计程序完成以下五项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。
注:输入数据时,要求学号不能相同,姓名可以相同。
设计思路: 1).程序运行时,首先显示主菜单(模块)如下:
1.程序运行时,首先显示主菜单如下: 1.新建数据 2.添加数据 3.删除数据 4.排序 5.查询 6.退出
用户输入序号后,程序进行相应操作。 2).在主菜单中选择序号4,弹出子菜单选择排序方式,子菜单如下:
1.数学成绩排序 2.程序设计成绩排序 3.总分排序。 4.返回主菜单
选择子菜单的序号后,程序能正确运行并在屏幕上显示按要求排序后的相关信息。 3.在主菜单中选择序号5,弹出子菜单选择查询方式,子菜单如下:
1.学号查询 2.姓名查询 3.数学成绩查询 4.程序设计成绩查询 5.总分查询 6.返回主菜单
请按序号选择相应操作
在子菜单中选择序号后,程序按以下方式工作。
(1)学号查询:输入学号后,若该学号存在则显示与其相关的所有信息,否则显示找不到的提示信息;(提示:查询到满足条件的结果后,查询即可结束)
(2)姓名查询:输入姓名后,若该姓名存在则显示与其相关的所有信息,否则显示找不到的提示信息;(提示:使用字符串比较函数进行比较)
(3)按科目查询:输入指定分数,程序运行后显示该科目中考试成绩大于等于指定分数的同学的学号、姓名以及该科成绩并统计满足条件的人数;
(4)总分查询:输入指定分数,程序运行后显示总分成绩大于等于指定分数的同学的学号、姓名以及各科成绩并统计满足条件的人数。
C源程序清单如下:
#include \#include \#include \#include \#include \
#include \#include \#define N 2 typedef struct z1 {
char no[11]; char name[15]; int score[N]; float sum; float average; int order;
struct z1 *next; }STUDENT; /*Functions*/
STUDENT *init(); /*initialize*/ STUDENT *create();
STUDENT *delete(STUDENT *h); STUDENT *searchno(STUDENT *h); void print(STUDENT *h); void search(STUDENT *h); void save(STUDENT *h); STUDENT *load();
STUDENT *insert(STUDENT *h); STUDENT *sort(STUDENT *h); STUDENT *index(STUDENT *h); int menu_select(); /*menu*/ /******main*******/ main() { int i;
STUDENT *head; head=init(); clrscr(); for(;;) {
switch(menu_select()) {
case 1:head=init();break; case 2:head=create();break;
case 3:head=delete(head);break; case 4:print(head);break; case 5:search(head);break;
case 6:head=searchno(head);break;