北京理工大学乐学C语言编程汇编.docx

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

北京理工大学乐学C语言编程汇编.docx

《北京理工大学乐学C语言编程汇编.docx》由会员分享,可在线阅读,更多相关《北京理工大学乐学C语言编程汇编.docx(167页珍藏版)》请在冰点文库上搜索。

北京理工大学乐学C语言编程汇编.docx

北京理工大学乐学C语言编程汇编

2018学年第一学期C语言试题汇编

目录:

(O(∩_∩)O同学们乐学C语言学习的好助手来啦!

19.判断三角形形状

20.【小学生】计算时钟的夹角

22.【小学生】找出最大素数

24.再算日期(根据星期求日期)

25.【小学五年级】确定母亲节

27.【中学】寻找特殊偶数

28.【中学】寻找阿姆斯特朗数

30.【中学】求最后3位数值

31.【图形】数字菱形

32.【图形】空心的倒三角型

34.【日期】计算后续日期

35.【中学】零钱换整钱

36.【图形】空心数字梯形*

37.晕(回形方阵)

38.【中学】科学记数法*

39.【中学】整数问题

40.数制转换

41.计算通用产品代码(UPC)的校验位

42.五年级小学生的题目

43.【日期】黑色星期五(数组)

H【日期】的奥秘*

H高精度加减法*

44.判断二进制对称数

45.【字符】合并字符串

46.猜数字

47.【大学】北理工的恶龙

48.【数列】等值数列段

49.扫雷

50.【字符】压缩文本文件

H.安全的密码*

H.子数整除*

51.小蜜蜂

52.回文字符串——递归

53.计算子字符串个数

54.【小学递归】杀鸡用牛刀——要用递归啊!

55.【中学】求最大公约数——递归

56.【大学递归】求解平方根

57.【数列递归】求序列之和——递归

H铺地板*(之字方阵)

58.车辆限行

59.采用指针对数组进行排序*

60.合并排序

61.对一个整数数组排序

H二维数组排序*

62.全能战士

63.三角形是一个永不过时的话题

64.学生成绩排序

65.大家一起做游戏*

66.【大学】恭喜发财利是窦来

67.建立正序链表

68.链表排序

69.链表移动

70.求循环节

H.链表处理*

其它:

1.期中测试1

2.期中测试2

3.期中测试3

4.期中测试(周青班)1

5.期中测试(周青班)2

6.期中测试(周青班)3

7.计算字符串中某字符串出现次数

8.编写程序:

从键盘输入两个字符串,找出其中没有同时出现在两个字符串中的字符。

9.合并删除并排序

10.拱猪积分

11.合并果子

12.大数分解(分解质因数)

13.在指定字符后添加字符串

14.合伙捕鱼

15.统计字符串中各字符的数量

16.从指定位置开始删除字符

17.按要求生成矩阵

18.谁能出线

19.数列Sum

20.仲君小组:

排列字符串

21.字符M

22.数字三角形

23.另一种空心数字梯形

24.字符X

25.字符X升级版

26.矩阵转置45°

27.hybest:

A+B

28.寻找矩阵鞍点

29.洗牌

30.整数拆分

正文部分:

19.判断三角形形状:

要求:

输入三角型的三条边,判断三角形的形状。

假设输入的三边边长均>0。

(提示:

本题中应该要用到if语句嵌套)

输入:

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

输出:

等边三角形:

equilateraltriangle.

等腰三角形:

isocelestriangle.

不构成三角形:

non-triangle.

一般三角形:

triangle.

测试输入

期待的输出

以文本方式显示

1.2 2 2↵

以文本方式显示

1.equilateral triangle.↵

以文本方式显示

1.3 2 2↵

以文本方式显示

1.isoceles triangle.↵

以文本方式显示

1.1 3 1↵

以文本方式显示

1.non-triangle.↵

以文本方式显示

1.3 4 5↵

以文本方式显示

1.triangle.↵

 

#include

main()

{

inta,b,c;

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

if(a+b<=c||a+c<=b||b+c<=a)

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

else

if(a==b||b==c||a==c)

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

printf("equilateraltriangle.\n");

else

printf("isocelestriangle.\n");

else

printf("triangle.\n");

}

20.计算时钟夹角:

输入:

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

第一个数字代表小时(大于0小于等于12),第二个数字代表分(在区间[0,59]上)。

输出:

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

输出格式如下所示。

再看一看,想一想:

是否可以不用if语句,只使用printf函数来简化你的程序?

#include

#include

main()

{

inta,b;

floatc,e;

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

if(b==0)

{

e=180-30*abs(a-6);

printf("At%d:

00theangleis%.1fdegrees.\n",a,e);

}

else

{

c=30*a-5.5*b;

if(c<-180)

{

e=-c-180;

printf("At%d:

%02dtheangleis%.1fdegrees.\n",a,b,e);

}

if(c>=-180&&c<0)

{

e=-c;

printf("At%d:

%02dtheangleis%.1fdegrees.\n",a,b,e);

}

if(c>=0&&c<=180)

printf("At%d:

%02dtheangleis%.1fdegrees.\n",a,b,c);

if(c>180)

{

e=360-c;

printf("At%d:

%02dtheangleis%.1fdegrees.\n",a,b,e);

}

}

}

22.找出最大素数:

输入:

   取值围

输出:

该围的最大素数

#include

main()

{

inta,b,c;

scanf("%d",&a);

b=a-1;

while(b>=2)

{

c=a%b;

if(c==0)

{

a--;

b=a-1;

}

else

b--;

}

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

}

24.再算日期:

再次给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。

输入:

   年月日

输出:

   0~6。

   星期日用0表示,星期一用1表示,星期二用2表示......星期六用6表示。

假设年份大于1900。

先想一想:

我们现在只会使用if语句,该如何建立数学模型?

#include

main()

{

inta,b,c,e,f,g;

longs=1;

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

if(b>12||b<1)

printf("monthiserror.\n");

else

{

while(a!

=1900||b!

=1||c!

=1)

{e=(a-1900)%4;

f=(a-1900)%100;

g=(a-1600)%400;//这三个每次都要算!

if(s==1)

{

if(b==1||b==3||b==5||b==7||b==8||b==10||b==12)

if(c>31||c<1)

s=0;

if(b==4||b==6||b==9||b==11)

if(c>30||c<1)

s=0;

if(b==2)

if(g==0||f!

=0&&e==0)

if(c>29||c<1)

s=0;

else

if(c>28||c<1)

s=0;

if(s==0)

{printf("dayiserror.\n");

break;

}

}

s++;

c--;

if(c==0)

{

if(b==5||b==7||b==10||b==12)

c=30;

if(b==1||b==2||b==4||b==6||b==8||b==9||b==11)

c=31;

if(b==3)

if(g==0||f!

=0&&e==0)

c=29;

else

c=28;

b--;

}

if(b==0)

{

b=12;

a--;

}

}

if(s!

=0)

printf("%ld\n",s%7);

}

}

25.确定母亲节:

母亲节是每年的五月第二个星期天,针对输入的年份,计算该年的哪一天是母亲节。

输入:

   年份

输出:

日期(5月的哪一天)

#include

main()

{

inta,ri,c;

intd,f,g,e;

scanf("%d",&a);

d=(a-1900)%4;

f=(a-1900)%100;

g=(a-1600)%400;

if(g==0||f!

=0&&d==0)

{

ri=365*(a-1900)+(a-1900)/4-(a-1900)/100+(a-1600)/400+121;

e=ri%7;

if(e!

=0)

c=15-e;

else

c=8;

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

}

else

{

ri=365*(a-1900)+(a-1900)/4-(a-1900)/100+(a-1600)/400+121;

e=ri%7;

if(e!

=0)

c=15-e;

else

c=8;

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

}

}

27.寻找特殊偶数:

背景

有一种特殊偶数,它每一位上的数字都两两不相同。

我们现在需要找出四位数中某一区间的这类偶数。

输入

所要寻找的四位偶数的围。

每组输入有两个数字:

第一个数字是最小围;第二个数字是最大围。

如果输入遇到0,输入结束。

输出

列出此围的所有特殊偶数,并且列出此围特殊偶数的个数。

#include

main()

{

inta,b,i,j=0;

intd,e,f,g;

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

while(a!

=0&&b!

=0)

{

if(a<1000||b>9999||a>b)

printf("Error\n");

else

{

i=a;

while(i<=b)

{

g=i%10;

f=i/10%10;

e=i/100%10;

d=i/1000;

if(g==f||g==e||g==d||f==e||f==d||e==d)

i=i+2;

else

{

j++;

printf("%d",i);

i=i+2;

}

}

printf("\n");

printf("counter=%d\n",j);

j=0;

}

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

}

}

28.寻找阿姆斯特朗数:

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

一个n位的正整数等于其各位数字的n次方之和。

例如:

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

所以407就是一个特殊数。

输入:

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

输出:

  所有此n位特殊数。

每个数占一行。

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

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

#include

main()

{

inta,b,c,d,e,f,g;

into=1,p=1,q=1,r=1,s=1,t=1;

intn;

intshang,xia;

inti=1,j,h=0,k=1,l=1;

scanf("%d",&n);

while(i<=n)

{

k=10*k;

i++;

}

shang=k-1;

xia=k/10;

j=xia;

while(j<=shang)

{

a=j%10;

b=j/10%10;

c=j/100%10;

d=j/1000%10;

e=j/10000%10;

f=j/100000%10;

while(l<=n)

{

o=a*o;p=p*b;q=q*c;r=r*d;s=s*e;t=t*f;

l++;

}

g=o+p+q+r+s+t;

if(j==g)

{

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

h++;

}

j++;

l=1;

o=1,p=1,q=1,r=1,s=1,t=1;

}

if(h==0)

printf("Nooutput.\n");

}

31.打印数字菱形:

这是非信息类2013年出的题目,大家来看看,你会做吗?

输入n的值,输出如下例(n=4)所示的数字菱形。

 4

 434

 43234

4321234

 43234

 434

 4

输入:

   n

输出:

  数字菱形

友情提示:

同学们总结一下打印星号组成的实心图形程序的编程思路:

第一步,打印星号组成的正方形;第二步,改变每行星号的个数,打印每行星号数量不一样的图形;如果是空心图形,每行第一个和最后一个位置输出星号,其他位置输出空格。

现在我们练习输出变化的字符,在打印星号图形的基础上,原来输出*号的位置,将printf("*");改为printf("%2d",x);当然,原来输出一个*号的地方只占一个字符的位置,现在都要改为2个字符的位置,如果输出的是数字且多于2个,则要是%3d或%4d了。

x是多少呢?

则要寻找其规律,就是该输出位置与所在行列的关系。

注意给出的测试用例,输出的数字是左对齐啊。

不用数组就可以完成。

#include

main()

{inti=1,j=1,n,m;

scanf("%d",&n);

m=n;

while(i<=2*n-1)

{

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

{

for(;j<=n-i;j++)

printf("");

for(m=n;j>n-i&&j<=n;j++)

{printf("%-2d",m);m--;}

for(m=n+1-i;j>n&&j<=n+i-1;j++)

{m++;printf("%-2d",m);}

printf("\n");

j=1;

}

for(;i>n&&i<=2*n-1;i++)

{

for(;j<=i-n;j++)

printf("");

for(m=n;j>i-n&&j<=n;j++)

{printf("%-2d",m);m--;}

for(m++;j>n&&j<=3*n-1-i;j++){

m++;printf("%-2d",m);}

printf("\n");

j=1;

}

}

}

32.打印空心倒三角形:

测试输入

期待的输出

测试用例1

以文本方式显示

1.3↵

以文本方式显示

1.*****↵

2. * *↵

3.  *↵

测试用例2

以文本方式显示

1.5↵

以文本方式显示

1.*********↵

2.*     *↵

3.  *   *↵

4.   * *↵

5.   *↵

#include

main()

{

inti=2,j=1,h;

scanf("%d",&h);

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

printf("*");

printf("\n");

if(h>1)

{

while(i<=h)

{

for(j=1;j

for(;j==i;j++)printf("*");

for(;j>i&&j<2*h-i;j++)printf("");

for(;j==2*h-i;j++)printf("*");

printf("\n");

i++;

}

}

}

34.计算后续日期:

我们经常要计算,从今天往后N天之后是哪一天(哪年哪月哪日)。

现在我们就可以编写一个程序,推算指定日期之后的第N天是什么日期。

输入:

 年月日

 N

输出:

(年月日+N天后的)年.月.日

#include

main()

{inta,b,c;intnian,yue,ri;intm;

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

nian=a;yue=b;ri=c;

while(m>0)

{

switch(yue)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

{if(ri<=31){ri++;}

if(ri>31){ri=1;yue++;}

}break;

case4:

case6:

case9:

case11:

{if(ri<=30){ri++;}

if(ri>30){ri=1;yue++;}

}break;

case2:

{if(nian%400==0||nian%100!

=0&&nian%4==0)

{if(ri<=29){ri++;}

if(ri>29){ri=1;yue++;}

}

else

{if(ri<=28){ri++;}

if(ri>28){ri=1;yue++;}

}

}break;

}m--;

if(yue==13){nian++;yue=1;ri=1;}

}

printf("%d.%d.%d\n",nian,yue,ri);

}

35.零钱换整钱:

小明手中有硬币,小红手中有若干10元的纸币。

已知1角硬币厚1.8mm,5角硬币厚1.5mm,1元硬币厚2.0mm。

小红拿出若干10元的纸币,小明要将1角的硬币放成一摞,将5角的硬币放成一摞,将1元的硬币放成一摞,如果3摞硬币一样高,且三摞硬币的金额之和正好等于小红要求的面值,则双方交换,否则没有办法交换。

输入:

 

   小红希望交换几10元的纸币

输出:

   1角的数量,5角的数量,1元的数量

#include

main()

{

inta,d,e,f;

floatx,y,z;

scanf("%d",&a);

x=25.0/4*a;

y=15.0/2*a;

z=45.0/8*a;

d=x;

e=y;

f=z;

if(x!

=d||y!

=e||z!

=f)

printf("Nochange.\n");

else

printf("%d,%d,%d\n",d,e,f);

}

36.空心数字梯形

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

要求:

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

输入:

 行数n和首字符

输出:

   空心梯形

测试输入

期待的输出

以文本方式显示

1.5 5↵

以文本方式显示

1.5 6 7 8 9 0 1 0 9 8 7 6 5↵

2.  6                   6↵

3.    7               7↵

4.      8           8↵

5.        9 0 1 0 9↵

以文本方式显示

1.1 0↵

以文本方式显示

1.0↵

以文本方式显示

1.2 9↵

以文本方式显示

1.9 0 0 9↵

2.  0 0↵

以文本方式显示

1.3 1↵

以文本方式显示

1.1 2 3 4 3 2 1↵

2.  2       2↵

3.    3 4 3↵

以文本方式显示

1.6 6↵

以文本方式显示

1.6 7 8 9 0 1 2 3 3 2 1 0 9 8 7 6↵

2.  7                         7↵

3.    8                     8↵

4.      9                 9↵

5.        0             0↵

6.          1 2 3 3 2 1↵

以文本方式显示

1.9 9↵

以文本方式显示

1.9 0 1 2 3 4 5 6 7 8 9 0 1 0 9 8 7 6 5 4 3 2 1 0 9↵

2.  0                                          0↵

3.    1                                      1↵

4.     2                                   2

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

当前位置:首页 > 人文社科 > 法律资料

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

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