C语言基础代码_第1页
C语言基础代码_第2页
C语言基础代码_第3页
C语言基础代码_第4页
C语言基础代码_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、输入成绩,判断是否及格#include<stdio.h>voidmain(){floata,b,max;printf("pleaseentera:");scanf("%f",&a);if(a>=60)printf("及格\n");elseprintf("不及格\n");}2、输入两个学生a和b的成绩,输出其中高的成绩#include<stdio.h>voidmain(){floata,b,max;printf("pleaseenteraandb:");scanf("%f,%f",&a,&b); //数据输入时若无逗号一般用空格区分两输入值,本例一定要在两数之间加逗号if(a>=b)max=a;if(b>a)max=b;printf("max=%f\n",max);}3、要求按照百分制考试分数输出等级。#include"stdio.h"main(){intgrade;printf("inputgrade=");scanf("%d",&grade);switch((int)(grade/10)){case10:case9:printf("A\n"); break;case8:printf("B\n");break;case7:printf("C\n");break;case6:printf("D\n"); break;default:printf("E\n");}黑龙江大学计算机学院、软件学院 《程序设计基础》实验讲义黑龙江大学计算机学院、软件学院 《程序设计基础》实验讲义、求1+2+ +100的和,分别用while、do…while和for语句实现(1)while#include<stdio.h>voidmain(){intsum=0,i=1;while(i<=100){sum=sum+i;i++;}printf("sum=%d\n",sum);}(2)do...while#include<stdio.h>voidmain(){intsum=0,i=1;do{sum=sum+i;i++;}while(i<=100);printf("sum=%d\n",sum);}(3)for#include<stdio.h>voidmain(){intsum=0,i;for(i=1;i<=100;i++)sum=sum+i;printf("sum=%d\n",sum);}

5、输入10个数,用冒泡法对这10个数由小到大排序。#include<stdio.h>voidmain()inta[10];inti,j,t;//数组输入/*//数组输入/*进行9次循环,实现9趟比较*//*在每趟中进行9-j次比较*//*相邻两个数进行比较*/for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;/*满足条件进行互换*/printf("thesortednumbers:\n");for(i=0;i<10;i++) //数组输出printf("%d",a[i]);printf("\n");6、选择排序#include<stdio.h>voidmain(){inti,j,min,temp;inta[10]={6,90,45,56,1,15,44,78,58,101};//为数组赋初值//或键盘输入/*printf("enterdata:\n");£0=(1=0;1<10;1++)//输入10个数{printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");for(i=0;i<10;i++)//输出10个数{printf("%5d",a[i]);}printf("\n");*/for(i=0;i<9;i++){min=i;for(j=i+1;j<=9;j++){if(a[min]>a[j])min=j;}temp=a[i];a[i]=a[min];a[min]=temp;}printf("\nThesortednumbers:\n");for(i=0;i<10;i++)//输出排序后的10个数{printf("%5d",a[i]);}printf("\n");getchar();}7、〃编一程序,将两个字符串连接起来。不要用函数strcat#include"stdio.h"voidmain(){chars1[80],s2[40];inti=0,j=0;printf("\ninputstring1:");scanf("%s",s1);printf("inputstring2:");scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("Thenewstringis:%s\n",s1);}8、函数1:(参数为值传递)#include<stdio.h>voidmain(){intmax(intx,inty);inta,b,c;scanf("%d%d",&a,&b);c=max(a,b);printf(“max=%d\n”,c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;returnz;}9、函数2:(参数为地址传递)有一维数组score,内放10个学生成绩,定义函数average求平均成绩。#include<stdio.h>voidmain(){floataverage(floatarray[10]);floatscore[10],aver;inti;printf("input10scores:\n");for(i=0;i<10;i++)scanf("%f",&score[i]);printf("\n");aver=average(score);printf("averagescoreis%5.2f\n",aver);}floataverage(floatarray[10]){inti;floataver,sum=array[0];for(i=1;i<10;i++)sum=sum+array[i];aver=sum/10;return(aver);}10、对输入的两个整数按大小顺序输出,用指针变量作函数的参数。(地址传递)#include<stdio.h>voidmain(){voidswap(int*p1,int*p2);inta,b;int*pointer_1,*pointer_2;scanf("%d%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);/*调用函数后,a,b的值进行了交换*/printf("%d,%d\n",a,b);//等价于:printf("%d,%d\n",*pointer_1,*pointer_2);}voidswap(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;}11、有一整型数组a,有10个元素。要输出各元素的值有三种方法(1)下标法#include<stdio.h>voidmain(){inta[10];inti;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}(2)通过数组名计算出数组元素的地址,找出数组元素的值。#include<stdio.h>voidmain(){inta[10];inti;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%d",*(a+i));printf("\n");}⑶用指针变量指向数组元素#include<stdio.h>voidmain(){inta[10];int*p,i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(p=a;p<(a+10);p++)printf("%d",*p);printf("\n");}上述3种方法中有关数组元素的输入也可用下列方法表示:for(p=a;p<a+10;p++)scanf("%d",p);12、输入两个学生学号、姓名和成绩,输出成绩较高的学生的学号、姓名和成绩。#include<stdio.h>voidmain(){structstudent{intnum;charname[20];intscore;}s1,s2;scanf("%d%s%d",&s1.num,,&s1.score);scanf("%d%s%d",&s2.num,,&s2.score);printf("numnamescore\n");if(s1.score>=s2.score)printf("%d %s %d\n",s1.num,,s1.score);elseprintf("%d %s %d",s2.num,,s2.score);}13、有N个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序存储并输出各学生的信息。#include<stdio.h>#include<string.h>voidmain(){structstudent{intnum;charname[20];intscore;}s[6]={{1,"aaa",59},{2,"bbb",78},{3,"ccc",85},{4,"ddd",64},{5,"eee",98},{6,"fff",83}};inti,j,max,temp;chartemp_name[20];for(i=0;i<6;i++){max=i;for(j=i+1;j<=5;j++){if(s[max].score<s[j].score)max=j;}/*temp_stu=s[i];s[i]=s[max];s[max]=temp_stu;*/temp=s[i].num;s[i].num=s[max].num;s[max].num=temp;strcpy(temp_name,s[i].name);strcpy(s[i].name,s[max].name);strcpy(s[max].name,temp_name);temp=s[i].score;s[i].score=s[max].score;s[max].score=temp;}printf("numnamescore\n");for(i=0;i<6;i++)printf("%d%s%d\n",s[i].num,s[i].name,s[i].score);}14、从键盘输入4个学生的有关数据,然后把它们转存到磁盘文件上去。#include<stdio.h>#defineSIZE4structstudent_type{charname[10];intnum;intage;charaddr[15];}stud[SIZE];voidmain(){voidsave();inti;for(i=0;i<SIZE;i++)/*从键盘输入*/scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);save();}voidsave(){FILE*fp;inti;if((fp=fopen("stu-list","wb"))==NULL){printf("cannotopenfile\n");return;}for(i=0;i<SIZE;i++)if(fwrite(&stud[i],sizeof(structstudent_type),1,fp)!=1)printf(“filewriteerror\n");/*出错*/fclose(fp);/*关闭文件*/}15、将以上数据读出并显示#include<stdio.h>#defineSIZE4structstudent_type{charname[10];intnum;intage;charaddr[15];}stud[SIZE];voidmain(){inti;FILE*fp;if((fp=fopen("stu_list","rb"))==NULL){printf("cannotopenfile\n");return;}for(i=0;i<SIZE;i++){fread(&stud[i],sizeof(structstudent_type),1,fp);printf("%-10s%4d%4d%-15s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);}fclose(fp);}16、//有15个数按照从小到大的顺序存放在一个数组中。输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,输出“不在表中”#include"stdio.h"#defineN15voidmain(){inti,number,top,bott,mid,loca,flag=1,sign;inta[N]={1,3,4,5,6,8,12,23,34,44,45,56,57,58,68};charc;for(i=0;i<N;i++)printf("%d",a[i]);printf("\n");while(flag){printf("inputnumbertolookfor:");scanf("%d",&number);getchar();sign=0;top=0;bott=N-1;if((number<a[0])||(number>a[N-1]))loca=-1;while((!sign)&&(top<=bott)){mid=(bott+top)/2;if(number==a[mid]){loca=mid;printf("Hasfound%d,itspositionis%d\n",number,loca+1);sign=1;elseif(number<a[mid])bott=mid-1;elsetop=mid+1;if(!sign||loca==-1)printf("cannotfind%d.\n",number);printf("continueornot(Y/N)?");scanf("%c",&c);getchar();if(c=='N'||c=='n')flag=0;10 11 12 13 1410 11 12 13 1445 56 57 58 68;45 56 57 58 6845 56 57 58 6845 56 57 58 68TOC\o"1-5"\h\z0 1 2 3 4 5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论