c语言题库60道题.docx

上传人:b****7 文档编号:23398441 上传时间:2023-05-16 格式:DOCX 页数:59 大小:27.11KB
下载 相关 举报
c语言题库60道题.docx_第1页
第1页 / 共59页
c语言题库60道题.docx_第2页
第2页 / 共59页
c语言题库60道题.docx_第3页
第3页 / 共59页
c语言题库60道题.docx_第4页
第4页 / 共59页
c语言题库60道题.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

c语言题库60道题.docx

《c语言题库60道题.docx》由会员分享,可在线阅读,更多相关《c语言题库60道题.docx(59页珍藏版)》请在冰豆网上搜索。

c语言题库60道题.docx

c语言题库60道题

第一题:

编写一个售货机(POS)计算程序,用于水果店售货员算账。

苹果每千克3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。

某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。

要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。

#include

main()

{

floatapple=1.5,pear=2.0,banana=3.0,cherry=1.5;

floatcost,pay=100.0,retern;

cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;

retern=pay-cost;

printf("LIST\t重量:

\t价钱:

\n");

printf("apple\t1.5\t%.2f\n",3.2*apple);

printf("pear\t2.0\t%.2f\n",1.96*pear);

printf("banana\t3.0\t%.2f\n",3.0*banana);

printf("cherry\t1.5\t%.2f\n",24.0*cherry);

printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);

}

第二题:

编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。

#include

main()

{

inta[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;

for(i=0;a[i]!

=0;i++)

{

if(a[i]<0)

m++;

elseif(a[i]>0)

n++;

}

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

}

第三题:

统计100-500之间各个数字之和为9的三位数,输出这些三位数。

例如351的各个数字之和为9。

#include

main()

{

inta,b,c,d;

a=100;

for(a=100;a<=500;a++)

{

b=a/100;

c=a/10%10;

d=a%10;

if(c+b+d==9)

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

}

}

第四题:

编程求1-1000之间的所有完数(完数定义:

一个数恰好等于它的除自身外的所有因子之和)。

#include

main()

{

intsum,i,j;

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

{

sum=0;

for(j=1;j

{

if(i%j==0)

sum+=j;

}

if(i==sum)

printf("%d\t",i);

}

printf("\n");

}

第五题:

已知银行整存整取存款不同期限的利率分别为:

3.30%期限半年;3.50%期限一年;4.40%期限二年;5.00%期限三年;5.50%期限五年;到期利息税为5%。

要求输入存取的本金和期限,求到期能从银行得到的利息、本金及总和。

#include

main()

{

floata,b,c,d,e;

inti;

printf("请输入本金:

\n");

scanf("%f",&a);

printf("请输入年限:

\n");

scanf("%f",&b);

if(b==0.5)

{

c=3.30/100;

d=a*c-a*c*5/100;

e=a+d;

}

elseif(b==1.0)

{

c=3.50/100;

d=a*c-a*c*5/100;

e=a+d;

}

elseif(b==2.0)

{

e=a;

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

{

c=4.40/100;

d=e*c-e*c*5/100;

e=e+d;

}

d=e-a;

}

elseif(b==3.0)

{

e=a;

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

{

c=5.00/100;

d=e*c-e*c*5/100;

e=e+d;

}

d=e-a;

}

elseif(b==5.0)

{

e=a;

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

{

c=5.50/100;

d=e*c-e*c*5/100;

e=e+d;

}

d=e-a;

}

else

printf("输入年限错误\n");

printf("本金=%f\n利息=%f\n总和=%f\n",a,d,e);

}

 

第六题:

输入三角形的三边长,判断这个三角形是否是直角三角形。

#include

main()

{

inta,b,c;

printf("请输入a,b,c=");

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

if(a+b>c&&a+c>b&&b+c>a)

{

if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b)

printf("此三角形为直角三角形\n");

else

printf("此三角形不是直角三角形\n");

}

else

printf("输入错误\n");

}

第七题:

输入一串字符(以回车键结束),统计其中数字、大写字母、小写字母以及其他字符的个数。

#include

main()

{

inti=0,a=0,b=0,c=0,d=0;

charstr[50];

printf("pleaseinputastring:

\n");

scanf("%s",&str);

for(i=0;str[i]!

='\0';i++)

{

if(str[i]>='0'&&str[i]<='9')

a++;

elseif(str[i]>='A'&&str[i]<='Z')

b++;

elseif(str[i]>='a'&&str[i]<='z')

c++;

else

d++;

}

printf("%d\n%d\n%d\n%d\n",a,b,c,d);

}

第八题:

编写程序:

找出不超过1000的十位数字为1,个位数字为3或7的所有数。

例如:

13、17、113、317等。

#include

main()

{

inta,b,c,i;

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

{

a=i%10;

b=i/100;

c=i/10-10*b;

if(c==1)

if(a==3||a==7)

printf("%d\t",i);

}

printf("\n");

}

第九题:

某企业利润提成的规则如下:

1)利润低于或等于10万元的,可提成奖金%10;2)利润高于10万元,低于20万元时,低于10万元的部分按%10提成,另外部分可以提成7.5%;3)利润高于20万低于40万元的,其中20万元按前面的方法发放,另外的部分按5%提成;4)利润高于40万元的,40万元按前面的方法提成,高于部分按3%提成。

从键盘输入利润,输出应发的提成。

#include

main()

{

floata,b;

printf("请输入一个利润a:

\n");

scanf("%f",&a);

if(a>0)

{

if(a<=10)

b=a*0.1;

elseif(a<=20)

b=1+(a-10)*7.5/100;

elseif(a<=40)

b=1.75+(a-20)*5/100;

elseif(a>40)

b=2.75+(a-40)*3/100;

printf("提成=%f\n",b);

}

else

printf("输入错误\n");

}

第十题:

利用公式e=1/1!

+1/2!

+1/3!

+…+1/n!

计算e的值并输出(要求:

误差小于10-5)。

#include

main()

{

inti=1,t=1,n;

doublesum=1;

printf("pleaseinputthenumber:

\n");

scanf("%d",&n);

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

{

t*=i;

sum=1.0/t+sum;

}

printf("%lf",sum);

}

第十一题:

从键盘输入一个字符串str,统计其中大写英文字母A,B,C,D出现的次数。

要求输出原始字符串,以及统计的结果。

#include

main()

{

inti=0,a,b,c,d;

charstr[50];

printf("pleaseinputthestring:

\n");

scanf("%s",&str);

a=0;

b=0;

c=0;

d=0;

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

{

if(str[i]=='A')

a++;

elseif(str[i]=='B')

b++;

elseif(str[i]=='C')

c++;

elseif(str[i]=='D')

d++;

}

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

printf("A%d次\nB%d次\nC%d次\nD%d次\n",a,b,c,d);

}

第十二题:

将字符串a中的每个字符用加3的方法加密并存入数组b中,再对b中的字符串解密存入数组c。

要求:

初始化字符串a,依次输出字符串a、b、c。

#include

main()

{

charb[50],c[50],a[50]={"abcdefg"};

inti;

i=0;

while((a[i])!

='\0')

{

b[i]=a[i]+3;

i++;

}

b[i]=a[i];

i=0;

while((b[i])!

='\0')

{

c[i]=b[i]-3;

i++;

}

c[i]=b[i];

printf("a:

%s\nb:

%s\nc:

%s\n",a,b,c);

}

第十三题:

输入两个字符串str1和str2,计算并输出str2在str1中出现的位置(提示:

从位置0开始计算,例如输入str1为”howareyou”,str2为”are”,则位置结果为3),要求初始化字符串str1和str2,输出原始字符串str1和str2,以及位置结果值。

#include

main()

{

charstr1[]={"abcdefghijkl"},str2[]={"efg"};

inti=0;

while(str1[i]!

=str2[1])

{

i++;

}

printf("%s\n%s\n%d\n",str1,str2,i);

}

第十四题:

从键盘输入一个字符串str和一个字符ch,删除字符串str中和输入字符ch相同的所有字符,输出原始字符串str以及删除字符ch后的字符串str。

#include

main()

{

charstr1[20],str2[20],ch;

inti=0,j=0;

printf("pleaseinputthestring:

\n");

gets(str1);

printf("pleaseinputthecharacter:

\n");

scanf("%c",&ch);

while(str1[i]!

='\0')

{

if(str1[i]!

=ch)

{

str2[j]=str1[i];

j++;

}

i++;

}

Str2[j]=’\0’;

printf("删前的字符串%s:

\n",str1);

printf("删后的字符串%s:

\n",str2);

}

第十五题:

从具有10个元素的一维整型数组中查找最小值的元素,然后与数组的第一个元素对调。

要求:

初始化一维数组,输出该数组以及对调元素的数组。

#include

main()

{

inta[10]={1,2,3,4,5,6,7,8,9,0},i=0,t,b,min;

min=a[0];

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

{

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

if(min>a[i])

{

min=a[i];

b=i;

}

}

t=a[0];

a[0]=a[b];

a[b]=t;

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

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

}

第十六题:

在一个具有10元素的整型数组a中,删除数组元素值为奇数的所有数组元素。

要求:

初始化数组a,输出原始数组以及删除数据的数组。

#include

voidmain()

{

inta[10]={1,0,2,9,3,4,5,6,7,8},i=0,j=0,b[10];

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

{

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

{

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

}

}

}

第十七题:

将10个整数存入数组,删除数组中指定的第n个元素。

(要求:

数组初始化定义)

#include

main()

{

inta[10]={1,2,3,4,5,6,7,8,9,0},i=0,n;

printf("请输入一个小于十的数字:

\n");

scanf("%d",&n);

for(i=n-1;i<9;i++)

{

a[i]=a[i+1];

}

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

{

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

}

}

第十八题:

初始化一个4x5的矩阵,求其中最大元素和最小元素所在的行号,对调最大最小元素,输出行号、列号、对调后的矩阵。

#include

voidmain()

{

inte[4][5]={{1,2,3,4,5},{6,7,8,9,10},{12,13,11,21,4},{0,7,19,20,22}},i,j,max,min,a,b,m,n,t;

max=e[0][0];

min=e[0][0];

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

for(j=0;j<5;j++)

{

if(max

{

max=e[i][j];

a=i;

b=j;

}

if(min>e[i][j])

{

min=e[i][j];

m=i;

n=j;

}

}

printf("最大值行%d\n最大值列%d\n最小值行%d\n最小值列%d\n",a+1,b+1,m+1,n+1);

t=e[a][b];

e[a][b]=e[m][n];

e[m][n]=t;

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

{for(j=0;j<5;j++)

printf("%4d",e[i][j]);

printf("\n");}

}

第十九题:

编写函数intfun(intn),判定n是否为十位数字为1,个位数字为3或7的数。

若是,函数返回1,否则返回0。

(提示:

例如:

13、17、113、317都是这样的数。

要求:

在主函数中调用fun函数,并在主函数中输出1000之间的所有十位数字为1,个位数字为3或7的数。

#include

intfun(intn)

{

if((n%10==3||n%10==7)&&(n%100)/10==1)

return1;

else

return0;

}

main()

{

intn;

for(n=0;n<=1000;n++)

{

if(fun(n))

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

}

}

第二十题:

初始化数组为10个学生的某门课成绩,求出其中最高成绩、最低成绩及平均值,统计成绩低于60分的人数、高于平均值的人数和低于平均值的人数。

要求:

输出原始成绩、最高成绩、最低成绩、平均成绩、低于60分的人数、高于平均值的人数、低于平均值的人数。

#include

main()

{

inta[10]={0,78,80,40,69,59,89,99,77,100},i=0,max,min,m=0,n=0,p=0;

floatsum=0.0;

max=a[0];

min=a[0];

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

{

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

sum+=a[i];

if(max

max=a[i];

if(min>a[i])

min=a[i];

if(a[i]<60)

m++;

}

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

{

if(a[i]>sum/10)

n++;

if(a[i]

p++;

}

printf("%4d\n%d\n%.2f\n%d\n%d\n%d\n",max,min,sum/10.0,m,n,p);

}

第二十一题:

已知矩阵a[4][4],交换矩阵中最大元素所在的列与次大元素所在的列。

要求:

(1)编写函数voidchange(inta[4][4])交换最大元素所在的列与次大元素所在的列;

(2)在主函数中初始化原始矩阵,输出原始矩阵以及交换发生后的矩阵。

例如:

初始化矩阵为:

交换后矩阵为:

14581548

3267

#include

intchange(inta[4][4])

{

inti=0,j=0,m,n,t,max,max2;

max=a[0][0];

max2=a[0][0];

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

for(j=0;j<4;j++)

{

if(max

{

max=a[i][j];

m=j;

}

}

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

for(j=0;j<4;j++)

{

if(a[i][j]!

=max&&max2

{

max2=a[i][j];

n=j;

}

}

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

{

t=a[i][m];

a[i][m]=a[i][n];

a[i][n]=t;

}

returna;

}

main()

{

inta[4][4]={{1,2,3,4},{5,6,7,8},{0,10,11,12},{9,20,11,13}},i=0,j=0;

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

{

for(j=0;j<4;j++)

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

printf("\n");

}

change(a);

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

{

for(j=0;j<4;j++)

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

printf("\n");

}

}

计算π的值误差定在之内:

#include

main()

{

intt=1;

doublesum=0.0,i=0.0;

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

{

sum+=t/i;

t=-t;

}

printf("%lf",4*sum);

}

22:

编写函数voidfun(charstr[30],chara),删除字符串str中所有a代表的字符,被删除后的字符依次向前移动。

要求:

在主函数中初始化字符数组,并输入字符a,输出原字符数组及删除结果。

例如:

初始化字符数组str[30]=”ThisisatestofClanguage.”,输入字符a=‘t’,则删除之后的结果为”ThisisaesofClanguage.”。

#include

voidfun(charstr[30],chara)

{

inti,j;

charstr2[30];

j=0;

i=0;

while(str[i]!

='\0')

{

if(str[i]!

=a)

{

str2[j]=str[i];

j++;

}

i++;

}

str2[j]='\0';

for(i=0;str2[i]!

='\0';i++)

printf("%c",str2[i]);

}

main()

{

charstr[30]={"aabbccddn"},a;

inti;

printf("请输入一个字符:

");

scanf("%c",&a);

for(i=0;str[i]!

='\0';i++)

printf("%c",str[i]);

printf("\n删除后\n");

fun(str,a);

printf("\n");

}

23:

编写函数intStrCount(char*str1,char*str2)。

Str1和str2为两个输入的字符串。

函数统计str2在str1中出现的次数,返回该数值。

要求:

在主函数main中初始化str1和str2,调用函数StrCount(str1,str2)后输出结果。

如输入str1为"howareyouareGGGare",str2为"are",那么调用函数StrCount后函数返回3。

#include

intStrCount(char*str1,char*str2)

{

inti=0,b,sum=0;

for(i=0;str1[i]!

='\0';i++)

{

if(str1[i]==str2[0])

{

for(b=1;str2[b]!

='\0';b++)

{

if(str1[i+b]!

=str2[b])

{

break;

}

}

if(str2[b]=='\0')

sum+=1;

}

}

printf

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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