1、程序设计与问题求解模拟题填空题程序设计与问题求解模拟题(填空题)1. 语言程序的基本组成单位是_,其一般由_和函数体两部分组成。2. C语言中形式参数与实参之间的参数传递方式有两种,即_和_,其中_ 从效果上来讲是双向传送。3. 下面程序用于从键盘输入三个数,然后输出其中最大的数,要求将空白地方补充完整。#include stdio.hvoid main() int a,b,c, ;printf(n请输入三个整数:);scanf(%d%d%d,&a,&b,&c);if( ) max=a;else max=b;if(cmax) max=c;printf(最大值为:%dn,max);4. 编程计算
2、149162510000之和,将程序的空白地方补充完整:#include stdio.hvoid main()int s=0,i; for(i=1;i=100;) printf(n1+4+.+1000=%dn,s);5. 编程输出1100中能2或3或5整除的数,并统计总个数。将程序的空白地方补充完整:#include stdio.hvoid main()int i,count=0; printf(n此程序可统计1.100间的能被2或3或5整除的整数的个数。n); for(i=1;i=100;i+) if(i%2=0)|(i%3=0)|(i%5=0) printf(%8d,i);/输出符合条件的
3、数值 ; printf(n符合条件的数字个数为:%dn,count);6. 语言程序的基本组成单位是函数,每个程序有且只能有一个名为_的函数。7. C语言中形式参数与实参之间的参数传递方式有两种,即和,其中 从效果上来讲是双向传送。8. 下面程序用于从键盘输入三个数,然后输出其中最小的数,要求将空白地方补充完整。#include stdio.hvoid main() int a,b,c, ;printf(n请输入三个整数:);scanf(%d%d%d,&a,&b,&c);if( ) min=a;else min=b;if(cmin) max=c;printf(最小值为:%dn,min);9.
4、编程计算1-49-1625-10000之和,将程序的空白地方补充完整:#include stdio.hvoid main()int s=0,i,p=1; for(i=1; ;i=i+3) s=s+i*p; ; printf(n1-4+.-1000=%dn,s);10. 编程输出1100中能2或3或5整除的数,并统计总个数。将程序的空白地方补充完整:#include stdio.hvoid main()int i,count=0; printf(n此程序可统计1.100间能同时被2、3、5整除的整数的个数。n); for(i=1;i=100;i+) if( ) printf(%8d,i);/输出
5、符合条件的数值 ; printf(n符合条件的数字个数为:%dn,count);11. 线性链表的一般形式如下:以下是用线性链表实现的一个基本系统,主要功能如下:就此例来讲,可能涉及到的情况有如下几种:1、添加:发现此人到了一个新地方,需要记录下来,添加到前一个地名的后面;2、按顺序输出:按跟踪的情况输出此人全天的活动范围;3、查询:查询此人是否到过某地方;4、删除:发现在记录过程中把某个本没有到过的地方给错误地添加进去了,需删除;5、插入:发现某个到过的地方没有记录进去,需插入到已记录下来的某个地名后面;6、修改:某个地名记录有误,需要重新更正;7、释放:此系统已完成任务,不用了,释放对应的
6、链表所占用的内存空间。具体实现过程如下,请填空:#include #include #include struct poi_info char name31; /数据域,存放地名 struct poi_info *next;/指针域,存放后一节点地址; /要有“;” /按顺序录入地名,创建单链表void input(struct poi_info *head) int sfjx=1; struct poi_info *q,*p; q=head; while(q-next!=NULL) q=q-next; while(sfjx!=0) p= if(p=NULL) printf(n空间分配不成功,
7、无法进行记录!n); else printf(n请输入要记录地地名:); scanf(%s,p-name); q=p; printf(n是否继续(0结束其它继续):); scanf(%d,&sfjx); q-next=NULL; system(pause); /按从前往后顺序输出所有地名void output(struct poi_info *head) struct poi_info *p; p=head-next; printf(n以下为输出结果:n); while(p!=NULL) printf(%sn,p-name); system(pause);/释放链表空间,使之成为一个空链表vo
8、id release(struct poi_info *head) struct poi_info *p,*q; p=head-next; while(p!=NULL) free(p); head-next=NULL; printf(n空间已正常释放!n); system(pause); /根据地名判断是此人所到过的第几个地方void search(struct poi_info *head) int sfjx=1,count; struct poi_info *p; char dcdm31; while(sfjx!=0) p=head-next; count=1; printf(n请输入要查
9、询的地名:); scanf(%s,dcdm); while( ) p=p-next; count+; if(p=NULL) printf(n此人没有到过以下地方:%sn,dcdm); else printf(n%s是此人到过的第%d站。n,dcdm,count); printf(n是否继续(0结束其它继续):); scanf(%d,&sfjx); system(pause); /从链表中删除指定的某些地方void del(struct poi_info *head) int sfjx=1; struct poi_info *p,*q; char dcdm31; while(sfjx!=0) q
10、=head; p=head-next; printf(n请输入要删除的地名:); scanf(%s,dcdm); while(p!=NULL)&(strcmp(dcdm,p-name)!=0) p=p-next; if( ) printf(n此人没有到过以下地方:%sn,dcdm); else free(p); printf(n已成功删除!n); printf(n是否继续(0结束其它继续):); scanf(%d,&sfjx); system(pause); /往某个地名前插入一个地名void insert(struct poi_info *head) int sfjx=1; struct p
11、oi_info *p,*q,*x; char dcdm31; while(sfjx!=0) q=head; p=head-next; printf(n请输入要插入地的地名:); scanf(%s,dcdm); while(p!=NULL)&(strcmp(dcdm,p-name)!=0) q=p; p=p-next; if(p=NULL) printf(n此人没有到过以下地方:%s,无法确定插入位置!n,dcdm); else x=(struct poi_info *)malloc(sizeof(struct poi_info); if(x=NULL) printf(n空间分配不成功,无法进行
12、记录!n); else printf(n请输入要插入地的地名:); scanf(%s,x-name); q-next=x; printf(n已成功插入!n); printf(n是否继续(0结束其它继续):); scanf(%d,&sfjx); system(pause); /修改某一指定的地名void modify(struct poi_info *head) int sfjx=1; struct poi_info *p; char dcdm31; while(sfjx!=0) p=head-next; printf(n请输入要修改的地名:); scanf(%s,dcdm); while(p!
13、=NULL)&(strcmp(dcdm,p-name)!=0) if(p=NULL) printf(n此人没有到过以下地方:%sn,dcdm); else printf(n原地名为%s,请输入新地名:,dcdm); scanf(%s,p-name); printf(n已成功修改!n); printf(n是否继续(0结束其它继续):); scanf(%d,&sfjx); system(pause); void main() int xz=1; struct poi_info *head; head=(struct poi_info *)malloc(sizeof(struct poi_info)
14、; if(head=NULL) printf(n空间分配不成功!n); else head-next=NULL; while(xz!=0) printf(n欢迎使用民用跟踪记录系统!nnn); printf(1-添加2输出3查询4删除5修改6插入0退出n); printf(n请选择:); scanf(%d,&xz); if(xz=1) input(head); else if(xz=2) output(head); else if(xz=3) else if(xz=4) del(head); else if(xz=5) else if(xz=6) insert(head); else if(x
15、z=0) release(head); free(head); else printf(n无此选项!n); 12. 以下是一个简单的“班级基本信息管理系统”的实现代码,请补充完整:#include #include #include #define N 100 /最大人数 struct stu_info char xh15; /学号,目前学号为14位 char xm7; /姓名 char xb3; /性别 int nl; /年龄;struct stu_info stuN+1;/用于存放所有人相关信息,0号元素备用int CurrentCount=0; /当前实际人数 void input()
16、/录入模块 char sfjx=1; while(sfjx!=0) if(CurrentCount=N) printf(n人数已达上限,不能添加!n); sfjx=0; else printf(n请输入一个人员的相关信息(学号姓名 性别 年龄):); scanf(%s%s%s%d,stuCurrentCount.xh,stuCurrentCount.xm,stuCurrentCount.xb,&stuCurrentCount.nl); printf(n是否继续(0-结束,其它-继续):); scanf(%d,&sfjx); system(pause);void save() /保存模块 FIL
17、E *fp; if(fp=NULL) printf(n文件打开不成功,信息无法保存!n); else for(int i=1;i=CurrentCount;i+) fprintf(fp,n%16s%8s%4s%4d,stui.xh,stui.xm,stui.xb,stui.nl); printf(n信息已成功保存!n); system(pause);void read() /读盘模块 FILE *fp; if(fp=NULL) printf(n文件打开不成功,信息无法读取!n); else fscanf(fp,%d,&CurrentCount); for(int i=1;i=CurrentCo
18、unt;i+) fscanf(fp,%s%s%s%d,stui.xh,stui.xm,stui.xb,&stui.nl); printf(学号:%s姓名:%s性别:%s年龄:%dn,stui.xh,stui.xm,stui.xb,stui.nl); fclose(fp); printf(n信息已成功读取!n); system(pause);void search() /查询模块 char dcxh15; int sfjx=1,i; while(sfjx!=0) printf(n请输入一个待查学员的学号:); scanf(%s,dcxh); i=CurrentCount; while() i-;
19、 if(i=0) printf(查无此人!n); else printf(n此人详细信息如下:n); printf(学号:%s姓名:%s性别:%s年龄:%dn,stui.xh,stui.xm,stui.xb,stui.nl); printf(n是否继续(0-结束,其它-继续):); scanf(%d,&sfjx); system(pause);void del() /删除模块 char dcxh15; int sfjx=1,i,j; while(sfjx!=0) printf(n请输入一个待删学员的学号:); scanf(%s,dcxh); i=CurrentCount; while(strc
20、mp(stui.xh,dcxh)!=0) i-; if(i=0) printf(查无此人!n); else printf(n此人详细信息如下:n); printf(学号:%s姓名:%s性别:%s年龄:%dn,stui.xh,stui.xm,stui.xb,stui.nl); printf(n按任意键开始删除.n); system(pause); for(j=i+1;j=CurrentCount;j+) CurrentCount-; printf(n已成功删除.n); system(pause); printf(n是否继续(0-结束,其它-继续):); scanf(%d,&sfjx); syst
21、em(pause);void modify() /修改模块 char dcxh15; int sfjx=1,i; while(sfjx!=0) printf(n请输入一个待修改学员的学号:); scanf(%s,dcxh); i=CurrentCount; while(strcmp(stui.xh,dcxh)!=0) i-; if(i=0) printf(查无此人!n); else printf(n此人详细信息如下:n); printf(学号:%s姓名:%s性别:%s年龄:%dn,stui.xh,stui.xm,stui.xb,stui.nl); printf(n请输入新内容.n); prin
22、tf(n请输入一个人员的相关信息(学号姓名 性别 年龄):); scanf(%s%s%s%d,stui.xh,stui.xm,stui.xb,&stui.nl); printf(n已成功修改.n); system(pause); printf(n是否继续(0-结束,其它-继续):); scanf(%d,&sfjx); system(pause);void list() /删除模块 int i,j; for(i=1;ii;j-) if(strcmp(stuj.xh,stuj-1.xh)0) stu0=stuj; printf(n 班级基本信息表n); printf( 序号学号姓名性别年龄n);
23、for(i=1;i=CurrentCount;i+) printf(%4d %s%16s%6s%6dn,i,stui.xh,stui.xm,stui.xb,stui.nl); system(pause);int check() int count=0,name,pass; while(count2) count=5; if(count=10) return 0; else return 1;void main() int xz=1; printf(n 欢迎使用班级基本信息管理系统nnn); if(check()!=0) printf(n你无权使用本系统.nn); system(pause);
24、else while(xz!=0) printf(n请选择相应功能:n); printf(1-录入n2-查询n3-修改n4-删除n5-保存n6-读取n7-按学号列表n0-结束n请输入选择:); scanf(%d,&xz); switch(xz) case 1: input();break; case 2: search();break; case 3: modify();break; case 4: del();break; case 5: case 6: read();break; case 7: list();break; case 0: printf(nn谢谢使用本系统!nn);system(pause);break; default: printf(n无此功能,请重新选择.n); system(pause);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1