0)y=sqrt(x);else if(x" />
2022年辽宁专升本C语言程序设计复习试题(3)
四、编程
1.设有一个函数如下。编程,输入x,求y值。
#include
#include
int main()
{float x,y;
scanf("%f",&x);
if (x>0)
y=sqrt(x);
else if(x<0)
y=(x+1)/(x*x+2);
else
y=0;
printf("x=%6.2f,y=%6.2f\n",x,y);
return 0;
}
2.下面程序的功能是计算1-3+5-7+…-99+101的值存在s中。
#include
int main()
{
int i,t=1,s=0;
for(i=1;i<=101;i+=2)
{
s=s+i*t;
t=-t;
}
printf("sum=%d\n", s);
return 0;
}
#include
int main()
{
int i=1,t=1,s=0;
while(i<=101)
{
s=s+i*t;
t=-t;
i+=2;
}
printf("sum=%d\n", s);
return 0;
}
#include
int main()
{
int i=1,t=1,s=0;
do
{
s=s+i*t;
t=-t;
i+=2;
} while(i<=101);
printf("sum=%d\n", s);
return 0;
}
3.一个整数被5除余3,被7除余5,被9除余7,这个数最小是几?
#include
int main()
{int i=8;
do
{if ((i%5==3) && (i%7==5) && (i%9==7))
{printf("%5d\n",i);
break;}
i=i+5;} while(1);
return 0;
}
4. 编写一程序,将两个字符串连接起来,要求不用strcat函数。
#include
#include
void main()
{ char s1[80],s2[40];
int i=0,j=0;
printf("input string1:\n");
gets(s1);
printf("input string2:\n");
gets(s2);
i=strlen(s1);
while( s2[j]!='\0')
s1[i++]=s2[j++];
s1[i]='\0';
puts(s1);
}
5.写一个函数计算2016以内最大的10个能被13或17整除的自然数之和。
输出格式:sum=23456
#include
void main()
{
long sum;
sum=sum2016();
printf("sum=%ld\n",sum);
}
long sum2016()
{
long sum=0;
int i,count=0;
for(i=2016;;i--)
{ if(i%13==0||i%17==0)
{count++;
sum+=i;}
if(count==10) break;}
return sum;
}
6.已知圆柱高h=5,要求用scanf输入圆的半径,求出圆周长,圆面积和圆柱体积。
#include
int main ()
{float h=5,r,l,s,vz;
float pi=3.1415926;
printf("请输入圆半径r:");
scanf("%f",&r); //要求输入圆半径r
l=2*pi*r; //计算圆周长l
s=r*r*pi; //计算圆面积s
vz=pi*r*r*h; //计算圆柱体积vz
printf("圆周长为: l=%6.2f\n",l);
printf("圆面积为: s=%6.2f\n",s);
printf("圆柱体积为: vz=%6.2f\n",vz);
return 0;
}
7. 试编写程序输出100~300间的所能同时被3和5整除的数。
#include
int main()
{int i;
for(i=100;i<=300;i++)
if((i%3==0)&&(i%5==0))
printf("%5d",i);
return 0;
}
8.一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多高。
#include
int main()
{
double sn=100,hn=sn/2;
int n;
for (n=2;n<=10;n++)
{
sn=sn+2*hn; /*第n次落地时共经过的米数*/
hn=hn/2; /*第n次反跳高度*/
}
printf("第10次落地时共经过%f米\n",sn);
printf("第10次反弹%f米\n",hn);
return 0;
}
9.以下程序从终端读入数据到数组中,统计其中偶数的个数,并计算它们之和及平均值。
#include
int main()
{ int i,a[20],count;float ave,sum;
sum=0.0;count=0;ave=0;
for(i=0;i<20;i++) scanf("%d", &a[i] );
for(i=0;i<20;i++)
{ if( a[i]%2==0 )
{ count++;
sum=sum+a[i];
}
}
ave=sum/count;
printf("sum=%f,count=%d,ave=%.2f\n",sum,count,ave);
return 0;
}
10.水仙花数的判定。
“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个水仙花数,因为13+53+33=153。
#include
int main()
{
int num,i,j,k;
do
{printf("请输入一个三位数:\n");
scanf("%d",&num);
}while (num>999||num<100);
i=num/100;
j=num/10%10;
k=num%10;
printf("您输入的数是%d\n百十个位数字依次为:%d,%d,%d\n",num,i,j,k);
if(i*i*i+j*j*j+k*k*k==num)
printf("%d是水仙花数\n",num);
else
printf("%d不是水仙花数\n",num);
return 0;
}
11.给定一3*4的矩阵,求出其中的最大元素值,及其所在的行列号。
#include
int main()
{int i,j,row=0,colum=0,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-4,4}}; // 定义数组并赋初值
max=a[0][0]; // 先认为a[0][0]最大
for (i=0;i<=2;i++)
for (j=0;j<=3;j++)
if (a[i][j]>max) // 如果某元素大于max,就取代max的原值
{max=a[i][j];
row=i; // 记下此元素的行号
colum=j; // 记下此元素的列号
}
printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);
return 0;
}
12.矩阵转置:将二维数组a的行和列元素互换后存到另一个二维数组b中。
#include
int main()
{ int i,j,b[3][2],a[2][3]={{1,2,3},{4,5,6}};
printf("array a :\n");
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");
}
printf("array b :\n");
for(i=0; i<3 ;i++)
{for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");
}
return 0;}
13.用数组来处理求Fibonacci数列问题。输出前20个数,每行5个。
#include
int main( )
{
int i;
int f[20]={1,1};
for(i=2; i<20; i++)
f[i]=f[i-1]+f[i-2];
for(i=0; i<20; i++)
{
if(i%5==0) printf("\n");
printf("%7d" , f[i]);
}
printf("\n");
return 0;
}
14. 输出杨辉三角。
#include
#define N 7
int main()
{ int i,j,a[N][N];
for (i=0;i
{a[i][i]=1;
a[i][0]=1;
}
for (i=2;i
for (j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for (i=0;i
{for (j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
15. 输入一个年份,判断其是否为闰年,并输出判断结果。
#include
int main()
{
int year,leap;
scanf("%d",&year);
if(year%4!=0)
leap=0;
else if (year%100!=0)
leap=1;
else if(year%400!=0)
leap=0;
else
leap=1;
if (leap)
printf("%d is ",year);
else
printf("%d is not ",year);
printf("a leap year.\n");
return 0;
}
16. 写一个函数,输出九九乘法表。
#include
void multi()
{int i,j,m=0;
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
{printf("%d*%d=%d\t",i,j,i*j);}
printf("\n");}
}
int main()
{ multi();
return 0;
}
17. 写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
#include
int main()
{int prime(int);
int n;
printf("input an integer:");
scanf("%d",&n);
if (prime(n))
printf("%d is a prime.\n",n);
else
printf("%d is not a prime.\n",n);
return 0;
}
int prime(int n)
{int flag=1,i;
for (i=2;i
if (n%i==0)
flag=0;
return(flag);
}
18. 写一个增加字符间空格的函数,在主函数输入4个字符,输出时每两个字符间留一个空格。
如输入aB16,应输出 a B 1 6 。
#include
#include
int main()
{char str[80];
void insert(char []);
printf("input four digits:");
scanf("%s",str);
insert(str);
return 0;
}
void insert(char str[])
{int i;
for (i=strlen(str);i>0;i--)
{str[2*i]=str[i];
str[2*i-1]=' ';
}
printf("output:\n%s\n",str);
}
19. 求两个整数的最大公约数与最小公倍数。
#include
int main()
{int hcf(int,int);
int lcd(int,int,int);
int u,v,h,l;
scanf("%d,%d",&u,&v);
h=hcf(u,v);
printf("H.C.F=%d\n",h);
l=lcd(u,v,h);
printf("L.C.D=%d\n",l);
return 0;
}
int hcf(int u,int v)
{int t,r;
if (v>u)
{t=u;u=v;v=t;}
while ((r=u%v)!=0)
{u=v;
v=r;}
return(v);
}
int lcd(int u,int v,int h)
{ return(u*v/h); }
以上就是关于2022年辽宁专升本C语言程序设计复习试题(3)的全部内容了,如果你还有专升本相关的疑惑(如专升本报名、考试动态、院校招生简章、统考动态、湖南专升本院校、历年真题、考试大纲、专升本等相关信息),可以在文章下方留下你的联系方式,老师会第一时间联系到你,为你答疑解惑哦!
部分内容来源于网络转载、学生投稿,如有侵权或对本站有任何意见、建议或者投诉,请联系邮箱(1296178999@qq.com)反馈。 未经本站授权,不得转载、摘编、复制或者建立镜像, 如有违反,本站将追究法律责任!
本文标签: 专升本统招全日制 上一篇:2022年辽宁专升本C语言程序设计复习试题(2) 下一篇:2022年辽宁专升本C语言程序设计习题练习(1)