当前位置:文档之家› 程序改错题

程序改错题

程序改错题(注意:每小题只有1行有错误,答题时请指出错误位置并给出改正结果)1.输出计算结果。

main(){ int a=b=10;a+=b+5;b*=a+=10;printf("%d%d\n",a,b);}2.输出计算结果。

#include <stdio.h>main(){ float x,y;scanf("%f",x);y=x*56/97;printf("%f\n",y);}3.输出计算结果。

main(){ int x=2,y=3;z=(x++,y++);printf("%d",z);}4.输出运行结果。

main(){ float a,b,c,v;a=2.0;b=3.0;c=4.0;v=a*b*c;printf("%f\n" ,v)}5.输出运行结果。

#include “stdio.h”main(){float r,s;r=5.0;s=3.14159*r*r;printf("%d\n",s);}输出程序运行结果。

#include <stdio.h>main(){ char ch;scanf("%c",ch);printf("%d\n",ch);}7.输入一整数判断是否能被13整除。

main(){ int i;scanf(“%d”,i);if(i%13==0) printf("yes"); else printf("no");}8.输出程序运行结果。

main(){ int a,b;float x,y,z;scanf("%f%f%f",&x,&y,&z); a=b=x+y+z;c=a+b;printf("%d%d%d",a,b,c);}9.输出程序运行结果。

#include <stdio.h>main(){ float x,y;scanf("%f",&x);y=2x+10;printf("%f\n",y);}10.输出程序运行结果。

main(){ int a,b='B';scanf("%d",a);printf("%c,",b++);printf("%d\n",b-a);}下列程序的功能是计算字符串的字符个数。

#include "stdio.h"main(){ char str[80];int s,i=0;gets(str);for(;str[i]!=‘\0’;i++)s++;printf("%4d\n",s);}12.给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数. main(){float x[]={23.5,45.67,12.1,6.4,58.9,98.4},sum=0,ave;int n=6,j,c=0;for(j=0;j<n;j++)sum+=x[j];ave=sum/n;printf("ave=%f\n",ave);for(j=0;j<n;j++)if(x[j]>=ave) c++;printf("%d\n",c);}13.下列程序的功能是计算3×3矩阵的主对角线元素之和。

main(){int i,a[3][3]={1,2,3,4,5,6,7,8,9},sum=0;for(i=0;i<=3;i++)sum=a[i][i];printf("sum=%d\n",sum);}14.下列程序的功能是复制字符串a 到b中。

main(){char a[20]="abcde",b[20];char *str1=a,*str2;str2=b;while(*str2++==*str1++);printf("%s",b);}15.找出大于m的最小素数{int i,m,k;scanf("%d",&m);for(i=m+1;;i++){for(k=2;k<i;k++)if(i%k==0)break;if(k<=i){printf("%d\n",i);break;}}}16.从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。

#include "stdio.h"main(){ int a[3][3],sum=0;int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][j];printf("sum=%d\n",sum);}17.下列程序的功能是统计字符串中空格数。

#include "stdio.h"main(){ int num;char a[81],*str=a,ch;gets(a);while((ch=*str++)!=’\0’)if(ch==’ ’) num++;printf("num=%d\n",num);}18.下列程序的功能是输入一个字符串,然后再输出。

main(){ char a[20];int i=0;scanf("%s",&a);while(a[i]) printf("%c",a[i++]);}实现两个字符串的连接void scat (char s1[],char s2[]){int i=0,j=0;while(s1[i]!='\0') i++;while(s2[j]!='\0'){ s1[i]=s2[j];i++;j++;}s2[i]='\0';}20.有N×N矩阵A,进行a[i][j]+a[j][i]的操作后,存放在矩阵B中,并输出B矩阵。

#define N 3#include<stdio.h>main(){ int a[N][N]={{1,2,3},{4,5,6},{7,8,9}},b[N][N];int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)b[i][j]=a[i][j]+a[j][i];for(i=0;i<N;i++){ for(j=0;j<N;j++)printf("%4d",b[j][i]);printf("\n");}}21.函数的功能是返回两个数中的较小的值。

double min(double x,double y){ return(x>y ? x:y);}main(){ double p,q;scanf("%lf%lf",&p,&q);printf("%lf\n",min(p,q));}22.函数str_space()的功能是统计字符串中数字的个数。

#include <stdio.h>str_space(char *str,int *num){ *num=0;while(*str!='\0'){if(*str<='0'&&*str>='9')(*num)++;str++;}}23.函数str_space()的功能是统计数组中大于90小于100的数字的个数。

str_space(int *str,int *num){ *num=0;while(*str!='\0'){if(*str<=90&&*str>=100)(*num)++;str++;}}main(){int a[100]={78,98,57,75,68,41,91,90,45},*s=a;int k=0,*p=&k;str_space(s,p);printf("%d\n",*p);}24.用指针法实现两个整数的交换。

void fun (int *a, int *b){int t;t=*a;*a=*b;*b=t;}main(){int a,b;printf("enter a,b:");scanf("%d%d",&a,&b);fun(a,b);printf("a=%d b=%d\n",a,b);}25.把两个数按由大到小的顺序输出来。

swap( int *p1,int *p2){int p;p=*p1;*p1=*p2;*p2=p;}main( ){ int a,b, *p1,*p2;printf("input a,b:");scanf("%d%d",&a,&b);p1=&a,p2=&b;if(a<b)swap(a,b);printf("a=%d,b=%d\n",a,b);printf("max=%d,min=%d\n",*p1,*p2);}26.在一个一维整型数组中找出其中最大的数及其下标。

#define N 10int fun(int *a,int *b,int n){ int *c,max=*a;for(c=a+1;c<a+n;c++)if(*c<max){ max=*c;*b=c-a;}return max;}27.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同的字符的ASCII码差值,即当s>t时返回正值,当s<t时返回负值。

my_cmp(char *s, char *t){ while(*s==*t){if(*s=’\0’)return 0;s++;t++;}return(*s-*t);}28.函数fun的功能是计算1+1/2+1/3+…+1/m。

double fun(int m){ double t=1.0;int i;for(i=2;i<=m;i++)t+=1/i;return t;}main(){ int m;scanf("%d",&m);printf("%lf",fun(m));}29.将数组逆序输出。

相关主题