收藏 分销(赏)

实验改错填空题.docx

上传人:仙人****88 文档编号:8921567 上传时间:2025-03-08 格式:DOCX 页数:15 大小:40.05KB 下载积分:10 金币
下载 相关 举报
实验改错填空题.docx_第1页
第1页 / 共15页
实验改错填空题.docx_第2页
第2页 / 共15页


点击查看更多>>
资源描述
实验1 2.改错题 (1)下列程序的功能为:计算x*y的值并将结果输出。试纠正程序中存在错误,以实现其功能。程序以文件名sy1_2.c保存。 #include <stdio.h> main { int x=2;y=3;a A=x*y print ('a=%d",a); printf("\n"); } #include <stdio.h> main() { int x=2,y=3,a; a=x*y; printf("a=%d",a); printf("\n"); } (2)下列程序的功能为:求两数中的较大数据并输出。试纠正程序中存在错误,以实现其功能。程序以文件名sy1_3.c保存。 #include<stdio.h> viod main() { int a,b,max; Scanf("%d,%d",&a,&b); Max=a; If(max<b) max=b; Printf("max=%d\n",max); } #include <stdio.h> void main() { int a,b,max; scanf("%d,%d",&a,&b); max=a; if (max<b) max=b; printf("max=%d",max); } 3.填空题 (1)从键盘输入两个整数,输出这两个整数的和。根据注释信息填写完整程序,以实现其功能。程序以文件名sy1_4.c保存。 #include<stdio.h> main() { int x,y,total; /*定义整型变量x,y,total*/ printf("Please input x,y ! "); /*输出提示信息*/ printf("Please input x,y!"); /*由键盘输入两个数分别赋予x和y*/ scanf("%d,%d",&x,&y); total=x+y; /*赋值语句*/ printf("%d + %d=%d\n",x,y,total); /*输出两个整数的和*/ } (2)从键盘输入两个整数,输出这两个整数的差。根据注释信息填写完整程序,以实现其功能。程序以文件名sy1_5.c保存。 #include<stdio.h> main() { int a,b,m; printf("Input a,b please!"); scanf("%d%d",&a,&b); m=a-b; /*赋值语句,将a和b的差值赋给m */ printf("%d-%d=%d\n",a,b,m); /*输出a 和b差的结果值后换行*/ } 实验3 1.改错题 (1)下列程序的功能为: 输入一个华氏温度,要求输出摄氏温度。公式为:C= ,输出取2位小数。请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy3_1.c保存。 #include <stdio.h> main() { float c,f; printf("请输入一个华氏温度:\n"); scanf("%f",f); c==(5/9)*(f-32); printf("摄氏温度为:%5.2f\n"c); } #include <stdio.h> main() { float c,f; printf("请输入一个华氏温度:\n"); scanf("%f",&f); c=(5.0/9)*(f-32); printf("摄氏温度为:%5.2f\n",c); } (2)下列程序的功能为:按下列公式计算并输出x的值。其中a和b的值由键盘输入。 x=2ab/(a+b)2 请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy3_2.c保存。 #include <stdio.h> main() { int a,b; float x; scanf("%d,%d",a,b); x=2ab/(a+b)(a+b); printf("x=%d\n",x); } #include <stdio.h> main() { int a,b; float x; scanf("%d,%d",&a,&b); x=2.0*a*b/((a+b)*(a+b)); printf("x=%f\n",x); } (3)下列程序的功能为:从键盘输入一个小写字母,要求改用大写字母输出。纠正程序中存在的错误,以实现其功能,程序以文件名sy3_3.c保存。 #include <stdio.h> main() { char c1,c2; c1=getchar; printf("%c,%d\n",c1,c1); c2=c1+26; printf("%c,%d\n",c2,c2); } #include <stdio.h> main() { char c1,c2; c1=getchar(); printf("%c,%d\n",c1,c1); c2=c1-32; printf("%c,%d\n",c2,c2); } 2.程序填空 (1)下列程序的功能为:给定格式输入数据,按要求格式输出结果,补充完善程序,以实现其功能,程序以文件名sy3_4.c保存。 输入形式enter x,y:2 3.4 输出形式x+y=5.4 #include <stdio.h> main() { int x; float y; printf ("enter x,y: "); scanf("%d%f",&x,&y); printf("x+y=%.1f\n",x+y); } (2) 下列程序的功能为:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据r、h,输出计算结果,输出时要求有文字说明,取小数点后2位数字。 (周长l=2,圆面积s=,圆球表面积sq=,圆球体积vq=;圆柱体积vz=) 请填写适当的符号或语句,使程序实现其功能,程序以文件名sy3_5.c保存。 #include <stdio.h> main() { float pi,h,r,l,s,sq,vq,vz; pi=3.1415926; printf("请输入圆半径r,圆柱高h:\n"); scanf("%f%f",&r,&h); l= 2*pi*r ; s= pi*r*r ; sq= 4*pi*r*r ; vq= 3.0/4*pi*r*r*r ; vz= pi*h*r*r ; printf("圆周长为:%.2f\n",l ); printf("圆面积为:%.2f\n", s ); printf("圆球表面积为:%.2f\n", sq ); printf("圆球体积为:%.2f\n", vq ); printf("圆柱体积为:%.2f\n", vz ); } (3) 下列程序的功能为:通过键盘输入两个整数,分别存入变量x,y中,通过中间变量t互换x,y之值,并输出之。请填写适当的符号或语句,使程序实现其功能,程序以文件名sy3_6.c保存。 #include <stdio.h> main() { int x,y,t; printf("请输入x,y:\n"); scanf("%d%d",&x,&y); if (x<y) { t=x;x=y; y=t;} //x与y交换 printf("交换后的x:%d y:%d \n",x,y); } 实验4 1.改错题 (1)下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。纠正程序中存在的错误,以实现其功能。程序以文件名sy4_1.c保存。 #include <stdio.h> main() { char ch,c1,c2; printf("Enter a character:"); ch=getchar(); if((ch>='a')||(ch<='z')) ch-=32; c1=ch-1; c2=ch+1; if(ch='A') c1=ch+25; else if(ch='Z') c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar('\n'); } #include <stdio.h> main() { char ch,c1,c2; printf("Enter a character:"); ch=getchar(); if((ch>='a')&&(ch<='z')) ch-=32; c1=ch-1; c2=ch+1; if(ch=='A') c1=ch+25; else if(ch=='Z') c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar('\n'); } (2)下列程序的功能为:输入3个整数后,输出其中最大值。纠正程序中存在的错误,以实现其功能。程序以文件名sy4_2.c保存。 #include <stdio.h> main() { int a,b,c,max; printf ("请输入3个整数:\n"); scanf ("%d%d%d",&a,&b,&c); max=a; if (c>b) { if (b>a) max=c;} else {if (c>a) max=b;} printf("3个数中最大者为:%d\n",max); } #include "stdio.h" main() { int a,b,c,max; printf ("请输入3个整数:\n"); scanf ("%d%d%d",&a,&b,&c); max=a; if (c>b) { if (b>a) max=c;} else { if (b>a) max=b;} printf("3个数中最大者为:%d\n",max); } (3)下列程序的功能为:输入1-4月份号,输出该月份对应的英语表示法。例如,输入“3”,则输出“Mar”。纠正程序中存在的错误,以实现其功能。程序以文件名sy4_3.c保存。 #include <stdio.h> main() { char m; printf("input the month number:\n"); scanf ("%c",&m); switch (m) { case 1:printf ("Jan"); case 2:printf ("Feb"); case 3:printf ("Mar"); case 4:printf ("Apr"); } } #include "stdio.h" main() { char m; printf("input the month number:\n"); scanf ("%c",&m); switch (m) { case '1':printf("Jan\n");break; case '2':printf("Feb\n");break; case '3':printf("Mar\n");break; case '4':printf("Apr\n");break; default:break; } } 2.程序填空题 (1)下列程序的功能为:判断从键盘上输入的一个字符,并按下列要求输出。 若该字符是数字,输出字符串"0-9" 若该字符是大写字母,输出字符串"A-Z" 若该字符是小写字母,输出字符串"a-z" 若该字符是其他字符,输出字符串"!,@,…" 补充完善程序,以实现其功能。程序以文件名sy4_4.c保存。 #include <stdio.h> main() { char c; scanf("%c",&c); if('0'<=c&&c<='9') printf("0-9\n"); else if('A'<=c&&c<='Z') printf("A-Z\n"); else if('a'<=c&&c<='z') printf("a-z\n"); else printf("!,@,…\n"); } (2)下列程序的功能为:实现加、减、乘、除四则运算。补充完善程序,以实现其功能。程序以文件名sy4_5.c保存。 #include <stdio.h> main() { int a,b,d; char ch; printf("Please input a expression:"); scanf("%d%c%d",&a,&ch,&b); switch(ch) { case '+':d=a+b; printf("%d+%d=%d\n",a,b,d); break; case '-':d=a-b; printf("%d-%d=%d\n",a,b,d); break; case '*':d=a*b; printf("%d*%d=%d\n",a,b,d); break; case '/':if(b==0) printf("Divisor is zero\n"); else printf("%d/%d=%f\n",a,b,(float)a/b); /*强制类型转换*/ break; default: printf("Input Operator error!\n"); } } (3)下列程序的功能为:猜价格,用户输入自己估计的价格,程序判断其正确性。补充完善程序,以实现其功能。程序以文件名sy4_6.c保存。 #include "stdio.h" main() { float a,b; printf("请主持人输入时尚手机的实际价格\n"); scanf("%f",&b); printf("\n\n请观众猜时尚手机的价格\n"); scanf("%f",&a); if(a<b) printf("低了\n"); if(a==b) printf("猜对了!\n"); if(a>b) printf("高了\n"); } 实验5 1.改错题 (1)下列程序的功能为:求1~100之和(和值为5050)并输出。纠正程序中存在的错误,以实现其功能。程序以文件名sy5_1.c保存。 #include <stdio.h> main() { int i,sum=0; i=1; while(i<=100) sum=sum+i; i++; printf("The sum from 1 to 100 is %d\n",sum); } #include <stdio.h> main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("The sum from 1 to 100 is %d\n",sum); } (2)下列程序的功能为:倒序打印26个英文字母。纠正程序中存在的错误,以实现其功能,程序以文件名sy5_2.c保存。 #include <stdio.h> main() { char x; x='z'; while(x!='a') { printf("%3d",x); x++; } } #include <stdio.h> main() { char x; x='z'; while(x>='a') { printf("%3c",x); x--; } } (3)下列程序的功能为:输入一个大写字母,打印出一个菱形。该菱形中间一行由此字母组成,其相邻的上下两行由它前面的一个字母组成,按此规律,直到字母A出现在第一行和最末行为止。纠正程序中存在的错误,以实现其功能。程序以文件名sy5_3.c保存。例如,输入字母D,打印出如下图形: A BBB CCCCC DDDDDDD CCCCC BBB A #include < stdlib.h > main() { int i,j,k; char ch; scanf("%c",&ch); k=ch-'A'+1; for (i=1;i<=k;i++) { for (j=20;j>=i;j--) printf("%c",' '); for (j=1;j<=i-1;j++) printf("%c",'A'+i-1); printf("\n"); } k=ch-'A'; for (i=k;i>=1;i--) { for (i=20;i>=i;i--) printf("%c",' '); for (j=1; j<2*i-1;j++) printf("%c",'A'+i-1); printf("\n"); } } #include <stdio.h> main() { int i,j,k; char ch; scanf("%c",&ch); k=ch-'A'+1; for (i=1;i<=k;i++) { for (j=20;j>=i;j--) printf("%c",' '); for (j=1;j<=2*i-1;j++) printf("%c",'A'+i-1); printf("\n"); } k=ch-'A'; for (i=k;i>=1;i--) { for (j=20;j>=i;j--) printf("%c",' '); for (j=1;j<=2*i-1;j++) printf("%c",'A'+i-1); printf("\n"); } } 2.程序填空题 (1)用辗转相除法求两个正整数的最大公约数和最小公倍数。补充完善程序,以实现其功能,程序以文件名sy5_4.c保存。“辗转相除法”求两个正整数的最大公约数的算法如下: ① 将两数中大的那个数放在m中,小的放在n中; ② 求出m被n除后的余数r; ③ 若余数为0则执行步骤⑦,否则执行步骤④; ④ 把除数作为新的被除数,把余数作为新的除数; ⑤ 求出新的余数r; ⑥ 重复步骤③~⑤。 ⑦ 输出n,n即为最大公约数。 #include <stdio.h> main () { int r,m,n,t; scanf("%d%d",&m,&n); if(m<n) {t=m;m=n;n=t;} t=m*n; r=m%n; while(r) { m=n; n=r; r=m%n; } printf("%d %d\n",n, t/n); } (2)假设有1020个西瓜,第一天卖了一半多两个,以后每天卖剩的一半多两个,求几天后能卖完。补充完善程序,以实现其功能。程序以文件名sy5_5.c保存。 #include <stdio.h> main() { int day,x1,x2; day=0; x1=1020; while(x1>0) { x2=x1/2-2; x1=x2; day++; } printf("day=%d\n",day); } (3)下列程序的功能为:输出100以内能被3整除且个位数为6的所有整数.补充完善程序,以实现其功能。程序以文件名sy5_6.c保存。 #include <stdio.h> main() { int i,j; for(i=0;i<10;i++) { j=i*10+6; if (j%3!=0) continue; printf("%d ",j); } printf("\n"); } 实验6 1.改错题 (1)下列程序的功能为:为指定的数组输入10个数据,并求这些数据之和。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_1.c保存。 #include<stdio.h> void main() { int n=10,i,sum=0; int a[n]; for(i=0;i<10;i++) { scanf("%d",a[i]); sum=sum+a[i]; } printf("sum=%d\n",sum); } #include<stdio.h> void main() { int n=10,i,sum=0; int a[10]; for(i=0;i<10;i++) { scanf("%d",&a[i]); sum=sum+a[i]; } printf("sum=%d\n",sum); } (2)下列程序的功能为:将字符串b连接到字符串a。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_2.c保存。 #include<stdio.h> void main( ) { char a[]="wel",b[]="come"; int i,n=0; while(!a[n]) n++; for(i=0;b[i]!='\0';i++) a[n+i]=b[i]; a[n+i]=’\0’; printf("%s\n",a); } #include<stdio.h> void main( ) { char a[10]="wel",b[]="come"; int i,n=0; while(a[n]!='\0') n++; for(i=0;b[i]!='\0';i++) a[n+i]=b[i]; a[n+i]=’\0’; printf("%s\n",a); } (3)下列程序的功能为:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_3.c保存。 #include<stdio.h> #define N 4 #define M 4 main() { int i,j,k,flag1,flag2,a[N][M],max,maxj; for (i=0;i<N;i++) for (j=0;j<M;j++) scanf("%d",&a[i][j]); flag2=0;//1, for (i=0;i<N;i++) { max=a[j][0]; maxj=0;//i for (j=0;j<M;j++) if (a[i][j]>max) { max=a[i][j]; maxj=j; } for (k=0,flag1=1;k<N&&flag1;k++) if (max>a[k][maxj]) flag1=0; if (flag1) { printf("\nThe saddle point is:a[%d][%d]=%d\n",i,maxj,max); flag2=1;//0 } } if (flag2) printf("\nThere is no saddle point in the Matrix\n"); } #include<stdio.h> #define N 4 #define M 4 main() { int i,j,k,flag1,flag2,a[N][M],max,maxj; for(i=0;i<N;i++) for(j=0;j<M;j++) scanf("%d",&a[i][j]); flag2=0; for(i=0;i<N;i++) { max=a[i][0]; maxj=0; for(j=0;j<M;j++) if(a[i][j]>max) { max=a[i][j]; maxj=j; } for (k=0,flag1=1;k<N&&flag1;k++) if (max>a[k][maxj]) flag1=0; if (flag1) { printf("\nThe saddle point is:a[%d][%d]=%d\n",i,maxj,max); flag2=1; } } if (!flag2) printf("\nThere is no saddle point in the Matrix\n"); } 2.程序填空题 (1)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。补充完善程序,以实现其功能。程序以文件名sy6_4.c保存。 #include "stdio.h" #define N 10 main() { int a[ ]={0,1,2,3,4,5,6,7,8,9},k; int low=0,high=N-1,mid,find=0; printf("请输入欲查找的值:\n"); scanf("%d",&k); while (low<=high) { mid=(low+high)/2; if(a[mid]==k) { printf("找到位置为:%d\n",mid+1);find=1; } if(a[mid]>k) high=mid-1; else low=mid+1; } if(!find) printf("%d未找到\n",k); } (2)以下程序的功能是:求3个字符串(每串不超过20个字符)中的最大者。补充完善程序,以实现其功能。程序以文件名sy6_5.c保存。 #include<stdio.h> #include<string.h> void main() { char string[20],str[3][20]; int i; for (i=0;i<3;i++) gets(str[i]); if ( strcmp(str[0], str[1])>0 ) strcpy(string,str[0]); else strcpy(string,str[1]); if ( strcmp(string, str[0])<0 ) strcpy(string,str[2]); puts(string); } (3)下列程序的功能为:从键盘输入20个整数,统计非负数个数,并计算非负数之和。补充完善程序,以实现其功能。程序以文件名sy6_6.c保存。 #include <stdio.h> main() { int i,a[20],sum=0,count=0; for(i=0;i<20;i++ ) scanf("%d", &a[i] ); for(i=0;i<20;i++) { if(a[i]<0) continue; sum+=a[i]; count++; } printf("s=%d\t count=%d\n",sum,count); } 实验7 1.改错题 (1)下列sub函数的功能为:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_1.c存盘。 #include <stdio.h> #include <string.h> void sub( char s[], char t[] ) { int i, d; d=strlen(s); for(i=1;i<d;i++) t[i]=s[d-1-i]; for(i=0;i<d;i++) t[d+i]=s[i]; t[2*d]='/0'; } main( ) { char s[100], t[100]; printf( " Please enter string s : " ); scanf("%s" , s ); sub(s,t); printf( " \n The result is : %s \n ", t ); } #include <stdio.h> #include <string.h> void sub( char s[], char t[] ) { int i, d; d=strlen(s); for(i=0;i<d;i++) t[i]=s[d-1-i]; for(i=0;i<d;i++) t[d+i]=s[i]; t[2*d]='\0'; } main( ) { char s[100], t[100]; printf( " Please enter string s : " ); scanf("%s" , s ); sub(s,t); printf( " \n The result is : %s \n ", t ); } (2)下列程序的功能为:将字符数组中的字符串逆序输出。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_2.c存盘。 #include<string.h> #include<stdio.h> #define ARR_SIZE 80 void Inverse(char str[]); void main() { char a[ARR_SIZE]; printf("Please enter a string: "); gets(a); Inverse(char a[]); printf("The inversed string is: "); puts(a); } void Inverse(char str[]) { int len,i=0,j; char temp; len=strlen(str); for(j=len-1;i<j;i++,j--) { temp=str[i]; str[j]=str[i]; str[j]=temp; } } #include<string.h> #include<stdio.h> #define ARR_SIZE 80 void Inverse(char str[]); void main() { char a[ARR_SIZE]; printf("Please enter a string: "); gets(a); Inverse(a); printf("The inversed string is: "); puts(a); } void Inverse(char str[]) { int len,i=0,j; char temp; len=strlen(str); for(j=len-1;i<j;i++,j--) { temp=str[i]; str[i]=str[j]; str[j]=temp; } } (3)下列程序的功能为:求整数n的阶乘。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_3.c存盘。 #include<stdio.h> int fun(int n) { static int p=1; p=p*n; return p; } void main() { int n,i; int f=0; printf("input member: "); scanf("%d",&n); for(i=1;i<=n;i++) f=f*fun(i); printf("%d!=%d\n",n,f); } #include<stdio.h> int fun(int n) { static int p=1; p=p*n; return p; } void main() { int n,i; int f=1; printf("input member: "); scanf("%d",&n); for(i=1;i<=n;i++) f=fun(i); printf("%d!=%d\n",n,f); } 2.程序填空题 (1)下列sum()函数的功能是:计算数组x前n个元素之和。在主函数中,输入10个任意整数和下标i1、i2的值(设1≤i1≤i2≤9),调用sum()函数计算从第i1元素到第i2元素的和,并输出结果。补充完善程序,以实现其功能。程序以文件名sy7_4.c存盘。 #include <stdio.h> int sum( int x[], in
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服