北京理工大学C语言网络教室编程练习题答案
网络教室c语言参考答案(21至4-9)

2-1. 整型数的表示范围成绩: 10 / 折扣: 0.8编写一个循环程序,输入N 值,输出N 的阶乘。
关于循环程序怎么编写,可以参考教材第六章P123的内容。
注意整型数的表示范围,如果当输入的N 比较大时,例如N 等于20 时,输出怎么是负数了?自己想明白吧!测试输入期待的输出时间限制内存限制额外进程测试用例 1 以文本方式显示1.5↵以文本方式显示1.120↵1秒64M 0测试用例 4 以文本方式显示1.12↵以文本方式显示1.479001600↵1秒64M 0测试用例 2 以文本方式显示1.20↵以文本方式显示1.N is too big!↵1秒64M 01.#include <stdio.h>2.main()3.{4.int i,N,k;5. scanf("%d",&N);6.for(i=k=1;i<=N;i++)7. k*=i;8.if(k>0)9. printf("%d\n",k);10.else11. printf("N is too big!\n");12. system("pause");13.}2-2. 打印N形图形成绩: 10 / 折扣: 0.8编程,输入n值,输出下例(n=4)所示的图形:* * ** * * ** * *输入:图形的高n输出: 高为 n 的N 形图形测试输入期待的输出时间限制内存限制额外进程测试用例1以文本方式显示1. 4↵以文本方式显示1. * *↵2. ** *↵3. * **↵4. * *↵1秒 64M 01. #include <stdio.h>2. main()3. {4. int n,i,j;5. scanf("%d",&n);6. for (i=1;i<=n;i++)7. {for (j=1;j<=n;j++)8. printf("%s",j==1||j==n||j==i?"*":" "); 9. printf("\n"); 10. } 11. }2-3. 打印X形图形成绩: 10 / 折扣: 0.8输入 n 值,输出下例(n=3)所示的图形: * * * * * * * * *输入: 图形的高 n 输出: 高为 n 的X 形图形测试输入期待的输出时间限制 内存限制 额外进程测试用例 1以文本方式显示1. 4↵ 以文本方式显示1. * *↵1秒64M2. * *↵3. * *↵4. *↵5. * *↵6. * *↵7.* *↵1.#include <stdio.h>2.main()3.{4.int i,n,j;5. scanf("%d",&n);6.for(i=1;i<=2*n-1;i++)7. {8.for(j=1;j<=2*n-i||j<=i;j++)9. printf("%s",j==i||j==2*n-i?"*":" ");10. printf("\n");11. }12.}2-4. 判断输入的字符的类型成绩: 10 / 折扣: 0.8我们将字符分为五类:大写字母、小写字母、数字、控制字符、其他字符。
北京理工大学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语言程序设计下mooc答案

—06.30北京理工大学M O O C C语言程序设计(下)网上作业答案第一周编程作业1、求最大公约数和最小公倍数(15分)题目内容:编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别求 a 和 b 的最大公约数和最小公倍数,在主函数中输出结果。
输入格式:两个正整数输出格式:最大公约数和最小公倍数输入样例:12,40[回车]输出样例:最大公约数:4[回车]最小公倍数:120[回车]时间限制:500ms内存限制:32000kbCode:#include <stdio.h>int fun1(int m,int n){int r;r=m%n;return r==0?n:fun1(n,r);}int fun2(int m,int n){int t;t=m*n/fun1(m,n);return t;}int main(){ int t,m,n;scanf("%d,%d",&m,&n);if(m<n){t=m;m=n;n=t;}printf("最大公约数:%d\n",fun1(m,n));printf("最小公倍数:%d\n",fun2(m,n));return 0;}2、排序并插入(15分)题目内容:编写程序,在主函数中定义一个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出。
输入格式:9个整数和1个整数输出格式:10个整数输入样例:2,3,1,5,6,76,89,31,90[回车]7[回车]输出样例:1,2,3,5,6,7,31,76,89,90[回车]时间限制:500ms内存限制:32000kb Code:#include <stdio.h>int main(){int t,j,i,n[10];for(i=0; i<9; i++){scanf("%d", &n[i]);if(i<8) scanf(",");}scanf("%d",&n[9]) ;for(i=0;i<9;i++){for(j=0;j<= 8-i;j++){if(n[j] > n[j+1]){t = n[j];n[j] = n[j+1];n[j+1] = t;}}}for(i=0;i<10;i++){printf("%d",n[i]);if(i<9) printf(",");}return 0;}第二周编程作业1、最大公约数(15分)题目内容:输入两个整数m,n,用递归算法实现计算两个数的最大公约数。
北理工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语言程序设计》在线作业_2

北理工《C语言程序设计》在线作业试卷总分:100 测试时间:-- 试卷得分:100一、单选题(共40 道试题,共80 分。
)得分:801. 下列程序执行的结果是()。
A=1;b=2;c=3;While(b<a<c){t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);A. 1,2,0B. 2,1,0C. 1,2,1D. 2,1,1正确答案:B 满分:2 分得分:22. 已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a的值为()。
A. 0B. 1C. 4D. 5正确答案:B 满分:2 分得分:23. 若有char a[80],b[80];则正确的是()。
A. puts(a,b);B. printf(“%s,%s”a[ ],b[ ]);C. putchar(a,b);D. puts(a);puts(b);正确答案:D 满分:2 分得分:24. 在以下对C语言的描述中,正确的是()。
A. 在C语言中调用函数时,只能将实参数的值传递给形参,形参的值不能传递给实参B. C语言函数既可以嵌套定义又可以递归调用C. 函数必须有返回值,否则不能使用函数D. C语言程序中有定义关系的所有函数都必须放在同一源文件中正确答案:A 满分:2 分得分:25. C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是()。
A. 地址传递B. 值传递C. 由实参传给形参,并由形参传回给实参D. 由用户指定传递方式正确答案:B 满分:2 分得分:26. 执行以下程序段后,c3的值是()。
int c1=1,c2=2,c3; c3=c1/c2;A. 0B. 1/2C. 0.5D. 1正确答案:D 满分:2 分得分:27. C语言结构类型变量在程序执行期间()。
A. 所有成员一直驻留在内存中B. 只有一个成员驻留在内存中C. 部分成员驻留在内存中。
北理工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语言网络教室所有题加答案

1.Hello world.让我们用C语言向世界问好。
最早的程序基本是这个样子的:程序一:#include <stdio.h>void main(){printf("Hello world.\n"); }程序二:#include <stdio.h>int main(){printf("Hello world.\n"); return0;}#include<stdio.h>void main(){printf("Hello world.\n");}2.Welcome to Beijing.让我们来练习如何显示多行文字。
#include<stdio.h>void main(){printf("Welcome\n");printf("to\n");printf("Beijing.\n");}3.求A+B输入两个整数,求它们的和.#include<stdio.h>void main(){int a,b;int sum;scanf("%d\n%d",&a,&b);sum=a+b;printf("%d+%d=%d\n",a,b,sum);}4.求x 的3次方输入:一个整数。
输出:该整数的3 次方值。
#include<stdio.h>void main(){int x;int s;scanf("%d\n",&x);s=x*x*x;printf("%d\n",s);}5.学习打印你的第一个图形背景:我们已经学习了printf函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的4*4的正方形。
程序如下:#include <stdio.h>void main(){printf("****\n");printf("****\n");printf("****\n");printf("****\n");}要求:按照上面的程序范例,编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。
mooc北京理工大学c语言答案

printf("%d\n",m-1);return 0;}
第六周
for(i=1,s=0;(s=s+i*i)<=1000;n=i++)
循环执行4次
5
x=4
1.600000
① m=n ② m>0 ③ m=m/10
{
for(x = 0; x < n; x++)
{
scanf("%d",&i[y][x]);
}
}
//将每行的最大值放入每行的最后;
for(y = 0; y < m; y++)
{
temp = 0;
for(x = 0; x < n; x++)
{
printf("%d ",k);m+=1;}
printf("\ncounter=%d\n",m); m=0;}}}
(3)
#include<stdio.h>
int main(){int m,n,s=0;scanf("%d",&n);
else printf("%d\n",sum);
}
return 0;
}
第七周
(1)
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计网络课堂习题(1-56题)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. 一年级的算术题输入:接受两个整数,每个整数之间使用空格分隔。
例如输入格式为:123 444 输出:分别输出按照整型数据进行+、-、*、/、* 之后的运行结果。
程序:#include<stdio.h>int main(){int a,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);return 0;}7. 求两个变量的最小值输入:两个整型数输出:两个整型值中的最小值程序:#include<stdio.h>int main(){int a,b;scanf("%d%d",&a,&b);printf("min=%d\n",a<b?a:b);return 0;}8. 判断三角形的形状输入:三角型的3条边的长度(int型)。
输出:等边三角形:equilateral triangle等腰三角形:isoceles triangle不构成三角形:non-triangle一般三角形:triangle程序:#include<stdio.h>int main(){int a,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("equilateral triangle.\n");else if(a==b||a==c||b==c)printf("isoceles triangle.\n");elseprintf("triangle.\n");}elseprintf("non-triangle.\n");return 0;}9. 计算圆柱的侧面积及体积输入:第一行输入圆柱的底面半径r 第二行输入圆柱的高h输出:s=< 圆柱的侧面积>,v=< 圆柱的体积>要求1. 所有变量都定义为双精度类型2. 结果精确到小数点后两位程序:#include<stdio.h>#define PI 3.1415926int main(){double r,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);return 0;}10. 计算时钟的夹角背景:钟面上的时针和分针之间的夹角总是在0 ~180之间( 包括0 和180 ) 。
举例来说,在十二点的时候两针之间的夹角为0 ,而在六点的时候夹角为180 ,在三点的时候为90 。
本题要解决的是计算12:00 到11:59 之间任意一个时间的夹角。
输入:每组测试数据包含两个数字:第一个数字代表小时( 大于0 小于等于12) ,第二个数字代表分( 在区间[0, 59] 上) 。
输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。
输出格式如下所示。
程序:#include<stdio.h>#include<math.h>int main(){int h,m;float d1,d2,d;scanf("%d%d",&h,&m);d1=30*(h+m/60.0);d2=m*360/60.0;d=fabs(d1-d2);if(d>180)d=360-d;printf("At %d:%d the angle is %.1f degrees.\n",h,m,d);return 0;}11. 找出最大素数素数是指一个只能被1和它本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。
输入:取值范围输出:该范围内的最大素数程序:#include<stdio.h>int main(){int n,i,j;scanf("%d",&n);for(i=n;i>=1;i--){ for(j=2;j<i;j++)if(i%j==0)break;if(j==i){printf("The max prime number is %d.\n",i);break;}}}12. 求最后3位数值输入:a 和n 的值。
假设a<=150 。
输出:求a 的n 次方的最后3 位数。
程序:#include<stdio.h>int main(){long int s=1;int a,n,i=1,t=1;scanf("%d%d",&a,&n);if(n==0)printf("The last 3 numbers is 1.\n");else{for(i=1;i<=n;i++){s=(s*a)%1000;}t=s%1000;if(t>=0&&t<10) printf("The last 3 numbers is 00%d.\n",t);if(t>=10&&t<100) printf("The last 3 numbers is 0%d.\n",t);if(t>=100&&t<1000) printf("The last 3 numbers is %d.\n",t);}return 0;}13. 贪吃的猴子有一只猴子,第一天摘了若干个桃子,当即吃了一半,但还觉得不过瘾,就又多吃了一个。
第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。
以后每天早上都吃了前一天剩下的一半加天数个(例如,第5天吃了前一天剩下的一般加5个)。
到第n天早上再想吃的时候,就只剩下一个桃子了。
输入:天数n输出:第一天的桃子个数程序:#include<stdio.h>int main(){int i,n,amount=1;scanf("%d",&n);for(i=n-1;i>=1;i--)amount=2*(amount+i);printf("The monkey got %d peachs in first day.\n",amount);}14. 黑色星期五在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。
所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”。
输入:年份输出:判断该年是否包含黑色星期五,如包含,给出具体日期程序:#include<stdio.h>int main(){int i,n=0,year,month[12]={0};int a[13]={0,13,44,73,104,134,165,195,226,257,287,318,348};int b[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;}}elseif((year-1+((year-1)/4)-((year-1)/100)+((year-1)/400)+b[i])%7==5){n++;month[n]=i;}}if(n==1){printf("There is %d Black Friday in year %d.\n",n,year);printf("It is:\n");printf("%d/%d/13\n",year,month[1]);}else{printf("There are %d Black Fridays in year %d.\n",n,year);printf("They are:\n");for (i=1;i<=n;i++){printf("%d/%d/13\n",year,month[i]);}}return 0;}15.你会输出一行星号?我们才开始上机,现在需要我们用最简单得办法,在一行中输出N个星号。