西北农林科技大学C语言试题答案文档格式.doc
- 文档编号:7015929
- 上传时间:2023-05-07
- 格式:DOC
- 页数:50
- 大小:231KB
西北农林科技大学C语言试题答案文档格式.doc
《西北农林科技大学C语言试题答案文档格式.doc》由会员分享,可在线阅读,更多相关《西北农林科技大学C语言试题答案文档格式.doc(50页珍藏版)》请在冰点文库上搜索。
,sizeof(short));
sizeofint=%d\n"
sizeof(int));
sizeoflongint=%d\n"
sizeof(longint));
sizeoffloat=%d\n"
sizeof(float));
sizeofdouble=%d\n"
sizeof(double));
1.成绩判断输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。
不要改变与输入输出有关的语句。
/*成绩判断*/
floatmark;
scanf("
mark);
if(mark<
60)
Fail\n"
else
Pass\n"
2.字符转换输入一个字符,如果它是大写字母,输出相应的小写字母;
如果它是小写字母,输出相应的大写字母;
否则,原样输出。
#include<
main()
{charch;
ch=getchar("
if(ch>
='
A'
&
ch<
Z'
)
{ch=ch+32;
printf("
%c\n"
ch);
elseif(ch>
a'
z'
{ch=ch-32;
}
3.利用海伦公式求三角形面积三角形三个边长
/*计算三角形面积*/
#include"
math.h"
stdio.h"
doublea,b,c,s,area;
请输入3条边长:
"
%lf%lf%lf"
b,&
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"
scanf("
%lf\n"
这3个数无法组成三角形!
4.判断是否能构成一个三角形从键盘输三个数,判断是否能将它们作为三角形的三条边构成一个三角形。
若能,输出“Yes”,否则,输出“No”。
/*判断是否能构成一个三角形*/
floata,b,c;
%f%f%f"
if(a>
0&
b>
c>
a+b>
b&
b+c>
a)
Yes\n"
else
No\n"
5.按从大到小排序三个数从键盘输入三个数,将它们按从大到小进行排序,然后输出。
/*按从大到小排序三个数*/
main()
{
inta,b,c,d,e,f;
请输入三个整数n1,n2,n3:
%d%d%d"
a,&
b,&
排序前:
%d,%d,%d\n"
a,b,c);
d=c;
e=a;
f=b;
}
if(c<
d=a;
e=b;
f=c;
e=c;
else{if(b<
c)
{d=c;
f=a;
{if(a>
{d=b;
else{d=b;
排序后:
d,e,f);
1.数据统计任意输入n个整数,分别统计奇数的和、奇数的个数、偶数的和、偶数的个数。
/*数据统计*/
#include<
inti,n,m,jishuhe=0,oushuhe=0,jishuge=0,oushuge=0;
scanf("
%d"
n);
for(i=0;
i<
n;
i++)
{
scanf("
m);
if(m%2!
=0)
{
jishuhe=jishuhe+m;
jishuge++;
}
else
oushuhe=oushuhe+m;
oushuge++;
}
%d\n%d\n%d\n%d\n"
jishuhe,jishuge,oushuhe,oushuge);
}
2.爱因斯坦阶梯问题
爱因斯坦阶梯问题。
设有一阶梯,每步跨2阶,最后剩1阶;
每步跨3阶,最后剩2阶;
每步跨5阶,最后剩4阶;
每步跨6阶,最后剩5阶;
每步跨7阶,正好到阶梯顶。
问满足条件的最少阶梯数是多少。
/*爱因斯坦阶梯问题*/
intx;
x=7;
while(!
((x%3==2)&
(x%5==4)&
(x%6==5)))
x+=14;
x);
3.猴子吃桃问题
一天一只猴子摘下一堆桃子,吃了一半,觉得不过瘾,又多吃了一个,第2天接着吃了前一天剩下的一半,再多吃了一个,以后每天如此,直到第n天,只剩下1个桃子,问猴子一共摘了多少桃子?
/*猴子吃桃问题*/
voidmain()
{
intn;
intx=1,i;
scanf("
for(i=1;
x=2*(x+1);
4.求两个数的最大公约数和最小公倍数
用辗转相除法(即欧几里得算法)求两个正整数的最大公约数和最小公倍数。
/*求两个数的最大公约数和最小公倍数*/
#include<
inta,b,rem,temp;
intDiv,Multi;
inta1,b1;
%d%d"
a1=a;
b1=b;
if(a<
temp=a;
a=b;
b=temp;
while(rem)
rem=a%b;
b=rem;
Div=a;
Multi=a1*b1/Div;
%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)的近似值*/
math.h>
floata,b=1;
floati,sinx,x;
x);
a=x;
sinx=0;
fabs(a/b)>
=1e-6;
sinx+=a/b;
a=-a*x*x;
b=b*2*i*(2*i+1);
sinx);
6.图形输出
输入一个字符及行数n,用该字符在屏幕上输出如下图形:
*
***
*****
*******
*********
输入:
一个字符及要输出的行数n。
输出:
用该字符在屏幕上构成的要求图形。
intn,i,j;
charch;
ch=getchar();
for(i=0;
for(j=0;
j<
(n-1-i);
j++)
printf("
"
(2*i+1);
1.字符串连接由键盘任意输入两串字符,不用库函数strcat,连接将两串字符。
两串字符
连接将两串字符
输入样例:
abc
def
输出样例:
abcdef
/*字符串连接*/
string.h>
{
inti,j,k;
charstr[20]={"
\0"
},str1[10],str2[10];
gets(str1);
gets(str2);
j=strlen(str1),k=strlen(str2);
j+k;
if(i<
j)str[i]=str1[i];
elsestr[i]=str2[i-j];
puts(str);
{
charstr1[100],str2[50];
inti,j;
gets(str1);
gets(str2);
str1[i]!
\0'
;
i++);
for(j=0;
str2[j]!
str1[i]=str2[j];
i++;
str1[i]='
puts(str1);
}
2.简单加密程序
描述:
由键盘任意输入一串字符,对其进行加密,加密原则为:
如果为字母,将其循环右移2个字母,其他字符保持不变。
一串字符
加密后的字符串
abl2CDxyz
cdl2EFzab
提示:
1.可用gets()和puts()输入输出字符串。
2.利用ASCII码运算进行加密。
3.循环右移的含义是:
将a-z,A-Z各看成一个环进行移动,即y右移2个字母后为a,z右移2个字母后为b;
Y右移2个字母后为A,Z右移2个字母后为B。
/*简单加密程序*/
chara[80];
inti;
gets(a);
a[i]!
=0;
{if((a[i]>
a[i]<
X'
)||(a[i]>
a[i]<
x'
))
a[i]=a[i]+2;
elseif((a[i]>
y'
Y'
a[i]=a[i]-24;
puts(a);
3.矩阵对角线元素求和
输入一个5×
5的数组,分别求其主对角线和辅对角线上元素之和。
5×
5的数组
主对角线和辅对角线上元素之和
12345
678910
1112131415
1617181920
2122232425
6565
主对角线为从矩阵的左上角至右下角的连线,在数组中即指行列下标相同的元素,辅对角线为从矩阵的右上角至左下角的连线,这些元素的下标之间也可用相应的表达式表达。
/*矩阵对角线元素求和*/
inti,j;
int a[6][6];
intsum1=0,sum2=0;
for(i=0;
5;
for(j=0;
a[i][j]);
sum1=sum1+a[i][i];
sum2=sum2+a[i][4-i];
%d%d\n"
sum1,sum2);
4.数据顺序调整
由键盘任意输入10个数,将最大数调到最前面,最小数调到最后面。
任意10个数
数据调整后的10个数。
0123456789
9123456780
①定义四个变量d1、d2、x1、x2,分别存放最大数、最小数及它们的位置;
②在循环开始前,将第一个元素作为参考,将其值分别存入d1、x1,将其下标分别存入d2、x2;
③在循环中将其它元素逐一与d1比较,若比d1大,将其存入d1,并将其下标存入d2;
否则将其与x1比较,若比x1小,将其存入x1,并将其下标存入x2;
④结束循环后,将d2所示位置的数与第一个数交换,将x2所示位置的数与最后一个数交换,然后输出数组所有元素即可。
/*数据顺序调整*/
voidmain()
inti,a[10],temp;
intkmax=0,kmin=0;
for(i=0;
10;
a[i]);
if(a[i]>
a[kmax])
kmax=i;
if(a[i]<
a[kmin])
kmin=i;
temp=a[0];
a[0]=a[kmax];
a[kmax]=temp;
if(kmax!
=9)
temp=a[9];
a[9]=a[kmin];
a[kmin]=temp;
9;
printf("
%d"
a[i]);
printf("
a[9]);
5.字符个数统计
由键盘输入任意一串字符串,将其存入一个字符数组,统计其中的大写字母、小写字母、数字以及其他字符的个数。
任意一串字符串
大写字母、小写字母、数字以及其他字符的个数。
abcdefg123456ABCDEFG
776
/*字符统计*/
charstr[100];
intiA=0,ia=0,io=0,iqt=0;
inti;
gets(str);
for(i=0;
str[i];
{
if(str[i]>
str[i]<
iA++;
elseif(str[i]>
)
ia++;
0'
9'
)
io++;
else
iqt++;
}
%d%d%d%d\n"
iA,ia,io,iqt);
6.学生成绩计算
已知10个学生的5门课程的成绩,将其存入一个二维数组,求每一个学生的总成绩和每一个学生的平均成绩。
10个学生的5门课程的成绩
每一个学生的总成绩和每一个学生的平均成绩
90.580708984.6
91.581718884.7
92.582728784.8
93.583738684.9
94.584748584.0
95.585758484.1
96.586768384.2
97.587778284.3
98.588788184.4
99.589798084.5
414.10000682.820000
416.20001283.240005
418.29998883.659996
420.39999484.080002
421.50000084.300003
423.60000684.720001
425.70001285.139999
427.79998885.559998
429.89999485.979996
432.00000086.400002
/*学生成绩计算*/
#include"
floatscore[10][5];
floatsum[10],aver[10];
scanf("
score[i][j]);
sum[i]=0;
for(j=0;
{
sum[i]=sum[i]+score[i][j];
}
aver[i]=sum[i]/5;
%f%f\n"
sum[i],aver[i]);
7.姓名排序
由键盘任意输入10个学生的姓名(以拼音形式),将它们按照ASCⅡ码的顺序从小到大排序。
10个学生的姓名(以拼音形式)。
按照ASCⅡ码的顺序从小到大排序。
zhang
ziang
zaang
zbang
zcang
zdang
zeang
zfang
zgang
zhang
zaang
zhang
/*姓名排序*/
charname[10][10];
chartemp[20];
gets(name[i]);
10-j;
if(strcmp(name[i],name[i+1])>
0)
{
strcpy(temp,name[i]);
strcpy(name[i],name[i+1]);
strcpy(name[i+1],temp);
}
puts(name[i]);
8.输出杨辉三角形
编程实现n阶(n<
10)杨辉三角形的输出,n=6时,杨辉三角形如下所示:
1
11
121
1331
14641
15101051
杨辉三角形的阶数n。
n阶杨辉三角形。
6
1
①杨辉三角形的特点:
第一列和对角线上的元素值均为1,即a[i][0]=a[i][i]=1;
其余位置元素的值=上一行本列元素值+上一行前一列元素值,如第三行第二列2就是第二行第一列+第二行第二列,计算公式为a[i][j]=a[i-1][j-1]+a[i-1][j]。
②应先对第一列和对角线元素赋值,然后再为其它元素赋值。
/*输出杨辉三角形*/
inti,j,n;
inta[100][100];
fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西北农林 科技大学 语言 试题答案