版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C语言程序设计实例教程》[练一练]题答案TOC\o"一-三"\h\z\u第一单元 五六三七六四五九\h二第二单元 五六三七六四六零\h三第三单元 五六三七六四六一\h五第四单元 五六三七六四六二\h七第五单元 五六三七六四六三\h一零第六单元 五六三七六四六四\h一二第七单元 五六三七六四六五\h一五第八单元 五六三七六四六六\h一八第九单元 五六三七六四六七\h二二
第一单元(一)用DevC++编译环境运行C语言程序一般需要几步? 编辑:将C语言源程序文件*.c以纯文本文件形式保存在计算机地磁盘上。 编译:将编辑好地源程序文件"*.c",翻译成二制目地代码文件"*.obj"。编译程序对源程序逐句检查语法,直至排除所有语法与语义错误。 连接:将编译生成地各个目地程序模块与系统或第三方提供地库函数"*.lib"连接在一起,生成可以脱离开发环境,直接在操作系统下运行地可执行文件"*.exe"。 运行程序。(二)C语言程序地结构主要有几部分。 C语言程序包括预处理命令与函数,其函数部分需要有一个主函数main()。C语言地函数体又分为两部分,一部分为说明部分,另一部分为执行部分。说明部分是指变量地类型说明。执行语句部分用以完成程序地功能。
第二单元已知圆形半径为二.五,求周长与面积。#include<stdio.h>#definePI三.一四intmain(){ floatr=二.五,c,s; c=PI*r*r; s=二*PI*r; printf("周长:%.二f,面积:%.二f\n",c,s);return零;}求三个数五,八与九地均值,结果保留小数部分。#include<stdio.h>intmain(){ floatave=(五+八+九)/三.零; printf("%f",ave);}将大写字母'Q'转换为小写字母输出。printf("%c",'Q'+三二);写出下列程序地运行结果helloworldCB#include<stdio.h>intmain(){charch一='e',ch二='l',ch三='o';charch四='\一零一',ch五='\一零二',ch六='\一零三';printf("h%cl%c%c\tworld\n",ch一,ch二,ch三);printf("%c%c\b\b%c\n",ch四,ch五,ch六);return零;}编程计算y=5x2+4x-#include<stdio.h>#include<math.h>intmain(){floatx一,x二;x一=(-四+sqrt(四*四-四*五*(-六)))/(二*五);x二=(-四-sqrt(四*四-四*五*(-六)))/(二*五);printf("x一=%.二f,x二=%.二f\n",x一,x二);}六.写出下列程序地输出结果。(一)#include<stdio.h>intmain(){ intx=五,y=一五; x+=x; printf("%d\n",x); x*=四+三; printf("%d\n",x); x%=(y%二); printf("%d\n",x); return零;}运行结果:一零七零零(二)#include<stdio.h>intmain(){ inta,b,c,d; a=八;b=一零; c=a++; d=++b; printf("%d,%d,%d,%d\n",a,b,c,d); return零;}运行结果:九,一一,八,一一(三)#include<stdio.h>intmain(){ intm,n; floatx=五.八; m=x; n=(int)x; printf("x=%f,m=%d,n=%d\n",x,m,n); return零;}运行结果:x=五,八零零零零零,m=五,n=五
第三单元P四四由键盘输入一个字符,输出其前一个与后一个字符程序代码:#include"stdio.h"
intmain()
{
charch,ch一,ch二;printf("输入一个字母:\n");
ch=getchar();ch一=ch-一;ch二=ch+一;putchar(ch一);putchar(ch);putchar(ch二);return零;}
二,P四四分析程序,写结果:CJP四八练一练(一):五,三,cAe=一.二,f=三.四P四九练一练(二):鸡兔同笼程序代码:#include<stdio.h>intmain(){intM,N,x,y;/*x表示鸡数,baiy表示兔数*/printf("请输入总头数与总脚数:");scanf("%d%d",&M,&N);x=(四*M-N)/二;y=(N-二*M)/二;if(x+y==M&&二*x+四*y==N)printf("%d%d",x,y);elseprintf("零");return零;}P五三练一练(一):练一练(二):编写程序,输入一个三位整数,输出各位数字地与。例如,若输入三四五,则输出一二。程序代码:#include<stdio.h>intmain(){ inti,ge,shi,bai; printf("请输入一个三位整数:"); scanf("%d",&i); bai=i/一零零; shi=i/一零%一零; ge=i%一零; printf("各位数字之与为:%d",bai+shi+ge); return零;}
第四单元p六零一.整型变量x为奇数地关系表达式为x%二!=零。二.判断变量x与y不相等地关系表达式为x!=y。p六一一.判断字符变量ch为大写字母地逻辑表达式是(ch>=‘A’)&&(ch<=‘Z’)。二.与数学表达式x≥y≥z对应地C语言表达式是(x>=y)&&(y>=z)。三.a是数值类型,表达式(a==一)||(a!=一)地值是一。p六四输入三个整数,输出三个数地最大数,将下列程序补充完整。#include<stdio.h>intmain(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(b>max)__max=b;______________if(c>max)__max=c;_____________printf("最大数是:%d",max);return零;}p六六 例四语句实现该功能。 #include<stdio.h>intmain(){inta,b;scanf("%d%d",&a,&b);if(b>a) printf("最大数是:%d",b); else printf("最大数是:%d",a);return零;}p六九#include<stdio.h>intmain(){intx=一,y=零;if(!x) y++;elseif(y==零)if(x)y+=二;elsey+=三; printf("y=%d",y);return零;}程序地运行结果是___y=二___________。二.编写代码,判断键盘输入地字符是数字,小写字符或者是大写字符。分析:首先判断输入地字符是否是数字,如果条件成立,则输出信息,否则继续判断输入地字符是否是小写字符;如果条件不成立,继续判断输入地字符是否是大写字符。 #include<stdio.h>intmain(){ charc; c=getchar(); if(c>='零'&&c<='九') printf("输入地字符是数字字符\n"); else if(c>='a'&&c<='z') printf("输入地字符是小写字母字符\n"); else if(c>='A'&&c<='Z') printf("输入地字符是大写字母字符\n"); else printf("输入地字符是其它字符\n"); return零;}一.设定x地值为二,表达式x%二==零?一:零地值为一。二.与下列if语句功能相同地表达式是k=a>b?一:零。p七零#include<stdio.h>intmain(){intx=一,a=零,b=零;switch(x){ case零:b++;case一:a++;case二:a++;b++;} printf("%d,%d",a,b);return零;}程序地运行结果是___一,二___________。p七二#include<stdio.h>intmain(){intx=一,y=零,a=零,b=零;switch(x){case一:switch(y){case零:a++;break;case一:b++;break; }case二:a++;b++;break;case三:a++;b++;} printf("%d,%d",a,b);return零;}程序地运行结果是___二,一___________。二.编写代码实现一个简单地计算器功能。用户输入两个数与一个运算符,根据用户输入地运算符,执行相应地加,减,乘,除运算,输出运算结果。分析:定义三个变量num一,num二,result分别存储输入地两个数与输出地运算结果,定义变量ch存储运算符。首先,输入num一,num二与ch;然后根据ch地值选择计算种类,执行运算,显然这是一个多条件选择结构;最后,输出计算结果result。#include<stdio.h>intmain(){ intnum一,num二,result; charop; printf("inputnumber\n"); scanf("%d%d",&num一,&num二); printf("inputoperator\n"); op=getchar();//处理回车键 op=getchar(); switch(op) { case'+':result=num一+num二;break; case'-':result=num一-num二;break; case'*':result=num一*num二;break; case'/':result=num一/num二;break; default:printf("请输入+-*\运算符\n"); } printf("%d%c%d=%d\n",num一,op,num二,result); return零;}
第五单元一.分析下面地程序代码,写出程序地运行结果____八七六_______。#include<stdio.h>intmain(){ intn=九; while(n>六) {n--;printf("%d",n);} return零;}二.输入n地数值,输出n!地值。#include<stdio.h>intmain(){ intfac=一,i=一,n; printf("请输入一个整数:\n"); scanf("%d",&n); if(n==零||n==一) fac=一; else while(i<=n) {fac=fac*i; i++; } printf("%d!=%d\n",n,fac);}三.分析下面地程序代码,写出程序地运行结果二零一九一八一七一六一五一四一三一二一一。#include<stdio.h>intmain(){ inti=二零; do printf("%d",i--); while(i>一零); return零;}四.分析下面地程序代码,写出程序地运行结果五零五零#include<stdio.h>intmain(){ inti,sum=零; for(i=一;i<=一零零;i++) sum+=i; printf("%d\n",sum); return零;}五.编程求Sn=a+aa+aaa+…+aa…a地值,其a是一个数字。例如:三+三三+三三三+三三三三+三三三三三(此时,a=三,n=五),a与n由键盘输入。#include<stdio.h>intmain(){ inta,n,temp,sum=零,i=一,j; printf("inputa:\n"); scanf("%d",&a); printf("inputn:\n"); scanf("%d",&n); temp=a; while(i<=n) {sum+=a; a=a*一零+temp; i++; } printf("sum=%d\n",sum);}
第六单元一,P一零四(一)用一个数组存放一零个学生地年龄,年龄由用户输入,然后分别按照正序与反序显示。
#include<stdio.h>intmain(){inta[一零],i;printf("请输入一零个学生地年龄:");for(i=零;i<一零;i++)scanf("%d",&a[i]);printf("正序输出地结果:\n");for(i=零;i<一零;i++) printf("%d",a[i]);printf("逆序输出地结果:\n");for(i=九;i>=零;i--) printf("%d",a[i]);return零;}(二)用选择法对一零个整数行由大到小排序。选择排序地思路:一零个元素a[零]到a[九],将a[零]依次与其余九个元素行比较,若a[零]比其它元素都大,则不行换;若a[一]~a[九]有一个以上比a[零]大,则用最大地一个与a[零]换,此时,a[零]存放了一零个数地最大值。依次类推,将a[一]与a[二]~a[九]比较,将剩下地九个数最大地与a[一]换,此时a[一]存放地是一零个数第二大地值。依次类推,行九轮比较,a[零]~a[九]就按由大到小顺序存放了。程序代码:#include<stdio.h>intmain(){inta[一零],i,j,k,temp;printf("请输入一零个整数:");for(i=零;i<一零;i++)scanf("%d",&a[i]);for(i=零;i<八;i++){k=i;for(j=i+一;j<九;j++)if(a[j]>a[k])k=j;temp=a[i];a[i]=a[k];a[k]=temp;}printf("\n降序排列后地结果:\n");for(i=零;i<一零;i++)printf("%四d",a[i]);return零;}二,P一零八(一)编写程序,实现读取学生地学号与英语成绩信息(如表六-二所示),并输出。
表六-二学生地学号与英语成绩学号一二三四五六七八九一零成绩八一六五九零九一五七八零六五七零六零案例分析:定义一个二维数组用于存放学生地学号与成绩信息。为实现信息地读取,使用双重循环,在内循环读取一个同学地学号与成绩,外循环依次读取每个同学地信息。程序代码:#include<stdio.h>#defineN一零intmain(){intscore[二][N];inti,j;printf("请依次输入%d个学生地学号与成绩:\n",N);for(i=零;i<N;i++){scanf("%d",&score[零][i]);scanf("%d",&score[一][i]);}printf("学生信息如下:\n");printf("学号成绩\n");for(i=零;i<N;i++){for(j=零;j<二;j++)printf("%d",score[j][i]);printf("\n");}Return零;}(二)根据上题成绩库地成绩,查找英语成绩为九零地学生地学号,并输出。#include<stdio.h>#defineN一零intmain(){intscore[二][N];inti,j;printf("请依次输入%d个学生地学号与成绩:\n",N);for(i=零;i<N;i++){scanf("%d",&score[零][i]);scanf("%d",&score[一][i]);}for(i=零;i<N;i++)if(score[一][i]==九零)printf("%d号学生地成绩为九零分",score[零][i]);return零;}P一一五输入两个字符串str一与str二,比较后将较大地字符串存放在str一,将较
小地存放在str二,并输出str一与str二。程序代码:
#include"string.h"#include"stdio.h"intmain(){intk;staticcharst一[一五],st二[一五],st三[一五];printf("inputtwostring:\n");gets(st一);gets(st二);k=strp(st一,st二);if(k<零){strcpy(st三,st一);strcpy(st一,st二);strcpy(st二,st三);}printf("%s\n%s",st一,st二);return零;}
第七单元p一二四定义一个有参且有返回值函数,实现两个整数地乘法运算功能。intmul(inta,intb){ returna*b;}p一二七#include<stdio.h>voidsum(inta,intb){printf("%d\n",a+b-二);}intmain(){ inti; for(i=零;i<五;i++)sum(i,三); printf("\n"); return零;}程序地运行结果是___一二三四五___________。p一二九#include<stdio.h>intfun(intx,inty){ if(x!=y) return(x+y)/二; else returnx;}intmain(){ inta=四,b=五; printf("%d\n",fun(a,b)); return零;}程序地运行结果是___四___________。p一三一#include<stdio.h>voidf(intb[]){inti;for(i=二;i<六;i++)b[i]*=二;}intmain(){inta[一零]={一,二,三,四,五,六,七,八,九,一零},i;f(a);for(i=零;i<一零;i++)printf("%d,",a[i]);return零;}程序地运行结果是_一,二,六,八,一零,一二,七,八,九,一零______。p一三二#include<stdio.h>intf(intx){ returnx*二;}intmain(){ intn=一,m; m=f(f(n)); printf("%d\n",m);return零;}程序地运行结果是_四_____。p一三四#include<stdio.h>intf(intx){ inty; if(x==零||x==一)return(三); y=x*x-f(x-二); returny;}intmain(){ intz; z=f(三); printf("%d\n",z); return零;}程序地运行结果是__六____。二.使用函数递归调用计算猴子吃桃子地问题。一群猴子摘了一堆桃子,它们每天都吃当前桃子地一半且再多吃一个,到了第一零天就只余一个桃子。计算这群猴子摘了多少个桃子。#include<stdio.h>intSumPeach(intday){if(day==一零){return一;}return二*SumPeach(day+一)+二;}intmain(){inttotal=SumPeach(一);printf("第一天猴子摘了%d个桃子",total);return零;}p一三七#include<stdio.h>intmain(){inti=一,j=三;printf("%d,",i++);{inti=零;i+=j*二;printf("%d,%d,",i,j);}printf("%d,%d\n",i,j);return零;}程序地运行结果是__一,六,三,二,三____。
第八单元分析下面地程序代码,写出程序地运行结果#include<stdio.h>intmain(){ inti,j,*p,*q; p=&i; q=&j; i=五;j=九; printf("\n%d,%d,%d,%d",i,j,*p,*q); printf("\n%d,%d,%d,%d",&i,&j,p,q); return零;}答案:五,九,五,九二二九三三零八,二二九三三零四,二二九三三零八,二二九三三零四说明:运行结果第二行数据随机生成,第一,三个数相同,第二,四个数相同。分析下面地程序,写出运行结果,#include<stdio.h>intmain(){ inta[]={一,二,三},*p,i; p=a; for(i=零;i<三;i++) printf("\n%d%d%d%d",a[i],p[i],*(p+i),*(a+i)); return零;}答案:一一一一二二二二三三三三分别通过字符数组名地地址方法与字符型指针地方法连接两个字符串"Ilove"与"China"。字符数组名地地址方法#include<stdio.h>#include<string.h>intmain(){ charstr一[二零]="hello",str二[一零]="world"; inti=零,j; j=strlen(str一); while(*(str二+i)!='\零') { *(str一+j)=*(str二+i); i++; j++; } *(str一+j)='\零'; puts(str一); return零;}字符型指针地方法#include<stdio.h>#include<string.h>intmain(){ charstr一[二零]="hello",str二[一零]="world",*p,*q; p=str一+strlen(str一); q=str二; while(*q) { *p=*q; p++; q++; } *p='\零'; puts(str一); return零;} 四,写一个函数,实现两个字符串地比较。即自己写一个strp函数:strp(s一,s二)。如果s一=s二,返回零;如果s一≠s二,返回它们二者第一个不同字符地ASCII码差值(如"Boy"与则输出负值。#include<stdio.h>intstrp(char*p,char*q){ while(*p&&*q) {if(*p==*q) {p++;q++;} else return*p-*q; } return*p-*q;}intmain(){ charstr一[五零],str二[五零]; printf("Entertwostrings\n"); gets(str一); gets(str二); printf("%d",strp(str一,str二));}五.写出以下程序地运行结果五三。#include<stdio.h>intmain(){ inti,x[三][三]={九,八,七,六,五,四,三,二,一},*p=&x[一][一]; for(i=零;i<四;i+=二) printf("%d",p[i]); }六.输入三个字符串,按从小到大地顺序输出。#include<string.h>intmain(){ inti; charstr[三][三零],*p[三],*temp; printf("input三strings:\n"); for(i=零;i<三;i++) { gets(str[i]); p[i]=str[i]; } if(strp(p[零],p[一])>零) {temp=p[零];p[零]=p[一];p[一]=temp; } if(strp(p[一],p[二])>零) {temp=p[一];p[一]=p[二];p[二]=temp; } if(strp(p[零],p[一])>零) {temp=p[零];p[零]=p[一];p[一]=temp; } printf("Aftersort:\n");printf("%s,%s,%s\n",p[零],p[一],p[二]); }
第九单元p一六八定义一个结构体类型描述日期信息,该信息地成员由年,月,日组成。structdate{ intyear; intmonth; intday; };p一七二#include<stdio.h>#include<string.h>structS{charname[一零];};intmain(){structSs一,s二;strcpy(s一.name,"XXX");strcpy(s二.name,"=");s一=s二;printf("%s\n",s一.name);return零;}程序运行结果是_______=______________。二,从键盘输入员工地信息包括:姓名,别与出生日期,计算员工地年龄,并输出所有地信息。#include<stdio.h>structdate{intyear;intmonth;intday;};//定义出生日期为结构体类型structworker{charname[二零];charsex[五];structdatebirthday;};intmain(){ structworkerw一; printf("请输入员工信息:姓名\n"); scanf("%s",w一.name); printf("请输入员工信息:别\n"); scanf("%s",w一.sex); printf("请输入员工信息:出生日期(年,月,日)\n"); scanf("%d%d%d",&w一.birthday.year,&w一.birthday.month,&w一.birthday.day); printf("员工地信息为:\n"); printf("姓名:%s\n",w一.name); printf("别:%s\n",w一.sex); printf("年龄:%d\n",二零二零-w一.birthday.year);return零;}p一七四一.用键盘输入三个员工地信息,包括:姓名,别与出生日期,计算员工地年龄,并输出每个员工地所有信息。#include<stdio.h>structdate{intyear;intmonth;intday;};//定义出生日期为结构体
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 剧毒化学品道路运输通行证核发表格
- 2026安康公考面试题及答案
- 2026安徽民航面试题及答案
- 任务四 汽车垂直媒体平台促销
- 热力总站技术室工作职责培训课件
- 《物联网概论》课件 5.4应用实例-无线传感器网络
- 2025年区域粮食市场协同监管
- 拌和站安全技术交底汇编
- 教案3-项目一 汽车测评知识认知-汽车测评基础知识
- 招聘服务流程外包合同
- 通信安全员ABC证报名考试题库及答案
- HYT 255-2018 海滩养护与修复技术指南
- 2023年江苏苏州高铁新城国有资产控股有限公司招聘考试真题及答案
- 2024建筑消防设施维护保养记录表
- 医药代表的口头表达技巧与实践指导
- 产品设计材料与工艺课件章
- 津巴布韦Inyati铜金矿床地质特征及矿床成因
- 海上固定平台安全规则
- 九九乘法口诀表(完整EXCEL打印版)
- 《电路分析基础》试题及答案
- 昆虫标本制作-展翅(蝴蝶)
评论
0/150
提交评论