《2022年c语言课后习题 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言课后习题 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.从键盘输入一个浮点数,输出该数(只输出小数点后两位)#include int main() float n; printf(please input a number: ); scanf(%f,&n); printf(%.2fn,n); return 0; 2.从键盘输入自己的学号,输出:xxxxxxxxxx :你好!#include #include int main() char str15; printf(please enter your study number: ); gets(str); printf(%s: 你好! n,str); return 0; 3 从键盘输入一个小写
2、字母,输出该字母的大写。#include void main() char ch; printf(please input a lowercase letter: ); ch=getchar(); ch=ch-32; printf(%cn,ch); 4.从键盘输入一个四位正整数,输出该数的各个位数字之和。#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - int main() int n,ge,shi,bai,q
3、ian; 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=%dn,ge+bai+shi+qian); return 0; 5 从键盘输入年月日,输出该日期是该年的第几天。输入: 2000-1-1 输出: 2000-1-1 是 2000 年的第 1 天输入: 2000-12-31 输出: 2000-12-31 是 2000 年的第 366 天#include int main() int month,day,year,sum
4、=0; printf(please input: year-month-dayn); 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=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
5、+31; if(year % 400 =0) |( year % 100 !=0) & (year % 4 =0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - if(month=3) sum=sum+day+1; else sum=sum+day; else sum=sum+day; printf(%d-%d-%d 是%d 的第 %d 天 .n,year,month,day,year,sum); return 0; 6回文
6、是指正向读和反向读都一样的一段数字或者文字,如 321123或 “able was I ere I saw elba” 。编写程序,输入一个6 位正整数,判断它是否是回文,非回文逆序输出。如果输入数不符合要求,则显示一个错误信息:“xxxx不是一个六位数” 。输出格式:“122221 是回文数 !” , “122223 不是回文数 . 它的逆序数是322221” 。#include int main() int m,n; printf(Please input a liuweishu:); scanf(%d,&m); if(m 999999) printf(%d is not a liuwei
7、shu.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; / 经过拆数过后重新组合的新数与原来的数互为回文数 if(m=n) printf(%d 是回文数 .,m); else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - -
8、 - - - - - 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 (i=1;i=n;i+) s=i*i*i; j+=s; printf(%dn,j); return 0; 8 从键盘输入行数n(1-40),输出如下图形 (设 n为 5): * * * * #include int main() int i,j
9、,n; printf(please input n:); scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(*); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - printf(n); return 0; 9 输出九九乘法表:1x1= 1 1x2= 2 2x2= 4 1x3= 3 2x3= 6 3x3= 9
10、 ,#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=%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(ab) c=b; 名
11、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - b=a; a=c; printf(%d %dn,a,b); for( ;b=a;b+) for(f=b,d=2;df/2) printf(%4d ,f); e=e+1; printf(n素数个数为 %dn,e); return 0; 11 使用 rand函数随机产生20 个整数并输出,然后按降序排列后再输出#include #include #include int main()
12、int a,i; srand(time(0); for(i=0;i20;i+) a=rand(); printf(%dt,a); return 0; 12 使用 gets 函数(用户可以输入空格)从键盘输入两个字符串s1 和 s2,然后统计 s1与 s2 的对应位上大于、等于和小于的次数并输出结果(判断次数以字符串短者为准) ,如:s1为“ abcdefghi”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - s2为“ dacc
13、fg ”则输出大于数2,等于数1,小于数3 #include int main() int i=0,dengyu=0,dayu=0,xiaoyu=0; char a20,b20; printf(please input 2 strings:n); gets(a); gets(b); while(ai+) if(aibi) dayu+; else if(ai=bi) dengyu+; else xiaoyu+; printf(dayu: %d nxiaoyu: %d ndengyu: %d n,dayu,xiaoyu,dengyu); return 0; 13 .输出杨辉三角形(根据输入的n 值
14、,输出n 行, n15)1 1 1 1 2 1 1 3 3 1 ,#include int main() int i,j,n,a100100; printf( 请输入数字 :); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - scanf(%d,&n); for(i=1;i=n;i+) ai1=aii=1; for(i=3;i=n;i+) for(j=2;ji;j+) aij=ai-1j+ai-1j-1; for(i=1;i=
15、n;i+) for(j=1;j=i;j+) printf(%4d,aij); printf(n); return 0; 14 输出 n 行 n 列( n 由键盘输入)的螺旋方阵,如n=5: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 #include int main(void) int i, j, k, n, begin, end; int a15*15, arr1515; printf(Enter n:(n=15)n); scanf(%d, &n); / 输入 n 的值 /* 将 1n*n 的值依次赋给
16、数组a 的各元素*/ for (k=0; kn*n; k+) ak = k + 1; begin = 0; end = n-1; i = 0; k = 0; /* 从第一行开始顺时针依次将螺旋矩阵存放到二维数组arr 中 */ while (begin end) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - /* 给二维数组arr 最上边一行的前n-1 个元素赋值(从左到右逐个赋值)*/ for (j=begin; jend
17、; j+) arrij = ak; k+; /* 给二维数组arr 最右边一列的前n-1 个元素赋值(从上到下逐个赋值)*/ for (i=begin; ibegin; j-) arrij = ak; k+; /* 给二维数组arr 最左边一列的n-1 个元素赋值(从下到上逐个赋值)*/ for (i=end; ibegin; i-) arrij = ak; k+; begin+; end-; i+; /* 如果矩阵的行、列数是奇数,则给最中间的元素赋值*/ if (begin = end) arrbeginend = ak; /* 输出矩阵*/ for (i=0; in; i+) for (
18、j=0; jn; j+) printf(%5d, arrij); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - return 0; 15 编写两个函数:主函数输入、输出及调用函数,符号函数完成函数运算。 -1 x0 #include int main() void fx(); printf(please enter a number:n); fx(); return 0; void fx() int i
19、,m=1,n=-1,k=0; scanf(%d,&i); if(i0) printf(fx=%dn,m); else if(i0) printf(fx=%d,n); else printf(fx=%d,k); 16 编写两个函数:主函数数组输入、数组输出及调用函数,功能函数对该数组元素按降序排序#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - int main() void fun(int array,int
20、 n); int a10,i; printf( 请输入 10 个数组元素 :n); for(i=0;i10;i+) scanf(%d,&ai); fun(a,10); printf( 数组元素按降序排列为:n); for(i=0;i10;i+) printf(%3d,ai); return 0; void fun(int array,int n) int i,j,k; for(j=0;jn-1;j+) for(i=0;in-j-1;i+) if(arrayiarrayi+1) k=arrayi; arrayi=arrayi+1; arrayi+1=k; printf(n); 17 使用带参数的main 函数完成两整型数求和差积商。如:设程序名称为te.exe 输入: te 1 + 2 输出: 3 输入: te 1 / 2 输出: 0.50(保留两位小数) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -