西北农林科技大学C语言试题答案.doc
《西北农林科技大学C语言试题答案.doc》由会员分享,可在线阅读,更多相关《西北农林科技大学C语言试题答案.doc(50页珍藏版)》请在冰豆网上搜索。
![西北农林科技大学C语言试题答案.doc](https://file1.bdocx.com/fileroot1/2022-10/19/01316396-1cd7-48c5-9f2c-367afa261676/01316396-1cd7-48c5-9f2c-367afa2616761.gif)
1、简单程序设计编程写程序,在屏幕上输出信息:
HappyNewYear!
/*输出图形*/
#include
voidmain()
{
printf("HappyNewYear!
\n");
}
2、简单计算由键盘任意输入2个数,分别计算它们的和、差、积、商。
/*简单计算*/
#include
voidmain()
{
floata,b;
floath,c,j,s;
scanf("%f%f",&a,&b);
h=a+b;
c=a-b;
j=a*b;
s=a/b;
printf("和=%f,差=%f,积=%f,商=%f\n",h,c,j,s);
}
3、计算梯形的面积已知梯形的上底、下底和高,计算梯形的面积。
/*计算梯形的面积*/
#include
voidmain()
{
floatsupline,dowline,high;
doublearea;
scanf("%f",&supline);
scanf("%f",&dowline);
scanf("%f",&high);
area=((supline+dowline)*high)/2.0;
printf("%f\n",area);
}
4、输出字符对应的ASCII码任意输入一个字符,输出此字符对应的ASCII码。
/*输出字符对应的ASCII码*/
#include
voidmain()
{
charc;
scanf("%c",&c);
printf("%d\n",c);
}
5、数据类型长度测试编写程序,测试所使用的计算机系统字符型、短整型、整形、长整型、单精度实型、双精度实型所占有的字节数量。
/*数据类型长度测试*/
#include
voidmain()
{
printf("sizeofchar=%d\n",sizeof(char));
printf("sizeofshort=%d\n",sizeof(short));
printf("sizeofint=%d\n",sizeof(int));
printf("sizeoflongint=%d\n",sizeof(longint));
printf("sizeoffloat=%d\n",sizeof(float));
printf("sizeofdouble=%d\n",sizeof(double));
}
1.成绩判断输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。
不要改变与输入输出有关的语句。
/*成绩判断*/
#include
voidmain()
{
floatmark;
scanf("%f",&mark);
if(mark<60)
printf("Fail\n");
else
printf("Pass\n");
}
2.字符转换输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。
不要改变与输入输出有关的语句。
#include
main()
{charch;
ch=getchar("%c");
if(ch>='A'&&ch<='Z')
{ch=ch+32;
printf("%c\n",ch);}
elseif(ch>='a'&&ch<='z')
{ch=ch-32;
printf("%c\n",ch);}
else
printf("%c\n",ch);
}
3.利用海伦公式求三角形面积三角形三个边长
/*计算三角形面积*/
#include"math.h"
#include"stdio.h"
voidmain()
{
doublea,b,c,s,area;
printf("请输入3条边长:
");
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
{
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积是:
%f\n",area);
scanf("%lf\n",area);
}
else
printf("这3个数无法组成三角形!
\n");
}
4.判断是否能构成一个三角形从键盘输三个数,判断是否能将它们作为三角形的三条边构成一个三角形。
若能,输出“Yes”,否则,输出“No”。
/*判断是否能构成一个三角形*/
#include
voidmain()
{
floata,b,c;
printf("请输入3条边长:
");
scanf("%f%f%f",&a,&b,&c);
if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a)
printf("Yes\n");
else
printf("No\n");
}
5.按从大到小排序三个数从键盘输入三个数,将它们按从大到小进行排序,然后输出。
/*按从大到小排序三个数*/
#include
main()
{
inta,b,c,d,e,f;
printf("请输入三个整数n1,n2,n3:
");
scanf("%d%d%d",&a,&b,&c);
printf("排序前:
%d,%d,%d\n",a,b,c);
if(a>b)
{
{
d=c;e=a;f=b;
}
{
if(c
{
d=a;e=b;f=c;
}
else
{
d=a;
e=c;
f=b;
}
}
}
else{if(b{d=c;
e=b;
f=a;
}
else
{if(a>c)
{d=b;
e=a;
f=c;
}
else{d=b;
e=c;
f=a;}
}
}
printf("排序后:
%d,%d,%d\n",d,e,f);
}
1.数据统计任意输入n个整数,分别统计奇数的和、奇数的个数、偶数的和、偶数的个数。
/*数据统计*/
#include
voidmain()
{
inti,n,m,jishuhe=0,oushuhe=0,jishuge=0,oushuge=0;
scanf("%d",&n);
for(i=0;i{
scanf("%d",&m);
if(m%2!
=0)
{
jishuhe=jishuhe+m;
jishuge++;
}
else
{
oushuhe=oushuhe+m;
oushuge++;
}
}
printf("%d\n%d\n%d\n%d\n",jishuhe,jishuge,oushuhe,oushuge);
}
2.爱因斯坦阶梯问题
爱因斯坦阶梯问题。
设有一阶梯,每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶;每步跨7阶,正好到阶梯顶。
问满足条件的最少阶梯数是多少。
/*爱因斯坦阶梯问题*/
#include
voidmain()
{
intx;
x=7;
while(!
((x%3==2)&&(x%5==4)&&(x%6==5)))
x+=14;
printf("%d\n",x);
}
3.猴子吃桃问题
一天一只猴子摘下一堆桃子,吃了一半,觉得不过瘾,又多吃了一个,第2天接着吃了前一天剩下的一半,再多吃了一个,以后每天如此,直到第n天,只剩下1个桃子,问猴子一共摘了多少桃子?
/*猴子吃桃问题*/
#include
voidmain()
{
intn;
intx=1,i;
scanf("%d",&n);
for(i=1;i{
x=2*(x+1);
}
printf("%d\n",x);
}
4.求两个数的最大公约数和最小公倍数
用辗转相除法(即欧几里得算法)求两个正整数的最大公约数和最小公倍数。
/*求两个数的最大公约数和最小公倍数*/
#include
voidmain()
{
inta,b,rem,temp;
intDiv,Multi;
inta1,b1;
scanf("%d%d",&a,&b);
a1=a;
b1=b;
if(a
{
temp=a;
a=b;
b=temp;
}
while(rem)
{
rem=a%b;
a=b;
b=rem;
}
Div=a;
Multi=a1*b1/Div;
printf("%d\n%d\n",Div,Multi);
}
5.求sin(x)的近似值
利用公式求sin(x)的近似值(精度为10e-6)。
sin(x)=x-x3/3!
+x5/5!
-x7/7!
+....(-1)nx(2n+1)/(2n+1)!
+...
/*求sin(x)的近似值*/
#include
#include
main()
{
floata,b=1;
floati,sinx,x;
scanf("%f",&x);
a=x;
sinx=0;
for(i=1;fabs(a/b)>=1e-6;i++)
{
sinx+=a/b;
a=-a*x*x;
b=b*2*i*(2*i+1);
}
printf("%f\n",sinx);
}
6.图形输出
输入一个字符及行数n,用该字符在屏幕上输出如下图形:
*
***
*****
*******
*********
输入:
一个字符及要输出的行数n。
输出:
用该字符在屏幕上构成的要求图形。
#include
voidmain()
{
intn,i,j;
charch;
ch=getchar();
scanf("%d",&n);
for(i=0;i {
for(j=0;j<(n-1-i);j++)
printf("");
for(j=0;j<(2*i+1);j++)
printf("%c",ch);
printf("\n");
}
}
1.字符串连接由键盘任意输入两串字符,不用库函数strcat,连接将两串字符。
输入:
两串字符
输出:
连接将两串字符
输入样例:
abc
def
输出样例:
abcdef
/*字符串连接*/
#include
#include
voidmain()
{
inti,j,k;
charstr[20]={"\0"},str1[10],str2[10];
gets(str1);
gets(str2);
j=