北理乐学C语言答案-最新
C语言程序设计教材(北理工)习题参考答案(不排除少数错误)

第一章:程序设计基础知识一、单项选择题1.C2.B3.B4.C5.D6.A7.C8.A二、填空题1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言6.基本功能操作、控制结构7.有穷性8.直到型循环结构9.算法10.可读性11.模块化12.对问题的分解和模块的划分三、应用题1、用如何一种熟悉的方法描述求 N 个数中最小数的算法。
2、用枚举法设计例1-4中百钱买百鸡问题的算法,并用流程图表示;3 分别用递推和递规两种算法计算斐波那契数列:f(n+2)=f(n+1)+f(n),f(1)=f(0)=1的前30项,并用流程图表示a )递推 b)递规递推公式:f(n)=f(n-1)+f(n-2) 递规公式:f(n)=f(n-1)+f(n-2) f(1)=f(0)=1b )递推 b)递规4:一般迭代法:迭代公式:x1=1-x03,收敛条件:|x0/x1|<=1e-5牛顿迭代法:f(x)=x 3-x-1,f ’(x)=3x 2-1 迭代公式:x1=x0-f(x0)/f ’(x0) 收敛条件:|x0/x1|<=1e-55:分子a,分母b ,下一项分子c ,某项t=a/b,和s 。
第一项:a=2,b=1,c=a,t=a/b,s=t第i 项:c=a+b,b=a,a=c,t=a/b,s=s+t1-26:6第二章:C程序的基本结构一、单项选择题1.B2.D3.C4.B5.A6.A7.B8.C二、填空题1.主函数2.编译系统3.函数函数4.输入输出5.头文件6..obj7.库函数8.文本三、应用题5.标识符:au_to, _auto,file,m_i_n,hello,ABC,SIN90,x1234,until,cos2x,s_3关键字:sizeof非关键字,非标识符:3id,-min,call..menu,n*m,x.y,1234,1234hello,s+3第三章习题参考答案一、单项选择题1.D2.B3.A4.C5.C6.D7.B8.D9.B 10.C11.A 12.D13.C14.C15.C16.B17.B 18.C 19.C 20.D21.A 22.D 23.D 24.D,A 25.D26.A二、填空题1.补码2.±(10-308~ 10308) 15 ~ 16 位3.实型4.单目从右向左5.函数调用6.65 ,89三、应用题1.10 92.111213.区别是:求负:单目,右结合减法:双目,左结合取址:单目,右结合按位与:双目,左结合第四章习题参考答案一、单项选择题1.D2.C3.D4.A5. D6.B7.A8.C9.B 10.B二、填空题1.一条;2.5.1690003.(1)-200 2500(2)i=-200,j=2500(3)i=-200j=25004.a=98, b=765.000000, c=4321.0000005.三种可能的输入是:(1)(1)100<回车> 25.81<回车> 1.89234<回车>(2)(2)100<空格> 25.81<空格> 1.89234<回车>(3)(3)100<TAB> 25.81<TAB> 1.89234<回车> 6.0,0,37.38.输入语句的格式是:scanf("%lf%lf%lf",&a,&b,&c); 9.13 13.000000 13.00000010. 两种方法:(1) 增加一个临时变量t。
北京理工大学C语言网络教室 难题

16.对于下述定义,不正确的叙述是(B ).
union data
{int i;
char c;
float f;
}a,b;
A、变量a的地址和它的各成员地址都是相同的
B、可以在定义类型的同时定义变量a,并对a的任意成员初始化
C、变量a所占内存的长度等于成员f的长度
D、如果有定义语句union data a={6};则对变量a的初始化是正确的
26. 若定义了int x;则将x强制转化成双精度类型应该写成
选择一项:
A. double(x)
B. (double) x
C. x (double)
D. (x) double
反馈
正确答案是:(double) x
. 下列常数中不能作为C 的常量的是
选择一项:
A. 0582
B. 0xA5
C. 2.5e-2
D. 3e2
反馈
正确答案是:0582
if 控制表达式只有其值为_____时表示逻辑真,其值为_____表示逻辑假。
选择一项:
A. -1, 0
B. TRUE, FALSE
C. 1, 0
D. 非0, 0
正确答案是:非0, 0。
北理乐学c语言答案,

7.入门计算圆柱的侧面积及体积#include<>void main(){double a,b;scanf("%lf\n%lf",&a,&b);printf("s=%.2lf,v=%.2lf\n",2**a*b,*a*a*b); }1.Hello world.输入:无输出:Hello world.程序:#include<>int main(){printf("Hello world.\n");return 0;}2.Welcome to Beijing.程序:#include <>int main(){printf("Welcome\n");printf("to\n");printf("Beijing.\n");return 0;}3. 求A+B输入:整数1 整数2输出:整数1+整数2=和程序:#include<>int main(){int a,b;scanf("%d",&a);scanf("%d",&b);printf("%d+%d=%d\n",a,b,a+b);return 0;}4. 求 x 的 3次方输入:一个整数。
输出:该整数的 3 次方值。
程序:#include<>int main(){int x;scanf("%d",&x);printf("%d\n",x*x*x);return 0;}5. 学习打印你的第一个图形编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。
程序:#include<>int main(){printf(" *\n");printf(" ***\n");printf(" *****\n");printf("*******\n");return 0;}6. 一年级的算术题输入:接受两个整数,每个整数之间使用空格分隔。
北理工C语言超全上机答案(非信息类)

上机考试时间为60分钟,上机考题为3道。
第一题为简单的图形打印;第二题为简单数值计算(一般用穷举法就可以解决),第三题为相对复杂的数组/字符串处理。
上机考题选自以下题目。
#include <stdio.h>int main(){int i,j,n;scanf("%d",&n);外层i对行循环,i=n时先输出空格的行循环为for(i=1;i<=n;i++)若垂直反转则是 for(i=n;i>=1;i--)如:上下三角形,对称梯形,对称平行四边形。
内层 jk…对列循环。
先打印空格或者先打印星号,找规律换行在内层循环中【1.1】编程,输入n,输出如下例(n=6)所示的图形:* * * * * ** * * * * ** * * * * ** * * * * ** * * * * ** * * * * *程序:#include <stdio.h>int main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++) printf("*");printf("\n");}system("pause");}【1.2】编程,输入n,输出如下例(n=6)所示的图形:* * * * * ** * * * * ** * * * * ** * * * * ** * * * * ** * * * * *程序:#include <stdio.h>int main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}system("pause");}【1.3】编程,输入n,输出如下例(n=6)所示的高为n的等腰三角形。
北理工C语言学习知识编程网上课后复习规范标准答案

H1:计算通用产品代码(UPC)的校验位(选作)成绩: 5 / 折扣: 0.8背景许多年来,货物生产商都会把超市售卖的每件商品上放置一个条码。
这种被称为通用产品代码(Universal Product Code,缩写UPC)的条码可以识别生产商和产品。
超市可以通过扫描产品上的条码来确定支付此项商品的费用。
每一个条码由十二位数字构成,通常这些数字会显示在条码下面。
例如,包装为26盎司的Morton牌碘化盐所用条码下的数字是:0 24600 01003 0第一个数字表示商品的种类(0表示大部分的食品杂货,2表示需要称量的货品,3表示药品或和健康相关的商品,而5表示优惠券)。
接下来的一组五位数字用来识别生产商。
而第二组五位数字则用来区分产品类型(其中包括包装尺寸)。
最后一位数字是“校验位”,它可以帮助鉴别先前数字中的错误。
如果条码扫描出现错误,那么前十一位数字和最后一位数字可能会不一致,而超市扫描机也会拒绝整个条码。
下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。
然后把第二位、第四位、第六位、第八位和第十位数字相加。
接着把第一次加法结果乘以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的校验位提示本题有隐藏测试用例。
如果想多找不同的实例验证你的算法,可以拿身边书或食品背后的条码测试一下。
1.#include<stdio.h>2.main()3.{4.int a,b,c;5.int b1,b2,b3,b4,b5;6.int c1,c2,c3,c4,c5;7.int d1,d2,d3,d4;8.scanf("%d\n%d\n%d",&a,&b,&c);9.b1=b/10000,b2=(b/1000)%10,b3=(b/100)%10,b4=(b/10)%10,b5=b%10;10.c1=c/10000,c2=(c/1000)%10,c3=(c/100)%10,c4=(c/10)%10,c5=c%10;11.d1=a+b2+b4+c1+c3+c5,d2=b1+b3+b5+c2+c4,d3=(3*d1+d2-1)%10,d4=9-d3;12.p rintf("%d\n",d4);13.}H2:数制转换(选作)成绩: 5 / 折扣: 0.8我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。
北理工《C语言程序设计》期末考试精选题汇总【含答案解析】69

《C语言程序设计》复习提纲第1章程序设计基础知识1.1 程序与程序语言1.2 算法和算法的表示1.3 结构化程序设计方法第2章 C 语言概述2.3 C 语言的基本组成2.4 C 程序的上机执行过程第3章数据类型与运算规则3.1 数据与数据类型3.2 C 语言的基本数据类型及其表示3.3 算术运算与赋值运算3.4 关系运算与逻辑运算3.5 位运算3.6 其它运算3.7 混合运算及数据类型转换第4章顺序结构的程序设计4.1 C 语句4.2 赋值语句4.3 数据输入4.4 数据输入第5章选择结构的程序设计5.1 用 if 语句设计选择结构程序5.2 用 switch 语句设计多分支结构程序第6章循环结构的程序设计6.1 循环的基本概念6.2 用 while 语句设计循环结构程序6.3 用 do-while 语句设计循环结构程序6.4 用 for 语句设计循环结构程序6.5 break 语句与 continue 语句6.6 几种循环语句的比较6.7 循环的嵌套第7章数组7.1 数组的基本概念7.2 一维数组7.3 一维字符数组7.4 字符串处理函数7.5 二维数组7.6 二维字符数组第8章函数8.1 C 程序的结构8.2 函数的定义8.3 函数的调用与返回8.4 在函数之间传递数据8.5 变量的存储属性8.6 函数的递归调用8.7 库函数简介第9章指针9.1 指针及其引用9.2 指针与函数9.3 数组与指针9.4 指针与字符串9.5 指针数组第10章结构、联合与枚举类型10.1 结构类型10.2 结构数组10.3 结构指针10.5 联合类型10.6 枚举类型第11章文件11.1 文件概念11.2 文件处理。
北理工《C语言程序设计教程(第二版)》李凤霞主编李书涛主审版习题答案

main()
{int x,y;
scanf("%d",&x);
if(x<10) if(x>=5)y=x+1;
else if(x>=0)y=x-1;
else if(x>-5)y=x;
main()
{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */
printf("cock hen chick\n");
for(i=1;i<=20;i++)
for(j=1;j<=33;j++)
for(k=1;k<=33;k++)
{int a[]={-10,0,15,34},i;
for(i=0;i<=3;i++)
printf("%d\370C=%g\370F\t",a[i],a[i]*1.8+32);}
执行结果:
-10℃=14°F 0℃=32°F 15℃=59°F 34℃=93.2°F
4.源程序:
=-200
j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf("%lf%lf%lf",&a,&b,&c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。)
北理乐学C语言问题详解,新颖

7.入门计算圆柱的侧面积及体积#include<stdio.h>void main(){double a,b;scanf("%lf\n%lf",&a,&b);printf("s=%.2lf,v=%.2lf\n",2*3.14*a*b,3.14*a*a*b); }1.Hello world.输入:无输出:Hello world.程序:#include<stdio.h>int main(){printf("Hello world.\n");return 0;}2.Welcome to Beijing.程序:#include <stdio.h>int main(){printf("Welcome\n");printf("to\n");printf("Beijing.\n");return 0;}3. 求A+B输入:整数1 整数2输出:整数1+整数2=和程序:#include<stdio.h>int main(){int a,b;scanf("%d",&a);scanf("%d",&b);printf("%d+%d=%d\n",a,b,a+b);return 0;}4. 求 x 的 3次方输入:一个整数。
输出:该整数的 3 次方值。
程序:#include<stdio.h>int main(){int x;scanf("%d",&x);printf("%d\n",x*x*x);return 0;}5. 学习打印你的第一个图形编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。
程序:#include<stdio.h>int main(){printf(" *\n");printf(" ***\n");printf(" *****\n");printf("*******\n");return 0;}6. 一年级的算术题输入:接受两个整数,每个整数之间使用空格分隔。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.入门计算圆柱的侧面积及体积#in clude<stdio.h>voidmai n(){doublea,b;sca nf("%lf\n %lf", &a,& b);prin tf("s=%.2lf,v=%.2lf\n",2G3.14GaGb,3.14GaGaGb);}I. Helloworld.输入:无输出:Helloworld.MS环③期待的输出⑦时间眼制③内存限制③額外艇⑦以文本方式显示1.丄以文本方式显示1. Hello world.测试用例164M程序:#i nclude<stdio.h> in tmai n(){prin tf("Helloworld.\n"); return。
;}2. WelcometoBeijing.期待的输出③时间眼制⑦墉限制⑦樹卜鱷②测试用例1以文苯方式显示1.」以文車方式显示Welcomed2. to-l3, Beijing.1秒256KB0程序:#in clude<stdio.h> in tmai n(){prin tf("Welcome\n"); prin tf("to\n");prin tf("Beiji ng.\n"); return。
;}3■求A+B输入:整数1整数2 输出:整数1 +整数2=和[则诵俞人®期待的输岀②时间眼制⑦ 内存限制®额外龌®叹文本方式显示1. 19_12. 22以文本方式显示1. 10+20=30*J测试用例1无限制64 M0程序:#i nclude<stdio.h>in tmai n(){in ta,b;scan f("%d",&a);scan f("%d",&b);prin tf("%d+%d=%d\n",a,b,a+b); return。
;}4■求G的3次方输入:一个整数。
输出:该整数的3次方值。
殛输入②躺的输出②时间P艮制② 密限制② 融卜孵②以文本方式显示1. 2以文本方式显示1.右」例]无限制64M0程序:#i nclude<stdio.h> in tmai n(){intG;sea nf("%d",&G);prin tf("%d\n",GGGGG); return 。
; }5.学习打印你的第一个图形编写一个小程序,要求输出的是4行由G 号组成的等腰三角形。
躺的输出⑦时间限制⑦內存限制⑦额外艇②测试用例] 以文本方式显示1.」以文本方式显示1. 2 * 施:*_1 3 啤* *:璋审 4 * > * *: # * #1秒 64M程序:#i nclude<stdio.h>in tmai n(){prin tf("G\n"); prin tf("GGG\n"); prin tf("GGGGG\n"); prin tf("GGGGGGG\n"); return 。
; }6. 一年级的算术题输入:接受两个整数,每个整数之间使用空格分隔。
例如输入格式为:123444 输出:分别输出按照整型数据进行+、-、G 、/、G 之后的运行结果。
程序:#i nclude<stdio.h>in tmai n(){in ta,b;sea nf("%d%d",&a,&b);prin tf("%d+%d=%d\n",a,b,a+b); prin tf("%d-%d=%d\n",a,b,a-b); prin tf("%dG%d=%d\n",a,b,aGb);I以文本方式显示1. 16 3J测试用例1时间限制©内存限制®额外般 ®1孙64M 0叹文本方式显示期待的输出⑦prin tf("%d/%d=%d\n",a,b,a/b);prin tf("%d%%%d=%d\n",a,b,a%b); return。
;}7■求两个变量的最小值输入:两个整型数输出:两个整型值中的最小值A3)程序:#i nclude<stdio.h>in tmai n(){in ta,b;sca nf("%d%d",&a,&b);prin tf("mi n=%d\n",a<b?a:b);return。
;}&判断三角形的形状输入:三角型的3条边的长度(int型)。
输出:等边三角形:equilateraltriangle 等腰三角形:isocelestria ngle 不构成三角形:non-tria ngle 一般三角形:tria ngle程序:E问世期” 片存腹fM 工)也济理程丁以立*^卷三■戸1-22 J2+JE斗皿rrTGAFJInon-trlangie•・6^1 MTrr杏寿耳存tr-iDinele ■亠J&斗Ml#include<stdio.h>in tmai n(){in ta,b,c;sca nf("%d%d%d",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){if(a==b&&b==c&&a==c)prin tf("equilateraltria ngle.'n");elseif(a==b||a==c||b==c)prin tf("isocelestriangle.'n"); elseprin tf("tria ngle.'n");}elseprin tf(" non-tria ngle.'n");return。
;}9.计算圆柱的侧面积及体积输入:第一行输入圆柱的底面半径r第二行输入圆柱的高 h输出:s=<圆柱的侧面积>,v=<圆柱的体积> 要求1. 所有变量都定义为双精度类型2. 结果精确到小数点后两位测试输入②贻的输出②时间限刑⑦内荊删®杨卜艇②程序:#i nclude<stdio.h>#defin ePI3.1415926in tmai n(){ doubler,h,s,v;sca nf("%lf",&r);sca nf("%lf",&h); s=2GPIGrGh; v=PIGrGrGh;prin tf("s=%.2f,v=%.2f\n",s,v); return。
;}10■计算时钟的夹角钟面上的时针和分针之间的夹角总是在0〜180之间(包括0和180)。
举例来说,在十二点的时候两针之间的夹角为0,而在六点的时候夹角为180,在三点的时候为90。
本题要解决的是计算12:00到11:59之间任意一个时间的夹角。
输入:每组测试数据包含两个数字:第一个数字代表小时(大于0小于等于12),第二个数字代表分(在区间[0,59]上)。
输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。
输出格式如下所示。
测畴入®明待的输出⑦时间陶制⑦内存限制®额外进程⑦以文本方式显示以文本方式显示1, 12 e is 0.0 degrees^测试用例464M*以文本方式显示以文本方式显示1. 12 30J is 165degrees,—测试用例愛1#G4M1程序:#i nclude<stdio.h>#in clude<math.h>in tmai n(){in th,m;floatd1,d2,d;sca nf("%d%d",&h,&m);d仁30G(h+m60.0);d2=mG360/60.0;d=fabs(d1-d2);if(d>180)d=360-d;prin tf("At%d:%dthea ngleis%.1fdegrees.\n",h,m,d);return。
;}11.找出最大素数素数是指一个只能被1和它本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。
输入:取值范围程序:#i nclude<stdio.h>in tma in(){intn,i,j;sca nf("%d",&n); for(i=n;i>=1;i--) {for(j=2;j<i;j++) if(i%j==0) break;if(j==i){prin tf("ThemaGprime nu mberis%d.\n",i);break;}}}12.求最后3位数值输入:a和n的值。
假设a<=150。
输出:求a的n次方的最后3位数。
期待的输出③ 时冃眼制母内存眼制⑦甑外谴程亿安立土万式品示ie鬥一则诫用洌164Min64M64Mirr程序:#in clude<stdio.h>in tma in() {longin ts=1;in ta, n,i=1,t=1;scan f("%d%d",&a,&n);if(n==0)prin tf("Thelast3 numbersis1.\n");else{for(i=1;i<=n ;i++){s=(sGa)%1000;}t=s%1000;if(t>=0&&t<10)pri ntf("Thelast3 nu mbersis00%d.\n",t);if(t>=10&&t<100) prin tf("Thelast3 numbersis0%d.\n",t);if(t>=100&&t<1000) printf("Thelast3numbersis%d.\n",t);}return。
;}13■贪吃的猴子有一只猴子,第一天摘了若干个桃子,当即吃了一半,但还觉得不过瘾,就又多吃了一个。