C语言题库(编程)河南工业大学河工大c语言期末考考试库
C语言题库(编程)河南工业大学河工大 c语言期末考试题库 二、编程题
1.有一函数:当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。编一程序,输入x的值,输出y的值。
#include void main() { int x,y;
printf(\"请输入x:\"); scanf(\"%d\if(x<0) y=-1; else if(x=0) y=0; else y=1;
printf(\"y=%d\}
2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。
#include void main() {int a,b,c,temp=0;
printf(\"please input a,b,c: \"); scanf(\"%d %d %d\if(a
if(a< p=\"\"> if(b< p=\"\">
printf(\"从大到小为:%d,%d,%d\\n\}
3.有三个整数a,b,c,由键盘输入,输出其中最大者。 void main() {
int a,b,c,max;
printf(\"输入三个数字:\\n\"); scanf(\"%d%d%d\if(a>b&&a>c) max=a; if(b>a&&b>c) max=b; if(c>a&&c>b) max=c;
printf(\"最大值是: %d\\n\}
4.编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。
#include
#define pi 3.1416 main() { float r,l,s;
printf(\"请输入半径:\\n\"); scanf(\"%f\l=2*pi*r; s=pi*r*r;
printf(\"l=%7.2f\\ns=%7.2f\\n\}
5. 【有点难】有分段函数:当x<-10时,y=|x|+5;当-10≤x≤10时,
y=4x-8;当x>10时,y=sqrt(x)。
编一程序,输入x的值,输出y的值。
6.编写程序,判断某一年是否是闰年。(闰年的条件是:能被4整除,但是不能被100整除,或者可以被400整除。)
#include int main() {
int year,leap; scanf(\"%d\if (year%4==0) {
if(year%100==0) {
if(year%400==0) leap=1; else leap=0; } else leap=1; } else leap=0; if (leap)
printf(\"%d is \else
printf(\"%d is not \printf(\"a leap year.\\n\"); return 0; }
7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,
取小数点后两位数字。公式为c=5/9(f-32) #include int main() { float f,c;
printf(\"输入华氏温度:\\n\"); scanf(\"%f\c=(f-32)/1.8;
printf(\"对应的摄氏温度是:%5.2f\\n\}
8.有一函数:当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11。
编一程序,输入x的值,输出y的值。
9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。
#include void main() {int a,b,c,temp=0;
printf(\"please input a,b,c: \"); scanf(\"%d %d %d\if(a>b) {temp=a;a=b;b=temp;} if(a>c){temp=a;a=c;c=temp;} if(b>c){temp=b;b=c;c=temp;}
printf(\"从小到大为:%d,%d,%d\\n\}
10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。
#include
#include void main() { char a;
scanf(\"%c\if(islower(a)) a=a-32; printf(\"%c\\n\}
11.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。
#include
int main(int argc, char *argv[]) {
float r,h,l,s,sq,vq,vz; float pi=3.1415926;
printf(\"请输入圆的半径r,圆柱高h:\"); scanf(\"%f,%f\l=2*pi*r; s=pi*r*r; sq=4*pi*r*r; vq=4.0/3.0*pi*r*r; vz=pi*r*r*h;
printf(\"圆周长为:l=%6.2f\\n\printf(\"圆面积为:s=%6.2f\\n\printf(\"圆球表面积为:sq=%6.2f\\n\printf(\"圆球体积为:vq=%6.2f\\n\printf(\"圆柱体积为:vz=%6.2f\\n\system(\"PAUSE\"); return 0;
}
12.有分段函数:当x<-5时,y=x+10; 当-5≤x≤5时,y=x^2;当x>5时,y=2x-10.
编一程序,输入x的值,输出y的值。
13.有三个整数a,b,c,由键盘输入,输出其中最小者。 #include int main() {
int a,b,c,temp,min; printf(\"请输入三个整数:\"); scanf(\"%d,%d,%demp=(a<=\"\" p=\"\"> min=(temp<=\"\">
printf(\"三个数中最小数是%d\\n\return 0; }
14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
#include void main() { char c;
printf(\"input ch:\"); c=getchar(); if( c>='A'&&c<='Z') { c=c+32; printf(\"%c\}
else printf(\"%c\
}
15.输入三角形的三边长,求三角形面积。求三角形面积的公式为area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2
#include #include void main() {
float a,b,c,s,area; printf(\"依次输入a,b,c:\"); scanf(\"%f%f%f,\s=(float)0.5*(a+b+c);
area = (float)sqrt(s*(s-a)*(s-b)*(s-c)); printf(\"面积为:%7.2f\}
16.编程求2!+4!+6!+8!+10!的值,并输出结果。 #include int main() {
int n=1,sum=0,j,m=1,i; for(i=1;i<=5;i++){ m=1;
for(j=1;j<=2*i;j++) m=m*j; sum=sum+m; }
printf(\"sum=%d\\n\return 0; }
17.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。#include
void main() {
int day; static x1=1; day=10; while(day>0) {
x1=(x1+1)*2; day--; }
printf(\"桃子总数=%d\\n\}
18.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
#include int main() { int i,j,k,n;
printf(\"水仙花数是\"); for(n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10;
if(n==i*i*i+j*j*j+k*k*k) printf(\"%d \}
printf(\"\\n\"); return 0; }
19.编程求1~100之间的所有素数,并输出结果。#include int main(void) {
int a[100],i,j;
for (i = 0; i<100; i++) a[i]=i+1; for (i=1; i<100; i++) for (j=i+1; j<100; j++) if (a[i]&&a[j]%a[i]==0) a[j]=0;
for (i = 1; i<100; i++) if (a[i]) printf(\"%d\\return 0; }
20.编程求1!+3!+5!+7!+9!的值,并输出结果。#include int main() {
int n=1,sum=0,j,m=1,i; for(i=1;i<=5;i++){ m=1;
for(j=1;j<=2*i-1;j++) m=m*j; sum=sum+m; }
printf(\"sum=%d\\n\return 0; }
21.用pi/4≈1-1/3+1/5-1/7+...公式求pi的近似值的绝,直到某
一项对值小于10的-6次方为止。
#include #include int main() {
int sign=1;
double pi=0.0,n=1.0,term=1.0; while(fabs(term)>=1e-6) {pi=pi+term; n=n+2; sign=-sign; term=sign/n; }pi=pi*4;
printf(\"pi=%10.8f\\n\return 0; }
22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米?
#include \"stdio.h\" #include \"stdio.h\" main() {
float sn=100.0,hn=sn/2; int n; <> <>