C语言第四次作业解析_第1页
C语言第四次作业解析_第2页
C语言第四次作业解析_第3页
C语言第四次作业解析_第4页
C语言第四次作业解析_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四次作业:数组1 .字符筛选编写一个程序,先输入一个字符串strl(长度不超过20),再输入一个单独的字符然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串然后把这个字符串打印出来。例如:输入:字符串strl为:86符ch为:-输出:字符串str2为:861062785001程序代码:#include<stdio.h>#include<string.h>voidmain()inti,j=0,length;charstr121,str221,ch;printf("字符串str1为:");gets

2、(str1);printf("字符ch为:");scanf("%c",&ch);length=strlen(str1);for(i=0;i<=length;i+)if(str1i!=ch)str2j=str1i;j+;elsecontinue;puts(str2);c:*C:Progra»FilesMicrosoftVisualStudioMyProjects03Debug03.eze86符ch为:-8601062785001Pressanykeytocontinue2 .数据合并编写一个程序,能够输入

3、两个预先从小到大排列的整数型数组(假设数组长度最大为20,数组输入时遇到数字0结束);要求将这两个数组的数字能够合并成为一个新的从小到大顺序排列的整数型数据,并将新数组输出。例如:输入:请输入第一个数组:1,2,3,12,16,20,25,40,0请输入第二个数组:4,5,6,15,18,20,21,22,25,38,45,0输出:合并后的数组为:1,2,3,4,5,6,12,15,16,18,20,20,21,22,25,25,38,40,45/*编写一个程序,能够输入两个预先从小到大排列的整数型数组(假设数组长度最大为20,数组输入时遇到数字0结束);要求将这两个数组的数字能够合并成为一个

4、新的从小到大顺序排列的整数型数据,并将新数组输出。例如:输入:请输入第一个数组:1,2,3,12,16,20,25,40,0请输入第二个数组:4,5,6,15,18,20,21,22,25,38,45,0输出:合并后的数组为:1,2,3,4,5,6,12,15,16,18,20,20,21,22,25,25,38,40,45*/程序代码:#include<stdio.h>#include<string.h>voidmain()inti,j,t,k,m,n,r;inta20,b20,c40;printf("请输入第一个数组:");for(i=0;i+)

5、scanf("%d",&ai);m=i-1;if(ai=0)break;)printf("请输入第二个数组:");forO=0;j+)(scanf("%d",&bj);n=j-1;if(bj=O)break;)for(i=0;i<=m;k+,i+)ck=ai;for(j=O;j<=n;k+j+)ck=bj;for(r=0;r<=m+n;r+)(for(k=0;k<=m+n;k+)if(ck>ck+1)(t=ck;ck=ck+1;ck+1=t;)for(k=0;k<=m+n;k+)pr

6、intf("%d",ck);3 .数制转换请使用数组编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并把它打印出来。例如,输入:请输入二进制数字符串:111011101110111011101110输出:对应的十进制数:15658734程序代码:#include<stdio.h>#include<string.h>#include<math.h>voidmain()charstr32;inti,j=0,k=0;longintt=0;printf("请输入二进制字符串:");gets(

7、str);j=strlen(str);for(i=j-1;i>=0;i-)t+=(stri-48)*pow(2,k);k+;printf("对应的十进制数:dn",t);G中0巴TerminalEmuHalwMHAS-4-tfi:I1i16加拈此力JUA#-+1<araHnmJISo7t<nni«m»»rink35m44|4 .对称数字一辆汽车在开始出发前其里程表上的读数是一个对称数95859,后匀速行驶两个小时后,发现里程表上是一个新的对称数。问该新的对称数是多少?汽车的速度是多少?注:所谓对称数是指从左向右读与从右向左读完

8、全一样的数字。请在合理的范围内(提示,车速别太快也不能太慢,假设介于30120公里/小时),编程解决上述问题。程序代码:#include<stdio.h>#include<math.h>voidmain()inta5;intm=95859,i,s,v,t=2;for(v=30;v<=120;v+)s=m+v*t;for(i=0;i<=4;i+)ai=fmod(floor(s/(pow(10,i),10);if(a0=a4&&a1=a3)printf("新的对称数为:d,速度为:dn",s,v);ca*E:49TDebug4

9、97.exe,新的对强数为:9晟5%速度为:北期的对称数为:96酩"速度为:105Pressanykeytocontinue5 .矩阵元素的运算读入1个正整数n(1<n<10),再读入n*n阶方阵a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。(副对角线为从矩阵的右上角至左下角的连线)例:括号内是说明,可以不输入、不输出。输入:4(n=4)2341561171811111输出:sum=35程序代码:#include<stdio.h>voidmain()intn,i,j,sum=0;inta1010;printf("请输入n的值:&qu

10、ot;);scanf("%d",&n);printf("请输入n*n矩阵a:n");for(i=0;i<=n-1;i+)for(j=0;j<=n-1;j+)scanf("%d",&aij);if(i+j!=n-1&&i!=n-1&&j!=n-1)sum+=aij;)printf("sum=%dn",sum);)ca,E:49TDebug497.eze"常输入n的值:4律输入n*n矩阵a:2341561171811111sum=35Pressany

11、keytocontinueLd6.加法口诀表要求使用二维数组求解下列问题。(提示:将加数、被加数、和放入一个二维数组中,再输出该数组)。输入1个正整数n(1<n<10),输出一张20以内的加法口诀表.要求,该口诀表中的加数与被加数都不大于n,分别存放在该表格中的第一行和第一列.样式例如下:括号内是说明输入:6(n=6)输出:+1234561223434564567856789106789101112#include<stdio.h>voidmain()(inta1111;inti,j,n;printf("请输入n的值:");scanf("%

12、d",&n);for(i=0;i<=n;i+)(for(j=0;j<=n;j+)(if(i=0&&j!=0)aij=j;if(i!=0&&j=0)aij=i;if(i!=0&&j!=0)aij=i+j;if(i=0&&j=0)aij=43;for(i=0;i<=n;i+)(for(j=0;j<=n;j+)(if(i!=0&&j=0)|(j!=0&&i=0)|(i!=0&&j!=0&&j<=i)(printf("

13、%4d",aij);if(i=0&&j=0)printf("%4c",aij);printf("n");7.字符与字母(综合题)用户通过键盘输入一行文档(假设最大长度不超过10吐字符),直到按句号“.”键时,输入结束。请编程实现以下的功能:(1) 字母的转换:在用户敲键盘的时候,输入的字符,如果它是大写字母,则回显相应的小写字母;如果它是小写字母,则回显相应的大写字母;其他字符,原样回显输出。(2) 字符的统计:分别统计出其中的英文字母、空格、数字和其他字符的个数。例如:输入:(输入时回显)a19-YEAR-OLDSAYSHE&

14、#39;SREADYTOMAKEADIFFERENCE.(用户实际输入为:A19-year-oldsayshe'sreadytomakeadifference.)输出:(用户按句号“.”后输出,按照规则19-year-old以及he's都被认为是一个词)英文字母个数:37空格个数为:8数字个数为:2其他字符个数:4(提示,可以使用#include<conio.h>中的getch()函数,该函数在键盘输入时,不缓存,不回显)程序代码:#include<stdio.h>#include<conio.h>#include<string.h&g

15、t;#include<ctype.h>voidmain()(intletter=0,space=0,figure=0,other=0,i;charstr100;printf("请输入字符串:n");for(i=0;i<=100;i+)(if(stri=getch()!='.')(if(isupper(stri)(printf("%c”,stri+32);letter+;elseif(islower(stri)(printf("%c",stri-32);letter+;else(printf("%c&q

16、uot;,stri);if(stri='')space+;elseif(stri>='0'&&stri<='9')figure+;elseother+;i+;elsebreak;printf(".");other+;printf("n字符d个,n空格d个,n数字d个,n其它字符djn",letter,space,figure,other);8.矩阵的初始化已知,在C语言中,函数srand()与rand()配合使用,可以生成一系列的随机数。例如,运行下面的程序,可以生成10个0到9

17、9之间的随机数。15:29。口Q0.山口(一巴TerminalEmulator读辎八手简由;a19-YEAR-OLDSAYSHE,与READYIDMAKEADIFFERENCE.字符切个.空椅嚣个.数字2个,其它字符4个#include<stdlib.h>#include<stdio.h>#include<time.h>intmain(void)(inti;printf("Tenrandomnumbersfrom0to99nn");srand(time(NULL);/以当前的时间为基础,初始化生成随机数的种子for(i=0;i<10

18、;i+)printf("%dn",rand()%100);/rand()以srand()为种子,随机生成随机数return0;对于一个m*n阶的整数型矩阵进行初始化。要求:用户键盘输入矩阵的阶,m与n(m,n在015之间如输入m=12,n=8);请使用上面样例提供的随机数生成函数,用0m*n之间的随机数分别初始化该矩阵元素;在屏幕上输出该矩阵。程序代码:#include<stdlib.h>#include<stdio.h>#include<time.h>voidmain()(inta1515;inti,j,m,n;printf("

19、;请输入m,n的值:");scanf("%d,%d",&m,&n);srand(time(NULL);for(i=0;i<m;i+)(for(j=0;j<n;j+)(aij=rand()%m*n;printf("输出一个随机的m*n矩阵:n");for(i=0;i<m;i+)(for(j=0;j<n;j+)()printf("n");)9.大数求和(选作)如你所知,在C语言中,基本数据类型中数的表示范围有限(如整数范围不很大)。如何求两个很大的整数(假设整数为50位)之和,需要采取其他方法。请编程实现两个大数求和的功能。例如:输入:数1:112233445566778899数2:998877665544332211输出:和为:1111111111111111110程序代码:#include<stdio.h>#inc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论