c语言题库60道题.docx
- 文档编号:23398441
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:59
- 大小:27.11KB
c语言题库60道题.docx
《c语言题库60道题.docx》由会员分享,可在线阅读,更多相关《c语言题库60道题.docx(59页珍藏版)》请在冰豆网上搜索。
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]!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库 60 道题