《c语言课后习题》word版

上传人:xt****7 文档编号:103433588 上传时间:2022-06-08 格式:DOCX 页数:11 大小:16.07KB
收藏 版权申诉 举报 下载
《c语言课后习题》word版_第1页
第1页 / 共11页
《c语言课后习题》word版_第2页
第2页 / 共11页
《c语言课后习题》word版_第3页
第3页 / 共11页
资源描述:

《《c语言课后习题》word版》由会员分享,可在线阅读,更多相关《《c语言课后习题》word版(11页珍藏版)》请在装配图网上搜索。

1、1. 从键盘输入一个浮点数,输出该数(只输出小数点后两位) #include int main() { float n; printf("please input a number: "); scanf("%f",&n); printf("%.2f\n",n); return 0; } 2.从键盘输入自己的学号, 输出: xxxxxxxxxx:你好! #include #include int main() { char str[15]; printf("please

2、 enter your study number: "); gets(str); printf("%s:你好!\n",str); return 0; } 3从键盘输入一个小写字母,输出该字母的大写。 #include void main() { char ch; printf("please input a lowercase letter: "); ch=getchar(); ch=ch-32; printf("%c\n",ch); } 4.从键盘输入一个四位正整数,输出该数的各个位数字之和。 #include

3、 int main() { int n,ge,shi,bai,qian; printf("please input a 4-digit: "); scanf("%d",&n); qian=n/1000; bai=n%1000/100; shi=n%100/10; ge=n%10; printf("sum=%d\n",ge+bai+shi+qian); return 0; } 5 从键盘输入年月日,输出该日期是该年的第几天。 输入:2000-1-1 输出:2000-1-1是2000年的第1天 输入:2000-12-

4、31 输出:2000-12-31是2000年的第366天 #include int main() { int month,day,year,sum=0; printf("please input: year-month-day\n"); scanf("%d-%d-%d",&year,&month,&day); switch(month-1) { case 11:sum=sum+30; case 10:sum=sum+31; case 9:sum=sum+30; case 8:sum=sum+31; case 7:sum=

5、sum+31; case 6:sum=sum+30; case 5:sum=sum+31; case 4:sum=sum+30; case 3:sum=sum+31; case 2:sum=sum+28; case 1:sum=sum+31; } if((year % 400 ==0) ||( year % 100 !=0) && (year % 4 ==0)) { if(month>=3) sum=sum+day+1; else sum=sum+day; } else sum=sum+day; printf

6、("%d-%d-%d是%d的第%d天.\n",year,month,day,year,sum); return 0; } 6回文是指正向读和反向读都一样的一段数字或者文字,如321123或“able was I ere I saw elba”。 编写程序,输入一个6位正整数,判断它是否是回文,非回文逆序输出。 如果输入数不符合要求,则显示一个错误信息:“xxxx不是一个六位数”。 输出格式:“122221是回文数!”,“122223不是回文数. 它的逆序数是322221”。 #include int main() { int m,n;

7、 printf("Please input a liuweishu:"); scanf("%d",&m); if(m < 100000 || m > 999999) { printf("%d is not a liuweishu.\n",m); } else { { n = m / 100000 % 10 + m / 10000 % 10 * 10 + m / 1000 % 10 * 100 + m / 100 % 10 * 1000 + m / 10 % 10 * 10000 + m % 10 * 100000; //经过拆数过后重新

8、组合的新数与原来的数互为回文数 } if(m==n) { printf("%d 是回文数.",m); } else { printf("%d 是回文数,它的逆序数为%d.",m,n); } } return 0; } 7 使用循环方式计算S=1立方+2立方+3立方+……+n立方 ,n值由键盘输入。 #include int main() { int s,n,j,i; printf("please input n:"); scanf("%d",&n); j=0; for (

9、i=1;i<=n;i++) { s=i*i*i; j+=s; } printf("%d\n",j); return 0; } 8 从键盘输入行数n(1-40),输出如下图形(设n为5): * *** ***** ******* #include int main() { int i,j,n; printf("please input n:"); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) { p

10、rintf(" "); } for(j=1;j<=2*i-1;j++) { printf("*"); } printf("\n"); } return 0; } 9 输出九九乘法表: 1x1= 1 1x2= 2 2x2= 4 1x3= 3 2x3= 6 3x3= 9 …… #include int main() { int n,i,j; for(n=1;n<=9;n++) { i=1; for(;i<=n;i++) { j=n*i; printf("%d*%d=

11、%2d",i,n,j); printf(" "); } printf("\n"); } return 0; } 10 随机生成两个不超过1000的随机数,统计这两个随机数之间有多少个素数(含这两个数),并输出。 #include #include #include int main() { int a,b,c,d,e=0,f; srand (time(0)); a=rand( )%1000; b=rand( )%1000; if(a

12、=a; a=c; } printf("%d %d\n",a,b); for( ;b<=a;b++) { for(f=b,d=2;d<=a/2;d++) { if(f%d==0) { break; } } if(d>f/2) {printf("%4d ",f); e=e+1; } } printf("\n素数个数为%d\n",e); return 0; } 11 使用rand函数随机产生20个整数并输出,然后按降序排列后再输出 #include #inc

13、lude #include int main() { int a,i; srand(time(0)); for(i=0;i<20;i++) { a=rand(); printf("%d\t",a); } return 0; } 12 使用gets函数(用户可以输入空格)从键盘输入两个字符串s1和s2,然后统计s1与s2的对应位上大于、等于和小于的次数并输出结果(判断次数以字符串短者为准),如: s1为“abcdefghi” s2为“daccfg” 则输出大于数2,等于数1,小于数3 #incl

14、ude int main() { int i=0,dengyu=0,dayu=0,xiaoyu=0; char a[20],b[20]; printf("please input 2 strings:\n"); gets(a); gets(b); while(a[i++]) if(a[i]>b[i]) { dayu++; } else if(a[i]==b[i]) { dengyu++; } else { xiaoyu++; } printf("dayu

15、: %d \nxiaoyu: %d \ndengyu: %d \n",dayu,xiaoyu,dengyu); return 0; } 13 .输出杨辉三角形(根据输入的n值,输出n行,n<15) 1 1 1 1 2 1 1 3 3 1 …… #include int main() { int i,j,n,a[100][100]; printf("请输入数字:"); scanf("%d",&n); for(i=1;i<=n;i++) a[i][1]=a[i][i]=1; for(i=3;i

16、<=n;i++) for(j=2;j

17、1 10 9 #include int main(void) { int i, j, k, n, begin, end; int a[15*15], arr[15][15]; printf("Enter n:(n<=15)\n"); scanf("%d", &n); //输入n的值 /* 将1~n*n的值依次赋给数组a的各元素 */ for (k=0; k

18、 /* 从第一行开始顺时针依次将螺旋矩阵存放到二维数组arr中 */ while (begin < end) { /* 给二维数组arr最上边一行的前n-1个元素赋值(从左到右逐个赋值) */ for (j=begin; j

19、组arr最下边一行的右边n-1个元素赋值(从右到左逐个赋值) */ for (j=end; j>begin; j--) { arr[i][j] = a[k]; k++; } /* 给二维数组arr最左边一列的n-1个元素赋值(从下到上逐个赋值) */ for (i=end; i>begin; i--) { arr[i][j] = a[k]; k++; } begin++; end--; i++; } /* 如果矩阵的行、列数是奇数,则给最中间的元素赋值 */ if (begin ==

20、 end) { arr[begin][end] = a[k]; } /* 输出矩阵 */ for (i=0; i0 #include int main()

21、{ void fx(); printf("please enter a number:\n"); fx(); return 0; } void fx() { int i,m=1,n=-1,k=0; scanf("%d",&i); if(i>0) { printf("fx=%d\n",m); } else if(i<0) { printf("fx=%d",n); } else printf("fx=%d",k); } 16 编写两个函数:主函数数组输入、数组输出及调用函数,功能函数对该数组元素按

22、降序排序 #include int main() { void fun(int array[],int n); int a[10],i; printf("请输入10个数组元素:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); fun(a,10); printf("数组元素按降序排列为:\n"); for(i=0;i<10;i++) printf("%3d",a[i]); return 0; } void fun(int array[],int n) { int i,j,k; for(j=0;j

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!