版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C语言程序设计》实验报告2023~2023学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运营环境和运营C程序的方法所使用的工具软件及环境:VisualC++6.0ﻩ一、实验目的:1.了解在VisualC++6.0环境下如何编辑、编译、连接和运营一个C程序;2.通过运营简朴的C程序,初步了解C源程序的特点。二、预习内容:教材《C语言程序设计教程》第1章。三、实验内容:1.在VisualC++6.0环境下输入并运营下面的程序:#include<stdio.h>intmain(){printf("ThisisaCprogram.\n");return0;}2.在VisualC++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运营程序,并观测分析运营结果。#include<stdio.h>intmain(){inta,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return0;}四、实验结果:1.运营结果(或截图):ThisisaCprogram.Pressanykeytocontinueﻩ2.(1)改正后的源程序:#include<stdio.h>intmain(){ inta,b,sum;ﻩa=3; b=4; sum=a+b;ﻩprintf("%d+%d=%d\n",a,b,sum);ﻩreturn0;}(2)运营结果(或截图):ﻩﻩ 3+4=7五、思考题:1.一个C程序上机的环节有哪些?答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运营可执行的目的程序。2.组成C程序的基本单位是函数,一个函数涉及哪几个部分?答:一个函数涉及两部分:分别为函数头或函数首部和函数体。成绩指导教师署名实验二实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:VisualC++6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3.掌握基本算术运算符及其表达式的使用方法;4.掌握++、--运算符、赋值运算符及其表达式的使用方法。二、预习内容:教材《C语言程序设计教程》第2章。三、实验内容:1.在VisualC++6.0环境下输入下面的程序,编译、连接、调试该程序。main(){charm,n;m=280;n=320;printf(“%d\t%d\n”,m,n);printf(“%c\t%c\n”,m,n);}2.在VisualC++6.0环境下输入并运营下面的程序,观测分析运营结果。#include<stdio.h>intmain(){inta=3,b=4,c=8;floatd,e;d=a+b/c;e=a+(float)b/c;//请将此处d改为bprintf("d=%f,e=%f\n",d,e);}3.在VisualC++6.0环境下输入并运营下面的程序,观测分析运营结果。#include<stdio.h>main(){inta,b,c,d,i,j,m,n;a=b=c=d=3;i=a++;j=++b;m=c--;n=--d;printf("a=%d,b=%d,c=%d,d=%d,i=%d,j=%d,m=%d,n=%d\n",a,b,c,d,i,j,m,n);}4.在VisualC++6.0环境下输入并运营下面的程序,观测分析运营结果。#include<stdio.h>main(){inta=4;a+=a-=a*a+a;printf("a=%d\n",a);}四、实验结果:1.运营结果(或截图):2464ﻸ@2.运营结果(或截图):d=3.000000,e=3.500000d=3.000000,e=3.3750003.运营结果(或截图):a=4,b=4,c=2,d=2,i=3,j=4,m=3,n=24.运营结果(或截图):a=-32五、思考题:1.给变量命名应当注意哪些问题?答:每个变量必须进行数据类型说明;2.程序2的运营结果中,d和e的值为什么不同?答:d的赋值语句中,除法是两个整型数字的运算,其结果没有小数位;而e中对b进行了强制转换为实型,所以其除法运算结果有小数位。 3.程序3的运营结果中,i和j的值为什么不同?m和n的值为什么不同?//改为程序3答:i(m)是通过后自增(后自减)实现的,而后自增(后自减)是先参与其他运算,后对变量递增(递减); 而j(n)是通过前自增(前自减)实现的,其是先对变量递增(递减),后再参与其他运算。4.请分析表达式a+=a-=a*a+a的运算过程(写出运算环节)。ﻩﻩ答:先将a-(a*a+a)赋值给a,再将a+a赋值给a。成绩指导教师署名实验三实验项目名称:简朴的输入输出及顺序程序设计 所使用的工具软件及环境:VisualC++6.0一、实验目的:1.掌握整型、实型与字符型数据的对的输入方法(scanf函数的使用);2.掌握整型、实型与字符型数据的对的输出方法(printf函数的使用);3.掌握编写顺序程序的方法。二、预习内容:教材《C语言程序设计教程》第3章。三、实验内容:1.编写C程序,按下列公式计算并输出S的值,其中a和b的值有键盘输入。main(){inta,b;floats;scanf(“%d,%d”,&a,&b);s=2.0*a*b/(a+b)/(a+b);printf(“s=%f\n”,s);}①输入并调试。②将scanf函数改为scanf(“%d%d”,&a,&b);再编译,运营。③观测结果。2.在VisualC++6.0环境下输入并运营下面的程序,观测分析程序运营过程及结果。#include<stdio.h>intmain(){inta,b,sum;printf("请输入第一个整数:");scanf("%d",&a);printf("请输入第二个整数:");scanf("%d",&b);sum=a+b;printf("%d+%d=%d\n",a,b,sum);}3.设圆半径r=1.5,编写程序求圆周长、圆面积和圆球的体积。规定用scanf语句输入半径,输出时取小数点后两位。四、实验结果:1.输入数据4,5输入修改后的数据454↙5↙运营结果s=0.493827运营结果s=0.493827s=0.493827因素字符控制串中有“,”,所以输入时必须有“,”因素字符控制串中没有除说明符以外的其他字符,所以输入时可以通过空格分隔字符控制串中没有除说明符以外的其他字符,所以输入时可以通过回车分隔2.运营结果(或截图):请输入第一个整数:1请输入第二个整数:21+2=33.(1)程序中用到的变量(类型)单精度浮点数 (2)算法(用伪代码描述或自然语言) c=2*pi*r; s=pi*r*r; v=4*(pi*r*r*r)/3;(3)源程序清单#include<stdio.h>intmain()#definepi3.14{ floatr,c,s,v;ﻩprintf("请输入圆的半径:");ﻩscanf("%f",&r);ﻩc=2*pi*r;ﻩs=pi*r*r;ﻩv=4*(pi*r*r*r)/3.0;ﻩprintf("c=%.2f,s=%.2f,v=%.2f\n",c,s,v);}ﻩ (4)运营结果(或截图)请输入圆的半径:1.5c=9.42,s=7.07,v=14.13五、思考题:scanf(“%d,%d”,&a,&b)与scanf(“%d%d”,&a,&b)输入数据的方式有什么不同?从两种输入方式的对比中你得到什么启发?答:第一种输入方式用户必须以“,”分隔,而第两者可用空格、回车分隔,用户在不知情的情况下,很难知道用“,”分隔输入的数据。所以编程人员可以在scanf()语句前用printf()语句进行注释,让用户知道用什么来分隔输入的数据。成绩指导教师署名实验四实验项目名称:选择结构程序设计 所使用的工具软件及环境:VisualC++6.0一、实验目的:1.对的使用关系运算符和关系表达式;2.对的使用逻辑运算符和逻辑表达式;3.纯熟使用if语句实现选择结构程序;2.纯熟使用switch语句实现多分支选择结构程序。二、预习内容:教材《C语言程序设计教程》第4章。三、实验内容:1.下面程序的功能是:输入学生成绩,若成绩在90分以上,输出“Excellent!”;若成绩在60—89分之间,输出“Pass!”;若成绩在60分以下,输出“Fail!”。请将程序补充完整,并上机运营程序。#include<stdio.h>intmain(){intscore;printf("请输入分数(0--100):");scanf("%d",&score);if(score>100||score<0)printf("InputError!\n");elseif(score>=90)printf("Excellent!\n");elseif(score>=60)printf("Pass!\n");elseprintf("Fail!\n");}运营该程序4次,分别输入4个不同的数据,相应4种不同的情况,记录运营结果:输入数据206199111运营结果Fail!Pass!Excellent!InputError!2.有如下分段函数:请输入x的值,求解相应的y值。3.给出一个百分制成绩,规定输出成绩等级’A’、’B’、’C’、’D’、’E’。90-100为’A’,80-89为’B’,70-79为’C’,60-69为’D’,60分以下为’E’。用switch语句写。四、程序中所用的变量及其类型:2.变量:x、y;数据类型:都为单精度浮点数3.变量:score数据类型:整型五、算法(用伪代码或自然语言描述):2.ﻩif(x>=10)ﻩ printf("y=%f\n",3*x-11);ﻩelseif(x>=1)ﻩﻩprintf("y=%f\n",2*x-1);ﻩelseﻩﻩprintf("y=%f\n",x);3.switch(score/10) {ﻩﻩcase10: ﻩ printf("A\n");ﻩ ﻩbreak;ﻩ case9: ﻩﻩprintf("A\n"); ﻩbreak; ﻩcase8:ﻩ ﻩprintf("B\n");ﻩﻩ break; case7:ﻩﻩﻩprintf("C\n");ﻩﻩ break; ﻩcase6: ﻩﻩprintf("D\n");ﻩﻩ break;ﻩﻩdefault: ﻩ printf("E\n"); }六、源程序清单:2.#include<stdio.h>intmain(void){ﻩfloatx,y; printf("请输入一个x:"); scanf("%f",&x);ﻩif(x>=10)ﻩ printf("y=%f\n",3*x-11); elseif(x>=1)ﻩ printf("y=%f\n",2*x-1);ﻩelseﻩ printf("y=%f\n",x);ﻩreturn0;}3.#include<stdio.h>intmain(void){ intscore; printf("请输入一个成绩:");ﻩscanf("%d",&score); switch(score/10)ﻩ{ case10: printf("A\n"); break;ﻩﻩcase9: ﻩprintf("A\n");ﻩﻩﻩbreak;ﻩ case8: ﻩ printf("B\n"); break;ﻩﻩcase7: ﻩ printf("C\n");ﻩ break;ﻩ case6:ﻩﻩﻩprintf("D\n"); ﻩbreak;ﻩﻩdefault: ﻩ printf("E\n");ﻩ} return0;}七、实验结果:2.运营结果(执行程序3次,分别输入不同的3个数,相应3种不同的情况):输入数据211-5运营结果3.00000022.000000-5.0000003.运营结果(执行程序5次,分别输入5组不同的数据,相应5种不同的情况):输入数据9980706259运营结果ABCDE成绩指导教师署名实验五实验项目名称:简朴循环程序设计ﻩ所使用的工具软件及环境:VisualC++6.0一、实验目的:1.掌握循环程序的基本结构;2.纯熟掌握while、do—while及for语句,并会用来编写循环结构程序。二、预习内容:教材《C语言程序设计教程》第4章。三、实验内容:1.编写一个程序,计算并输出数列:1,3,5,…,2n-1,…的前几项之和,其中n由键盘输入。规定分别用3种循环语句实现。方法1:用for语句实现。main(){longs,n,k,i;scanf(“%ld“,&n);k=2*n-1;s=0;for(i=1;i<=k;i+=2)s+=i;printf(“1+3+…+%ld=%ld\n”,k,s);}方法2:用while语句实现。main(){longs=0,n,i=1;scanf(“%ld”,&n);while(i<=(2*n-1)){s+=i;i+=2;}printf(“1+3+…+%ld=%ld\n”,2*n-1,s);}方法3:用do-while语句实现。main(){longs=0,n,i=1;scanf(“%ld”,&n);do{s+=i;i=i+2;}while(i<=(2*n)-1);printf(“1+3+…+%ld=%ld\n”,2*n-1,s);}填上所缺的空,运营程序,写出结果。2.输入两个正整数,求其中最大公约数和最小公倍数。四、程序中所用的变量(类型及其初值):2.变量i,k,j,m,least,greatest均为整型变量,没有对其赋予初值。五、算法(用伪代码描述):2. for(j=i;j<=i||j>=1;j--)//此处for循环为求最大公约数ﻩ{ﻩ if(i%j==0) ﻩ greatest=j;ﻩ elseﻩ ;ﻩ if(k%greatest==0) ﻩ{ ﻩ printf("%d和%d的最大公约数为%d!\n",i,k,greatest); ﻩ break; ﻩ}ﻩﻩelseﻩﻩ ; }ﻩleast=i*k/greatest;ﻩprintf("%d和%d最小公倍数为%d!\n",i,k,least);六、源程序清单:2.#include<stdio.h>intmain(void){ inti,k,j,m,least,greatest;//i,k存储的是两个正整数,least为最小公倍数,greatest为最大公约数ﻩprintf("请输入两个正整数(中间以空格分隔):");ﻩscanf("%d%d",&i,&k); for(j=i;j<=i||j>=1;j--)//此处for循环为求最大公约数ﻩ{ if(i%j==0)ﻩﻩﻩgreatest=j;ﻩﻩelse ﻩ ;ﻩ if(k%greatest==0)ﻩ {ﻩﻩﻩprintf("%d和%d的最大公约数为%d!\n",i,k,greatest); ﻩ break;ﻩ }ﻩ else ﻩ ;ﻩ}ﻩleast=i*k/greatest;ﻩprintf("%d和%d最小公倍数为%d!\n",i,k,least); return0;}七、实验结果:1.在下表中写出输入的数据及其运营结果:方法1方法2方法3输入数据121212运营结果1+3+…+23=1441+3+…+23=1441+3+…+23=1442.运营结果(或截图):请输入两个正整数(中间以空格分隔):361236和12的最大公约数为12!36和12最小公倍数为36!成绩指导教师署名实验六实验项目名称:多层循环程序设计及break、continue语句在循环程序中的应用 所使用的工具软件及环境:VisualC++6.0一、实验目的:1.掌握多层循环程序的执行过程及设计方法;2.掌握break及continue语句在循环程序中的使用方法。二、预习内容:教材《C语言程序设计教程》第4章。三、实验内容:1.百马百担问题。有100匹马,驮100担。大马驮3担,中马驮2担,两个小马驮1担。问大、中、小马各多少?(考虑适当减少循环次数)2.编程输出100以内的所有素数。3.编程输出所有水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数自身,例如,153=13+53+33,所以153是一个水仙花数)。四、程序中所用的变量(类型及其初值):1.变量x,y,z均为整型变量,均未赋予初值2.整型变量x,y,均未赋予初值3.整型变量i,m,n,n初值为0,m、n未赋予初值ﻩ五、算法(用伪代码或自然语言描述):1. for(x=0;x<=20;x++)ﻩ{ for(y=0;y<=33;y++)ﻩ {ﻩﻩﻩz=100-x-y; ﻩ if(z%2==0&&3*x+2*y+z/2==100)ﻩﻩﻩﻩprintf("大马有%d匹,中马有%d匹,小马有%d匹!\n",x,y,z);ﻩﻩ} }2. for(i=1;i<=100;i+=1) {ﻩﻩfor(j=2;j<=i;++j) ﻩ{ﻩ if(i%j==0)ﻩﻩﻩ{ﻩﻩ ﻩif(i==j) ﻩprintf("%-5d",i); ﻩ ﻩelseﻩ break;ﻩﻩﻩ} ﻩ} }3.ﻩfor(i=100;i<=999;++i) { ﻩintm,n=0;ﻩ m=i%10;ﻩﻩn+=m*m*m; ﻩm=(i/10)%10; ﻩn+=m*m*m;ﻩ m=(i/100)%10;ﻩﻩn+=m*m*m; if(n==i)ﻩ printf("%d\n",i); else ;ﻩ}六、源程序清单:1.#include<stdio.h>intmain(void){ﻩintx,y,z;ﻩfor(x=0;x<=20;x++) {ﻩ for(y=0;y<=33;y++) ﻩ{ z=100-x-y;ﻩﻩ if(z%2==0&&3*x+2*y+z/2==100) ﻩﻩprintf("大马有%d匹,中马有%d匹,小马有%d匹!\n",x,y,z); }ﻩ} return0;}2.#include<stdio.h>intmain(void){ﻩinti,j;ﻩfor(i=1;i<=100;i+=1)ﻩ{ for(j=2;j<=i;++j) ﻩ{ if(i%j==0)ﻩ {ﻩ ﻩ if(i==j) ﻩ printf("%-5d",i);ﻩﻩ ﻩelse break;ﻩﻩ } ﻩ}ﻩ}ﻩreturn0;}3.#include<stdio.h>intmain(void){ inti;ﻩfor(i=100;i<=999;++i) { ﻩintm,n=0;ﻩﻩm=i%10; n+=m*m*m; ﻩm=(i/10)%10;ﻩﻩn+=m*m*m; m=(i/100)%10;ﻩﻩn+=m*m*m;ﻩ if(n==i) ﻩ printf("%d\n",i);ﻩ elseﻩ ﻩ;ﻩ} return0;}七、实验结果:1.运营结果(或截图):大马有2匹,中马有30匹,小马有68匹!大马有5匹,中马有25匹,小马有70匹!大马有8匹,中马有20匹,小马有72匹!大马有11匹,中马有15匹,小马有74匹!大马有14匹,中马有10匹,小马有76匹!大马有17匹,中马有5匹,小马有78匹!大马有20匹,中马有0匹,小马有80匹!2.运营结果(或截图):23571113171923293137414347535961677173798389973.运营结果(或截图):153370371407成绩指导教师署名实验七实验项目名称:一维、二维和字符数组程序设计ﻩ所使用的工具软件及环境:VisualC++6.0一、实验目的:1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;2.掌握字符数组的使用。二、预习内容:教材《C语言程序设计教程》第5章。三、实验内容:1.从键盘输入一个整数n(n<=10)和n个整数,存入数组a中,先依次输入各个数组元素的值,然后对数组a的所有元素值从小到大的顺序重新排列后,再依次输出。main(){inta[10],n,i,j,min,ax;printf(“inputn=”);scanf(“%d”,&n);printf(“inputarray[0]a[1]…a[%d]:\n”,n-1);for(i=0;i<n;i++)scanf(“%d”,&a[i]);printf(“beforesort:array\n”);for(i=0;i<n;i++)printf(“%d”,a[i]);printf(“\n”);for(i=0;i<n;i++){min=i;for(j=i+1;j<n;j++)if(a[j]<a[min])min=j;ax=a[i];a[i]=a[min];//加一个空格a[min]=ax;}printf(“aftersort:array\n”);for(i=0;i<n;i++)printf(“%d”,a[i]);}2.打印出以下杨辉三角形(规定打印出10行)。111121133114641……3.将两个字符串连接起来,不要用strcat函数。四、程序中所用的变量(类型及其初值):2.整型变量i,j,未对其进行赋予初值3.五、算法(用伪代码描述):2. for(i=0;i<10;i++)ﻩ{ for(j=0;j<=i;j++) ﻩ{ﻩﻩﻩif(j==0) ﻩ {ﻩﻩ ﻩa[i][j]=1; ﻩ printf("%-5d",a[i][j]);ﻩ }ﻩﻩ else ﻩ printf("%-5d",a[i][j]=a[i-1][j-1]+a[i-1][j]); } ﻩprintf("\n"); }3.ﻩchars1[80],s2[40]; inti=0,j=0; printf("请输入数组s1:");ﻩgets(s1);ﻩprintf("请输入数组s2:");ﻩgets(s2);ﻩwhile(s1[i]!='\0')ﻩ i++; while(s2[j]!='\0') s1[i++]=s2[j++];ﻩs1[i]='\0'; printf("%s\n",s1);六、源程序清单:2.#include<stdio.h>voidmain(){ inta[10][10]={{1}},j,i;ﻩﻩfor(i=0;i<10;i++) { for(j=0;j<=i;j++) ﻩ{ﻩ if(j==0)ﻩﻩ { ﻩﻩa[i][j]=1;ﻩﻩ printf("%-5d",a[i][j]); ﻩ} ﻩ else ﻩprintf("%-5d",a[i][j]=a[i-1][j-1]+a[i-1][j]);ﻩﻩ} printf("\n"); }}3.#include<stdio.h>voidmain(){ﻩchars1[80],s2[40];ﻩinti=0,j=0; printf("请输入数组s1:");ﻩgets(s1);ﻩprintf("请输入数组s2:");ﻩgets(s2);ﻩwhile(s1[i]!='\0') ﻩi++;ﻩwhile(s2[j]!='\0')ﻩ s1[i++]=s2[j++]; s1[i]='\0';ﻩprintf("%s\n",s1);}七、实验结果:1.运营结果(执行程序3次,分别输入不同的n,相应3种不同的情况):输入整数n输入n个元素排序后结果549531134594951615697495613212345692.运营结果(或截图):111121133114641151010511615201561172135352171182856705628811936841261268436913.运营结果(或截图):成绩指导教师署名实验八实验项目名称:函数调用和参数传递 所使用的工具软件及环境:VisualC++6.0一、实验目的:1.掌握定义函数的方法;2.掌握函数实参与形参的相应关系。二、预习内容:教材《C语言程序设计教程》第6章6.1~6.4节。三、实验内容:1.求2~100间的素数。intprime(int);/*prime函数声明*/main(){intm,flag;for(m=2;m<=100;m+=1){flag=prime(m);if(m==flag)printf(“%4d”,m);}}intprime(inta){inti,flag;for(i=2;i<a;i++)if(a%i==0)break;if(i==a)flag=1;elseflag=0;returni;}2.求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a,b,c的值。四、程序中所用的变量(数据类型):2.五、算法(用伪代码或自然语言描述):2.六、源程序清单:2.七、实验结果:1.运营结果:2.运营结果(执行程序3次,分别输入不同的a,b,c,相应3种不同的情况):输入a输入b输入c方程的根1442.551.5521.5成绩指导教师署名实验九实验项目名称:函数与预解决ﻩ所使用的工具软件及环境:VisualC++6.0一、实验目的:1.掌握数组名作为函数参数;2.掌握全局变量与局部变量;3.掌握宏,文献包含的用法。二、预习内容:教材《C语言程序设计教程》第6章6.5~6.9节。三、实验内容:1.从键盘输入10个数存入数组a中,调用fmax求数组中的最大值并输出。#include<stdio.h>main(){inta[10],i,jmax;for(i=0;i<10;++i)scanf(“%d”,&a[i]);jmax=fmax(,10);printf(“%d”,jmax);}fmax(intb[],intt){inti,imax;imax=b[0];for(i=1;i<t;i++)if(b[i]>imax);return;}2.用“冒泡法”对输入的10个字符排序后按从小到大的顺序输出。#defineN10charstr[N];sort(){inti,j;chart;for(j=1;j<N;j++)for(i=0;i<N-j;i++)if(str[i]>){t=str[i];___________;____________;}}main(){inti;for(i=0;i<10;i++)scanf("%c",&str[i]);sort();for(i=0;i<N;i++)printf("%c",str[i]);printf("\n");}3.输入10个学生5门课程的成绩,分别用函数求:①每个学生平均分,并输出;②每门课的平均分,并输出。4.定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已互换后的两个值。四、程序中所用的变量(数据类型):3.4.五、算法(用伪代码或自然语言描述):3.六、源程序清单:3.4.七、实验结果:1.运营结果(或截图):2.运营结果(或截图):3.运营结果(或截图):4.运营结果(或截图):成绩指导教师署名实验十实验项目名称:指针ﻩ所使用的工具软件及环境:VisualC++6.0一、实验目的:1.通过实验进一步掌握指针的概念,会定义和使用指针变量。2.能对的使用数组的指针和指向数组的指针变量。3.能对的使用字符串的指针和指向字符串的指针变量。4.了解指向函数的指针变量。二、预习内容:教材《C语言程序设计教程》第7章。三、实验内容:1.输入2个整数,互换顺序后输出,程序规定使用指针解决。程序提醒:自定义互换函数:voidswap(int*p1,int*p2)//实现*p1与*p2互换{ }//main函数结构如下:intn1,n2;int*q1,*q2;ﻩ//输入2个数,q1,q2分别指向这n1,n2这2个数ﻩswap(q1,q2);//调用函数swap printf(“%5d%5d”,n1,n2);//输出互换后的值2.将一个数组的10个元素反序,用一函数实现。程序提醒:在主函数中用for循环通过scanf函数输入数组元素值,调用函数,用for循环输出结果。voidinverse(int*p){ 循环for(i=0;i<10/2;i++)*(p+i)与*(p+9-i)互换,就能实现反序}3.下面程序是用指针法将一个字符串a复制到字符串b中,修改程序实现问题(1)(2)。main(){chara[]="Iamaboy.",b[20],*p1,*p2;inti;p1=a;p2=b;for(;*p1!=’\0’;p1++,p2++)*p2=*p1;*p2=’\0’;printf("stringais:%s\n",a);printf("stringbis:");for(i=0;b[i]!=’\0’;i++)printf("%c",b[i]);}(1)将第一个for循环改为while循环;(2)分别用指针变量p1和p2输出字符串a和b。4.用一个函数实现两个字符串的比较,自定义compare函数已给出,编写main函数:设p1指向字符串s1,p2指向字符串s2。规定当两个字符相同时返回0,若两个字符串不相等,则返回返回它们两者第一个不同字符的ASCII码的差值。两个字符串s1,s2由主函数输入,compare函数的返回值也由主函数输出。程序提醒:使用以下函数进行比较:intcompare(char*p1,char*p2){ﻩinti; for(i=0;*(p1+i)!=’\0’;i++)if(*(p1+i)!=*(p2+i))break;//不相等,循环结束return*(p1+i)-*(p2+i);}main(){}5.下面的程序的功能是将字符数组ch中第2维下标是偶数的元素取出后,构成一个十进制整数。#include<stdio.h>main(){charch[2][5]={"1213","8421"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=;for(i=0;i<2;i++)for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)s=;printf("%d",s);}四.重要变量用途说明:1.2.3.4.5.五、源程序补充后完整清单:1.2.3.4.5.六、实验结果(写出典型测试数据输入和输出)1.运营结果:2.运营结果:3.运营结果:4.运营结果:5.运营结果:成绩指导教师署名实验十一实验项目名称:结构体与共用体 所使用的工具软件及环境:VisualC++6.0一、实验目的:1.掌握结构体的概念;2.学会通过结构体成员来使用结构体;3.对的使用结构体数组;4.学会共用体成员值的输出。二、预习内容:教材《C语言程序设计教程》第8章。三、实验内容:1.读懂并输入程序,完毕填空后输出结果。建立学习成绩单结构,并建立一个同学王林(wanglin)的记录。#include<stdio.h>main(){structgrade/*定义结构体类型*/ {intnumber;charname[10]; intmath;intenglish;};structwanglin;/*结构体变量*/printf("Pleaseinputthenumber,name,math,english:\n");scanf("%d%s%d%d",&,wanglin.name,,&wanglin.english);//输入数据printf("wanglinggradeis:%d%s%d%d\n",wanglin.number,wanglin.name,wanglin.math,wanglin.english);}2.编写一个程序,解决5个学生的信息,每个学生的信息涉及:学号、姓名、三门成绩。规定输出成绩表(涉及每个学生的学号、姓名、三门成绩及平均分数),并输出平均分在前3名的学生的姓名及平均分。解决5个学生的信息的参考程序:#include"stdio.h"structSTU{intsn;charname[20];intscore[3];floataverage;}students[5]={{1,"A",81,80,80,0},{2,"B",51,80,80,0},{3,"C",61,80,80,0},{4,"D",71,80,80,0},
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026年)急诊科质量与安全管理制度
- (2026年)安全隐患排查总结报告校园安全隐患排查总结
- 共同共有物品分割协议 家庭大件财物拆分处置协议书
- 慢性骨髓炎的护理查房
- DeepSeek Harness系统教程:从Agent原理到插件生态的全链路实战指南
- ERAS管理策略在成人心脏手术中应用的经验分享
- 临床诊断基础试题和完整答案
- 车间设计习题及标准答案展示
- 2025年智能头盔行业标准制定进展报告
- 查验接种证相关试题与答案分享
- JBT 11270-2024 立体仓库组合式钢结构货架技术规范(正式版)
- 制造业工厂经营分析报告
- 《元器件焊接》课件
- 船舶柴油机课件
- 煤系固废利用课件
- 审计人员的沟通与心理调适
- 原创蓝色矢量安徽省政区地图模板可编辑中国地图PPT模板
- 田麦久运动训练学
- 白龙江喜儿沟水电站工程移民安置综合监理大纲
- 投资合伙企业(有限合伙)合伙合同协议书范本
- GB 146.2-2020标准轨距铁路限界第2部分:建筑限界
评论
0/150
提交评论