




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 1/*身高预测 每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为:男性成人时身高 = (faHeight + moHeight) * 0.54(cm)女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。*/#include <stdio.h>v
2、oid main() double faHeight,moHeight,h,h1=0,h2=0; char sex,sports,diet; printf("请输入父亲身高(cm)"); scanf("%lf",&faHeight); printf("请输入母亲身高(cm)"); scanf("%lf",&moHeight); printf("请输入孩子性别(F:女性,M:男性)"); scanf("%*c%c",&sex); printf("
3、;是否喜爱体育锻炼?(Y/N)"); scanf("%*c%c",&sports); printf("是否有良好的卫生饮食习惯?(Y/N)"); scanf("%*c%c",&diet); if(sex='M' | sex='m') h=(faHeight + moHeight) * 0.54; else h=(faHeight * 0.923 + moHeight) / 2; 2*输入一个学生的两门课成绩(百分制),计算该学生的总分并要求输出成绩等级'A'、&
4、#39;B'、'C'、'D'、'E'。 总分在180分以上为'A',160179分为'B',140159分为'C',120139分为'D',120分以下为'E'。*/#include <stdio.h>void main() int a,b; printf("请输入两门课的成绩(百分制):"); scanf("%d%d",&a,&b); if(a<0 | a>100 | b<
5、0 | b>100) printf("输入错误(成绩应为百分制)!"); else switch(a+b)/20) case 20: case 19: case 18: printf("%d -> A",a+b); break; case 17: case 16: printf("%d -> B",a+b); break; case 15: case 14: printf("%d -> C",a+b); break; case 13: case 12: printf("%d -&g
6、t; D",a+b); break; default: printf("%d -> E",a+b); if(sports='Y' | sports='y') h1=0.02; if(diet='Y' | diet='y') h2=0.015; printf("孩子身高为:%.2f(cm)",h*(1+h1+h2);/*题目: 3 在200,900范围内同时满足以下两个条件的十进制数:(1)其个位数字与十位数字之和除以10所得的余数是百位数字;(2)该数为素数;问:有多少个这样
7、的数,并逐一显示(每行显示5个)。*/#include <stdio.h>#include <math.h>void main() int i,j,m,a,b,c,flag; m=0; for(i=201;i<900;i+=2) a=i/100; b=i/10%10; c=i%10; if(b+c)%10 = a) flag=1; for(j=2;j<=(int)sqrt(i);j+) if(i % j =0) flag=0;break; if(flag=1) printf("%4d",i);m+; if(m%5=0) printf(&q
8、uot;n"); printf("这样的数有%d个",m); 4/* 编程输出如下上三角形式的九九乘法表。1 2 3 4 5 6 7 8 9- - - - - - - - -1 2 3 4 5 6 7 8 9 4 6 8 10 12 14 16 18 9 12 15 18 21 24 27 16 20 24 28 32 36 25 30 35 40 45 36 42 48 54 49 56 63 64 72 81*/#include <stdio.h>void main() int i,j; for(i=1;i<10;i+) printf(&qu
9、ot;%-4d",i); printf("n"); for(i=1;i<10;i+) printf("%-4c",'-'); printf("n"); for(i=1;i<10;i+) for(j=1;j<i;j+)printf("%-4c",' '); for(j=i;j<10;j+)printf("%-4d",i*j); printf("n"); 5/*打印fabonacci数列的前20项,该数列前两项为1
10、,以后各项均为前相邻两项之和*/#include <stdio.h>void main() int fa20; int i; fa0=fa1=1; for(i=2;i<20;i+) fai=fai-1+fai-2; printf("fabonacci数列的前20项n"); for(i=0;i<20;i+) printf("%-6d",fai); if(i+1)%5=0) printf("n"); 6/*从键盘输入一个班学生(最多30人)的成绩,然后按降序进行排列*/#include <stdio.h>
11、;#define N 30void main() double sN,t; int n, i, j; printf("请输入学生人数:"); scanf("%d",&n); for(i=0;i<n;i+) printf("请输入第%d个学生的成绩:",i+1); scanf("%lf",s+i); for(i=0;i<n-1;i+)for(j=i+1;j<n;j+) if(si<sj) t=si; si=sj; sj=t; printf("n降序排序后成绩n");
12、 for(i=0;i<n;i+) printf("%.2fn",si); 7/*从键盘输入一个班学生(最多30人)的成绩,然后按降序进行排列*/#include <stdio.h>#define N 30void main() double sN,t; int n, i, j; printf("请输入学生人数:"); scanf("%d",&n); for(i=0;i<n;i+) printf("请输入第%d个学生的成绩:",i+1); scanf("%lf",s
13、+i); for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+) if(sj<sj+1) t=sj; sj=sj+1; sj+1=t; printf("n降序排序后成绩n"); for(i=0;i<n;i+) printf("%.2fn",si); 8/*从键盘输入一个班学生(最多30人)的成绩,然后按降序进行排列*/#include <stdio.h>#define N 30void main() double sN,t; int n, i, j, k; printf("请输入学生人数:
14、"); scanf("%d",&n); for(i=0;i<n;i+) printf("请输入第%d个学生的成绩:",i+1); scanf("%lf",s+i); for(i=0;i<n-1;i+) k=i; for(j=i+1;j<n;j+) if(sk<sj) k=j; if(k!=i) t=sk; sk=si; si=t; printf("n降序排序后成绩n"); for(i=0;i<n;i+) printf("%.2fn",si); 9/
15、*编写一个程序,利用字符数组实现两个字符串的比较。*/#include <stdio.h>#define N 80int strbj(char s1,char s2) int i=0; while(s1i=s2i)if (s1i='0') return 0;else i+; return s1i-s2i;void main() char s1N, s2N; int k; printf("请输入第一个字符串"); gets(s1); printf("请输入第二个字符串"); gets(s2); k=strbj(s1,s2); i
16、f(k>0) printf("%s > %s ", s1,s2); else if (k<0) printf("%s < %s ", s1,s2); else printf("%s = %s ", s1,s2); 10/*编写程序,输出2n之间的所有素数,n由键盘输入。要求判断素数的过程要写在函数中,由主函数调用实现,并写出2组以上程序运行结果。*/#include <stdio.h>#include <math.h>int sushu(int m) int i; for(i=2;i&l
17、t;(int)sqrt(m);i+)if (m%i=0) return 0; return 1;void main() int n,i,count=0; printf("input n: "); scanf("%d",&n); printf("2 %d 之间的素数有:n",n); for(i=2;i<=n;i+)if(sushu(i)=1) count+; printf("%-6d ",i); if(count%5=0) printf("n"); printf("n&qu
18、ot;); 11/*编程实现输入8个学生某门功课的成绩,用函数求出平均分,并在主函数中输出平均分以及高于平均分的同学的成绩。*/#include <stdio.h>#define N 8double aver(double s) int i; double sum=0; for(i=0;i<N;i+)sum+=si; return sum/N;void main() double sN,a; int i; for(i=0;i<N;i+) printf("请输入第%d个学生的成绩:",i+1); scanf("%lf",s+i);
19、printf("平均分为:%.2fn",a=aver(s); printf("高于平均分的成绩有n"); for(i=0;i<N;i+)if(si>a) printf("%.2f ",si); 12/*下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even返回偶数之和。*/#include <stdio.h>#define N 10void fun(int *a,int n,int *odd,int *even) int i; *od
20、d=*even=0; for(i=0;i<n;i+)if(*(a+i)%2=0) *even+=*(a+i);else *odd+=*(a+i);void main() int aN=1,10,2,3,19,6,i,n=6,odd,even; printf("The original data is:n"); for(i=0;i<n;i+) printf("%5d",*(a+i); printf("nn"); fun(a,n,&odd,&even); printf("The sum of odd
21、numbers:%dn",odd); printf("The sum of even number:%dn",even); 13/*编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str。*/#include <stdio.h>#define N 80void dele(char *s,char ch) char *q; q=s; while(*s!='0') if(*s!=ch) *q=*s; q+; s+; *q='0'void main()
22、char strN, ch; printf("请输入字符串:"); gets(str); printf("请输入要删除的字符:"); ch=getchar(); dele(str,ch); printf("删除%c后的字符串为n",ch); puts(str); 14/*某单位进行选举,有5位候选人:zhang、wang、li、zhao、liu。编写一个统计每人得票数的程序。要求每个人的信息使用一个结构体表示,5个人的信息使用结构体数组。*/#include <stdio.h>struct usr char name50;
23、 int num;void main() int i,n; struct usr user5="zhang",0,"wang",0,"li",0,"zhao",0,"liu",0; printf("请输入选票,5位选手的编号分别是1、2、3、4、5,当输入非选手编号时输入结束:n"); scanf("%d",&n); while(n=1 | n=2|n=3|n=4|n=5) usern-1.num+;scanf("%d",&am
24、p;n); for(i=0;i<5;i+) printf("%s得票:%dn",,useri.num); 15/*设张三20岁、李四22岁、王平23岁,编程输出3人中年龄最小者的姓名和年龄*/#include <stdio.h>struct usr char name50; int age;void main() int i,j; struct usr user3="张三",20,"李四",22,"王平",23; j=0; for(i=1;i<3;i+) if(useri
25、.age<userj.age) j=i; printf("年龄最小的是 %s,年龄 %d岁n",,userj.age); 16 /*编写一个程序,将5个字符串写入文件中。*/#include <stdio.h>#include <stdlib.h>void main() int i; char str100; FILE *fp; fp=fopen("text.txt","w"); if(fp=NULL) printf("不能打开这个文件"); exit(0); pr
26、intf("请输入5个字符串:n"); for(i=0;i<5;i+) scanf("%s",str);fprintf(fp,"%sn",str); fclose(fp); 17/*根据程序提示从键盘输入一个已存在的文本文件的完整文件名,再输入一个新文本文件的完整文件名,然后将已存在的文本文件中的内容全部复制到新文本文件中*/#include <stdio.h>#include <stdlib.h>void main() char ch,frname50,fwname50; FILE *fr,*fw; p
27、rintf("请输入原文件名:"); scanf("%s",frname); printf("请输入新文本文件名:"); scanf("%s",fwname); fr=fopen(frname,"r"); if(fr=NULL) printf("不能打开%s文件",frname); exit(0); fw=fopen(fwname,"w"); if(fw=NULL) printf("不能打开%s文件",fwname); exit(0);
28、 ch=fgetc(fr); while(!feof(fr) fputc(ch,fw);ch=fgetc(fr); fclose(fr); fclose(fw);改后的修改原因2.程序编译(compile)拼写错误中所涉及的各种对象为主要考虑因素。用词错误数的前缀字符0x,x前面是数字0而不是字符o),由数字09、字母AF或af组成。描述更准确一些C语言中,用编译预处理命令#define(第6章介绍)来定义符号变量。在一个程序的同一个语句块中变量不允许重复定义。内存空间为1字节,取值范围为-128127。自右至左见文档“2.图表和代码的更改”删除这句话数为pow(x,y),漏掉,y而操作数中至
29、少有一个为实型数据时,择结果为双精运算b%2!=0的结果为1,得表达式0&&1 逻辑运算0&&1的结果为0,即整个表达式的计算结果为0。例 2.19 假设有整型变量a=2,b=1和x,计算表达式a<b?(x=5):a>b?(x=6):(x=7)的值。根据条件运算符的右结合性,计算表达式a<b?(x=5):a>b?(x=6):(x=7)的值,相当于计算表达式a<b?(x=5):(a>b?(x=6):(x=7)的值。根据优先级,应首先计算a>b?(x=6):(x=7)的值。此表达式也是一个条件表达式,因表达式a>b为“
30、真”,所以表达式的值为6(x=6);于是表达式a<b?(x=5):(a>b?(x=6):(x=7)化简为a<b?(x=5):6,因表达式a<b为“假”,故整个表达式的值为6。表达式2是a+10/* 将变量c转换成单精度型再与4相除(强制类型转换的操作数是c) */ 求表达式(float)c/4的值,删除这句话则sizeof(x)=4,sizeof(z)=4,sizeof(x+y)=4,sizeof(double)的值删除等号以指数形式输出实数(隐含6位小数,共13位)见文档“2.图表和代码的更改”表2-7 printf函数常用的格式符float r,h,v,s; /*
31、定义r,h,v,s为单精度实型变量 */float a,b,c,p,s; /* 定义a,b,c,p,s为单精度实型变量 */值小32,即'E'+32会得到小写字母e的ASCII码值101。4.下列可以正确表示字符常量的是()。从第3章开始,为了节省篇幅省略了printf("max=%dn",b); /* 若ab,则输出b的值 */float score; /* 定义实型变量score,用以表示成绩 */float score; /* 定义实型变量score,用以表示成绩 */float score; /* 定义实型变量score,用以表示成绩 */y=3*x
32、+5; /* 若x2,则y=3x+5 */x2=-1.500000 - 1.658312icase 8: printf("%d: Bn",score); break; /* 80score<90,等级为B */grade=10或9、grade=8、grade=7、grade=6、grade=5或4、3、2、1、0见文档“2.图表和代码的更改”与下面的横线连接起来见文档“2.图表和代码的更改”printf("divisor is zero!n"); /* 若除数为0,则输出提示信息 */删除选项删除选项1.判断字符型变量ch为小写字母的表达式是 。f
33、loat i=1,temp=1,sum=0; /* 定义实型变量i、temp、sum,并对其赋初值 */通过该例题希望大家掌握正负相间问题的处理方法。这里sign是每一项的符号,循环体内的语句sign=-sign,每循环一次改变一次符号。sign的初值等于1,循环一次,执行sign=- sign,sign变成-1,再循环一次,执行sign =-sign,sign又变成1。这样一正一负可以处理像这样正负相间的问题。sum=5050float score,sum=0,ave;删除注释i=1见文档“2.图表和代码的更改”float score,max,min; /* 定义实型变量score,max,
34、min */图4-11(a)中 输出i的值 框后面有箭头线,与右边的线连接见文档“2.图表和代码的更改”菱形框i<=100右边箭头的Y改为N,下边箭头的N改为Yi%9=0i%9=0见文档“2.图表和代码的更改”if(b>5) /* 若b>5,则结束整个循环 */for(j=1;j<=40-k;j+) /* 此循环用于控制星号前的空格 */k%5见文档“2.图表和代码的更改”斐波纳契数列的规律是:除了第一个数和第二个数之外,每个数等于前两个数之和。其可以用数学上的递推公式来表示:x=x1*/180见文档“2.图表和代码的更改”|temp|>=10-6输出无解信息见文
35、档“2.图表和代码的更改”m%i=0flag=0,并用break跳出循环这个框的下方连线不要scanf("%d",&m); /* 从键盘输入变量m的值 */去掉lwhile(m<=2); /* 若m>2,则结束do.while循环 */ for(n=num1;n<=num2;n+) /* 循环用于从键盘上输入两个正整数,并假设num1num2 */例如,a5,name50,list515等。static char c8; /* 说明静态字符型数组c有8个元素 */*对第2号元素赋值*/ /*对第1号元素赋值*/ /*对第0号元素赋值*/*对第1号元
36、素赋值*/int a=1,3,5,7,9;删除中的空格int a3=55,-1,0; char ch3='a','e','x' a0=55 ch0=aa1=-1 ch1=ea2= 0 ch2=x定义一个一维数组f20,则f0=1,f1=1,f2=f0+f1,f3=f1+f2,f19=f17+f18。向右以一些,与下面的对齐见文档“2.图表和代码的更改”输入要查找的数x, 置find=0见文档“2.图表和代码的更改”find=0见文档“2.图表和代码的更改”N下面的框中添加“ 输出找到信息”见文档“2.图表和代码的更改”见文档“2.图表和代码的更改
37、”int a34=1,2,3,4,5;for(i=0;i<N;i+) /* 通过双重循环输出矩阵b各元素的值 */删除之间的空格删除这句话定义数组xhN和cjNM,分别存放学号和成绩添加一个逗号;见文档“2.图表和代码的更改” averi=sum/M i=i+1 见文档“2.图表和代码的更改”可使用一个一维数组xhN存放n个学生的学号,使用一个二维数组cjNM存放n个学生m门课程的成绩,再使用一个一维数组averN存放n个学生的平均成绩。程序可以使用双重循环,在内循环中依次读入某一门课程的各个学生的成绩,并把每个学生的各科成绩累加起来,退出内循环后再把该累加成绩除以m,即求得平均成绩存放
38、在averN中。cou1=0, cou2=0,cou3=0见文档“2.图表和代码的更改”st1cou1=st2cou2见文档“2.图表和代码的更改”其调用者称为主调函数,被调用的函数称为被调用函数。例如,要对例6.1和例6.2 中被调用函数void line(char c,int n)和Long fac(int n)进行函数原型的声明,添加内容了6.5和例6.6中,可以写成:float average(float x)和Void cat_str(char str1,char str2)。添加内容了调用f1()函数(语句i);见文档“2.图表和代码的更改”float max,min; /* 定义
39、全局变量man、min */#define PI 3.1415926 /* 宏定义 */ #difine 标识符(形参表) 字符串#define PI 3.1415926s= 33.84 计算每一个等分点的函数值yi=f (a+ih) (i=0,1,2, n);p=&*p; /* 按优先级&*p等价于&(*p),(*p)就是变量x,再执行&x,即取变量x的地址,并将变量x的地址赋值给指针变量p。 对于p=&a,(*p)+表示使指针变量p所指向的存储单元的值自增 如果将第三行p+改为p=p+2,相当于把d变量的地址赋值给p,即执行了p=&d。程中,
40、形参的值发生变化,而实参中的值也会发生变化。 在函数square()内形参*pn的值的改变,the sorted string is: Cagmoprr添加空格void cpystr(char *ps,char *pd) /* 形参ps指向源字符串,而pd指向目标字符串 */ if(*(p+i)>64&&*(p+i)<91)在4次循环中,q分别取得了p0、p1、p2、p3的地址值,计数器c加1,void realloc(void )A 60 B 70C 80A 60 B 70C 80weekday一页都要改本程序定义了一个字符数组str,共11字节,在以读文本文件方
41、式打开文件ex96.c后,从中 pout=fopen("file2.dat","w"); 十进制数为13增加一个字本文档黄色底纹为修改后的:33页表2-5 运算符及其从高到低的优先级和结合性优先级运 算 符含 义运算量个数结 合 性1()括号运算符单目运算符自左至右 下标运算符->指向结构体成员运算符.成员运算符2! 逻辑非运算符单目运算符自右至左按位取反运算符+、- -自加、自减运算符-负号运算符(类型)强制类型转换运算符*、&指针和地址运算符sizeof取长度运算符3*、乘、除、求余运算符双目运算符自左至右4 +、-算术加、减运算符5 <<、>>位左移、右移运算符6<、<=、>、>=关系运算符7=、!=关系运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗仪器使用和维护手册
- 医药研发项目管理方案
- 安全文明施工措施费怎么算
- 怀化沅陵垃圾焚烧发电项目
- 安全技术措施施工方案
- 健康产业在线健康咨询服务平台开发与运营策略
- 科技创新经济发展形势
- 医疗健康大数据平台数据共享手册
- 登高安全作业施工方案
- 医疗机构疾病预防控制预案
- 2025年皖北卫生职业学院单招职业适应性测试题库必考题
- 切格瓦拉完整
- 光伏电站生产运维体系架构
- 隧道基本情况卡片
- 新概念第二册Lesson-1-A-private-conversation-课件
- 确有专长人员从事传统医学临床实践年限证明
- 2022年上海市学业水平考试生命科学试卷含答案
- 2022浙江农林大学博士入学考试英语
- 2022年云南省中考数学试题及答案解析
- 煤矿矿安全监测监控系统的选型设计
- 样板引路专项方案计划
评论
0/150
提交评论