




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言练习题1.从键盘输入是20个数,按照从小到大的顺序排列。 #includemain()int i,j,c20,a;for(a=0;a20;a+) scanf(%d,&ca);for(i=0;i20;i+) for(j=i;j20;j+) if(ci0;a-) printf(%d ,ca);printf(n);2.键盘输入1,2,3,4,5,6,7,分别显示Monday, Tuesday. Sunday,但是程序有错误的地方,请修改。#includemain() int a; printf(input integer number: ); scanf(%d,&a); switch (a)case 1:printf(Mondayn);break;case 2:printf(Tuesdayn);break;case 3:printf(Wednesdayn);break;case 4:printf(Thursdayn);break;case 5:printf(Fridayn);break;case 6:printf(Saturdayn);break;case 7:printf(Sundayn);break; default:printf(errorn); 3. 说明下面程序的功能。并说明在输入字符串是scanf()和gets()的区别。#include void main()char string80;int i=0;gets(string);while(stringi!=0)if(stringi=a&stringi=z)stringi=stringi-32;i+;printf(%s,string);输入一个长度为80的字符串,将其中的小写字母变为大写字母,其他的不变。gets函数可以一次接收一行输入串,其中可以有空格,也就是说空格可以做为字符串的一部分输入.scanf函数接收的字符串不会含有空格,即遇到字空格时,认为字符串输入结束,也就是说空格是scanf默认的结束符号。4. 输入一个三位数,判断它是不是水仙花数。水仙花数是指三位数的各位数字的立方和等于这个三位数本身。例如:153=1*1*1+5*5*5+3*3*3#include void main()int a,num1,num2,num3; /定义四个数,属于整形printf(请输入一个三位数字n); scanf(%d,&a); /输入一个三位数字num1=a/100; /求出三位数字是千位num2=a/10-num1; /求出三位数字是百位num3=a%10; /求出三位数字的个位if(num1*num1*num1+num2*num2*num2+num3*num3*num3=a)/判断是否等于其本身printf(这个数是水仙花数!);else printf(这个数不是水仙花数!);5. 写出下面的程序的功能。#include void main() int i,j,k;for(i=1;i=6;i+) for(j=1;j=20-2*i;j+)printf( );for(k=1;k=i;k+)printf(%4d,i);printf(n); 答:输出一个等腰三角形,第一行为1,第二行为2,以此类推,第六行为66. 用/41/21/3+1/41/5+公式求的近似值,直到最后一项的绝对值小于10-6为止。#include #include void main() int s; float n,t,pi;t=1; pi=0; n=1.0; s=1;while (fabs(t)1e-6) pi=pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; printf(pi=%10.6f n,pi); 已运行Pi=3.1415947. 程序如下,用来计算一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.前20项之和,请写出t的作用。main() int n,t,number=20; float a=2,b=1,s=0; for(n=1;n=number;n+) s=s+a/b; t=a; a=a+b;b=t; printf(sum is %9.6fn,s);存储中间数据,已达到累加的效果8. 编写一个函数,其形参是一维数组,它用来计算所输入的数组的元素的平均值。然后编写主函数,调用这个函数,用来计算一个班30个同学某一门功课的平均成绩。#include double F(double *a) double res = 0.0; for (int i = 0; i 30; i+) res += ai; return (1.0*res/30);int main() double m30; for (int i = 0; i 30; i+) scanf(%lf, &mi); printf(%.2lfn, F(m); return 0;9.下面的程序是用来统计一行字符中字母的个数。请编写一个函数fun(),用来完成这个工作,请再主函数中输入字符,调用函数fun()来完成统计,并在主函数中输出。#include fun(char string,int a,int i)for(i=0;stringi!=0;i+)a+;return a;void main()char string80=I am a student.;char letter;int i=0,sum=0;letter = string0;while(letter!=0)if(stringi=a&stringi=A&stringi=Z) sum = sum + 1;i+;letter = stringi;printf(i=%dn,i);printf(sum=%dn,sum);10.在C语言中,一维数组的数组名,就是数组的首地址,请编写程序验证这个说法。#include main() int a10=1,4,2,7,3,12,5,34,5,9,i,max,pos; max = a0; pos = 0; for ( i=1; i ai) max = ai; i = pos; printf(The max is: %d ,pos is: %dn, max , pos); 求这个数组的最小值以及其下标11. 在C语言中,二维数组是特殊的一维数组,这个一维数组的每一个元素又是一个一维数组。对于一个3行4列的二维数组,请编写程序验证:每一行的第一个元素的地址,就是对应的一维数组的每一个元素的地址。 #include #include void max(int a4, int k, int *x, int *y, int *z); int main(void) int a34 = 1, 2, 3, 4, 8, 12, 11, 10, 5, 6, 7, 9; int m, n; int num; max(a, 3, &num, &m, &n); printf(The max integer in array a is : a%d%d = %dn, m, n, num); return 0; void max(int a4, int k, int *x, int *y, int *z) int i, j, m, n; int num = a00; for(i = 0; i k; i+) for(j = 0; j num) m = i; n = j; num = amn; *x = num; *y = m; *z = n; 12. 对于一个3行4列的二维数组,求出其中的最大值,并且给出最大的值所在的行和列。#include void main() int i,j,row = 0 ,colum = 0,max; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max = a00; for(i=0;i=2;i+) for(j=0;jmax) max = aij; row = i; colum = j; printf(max=%dn,row = %dn,colum = %dn,max,row,colum); 13. 下面的程序是完成五个字符串的输出。#include void main() char *s=man,woman,girl,boy,sister;int k; for(k=0;k5;k+)printf(%sn,sk);现在改写成下面的程序,请填空,现实相同的功能。#include void main() char *s=man,woman,girl,boy,sister;char *q;int k; for(k=0;k5;k+) q=s+k ; /*这里填写什么语句*/ printf(%sn,*q); 14利用递归方法求出1到5的阶乘,请填空。#include stdio.hint fact(int j)int sum;if(j=0) sum=1;else sum=j*fact(j-1);return sum;void main()int i;for(i=0;i5;i+)printf(%d!=%dn,i,fact(i);15. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 #includeint main(void) /输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 char ch; int char_num=0,kongge_num=0,int_num=0,other_num=0; while(ch=getchar()!=n)/回车键结束输入,并且回车符不计入 if(ch=a&ch=z|ch=a) char_num+; else if(ch= ) kongge_num+; else if(ch=0&ch=9) int_num+; else other_num+; printf(字母= %d,空格= %d,数字= %d,其它= %dn,char_num,kongge_num,int_num,other_num); return 0;16.写出下面程序的功能;下面的程序在输入和提示信息方面有不完善的地方,能否进一步改进。#include#define N 1024 /*定义一个学生结构体*/struct studentchar number10;char name10;char sex4;int Math;int English;int Physics;int Average;stuN;int main()int i=0,k=0,j=0; while(1)printf(1-录入,2-退出并排序n);scanf(%d,&j);if(j=2)break;elseprintf(请输入学号:);scanf(%s,stui.number);printf(请输入姓名:);scanf(%s,);printf(请输入性别:);scanf(%s,stui.sex);printf(请输入数学、英语、物理的成绩:n);scanf(%d%d%d%,&stui.Math,&stui.English,&stui.Physics); stui.Average=(stui.Math+stui.English+stui.Physics)/3;i+;k=i; /*平均成绩排序*/for(i=0;ik-1;i+)for(j=i+1;jk;j+)if(stui
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓储文员岗位面试问题及答案
- 采购总监岗位面试问题及答案
- 2025届广东省广州市广东二师番禺附中化学高一下期末检测模拟试题含解析
- 2025届陕西省铜川市高二化学第二学期期末达标检测试题含解析
- 农业监督项目管理办法
- 园区绿化养护管理办法
- 医保总额付费管理办法
- 保健食品销售管理办法
- 复合地层盾构掘进管线保护与地层加固优化方案研究
- 家驴MRFs基因家族的全基因组鉴定与转录组学分析探究
- 2023-2024年全科医学(正高)考试高频题库(历年考点版)带答案解析
- YY/T 0870.2-2019医疗器械遗传毒性试验第2部分:体外哺乳动物细胞染色体畸变试验
- JJG 40-2011X射线探伤机
- GB/T 8923.1-2011涂覆涂料前钢材表面处理表面清洁度的目视评定第1部分:未涂覆过的钢材表面和全面清除原有涂层后的钢材表面的锈蚀等级和处理等级
- GB/T 7778-2017制冷剂编号方法和安全性分类
- GB/T 4169.4-2006塑料注射模零件第4部分:带头导柱
- 天津2023年天津银行信息技术岗招聘黑钻模拟III试题3套含答案详解
- 01-TOC约束理论(瓶颈管理)八讲 作业
- 《国家学生体质健康标准》登记卡(高中样表)
- 静脉炎的分级及护理课件
- 折让证明模板
评论
0/150
提交评论