北京理工大学网络教室C语言编程题库及答案.docx

上传人:b****0 文档编号:9121840 上传时间:2023-05-17 格式:DOCX 页数:225 大小:141.72KB
下载 相关 举报
北京理工大学网络教室C语言编程题库及答案.docx_第1页
第1页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第2页
第2页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第3页
第3页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第4页
第4页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第5页
第5页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第6页
第6页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第7页
第7页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第8页
第8页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第9页
第9页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第10页
第10页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第11页
第11页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第12页
第12页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第13页
第13页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第14页
第14页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第15页
第15页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第16页
第16页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第17页
第17页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第18页
第18页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第19页
第19页 / 共225页
北京理工大学网络教室C语言编程题库及答案.docx_第20页
第20页 / 共225页
亲,该文档总共225页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

北京理工大学网络教室C语言编程题库及答案.docx

《北京理工大学网络教室C语言编程题库及答案.docx》由会员分享,可在线阅读,更多相关《北京理工大学网络教室C语言编程题库及答案.docx(225页珍藏版)》请在冰点文库上搜索。

北京理工大学网络教室C语言编程题库及答案.docx

北京理工大学网络教室C语言编程题库及答案

 

1.Helloworld.

输入:

输出:

Helloworld.

 

程序:

#include<>

intmain()

{

printf("Helloworld.\n");

return0;

}

2.WelcometoBeijing.

 

程序:

#include<>

intmain()

{

printf("Welcome\n");

printf("to\n");

printf("Beijing.\n");

return0;

}

3.求A+B

输入:

整数1整数2

输出:

整数1+整数2=和

 

程序:

#include<>

intmain()

{

inta,b;

scanf("%d",&a);

scanf("%d",&b);

printf("%d+%d=%d\n",a,b,a+b);

return0;

}

4.求x的3次方

输入:

一个整数。

输出:

该整数的3次方值。

 

程序:

#include<>

 

intmain()

{

intx;

scanf("%d",&x);

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

return0;

}

5.学习打印你的第一个图形

编写一个小程序,要求输出的是4行由*号构成的等腰三角形。

 

程序:

#include<>

intmain()

{

printf("*\n");

printf("***\n");

printf("*****\n");

printf("*******\n");

return0;

}

6.一年级的算术题

输入:

接受两个整数,每个整数之间使用空格分开。

比如输入格式为:

123444

输出:

分别输出依据整型数据进行+、-、*、/、*以后的运转结果。

 

程序:

#include<>

intmain()

{

inta,b;

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

printf("%d+%d=%d\n",a,b,a+b);

printf("%d-%d=%d\n",a,b,a-b);

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

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

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

return0;

}

7.求两个变量的最小值输入:

两个整型数

输出:

两个整型值中的最小值

 

程序:

#include<>

intmain()

 

{

inta,b;

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

printf("min=%d\n",a

b);

return0;

}

8.判断三角形的形状

输入:

三角型的3条边的长度(int型)。

输出:

等边三角形:

equilateraltriangle

等腰三角形:

isocelestriangle

不构成三角形:

non-triangle

一般三角形:

triangle

 

程序:

#include<>

intmain()

{

inta,b,c;

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

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

{

if(a==b&&b==c&&a==c)

printf("equilateraltriangle.\n");

elseif(a==b||a==c||b==c)

printf("isocelestriangle.\n");

else

printf("triangle.\n");

}

else

printf("non-triangle.\n");

return0;

}

9.计算圆柱的侧面积及体积

输入:

第一行输入

第二行输入圆柱的高h

输出:

s=<圆柱的侧面积>,v=<圆柱的体积

圆柱

 

>

的底面半径

r

 

1.所有变量

 

都定义

 

 

双精度类

2.结果精准到小数点后两位

 

程序:

#include<>

#definePI

intmain()

 

{

doubler,h,s,v;

scanf("%lf",&r);

scanf("%lf",&h);

s=2*PI*r*h;

v=PI*r*r*h;

printf("s=%.2f,v=%.2f\n",s,v);

return0;

}

10.计算时钟的夹角

背景:

钟面上的时针和分针之间的夹角老是在0~180之间(包含0和180)。

举例来说,在十二点的时候两针之间的夹角为0,而在六点的时候夹角为180,

在三点的时候为90。

此题要解决的是计算12:

00到11:

59之间随意一个时间

的夹角。

输入:

每组测试数据包含两个数字:

第一个数字代表小时(大于0小于等于

12),第二个数字代表分(在区间[0,59]上)。

输出:

对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精准到小数点后一位。

输出格式以下所示。

 

程序:

#include<>

#include<>

intmain()

{

inth,m;

floatd1,d2,d;

scanf("%d%d",&h,&m);

d1=30*(h+m/;

d2=m*360/;

d=fabs(d1-d2);

if(d>180)

d=360-d;

printf("At%d:

%dtheangleis%.1fdegrees.\n",h,m,d);return0;

}

11.找出最大素数

素数是指一个只好被

1和它自己整除的数,在数论中占有重要的研究地位,

在今世密码

学中也被宽泛应用。

输入:

取值范围

输出:

该范围内的最大素数

 

程序:

#include<>

intmain()

{

intn,i,j;

scanf("%d",&n);

for(i=n;i>=1;i--)

{for(j=2;j

if(j==i)

{

printf("Themaxprimenumberis%d.\n",i);

break;

}

}

}

12.求最后3位数值

输入:

a和n的值。

假定a<=150。

输出:

求a的n次方的最后3位数。

 

程序:

#include<>

intmain()

{

longints=1;

inta,n,i=1,t=1;

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

if(n==0)

printf("Thelast3numbersis1.\n");

else

{

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

{

s=(s*a)%1000;

}

t=s%1000;

if(t>=0&&t<10)printf("Thelast3numbersis00%d.\n",t);if(t>=10&&t<100)printf("Thelast3numbersis0%d.\n",t);if(t>=100&&t<1000)printf("Thelast3numbersis%d.\n",t);

}

return0;

}

 

13.贪吃的猴子

有一只猴子,第一天摘了若干个桃子,立即吃了一半,但还感觉可是瘾,就又多吃了一个。

第2天清晨又将剩下的桃子吃掉一半,仍是感觉可是瘾,就又多吃了两个。

此后每日清晨都吃了前一天剩下的一半加天数个(比如,第5天吃了前一天剩下的一般加5个)。

到第n天清晨再想吃的时候,就只剩下一个桃子了。

 

输入:

天数n

输出:

第一天的桃子个数

 

程序:

#include<>

intmain()

{

inti,n,amount=1;

scanf("%d",&n);

for(i=n-1;i>=1;i--)

amount=2*(amount+i);

printf("Themonkeygot%dpeachsinfirstday.\n",amount);

}

14.黑色礼拜五

在西方,礼拜五和数字13都代表着坏运气,两个不幸的个体最后联合成超

级不幸的一天。

所以,不论哪个月的十三日又恰逢礼拜五就叫“黑色礼拜五”。

输入:

年份

 

输出:

判断该年能否包含黑色礼拜五,如包含,给出详细日期

 

程序:

#include<>

intmain()

{

inti,n=0,year,month[12]={0};

inta[13]={0,13,44,73,104,134,165,195,226,257,287,318,348};intb[13]={0,13,44,72,103,133,164,194,225,256,286,317,347};scanf("%d",&year);

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

{

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

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

{

 

if((year-1+((year-1)/4)-((year-1)/100)+((year-1)/400)+a[i])%7==5)

{

n++;

month[n]=i;

}

}

 

else

 

if((year-1+((year-1)/4)-((year-1)/100)+((year-1)/400)+b[i])%7==5)

{

n++;

month[n]=i;

}

}

if(n==1)

{

printf("Thereis%dBlackFridayinyear%d.\n",n,year);

printf("Itis:

\n");

printf("%d/%d/13\n",year,month[1]);

}

else

{

printf("Thereare%dBlackFridaysinyear%d.\n",n,year);printf("Theyare:

\n");

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

{

printf("%d/%d/13\n",year,month[i]);

}

}

return0;

}

15.你会输出一行星号

我们才开始上机,此刻需要我们用最简单得方法,在一行中输出N个星号。

输入:

N值

输出:

一行中N个星号。

 

程序:

#include<>

intmain()

{

inti,n;

scanf("%d",&n);

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

printf("*");

printf("\n");

}

16.计算SUM的值

已知公式:

SUM=1+1/2+1/3+1/4+...+1/n

输入:

n输出:

表达式sum的值。

结果保存6位小数。

 

程序:

#include<>

intmain()

{

inti,n;

doublesum=0;

scanf("%d",&n);

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

sum+=i;

printf("sum=%.6lf\n",sum);

return0;

}

17.找寻特别整数

请编写一个程序找寻一种特别整数:

一个n位的正整数等于其各位数字的

n次方之和。

比如:

407=4×4×4+0×0×0+7×7×7。

所以407就是一个特别数。

输入:

正整数的位数n(n<=6)。

输出:

全部此n位特别数。

每个数占一行。

若不存在切合条件的特别数,则输出提示:

“Nooutput.”;若存在,则从小到大进行输出。

说明:

假定输入为4,在4位整数中,有3个4位的特别数,则输出格式为(输出中的1111、2222和9999其实不是4位特别数,不过格式样例):

1111

2222

9999

 

程序:

#include<>

#include<>

intmain()

{

intn,i,j,num,t,s=0,t1,flag=0;

scanf("%d",&n);

t=pow(10,n-1);

for(i=t;i

{

t1=i;

s=0;

for(j=1;t1!

=0;j++)

{

num=t1%10;

s+=pow(num,n);

t1=t1/10;

}

 

if(s==i)

{

flag=1;

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

}

}

if(flag==0)

printf("Nooutput.\n");

return0;

}

18.空心的倒三角型

输入:

输入三角形的高度(h>=0)。

输出:

打印相应的空心倒三角形。

图样拜见测试用例。

程序:

#include<>

#include<>

intmain()

{

inti,j,h;

scanf("%d",&h);

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

{

for(j=1;j

printf("");

if(i==1||i==h)

{

for(j=1;j<=2*(h-i)+1;j++)

printf("*");

printf("\n");

}

else

{

printf("*");

for(j=1;j<=2*(h-i)-1;j++)

printf("");

printf("*\n");

}

}

return0;

}

19.空心字符菱形

输入:

菱型开端字母和菱形的高度。

输出:

参看测试用例,打印空心的由字符构成的菱形。

 

程序:

#include<>

#include<>

intmain()

{

inti,j,h;

charch;

scanf("%c%d",&ch,&h);

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

{

for(j=1;j<=h-i;j++)

printf("");

printf("%c",ch+i-1);

for(j=1;j<=2*i-3;j++)

printf("");

if(i==1)

{

printf("\n");

continue;

}

printf("%c\n",ch+i-1);

}

for(i=h+1;i<=2*h-1;i++)

{

for(j=1;j<=i-h;j++)

printf("");

printf("%c",ch+(2*h-1)-i);

for(j=1;j<=(2*h-1-i)*2-1;j++)

printf("");

if(i==2*h-1)

{

printf("\n");

continue;

}

printf("%c\n",ch+(2*h-1)-i);

}

return0;

}

20.空心梯形

输入行数n和首数字字符,在屏幕上输出由数字围起的高和下底宽度均n的空心梯形。

要求:

输出的数字是循环的,即输出数字9后再输出的数字是0。

输入:

行数n和首字符

输出:

空心梯形

 

程序:

#include<>

#include<>

intmain()

{

inti,j,n,f,t=0;

scanf("%d%d",&n,&f);

t=f;

for(j=1;j<=3*n-2;j++)

{

if(j==3*n-2)

printf("%d",t);

else

printf("%d",t);

if(j<(3*n-1)/2)

{

if(t==9)t=0;

else

t++;

}

elseif(j==(3*n-1)/2&&n%2==0)continue;

else

{

if(t==0)t=9;

else

t--;

}

}

printf("\n");

t=f;

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

{

for(j=1;j<=2*(i-1);j++)

printf("");

if(i==n)

{

for(j=1;j<=(n+1)/2;j++)

{

if(t==9)

{

t=0;

printf("%d",t);

}

else

 

printf("%d",++t);

}

for(j=1;j<=n/2;j++)

{

if(t==0&&n%2!

=0)

t=9;

elseif(j==1&&n%2==0)

{

if(j==n/2)

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

else

printf("%d",t);

continue;

}

else

t--;

if(j==n/2)

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

else

printf("%d",t);

}

}

else

{

if(t==9)

{

printf("0");

for(j=1;j<=6*n-4*i-3;j++)

printf("");

printf("0\n");

t=0;

}

else

{

t++;

printf("%d",t);

for(j=1;j<=6*n-4*i-3;j++)

printf("");

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

}

}

}

return0;

}

 

H1:

计算通用产品代码(UPC)的校验位(选作)

下边是一种计算校验位的方法:

第一把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。

而后把第二位、第四位、第六位、第八位和第十位

数字相加。

接着把第一次加法结果乘以3后再加上第二次加法的结果。

随后,再把上述结果减去1。

减法后的结果除以10取余数。

最后,用9减去上一步骤中获取的余数。

此刻以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+1+0=9。

把第一组加法值乘以3后再加上第二组加法值获取的结果是30。

再减去1,结果变成29。

再把这个值除以10取余数为9。

9在减去余数结果9,最后值为0。

输入:

每次输入三行数据,第一行是UPC的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字。

输出:

UPC的校验位

 

程序:

#include<>

#include<>

intmain()

{

inti,j,s1=0,s2=0,t;

inta[11];

charb[6],c[6];

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

scanf("%s",b);

scanf("%s",c);

for(i=0,j=1;i<5;i++,j++)

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

for(i=0,j=6;i<5;i++,j++)

a[j]=c[i]-48;

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

{

if(i%2==0)

s1+=a[i];

else

s2+=a[i];

}

t=9-(s1*3+s2-1)%10;

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

return0;

}

H2:

数制变换(选作)

这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。

比如12和5,在十进制下它们是不等的,但若12使用3进制而5使用六进制或十进制时,它们的值就是相等的。

所以只需选择适合的进制,12和5就能够是相等的。

 

程序的输入是两个数字M和N(其十进制的值不超出00),它们的进制

在2~36之间。

关于十以下的数字,用0~9表示,而十以上的数字,则使用大写的A~Z表示。

求出分别在2~36哪一种进制下M和N相等。

若相等则输出相应的进制,若不等则输犯错误信息。

自然了,关于多种可能成立的状况,找出切合要求的进制最小的一组就行了。

信息的格式见测试用例。

 

程序:

#include<>

intmain()

{

longintpm=0,pn=0,s=0,t=0,w=1,e=1,p=0,q=0;

inta[30],b[30];

charm[30],n[30];

inti,j,g,k,max1=0,max2=0,flag=0;

scanf("%s%s",m,n);

for(i=0;m[i]!

='\0';i++)

{

if(m[i]>='A'&&m[i]<='Z')

a[i]=m[i]-55;

if(m[i]>='0'&&m[i]<='9')

a[i]=m[i]-48;

max1=max1<(a[i]+1)(a[i]+1):

max1;

max1=max1<22:

max1;

}

pm=i;

for(j=0;n[j]!

=0;j++)

{

if(n[j]>='A'&&n[j]<='Z')

b[j]=n[j]-55;

if(n[j]>='0'&&n[j]<='9')

b[j]=n[j]-48;

max2=max2<(b[j]+1)(b[j]+1):

max2;

max2=max2<22:

max2;

}

pn=j;

for(i=max1,j=max2;i<=36&&j<=36;)

{

p=0;

q=0;

w=1;

e=1;

for(g=pm-1;g>=0;g--)

{

 

p+=a[g]*w;

w=w*i;

}

for(k=pn-1;k>=0;k--)

{

q+=b[k]*e;

e=e*j;

}

if(p

elseif(p>q)j++;

else

{

flag=1;

printf("%s(base%d)=%s(base%d)\n",m,i,n,j);

break;

}

}

if(flag==0)

printf("%sisnotequalto%sinanybase2..36\n",m,n);

 

return0;

}

 

21.零钱换整钱

 

小明手中有一堆硬币,小红手中有若干张10元的整钱。

已知1角的硬币厚度为,5角的硬币厚,1元的硬币为。

小明和小红一同玩游戏,小红取出

若干张10元的纸币,小明要将1角的硬币放成一摞,将5角的硬币硬币放成一摞,将1元的硬币放成一摞,假如3摞硬币相同高,并且金额能够正好小红要求的面值,则两方能够进行互换,不然没有方法互换。

输入:

小红希望互换几张10元的纸币

输出:

1角的数目,5角的数目,1元的数目

 

 

程序:

三种硬币厚度公倍数:

18mm(1角10个共1元,5角12个共6元,19个共9元,要想3摞硬币相同高总钱数一定是16元(1+6+9)的公倍数

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

当前位置:首页 > 经管营销 > 经济市场

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

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