扬州大学C语言上机作业19整理.docx

答案仅供参考 实验一 4.设计main函数实现从键盘上输入两个整型变量a、b的值,交换它们的值并输出。includestdio.h void main { int a,b,c; printfenter first integer ; scanfd,a; printfenter second integer ; scanfd,b; ca; ab; bc; printfd,d\n,a,b; getch; } 5.设计main函数实现从键盘上输入两个整型变量a、b的值,并将b的值加入到a中,输出a的值。 includestdio.h void main { int a,b,c; printfenter first integer ; scanfd,a; printfenter second integer ; scanfd,b; cab; ac; printfad,bd\n,a,b; getch; } 6.从键盘输入整数x的值,根据公式yx33x2x-10求y的值,输出x和y的值。 includestdio.h void main { int x,y; printfenter first integer ; scanfd,x; yx*x*x3*x*xx-10; printfxd,yd\n,x,y; getch; } 实验二 1. 编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分钟表示,然后输出至屏幕。 include stdio.h void main { int a,b,hour,min; printfenter first integer ; scanfd,a; b60; houra/b; minab; printfhourd,mind\n,hour,min; getch; } 2. 编写程序,输入两个整数(例如1500和350),求出它们的商和余数并进行输出。 include stdio.h void main { int a,b,c,d; a1500,b350; ca/b; dab; printfd,d,c,d; getch; } 3.编写程序,读入3个整数给分别变量a,b,c,然后将a,b,c的值输出到屏幕,再交换它们中的数值,把a中原来的值给b,把b中原来的值赋给c,把c中原来的值赋给a,然后再次输出a,b,c的值到屏幕。 include stdio.h void main { int a,b,c,d; printfenter first integer ; scanfd,a; printfenter second integer ; scanfd,b; printfenter third integer ; scanfd,c; printfad,bd,cd\n,a,b,c; dc; cb; ba; ad; printfad,bd,cd,a,b,c; getch; } 4.编写程序,读入3个双精度数,求它们的平均值输出到屏幕。 include stdio.h void main { double sum0; double a,b,c,d; printfenter first integer ; scanflf,a; printfenter second integer ; scanflf,b; printfenter third integer ; scanflf,c; sumabc; dsum/3.0; printfdlf,d; getch; } 5.下列程序中,要求main函数实现如下功能从键盘上输入3个正整数,求出它们中的最大值。请完善程序,并在程序最后用注释的方式给出你的测试数据及在这组测试数据下的运行结果。 include stdio.h void main { int a ,b ,c ,d ,max; printf“Enter three integers”; scanf“ddd”,a,b,c; ifab maxa; else maxb; ifcmax maxc; printf“max of the three numbers is d”,max; grtch; } 6. 请编程序对从键盘上输入的x值,根据以下函数关系计算出相应的y值(设x,y均为整型量)。 x值的范围 计算y的公式 x0 0 0x10 x 10x20 10 20x40 -5x20 include stdio.h void main { int x,y; printfx; scanfd ,x; if x0 y0; else if x10 x0 yx; else if x10 x20 y10; else if x20 x40 y-5*x20; printfd ,y; getch; } 实验三 1. 下列程序想求出满足如下条件的三位数n1n除以11(整数相除)所得到的商等于n的各位数字的平方和;2n中至少有二位数字相同。如131除以11的商为11,131各位数字的平方和为11,131中有二位数字相同,故131是所要求出的三位数中的一个;又如550,也是满足条件的三位数。源程序中有些错误,请你改正并最终使程序得到如下的运行结果131 550 900 include stdio.h void main { int n , a , b , c; forn1; n1000; n { an/100; bn/1010; cn10; ifn/11a*ab*bc*cab||ac||bc printfd\n,n; } getch;} 2. 请编程序,实现从键盘上输入任意一个整数n,求出n的各位数字之和。例如,当n为263时,各位数字之和为11。下面是一个可以实现逐位数字累加功能的程序段,试理解后应用到自己的程序中。 k0;n263; do{ kn10; n/10; }whilen; include stdio.h void main { int n,k; scanfd,n; k0; do{ kn10; n/10; }whilen; printfd,k; getch; } 3. 试找出符合下列条件的正整数1该数是一个三位数;2该数是37的倍数;3该数循环左移后得到的另两个数也是37的倍数。例如148是37的倍数,481和814也是37的倍数。 includestdio.h void main { int n,a,b; forn100;n1000;n ifn370 {an/10n10*100; bn/100n100*10; ifa370b370 printfd\n,n; } getch; } 4.请编程序利用下列公式求π的近似值。公式为 要求先求出前2n项的π值,再求出2n2项的π值,直至二者之差小于10-5为止。 includestdio.h void main {int n; float a,b; a1,b4.0/3; n1; whileb-a1e-5 {ab; n; bb*4*n*n/2*n-1/2*n1; } printff,f,2*a,2*b; getch; } 5. 请编程序求出满足如下条件的四位数n1n的范围为[5000,8000];2n千位上的数减百位上的数减十位上的数减个位上的数大于零。编程要求以每行5个输出满足条件的数及该类数的个数。 includestdio.h void main {int n,a,b,c,d,k0; forn5000;n8000;n {an/1000; bn/10010; cn/1010; dn10; ifa-b-c-d0 {printf5d,n; k; ifk50 printf\n; } } printfkd,k; getch; } 6.请编程序求出满足如下条件的一个四位整数,它的9倍恰好是其反序数(例如,1234与4321互为反序数)。 includestdio.h void main {int n,e,a,b,c,d; forn1000;n9999;n { an/1000; bn/10010; cn/1010; dn10; ed*1000c*100b*10a; if9*ne printfd,n;} getch; } 7.请编程序求出从键盘上输入的两个正整数a和b的最大公约数和最小公倍数。 include stdio.h void main { int m,n,r,x; scanfd,d,m,n; xm*n; whilen0 { rmn; mn; nr; } printfd d,m,x/m; getch; } 8.请编程序计算123n的前10项之和。 include stdio.h void main { long sum,k; int i,j; sum0; fori1;i10;i { forj1,k1;ji;j { k*j; } sumk; } printfld\n,sum; getch; } 实验四 1. 反序数。例如,123的反序数是321。请设计程序,从键盘上输入一个整数,求其反序数并输出。 include stdio.h main { int n,k; printfn; scanfd,n; k0; whilen0 {kk*10n10; n/10;} printfkd,k; getch; } 2. 完备数。完备数是一些特殊的自然数,它所有的真因子(即除了自身以外的约数)之和恰好等于该数本身。例如,6123,故6是一个完备数。请设计程序,找出500以内的所有完备数。 include stdio.h void main { int n,i,k; forn1;n500;n { k0; fori1;in-1;i {ifni0 ki;} ifnk printfd\n,n; } getch; } 3. 回文数。一个数如果正读和倒读(即反序数)相同,称该数是回文数。例如,121、1331均为回文数。请设计程序,找出200300之间的所有回文数,并以每行8个数输出至屏幕。 include stdio.h void main { int n,k,i,m0; forn200;n300;n { k0; in; whilei0 {kk*10i10; i/10;} ifnk {m; printf8d,n; } ifm80 printf\n; } getch; } 4. 回文质数。一个数如果是回文数,同时又是质数,则该数被称为回文质数。请设计程序,找出100500之间的所有回文质数,并以每行5个输出至屏幕。 include stdio.h include math.h void main { int n,k,i,m; forn100;n500;n { k0; in; whilei0 { kk*10i10; i/10;} ifnk { form2;msqrtn;m { ifnm0 break; } ifmsqrtn { printf4d,n; account; ifaccount50 printf“\n”; } } } getch; } 5. 绝对质数。如果一个数和其反序数均为质数,则该数被称为绝对质数。如,13是质数,其反序数31也为质数,则13和31是一对绝对质数。请设计程序,找出200以内的绝对质数。 include stdio.h include math.h void main { int n,k,i,m,a; forn1;n200;n { fora2;asqrtn;a {ifna0 break; } ifasqrtn { in,k0; whilei0 { kk*10i10; i/10;} form2;msqrtk;m {ifkm0 break; } ifmsqrtk printf5d,n; } } getch; } 6. 平方镜反数。如果一个数的平方数,是其反序数的平方数的反序数,则称该数和其反序数是一对平方镜反数。例如,12的平方数是144,其反序数为21,21的平方数是441,其反序数是12的平方数144,故12和21是一对平方镜反数。请设计程序找出200以内的所有平方镜反数对。 include stdio.h include math.h void main { int n,k,i,a,b; forn1;n200;n { k0; in; whilei0 { kk*10i10; i/10;} ak*k; b0; whilea0 {bb*10a10; a/10;} ifbn*n printfd\n,n; } getch; } 7.黑洞数。黑洞数又称陷阱数,是类具有奇特转换特性的整数。任何一个数字不全相同整数,经有限“重排求差”操作,总会得到某个数,这些数即为黑洞数。“重排求差”操作即把组成该数的数字重排后得到的最大数减去重排后得到的最小数。 随便造一个四位数,如a11231,先把组成部分1231的四个数字由大到小排列得到a23211,再把1231的四个数字由小到大排列得a31123,用大的减去小的a2-a13211-11232088。把2088按上面的方法再作一遍,由大到小排列得8820,由小到大排列得288,相减8820-2888532。把8532按上面的方法再作一遍,由大到小排列得8532,由 小到大排列得2358,相减8532-23586174。如果再往下做,奇迹就出现了7641-14676174,又回到6174。6174便是一个4位黑洞数。 请编写程序,用上述方法找出3位黑洞数。 暂无答案 实验五 1. 有一张足够大的纸,厚0.09毫米,问将它对折多少次后可以达到珠穆朗玛峰的高度(8848米) include stdio.h void main {double a9e-2; int n0; whilea8848 {aa*2; n; } printfad,n; getch; } 2. 请设计程序采用递推法计算下列级数的近似值,当n取某一值使得|x2n1/n|0.000001时停止计算(x从键盘输入)。级数如下 include stdio.h include math.h void main {double sum,x,p,n,q,m,k; printfx; scanflf,x; sumx;px; m1;q1;n1;k1; whilefabsp/n1.0e-6 {m-m; p*x*x; q2; k; n*k; summ*p/q*n; } printflf,sum; getch; } 3. 请设计程序,根据下列公式计算cosx的近似值。精度要求当通项的绝对值小于等于10-6为止。 cosx1-x2/2x4/4-x6/6-1nx2n/2n include stdio.h include math.h void main { double x,k,sum,term,a,b,m; printfx; scanflf,x; sum1; m1; a0; k1; b1; term1; whilefabsterm1.0e-6 {k*x*x; m-m; a2; b*a*a-1; summ*k/b; termm*k/b; } printfcosxlf,sum; getch; } 4. 请设计程序采用递推法计算的值。即求-的值。其中x为键盘输入的一个任意的单精度实数。 include stdio.h void main {int i,p; float x,m,q,sum; printfx; scanff,x; sumx; mx; p1; q1; fori1;i10;i {m*x*x; p-p; q*i; sump*m/q; } printff,sum; getch; } 5. 请设计程序,根据下列公式计算表达式的值。计算公式如下 当通项绝对值小于等于10-6时停止累加。 include stdio.h include math.h void main { double x,k,sum,term,a,b,m; printfx; scanflf,x; sum1; m1; a0; k1; b1; term1; whilefabsterm1.0e-6 {k*x*x; m-m; a2; b*a*a-1; summ*k/b; termm*k/b; } sum-1*sum*cosx/x; sum3.14/2; printflf,sum; getch; } 实验六 3. 水仙花数是指一个3位数,其各位数字的立方和等于该数本身。请完善下列程序中的函数int daffodilint n,其功能是判断整数n是否为水仙花数,如是,则该函数返回值1,否则返回值0。注意,不能更改main函数。 include stdio.h int daffodilint n { int k0,m; mn; do {km10*m10*m10; m/10;}whilem; ifnk return 1; else return 0; } main { int m,i0; form100;m1000;m ifdaffodilm1 { printf5d,m; i; ifi50printf\n; } getch; } 4. 请编写程序,找出满足如下条件的整数m1该数在[11,999]之内;2 m、m2、m3均为回文数。例如m11,m2121,m31331,11、121、1331皆为回文数,故m11是满足条件的一个数。请设计函数int valuelong m,其功能是判断m是否是回文数,如是,该函数返回值1,否则返回值0。编写main函数,求出[11,999]内满足条件的所有整数。 include stdio.h int valuelong m {long s,n; s0; nm; whilen {ss*10n10; n/10;} ifsm return 1; else return 0; } main { long m; form11;m1000;m ifvaluem1valuem*m1valuem*m*m1 { printf5ld,m; } getch; } 5. 设n0是一个给定的正整数。对于i0,1,2,,定义若ni是偶数,则ni1ni/2;若ni是奇数,则ni13ni1;若ni是1,则序列结束。用这种方法产生的数称为冰雹数。请编写一个函数void hailstonesint n,其功能是显示由n产生的所要求的序列,按每行6个数输出该数列中的所有数。编写main函数,在main函数中定义一个整型变量n,从键盘上输入值77赋给n,用n作为实参调用函数hailstones。 测试数据77↙ 输出结果 Hailstones generated by 77 77 232 116 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 Number of hailstones generated23 include stdio.h void hailstonesint n; void main {int n; scanfd,n; hailstonesn; getch; } void hailstonesint n { int i; printfHailstones generated by 77\n; i0; whilen1 {printf5d,n; i; ifn20 nn/2; else n3*n1; ifi60 printf\n; } printf5d\n,n; i; printfNumber of hailstones generated5d,i; } 6. 请按要求编写程序。编程要求 1 编写函数int twinbornint m,int n,其功能是判断整数m和n是否为孪生质数对(相差为2的两个质数称为孪生质数),如是,则函数返回值1,否则返回值0。 2 编写main函数,求出[10,99]内的所有孪生质数对,使得程序的运行结果为 11,13 17,19 29,31 41,43 59,61 71,73 include stdio.h int primeint m {int n; forn2;nm/2;n ifmn0 return 0; return 1; } int twinbornint m,int n { ifprimemprimen2 return 1; else return 0; } void main {int n,m; forn10;n97;n { mn2; iftwinbornm,n1 printfd,d\n,n,m; } getch; } 实验七 1.用牛顿迭代法求方程3x3-3x2x-10在x02附近的实根。要求 ①用函数float newtoonfloat x求方程在x附近的根; ②用函数float Ffloat x求x处的函数值,用函数float F1float x求fx在x处的导数; ③在主函数中输入x0,调用函数求得方程的近似根,并输出结果。 请完善下列程序,使之完成上述功能。并请以注释的方式在程序的最后给出你在运行该程序时所选用的测试数据及在该测试数据下的运行结果。 include stdio.h include math.h float Ffloat x { return x*3*x*x-11-1; } float F1float x { return 9*x*x-6*x1; } float newtoonfloat x { float f,f1,x0; do {x0x; fFx0; f1F1x0; xx0-f/f1; }whilefabsx-x01e-5; return x; } void main { float x0; scanff,x0; printfThe result .2f\n,newtoonx0; getch; } 2.请设计程序,用二分法求方程x31.1x20.9x-1.40在0,1内的近似根。直到|fx|0.0001为止。 include stdio.h include math.h float ffloat x { returnx*x*x1.1*x*x0.9*x-1.4; } void main { float m0,n1,r; rmn/2.0; while1 {iffabsfr1e-4 break; iffm*fr0 nr; else mr; rmn/2.0; } printfxf,r; getch; } 3.以下程序的功能是从键盘上输入10个整数,并检测整数3是否包含在这些数据中,若包含3,则显示出第一个3出现的位置,程序有些错误,试改正之。 include stdio.h void main { int data[10],j0; while j10 { scanfd,data[j]; j; } forj0;j10;j { ifdata[j]3 {printf3 is in the position of d\n ,j1; break;} } ifj10 printfnot found\n ; getch; }4.请编辑调试下列程序,观察其运行结果,理解数组名作为函数参数时的作用。该程序的功能是选出a数组中下标为奇数的并大于10的项并且输出满足条件的个数。 【源程序】 include stdio.h int funint a[],int b[] { int i,j0; fori0;a[i];i { ifi20continue ; ifa[i]10 b[j]a[i]; } return j; } void main { int a[10]{3,15,32,23,11,4,5,9},b[10]; int i,x; xfuna,b ; fori0;ix;i printfd\t,b[i]; printf\nd,x; } 实验八 1.请编辑调试下列程序,观察、理解其运行结果,并叙述该程序的功能。 【源程序】 include stdio.h int funint a[],int b[] { int i,j0; fori0;a[i];i { ifi20continue ; ifa[i]10 b[j]a[i]; } return j; } void main { int a[10]{3,15,32,23,11,4,5,9},b[10]; int i0,x0; xfuna,b ; fori0;ix;i printfd\t,b[i]; printf\nd,x; } 该程序的功能选出a数组中下标为奇数的并大于10的项并且输出满足条件的个数。 2.以下程序在a数组中查找与x值相同的元素的所在位置。请完善程序。 【源程序】 include stdio.h void main { int a[11] ,x , i; printfEnter 10 Integers\n; fori1; i10; i scanfd,ai; printfEnter x; scanfd,x; a[0]x; i10; whilexa[i] i--; ifi0 printf5d s position is 4d\n,x,i; else printfd is not found\n,x; getch; }3.下列程序是利用插入排序法将n个数从大到小进行排序,插入排序的算法思想如下从一个空表开始,将待排序的数一个接一个插入到已排好序的有序表中(空表视为有序),从而得到一个新的、记录数增1的有序表。例如当n7时,待排序的数及每一趟有序表的变化情况如下 趟数 有序表 剩余待排序数 初始状态 空 49 38 65 97 76 13 27 第1趟 49 38 65 97 76 13 27 第2趟 49 38 65 97 76 13 27 第3趟 65 49 38 97 76 13 27 第4趟 97 65 49 38 76 13 27 第5趟 97 76 6

c语言上机实验答案扬州大学,扬州大学C语言上机作业19整理.docx相关推荐

  1. 华南农业大学c语言上机实验答案,华南农业大学C语言上机实验答案.doc

    华南农业大学C语言上机实验答案 格式:一题号一答案,相对应 1001 #include "stdio.h" int main() { int a,b; scanf("%d ...

  2. 华南农业大学c语言上机实验答案,华南农业大学c语言上机实验答案

    华南农业大学c语言上机实验答案 (16页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 格式一题号一答案,相对应1001INCLUDE&qu ...

  3. c语言将字母的acsaii,C语言上机实验 答案

    <C语言上机实验 答案>由会员分享,可在线阅读,更多相关<C语言上机实验 答案(31页珍藏版)>请在装配图网上搜索. 1.实验一 上机操作初步(2学时)一.实验方式:一人一机二 ...

  4. c语言输入r1 r2垫片的面积,C语言上机实验答案Word版

    <C语言上机实验答案Word版>由会员分享,可在线阅读,更多相关<C语言上机实验答案Word版(33页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ,希望对您有 ...

  5. c语言作业朱鸣华,2c语言程序设计教程 上机实验答案 朱鸣华 刘旭麟 杨微 著 机械工业出版社.pdf...

    2c语言程序设计教程 上机实验答案 朱鸣华 刘旭麟 杨微 著 机械工业出版社.pdf 还剩 39页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢 ...

  6. c语言西南交通大学出版社答案,西南交通大学C++上机实验答案

    <西南交通大学C++上机实验答案>由会员分享,可在线阅读,更多相关<西南交通大学C++上机实验答案(27页珍藏版)>请在人人文库网上搜索. 1.实验1教学班级:学生学号: 学生 ...

  7. java上机实验答案_java上机实验答案与解析

    java上机实验答案与解析 JAVA上机实验题答案与解析 实验一 Java程序编程 1. 编写一个Java应用程序,输出内容为Hello!. 注:文件位置位于e:\2:\Hello.java 编译:( ...

  8. 浙大java语言程序设计_浙江大学java语言程序设计实验答案全集.doc

    浙江大学java语言程序设计实验答案全集.doc 1JAVA答案全集实验汇总.实验2数据类型和变量的使用一.程序填空,在屏幕上显示一个短句"PROGRAMMINGINJAVAISFUN&qu ...

  9. 数据库系统教程(第二版何玉洁)课后数据库上机实验答案

    附录C 上机实验 C.1 第4章上机实验 下列实验均使用SQL Server 的SSMS工具实现. 1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A): l  数据库名为:学 ...

最新文章

  1. 【Qt】dumpbin详解
  2. 阿里 Midway 正式发布 Serverless v1.0,研发提效 50%
  3. es6解构赋值的高级技巧
  4. mac端addr2line的NDK位置和使用
  5. 第六次实训作业异常处理
  6. 操作方法:Spring Boot和Thymeleaf与Maven
  7. SHOI2009 会场预约
  8. 区间合并(信息学奥赛一本通-T1236)
  9. Java中多线程访问冲突的解决方式
  10. java 循环删除hashmap中的键值对,解决java.util.ConcurrentModificationException报错
  11. ERP-非财务人员的财务培训教(四)------公司/部门的成本与费用控制
  12. zblog php 安装,如何安装Zblog?ZBlogPHP安装图文教程
  13. 03:计算书费【一维数组】
  14. NodeJS仿WebApi路由
  15. javascript开发中的封装模式(转)
  16. 这些大学,推迟返校!
  17. linux下epoll网络编程模型,C++ - 网络编程模型 - Linux EPOLL
  18. ADS系列之SIPI仿真笔记:ADS多种版本的安装、卸载重装(一)
  19. 软件测试技术之: 白盒测试和黑盒测试
  20. DTOJ3026 geronimo

热门文章

  1. 静态链表和数组的区别
  2. c语言 1^3+3^3+5^3+……(2k+1)^3,如何得到一个矩阵的置换矩阵
  3. centos 服务器硬件配置查询命令
  4. JS 如何将 HTML 页面导出为多页 PDF
  5. [网络安全学习篇21]:防火墙(千峰网络安全视频笔记 21 day)
  6. Http会话保持机制:Cookie、Session和Token
  7. android开发:获取键盘的高度(实测真实有效)
  8. linux udp 广播recvfrom 返回 -1 错误码是 11 EAGAIN Resource temporarily unavailable
  9. 数据库死锁产生原因及场景
  10. java ntlm_NTLM验证过程