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)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);}。
C语言程序设计第五次实验报告
C语⾔程序设计第五次实验报告C程序设计实验报告实验项⽬:C语⾔程序设计第五次实验报告姓名:彭佳乐实验地点:家中实验时间:2020年4⽉21⽇⼀、实验⽬的与要求1、熟练地掌握函数的定义⽅法和调⽤规则。
2、掌握再 C语⾔程序种主调函数和被条⽤函数之间进⾏数据传递的规则。
3、了解函数的返回值及其类型,并正确使⽤它4、了解局部变量和全局变量的作⽤城及它们与存储分类的关系,理解变量的存在性和可见性的概念5、练习递归函数的使⽤⼆、实验内容6.3.1.1 已知三⾓形的三边,求⾯积6.3.1.2 求N的阶乘6.3.1.3 求两个整数的最⼤公约数6.3.1.4 打印出指定的图形6.3.2.1 求500以内的所有亲密数对6.3.3.1 编写计算x的y次幂的递归函数6.3.3.2 编写计算学⽣年龄的递归函数1、实验练习:6.3.1-1 已知三⾓形的三边,求⾯积(1)问题的简单描述:编写程序,从键盘输⼈三⾓形的3条边,调⽤三⾓形⾯积函数求出其⾯积,并输出结果。
(2)实验代码:#include<math.h>#include<stdio.h>float area(float a,float b,float c){float s,p,area;s=(a+b+c)/2;p=s(s-a)(s-b)*(s-c);area=sqrt(p);return(area);}main(){float a,b,c,ts;printf("请输⼊三⾓形的三条边a,b,c:\n");scanf("%f%f%f",&a,&b,&c);ts=area(a,b,c);if(a+b>c&&a+c>b&&b+c>a)printf("area=%f\n",ts);elseprintf("Data error!");}(3)问题分析:求三⾓形的⾯积采⽤的是浮点型,具有返回值,刚开始写成了调⽤函数后来发现不对将函数调⽤改成函数表达式带⼊程序可以正常运⾏2、实验练习:6.3.1-2 求N的阶乘(1)问题的简单描述:编写函数,求出从主调函数传来的数值i的阶乘值,然后将其传回主调函数并输出(2)实验代码:#include<stdio.h>#define N 5long function(int i)static long f=1;f=f*i;return f;}main(){long product;int i;for(i=1;i<=N;i++){product=function(i);printf("%d的阶层为%d\n",i,product);}}(3)问题分析:定义N为五的时候很纠结忘了define函数,后来问了同学后解决了3、实验练习:6.3.1-3 求两个整数的最⼤公约数(1)问题的简单描述:编写程序,从键盘输⼊两个整数,调⽤gdc()函数求他们的最⼤公约数,并输出结果。
C语言程序设计作业五(指针,文件)
C语言程序设计作业五1.对于类型相同的指针变量,不能进行哪种运算?(单选)A. +B. -C. =D. = =2. 若有以下说明和语句,且0<=i<10, 则下面哪个是对数组元素的错误引用?(单选)int a[]={1,2,3,4,5,6,7,8,9,0}, *p, i;p=a;A. *(a+i)B. a[p-a]C. p+iD. *(&a[i])3. 若有以下说明和语句,且0<=i<10,则下面哪个是对数组元素地址的正确表示?(单选)int a[]={1,2,3,4,5,6,7,8,9,0}, *p,i;p=a;A. &(a+1)B. a++C. &pD. &p[i]4. 以下程序的输出结果是___。
#include <stdio.h>main(){int a[]={1,2,3,4,5,6},*p;p=a;*(p+3)+=2;printf("%d,%d\n",*p,*(p+3));}A. 0,5B. 1,5C. 0,6D. 1,65. 以下程序的输出结果是哪一项?(单选)#include <stdio.h>main(){int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];printf("%d\n",p[3][2]);}A. 输出项不合法B. 6C. 8D. 126. 如果有以下的定义:(多选)struct person{char name[20];int age;char sex;};struct person a={"xiao min",20,'m'},*p=&a;则对字符串"li ning"的引用方式可以是下面哪些?A. (*p).nameB. C. D. p->name7. 下面哪些定义的结构在内存分配是等价的。
c语言第五次作业
第五次作业:函数1.自然数的计算编写自己的两个函数,分别求出两个整数的最大公约数和最小的公倍数。
编写一个程序,功能是能够由键盘输入两个整数,并能调用自己编写的函数,计算并输出这两个整数的最大公约数和最小公倍数。
程序代码:#include<stdio.h>void main(){intgreatest_common(intx,int y),lowest_common(intx,int y);inta,b,c,d;printf("please input two integer:");scanf("%d,%d",&a,&b);c=greatest_common(a,b);d=lowest_common(a,b);printf("最大公约数为%d,最小公倍数为%d\n",c,d);}intgreatest_common(intx,int y){inti,min;if (x>y)min=y;else min=x;for(i=min;i>=1;i--)if ((x%i==0)&&(y%i==0))return(i);}intlowest_common(intx,int y){inti,max;if (x>y)max=x;elsemax=y;for (i=max;;i++)if((i%x==0)&&(i%y==0))return (i);}2.字符串连接请使用字符数组,编写自己的字符串连接函数。
编写一个程序,功能是能够由键盘输入两个字符串,并能调用自己编写的字符串连接函数,输出新的字符串。
#include<stdio.h>#include<string.h>void main(){char link(char a[40],char b[20]);char str1[40]={"0"},str2[20];printf("请输入第一个字符串:");gets(str1);printf("请输入第二个字符串:");gets(str2);printf("合并后的字符串为:\n");link(str1,str2);puts(str1);}char link(char a[40],char b[20]){inti,j;i=strlen(a);for(j=0;b[j]!=0;j++)a[i+j]=b[j];return(a[i]);}3. 三角函数请使用台劳级数编写自己的常用三角近似值计算函数,用于自己程序的调用。
C++程序设计 第五次作业 扫雷游戏
抄袭扣分,如果比对代码完全相同,得分/雷同份数
(加到100分为止)
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <iomanip>
#define random(x) (rand()%x)
(pmap+width*h+w)->setmine(1);//设置为地雷
}
}
void Map::putnum()//设置cell中num的值
{
int i,j,w,h;
for(i=0;i<height;i++)
for(j=0;j<width;j++)//遍历每一个格子
{
if((pmap+width*i+j)->getmine()!=1)
cout<<"Please input:";
cin>>a;
if(a=='d')//挖雷
{
do
{
cout<<"Please input location X (0-"<<width-1<<"):";
cin>>x;
cout<<"Please input location Y (0-"<<height-1<<"):";
void coutmap(int b);//打印界面
《C语言程序设计》课件 《C语言程序设计》课件 第5章-循环结构程序设计
Page 28
参考代码
#include<stdio.h> void main() {
char ch; int char_num=0,int_num=0,other_num=0; while((ch=getchar())!=‘\n’) //回车键结束输入 {
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') char_num++;
printf("************\n ");
printf("************\n ");
printf("************\n ");
printf("************\n "); printf("************\n "); 等价 for(int i=1;i<=8;i++)
{ s=s+i;
i++; //表达式3移至循环体末尾
}
printf("s=%d",s);
}
<<C语言程序设计>>
Page 19
随堂练习
例 编程计算n的阶乘。
n!=1 2 3 ……〔n-1〕 n
思路:
类似于累加求和,每一次循环乘上一个数字,求和 将和初始化为0,这里应把积初始化为?
<<C语言程序设计>>
#include "stdio.h" void main( ) { int i,sum=0;
C语言第5次作业简单程序设计
C语言第5次作业简单程序设计单选题: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参考答案: 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参考答案: 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,则正确的输出结果是( )。
C程序设计5
结束
6.4 do-while语句 语句
while和do-while循环的比较 和 循环的比较 例6.4 (1) main() { int i,sum=0; scanf("%d",&i); while(i<=10) {sum=sum+i; i++; } printf("sum=%d",sum); } } (2) main() { int i,sum=0; scanf("%d",&i); do {sum=sum+i; i++; } while(i<=10); printf("sum=%d",sum);
6.4 do-while语句 语句
while循环和 循环和do~while循环的区别在于: 循环的区别在于: 循环和 循环的区别在于 a.它们执行循环体与计算表达式的先后顺序不同,do~while先执行 它们执行循环体与计算表达式的先后顺序不同, 先执行 它们执行循环体与计算表达式的先后顺序不同 循环体,再计算表达式; 循环为先计算表达式, 循环体,再计算表达式;while循环为先计算表达式,表达式的结果为非 循环为先计算表达式 零值,则执行循环体语句。 零值,则执行循环体语句。 b. do~while至少要执行一次循环体。while执行循环体的次数可能 至少要执行一次循环体。 至少要执行一次循环体 执行循环体的次数可能 为零次或若干次。 为零次或若干次。
main( ) { int n, sum=0; n=1; loop: if (n<=100) { sum=sum+n; n++; goto loop; } printf("%d",sum);
C语言第五六次作业
本题解析: 这道题是从出现作业为止最难得题目。涉及 到一些动态规划的思想。(我只想到这一种做法, 欢迎大家有简单做法的来分享~) 用f[i][j]表示到字符串s中的第i个字符为止最高 位为j(用1-26分别代替’a‟-‟z‟)的最长字串的字符 数。 动态转移方程为: F[i][j]=F[i-1][j] (s[i]≠j) F[i][j]=max(f[i-1][k])+1 (1≤k≤j) (s[i]=j) 这个题目不是很好讲清楚,如果想透彻的理解的 话可以来找我(中408 JRC)不过。。不保证一定能
本题解析:
求异或,同时降序输出。那么将问题简化后 可以发现如果将两个数组中的数都读进同一个数 组然后降序排序若是数组中存在相同元素则不输 出,若只出现一次则输出。那么结果与题目要求 就相同了。
for (i=0;i<sum;i++) for (j=i+1;j<sum;j++) if (a[i]<a[j]) #include<stdio.h> { int main() k=a[i]; { a[i]=a[j]; int a[100]; a[j]=k; int i,j,k; } /*降序排序*/ int sum=0; a[sum]=5257;/*保证a[sum]不与前面的数相同*/ char ch; int flag=0;/*flag表示已经输出了多少数,若为0 int tot=0; 则不需要先输出空格,否则输出空格与前面输出 scanf("%d",&a[sum++]); 的数字隔开*/ while (1) for (i=0;i<sum;i++) { { if (i==0) if (a[i]!=a[i+1]) ch=getchar(); { if (flag) printf(" "); if (ch=='\n') tot+=1; printf("%d",a[i]); if (tot==2) break; flag++; scanf("%d",&a[sum++]); } } /*这里是进行读入,由于一共 if (i!=0) if ((a[i]!=a[i+1])&&(a[i]!=a[i-1])) 有两行那么每读完一个数就读入一 { if (flag) printf(" "); 个字符判断这个字符是不是换行符, printf("%d",a[i]); 当出现两个换行符的时候读入结束 flag++; */ } } }
- 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,则以下程序输出的结果是——。