ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:20.41KB ,
资源ID:11012642      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11012642.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计上机题1120.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计上机题1120.docx

1、C语言程序设计 上机题1120上机作业题之十一生成一个55的整型方阵。其各个元素值依次为1开始的连续自然数。输出该方阵。然后求该方阵的主对角线上元素之和sum1和次对角线元素之和sum2,并输出。下标访问法参考程序如下:#include void main() int a55,i,j,sum1=0,sum2=0,n=1; printf( 生成的矩阵是:n); for(i=0;i5;i+) for(j=0;j5;j+) aij=n+; printf(%5d,aij); if(i=j) sum1+=aij; if(i+j=4) sum2+=aij; printf(n); printf(主对角线之和

2、%dt次对角线之和%dn,sum1,sum2);指针访问法参考程序如下:#include void main() int a55,(*ip)5,*jp,sum1=0,sum2=0; printf( 生成的矩阵是:n); for(ip=a;ipa+5;ip+) for(jp=*ip;jp*ip+5;jp+) *jp=jp-*a+1; printf(%5d,*jp); if(ip-a=jp-*ip) sum1+=*jp; if(ip-a+jp-*ip=4) sum2+=*jp; printf(n); printf(主对角线之和%dt次对角线之和%dn,sum1,sum2);两个程序运行的输出结果都

3、是: 生成的矩阵是: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25主对角线之和65 次对角线之和65上机作业题之十二生成一个55的整型方阵。其各个元素值用伪随机函数产生10,99之间的数。输出矩阵。然后求出各行上元素的最大值存储在一维数组max5中,求出各行上元素的最小值存储在一维数组min5中。输出这两个一维数组。下标访问法的参考程序如下:#include #include void main() int a55,i,j,max5,min5; printf( 生成的矩阵是:n); for(i=0;i5;i+

4、) for(j=0,maxi=0,mini=100;jmaxi) maxi=aij; if(aijmini) mini=aij; printf(n); printf(各行的最大值是:n); for(i=0;i5;i+) printf(%5d,maxi); printf(n); printf(各行的最小值是:n); for(i=0;i5;i+) printf(%5d,mini); printf(n);指针访问法的参考程序如下:#include #include void main() int a55,(*ip)5,*jp,max5,*pmax=max,min5,*pmin=min; printf

5、( 生成的矩阵是:n); for(ip=a;ipa+5;ip+,pmax+,pmin+) for(jp=*ip,*pmax=0,*pmin=100;jp*pmax) *pmax=*jp; if(*jp*pmin) *pmin=*jp; printf(n); printf(各行的最大值是:n); for(pmax=max;pmaxmax+5;pmax+) printf(%5d,*pmax); printf(n); printf(各行的最小值是:n); for(pmin=min;pminmin+5;pmin+) printf(%5d,*pmin); printf(n);两个程序运行的结果都是: 生

6、成的矩阵是: 51 27 44 50 99 74 58 28 62 84 45 75 71 97 71 51 35 72 67 46 91 34 42 73 32各行的最大值是: 99 84 97 72 91各行的最小值是: 27 28 45 35 32上机作业题之十三从键盘上读入两个串,将第二个串中的某个单词移到第一个串中的某个单词的前面。要移动的单词和要移到的位置处的单词,都从键盘输入。如:读的第一个串是:”I am a student.”,第二个串是:”He is a good boy!”,要移动的单词是”good “,要移到第一个串的”student”之前。移动后的两个串应为:”I a

7、m a good student.”和”He is a boy!”。不用指针的参考程序如下:#include #include void main() char str150,str250,str330,str430,str520; int n; puts(读入两个串!); gets(str1); gets(str2); puts(读入第二个串中要移动的单词!); gets(str3); puts(移到第一个串中哪个单词之前?); gets(str4); n=strlen(str3); strcpy(strstr(str2,str3),strstr(str2,str3)+n); strcpy(

8、str5,strstr(str1,str4); strcpy(strstr(str1,str4),str3); strcat(str1,str5); puts(移动后的两个串是:); puts(str1); puts(str2);用指针的参考程序如下:#include #include void main() char str150,*ps1=str1,str250,*ps2=str2,str330,*ps3=str3,str430,*ps4=str4; char str520,*ps5=str5; int n; puts(读入两个串!); gets(ps1); gets(ps2); puts

9、(读入第二个串中要移动的单词!); gets(ps3); puts(移到第一个串中哪个单词之前?); gets(ps4); n=strlen(ps3); ps2=strstr(ps2,ps3); strcpy(ps2,ps2+n); ps1=strstr(ps1,ps4); strcpy(ps5,ps1); strcpy(ps1,ps3); strcat(ps1,ps5); puts(移动后的两个串是:); puts(str1); puts(str2);运行时屏幕上显示:读入两个串!输入:I am a student. 回车He is a good boy! 回车屏幕上显示:读入第二个串中要移

10、动的单词!输入:good 回车(注意good 后面要输入一个空格再回车)屏幕上显示:移到第一个串中哪个单词之前?输入:student. 回车屏幕上显示:移动后的两个串是:I am a good student.He is a boy!上机作业题之十四编一个长整型函数ifac用来求n!,主函数中调用该函数求:从R个元素中取K个元素的组合数C是多少。C的计算公式如下: 参考程序如下:#include void main() int c,r,k; long ifac(int); printf(读入两个正整数 R 和 K,R 应大于 K !n); scanf(%d%d,&r,&k); c=ifac(r

11、)/(ifac(r-k)*ifac(k); printf(从 %d 个元素中取 %d 个元素的组合数是 %d n,r,k,c);long ifac(int n) long fac=1; int i; for(i=1;i=n;i+) fac*=i; return fac;程序运行时屏幕显示:读入两个正整数 R 和 K,R 应大于 K !输入:8 6 回车则输出结果为:从 8 个元素中取 6 个元素的组合数是 28上机作业题之十五编程找出100999之间所有“回文质数”。所谓“回文质数”是指既是回文数又是质数的数。而“回文数”是指一个数正方向念和反方向念都是同一个数的数,如101就是这样的数。要求

12、:1. 在主函数中调用一个判断回文数的函数,在判断回文数的函数中又调用一个判断质数的函数。2. 在判断质数的函数中,将找出的回文质数按每行10个数输出。参考程序如下:#include #include void zshu(int n) int i,k; static int m; for(i=2,k=sqrt(n);ik) printf(%6d,n); m+; if(m%10=0) printf(n); void hwun(int m) if(m/100=m%10) zshu(m);void main() int n; printf(三位数中的回文质数有以下几个:n); for(n=101;n

13、=999;n+=2) hwun(n); printf(n);程序运行输出的结果为:三位数中的回文质数有以下几个:101 131 151 181 191 313 353 373 383 727757 787 797 919 929上机作业题之十六一天小猴摘了一大堆桃子,他请父母和兄妹来一起吃了一半,临睡前他又吃了一个。第二天他又请小伙伴们来吃了前一天剩下的一半,临睡前他又吃了一个。以后每天都是自己吃前一天剩下的一半再又多吃一个。到第十天时发现只剩下一个桃子了。编一个递归调用函数求小猴第一天摘了多少个桃子。提示:设第n天的桃子数为tao(n) ,第n+1天的桃子数为tao(n+1),则:tao (

14、n)=(tao(n+1)+1)*2。参考程序如下:#include int tao(int n) return n=10? 1 : (tao(n+1)+1)*2;void main() printf(小猴第一天摘了 %d 个桃子。n,tao(1);运行后输出的结果是:小猴第一天摘了 1534 个桃子。上机作业题之十七生成一个8个元素的整型一维数组。其各个元素的值为从1开始的连续自然数,输出该数组。再将数组逆序,又输出逆序后的数组。要求:全部采用指针访问。参考程序如下:#include void main() int a8,*p1,*p2,temp; printf(生成的一维数组是:n); fo

15、r(p1=a;p1a+8;p1+) *p1=p1-a+1; printf(%5d,*p1); printf(n); printf(逆序后的一维数组是:n); for(p1=a,p2=a+7;p1p2;p1+,p2-) temp=*p1,*p1=*p2,*p2=temp; for(p1=a;p1a+8;p1+) printf(%5d,*p1); printf(n);运行后输出的结果是:生成的一维数组是: 1 2 3 4 5 6 7 8逆序后的一维数组是: 8 7 6 5 4 3 2 1上机作业题之十八用伪随机函数给55的二维数组的各个元素产生10,99之间的整数,输出这个数组。然后用它作函数的参

16、数,调用一个求平均值的函数,求出各行元素的平均值average储存在一维数组aver5中。在主函数中输出aver数组。要求全部采用指针访问。参考程序如下:#include #include void average(int a55,float *paver) int (*ip)5,*jp; float sum; for(ip=a;ipa+5;ip+,paver+) for(jp=*ip,sum=0;jp*ip+5;jp+) sum+=*jp; *paver=sum/5; void main() int a55,(*ip)5,*jp; float aver5,*paver=aver; print

17、f( 生成的矩阵是:n); for(ip=a;ipa+5;ip+) for(jp=*ip;jp*ip+5;jp+) *jp=rand()%90+10; printf(%7d,*jp); printf(n); average(a,aver); printf(各行元素的平均值是:n); for(paver=aver;paveraver+5;paver+) printf(%7.2f,*paver); printf(n);运行后输出的结果是: 生成的矩阵是: 51 27 44 50 99 74 58 28 62 84 45 75 71 97 71 51 35 72 67 46 91 34 42 73

18、32 各行元素的平均值是:54.2061.20 71.80 54.20 54.40上机作业题之十九从键盘上读入一个串,然后将串中序号为奇数的字符留在串中,把序号为偶数的字符拷贝到另一个串中。输出处理后的两个串。要求全部采用指针访问。参考程序之一:#include #include #include void main() char a80,b40,*p1=a,*p2=b; int flag=0; puts(读入一个串!);gets(p1); puts(原来的串是:); puts(p1); while(*p1) if(flag=0) flag=1; p1+; continue; else fla

19、g=0; *p2+=*p1; strcpy(p1,p1+1); *p2=0; printf(分解后的两个串是:n); puts(a); puts(b);参考程序之二:#include #include #include void main() char a80,b40,*p1=a,*p2=b; puts(读入一个串!); gets(p1); puts(原来的串是:); puts(p1); while(*p1) p1+; if(!*p1) break; *p2+=*p1; strcpy(p1,p1+1); *p2=0; printf(分解后的两个串是:n); puts(a); puts(b);运

20、行时屏幕上显示:读入一个串!若输入:a1b2c3d4e5f 回车则输出的结果是:原来的串是:a1b2c3d4e5f分解后的两个串是:abcdef12345上机作业题之二十从命令行上提供一个9位的长整型数,求它的逆序数并输出。如提供的是123456,则它的逆序数是654321。参考程序之一如下:#include #include void main(int argc,char *argv) long a,b=0; if(argc=1) puts(Not data!); return ; printf(%ldn,a=atol(argv1); while(a) b=b*10+a%10; a/=10;

21、 printf(%ldn,b);参考程序之二如下:#include #include #include void main(int argc,char *argv) char *p1,*p2,ch; if(argc=1) puts(Not data!); return ; printf(%ldn,atol(argv1); for(p1=argv1,p2=argv1+strlen(argv1)-1;p2p1;p1+,p2-) ch=*p1; *p1=*p2; *p2=ch; printf(%ldn,atol(argv1);该程序在TC3上运行。若提供的参数是123456789,则输出的结果是:123456789987654321

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1