文档库 最新最全的文档下载
当前位置:文档库 › c语言题目及参考答案汇总

c语言题目及参考答案汇总

3月5日 C语言上机作业2

1、编程求出1600年至2000年所有的闰年的年号,并输出结果(每5个年号换一行输出)
main()
{
int i,count=0;
for(i=1600;i<2000;i++)
{
if(i%4==0 &&i%100!=0||i%400==0)
{
printf("%6d",i);
count++;
if(count%5==0)printf("\n");
}
}
}
2、 输入一个正整数,要求:①求出它是几位数;②按逆序打印出各位数字,例如原数为321,应输出1,2,3。
main()
{
int a,b,count=0;
scanf("%d",&a);
while (a!=0)
{
b=a%10;
printf("%d,",b);
a=a/10;
count++;
}
printf("\n它是%d位数。\n",count);
}
3、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。
#include"stdio.h"
main()
{
int i,sum,x;
for(i=1;i<=1000;i++)
{
sum=0;
for(x=1;xif(i%x==0) sum=sum+x;
if(sum==i) printf("%d\n",i);
}
}

3月12日 C语言上机作业3
1、编写程序,读入一个数字字符(‘0’~‘9’),并把其转换为相应的整数后显示出来。
#include "stdio.h"
main()
{
char a;
int b;
printf("Enter a number:\n");
scanf("%c",&a);
b=a-'0';
printf("%d\n",b);
}
2、从键盘上输入一个小写字母,要求改用大写字母输出。
#include "stdio.h"
main()
{
char a,b;
printf("Enter a lower letter\n");
scanf("%c",&a);
b=a-32;
printf("%c\n",b);
}
3、教材P83第6题。
#include "stdio.h"
main()
{
float x,y;
printf("Enter a unknow num x:\n");
scanf("%f",&x );
if(x<-5) y=x;
else if(x<0) y=x-1;
else if(x<10 && x!=0) y=x+1;
else printf("Error input!\n");
printf("%f\n",y);
}
4、求输入的5个数字的最大值、最小值、平均值。并将它们从小到大输出来。
#include "stdio.h"
main()
{
float a,b,c,d,e,temp,ave;
scanf("%f%f%f%f%f",&a,&b,&c,&d,&e);
if(a>b) {temp=a;a=b;b=temp;}
if(a>c) {temp=a;a=c;c=temp;}
if(a>d) {temp=a;a=d;d=temp;}
if(a>e) {temp=a;a=e;e=temp;}
if(b>c) {temp=b;b=c;c=temp;}
if(b>d) {temp=b;b=d;d=temp;}
if(b>e) {temp=b;b=e;e=temp;}
if(c>d) {temp=c;c=d;d=temp;}
if(c>e) {temp=c;c=e;e=temp;}
if(d>e) {temp=d;d=e;e=temp;}
ave=(a+b+c+d+e)/5;
printf("%.1f %.1f %.1f %.1f %.1f\n",a,b,c,d,e);
printf("Big=%.1f\nSmall=%.1f\nave=%.1f\n",e,a,ave);
}
5、教材P83第8题。
#include "stdio.h"
main()
{
char c;
float a,b,s;
printf("Enter two numbers and an operator :\n");
scanf("%f%c%f",&a,&c,&b);
switch (c)
{
case '+': s=a+b; break;
case '-': s=a-b; break;
case '*': s=a*b; break;
case '/': s=a/b; break;
default:printf("Error input!\n");
}
printf("%f%c%f=%f\n",a,c,b,s);
}

3月19日 C语言上机作业4
1、教材101页,第3题
#include
main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0

;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
}
2、公鸡每只3元,母鸡每只5元,小鸡3只1元,用100元钱买100只鸡,可以买公鸡、母鸡、小鸡各多少只?
#include "stdio.h"
main()
{
int x,y,z;
for (x=0;x<=100/3;x++)
for (y=0;y<=100/5;y++)
{
if (x*3+y*5+(100-x-y)/3.0==100)
printf("公鸡:%d, 母鸡:%d, 小鸡:%d\n",x,y,100-x-y);
}
}
3、有一分数序列
2/1, 3/2, 5/3, 8/5, 13/8, 21/13,……
求出这个数列的前20项之和。
#include "stdio.h"
main()
{
float s,i,a,b,a1=1,b1=2,a2=2,b2=3;
s=b1/a1+b2/a2;
a=a1+a2;
b=b1+b2;
for (i=3;i<=20;i++)
{
s=s+b/a;
a1=a2;
b1=b2;
a2=a;
b2=b;
a=a1+a2;
b=b1+b2;
}
printf("%f\n",s);
}

3月26日 C语言上机作业5
1、假设一个数组有10个元素,将其最小的元素和第一个元素交换并输出交换后的结果。
#include
main()
{
int a[10],i,min,index,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
index=0;
for(i=1;i<10;i++)
{
if(a[index]>a[i]) index=i;
}
t=a[0];
a[0]=a[index];
a[index]=t;
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
2、求输入的10个数字的最大值、最小值、平均值。并将它们从小到大输出来。
#include"stdio.h"
main()
{
float a[10],x,t,sum=0;int i,j;
printf("input 10 numbers:\n");
for(i=0;i<10;i++) scanf("%f",&a[i]);
for(i=0;i<10;i++)
{ for(j=9;j>i;j--)
if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
}
printf("The min=%f,the max=%f\n",a[0],a[9]);
for(i=0;i<10;i++) sum=sum+a[i];
x=sum/10.0;
printf("The x=%f\n",x);
for(i=0;i<10;i++) printf("%f ",a[i]);
}
3、输入5个互异的整数,将它们存入数组a中,再输入一个数x,然后在数组中查找x,如果找到,输出相应的下标,否则,输出“Not Found”。
#include "stdio.h"
main()
{
int a[5],i,x;
for (i=0;i<5;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
for (i=0;i<5;i++)
{
if (a[i]==x)
{
printf("Success! Index=%d\n",i);
break;
}
}
if (i==5) printf("Not Found!\n");
}
4、从键盘输入10个整数,将它们逆序输出。
#include"stdio.h"
main()
{
int a[10],i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=9;i>=0;i--)
printf("%d,",a[i]);
}

4月2日 C语言上机作业6

1、求一个3×3的整型矩阵对角线元素之和。
#include "stdio.h"
main()
{
int a[3][3],i,j,s=0;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
scanf("%d",&a[i][j]);
for (i=0;i<3;i++)
s=s+a[i][i];
printf("s=%d\n",s);
}
2、编程求两个2行3列矩阵的和,并输出结果。
#include "stdio.h"
main()
{ int a[2][3],b[2][3],c[2][3],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&b[i][j]);
for(i=0;i<2;i++)

for(j=0;j<3;j++)
c[i][j]=a[i][j]+b[i][j];
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
printf("%5d",c[i][j]);
printf("\n");
}
}
3、输出以下的杨辉三角形(要求输出10行)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…………………………
…………………………
#include "stdio.h"
main()
{
int i,j,a[30][30];

for (i=0;i<10;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for (i=2;i<10;i++)
for (j=1;ja[i][j]=a[i-1][j-1]+a[i-1][j];
for (i=0;i<10;i++)
{
for (j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
4、编写程序,对具有10个整数的数组依次向前移动n个位置,n由键盘输入,输出移动后的结果。
假设原数组中10个整数为:1,2,3,4,5,6,7,8,9,10。若n=3,则输出4,5,6,7,8,9,10,1,2,3。
#include "stdio.h"
main()
{ int a[10],i,j,n,temp;
printf("Please Input 10 numbers: ");
for(i=0;i<10;i++)scanf("%d",&a[i]);
printf("Please Input n:");
scanf("%d",&n);
for(i=0;i{ temp=a[0];
for(j=0;j<9;j++)
a[j]=a[j+1];
a[j]=temp;
}
for(i=0;i<10;i++)printf("%3d",a[i]);
printf("\n");
}

4月9日 C语言上机作业7
1、从键盘上输入两个字符串,并比较两个字符串是否相等。
2、输入一个字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数。
3、统计输入的字符串中小写字母、大写字母、数字及其他字符的个数。
4、删除所输入字符串中的所有“ * ”号并输出删除后的结果。例如输入ab**b**c*,则输出abbc。
5、输入一个字符串(少于10个字符),它由数字字符组成,将该字符串转换成整数后输出。

相关文档