min=a[i][j];
if(a[i][j]>max)
/**/max=a[i][j]/**/
}
printf("Result=%d\n",max-min);
getch();
}
_
Cmody212.c
修改程序cmody212.c,实现从键盘输入一串字符和一个字串,输出该子串在原字符串中出现的次数。
#include
#include
voidmain()
{
inti,j,k,count;
chars1[100],s2[100];
printf("EntermainString:
");
gets(s1);
printf("EnterSubString:
");
gets(s2);
count=0;
/**/for(i=0;*s1!
='\0';i++)/**/
{
/**/for(k=0;(s1[j]==s2[k])&&(s1[j]!
='\0');j++,k++);/**/
if(s2[k]=='\0')count++;
}
printf("\nCount=%d\n",count);
getch();
}
Cmody221.c
修改程序,输出存储在结构体数组中8位学生成绩的平均分以及最高学生的姓名
#include
/**/structurestudent/**/
{
charname[10];
floatscore;
};
voidmain()
{
structstudentstu[8]={{"Mary",76},{"John",85},
{"Tom",81},{"Susa",87},{"Wilu",79},{"Yili",65},{"Sonmu",73},{"Lichar",70}};
inti=0,mrk;
floattotal=0,aver,max;
max=stu[0].score;
mrk=0;
while(i<8)
{
/**/total=total+stu[i];/**/
if(stu[i].score>max)
{max=stu[i].score;
mrk=i;
}
/**/i++/**/
}
aver=total/8;
printf("\naver=%.2f\nBestis%s\n",aver,stu[mrk].name);
getch();
}
Cmody222.c
修改程序,完成其中n个字符串的升序排列
#include
#include
#defineROW5
#defineCOL30
voidfun(chars[][COL],intn)
{
chartemp[COL];
inti,j;
for(i=0;i/**/for(j=i+1;jif(strcmp(s[i],s[j])>0)
{
strcpy(temp,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],temp);
}
}
voidmain()
{
inti;
charstr[][COL]={"DEF","BAEELCS","FHIAME","CBADF","APMAE"};
/**/fun(str,COL);/**/
clrscr();
for(i=0;iprintf("%s\n",str[i]);
getch();
}
Cmody231.c
修改程序cmody231.c,实现将输入的十进制正整数转换成十六进制数,且用字符串存放该十六进制数
#include
#include
#include
voidmain()
{
intx,b,i,j;
chars[5];
printf("Inputanumber(Dec):
");
scanf("%d",&x);
/**/i=1;/**/
while(x>0)
{b=x%16;
if(b>9)
s[i]=b-10+'A';
else
/**/s[i]=b/**/;
x=x/16;
i++;
}
printf("\nHexnumberis:
");
for(j=i-1;j>=0;j--)
putchar(/**/s[i]/**/);
getch();
}
Cmody232.c
修改程序cmody232.c,输出下列9行数字金字塔
1
121
12321
1234321
………………………
12345678987654321
#include
voidmain()
{
inti,j,k;
for(k=1;k<=9;k++)
{
/**/for(i=0;i<=k;i++)/**/
printf("");
for(i=1;i<=k;i++)
printf("%d",i);
/**/for(j=k-1;j>1;j--)/**/
printf("%d",j);
printf("\n");
}
getch();
}
三、填空题
Ccon191.c
程序ccon191.c,从键盘输入3个实型值,若它们能构成一个三角形(即任意两边之和大于第三边),则根据以下公式求该三角形面积;否则,提示相应信息。
#include
#include
voidmain()
{
floata,b,c,d,area;
printf("Pleaseinput3numbers:
\n");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c/**//**/)
{d=(a+b+c)/2;
area=/**//**/;
printf("areais%.2f\n",area);
}
else
printf("NotTriangle!
\n");
getch();
}
Ccon192.c
程序ccon192.c,计算:
已知大货车限载8吨、中型货车限载3吨、微型货车限载1吨,需50辆车运输100吨货物时,应配备的大、中、微型车分别多少辆?
共有多少种解决方案?
#include
#include
int/**//**/()
{
intbig,median,small,n=0;
printf("bigmediansmall\n");
for(big=0;big<=13;/**//**/)
for(median=0;median<=33;median++)
{
small=100-8*big-3*median;
if(/**//**/==50)
{
n++;
printf("%d-->%2d%2d%2d\n",
n,big,median,small);
}
}
returnn;
}
voidmain()
{
intnum;
num=fun();
printf("\nThereare%dsolutions.\n",num);
getch();
}
Ccon201.c
程序ccon201.c,按照以下袋装情况求一堆苹果的总数,总数在100~300之间。
若按每袋装8个苹果则多出5个,若按每袋装7个苹果,则多出4个,若按每袋装5个苹果,则多出2个。
#include
voidmain()
{
intn;
for(n=300;/**//**/;n--)
{if(n%8==5)
if(!
((n-4)%7)/**//**/)
printf("n=%d\n",n);
}
getch();
}
Ccon202.c
程序ccon202.c中的swap函数,通过指针变量实现两个变量值的交换。
#include
voidswap(/**//**/)
{intsum;
sum=*p1+*p2;
*p1=/**//**/;
*p2=sum-*p1;
}
voidmain()
{
intx,y;
printf("pleaseinput2numbers:
\n");
scanf("%d,%d",&x,&y);
printf("\nOriginal:
x=%dy=%d\n",x,y);
swap(&x,&y);
printf("\nNow:
x=%dy=%d\n",x,y);
getch();
}
Ccon211.c
程序ccon211.c,按每行最多5个数方式输出100~400之间能同时被7和4整除的所有数及它们之和。
#include
voidmain()
{
inti,n;
intsum=0;
/**//**/
for(i=101;i<=399;i++)
{
if(/**//**/&&!
(i%4))
{printf("%d",i);
sum+=/**//**/;
n++;
if(n%5==0)
printf("\n");
}
}
printf("\nsum=%d\n",sum);
getch();
}
Ccon212.c
程序ccon212.c中的cmob函数用以输出等式a*b*c+a*c*c=560的所有a,b,c的组合(其中a,b,c只取1~9之间的一位整数)。
如a=7,b=2,c=8时,7*2*8+7*8*8=560
#include
voidcomb(/**//**/)
{inta,b,c;
for(a=1;a<10;a++)
for(b=1;b<10;b++)
for(c=1;c<10;c++)
{
if(/**//**/==m)
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
}
voidmain()
{
intresult=560;
comb(result);
getch();
}
Ccon221.c
程序ccon221.c,输出如下图形
%%%%%%%
&&&&&&
%%%%%
&&&&
%%%
&&
%
#include
#include
voidmain()
{
introw,col;
for(row=1;row<=7;row++)
{
printf("\t");
for(col=1;col<=/**//**/;col++)
if(row%2)
printf("%c",/**//**/);
else
printf("%c",/**//**/);
printf("\n");
}
getch();
}
Ccon222.c
程序ccon222.c中的pnt函数,根据参数n(2≤n≤10),输出类似如下所示的方针(n=5).
12345
109876
1112131415
2019181716
2122232425
#include
#include
#defineM10
voidpnt(inta[M][M],intn)
{inti,/**//**/;
for(i=0;ifor(j=0;j{if(i%2==0)
a[i][j]=/**//**/;
else
a[i][j]=i*n+n-j;
}
printf("arraya(n=%d)is:
\n",n);
for(i=0;i{for(j=0;jprintf("%3d",a[i][j]);
printf("\n");
}
}
voidmain()
{
inta[M][M];
intn;
printf("Inputn(2<=nAndn<=10):
");
scanf("%d",&n);
pnt(/**//**/,n);
getch();
}
Ccon231.c
程序ccon231.c,计算以下分数序列的前18项之和
#include
voidmain()
{
inti;
floatsum,a=2,b=1,t;
/**//**/;
for(i=1;i<=18;i++)
{
sum+=/**//**/;
t=a;
a=a+b;
b=/**//**/;
}
printf("sum=%f\n",sum);
getch();
}
Ccon232.c
程序ccon232.c中的inv函数,通过指针变量将字符串str的内容”asdfjk”,调用inv函数后,变成:
”kjfdsa”。
#include
#include
voidinv(char*str)
{inti,j,k;
j=/**//**/;
for(i=0;i{k=*(str+i);
*(str+i)=*(str+j);
*(str+j)=/**//**/;
}
}
voidmain()
{
charstr[]="asdfjk";
printf("\nOriginalis:
%s\n",str);
inv(str);
printf("\nNowis:
%s\n",str);
getch();
}
四、编程题
cprog191.c
打开程序cprog191.c,完成其中的fun函数:
根据输入的汇款数额,求应交的汇费。
设应交汇费的计算公式如下:
#include
#include
doublefun(floatx)
{
/**/
/**/
}
voidmain()
{
floatx;
doubley;
clrscr();
printf("Pleaseinputanumber:
\n");
scanf("%f",&x);
y=fun(x);
printf("f(%.2f)=%.2f\n",x,y);
getch();
}
cprog192.c
打开程序cprog192.c,完成其中的fun函数:
对4×4矩阵从顶行开始各行按从左到右顺序查找,找出各行中0元素之后的所有负数,并按元素出现的先后顺序存放到数组b中,并返回这些负数之和。
如矩阵为:
则调用函数fun()后,数组b各元素依次为-3,-1,-4,-3,-12,-13,并返回-36.
#include
#include
#defineROW4
#defineCOL4
#defineLEN12
intfun(inta[][COL],intb[])
{
/**/
/**/
}
voidmain()
{
intarra[ROW][COL]={{-2,0,-3,-1},{-8,2,0,-4},
{0,3,-3,-12},{21,0,-13,3}};
intarrb[LEN],i,result;
for(i=0;iarrb[i]=0;
clrscr();
result=fun(arra,arrb);
printf("arrayarrbis:
\n");
for(i=0;iif(arrb[i]==0)printf("");
elseprintf("%4d",arrb[i]);
printf("\nresult=%d",result);
getch();
}
cprog201.c
打开cprog201.c,完成其中的函数fun,该函数的数学表达式是
#include
#include
doublefun(floatx)
{
/**/
/**/
}
voidmain()
{
floatx;
doubley;
printf("Pleaseinputanumber:
\n");
scanf("%f",&x);
y=fun(x);
printf("f(%.3f)=%.3f\n",x,y);
getch();
}
cprog202.c
打开程序cprog202.c,完成其中的fun函数:
函数fun(doublex,intn),用以下公式近似计算cos(x)的值:
#include
voidmain()
{
doublex;
intn;
doublefun(doublex,intn);
printf("Pleaseenterx,n:
");
scanf("%lf%d",&x,&n);
printf("cos(%lf)=%lf\n",x,fun(x,n));
getch();
}
doublefun(doublex,intn)
{
/**/
/**/
}
cprog211.c
打开cprog211.c,完成其中的函数fun,该函数的数学表达式是
#include
#include
doublefun(floatx)
{
/**/
/**/
}
voidmain()
{
floatx;
doubley;
clrscr();
printf
|