错!
应为:
if(a[j]>a[k])
if(k=i)错!
应为:
if(k!
=i)
{
t=a[j];错!
应为:
t=a[k];
a[j]=a[i];错!
应为:
a[k]=a[i];
a[i]=t;}
}
}
2.下面程序的功能是交换变量a和b中的值。
#include
main()
{
inta,b,*p,*q,*t;错!
应为:
t
p=&a;
q=&b;
printf("请输入变量a和b的值:
");
scanf("%d%d",&p,&q);
错!
应为:
scanf("%d%d",p,q);
*t=*p ;错!
应为:
t=*p ;
*p=*q ;
*q=*t ;错!
应为:
*q=t ;
printf("交换后a和b的值:
a=%db=%d\n",a,b);
}
3.假设某袋子中装有3个红球,5个白球,6个黑球,现从该袋子中任意取出8个球,下面程序的功能是输出这8个球中至少有一个白球的所有方案。
#include
main()
{
inti,j,k;
for(i=0;i<=3;i++)
for(j=0;j<=5;j++)
错!
应为:
for(j=1;j<=5;j++)
{k=8-i-j;
if(0<=k<=6)错!
应为:
if(k>=0&&k<=6)
printf(“hong=%d\t,bai=%d\t,
hei=%d\t\n”,i,j,k);
}
}
4.以下程序有若干语法错误。
#include
structdate
{
inty;m;d;错!
应为:
inty,m,d;
}错!
应为:
};
structstu
{charn[10];
structdateb;
inta;
}s={“Wang”,{1980,11,11},30};
main()
{
printf(“%c,%d,%d\n”,s.n,s.d,s.a);
错!
应为:
printf(“%s,%d,%d\n”,s.n,s.b.d,s.a);
}
五、编程(40分)
1.打印如下图案。
(12分)
*****
*****
*****
*****
*****
#include
main()
{
inti,j,k;
for(i=1;i<=5;i++)
{for(j=1;j<=i;j++)printf(“”);
for(k=1;k<=5;k++)printf(“%c”,’*’);
printf(“\n”);
}
}
2.输入8个整数放入一维数组w中,输出交换前的数组;找出其中最小和最大数,并将他们分别与数组中的第一个元素和最后一个元素交换位置;输出交换后的数组。
(15分)
参考答案1:
#include
main()
{intw[8],i,min,max,t;
printf("请输入8个整型数据:
");
for(i=0;i<8;i++)scanf("%d",&w[i]);
printf("交换前的数组:
");
for(i=0;i<8;i++)printf("%d\t",w[i]);
printf("\n");
min=0;
for(i=1;i<8;i++)
{
if(w[i]}
t=w[0];w[0]=w[min];w[min]=t;
printf("交换最小值后的数组:
");
for(i=0;i<8;i++)printf("%d\t",w[i]);
max=0;
for(i=1;i<8;i++)
{
if(w[i]>w[max])max=i;
}
t=w[7];w[7]=w[max];w[max]=t;
printf("交换最大值后的数组:
");
for(i=0;i<8;i++)printf("%d\t",w[i]);
printf("\n");
}
参考答案2:
#include
main()
{intw[8],i,min,max,t;
printf("请输入8个整型数据:
");
for(i=0;i<8;i++)scanf("%d",&w[i]);
printf("交换前的数组:
");
for(i=0;i<8;i++)printf("%d\t",w[i]);
printf("\n");
min=max=0;
for(i=1;i<8;i++)
if(w[i]>w[max])max=i;
elseif(w[i]t=w[7];w[7]=w[max];w[max]=t;
if(min==7)min=max;
t=w[0];w[0]=w[min];w[min]=t;
printf("交换后的数组:
");
for(i=0;i<8;i++)printf("%d\t",w[i]);
printf("\n");
}
参考答案3:
#include
main()
{intw[8],i,min,max,t;
printf("请输入8个整型数据:
");
for(i=0;i<8;i++)scanf("%d",&w[i]);
printf("交换前的数组:
");
for(i=0;i<8;i++)printf("%d\t",w[i]);
printf("\n");
min=max=0;
for(i=1;i<8;i++)
if(w[i]>w[max])max=i;
elseif(w[i]t=w[0];w[0]=w[min];w[min]=t;
if(max==0)max=min;
t=w[7];w[7]=w[max];w[max]=t;
printf("交换后的数组:
");
for(i=0;i<8;i++)printf("%d\t",w[i]);
printf("\n");
}
3.不用标准库函数strcpy,自己编写一个函数MyStrcpy实现将两个字符串复制的功能,然后从键盘输入源字符串,并输出复制后的目的字符串。
(13分)
#include
#include
#defineARR_SIZE80
voidMyStrcpy(chardstStr[],charsrcStr[]);
main()
{
chars[ARR_SIZE],t[ARR_SIZE];
printf("Pleaseentersourcestring