大一C语言考试上附问题详解.docx

上传人:b****6 文档编号:7945251 上传时间:2023-05-12 格式:DOCX 页数:29 大小:33.52KB
下载 相关 举报
大一C语言考试上附问题详解.docx_第1页
第1页 / 共29页
大一C语言考试上附问题详解.docx_第2页
第2页 / 共29页
大一C语言考试上附问题详解.docx_第3页
第3页 / 共29页
大一C语言考试上附问题详解.docx_第4页
第4页 / 共29页
大一C语言考试上附问题详解.docx_第5页
第5页 / 共29页
大一C语言考试上附问题详解.docx_第6页
第6页 / 共29页
大一C语言考试上附问题详解.docx_第7页
第7页 / 共29页
大一C语言考试上附问题详解.docx_第8页
第8页 / 共29页
大一C语言考试上附问题详解.docx_第9页
第9页 / 共29页
大一C语言考试上附问题详解.docx_第10页
第10页 / 共29页
大一C语言考试上附问题详解.docx_第11页
第11页 / 共29页
大一C语言考试上附问题详解.docx_第12页
第12页 / 共29页
大一C语言考试上附问题详解.docx_第13页
第13页 / 共29页
大一C语言考试上附问题详解.docx_第14页
第14页 / 共29页
大一C语言考试上附问题详解.docx_第15页
第15页 / 共29页
大一C语言考试上附问题详解.docx_第16页
第16页 / 共29页
大一C语言考试上附问题详解.docx_第17页
第17页 / 共29页
大一C语言考试上附问题详解.docx_第18页
第18页 / 共29页
大一C语言考试上附问题详解.docx_第19页
第19页 / 共29页
大一C语言考试上附问题详解.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

大一C语言考试上附问题详解.docx

《大一C语言考试上附问题详解.docx》由会员分享,可在线阅读,更多相关《大一C语言考试上附问题详解.docx(29页珍藏版)》请在冰点文库上搜索。

大一C语言考试上附问题详解.docx

大一C语言考试上附问题详解

1.有一个函数

写一段程序,输入

的值,输出

的值。

#include

intmain()

{

intx,y;

scanf("%d",&x);

if(x>100||x<0)

y=-1;

elseif(x==0)

y=0;

else

y=1;

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

return0;

}

2.输入3个实数a,b,c,输出其中最小的数。

#include

intmain()

{

inta,min=32767,n=3;

while(n--)

{

scanf("%d",&a);

if(a

min=a;

}

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

return0;

}

3.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。

#include

#include

intmain()

{

inta,b,c,s,d;

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

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

{

d=(a+b+c)/2;

s=sqrt(d*(d-a)*(d-b)*(d-c));

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

}

else

printf("三边构不成三角形\n");

}

4.输入4个整数,输出4个数中的最大值、最小值。

#include

intmain()

{

inta,max=-32768,min=32767,n=4;

while(n--)

{

scanf("%d",&a);

if(a>max)

max=a;

if(a

min=a;

}

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

return0;

}

5.要求按照成绩的等级输出百分制分数段,A等为90分以上,B等为80~89,C等为70~79,D等为60~69,E等为60分以下。

成绩的等级由键盘输入,若输入的等级非A、B、C、D、E字符,输出”enterdataerror”。

#include

intmain()

{

chara;

a=getchar();

if(a=='A')

{

printf("90分以上\n");

}

elseif(a=='B')

{

printf("80~89\n");

}

elseif(a=='C')

{

printf("70~79\n");

}

elseif(a=='D')

{

printf("60~69\n");

}

elseif(a=='E')

{

printf("60分以下\n");

}

else

{

printf("enterdataerror\n");

}

return0;

}

6.有一个函数:

写一段程序,输入

的值,输出

的值。

#include

intmain()

{

intx,y;

scanf("%d",&x);

if(x<1)

{

y=x;

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

}

elseif(x==10)

{

y=3*x-11;

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

}

else

{

y=2*x-1;

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

}

return0;

}

7.输入成绩,要求输出成绩等级A、B、C、D、E或error。

90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,0~60分为‘E’。

若输入成绩低于0分和高于100分则输出error。

#include

intmain()

{

inta;

scanf("%d",&a);

if(a>100)

printf("error\n");

else

{

if(a>90)

printf("A\n");

elseif(a>80)

printf("B\n");

elseif(a>70)

printf("C\n");

elseif(a>60)

printf("D\n");

else

printf("E\n");

}

return0;

}

8.求一元二次方程ax2+bx+c=0的解。

(考虑b2-4ac三种情况)

#include

#include

intmain()

{

doublea,b,c,d,e,x1,x2,i;

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

d=b*b-4*a*c;

e=-b/(2*a);

if(d>1e-6)

{

x1=e+sqrt(d)/(2*a);

x2=e-sqrt(d)/(2*a);

printf("%.2lf%.2lf",x1,x2);

}

elseif(d==1e-6)

{

x1=x2=e;

printf("%.2lf%.2lf",x1,x2);

}

else

{

printf("%.2lf+%.2lfi%.2lf-%.2lfi\n",e,sqrt(-d)/(2*a),e,sqrt(-d)/(2*a));

}

return0;

}

9.输入某年某月某日,判断这一天是这一年的第几天?

(注意是否为闰年)

#include

intmain()

{

inti,n=0,year,math,day,s[12]={31,28,31,30,31,30,31,31,30,31,30,31};

scanf("%d%d%d",&year,&math,&day);

if((year%4==0&&year%100!

=0)||(year%400==0))

s[1]=29;

for(i=0;i

n=n+s[i];

n=n+day;

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

return0;

}

10.公司规定,男职工到60岁退休,女职工到55岁退休。

编写一个程序,输入职工的性别和年龄,判断出该职工是“已退休”还是“在职”。

(输入时,用一个小写英文字母来表示性别,‘m’表示男性,’f’表示女性)。

#include

intmain()

{

chara;

intb;

a=getchar();

scanf("%d",&b);

if(a=='m')

{

if(b>=60)

printf("已退休\n");

else

printf("在职\n");

}

elseif(a=='f')

{

if(b>=55)

printf("已退休\n");

else

printf("在职\n");

}

return0;

}

11.输入一个数,判断该数是否为素数。

#include

intmain()

{

inta,b;

scanf("%d",&a);

for(b=2;b

if(a%b==0)break;

if(b

elseprintf("%disaprimenumber.\n",a);

return0;

}

12.编程实现求解s=1*2+2*3+3*4+…+20*21,并输出结果。

#include

intmain()

{

inta,s=0;

for(a=1;a<=20;a++)

s=s+a*(a+1);

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

return0;

}

13.求Fibonacci数列的前20个数,并按每行5个数输出。

#include

intmain()

{

intf1=1,f2=1,a,f3;

printf("%d%d",f1,f2);

for(a=3;a<=20;a++)

{

f3=f1+f2;

printf("%d",f3);

if(a%5==0)

printf("\n");

f1=f2;

f2=f3;

}

return0;

}

14.求1+3!

+5!

+...+19!

的和。

#include

intmain()

{

doubles,c=0;

inta,b;

for(a=1;a<=19;a+=2)

{

s=1;

for(b=1;b<=a;b++)

s=s*b;

c=c+s;

}

printf("%lf\n",c);

return0;

}

15.有一分数序列

,求其前30项的和。

#include

intmain()

{

inti;

doublea=1,b=2,s=0,t;

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

{

s=s+a/b;

t=b;

b=a+b;

a=t;

}

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

return0;

}

16.编写一个程序,计算1+3+32+33……310的值并输出。

#include

#include

intmain()

{

inta=0,i;

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

a=a+pow(3,i);

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

return0;

}

17.从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和。

例如,输入x为1234,则其千位为1、百位为2、十位为3、个位为4,然后计算1+2+3+4=10,输出10。

(要求使用循环实现)

#include

intmain()

{

intm,n,s=0;

scanf("%d",&m);

while(m!

=0)

{

n=m%10;

m=m/10;

s=s+n;

}

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

return0;

}

18.输入一个八进制数,并将其转换为十进制。

(要求使用循环实现)

#include

#include

intmain()

{

inta,b=0,m=0;

scanf("%d",&a);

while(a!

=0)

{

m=m+(a%10)*(int)pow(8,b);

b++;

a=a/10;

}

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

return0;

}

19.输入两个正整数m和n,求其最大公约数和最小公倍数。

#include

intmain()

{

inta,b,c,d,p;

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

if(a

{

c=a;

a=b;

b=c;

}

p=a*b;

while(b!

=0)

{

d=a%b;

a=b;

b=d;

}

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

return0;

}

20.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?

第10次反弹多高?

#include

intmain()

{

inti;

floath=50,a=100;

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

{

a=a+2*h;

h=h/2;

}

printf("%f%f\n",a,h);

return0;

}

21.输出倒三角形式的9*9口诀表,要求用循环实现。

9*1=99*2=189*3=279*4=36……9*9=81

8*1=88*2=168*3=248*4=328*8=6

1*1=1

#include

intmain()

{

inta,b,s;

for(a=9;a>0;a--)

{

for(b=1;b<=a;b++)

{

s=a*b;

printf("%d*%d=%d",a,b,s);

}

printf("\n");

}

}

22.输出菱形图案。

(要求使用双循环实现,不能利用字符数组或简单的printf函数输出)

#include

intmain()

{

inta,b,c;

for(a=1;a<=5;a++)

{

for(b=1;b<=5-a;b++)

printf("");

for(c=1;c<=2*a-1;c++)

printf("*");

printf("\n");

}

for(a=1;a<=4;a++)

{

for(b=1;b<=a;b++)

printf("");

for(c=1;c<=9-2*a;c++)

printf("*");

printf("\n");

}

return0;

}

23.一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如6的因子为1,2,3,而6=1+2+3,因此6是完数。

编写程序找出500以内的所有完数,并按下面的格式输出其因子:

6itsfactorsare1,2,3

#include

intmain()

{

inta,b,c;

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

{

b=0;

for(c=1;c

if((a%c)==0)b+=c;

if(b==a)

{

printf("%d,itsfactorsare",a);

for(c=1;c

if(a%c==0)printf("%d",c);

printf("\n");

}

}

return0;

}

24.编程输出如下形式的九九乘法表

123456789

---------

1

24

369

……

816243240485664

91827364554637281

#include

intmain()

{

inta,b,s;

for(a=1;a<=9;a++)

{

for(b=1;b<=a;b++)

{

s=a*b;

printf("%d",s);

}

printf("\n");

}

}

25.一个偶数总能表示为两个素数之和。

要求:

输入一个偶数,将其表示成两个素数之和,直到输入的数为0。

#include

intmain()

{

inti,j,n,k;

printf("请输入一个偶数\n");

scanf("%d",&n);

if(n!

=0)

{

for(i=2;i<=n/2;i++)

{

for(j=2;j

if(i%j==0)

break;

if(j==i)

{

for(k=2;k

if((n-i)%k==0)

break;

if(k==(n-i))

{

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

}

}

}

}

return0;

}

26.输入10个整型整数,用起泡法对这10个数排序,并该由小到大顺序在屏幕上输出。

#include

intmain()

{

inta,b,c,s[10];

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

scanf("%d",&s[a]);

printf("\n");

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

for(a=0;a<9-b;a++)

if(s[a]>s[a+1])

{

c=s[a];

s[a]=s[a+1];

s[a+1]=c;

}

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

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

printf("\n");

return0;

}

27.输入10个整型整数,用选择法对这10个数排序,并该由大到小顺序在屏幕上输出。

#include

intmain()

{

inta[10],i,j,t,min;

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

scanf("%d",&a[i]);

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

{

min=i;

for(j=i+1;j<=10;j++)

if(a[min]>a[j])min=j;

t=a[i];

a[i]=a[min];

a[min]=t;

}

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

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

printf("\n");

return0;

}

28.将一个数组中的值按逆序重新存放。

例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。

(同一数组中完成)

#include

intmain()

{

inti;

chara[5];

scanf("%s",a);

for(i=4;i>=0;i--)

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

printf("\n");

return0;

}

29.给一个不多于6位的正整数,要求:

①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为158,应输出851。

(利用数组知识)

#include

#include

intmain()

{

intm,i,j;

chara[50];

scanf("%s",a);

m=strlen(a);

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

for(i=0;i

{

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

}

printf("\n");

for(j=m-1;j>=0;j--)

{

printf("%c",a[j]);

}

printf("\n");

return0;

}

30.用筛选法求100之内的素数。

(利用数组知识)

#include

#include

intmain()

{

inta[101],i,j,n;

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

a[i]=i;

a[0]=1;

for(i=2;i

for(j=i+1;j<=100;j++)

{

if(a[i]!

=0&&a[j]!

=0)

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

a[j]=0;

}

for(i=2,n=0;i<100;i++)

{

if(a[i]!

=0)

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

}

printf("\n");

return0;

}

31.编程实现:

输入任意一个不超过5位的十进制整数,取出该数中的所有奇数数字,按原来的顺序组成一个新的数。

#include

#include

intmain()

{

inti,b;

chara[10];

gets(a);

b=strlen(a);

for(i=0;i

{

if((int)a[i]%2!

=0)

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

}

puts("");

}

32.有一个已升序排列的数组,要求输入一个数后,按原来排序的规律将它插入数组中。

(在同一数组中实现)

#include

intmain()

{

inti,j,s;

chara[10]={1,2,4,9,32,41,64,88,91,98};

scanf("%d",&s);

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

{

if(s>a[i])

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

elsebreak;

}

printf("%d",s);

for(j=i;;j++)

{

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

if(a[j]==a[9])break;

}

printf("\n");

return0;

}

33.将一个二维数组a的行和列的元素互换(即行列互换),存到另一个二维数组b中。

#include

intmain()

{

inti,j,a[2][3]={{1,2,3},{4,5,6}},b[3][2];

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

{

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

{

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

b[j][i]=a[i][j];

}

printf("\n");

}

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

{

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

printf("%5d",b[i][j]);

printf("\n");

}

return0;

}34.在一个3*4的二维数组a中,要求编程求出其中值最大的那个元素的值,并输出其所在的行号和列号。

#include

intmain()

{

inti,j,a=0,b=0,s[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},max;

max=s[0][0];

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

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

if(s[i][j]>max)

{

max=s[i][j];

a=i;

b=j;

}

printf("%d%d%d\n",ma

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2