




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
黑龙江大学计算机学院、软件学院 程序设计基础实验讲义C 基 础1、输入成绩,判断是否及格#include void main() float a,b,max; printf(please enter a:);scanf(%f ,&a); if (a=60) printf(及格n); else printf(不及格n);2、输入两个学生a和b的成绩,输出其中高的成绩#include void main() float a,b,max; printf(please enter a and b:); scanf(%f,%f,&a,&b); / 数据输入时若无逗号一般用空格区分两输入值,本例一定要在两数之间加逗号 if (a=b) max=a; if (ba) max=b; printf(max=%fn,max);3、要求按照百分制考试分数输出等级。#include stdio.h main() int grade; printf(input grade=); scanf(d,&grade); switch (int)(grade/10) case 10: case 9: printf(An); break; case 8: printf(Bn); break; case 7: printf(Cn); break; case 6: printf(Dn); break; default: printf(En); 4、求1+2+100的和,分别用while、dowhile和for语句实现(1)while#include void main ( ) int sum=0,i=1; while (i=100) sum=sum+i; i+; printf(sum=%dn,sum);(2)dowhile#include void main( ) int sum=0,i=1;do sum=sum+i; i+; while (i=100); printf(sum=%dn,sum);(3)for #include void main( ) int sum=0,i;for (i=1;i=100;i+) sum=sum+i; printf(sum=%dn,sum);5、输入10个数,用冒泡法对这10个数由小到大排序。#include void main() int a10; int i,j,t; printf(input 10numbers :n); for (i=0;i10;i+) /数组输入scanf(%d,&ai); printf(n); for(j=0;j9;j+) /*进行9次循环,实现9趟比较*/ for(i=0;iai+1) /*相邻两个数进行比较*/ t=ai; ai=ai+1; ai+1=t; /*满足条件进行互换*/ printf(the sorted numbers :n); for(i=0;i10;i+) /数组输出 printf(%d ,ai); printf(n);6、选择排序#include void main()int i,j,min,temp;int a10=6,90,45,56,1,15,44,78,58,101;/为数组赋初值/或键盘输入/*printf(enter data:n);for(i=0;i10;i+)/输入10个数printf(a%d=,i);scanf(%d,&ai); printf(n); for(i=0;i10;i+)/输出10个数printf(%5d,ai);printf(n);*/ for(i=0;i9;i+)min=i;for(j=i+1;jaj)min=j;temp=ai;ai=amin;amin=temp;printf(n The sorted numbers:n); for(i=0;i10;i+)/输出排序后的10个数printf(%5d,ai);printf(n);getchar();7、/编一程序,将两个字符串连接起来。不要用函数strcat#include stdio.hvoid main()char s180,s240;int i=0,j=0;printf(n input string1:);scanf(%s,s1); printf(input string2:); scanf(%s,s2);while(s1i!=0) i+;while(s2j!=0) s1i+=s2j+;s1i=0; printf(The new string is: %sn,s1);8、函数1:(参数为值传递)#include void main ( ) int max(int x,int y ); int a,b,c; scanf(%d%d,&a,&b); c=max(a,b); printf(“max= dn”,c); int max (int x,int y) int z; if (xy) z=x; else z=y; return z;9、函数2:(参数为地址传递)有有一维数组score,内放10个学生成绩,定义函数average求平均成绩。#include void main() float average(float array10); float score10,aver; int i; printf(input 10 scores:n); for(i=0;i10;i+) scanf(%f,&scorei); printf(n); aver=average(score); printf(average score is %5.2f n, aver);float average(float array10) int i; float aver, sum=array0; for(i=1;i10;i+) sum=sum+arrayi; aver=sum/10; return(aver); 10、对输入的两个整数按大小顺序输出,用指针变量作函数的参数。(地址传递)#include void main() void swap(int *p1,int *p2); int a,b; int *pointer_1, *pointer_2; scanf(%d%d,&a,&b); pointer_1=&a; pointer_2=&b; if(ab) swap(pointer_1,pointer_2); /*调用函数后,a,b的值进行了交换*/ printf(%d,%dn,a,b);/等价于:printf(%d,%dn, *pointer_1,*pointer_2); void swap(int *p1,int *p2) int temp; temp=*p1; *p1=*p2; *p2=temp;11、有一整型数组a,有10个元素。要输出各元素的值有三种方法(1)下标法#include void main() int a10; int i; for(i=0;i10;i+) scanf(%d,&ai); for (i=0;i10;i+) printf(%d ,ai); printf(n); (2)通过数组名计算出数组元素的地址,找出数组元素的值。#include void main() int a10; int i; for (i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) printf(%d , *(a+i); printf(n); 用指针变量指向数组元素#include void main() int a10; int *p,i; for (i=0;i10;i+) scanf(%d,&ai); for(p=a;p(a+10);p+) printf(%d ,*p); printf(n); 上述3种方法中有关数组元素的输入也可用下列方法表示: for(p=a;pa+10;p+) scanf(%d,p);12、输入两个学生学号、姓名和成绩,输出成绩较高的学生的学号、姓名和成绩。#includevoid main() struct student int num; char name20; int score; s1,s2; scanf(%d%s%d,&s1.num,,&s1.score); scanf(%d%s%d,&s2.num,,&s2.score); printf(num name scoren); if(s1.score=s2.score) printf(%d %s %dn,s1.num,,s1.score); else printf(%d %s %d,s2.num,,s2.score); 13、有N个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序存储并输出各学生的信息。#include#includevoid main() struct student int num; char name20; int score; s6=1,aaa,59,2,bbb,78,3,ccc,85, 4,ddd,64,5,eee,98,6,fff,83; int i,j,max,temp; char temp_name20; for(i=0;i6;i+) max=i;for(j=i+1;j=5;j+) if(smax.scoresj.score) max=j; /* temp_stu=si;si=smax;smax=temp_stu; */temp=si.num;si.num=smax.num;smax.num=temp; strcpy(temp_name,);strcpy(,);strcpy(,temp_name); temp=si.score;si.score=smax.score;smax.score=temp; printf(num name scoren); for(i=0;i6;i+) printf(%d %s %dn,si.num,,si.score); 14、从键盘输入个学生的有关数据,然后把它们转存到磁盘文件上去。#include #define SIZE 4struct student_type char name10; int num; int age; char addr15; studSIZE;void main() void save(); int i; for(i=0;iSIZE;i+)/*从键盘输入*/ scanf(%s%d%d%s,,&studi.num, &studi.age, studi.addr); save( ); void save( ) FILE *fp; int i; if(fp=fopen(stu-list,wb)=NULL) printf(cannot open filen); return; for(i=0;iSIZE;i+) if ( fwrite (&studi, sizeof(struct student_type), 1,fp)!=1) printf(“file write errorn”);/*出错*/fclose(fp); /*关闭文件*/ 15、将以上数据读出并显示#include #define SIZE 4struct student_type char name10; int num; int age; char addr15; studSIZE; void main( ) int i; FILE *fp; if (fp=fopen (stu_list,rb)=NULL) printf(cannot open filen); return; for(i=0;iSIZE;i+) fread(&studi, sizeof(struct student_type),1,fp); printf(%-10s%4d%4d%-15s n, , studi.num, studi.age,studi.addr); fclose (fp); 16、/有15个数按照从小到大的顺序存放在一个数组中。输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,输出“不在表中”#include stdio.h#define N 15void main() int i,number,top,bott,mid,loca,flag=1,sign; int aN=1,3,4,5,6,8,12,23,34,44,45,56,57,58,68;char c;for(i=0;iN;i+)printf(%d ,ai);printf(n);while(flag) printf(input number to look for:);scanf(%d,&number); getchar();sign=0;top=0;bott=N-1;if(numberaN-1)loca=-1;while(!sign)&(top=bott) mid=(bott+top)/2;if(number=amid) loca=mid;printf(Has found %d, its position is %dn,number,loca+1);sign=1;else if(numberamid)bott=mid-1;elsetop=mid+1;if(!sign|loca=-1)printf(can not find %d.n,number);printf(continue or not (Y/N)?);scanf(%c,&c);getchar();if(c=N|c=n)flag=0;60 1 2 3 4 5 6 7 8 9 10 11 12 13 141 3 4 5 6 8 12 23 34 44 45 56 57 58 681 3 4 5 6 8 12 23
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代运营佣金合同标准文本
- 企业业务提成合同标准文本
- 2025青岛劳动合同范文
- 公司裁员解聘合同样本
- 决算审核咨询合同样本
- 业主护栏回收合同样本
- 兼职货车司机合同样本
- 农村地契合同样本
- 出售转让商铺合同样本
- 与人共用合同标准文本
- 2020年教师教学技能大赛公共基础组-市级一等奖-(生态文明教育)实施报告
- 论王安忆小说《米尼》的女性悲剧
- 暂缓执行申请书
- 国际海事组织标准航海通信用语中英文对照
- 财务管理案例分析(雀巢并购徐福记)
- 材料非线性有限元讲义
- 药物开发时的晶型研究详解演示文稿
- 幼儿园课件:《不动手打人》
- 拜耳零售终端工作流程
- 2022年高考真题-英语(新高考II卷)
- GB/T 5781-2016六角头螺栓全螺纹C级
评论
0/150
提交评论