四川师范大学c语言实验报告(7)

2019-06-11 12:48

(3)测试数据: (4)运行结果:

(5)问题及解决方法:

4、输入一个字符串,内有数字和非数字字符,例如: A123cdf 456.78cpc876.9er 849.1 将其中连续的数字作为一个实数,依次存放到一数组a中。例如123存放在a[0],456.78存放在a[2],依次类推,统计共有多少个数,并输出这些数。 (1)算法描述: f(a,b); for(j=0;j<4;j++) printf(\(2)源代码及说明: #include

void f(char *sp,float b[]) { char *p; float value; int power,i=0,j=0; p=sp; while(*p) { for(;!(*p>='0'&&*p<='9');p++) value=0; for(value=0;(*p>='0'&&*p<='9');p++,i++) value=value*10+*p-'0'; if(*p=='.') p++; for(power=1;(*p>='0'&&*p<='9');p++,i++) { value=value*10+*p-'0'; power=power*10; } value=value/power; b[j++]=value; } printf(\数字个数为:%d\\n\}

void main() { int j; float b[4]={0}; char *a=\ f(a,b); for(j=0;j<4;j++)

第 31 页 共 31 页

printf(\}

(3)测试数据: (4)运行结果:16

123.00 456.78 876.90 849.18 (5)问题及解决方法:无 三、实验总结:

(1)掌握了用指针进行函数参数传递的方法。

(2)掌握了指针数组和二维数组间的关系以及进行参数传递时的写法。

实验八 结构体 实验 (验证性 综合性 实验 2学时)

一、目的要求:

(1)掌握结构体的定义、数据输入方法。 (2)掌握结构体成员变量的两种访问方法。

(3)掌握编写程序完成单链表的建立和查询方法。 (4)编写实验报告。

二、实验内容(参考实验指导书):

1、编写一个建立单链表的函数,设链表的表元素信息包含学号、姓名、一门课的成绩;写一个按照学号查学生成绩的函数;最后写一个主函数,它先调用建立函数,再调用查询函数,显示查到学生的姓名和成绩。 (1)算法描述: for(k=0;k<4;k++) { printf(\请输入学号:(1~4)\\n\scanf(\ for(j=0;j<4;j++) if(stu[j].num==i) (2)源代码及说明: #include struct student { int num; char name[20]; float score; }

stu[4]={{1,\main() { int i,j,k; for(k=0;k<4;k++) {

第 32 页 共 32 页

printf(\请输入学号:(1~4)\\n\scanf(\ for(j=0;j<4;j++) if(stu[j].num==i) printf(\ } }

(3)测试数据:

(4)运行结果: (5)问题及解决方法:无

2、编一程序,能把从终端输入的一个字符串中的小写字母全部转换成大写字母,要求输入的字符的同时指定该字符在字符串中的序号(即字符在字符串中的顺序号,例如第1个字符的序号为1),字符和序号存入结构体中,字符串存入结构体数组中,然后显示结构体数组的结果(用字符!表示输入字符串的结束)。 (1)算法描述: while(1) { scanf(\ if(s[i].a!='!') s[i].num=i+1; else break; if(s[i].a>'Z') s[i].a=s[i].a-32; printf(\ i++; }

(2)源代码及说明: #include struct str { char a; int num; } s[10]; main() {

第 33 页 共 33 页

int i=0; printf(\请输入字母,以!为结束标志\\n\ while(1) { scanf(\ if(s[i].a!='!') s[i].num=i+1; else break; if(s[i].a>'Z') s[i].a=s[i].a-32; printf(\ i++; } }

(3)测试数据:

(4)运行结果:

(5)问题及解决方法:无

3、在本实验的实验内容1的基础上,实现在链表元素index之前插入元素的操作Insert( struct node *head, int index)和删除指定位置元素的操作Delete( struct node * head, int index),并编写主函数测试。 (1)算法描述: (2)源代码及说明: #include #include #include #include struct student { char name[15]; char num[15]; char risk[15]; struct student *next; };

struct student * fun() { struct student *p,*q,*head;

第 34 页 共 34 页

q=head=NULL; char str[15]={'\\0'}; printf(\请依次输入学生的姓名,学号,成绩:(以'0'作为结束标志)\\n\ while(1) { scanf(\ if(str[0]=='0') break; p=(struct student *)malloc(sizeof(struct student)); strcpy(p->name,str); scanf(\ scanf(\ if(head==NULL) head=q=p; else { q->next=p; q=p; } } q->next=NULL; return head; }

struct student * park(struct student *head) { int i; char str[15]; struct student *p,*q; printf(\你想要删除某个学生的信息吗?是/否(1/0)\\n\ scanf(\ if(!i) return head; printf(\请输入你想要删除的学生姓名\\n\ scanf(\ for(p=head,q=NULL;p!=NULL;q=p,p=p->next) if(!strcmp(p->name,str)) break; if(p==NULL) { printf(\没有你要删除的学生的信息\\n\ return head; } else {

第 35 页 共 35 页


四川师范大学c语言实验报告(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版小学五年级下册语文1-8单元测试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: