C程序上机实验报告(西电版).doc_第1页
C程序上机实验报告(西电版).doc_第2页
C程序上机实验报告(西电版).doc_第3页
C程序上机实验报告(西电版).doc_第4页
C程序上机实验报告(西电版).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

西安电子科技大学 C程序设计实验报告 院系: 人 文 学 院 姓名: 学号: 专业: C程序设计上机实验报告1.实验环境:软件系统:Windows XP SP3Microsoft Visual C+6.0硬件系统:联想台式机2.实验目的:掌握如何编辑、编译、链接调试运行c程序3.实验内容:(1)掌握顺序结构程序设计.(2)掌握选择结构程序设计(if 和switch语句的用法)(3)循环结构程序设计(while, do while, for语句的用法)。(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。4.实验要求:(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改之。(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。(3)运行程序,输入数据,分析结5实验结果:(1) 两个数相加并显示其结果 #include#include main( ) int number; float amount; number=100; amount=30.75+70.35; printf(“%dn”,number); printf(“%5.2f”,amount); system(pause);return 0;输出结果:100101.10请按任意键继续实验心得:代码行10是给变量赋值。整数值100赋给了变量number,在代码行12两个实数相加的结果赋给了变量amount。而语句 number=100; amount=30.75+70.35;称为赋值语句,其是以分号结束。打印语句: printf(“%dn”,number);包含两给参数。(2)整型数据相除。#includevoid main()int i=100,j=40;float f;f=i/j;printf(f=%fn,f);运行结果:f=2.000000实验心得:上述程序中f的结果为2.0,小数部分丢失。如需保留小数部分,可将“f=i/j”;改写成:f=(float)i/j; 强制类型转换得到的结果是一个瞬间量,它不改变表达式中的原有数据。(3)不同类型数据输出;#includevoid main()int a=-2;float b=123.456;char c=a;printf(a=%3d,%o,%x,%un,a,a,a,a);printf(b=%10.2f,%.2f %-10.2fn,b,b,b);printf(c=%3c,%-3cn,c,c);printf(%3s,%7.2s,%.3s,%-5.3sn,CHINA,CHINA,CHINA,CHINA);运行结果:a= -2,37777777776,fffffffe,4294967294b= 123.46,123.46 123.46c= a,a CHINA, CH,CHI,CHIPress any key to continue(4)无符号十进制格式的输出#includevoid main()int i=-1;printf(%d,%un,i,i);运行结果:-1,4294967295Press any key to continue(5)单个字符的输入和输出#include#includevoid main()char ch;ch=getche();putchar(ch);putchar(n);运行结果:输入一个字符,如a,显示aa(6)多个字符的输入和输出:#include#includevoid main()char a,b,c;a=getch();b=getch();c=getch();putchar(a);putchar(b);putchar(c);putchar(n);getch();运行结果:输入任意三个字符,如abc在屏幕上显示abc(7)字符串的输入和输出#includevoid main()char str80;gets(str);puts(str);运行结果:输入一串字符,如:aaa123,回车之后显示aaa123(8)输入一个小写字母,按大写输出#include#includevoid main()char ch;ch=getche(); putchar(ch-32);运行结果:输入一个小写字母如a,显示结果为aA。即ch的asc码值-32所得。(9)输入一个数,求平方根#include#include#includevoid main()float x,y;scanf(%f,&x); if(x0) printf(x0,errorn); exit(0); y=sqrt(x);printf(x=%f,y=%fn,x,y);实验结果:输入4,显示x=4.000000,y=2.000000输入-1,显示x0,error实验体会:了解了if语句的基本用法,当表达式为真时,执行后面的语句,当为假时,执行下一语句。(10)打印a,b两个数中较大的一个#includevoid main()int a,b;scanf(%d,%d,&a,&a);if(ab)printf(max=%dn,a);else printf(max=%dn,b);实验结果:45 1max=45Press any key to continue实验体会:scanf先把第一个输入的输赋给a,第二个赋给b,然后通过if,语句进行判断,打印。(11)输入一个字符,判断是字母数字还是特殊字符#include#includevoid main()char ch;printf(请输入一个字符:);ch=getche();if(ch=a&ch=A&ch=0&ch=9) printf(n它是一个数字!n);else printf(n它是一个特殊字符!n);运行结果:请输入一个字符:0它是一个数字!Press any key to continue请输入一个字符:a它是一个字母!Press any key to continue请输入一个字符:+它是一个特殊字符!Press any key to continue实验体会:此程序只能识部分字符了解了switch的结构特点(12)从键盘输入n个数,求其和#includevoid main()int i,n,k,sum;i=1;sum=0;printf(Input n:);scanf(%d,&n);while(i=n)scanf(%d,&k);sum=sum+k;i+;printf(nsum is:%dn,sum);实验结果:Input n:3123sum is:6Press any key to continue实验体会:While是先判断,后执行,以此来循环运算。(13)统计输入的字符个数#include#includevoid main() char ch; int len=0; puts(Type in a sentence,then press n); while(ch=getch()!=r) putchar(ch); len+; printf(nSentence is %d characters long.n,len);实验结果:Type in a sentence,then press C语言Sentence is 5 characters long.Press any key to continue(14)Do-while求n个数的和#includevoid main()int i,n,k,sum;i=1;sum=0;printf(Input n:);scanf(%d,&n);doscanf(%d,&k);sum=sum+k;i+;while(i=n);printf(nsum is:%dn,sum);实验结果:Input n:41 2 3 4sum is:10Press any key to continue实验体会:Do-while先执行do后面的东西,在进行判断,与while格式有差别(15)For循环球n个数的和#includevoid main()int i,n,k,sum;i=1;sum=0;printf(Input n:);scanf(%d,&n);for(i=1;i=n;i+)scanf(%d,&k);sum=sum+k;printf(nsum is:%dn,sum);运行结果:Input n:41 2 3 4sum is:10Press any key to continue实验体会:For循环比较简明。(16)数组实现输入5个学生的成绩,反向输出次序#includevoid main() int i; float score5; printf(Enter five scores:); for(i=0;i=0;i-) printf(%4.2fn,scorei);运行结果:Enter five scores:50 60 70 80 90The score in reverse order are:90.0080.0070.0060.0050.00Press any key to continue实验体会:(17)从键盘输入15个整数,并检查整数10是否包含在这些数据中,若是的话,它是第几个被输入的#includevoid main()int i,flag,data15;flag=0;printf(Input numbers;n);for(i=0;i15;i+) scanf(%d,&datai);for(i=0;i15;i+)if(datai=10)printf(10 is inputed in the position %d.n,i+1);flag=1;break;if(flag=0)printf(10 is not in numbers);实验结果:Input numbers;1 1 2 3 4 56 6 7 8 9 10 2 2 2 3 310 is inputed in the position 11.Press any key to continue(18)从键盘为一个NN的整型数组输入数据,将每一行的最小值显示出来#define N 6#includevoid main() int aNN,mN,i,j;printf(Input numbers:n);for(i=0;iN;i+)for(j=0;jN;j+)scanf(%d,&aij);for(i=0;iN;i+)mi=ai0;for(j=1;jaij) mi=aij;printf(Min is:);for(i=0;iN;i+)printf(%d,mi);运行结果:Input numbers:12 3 4 67 22 98 23 61 19 20 83 78 5 7 12 1519 89 1 6 8 211 22 81 36 2 453 32 17 19 11 5Min is:383125Press any key to continue(19)将数组内容逆置重放#define N 8#includevoid main( ) int aN,i,j,p,t;printf(Input %d number to the array:n,N);for(i=0;iN;i+)scanf(%d,&ai);p=N/2-1;for(i=0;i=p;i+) j=N-i-1; t=ai; ai=aj; aj=t;printf(nThearray has been inverted:);for(i=0;iN;i+)printf(%d ,ai);运行结果:Input 8 number to the array:1 2 3 4 5 6 7 8Thearray has been inverted:8 7 6 5 4 3 2 1 Press any key to continue(20)形参与实参的数值传递#include void swap(int x,int y)int z;z=x;x=y;y=z;main( ) int a,b;a=10;b=20;swap(a,b);printf(a=%dtb=%dn,a,b);运行结果:a=10 b=20Press any key to continue(21)用递归方法求n!#includefloat fac(int n) if(n=0|n=1)return 1;return n*fac(n-1);void main( ) int n;float y;printf(Input a number:);scanf(%d,&n);y=

温馨提示

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

评论

0/150

提交评论