C语言 基础练习40题
一、题目
1.输入2个整数,求两数的平方和并输出。
2. 输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
3、函数y=f(x)可表示为:
4、编写一个程序,从4个整数中找出最小的数,并显示此数。
5.有一函数当x<0时y=1,当x>0时,y=3,当x=0时y=5,编程,从键盘输入一个x值,输出y值。
6.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)
7、从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄。
8、键盘输入2个加数,再输入答案,如果正确,显示“right”,否则显示“error”
9. 编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:
要求当输入每月上网小时数,显示该月总的上网费用(6分)
10.神州行用户无月租费,话费每分钟0.6元,全球通用户月租费50元,话费每分钟0. 4元。输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。
11.个人所得税计算,应纳税款的计算公式如下:
收入 |
税率 |
收入<=1000元部分 |
0% |
2000元>=收入>1000元的部分 |
5% |
3000元>=收入>2000元的部分 |
10% |
6000元>=收入>3000元的部分 |
15% |
收入>6000元的部分 |
20% |
输入某人的收入,计算出应纳税额及实际得到的报酬。(7分)
(如需连续计算多个人的纳税情况,直到输入负数为止,程序应如何改进?试写出程序)
12.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。
13. 编程设计一个简单的计算器程序。从键盘输入2个操作数,1个运算符,当运算符为加(+)、减(-)、乘(*)、除(/)时,输出计算结果
14. 从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。
15、编程序实现求1-200之间的所有数的乘积并输出。
16. 从键盘上输入10个数,求其平均值。
17、编程序实现求1-1000之间的所有奇数的和并输出。
18.有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13……
编程求这个序列的前20项之和。
19. 用数组实现以下功能:输入5个学生成绩,而后求出这些成绩的平均值并显示出来。
20、用循环的方法构造一个5行5列的二维数组,使主对角线上的变量为1,其它为0,并将数组中所有项按行按列显示出来。
21.求一个3×3矩阵对角线元素之和。从键盘输入矩阵元素的值并输出和的值.
22.输入n的值,n代表行数,输出如图所示的图形。(6分)
*
* * *
* * * * *
* * * * * * * (此图为n=4时的输出结果)
23、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。
(提示:用数组存放成绩数据)
24.从键盘输入某班学生某门课的成绩及其学号(班级人数最多40人,具体人数由键盘输入),输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分。请编写程序。
25.将一个有5个元素的数组中的值(整数)按逆序重新存放。
例: 原来顺序为:8、6、5、4、1,要求改为1、4、5、6、8
26.从键盘上输入一个2*3的矩阵,将其转置后形成3*2的矩阵输出。
27.编写两个函数分别求两个整数的最小公倍数和最大公约数,用主函数调用这两个函数并输出结果。两个整数由键盘输入。
28. 输入一个3*3矩阵,求出其转置矩阵,并求出两个矩阵的和.
29、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。(提示:用数组存放成绩数据)
30. 定义一个5行3列的数组,从键盘输入各数组元素的值,计算各数组元素之和。
31、编写程序,交换两个数组中的对应元素。
32、从键盘上输入一个4*3的整型数组,找出数组中的最小值及其在数组中的下标。
33.编程实现如下功能:从键盘输入一行字符,统计其中大写英文字符,小写英文字符和其他字符的个数。
34.编程实现如下功能:
1)在主函数中,实现从键盘输入10名学生某门课的成绩,保存在一维数组中;调用排序函数;对排序后的数组中的元素按从高到低打印输出。
2)编写排序函数,使用数组名做函数参数,实现对该成绩的排序。
35.编程实现如下功能:
实现从键盘输入两个字符串,分别存入两个不同的字符数组中;将两个字符串连接为一个字符串,并打印输出连接后的整个字符。
36、猜数游戏。系统随机产生一个整数,通过键盘输入数据猜数,猜对为止,并要求统计猜的次数。
注:rand()函数可以产生0~32767间的正整数,程序中需包含stdlib.h。
37.输入两个整数,利用指针变量作为函数参数,编程实现两数互换功能,并将交换后的数据重新输出。
38.随机输入若干个学生的体重,以输入负数或零结束,分别求最重和最轻的体重,并计算平均体重。
39.输入m,k的值,编程求下面表达式的值:(要求编写一个求阶乘的函数,调用函数实现本题)
40. 编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。
c语言试题100道(前三十道)
前三十道
//自己做的由于题干较为模糊可能和标准答案有所差异
1. 按下述格式,从键盘输入一个整数加法表达式:操作数1+操作数2,然后计算
并输出表达式的计算结果,形式如下:操作数1+操作数2=计算结果。
2. 输入两个整形数并打印,如果用户不慎输入了非法字符,那么程序提示“输入
数据类型错误”。
3. 已知三角形的三边长a,b,c,要求编写程序,从键盘输入a,b,c的值,计算
并输出三角形的面积(注意不存在的情况)。
4. 编程从键盘输入圆的半径r,计算并输出圆的周长和面积。
5. 任意从键盘输入一个三位整数,要求正确分离它的个位,十位和百位数,并分
别在屏幕上输出。
6. 写一个函数实现统计一个输入的整形数的位数。
7. 编程计算方程ax*x+bx+c=0的根,a,b,c由键盘输入,只是用主函数来实现。
8. 编写三个函数,分别在b*b-4*a*c大于0、小于0、等于0时进行调用,并输出
结果,在主函数中读入a、b、c的值。
9. 从键盘输入你和你朋友的年龄,变成判断谁的年龄大,并打印最大者的年龄。
10. 从键盘输入一个年份,判断该年是否是闰年,并输出结果。
11. 判断某人是否属于肥胖体型。根据身高与体重因素,医务工作者经广泛的调查
分析给出了以下按“体指数”对肥胖程度的划分:体指数t=w/h*h(w为体重,
单位为kg,h为身高,单位为m)。当t<18时,为低体重;当t介于18和25
之间时,为正常体重;当t介于25和27之间时,为超重体重;当t≧27时,
为肥胖。编程从键盘输入你的身高h和体重w,根据上式,判断体重类型。
12. 利用switch语句将百分制成绩转化为五分制成绩。
13. 利用switch语句将五分制成绩转换成对应分数范围并输出。
14. 编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数
1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。
15. 利用时间函数编写一个猜数程序。
16. 编程实现计算n的阶乘。
17. 利用函数递归实现计算n!。
18. 利用π/4=1-1/3+1/5-1/7??计算π的值直到最后一项的绝对值小于0.0001
为止,要求统计总共累加了多少项。
19. 编程输出正三角格式的九九乘法表。
20. 编程输出下三角格式的九九乘法表。
21. 从键盘任意输入一个正整数,编程判断它是否是素数,若是素数,输出“YES”,
否则输出“NO!”。
22. 编写一个程序实现输出1—100之间所有素数。
23. 编写一个程序实现输出任意指定m、n之间的所有素数。
24. 读入一个年份和月份,打印出该月有多少天(考虑闰年),用switch语句编程。
25. 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等
于该数本身。(例159=1*1*1+3*3*3+5*5*5)
26. 鸡兔同笼,共有98个头,386只脚,编程求鸡兔各多少只。
27. 用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,
问共有几种兑换方案?并输出每种方案。
28. 三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6
个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?
29. 打印100以内整数的平方根表。
30. 编程打印一下图案:
@
@ @ @
@ @ @ @ @
@ @ @ @ @ @ @
1.
#include<stdio.h>
main()
{
int a,b;
scanf("%d+%d",&a,&b);
printf("%d+%d=%d",a,b,a+b);
}
2.
#include<stdio.h>
main()
{
int a,b;
int i,j;
i= scanf("%d",&a);
j= scanf("%d",&b);
if (i==1&&j==1) printf("%d %d",a,b);
else printf("输入类型错误!\n");
}
3.
#include<stdio.h>
#include<math.h>
main()
{
double s,p,a,b,c,i;
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
p=0.5*(a+b+c);
i=p*(p-a)*(p-b)*(p-c);
s=sqrt(i);
printf("%lf",s);
}
else printf("输入错误");
}
4.
#include<stdio.h>
#define pi 4.0*atan(1.0)
main()
{
int r;
double s,c;
scanf("%d",&r);
c=2*pi*r;
s=pi*r*r;
printf("%lf %lf",c,s);
}
5.
#include<stdio.h>
main()
{
int x,a,b,c;
scanf("%d",&x);
a=x/100;
b=x/10%10;
c=x%10;
printf("%d\n%d\n%d\n",c,b,a);
}
6.
#include<stdio.h>
int my(int a)
{
int i;
for(i=1;i<=100;i++)
{
a=a/10;
if(a==0) break;
}
return i;
}
main()
{
int x,y;
scanf("%d",&x);
y=my(x);
printf("%d",y);
}
题目要求用函数,如果不会函数的话可以这么写。
#include<stdio.h>
main()
{
int x,y,i;
scanf("%d",&x);
for(i=1;i<=100;i++)
{
x=x/10;
if(x==0) break;
}
printf("%d",i);
}
7.
#include<stdio.h>
#include<math.h>
main()
{
int a,b,c,x1,x2;
double i;
scanf("%d%d%d",&a,&b,&c);
i=b*b-4*a*c;
if(i>=0)
{
x1=((-b)+sqrt(i))/(2*a);
x2=((-b)-sqrt(i))/(2*a);
printf("%d %d",x1,x2);
}
}
8.
#include<stdio.h>
#include<math.h>
text1(double i ,int a,int b)
{
double x1,x2;
x1=((-b)+sqrt(i))/(2*a);
x2=((-b)-sqrt(i))/(2*a);
printf("%lf %lf",x1,x2);
}
text2(double i ,int a,int b)
{
double x1,x2;
x2=x1=((-b)+sqrt(i))/(2*a);
printf("%lf %lf",x1,x2);
}
text3(double i ,int a,int b;)
{
printf("无实根");
}
main()
{
int a,b,c;
double x1,x2,i;
i=b*b-4*a*c;
if(i>0) text1(i,b,c);
else if(i=0) text2(i,b,c);
else if(i<0) text3(i,b,c);
}
9.
#include<stdio.h>
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
printf("%lf",x>y?x:y);
}
10.
#include<stdio.h>
main()
{
int x;
scanf("%lf",&x);
printf("%c",x%400==0?'t':'f');
}
#include<stdio.h>
main()
{
int y;
scanf("%d",&y);
if(y%400==0) printf("闰年");
else printf("平年");
}
11.
#include<stdio.h>
int main()
{
double t,w,h;
scanf("%lf%lf",&w,&h);
t=w/h*h;
if(t<18) printf("低体重");
else if(t>=18&&t<25)printf("正常体重");
else if(t>=25&&t<27)printf("超重体重");
else printf("肥胖");
return 0;
}
12.
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
a=a/10;
switch(a)
{
case 10:
case 9: printf("A");break;
case 8: printf("B");break;
case 7: printf("C");break;
case 6: printf("D");break;
default:printf("E");break;
}
return 0;
}
13.
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
a=a/10;
switch(a)
{
case 10:
case 9: printf("A");break;
case 8: printf("B");break;
case 7: printf("C");break;
case 6: printf("D");break;
default:printf("E");break;
}
return 0;
}
14.
#include<stdio.h>
int main()
{
double a,b;
char c;
scanf("%lf%c%lf",&a,&c,b);
switch(c)
{
case '+': printf("%lf",a+b);break;
case '-': printf("%lf",a-b);break;
case '*': printf("%lf",a*b);break;
case '/':
if(b!=0) printf("%lf",a/b);
else printf("分母为0");
}
return 0;
}
15.
#include<stdio.h>
main()
{
int magic,guess=0;
int count=0;
srand(time(NULL));
magic = rand()%100+1;
while(magic!=guess)
{
printf("please enter:");
scanf("%d",&guess);
count++;
if(guess>magic) printf("WRONG,too big!\n");
else if(guess<magic) printf("WRONG,too small!\n");
else printf("RIGHT!\n");
}
printf("count = %d\n",count);
}
16.
#include<stdio.h>
main()
{
int s=1,sum=0,i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++) s*=i;
printf("%d",s);
}
17.
并未用递归做版本
#include<stdio.h>
int my(int n)
{
int i,m;
m=1;
for(i=1;i<=n;i++)
{
m*=i;
}
return m;
}
main()
{
int s,n;
scanf("%d",&n);
s=my(n);
if(n==0||n==1) s=1;
printf("%d",s);
}
使用递归
#include<stdio.h>
int my(int n)
{
if(n==0||n==1) return 1;
return my(n-1)*n;
}
main()
{
int s,n;
scanf("%d",&n);
s=my(n);
printf("%d",s);
}
18.
#include<stdio.h>
int main()
{
int i=2,f=1;
double pi,sum=0,t=1;
while(t>=1e-4)
{
sum=sum+f*t;
t=1.0/(2*i-1);
i++;
f=-f;
}
pi=sum*4;
printf("%lf",pi);
}
19.
#include<stdio.h>
main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%d ",j,i,i*j);
printf("\n");
}
}
20.
#include<stdio.h>
int main()
{
int m,n;
for(m=9;m>=1;m--)
{
for(n=1;n<=m;n++)printf("%4d",m*n);
printf("\n");
}
return 0;
}
21.
#include<stdio.h>
main()
{
int a,i;
scanf("%d",&a);
for(i=2;i<=a;i++)
if(a%i==0) break;
printf("%s",i>=a?"Yes":"NO");
}
22.
#include<stdio.h>
main()
{
int i,j;
for(j=2;j<=100;j++)
{
for(i=2;i<=j;i++)
if(j%i==0) break;
if(i==j)printf("%d\n",j);
}
}
#include<stdio.h>
#include<math.h>
main()
{
int i,j,k;
for(j=2;j<=100;j++)
{
k=sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0) break;
if(i>k)printf("%d\n",j);
}
}
23.
#include<stdio.h>
main()
{
int i,j,m,n;
scanf("%d%d",&m,&n);
for(j=m;j<=n;j++)
{
for(i=2;i<=j;i++)
if(j%i==0) break;
if(i==j)printf("%d\n",j);
}
}
24.
#include<stdio.h>
main()
{
int y,d,s;
scanf("%d%d",&y,&d);
if(y%400==0&&d==2)s=2;
elseif(y%400!=0&&d==2) s=4;
elseif(d==1||d==3||d==5||d==7||d==8||d==10||d==12) s=3;
else s=1;
switch(s)
{
case1:printf("30");break;
case2:printf("29");break;
case3:printf("31");break;
case 4:printf("28");break;
}
}
25.
#include<stdio.h>
main()
{
int s,a,b,c;
for(s=100;s<=999;s++)
{
a=s/100;
b=s/10%10;
c=s%10;
if(s==a*a*a+b*b*b+c*c*c) printf("%d\n",s);
}
}
#include<stdio.h>
main()
{
int i,j,k;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(100*i+10*j+k==i*i*i+j*j*j+k*k*k)
printf("%d%d%d",i,j,k);
}
26.
#include<stdio.h>
main()
{
int x;
for(x=1;x<98;x++)
if(386==x*4+(98-x)*2) printf("%d %d",x,98-x);
}
27.
#include<stdio.h>
main()
{
int i,j,k ,count=0;
for(i=1;i<30;i++)//只要i!=30,j!=75,k!=150就能满足硬币三种都存在
{
for(j=1;j<75;j++)
{
for(k=1;k<98;k++)
{
if(i*5+j*2+k==150&&i+j+k==100)
{
printf("%d %d%d\n",i,j,k);
count++;
}
}
}
}
printf("%d",count);
}
#include<stdio.h>
main()
{
int i,j,k,count=0;
for(i=1;i<30;i++)//只要i!=30,j!=75就能满足硬币三种都存在
{
for(j=1;j<75;j++)
{
k=100-i-j;
if(i*5+j*2+k==150)
{
printf("%d %d%d\n",i,j,k);
count++;
}
}
}
printf("%d",count);
}
28
#include<stdio.h>
main()
{
int i,j,k,count=0;
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
for(k=1;k<=6;k++)
if(i+j+k==8)count++;
}
}
printf("%d",count);
}
#include<stdio.h>
main()
{
int i,j,k,count=0;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
for(k=1;k<=6;k++)
if(i+j+k==8)count++;
printf("%d",count);
}
#include<stdio.h>
main()
{
int i,j,k,count=0;
printf(" hong bai hei\n");
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
for(k=2;k<=6;k++)
{
if(i+j+k==8)
{
count++;
printf("%5d%5d%5d\n",i,j,k);
}
}
printf("count = %d\n",count);
}
29.垃圾题不说题目要求
#include<stdio.h>
#include<math.h>
int main()
{
int i;
double a;
for(i=1;i<=100;i++) printf("%lf\n",(double)sqrt(i));
}
#include "stdio.h"
#include "math.h"
main()
{
double i;
int b=0;
printf(" 0\t 1\t 2\t 3\t 4\t 5\t 6\t 7\t 8\t 9\n");
for(i = 0; i<100; i = i+1)
{
if(i==0||i==10||i==20||i==30||i==40||i==50||i==60||i==70||i==80||i==90)
{
printf("%d ",b);
b++;
printf("%.3f\t",sqrt(i));
}
else
printf("%.3f\t",sqrt(i));
}
}
#include <stdio.h>
#include <math.h>
main()
{
double i;
int b=0;
printf(" 0\t 1\t 2\t 3\t 4\t 5\t 6\t 7\t 8\t 9\n");
for(i = 0; i<100; i = i+1)
{
if((int)i%10==0)
{
printf("%d ",b);
b++;
printf("%.3f\t",sqrt(i));
}
else
printf("%.3f\t",sqrt(i));
}
}
30.
#include<stdio.h>
main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=2*i-1;j++) printf("@");
printf("\n");
}
}