C语言实验报告程序.docx
- 文档编号:28563331
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:18
- 大小:22.16KB
C语言实验报告程序.docx
《C语言实验报告程序.docx》由会员分享,可在线阅读,更多相关《C语言实验报告程序.docx(18页珍藏版)》请在冰豆网上搜索。
C语言实验报告程序
常见错误解析
1.Error:
Undefinedsymbol‘s’infunctionmain
主函数中s变量未定义。
2.Warning:
Possibleuseof‘sum’beforedefinitioninfunctionmain
该错误最有可能是因为变量sum未赋初值。
3.Error:
Statementmissing;infunctionmain
应考察当前的行或是上一行,看是否丢失了分号。
4.注意:
if语句、for和while语句之后所跟的括号后面,不要随意的加分号。
5.一定要区分开“=”和“==”;“/”和“%”。
“!
=”是“不等于”运算符
实验一顺序结构的使用
1.编程求下列表达式的值,并与手工计算结果相比较。
若有”inta=2,b=3;floatx=3.5,y=2.5;”,求(float)(a+b)/2+(int)x%(int)y。
main()
{inta=2,b=3;
floatx=3.5,y=2.5;
printf(“%f”,(float)(a+b)/2+(int)x%(int)y);
}
2.有两个变量a=2,b=5,编写程序,交换它们的值。
main()
{inta=2,b=5,t;
t=b;
b=a;
a=t;
printf(“%d,%d\n”,a,b);
}
3.编写一个程序实现求表达式
的值。
#include
main()
{
floata,b,sum;
scanf(“%f%f”,&a,&b);
sum=a+sqrt(b);
printf(“%f\n”,sum);
}
实验教材P19选择题答案:
1~5题CCDAD
实验二选择结构的使用
1.编写程序:
由键盘输入任意3个数,按降序打印此3个数。
main()
{inta,b,c,t;
scanf(“%d%d%d”,&a,&b,&c);
if(a
{t=a;a=b;b=t;}
if(a {t=a;a=c;c=t;} if(b {t=b;b=c;c=t;} printf(“%d%d%d\n”,a,b,c); } 2.输入百分制的分数,要求按下列分数段输出成绩等级: 90分以上为A,80~89为B,70~79为C,60~69为D,小于60分为E(要求用switch语句实现,可参考本实验中“预备知识2.多分支选择结构”中的“例题”来做)。 main() {intscore,n; scanf(“%d”,&score); n=score/10; switch(n) {case10: case9: printf(“A\n”); case8: printf(“B\n”); case7: printf(“C\n”); case6: printf(“D\n”); default: printf(“E\n”); } } 3.从键盘输入3个数,它们分别代表3条线段的长度。 编写程序判断: 这3条线段能否组成三角形,若能请进一步判断三角形的类型(等边三角形、直角三角形)。 参考图2-2编写程序。 main() {floata,b,c; scanf(“%f%f%f”,&a,&b,&c); if(a+b>c&&b+c>a&&a+c>b) {printf(“Itisatriangle! ”); if(a==b&&b==c) printf(“Itisanequaltriangle! ”); elseif(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) printf(“Itisarighttriangle! ”); elseprintf(“Itisageneraltriangle! ); } elseprintf(“Itisnotatriangle! ”); } 4.阅读程序,给出结果,上机调试程序,验证其运行结果与阅读结果是否相同。 main() {intx=1,y=0,a=0,b=0; switch(x) {case1: switch(y) {case0: a++;break; case1: b++;break; } case2: a++;b++;break; } printf(“a=%d,b=%d\n”,a,b); } 程序结果: a=2,b=1 实验三循环结构的使用 1.求分数序列2/1,-3/2,5/3,-8/5,……的前10项和。 main() {inti; floats=0,a=2,b=1,t=1,c; for(i=1;i<=10;i++) {s+=a/b*t; c=a;a=a+b;b=c;t=-t;/*a=a+b;b=a-b;*/ } printf(“%.4f\n”,s); } 2.求100~200之间所有能被3和5整除的数之和。 main() {inti,sum=0; for(i=100;i<=200;i++) if(i%3==0&&i%5==0) sum=sum+i; printf(“%d\n”,sum); } 3.求26个小写英文字母的ASCII码值之和,存入变量sum中,并求出sum值的位数,存入变量k中。 #include main() {intsum,k; charch; intt; sum=0,k=0; for(ch=‘a’;ch<=‘z’;ch++) sum+=ch; t=sum; while(t! =0) {t=t/10; k++; } printf(“sum=%dk=%d\n”,sum,k); } 4.有一分数序列: 1/2,-1/3,1/4,-1/5,1/6……,求这个序列的前m项之和,将总和存放到sum变量中,并输出总和。 #include main() {inti,m; floats=0; scanf(“%d”,&m); for(i=1;i<=m;i++) s+=1.0/(i+1)*pow(-1,i+1); printf(“%.4f\n”,s); } 5.求一个正整数m的所有约数之和,存入变量sum中,并输出sum。 例如: 如果m为12,则它的约数为2,3,4,6。 main() {inti,m,sum=0; scanf(“%d”,&m); for(i=2;i if(m%i==0) sum=sum+i; printf(“%d\n”,sum); } 6.打印九九乘法表 main() {inti,j=1; for(i=1;i<=9;i++) {for(j=1;j<=i;j++) printf(“%d*%d=%d”,i,j,i*j); printf("\n"); } } 7.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 Main() {intletter=0,space=0,num=0,other=0; charc; while((c=getchar())! =’\n’) if((c>=’A’&&c<=’Z’)||(c>=’a’&&c<=’z’)) letter++; elseif(c==’’) space++; elseif(c>=’0’&&c<=’9’) num++; elseother++; printf(“%d,%d,%d,%d”,letter,space,num,other); } 实验四数组的使用 1.编一个程序,将两个一维数组中的对应元素值相加后显示出来。 main() {inti,a[10],b[10]; for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) {scanf(“%d”,&b[i]); printf(“%4d”,a[i]+b[i]); } } 2.已知10名学生的成绩已存入数组a中,计算前m位同学的平均成绩,并存入变量aver中,输出aver。 main() {inti,a[10],sum=0; floataver; for(i=0;i<10;i++) {scanf(“%d”,&a[i]); sum+=a[i]; } aver=sum/10.0 printf(“%f”,aver); } 3.已知10位同学的英语成绩分别为90,61,92,79,45,67,86,95,63,79,用“冒泡法”对此成绩由大到小排序。 main() {inta[10]={90,61,92,79,45,67,86,95,63,79},i,j,t; for(j=0;j<=8;j++) for(i=0;i<=8-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} for(i=0;i<10;i++) printf("%4d",a[i]); } 4.改错: 给一个实型数组中的前5个元素输入数据后,将这5个元素的值相加再赋给最前面的元素并输出。 请分步运行的方法调试,并观察数组a中个元素的值。 main() {floata[10]; inti; for(i=0;i<5;i++) scanf(“%f”,&a[i]); for(i=1;i<5;i++) a[0]=a[0]+a[i]; printf("%f",a[0]); } 5.从键盘输入任意一个十进制正整数m(假设m<=100),然后转换成用二进制表示的字符串,存入数组a中,然后输出a。 例如: 如果m为6,程序应该输出110。 main() { intm,i=0,a[8],j; scanf(“%d”,&m); while(m! =0) {a[i]=m%2; m=m/2; i++; } for(j=i-1;j>=0;j--) printf("%d",a[j]); } 6.从键盘输入一行字符串到数组a中,求其中数字字符的个数,存入变量count中,并输出count。 例如,若输入"MyTelnumberis86142222.",则输出8。 #include main() { chara[30]; intcount=0,i; gets(a); for(i=0;a[i]! =’\0’;i++) if(a[i]>=’0’&&a[i]<=’9’) count++; printf("%d",count); } 7.已知数组a中10名学生的成绩,求不低于m分的人数,并存入变量count中,并输出count。 main() { intcount=0,a[10],i,m; scanf(“%d”,&m); for(i=0;i<10;i++) {scanf(“%d”,&a[i]); if(a[i]>=m) count++; } printf("%d",count); } 8.从键盘输入字符串”Iamastudent.”,并求此字符串的长度(不能用strlen函数). #include main() { chara[30]; inti; gets(a); for(i=0;a[i]! =’\0’;i++); printf("%d",i); } 9.将数组b中的字符串拷贝到字符数组a中(不允许使用strcpy函数)。 #include main() { chara[30],b[30]={“shenyanginstitute”}; inti; for(i=0;b[i]! =’\0’;i++) a[i]=b[i]; a[i]=’\0’; puts(a); } 10.编程序求一行字符串(<20)中小写字母的ASCII码值之和. #include main() {charstr[20]; intsum=0,i; gets(str); for(i=0;str[i]! ='\0';i++) if(str[i]>='a'&&str[i]<='z') sum+=str[i]; printf("\n%d",sum);} 实验五函数的使用 1.写一个函数求3个整数中的最大数,3个数从主函数传递给该函数,并在主函数中输出最大数。 指出什么是形参、什么是实参,哪条语句是函数调用语句。 max(inta,intb,intc) {intd; if(a>=b)d=a; elsed=b; if(d returnd; } main() {intr,s,t,m; printf(“\npleaseenterthreenumbers: ”); scanf(“%d,%d,%d”,&r,&s,&t); m=max(r,s,t); printf(“\nmaxis: %d”,m); } 2.编写一个函数,实现将具有10个元素的整型数组按逆序存放,要求在主函数中进行数组的输入与输出。 intinv(inta[],intn) {inti,t; for(i=0;i {t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } } main() {inta[10],i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); inv(a,10); for(i=0;i<10;i++) printf(“%3d”,a[i]); } 3.编写一个函数,求10个学生成绩中的最高分和最低分,要求在主函数中进行数组的输入和结果的输出。 intmax; intmaxmin(inta[],intn) {intx,i; max=a[0]; x=a[0];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告 程序