C语言第5次作业 简单程序设计
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语言程序设计第五次作业——循环结构(1)

C语⾔程序设计第五次作业——循环结构(1)(⼀)改错题输出华⽒摄⽒温度转换表:输⼊两个整数lower和upper,输出⼀张华⽒摄⽒温度转换表,华⽒温度的取值范围是{lower,upper},每次增加2℉。
计算公式如下:c = 5×(f-32)/9其中,c表⽰摄⽒温度,f表⽰华⽒温度。
输⼊输出样例1: Enter lower:32 Enter upper:35 fahr celsius 32 0.0 34 1.1输⼊输出样例2: Enter lower:40 Enter upper:30 fahr celsius源程序(有错误的程序)#include <stdio.h>int main(void){int fahr , lower, upper; /* fahr表⽰华⽒度 */double celsius; /* celsius表⽰摄⽒度 */printf("Enter lower:");scanf("%d",&lower);printf("Enter upper:");scanf("%d",&upper);printf("fahr celsius\n"); /* 显⽰表头 *//* 温度转换 */for (fahr = lower , fahr <= upper, fahr ++) ;celsius = 5 /9 * (fahr - 32.0);printf("%3.0f %6.1f\n", fahr, celsius);return 0;}对源程序进⾏编译,结果如下:错误信息1:错误原因:for语句后⾯加了分号。
改正⽅法:将分号去掉。
错误信息2:错误原因:for语句下没有加“{}“改正⽅法:在for语句下加上“{}”错误信息3:错误原因:发现for语句内语句⽤逗号隔开了。
c程序设计作业(5)[修改版]
![c程序设计作业(5)[修改版]](https://img.taocdn.com/s3/m/738d45ed650e52ea541898c4.png)
第一篇:c程序设计作业(5)1、分析下面程序:# include int main() { char c1,c2;c1=97;c2=98;printf("c1=%c,c2=%c\n"c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return 0; } (1)运行时会输出什么信息?为什么?(2)如果将程序第4,5行改为c1=197; c2=198; 运行时会输出什么信息?为什么?(3)如果将程序第3行改为int c1,c2; 运行时会输出什么信息?为什么?答:(1)程序运行不了,因为程序存在错误。
正确的程序为:#include int main() {char c1,c2;c1=97;c2=98;printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return 0; }(2)如果将程序第4,5行改为c1=197; c2=198;运行时会输出:(3)如果将程序第3行改为int c1,c2; 运行时会输出:因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=982、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
问在键盘上如何输入?#include int main() {int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&a,&y);scanf("%c%c",&c1,&c2);return 0; } 答:输入如图:输出如图:第二篇:C程序设计课程作业(4分)C语言是解释性语言纠错得分:0知识点:C语言概述收起解析答案错误解析C语言程序设计/C语言概述(4分)C语言程序中,一个文件中的函数可以引用另一个文件中的函数和变量纠错知识点:文件收起解析答案正确解析C语言程序设计/文件(4分)下面是对s的初始化,其中不正确的是( ) A. char s[5]={'abc'} B. char s[5]={'a','b','c'} C. char s[5]=''D. char s[5]='abcde'纠错得分:0知识点:数组收起解析答案D解析C语言程序设计/数组/字符数组初始化(4分)函数ftell的作用是( ) A. 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示B. 取得当前文件指针的位置,该位置为相对于文件末尾的位移量表示C. 出错时返回值为0D. 以上叙述都不正确纠错得分:0知识点:文件收起解析答案A解析C语言程序设计/文件/文件的定位(4分)表达式a A. &,纠错知识点:位运算收起解析答案D解析C语言程序设计/位运算/位运算符优先级(4分)若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( ) A. scanf('%d%lx,%le',&x,&y,&z) B. scanf('%2d*%d%lf',&x,&y,&z) C. scanf('%x%*d%o',&x,&y)D. scanf('%x%o%6.2f',&x,&y,&z)纠错得分:0知识点:顺序程序设计收起解析答案D解析C语言程序设计/顺序程序设计/整型和实型数据的格式输入(4分)写出下面程序的输出结果( )main(){intx;x=-3+4*5-6;printf('%d',x);x=3+4%5-6;printf('%d',x);x=-3*4%6/5;printf('%d',x);x=(7+6)%5/2;printf('%d',x);}A. 11 1 0 1B. 11 -3 2 1C. 12 -3 2 1D. 11 1 2 1纠错得分:0知识点:顺序程序设计收起解析答案A解析C语言程序设计/顺序程序设计/整型变量的输出格式综合(4分)C语言中while和do while循环的主要区别是( ) A. do-while的循环至少无条件执行一次B. while循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转入到循环体内D. do-while的循环体不能是复合语句纠错得分:0知识点:循环程序设计收起解析答案A解析C语言程序设计/循环程序设计/while语句与do-while语句(4分)C语言规定,函数返回值的类型是由( )所决定。
大连理工c语言第五次上机作业参考答案

第五次上机作业:(请用指针实现)1.数据移位有n(n<=10)个整数,使前面各数顺序向后移m(m<=n)个位置,最后m 个数变成最前面的m个数,如图所示。
编写函数shift(a,n,m)实现上述功能,在主函数中输入n个整数和输出调整后的n个数。
SAMPLE OUTPUTnInput n(n<=10):10Input 10 integers:Output the original:Output the shifted:#include <>#define N 10void shift(int a[ ],int n,int m);void main( ){ int i,n,m;int a[N];printf("Input n(n<=10):");scanf("%d",&n);printf("Input %d integers:\n",n);for(i=0;i<n;i++)scanf("%d",a+i);printf("Output the original:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");printf("Input m(m<=%d):",n);scanf("%d",&m);shift(a,n,m);printf("Output the shifted:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");}void shift(int a[ ],int n,int m){ int i,j,t;for(i=0;i<m;i++){ t=a[n-1];for(j=n-2;j>=0;j--)a[j+1]=a[j];a[0]=t;}}2.字符串排序在主函数中输入10个不等长的字符串放入二维字符数组中,编写函数sort()利用指针数组对其排序,在主函数中输出排好序的字符串。
C语言实验五最简单的C语言程序设计

C语⾔实验五最简单的C语⾔程序设计实验5:最简单的C语⾔程序设计⼀、实验⽬的:(1)掌握C语⾔中使⽤最多的⼀种语句——赋值语句的使⽤⽅法。
(2)掌握各种类型数据的输⼊输出的⽅法,能正确使⽤各种格式转换符。
(3)进⼀步掌握编写程序和调试程序的⽅法。
⼆、实验内容和步骤:1、通过下⾯的程序掌握各种格式转换符的正确使⽤⽅法。
(1)输⼊以下程序:/* Note:Your choice is C IDE */# includeint main( ){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61,b=62;c1='a';c2='b';d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d\np=%u,q=%u\n",f,g,m,n,p,q);显⽰结果:(2)运⾏此程序并分析结果。
(3)在此基础上,将程序第10~14⾏改为c1=a,c2=b;f=3157.890121;g=0.123456789;d=f;e=g;运⾏程序,分析结果。
/* Note:Your choice is C IDE */#include"stdio.h"int main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61;b=62;c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q);}显⽰结果:(4)⽤sizeof运算符分别检测程序中各类型的数据占多少字节。
c语言程序设计第五版习题答案解析

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2(3(4语句、for(5作。
(6231{2{inta1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。
#include<stdio.h>main(){printf("******\n");printf("*****\n");printf("****\n");printf("***\n");printf("**\n");printf("*\n");}【解答】运行结果为:****************1{}第2章数据类型及其运算一.简答题1.C语言中的数据类型主要有哪几类?【解答】短整型(shortint)整型整型(int)长整型(longint)基本类型字符型(char)单精度(float)实型(浮点型)双精度(double)枚举类型(enum)数组类型构造类型结构体类型(struct)共用体类型(union)指针类型空类型(void)2.字符常量与字符串常量有什么区别?【解答】字符常量用单括号括起,字符串常量用双括号括起;字符常量存储时占1个字节,字符串常量存储时除了n个字符外,还有系统加上的字符串终止符\0,所以字符串常量存储时占n+1个字节。
3.C语言中的常量包括哪几类?各自是如何构成的?C语言中的,4量的指针所以,512308926(1(4(7(1(2错误。
C语言中表示类型名的关键字必须小写。
改正为:inta,b;floatx,y;(3)a,b:char;错误。
C语言中变量定义格式为:类型名变量名;改正为:chara,b;(4)charif;错误。
C语言第5章循环结构程序设计1

(2)在循环体中应有使循环趋向于结束的语句。 比如上例中,循环结束的条件是“score>=0”, 那么当我们把这个班的成绩全部输入完后, 一定要输入一个负数,才能使程序往下执行。 (3)循环体语句有可能一次也不执行。比如说上 例中,当第一次输入的分数就为负数时,则 循环体一次也不执行。
§5.3 do …while语句
① ② ④ ③
for(i=1; i<100; i++) s=s+i; printf(″s=%d″, s); }
/*循环体语句*/
对于for循环,有一点非常重要,即条件测 试永远是在循环开始时进行,如果在循环开 始时条件为假,那么循环体语句就不会被执 行。如: int i=10; for (k=10;k!=i;k++) printf(″%d″,k); printf(″%d″,k);
2、循环控制变量必须在循环体内有所改变,才 能使while和do-while语句的循环控制条件表达 式的值不断改变,直至循环结束。否则会造 成死循环。例如: i=1; while(i<=100) putchar(′*′); i++; 这个循环永远不会结束,因为“i++;”语句 不属于循环体中的语句,循环控制变量i没有 在循环体内被改变。 程序应该作如下改变:
在使用while语句的时候,我们要注意以下 两个问题: (1)循环体如果包含一个以上的语句,应该用花 括号括起来,以复合语句的形式出现。如果 不加花括号,则while语句的范围只到while后 面的第一个分号处。比如上例中,while语句 中如无花括号,则while语句范围只到 “average+=score;”。
#include <stdio.h> main() {int i,n;long fac; Scanf(―%d‖,&n); i=1 while (i<=n) fac=fac*i; i++; } Printf(―%d!=%ld‖,n,fac); }
5~6次C语言上机作业

实验5 函数(1)【实验题5-1】以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上。
调试运行程序,观察出现了什么错误,提出两种修改方案。
【实验题5-2】下程序的功能:输出3~1000之的间的素数。
请选择合适的内容填入程序的空白处,并调试运行程序。
【实验题5-3】从键盘输入一个整数n,计算n^3,并将结果输出在屏幕上。
要求计算n^3用函数实现。
【实验题5-4】从键盘输入一个整数n,计算2n+1与++n之和。
要求计算两数之和用函数实现。
注意写计算表达式的时候3*n之间的乘号不要丢掉,否则会提示:invalid suffix “n” on integer constant.调用用户自定义函数是只写ifun=fun(n); 就可以了,不要在括号里加上int。
Ifun=fun(int n) ×【实验题5-5】编写程序,计算Cmn=n!/(n-m)!m!。
要求如下:1)编写一个函数计算n!;2)编写主函数,输入n和m, 调用第1)项中的函数完成计算;3)输出并计算C58、C712的结果。
【实验题6-1】以下程序功能:用已知三角形三边,求三角形面积。
但程序有错,请上机调试并改正错误。
【实验题6-2】以下程序运行的结果应该是a=14, b=15,temp=0。
在程序空白处填写适当的编译预处理命令。
【实验题6-3】用for循环输出20个0~99之间的随机数。
要求没输出五个随机数换一行。
【实验题6-4】从键盘输入一个字母,如果是大写字母就转换成小写字母输出;如果是小写字母就转换成大写字母输出。
要求用库函数实现。
【实验题6-6】调试运行以下程序,掌握内部函数和外部函数的使用。
该程序包括两个源程序文件“6_6_1.C”和“6_6_2.C”。
#include<stdio.h>#define N 9void main(){int itop,ibottom,iresearch,imiddle;int iA[N]={0,1,2,3,4,5,6,7,8};scanf("%d", &iresearch);itop=0;ibottom=N-1;while(itop<=ibottom){imiddle=(itop+ibottom)/2 ;if(iresearch<iA[imiddle])ibottom=imiddle-1;elseif (iresearch>iA[imiddle])itop=imiddle+1;else{printf("\n元素%d在数组中,下标是%d\n, iresearch,imiddle");return;}}printf("\n%d在数组中未找到\n",iresearch);}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单选题:1、以下程序段的输出结果是int a=1234;printf("%2d\n",a);A.12B.34C.1234D.提示出错、无结果学生答案: C参考答案: C2、若有说明语句:int a,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A.scanf("%d%d%d",&a,&b,*d);B.scanf("%d%d%d",&a,&b,&d);C.scanf("%d%d%d",a,b,d);D.scanf("%d%d%d",a,b,*d);学生答案: B参考答案: A3、以下合法的赋值语句是A.x=y=100B.d--;C.x+y;D.c=int(a+b);学生答案: D参考答案: B4、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是printf("%d,%d\n",x--,--y);A.10,3B.9,3C.9,2D.10,2学生答案: D参考答案: D5、以下程序的输出结果是main(){ int a=3;printf("%d\n",(a+=a-=a*a));}}A.-6B.12C.0D.-12学生答案: D参考答案: D6、以下程序段的输出结果是char s[]="\\141\141abc\t";printf ("%d\n",strlen(s));A.9B.12C.13D.14学生答案: A参考答案: A7、下列程序执行后的输出结果是main(){ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }A.GB.HC.ID.J学生答案: A参考答案: A8、下列程序执行后的输出结果是main(){ char x=0xFFFF; printf("%d \n",x--); }A.-32767B.FFFEC.-108D.-32768学生答案:参考答案: C9、请读程序int i =65536printf("%d\n",i);上面程序的输出结果是_____A.65535B.0C.有语法错误,无输出结果D.1学生答案: A参考答案: B10、以下定义和语句:char cl='b',c2='e';printf(″%d,%c\n″,c2-c1,c2-'a'+'A');则输出结果是:A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定学生答案: B参考答案: B11、以下程序的输出结果是main( ){ int a=12,b=12;printf("%d%d\n",--a,++b);}A.10 10B.12 12C.11 10D.11 13学生答案: D参考答案: D12、以下程序的输出结果是_____main(){char str[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}A.6B.7C.11D.12学生答案: C参考答案: A13、语句:printf("%d \n",12&&12);的输出结果是________.A.12B.1C.24D.0学生答案: B参考答案: B14、以下程序的输出结果是main( ){ int k=17;printf("%d,%o,%x \n",k,k,k);}A.17,021,0x11B.17,17,17C.17,0x11,021D.17,21,11学生答案: D参考答案: D15、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是A.c=b=a;B.(a=c)‖(b=c);C.(a=c)&&(b=c);D.a=c=b;学生答案: C参考答案: C16、执行下列程序段float f;int i;scanf("%3d%4d%f",&i,&f);输入为12345678765.43,则赋值结果为();A.i=123,f=45678765.43B.i=123,f=4.567876543e+7C.i=123,f=8765.43D.i=12345678765;f=0.43学生答案: B参考答案: C17、下面程序的输出是main(){int a=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d%d%d%\n",k,a,b);}A.0 0 3B.0 1 2C. 1 0 3D. 1 1 2学生答案: C参考答案: C18、若有以下定义和语句:char s1[]=″12345″, s2[]=″1234″; printf(″%d\n″,strlen(strcpy(s1,s2))); 则输出结果是A.4B.5C.9D.10学生答案:参考答案: A19、执行下面程序中输出语句后,a的值是main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A.65B.20C.15D.10学生答案: B参考答案: B20、下面程序的输出是main(){int a=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d%d%d%\n",k,a,b);}A.0 0 3B.0 1 2C. 1 0 3D. 1 1 2学生答案: C参考答案: C21、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是A.1B.0C.4D.3学生答案: D参考答案: D22、以下程序的输出结果是__main(){ int x=10 ,y=10;printf("%d%d\n",x--,--y);}A.10,10B.9,9C.9,10D.10,9学生答案: D参考答案: D23、读下列程序:#includemain(){float a,b,t;scanf(”%f,%f”,&a,&b);if(a>b)t=a;a=b;b=t;}prinff(”%5.2f,%5.2f'’,a,b);}运行时从键盘输入3.8和-3.4,则正确的输出结果是( )。
A.-3.40,-3.80B.-3.40,3.80C.-3.4,3.8D. 3.80,-3.40学生答案: B参考答案: B24、以下程序的输出结果是( )。
#includemain(){int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(”%d%d%d\n”,k,a,b);}A.104B.103C.003D.004学生答案: D参考答案: D25、假定所有变量均已正确说明,下列程序段运行后x的值是( )。
a=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4:A.34B.4C.35D.3学生答案: B参考答案: B多选题:判断题:填空题:1、若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是 _____________ 。
...char a[10],b;scanf("a=%s b=%c",&a,&b);printf("%s,%c\n",a,b);...学生答案:参考答案: a=1234 b=52、标准库函数_________在屏幕上显示信息。
学生答案:参考答案: printf3、main( ){char st='A';int i=10; st=st+i;i=st%i;printf("%C,%d\n",st,i);}已知字母A的ASCII码为65结果:____学生答案:参考答案: K,54、以下程序的输出结果是_______ 。
main(){ int a=177;printf("%o\n",a);}学生答案:参考答案: 2615、以下程序输出的结果是__________ 。
main(){ int a=5,b=4,c=3,d;d=(a > b > c);printf("%d\n",d);}学生答案:参考答案: 06、以下程序段的输出结果是____________。
﹟include﹤stdio.h﹥void main(){int a=0234;printf("%-3d,%-6d,*%-06d,*%06d,%%06d﹨n",a,a,a,a,a);}学生答案:参考答案: 156,*156 ,*000156,%06d7、使用强制转换方法将正整数转换成字符。
本题程序如下:﹟include ﹤ stdio.h ﹥void main(){char c;int I;scanf("%d",&I);c=("%c的ASCII码为%d﹨n",c,I);}本程序的执行结果为___________。
学生答案:参考答案: a的ASCII码为978、以下程序不用第三个变量,实现将两个数进行对调操作:#includemain(){ int a , b ;scanf ("%d%d" , &a , &b);printf("a=%d b=%d\n" , a , b );a=(__________); b=(________); a=(_________);printf("a=%d b=%d\n",a,b);}学生答案:参考答案: a+b,a-b,a-b9、当a=l,b=2,c=3时,以下语句执行后a、b、c中的值分别为——、——、——。
if(a>c)b=a;a=c;c=b;学生答案:参考答案: 3 2 210、若从键盘输入58,则以下程序输出的结果是——。