C程序设计试题及题解.docx

上传人:b****8 文档编号:11358053 上传时间:2023-02-28 格式:DOCX 页数:67 大小:97.44KB
下载 相关 举报
C程序设计试题及题解.docx_第1页
第1页 / 共67页
C程序设计试题及题解.docx_第2页
第2页 / 共67页
C程序设计试题及题解.docx_第3页
第3页 / 共67页
C程序设计试题及题解.docx_第4页
第4页 / 共67页
C程序设计试题及题解.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

C程序设计试题及题解.docx

《C程序设计试题及题解.docx》由会员分享,可在线阅读,更多相关《C程序设计试题及题解.docx(67页珍藏版)》请在冰豆网上搜索。

C程序设计试题及题解.docx

C程序设计试题及题解

二、改错题

1.统计输入字符串中大小写字母的个数

程序Cmody041.c,其功能是统计输入字符串中大小写字母的个数,

如输入:

abcdEFGHIJK123

输出:

4

答案:

#include

#include

main()

{

charstr1[128];

/**/inti;len,sum=0;/**//*inti,len,sum=0;*/

gets(str1);

len=strlen(str1);

for(i=0;i

{

/**/if(str1[i]>='a'||str1[i]<='z')/**//*if(str1[i]>='a'&&str1[i]<='z')*/

sum++;

}

printf("%d\n",sum);

getch();

}

2.逆序输出

程序Cmody042.c,其功能是将从键盘依次输入的M个整数逆序输出.

如,输入:

1246568325357629

输出:

2976352583656412

答案:

#include

#include

#defineM8

main()

{inta[M],i;

printf("Pleaseinput8numbers:

\n");

for(i=0;i

scanf("%d",/**/a[i]/**/);/*&a[i]*/

printf("Inverseorderis:

\n");

/**/for(i=M-1;i<=0;i--)/**//*for(i=M-1;i>=0;i--)*/

printf("%d",a[i]);

printf("\n");

getch();

}

3.计算大于10的最小n个能被3整除的正整数之和.

程序Cmody012.c中函数fun(intn)的功能是:

根据参数n,计算大于10的最小n个能被3整除的正整数之和.例如:

fun(8)=

答案:

#include

#include

#include

#include

#defineM50

doublefun(intn)

{doubley=0.0;

inti,j;

j=0;

for(i=1;;i++)

{

/**/if((i<10)&&(i%3==0))/**//*if((i>10)&&(i%3==0))*/

{

/**/y+=1/i;/**//*y+=1.0/i;*/

j++;

}

if(j==n)break;

}

returny;

}

voidmain()

{clrscr();

printf("fun(8)=%8.3lf\n",fun(8));

}

4.从键盘上输入两个整数,及一个运算符进行运算

程序cmody031.C的功能是:

从键盘上输入两个整数,及一个运算符(+、-、*、/或%),进行程序相应的运算后输出运算的结果。

如输入:

1+2

将输出:

1+2=3

答案:

#include

#include

voidmain()

{intm,n,result,flag=0;

/**/charch,/**//*charch;*/

clrscr();

printf("Inputanexpression:

");

scanf("%d%c%d",&m,&ch,&n);

/**/switchch/**//*switch(ch)*/

{case'+':

result=m+n;break;

case'-':

result=m-n;break;

case'*':

result=m*n;break;

case'%':

result=m%n;break;

case'/':

result=m/n;break;

default:

{printf("Error!

\n");flag=1;}

}

if(!

flag)printf("%d%c%d=%d\n",m,ch,n,result);

getch();

}

5.输出201~300之间的所有素数,统计总个数

程序cmody032.C的功能是:

输出201~300之间的所有素数,统计总个数。

答案:

#include

#include

voidmain()

{intnum;

printf("\n");

num=fun();

printf("\nThetotalofprimeis%d",num);

getch();

}

intfun()

{intm,i,k,n=0;

for(m=201;m<=300;m+=2)

{k=sqrt(m+1);

for(i=2;i<=k;i++)

/**/if(m/i==0)/**//*if(m%i==0)*/

break;

/**/if(i==k)/**//*if(i>k)*/

{printf("%-4d",m);

n++;;

if(n%10==0)printf("\n");

}

}

returnn;

}

6.统计输入字符串中大写类英文字母的个数

程序cmody051.c,其功能是统计输入字符串中大写类英文字母的个数。

如输入:

abcDEFGH123,输出:

5

答案:

#include

#include

main()

{

/**/charstr1/**/;/*charstr1[255]*/

inti,len,sum=0;

printf("Pleaseinputastring:

\n");

scanf("%s",str1);

len=strlen(str1);

for(i=0;i

{

if(str1[i]>='A'&&str1[i]<='Z')

/**/sum--;/**//*sum++;*/

}

printf("%d\n",sum);

getch();

}

7.从键盘依次输入M个整数,输出其中所有的偶数

程序cmody052.c,其功能是实现从键盘依次输入M个整数,输出其中所有的偶数。

如输入:

2362384526输出:

623826

答案:

#include

#include

/**/#includeM5/**//*#defineM5*/

main()

{

inta[M],i;

printf("Pleaseinput5numbers:

\n");

for(i=0;i

scanf("%d",&a[i]);

printf("Evennumbers:

\n");

for(i=0;i

/**/if(a[i]/2==0)/**//*if(a[i]%2==0)*/

printf("%d",a[i]);

printf("\n");

getch();

}

8.输出三角形

程序cmody021.c输出如下所示图形

答案:

#include

voidmain()

{

/**/inti;j;/**//*inti,j;*/

for(i=1;i<=5;i++)

{

for(j=1;j<=10-2*i;j++)

printf("");

/**/for(j=1;j<=5;j++)/**//*for(j=1;j<=2*i-1;j++)*/

printf("*");

printf("\n");

}

}

9.百元买百鸡

程序cmody022.c的功能是求解百元买百鸡问题:

设一只公鸡2元,一只母鸡1元,一只小鸡0.5元。

问一百元买一百只鸡、公鸡、母鸡、小鸡数可分别为多少?

有多少种分配方案?

答案:

#include

#include

/**/intfun();/**//*intfun()*/

{inthen,cock,chicken,n=0;

for(cock=0;cock<=50;cock+=1)

for(hen=0;hen<=100;hen=hen+1)

{chicken=2*(100-hen-2*cock);

/**/if(cock+hen+chicken=100)/**//*if(cock+hen+chicken==100)*/

{n++;

printf("%d-->hen:

%d,cock:

%d,chicken:

%d\n",n,hen,cock,chicken);

if(n==20)getch();

}

}

returnn;

}

voidmain()

{intnum;

num=fun();

printf("\nThereare%dsolutions.\n",num);

getch();

}

10、输入字符串‘0~8’的数字字符变成比它大1的数字字符将‘9’变为‘0’

程序cmody061.c功能输入字符串‘0~8’的数字字符变成比它大1的数字字符将‘9’变为‘0’。

如输入:

ab12cd56EF89GH4

ab23cd67EF90GH5

答案:

#include

#include

main()

{

charstr1[128],str2[128];

inti,len;

gets(str1);

len=strlen(str1);

/**/for(i=0;i>len;i++)/**//*for(i=0;i

{

if(str1[i]>='0'&&str1[i]<='8')

str2[i]=str1[i]+1;

elseif(str1[i]=='9')

str2[i]='0';

else

str2[i]=str1[i];

}

/**/str2[i]='\n';/**//*str2[i]='\0';*/

puts(str2);

getch();

}

11、连接字符串

程序cmody062.c功能将程序中两个字符串“ABC”、“xyz”连接在一起并输出ABCxyz

答案:

#include

#include

voidmain()

{

chars1[12]="ABC",s2[]="xyz";

char*ps1=s1,*ps2;

/**/ps2=NULL;/**//*ps2=s2;*/

/**/while(*ps1==NULL)/**//*while(*ps1!

='\0')*/

ps1++;

while(*ps2)*(ps1++)=*(ps2++);

printf("%s\n",s1);

getch();

}

12、取出ASCII码值为偶数且下标为偶数的字符

程序cmody011.c的功能是:

从字符串数组str1中取出ASCII码值为偶数且下标为偶数的字符依次存放到字符串中。

eg:

若str1所指的字符串为:

4AZ18C?

Ge9a0z!

则t所指的字符串为:

4ZBZ

答案:

#include

#include

#include

#include

voidmain()

{charstr1[100],t[200];

inti,j;

/**/i=0;/**//*j=0;*/

clrscr();

strcpy(str1,"4AZ18c?

Ge9a0z!

");

for(i=0;i

{

/**/if((str1[i]%2==0)&&(i%2!

=0))/**//*if((str1[i]%2==0)&&(i%2==0))*/

{

t[j]=str1[i];

j++;

}

}

t[j]='\0';

printf("\nOriginalstring:

%s\n",str1);

printf("\nResultstring:

%s\n",t);

}

13.求三角形面积

程序Cmody071.c,其功能是从键盘输入三角形的三边长,求其面积,若三个边长不能构成三角形,则提示错误

如输入:

6911

输出:

26.98

答案:

#include

#include

voidmain()

{

floata[3],s,area;

inti;

printf("Pleaseinput3numbers:

\n");

for(i=0;i<3;i++)

scanf("%f",/**/a[i]/**/);/*&a[i]*/

/**/if(a[0]+a[1]>a[2]||a[1]+a[2]>a[0]||a[0]+a[2]>a[1])/**/

/*if((a[0]+a[1])>a[2]||(a[1]+a[2])>a[0]||(a[0]+a[2])>a[1])*/

{

s=(a[0]+a[1]+a[2])/2;

area=sqrt(s*(s-a[0])*(s-a[1])*(s-a[2]));

printf("areais%.2f\n",area);

}

else

printf("error.\n");

getch();

}

14.百马百担问题

程序Cmody072.c,其功能是求解百马百担问题.

有100匹马,驮100担货,大马驮3担,中马驮2担,小马驮1担,问大,中,小马数可分别为多少?

有多少种解决方案?

答案:

#include

#include

/**/voidfun()/**//*intfun()*/

{

intlarge,middle,small,n=0;

clrscr();

for(large=0;large<=33;large++)

for(middle=0;middle<=50;middle++)

{

small=2*(100-3*large-2*middle);

/**/if(large+middle+small=100)/**//*if(large+middle+small==100)*/

{

n++;

printf("%d-->large:

%d,middle:

%d,small:

%d\n",n,large,middle,small);

}

}

returnn;

}

voidmain()

{

intnum;

num=fun();

printf("\nThereare%dsolutions.\n",num);

getch();

}

15.求一堆零件的总数(100至200之间)

程序cmody081.c,其功能是求一堆零件的总数(100至200之间)

如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件,则多5个零件。

答案:

#include

voidmain()

{

inti;

/**/for(i=100;i<200;i++);/**//*for(i=100;i<200;i++)*/

if((i-2)%4==0)

if(!

((i-3)%7))

if(i%9==5)

printf("%d\n",/**/&i/**/);/*i*/

getch();

}

16.交换两个变量的值

程序cmody082.c,其功能是交换两个变量的值。

如输入:

23

输出:

original:

resuct:

答案:

#include

/**/voidswap(intp1,intp2)/**//*voidswap(int*p1,int*p2)*/

{

inttemp;

temp=*p1;

/**/p1=p2;/**//**p1=*p2;*/

*p2=temp;

}

voidmain()

{

inta,b;

printf("pleaseinput2numbers:

\n");

scanf("%d%d",&a,&b);

printf("\nOriginal:

a=%db=%d\n",a,b);

swap(&a,&b);

printf("\nResult:

a=%db=%d\n",a,b);

getch();

}

17.计算1至100之间的奇数之和,偶数之和

程序cmody091.c,其功能是计算1至100之间的奇数之和,偶数之和

答案:

#include

voidmain()

{

intb,i;

/**/inta=c=0;/**//*inta=0,c=0;*/

/**/for(i=0,i<=100,i+=2)/**//*for(i=0;i<=100;i+=2)*/

{

a+=i;

b=i+1;

c+=b;

}

printf("totalofevennumbers:

%d\n",a);

printf("totalofoddnumbers:

%d\n",c-101);

getch();

}

18.求满足等式xyz+yzz=520的x、y、z值(其中xyz和yzz分别表示一个三位数)。

程序cmody092.c的功能是求满足等式xyz+yzz=520的x、y、z值(其中xyz和yzz分别表示一个三位数)。

答案:

#include

voidmain()

{

intx,y,z,i,result=520;

for(x=1;x<10;x++)

for(y=1;y<10;y++)

/**/for(z=1;z<10;z++)/**//*for(z=0;z<10;z++)*/

{

i=100*x+10*y+z+100*y+10*z+z;

/**/if(i=result)/**//*if(i==result)*/

printf("x=%d,y=%d,z=%d\n",x,y,z);

}

getch();

}

三、填空题

1.计算f(x)=

补充程序Ccon011.c使其计算f(x)=

答案:

#include

#include

voidmain()

{

intx;

/**/floatf;/**/

printf("Inputaninteger:

");

scanf("%d",&x);

f=/**/(fabs(x)-2)/(x*x+1)/**/;

printf("F(x)=%f\n",f);

}

2.计算圆周率

补充程序Ccon012.c,该程序用公式

计算圆周率的近似值。

答案:

#include

voidmain()

{doublepi=0;

longi,sign=1;

for(i=1;i<=10001;i+=2)

{

pi+=1.0*sign/i;

sign=/**/-sign/**/;

}

pi*=/**/4/**/;

printf("%f\n",pi);

}

3.从10个数中找出最大值和最小值

补充程序Ccon013.c程序实现从10个数中找出最大值和最小值.

答案:

#include

#include

intmax,min;

voidfind_max_min(int*p,intn)

{

int*q;

max=min=*p;

for(q=p;q

if(/**/max<*q/**/)max=*q;

elseif(min>*q)min=*q;

}

voidmain()

{

inti,num[10];

printf("Input10numbers:

");

for(i=0;i<10;i++)scanf("%d",&num[i]);

find_max_min(/**/num/**/,10);

printf("max=%d,num=%d\n",max,min);

}

4.计算满足一定条件的一位整数A和B的值

补充程序Ccon021.c,使其计算满足下式的一位整数A和B的值.

答案:

#include

voidmain()

{

inta,b,k;

intplu=/**/403/**/;

for(a=1;a<10;a++)

for(b=1;b<10;b++)

{

k=(a*10+b)*/**/(b*10+a)/**/;

if(k==plu)

printf("A=%d,B=%d\n",a,b);

}

}

5.输入若干个整数,统计其中大于0和小于0的个数,以0结束输入

补充程序Ccon022.c,使其实现输入若干个整数,统计其中大于0和小于0的个数,以0

结束输入

答案:

#include

voidmain()

{

intn,a,b;

/**/

a=0;

b=0;

/**/

scanf("%d",&n);

while(/**/n!

=0/**/)

{

if(n>0)a++;

else/**/if(n<0)b++;/**/

s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1