新编西北农林科技大学C语言上机实习4_第1页
新编西北农林科技大学C语言上机实习4_第2页
新编西北农林科技大学C语言上机实习4_第3页
新编西北农林科技大学C语言上机实习4_第4页
新编西北农林科技大学C语言上机实习4_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、精选文档精选文档PAGEPAGE14精选文档PAGE实习四答案1、字符串通接/*exer4-1两串字符连结*/由键盘随意输入两串字符,不用库函数strcat,连结将两串字符。输入:两串字符输出:连结将两串字符输入样例:abcdef输出样例:abcdef#include#includevoidmain(void)unsignedinti,j;charsoustr80,desstr80;/printf(pleaseentersoustr:);gets(soustr);/*输入原串*/printf(pleaseenterdesstr:);gets(desstr);/*输入目的串*/i=strlen(

2、soustr);/*取目的串尾部地点*/for(j=0;j=strlen(soustr);j+,i+)soustri=desstrj;/*将原串挨次接入目的串尾部*/puts(soustr);2、简单加密程序/*exer4-2字符加密*/由键盘随意输入一串字符,对其进行加密,加密原则为:假如为字母,将其循环右移2个字母,其余字符保持不变。输入:一串字符输出:加密后的字符串输入样例:abl2CDxyz输出样例:cdl2EFzab提示:1.可用gets()和puts()输入输出字符串。利用ASCII码运算进行加密。3.循环右移的含义是:将a-z,AZ各当作一个环进行挪动,即y右移2个字母后为a,z

3、右移2个字母后为b;Y右移2个字母后为A,Z右移2个字母后为B。#include#includevoidmain(void)unsignedintj;charsoustr80,secstr80;/printf(pleaseentersoustr:);gets(soustr);/*输入原串*/for(j=0;j=A&soustrj=a&soustrj=z)secstrj=(soustrj-a+2)%26+a;/*计算小写字母密文*/elsesecstrj=soustrj;/*其余字符不变*/puts(secstr);3、矩阵对角线元素乞降/*exer4-3主和辅对角线上元素之和*/输入一个55的

4、数组,分别求其主对角线和辅对角线上元素之和。输入:55的数组输出:主对角线和辅对角线上元素之和输入样例:12345678910111213141516171819202122232425输出样例:6565主对角线为从矩阵的左上角至右下角的连线,在数组中即指队列下标同样的元素,辅对角线为从矩阵的右上角至左下角的连线,这些元素的下标之间也可用相应的表达式表达。#include#includevoidmain(void)inti,j;inta55;intsum1=0,sum2=0;/printf(pleaseentersoustr:);for(i=0;i5;i+)for(j=0;j5;j+)scan

5、f(%d,&aij);/*输入数组*/for(i=0;i5;i+)sum1=sum1+aii;sum2=sum2+ai4-i;/*/*主对角线辅对角线*/*/printf(%d%dn,sum1,sum2);4、数据次序调整/*exer4-4将最大数调到最前面,最小数调到最后边*/由键盘随意输入10个数,将最大数调到最前面,最小数调到最后边。输入:随意10个数输出:数据调整后的10个数。输入样例:0123456789输出样例:9123456780提示:定义四个变量d1、d2、x1、x2,分别寄存最大数、最小数及它们的地点;在循环开始前,将第一个元素作为参照,将其值分别存入d1、x1,将其下标分别

6、存入d2、x2;在循环中将其余元素逐个与d1比较,若比d1大,将其存入d1,并将其下标存入d2;不然将其与x1比较,若比x1小,将其存入x1,并将其下标存入x2;结束循环后,将d2所示地点的数与第一个数互换,将x2所示地点的数与最后一个数互换,而后输出数组全部元素即可。#include#includevoidmain(void)inti,a10,temp;intkmax=0,kmin=0;/printf(pleaseenter:);for(i=0;i10;i+)/*输入数组*/scanf(%d,&ai);for(i=0;iakmax)kmax=i;/*找最大数地点*/elseif(aiakmi

7、n)kmin=i;/*找最小数地点*/if(kmax=9&kmin=0)temp=a0;a0=akmax;akmax=temp;/*与最前面的数互换*/elsetemp=a0;a0=akmax;akmax=temp;/*与最前面的数互换*/temp=a9;a9=akmin;akmin=temp;/*与最后边的数互换*/for(i=0;i9;i+)printf(%d,ai);/*输出数组*/printf(%dn,ai);5、字符个数统计/*exer4-5统计大写字母、小写字母、数字及其余字符的个数*/由键盘输入随意一串字符串,将其存入一个字符数组,统计此中的大写字母、小写字母、数字以及其余字符的

8、个数。输入:随意一串字符串输出:大写字母、小写字母、数字以及其余字符的个数。输入样例:abcdefg123456ABCDEFG输出样例:776#include#includevoidmain(void)unsignedinti;intcap=0,low=0,dig=0,oth=0;/*定义并初始化*/charstr80;/printf(pleaseenterstr:);gets(str);/*输入原串*/for(i=0;i=A&stri=a&stri=0&stri=9)dig+;/*统计数字*/elseoth+;/*统计其余字符*/printf(%d%d%d%dn,cap,low,dig,ot

9、h);6、学生成绩计算/*exer4-6求每一个学生的总成绩和均匀成绩*/已知10个学生的5门课程的成绩,将其存入一个二维数组,求每一个学生的总成绩和每一个学生的均匀成绩。输入:10个学生的5门课程的成绩输出:每一个学生的总成绩和每一个学生的均匀成绩输入样例:90.580708984.691.581718884.792.582728784.893.583738684.994.584748584.095.585758484.196.586768384.297.587778284.398.588788184.499.589798084.5输出样例:414.10000682.820000416.20

10、001283.240005418.29998883.659996420.39999484.080002421.50000084.300003423.60000684.720001425.70001285.139999427.79998885.559998429.89999485.979996432.00000086.400002#includevoidmain(void)inti,j;floatscore105=0.0f;floatallsco10,avesco10;for(i=0;i10;i+)for(j=0;j5;j+)scanf(%f,&scoreij);/*输入学生的成绩*/for(i

11、=0;i10;i+)allscoi=0;/*总成绩清零*/for(j=0;j5;j+)allscoi=allscoi+scoreij;/*累加总成绩*/avescoi=allscoi/5;/*计算均匀成绩*/for(i=0;i10;i+)printf(%f%fn,allscoi,avescoi);/*输出成绩*/7、姓名排序/*exer4-7姓名排序*/由键盘随意输入10个学生的姓名(以拼音形式),将它们依据ASC码的次序从小到大排序。输入:10个学生的姓名(以拼音形式)输出:依据ASC码的次序从小到大排序输入样例:zhangziangzaangzbangzcangzdangzeangzfan

12、gzgangzhang输出样例:zaangzbangzcangzdangzeangzfangzgangzhangzhangziang#include#includevoidmain(void)inti,j,k;charname1080,temp80;/printf(pleaseenter:);for(i=0;i10;i+)gets(namei);/*输入姓名数组*/for(i=0;i9;i+)/*排序*/k=i;for(j=i+1;j0)k=j;if(k!=i)strcpy(temp,namei);strcpy(namei,namek);strcpy(namek,temp);/*互换*/for

13、(i=0;i10;i+)puts(namei);/*输出姓名数组*/8、输出杨辉三角形/*exer4-8打印杨辉三角形*/编程实现n阶(n10)杨辉三角形的输出,n=6时,杨辉三角形以下所示:11112113311464115101051输入:杨辉三角形的阶数n。输出:n阶杨辉三角形。输入样例:6输出样例:11112113311464115101051提示:杨辉三角形的特色:第一列和对角线上的元素值均为的值=上一行本列元素值+上一行前一列元素值,如第三行第二列1,即ai0=aii=1;其余地点元素2就是第二行第一列+第二行第二列,计算公式为aij=ai-1j-1+ai-1j。应先对第一列和对角线元素赋值,而后再为其余元素赋值。#includevoidmain(void)inti,j;inta66;for(i=0;i6;i+)aii=1;ai0=1;/*/*主对角线为第1列为1*/1*/for(i=2;i6;i+)for(j=1;ji;j+)aij=ai-1j-1+ai-1j;/*计算*/for(i=0;i6;i+)for(j=0;j=i;j+)printf(%d,aij);printf(n);/*输出*/*换行*/或许#include#in

温馨提示

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

评论

0/150

提交评论