大学一年级下学期C语言程序设计实验报告答案 完整版 下载本文

内容发布更新时间 : 2024/12/25 22:10:03星期一 下面是文章的全部内容请认真阅读。

{ }

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++)

printf(\}

实验八 结构体 实验

( 验证性 综合性 实验 2学时)

1、目的要求:

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

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

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

(1)编写一个建立单链表的函数,设链表的表元素信息包含学号、姓名、一门课的成绩;写一个按照学号查学生成绩的函数;最后写一个主函数,它先调用建立函数,再调用查询函数,显示查到学生的姓名和成绩。

#include struct student {

int num;

char name[20]; float score; }

stu[4]={{1,\main() {

int i,j,k;

for(k=0;k<4;k++) { }

printf(\请输入学号:(1~4)\\n\

for(j=0;j<4;j++) if(stu[j].num==i)

printf(\}

(2)编一程序,能把从终端输入的一个字符串中的小写字母全部转换成大写字母,要求输入的字符的同时指定该字符在字符串中的序号(即字符在字符串中的顺序号,例如第1个字符的序号为1),字符和序号存入结构体中,字符串存入结构体数组中,然后显示结构体数组的结果(用字符!表示输入字符串的结束)。

#include struct str {

char a; int num; } s[10]; main() {

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)在本实验的实验内容1的基础上,实现在链表元素index之前插入元素的操作Insert( struct node *head, int index)和删除指定位置元素的操作Delete( struct node * head, int index),并编写主函数测试。

#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; 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 {