计算机等级考试二级c语言高教课后的一些C语言题目,程序有错的地方,望大佬多多指教!!
若a的值小于100,请将以下选择结构改写成由switch语句构成的选择结构。
改后
#include "stdio.h"
main()
{
int a,m;
scanf("%d",&a);
switch(a/10)
{
case 1 :case 2 :printf("%d",m=1);break;
case 3 :printf("%d",m=2);break;
case 4 :printf("%d",m=3);break;
case 5 :printf("%d",m=4);break;
default:printf("%d",m=5);break;
}
}
运行
编写程序,输入一位学生的生日(年:y0、月:m0、日:d0),并输入当前的日期(年:y1、月:m1、日:d1),输出该生的实际年龄。
程序
#include "stdio.h"
main()
{
int y0,m0,d0,y1,m1,d1,n;
printf("请输入你的出生日期:");
scanf("%d-%d-%d",&y0,&m0,&d0);
printf("请输入当前年月日:");
scanf("%d-%d-%d",&y1,&m1,&d1);
if(y1-y0<0)
printf("输入错误");
if (d1-d0<0)
m1-=1;
if (m1-m0<0)
y1-=1;
n=y1-y0;
printf("今年为%d岁",n);
}
运行
编写程序,输入一个整数,打印出它是奇数还是偶数。
程序
#include "stdio.h"
main()
{
int a;
printf("请输入一个数:");
scanf("%d",&a);
if(a%2==0)
printf("%d是一个偶数",a);
else
printf("%d是一个奇数",a);
}
运行
编写程序,输入a、b、c三个数,打印出最大者。
程序
#include "stdio.h"
main()
{
int a,b,c;
printf("请输入三个数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b&&a>c)
printf("%d",a);
else if(b>c)
printf("%d",b);
else
printf("%d",c);
}
运行
对于以下函数:
编写程序,要求输入x的值,输出y的值。分别用:
不嵌套的if语句
嵌套的if语句
if-else语句
switch语句
不嵌套的if语句
程序
#include "stdio.h"
main()
{
int x,y;
printf("输入x的值:");
scanf("%d",&x);
if(x>-5&&x<0)
y=x;
if(x==0)
y=x-1;
if(x>0&&x<10)
y=x 1;
printf("%d",y);
}
运行
嵌套的if语句
程序
#include "stdio.h"
main()
{
int x,y;
printf("输入x的值:");
scanf("%d",&x);
if(x>-5&&x<=0)
{
if(x==0)
y=x-1;
if(x<0)
y=x;
}
else
y=x 1;
printf("%d",y);
}
运行
if-else语句
程序
#include "stdio.h"
main()
{
int x,y;
printf("输入x的值:");
scanf("%d",&x);
if(x>-5&&x<0)
y=x;
else if (x==0)
y=x-1;
else
y=x 1;
printf("%d",y);
}
运行
switch语句
程序:
#include "stdio.h"
main()
{
int x,y,z;
printf("输入x的值:");
scanf("%d",&x);
if(x==0)
z=1;
if(x<0&&x>-5)
z=2;
if(x>0&&x<10)
z=3;
switch(z)
{
case 1:y=x;break;
case 2:y=x-1;break;
case 3:y=x 1;break;
}
printf("%d",y);
}
运行
编写程序,把560分钟换算成用小时和分钟表示,然后分别进行输出
程序
#include "stdio.h"
main()
{
int a=560,s,f;
s=560/60;
f=560`;
printf("560分钟=%d小时%d分钟",s,f);
}
运行
编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。
程序
#include "stdio.h"
main()
{
double a,b,c,avg;
printf("输入三个双精度数:");
scanf("%lf,%lf,%lf",&a,&b,&c);
avg=(a b c)/3;
avg=avg*10 0.5;
avg/=10;
printf("这三个数的平均值为:%0.2lf",avg);
}
运行
编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a、b、c。
程序:
#include "stdio.h"
main()
{
int a,b,c,d,e;
printf("请输入abc的值:
");
scanf("%d,%d,%d",&a,&b,&c);
d=b;
b=a;
e=c;
c=d;
a=e;
printf("abc交换后的值:%d,%d,%d",a,b,c);
}
运行:
从一加到一百并输出它的和
程序:
我做了一些调整
#include "stdio.h"
main()
{
int a=0,i=1,x;
printf("请输入你要加的最后一个数:");
scanf("%d",&x);
while(i<=x)
{
a=a i;
i ;
}
printf("1-%d的和为:%d",x,a);
}
有这样一个数列(斐波那契数列): 1 1 2 3 5 8 13,求第30个数时值为多少?
程序:
不知道为什么我要用do while,应该用for更简单。。
作修改后的程序
#include "stdio.h"
main()
{
long a=1,b=1,c,i=0,x;
printf("请输入你要的多少个数:");
scanf("%ld",&x);
x-=2;
// printf("%ld %ld",a,b);
do
{
// printf(" %ld ",c=a b);
c=a b;
a=b;
b=c;
i ;
}while(i<x);
printf("
%ld",c);
}
运行
源程序是这样的。。。
编写程序,找出2-100以内的所有素数(质素)只能被1和它本身整除的数。
程序
#include "stdio.h"
main()
{
int i,a,b;
for(i=2;i<=100;i++)
{
a=0;
for(b=2;b<i;b++)
if(i%b==0)
a=1;
if(a==0)
printf(" %d ",i);
}
}
运行
从输入的若干个大于零的正整数中选出最大值,用-1结束输入
程序
#include "stdio.h"
main()
{
int a,max;
printf("请输入你的正整数最后输入-1结束:");
do
{
scanf("%d",&a);
}while(a<0&&a!=-1);
max=a;
while(a!=-1)
{
printf("请输入其它数:");
scanf("%d",&a);
if(a>0&&a>max)
max=a;
}
if(max!=-1)
printf("最大值是%d",max);
}
运行
编写程序,求1-3+5-7…-99+101的值。
程序
#include "stdio.h"
main()
{
int a,b,i,sum;
for(i=1;i<=101;i+=4)
a=a+i;
for(i=3;i<=101;i+=4)
b=b+i;
sum=a-b;
printf("它的值是:%d",sum);
}
编写程序,输入1000年至2000年所有闰年的年号。每输入3个年号换一行。判断公元年是否为闰年的条件是:
(1) 能被4整除而不能被100整除的年份
(2)能被400整除的年份
程序
#include "stdio.h"
main()
{
int a,b,r,i;
printf("请输入你要开始的年份:");
scanf("%d",&a);
printf("请输入你要结束的年份:");
scanf("%d",&b);
for(a;a<=b;a++)
{ if(a%4==0&&a%100!=0||a%400==0)
{
printf("%d",a);
i++;
}
if(i%3==0)
printf("
");
}
}
这里的结果第一行为什么第二个年份就换行了我没想明白。。
奇怪的是我在输出加两个空格又可以正常输出了,奇怪。。
编写程序,打印以下信息
程序 经过n次修改后…其实也可以一条一条输出的,题目又没有要求怎样编写。
#include "stdio.h"
main()
{
int i,k,x,i1,k1,x1;
for(i1=0;i1<4;i1++)
{ for(k1=0;k1<4-i1;k1++)
printf(" ");
for(x1=0;x1<1+2*i1;x1++)
printf("*");
printf("
");
}
printf("*********
");
for(i=0;i<4;i++)
{
for(k=1;k<=i;k++)
printf(" ");
for(x=0;x<7-i*2;x++)
printf("*");
printf("
");
}
}