西安电子科技大学自考《高级语言程序设计》课程实践报告3.docx
- 文档编号:9021010
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:24
- 大小:93.26KB
西安电子科技大学自考《高级语言程序设计》课程实践报告3.docx
《西安电子科技大学自考《高级语言程序设计》课程实践报告3.docx》由会员分享,可在线阅读,更多相关《西安电子科技大学自考《高级语言程序设计》课程实践报告3.docx(24页珍藏版)》请在冰点文库上搜索。
西安电子科技大学自考《高级语言程序设计》课程实践报告3
高级语言程序设计实验
准考证号:
011305928593姓名:
***
专业:
计算机信息管理学校:
西安华西专修大学
主考院校:
西安电子科技大学
一、实验目的
1.掌握C语言的基本数据类型,熟悉不同类型数据之间运算和赋值的转换规律。
2.掌握if,while,do-while,for,等条件循环语句实现的方法。
3.学习调试程序的方法。
4.掌握一维数组和二维数组的定义初始化的方法及处理数组有关的算法。
5.掌握指针的概念,能正确使用指针变量。
6.掌握系统提供的字符串处理函数。
7.掌握函数的定义和调用方法。
8.掌握函数之间数据传递的方法。
9.掌握结构型数据的特点及结构型成员的应用。
10.掌握文件和学会使用文件读,写,打开,关闭等文件操作函数
11.掌握带参数的主函数设计发法及程序运行的方法。
二、实验环境
1.CPU奔四2.4G内存内存256M硬盘40G显示器40纯屏显示
2.软件:
操作系统windowsxp
实验环境:
tubc,word2003
三.实验内容
(实验一数据类型运算符表达式和数据的输入输出)
1、符号位的扩展。
上机运行并输出运行结果:
main()
{charc1,c2;
unsignedu1,u2;
c1=’a’;c2=c1-32;
printf(“%c,%c,%d,%d\n”,c1,c2,c1,c2);
c1=’\176’;c2=’\376’;
i1=c1;12=c2;
u1=’\176’;u2=’\376’;
printf(“%d,%d,%u,%u\n”,i1,i2,u1,u2);
}
运行结果:
‘a’,’A’,97,65
126,-2,126,65534
2、算术表达式的计算。
上机运行并输出结果:
main()
{inti1,i2;
charc1,c2;
floatf;
i1=5;c1='A';
i2=i1+++i1;c2=--c1%2;
printf("%d,%d\n",i2,c2);
i1=10;i1*=i1-5;i2=i1%3;
printf("%d,%d\n",i1,i2);
i1=3;f=15/(i1--);
printf("%5.2f\n",f);
}
输出结果为:
10,0
50,2
5.00
3、关系表达式,逻辑表达式,条件表达式的计算。
main()
{inta=5,b=4,c=3,i;
i=a>b>c;
printf("%d,%d\n",i,a||b+c&&c-b);
a=b=c=2;
i=a>b&&(c=0);
printf("%d,%d,%d,%d\n",i,a,b,c);
i=(a==b?
(c=0):
a>b?
(c=1):
(c=-1));
printf("%d,%d,%d,%d\n",i,a,b,c);
}
运行结果:
0,1
0,2,2,2
0,2,2,0
4、位运算操作.
main()
{unsignedu1,u2,u3,u4;
u1=011;
u2=u1<<2;
printf("%u,%u,%x,%o\n",u1,u2,u2,u2);
u1=0xfe;u2=u1&~u1;u3=u1|~u1;u4=u1^~u1;
printf("%u,%u,%u,%u\n",u1,u2,u3,u4);
}
_结果:
9,36,24,44
254,0,65535,65535
5、逗号表达式的计算.
main()
{inta=2,b=3,c,i;
i=(b=a+1,c=b+2);
printf("%d,%d,%d,%d\n",a,b,c,i);
b=a++,c=++b,i=c+++a;
printf("%d,%d,%d,%d\n",a,b,c,i);
}
结果:
2,3,5,5
3,3,4,6
(实验二.基本语句的使用)
6、从键盘输入一个字符,判断是字符,数字还是其他字符。
将程序输出部分补充完整。
main()
{charch;
scanf("%c",&ch);
if('a'<=ch&&ch<='z'||'A'<=ch&&ch<='Z')
printf("%cisletter.\n",ch);
elseif('0'<=ch&&ch<='9')
printf("%cisdigit.\n",ch);
elseprintf("%cisother.\n",ch);
}
实验结果:
aisletter.
7、输入X的值,计算Y的值。
X(x<1)
Y=2X-1(1= 3X-11(x.>=10) #include main() {intx,y; scanf("%d",&x); if(x<1)y=x; elseif(x<10)y=2*x-1; elsey=3*x-11; printf("%d",y); } 输入: x=0.4输出: 0.4 输入: x=3输出: 5 输入: x=11输出: 22 8、用if语句或switch语句计算. #include main() {floatx,y; scanf("%f",&x); if(x>0&&x<=1.5) y=x+1; elseif(x>=1.5&&x<3.0) y=2*x*x+x+1; elseif(x>=3.0&&x<6.0) y=x+sin(x); elseif(x>=6.0&&x<9.0) y=x*x+cos(x); } 输入数据: 1 结果: 2 5、实验说明: 计算数列: 源代码: main() {longs=0,n,i=1; printf("\npleaseinputton: "); scanf("%ld",&n); do {s+=i; i+=2; } while(i<=2*n-1) printf("1+3+...+%ld=%ld\n",2*n-1,s); } 实验结果: pleaseinton: 7 1+3+……..+13=49 10、输入两个正整数m和n,求它们的最大公约数。 main() {inti,j,k,p,q printf("请输入两个正整数: "); scanf("%d,%d",&i,&j); k=i%j;p=i,q=j; while(k! =0) {i=j;j=k;k=i%j;} printf("\n%d4%d的最大公约数为: %d",p,q,j); 请输入两个正整数: 24,36 2436的最大公约数为: 12 11、利用公式e=1+1/1! +1/2! +……+1/n! 计算e的值,要求最后一项小于10-6 /1+1/1! +1/2! +....+1/n! =e main() {inti=1,n=1; floatp=1.0,e=1.0; while(p>10E-6) {n=n*i; p=1.0/n; i++; e=e+p; } printf("%f=1+1/1! +1/2! +....+1/n! \n",e); } 结果: e=1+1/1! +1/2! +…+1/n! =2.718282 (实验三数组及指针的应用) 12、输入字符串a,b,将字符串b连接在、字符串z之后。 将程序补充完整。 (不 用字符串连接函数。 #include main() {chara[80],b[40],*pa=a,*pb=b; gets(pa);gets(pb); while(*pa! ='\0')pa++; while(*pb! ='\0') {*pa=*pb; pa++; pb++; } puts(a); puts(b); } 运行结果: 如数组a为: abc123,数组b为dfg56 结果是: abc123dfg56 13、输入10个正整数,存入数组a中然后按从大到小的顺序进行排序并输出。 main() {inti,j,m,n,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(m=1;m<10;m++) for(j=9,i=0;i<10-m;i++,j--)/*按从大到小的顺序排列*/ if(a[j]>a[j-1]) { n=a[j],a[j]=a[j-1],a[j-1]=n; } printf("10个整数按从大到小的顺序排列"); for(i=0;i<10;i++) printf("%d",a[i]); printf("\n"); } 实验结果: 12,36,-35,56,-15,35,40,58,-100, 58,56,40,36,35,12,-15,-35,-100 14、定义并初始化一个3行4列的二维整形数组, 找出其中的最大值,然后输出二维数组和最大值。 main() {inta[3][4],i,j,max; for(i=0;i<3;i++) for(j=0;j<4;j++) {scanf("%d",&a[i][j]); max=a[0][0]; } for(i=0;i<3;i++) for(j=0;j<3;j++) {if(max<=a[i][j]) max=a[i][j]; } for(i=0;i<3;i++) for(j=0;j<4;j++) { printf("%d",a[i][j]); } printf("\n"); printf("max=%d\n",max);} 输入数据: 123456789121415 结果: 12345678912141515 (实验四函数及指针的应用) 15、利用函数求一维数组中的最大值和最小值。 #defineN5 main() {voidmax_min(); inta[n],i,max,min; for(i=0;i scanf("%d",&a[i]); max_min(a,&max,&min,n); for(i=0;i printf("%5d",a[i]); printf("\nmax=%d,min=%d\n",max,min); } voidmax_min(a,p_max,p_min,n) inta[],*p_max,*p_min,n; {inti; *p_max=*p_min=a[0]; for(i=1;i {if(a[i]>*p_max)*p_max=a[i]; if(a[i]<*p_min)*p_min=a[i]; } return; } 实验结果: 8,32,46,15,20 max=46,min=8 16、分析程序运行结果,然后运行程序进行验证.比较静态变量与自动变量的区别。 main() {voidfun(); fun(); fun(); } voidfun() {inta=0; staticintb=0; a++;b++; printf("%d,%d\n",a,b); } 实验结果: 1,12 3.找出100—200之间的所有素数,主函数调用函数判别一个整数是否为素数,主函数中输出是否是素数的信息。 #include"math.h" func(intm) {inti,k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) {printf("%d,",m); } } main() {intm,t; for(m=101;m<=200;m=m+2) func(m); } 输出: 101,103,107,109,113,127,131,137,149,151,157,163,167,173,179,181,191,193,197,199 5.数递归的方法求Fibonacci数列的前n项。 int(m); intm; {if(n<0) {printf("inputerror! \n"); return(-1); else if(m==0||m==1) return (1); else return(f(m-2)+f(m-1)); } main() {inti,f[100]; scanf(%d%,&n); for(i=0;i {F[i]=f[i];printf(“%d”,F(i);)} 实验结果: 11235 813213455 89144233377610 9871597258441816765 只部分结果。 。 。 。 。 。 9 6.voidfun() {charn; scanf(″%x″,&n); printf(″%d″,n); } 输入数据: f 结果: 15 (实验五结构型、共用体) 1.在3行2列二维数组中找出最大元素值,存入结构型数据中。 structs {intmax_i,max_j; floatmax_val; }; main() {structsmax,*p=&max; floata[3][2]={7,-2,9,28,-16,23}; inti,j; (*p).max_val=a[0][0]; for(i=0;i<3;i++) for(j=0;j<2;j++) if(a[i][j]>(*p).max_val) {(*p).max_val=a[i][j]; (*p).max_i=i; (*p).max_j=j; } printf("\n\nmax=%6.2f,line=%d,col=%d\ \n",(*p).max_val,(*p).max_i,(*p).max_j); } 2.手工分析程序的运行结果,然后运行程序进行验证。 unionu {inti; floatf; charc; }; main() {unionux; printf("%dbytes\n",sizeof(unionu)); if((&x.i==&x.f)&&(&x.c))printf("equal! \n"); elseprintf("notequal! \n"); } 结果: 4bytes equal! 3.有5个学生,每个学生的数据包括学号、姓名、三门课成绩和平均成绩。 #defineN5 structstudent {charnum[6]; charname[8]; intscore[4]; floatavr; }stu[N]; main() {inti,j,max,maxi,sum; floataverage; for(i=0;i {printf("\ninputscoresofstudent%d: \n",i+1); printf("no.: "); scanf("%s",stu[i].num); printf("name: "); scanf("%s",stu[i].name); for(j=0;j<3;j++) {printf("score%d: ",j+1); scanf("%d",&stu[i].score[j]); } } average=0; max=0; maxi=0;N for(i=0;i {sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0; average+=stu[i].avr; if(sum>max) {max=sum; maxi=i; } } average/=N; printf("nonamescore1score2score3average\n"); for(i=0;i {printf("%5%10s",stu[i].num,stu[i].name); for(j=0;j<3;j++) printf("9d",stu[i].score[j]); printf("%8.2f\n",stu[i].avr); printf("average=%6.2f\n",average); printf("thehighestscoreis: %s,score.total: %d",stu[maxi].name,max); } } 运行结果: 输入信息后则得: no.namescore1score2score3average 101wang93898789.67 102li85807881.00 103zhao65705964.67 104kou77708376.67 105feng99979597.00 average=80.03 thehighestscoreis: fengscore.total: 299 (实验六.文件的应用) 在主函数调用函数”print”从文本文件中读取数据显示输出。 程序是: #include"stdio.h" #defineN100 voidcreat(file) charfile[12]; {FILE*fp; inti; if((fp=fopen(file,"r"))==NULL) {printf("filecannotopen! \n"); exit(0); } for(i=1;i<=N;i+=2) fprintf(fp,"%3d",i); fclose(fp); return; } voidprint(file) charfile[12]; {FILE*fp; inti,k=0; if((fp=fopen(file,"w"))==NULL) {printf("filecannotopen! \n"); exit(0); } while(! feof(fp))此图是实验六第2题的流程图 {fscanf(fp,"%d",&i); k++; printf("%5d",i); if(k%10==0)printf("\n"); } printf("\n"); fclose(fp); return; } main() {charf_name[12]; gets(f_name); creat(f_name); printf(f_name); } 结果是: 135791113 15171921232527 29313335373941 43454749515355 57596163656769 71737577798183 8587899193959799 (实验七编译预处理) 2.指出运行程序所完成的功能。 #include"stdio.h" main(argc,argv) intargc; char*argv[]; {FILE*fp,*fg; if((fp=fopen(argv[1],"r"))==NULL) {printf("filecannotopen! \n"); exit(0); } if((fg=fopen(argv[2],"w"))==NULL) {printf("filecannotopen! \n"); exit(0); } while(! feof(fp))fputc(fgetc(fp),fg); fclose(fp);fclose(fg); }_ 程序功能是: 先以只读的方式打开文本文件。 再以只写的方法打开文本文件。 并将fp的字节数据写到fg指向的文件中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计 西安电子科技大学 自考 高级 语言程序设计 课程 实践 报告
文档标签
- flash实践考试课程设计
- 高级语言程序设计西南交通大学
- 金陵科技学院语言程序设计
- 语言课程设计报告高速公路
- VB程序设计电子科18VB
- 南昌大学电子技术课程设计报告
- 桂林电子科技大学语言程序设计习题
- 电子科技大学课程设计报告火灾
- 江苏科技大学课程实践
- 华中科技大学语言课程设计实验
- 西安电子科技大学课程实验报告
- 西安邮电大学课程设计报告西安邮电大学课程设计
- 电子科技大学课程设计报告函数
- 西安科技学校两级
- 河北科技大学模电课设报告
- 西南交大高级语言
- 语言程序设计课程设计水电煤气
- 语言程序设计实践教学课程标准
- 审计课程设计杭州电子科技大学
- FLASH课程设计
- 离合器接合课程设计说明书
- 机械设计课程真实实验
- 工学机械设计基础考试
- 设计基础自考主观
- 联网基础实践考试
- 全国自考机械设计基础