程序逻辑与思维-C语言 习题及答案汇 模块2-8:C语言程序中的输入处理输出应用-C语言程序中的文件操作应用_第1页
程序逻辑与思维-C语言 习题及答案汇 模块2-8:C语言程序中的输入处理输出应用-C语言程序中的文件操作应用_第2页
程序逻辑与思维-C语言 习题及答案汇 模块2-8:C语言程序中的输入处理输出应用-C语言程序中的文件操作应用_第3页
程序逻辑与思维-C语言 习题及答案汇 模块2-8:C语言程序中的输入处理输出应用-C语言程序中的文件操作应用_第4页
程序逻辑与思维-C语言 习题及答案汇 模块2-8:C语言程序中的输入处理输出应用-C语言程序中的文件操作应用_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块2:C语言程序中的输入处理输出应用课后习题一.运行程序写结果1.输入下面程序并运行。main(){inta1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}2.输入下面程序并运行。main(){inta1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}3.输入下面程序并运行。#include<stdio.h>main(){printf("******\n");printf("*****\n");printf("****\n");printf("***\n");printf("**\n");printf("*\n");}4.以下程序的执行结果是____。main(){inti,j;i=15;printf(“%d,%d”,i++,i--);}

一.运行程序写结果1.运行结果为:x=502.运行结果为:a1=10,a2=20x=2003.运行结果为:*********************14,15模块3:C语言程序中的分支结构应用课后习题1.在C语言中,用于实现条件选择的语句是?A.forB.whileC.if-elseD.switch2.下列哪个语句不能作为switch语句的条件表达式?A.charc='A';B.inti=10;C.floatf=3.14;D.enumColor{RED,GREEN,BLUE};enumColorcol=RED;3.switch语句中的case后面应该跟什么类型的值?A.字符串B.整数或字符C.浮点数D.结构体4.在if-else语句中,else部分可以省略吗?A.可以B.不可以C.取决于编译器D.取决于if条件的数量5.假设intx=5;,下列哪个条件表达式在if语句中为真?A.x<5B.x==5C.x>5D.x!=56.在switch语句中,如果case后面没有break语句,会发生什么?A.程序崩溃B.跳过后续所有caseC.继续执行下一个caseD.什么都不做,继续执行switch后的语句7.下列哪个逻辑运算符表示“或”?A.&&B.||C.!D.&8.假设inta=1,b=2,c=3;,下列哪个表达式在if语句中为真?A.a>b&&b>cB.a>b||b<cC.!(a<b)D.a==b||b==c9.if语句可以嵌套使用吗?A.可以B.不可以C.取决于编译器D.取决于if条件的数量10.在if-elseif-else结构中,else部分会在什么时候执行?A.当所有if和elseif的条件都为假时B.当第一个if条件为真时C.当最后一个elseif条件为真时D.当没有elseif条件为真时11.下列程序运行的运行结果为()。#include<stdio.h>main(){inta=3,b=8,c=9,d=2,e=4;intmin;min=(a<b)?a:b;min=(min<c)?min:c;min=(min<d)?min:d;min=(min<e)?min:e;printf("Minis%d\n",min);}12.若输入3,4<回车>,下列程序运行的运行结果为();若输入4,3<回车>,下列程序运行的运行结果为()。#include<stdio.h>main(){inta,b,c;printf("Inputa,b:");scanf("%d,%d",&a,&b);if(a>=b){c=a*b;printf("%d*%d=%d\n",a,b,c);}else{c=a/b;printf("%d/%d=%d\n",a,b,c);}}13.下列程序运行的运行结果为()。#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}14.编程实现企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?15.编程实现由键盘输入三个整数a、b、c,用条件运算符求出其中最大值和最小值。16.编程实现从键盘上输入星期号,并显示该日期的英文名字。17.某市不同车牌的出租车3公里的起步价和计费分别为:夏利7元/公里,3公里以外2.1元/公里;富康8元/公里,3公里以外2.4元/公里;桑塔纳9元,3公里以外2.7元/公里。编程:从键盘输入乘车的车型及行车公里数,输出应付车资。参考答案1.C2.C3.B4.A5.B6.C7.B8.B9.A10.A11.Minis212.3/4=0;4*3=1213.a=2,b=114.参考代码:main(){longinti;intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;elseif(i<=200000)bonus=bonus1+(i-100000)*0.075;elseif(i<=400000)bonus=bonus2+(i-200000)*0.05;elseif(i<=600000)bonus=bonus4+(i-400000)*0.03;elseif(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}

15.参考代码:main(){ inta,b,c,max,min;scanf("%d,%d,%d",&a,&b,&c);max=a>b?a:b;max=max>c?max:c;min=a<b?a:b;min=min<c?min:c;printf("最大值为:%d,最小值为:%d\n",max,min);}16.参考代码:main(){intxqh;charywm;printf("请输入星期号(1~7):\n");scanf("%d",&xqh);switch(xqh){case1:printf("Monday");break;case2:printf("Tuesday");break;case3:printf("Wednesday");break;case4:printf("Thursday");break;case5:printf("Friday");break;case6:printf("Saturday");break;case7:printf("Sunday");break;default:printf("error");}}17.参考代码:main(){intcx;/*定义乘车的车型变量cx*/floatgl,cf;/*定义行车公里数变量gl、应付车资变量cf*/printf("\t1-夏利\n\t2-富康\n\t3-桑塔纳\n");printf("\t请输入车型(1-3):");scanf("%d",&cx);printf("\n\t请输入行车公里数:");scanf("%f",&gl);switch(cx){case1:if(gl<=3)cf=7.0;elsecf=7+(gl-3)*2.1;break;case2:if(gl<=3)cf=8.0;elsecf=8+(gl-3)*2.4;break;case3:if(gl<=3)cf=9.0;elsecf=9+(gl-3)*2.7;}printf("应付车资为%.1f\n",cf);}模块4:C语言程序中的循环结构应用课后习题1.下列哪种循环结构在C语言中不存在?A.for循环B.while循环C.loop循环D.do…while循环2.下列代码片段中,哪种循环结构最适合用来实现循环输出数字1到10?A.for循环B.while循环C.do…while循环D.以上都可以3.在C语言中,break语句通常用于什么目的?A.中断当前循环并跳出循环体B.继续下一次循环C.结束程序执行D.清空循环计数器4.下列代码片段中,哪种循环结构可以保证至少执行一次循环体?A.for循环B.while循环C.do…while循环D.以上都可以5.在C语言中,continue语句通常用于什么目的?A.直接结束循环的执行B.跳出当前循环体,继续下一次循环C.增加循环次数D.将循环体清空6.下列代码片段中,利用循环结构实现“求1到10的和”的正确选项是?A.intsum=0;for(inti=1;i<=10;i++){sum+=i;}B.intsum0;inti=1;while(i<=10){sum+=i;i++;}C.intsum=0;inti=1;do{sum+=i;i++;}while(i<=10);D.以上都可以7.在C语言中,循环可以嵌套,嵌套循环中的break语句通常会中断哪个循环?A.内层循环B.外层循环C.所有循环D.不影响循环的执行8.下面哪一句是正确的嵌套循环算法?A.for(inti=0;i<5;i++){for(intj=0;j<3;j++){//循环体}}B.while(inti=0;i<5;i++){while(intj=0;j<3;j++){//循环体}}C.while(inti=0;i<5;i++){while(intj=0;j<3;j++){//循环体}}D.以上都是正确的9.在C语言中,如何在循环中跳过某些迭代,直接进行下一次迭代?A.使用return语句B.使用break语句C.使用skip语句D.使用continue语句10.下面哪种循环结构在C语言中会先判断条件再执行循环体?A.for循环B.while循环C.do…while循环D.以上都会11.下列程序运行的运行结果为()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d",y--);}12.下列程序运行的运行结果为()。main(){intx=3,y=6,z=2;while(x++!=(y-=1)){ z+=1;if(y<x)break;printf(“%d,%d,%d\n”,x,y,z);}}13.下列程序运行的运行结果为()。main(){inta=1,b=0;for(

;a<3

;a++)switch(a++){case1:b--;case2:b++;case3:b+=3;break;}printf(“%d\n”,b);}14.下列程序运行的运行结果为()。main(){intx=10,y=10,i;for(i=0;i<2

;y=i++)printf(“%4d%4d”,x--,y);}15.求T=1!+2!+3!+…+10!的值。16.求100以内能被8整除的数,并求它们的和。参考代码:main(){intn,s=0;for(n=1;n<=100;n++)if(n%8==0){s=s+n;printf("%4d",n);}17.猴子吃桃子问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上再想吃时,见只剩一个桃子了。求第一天共摘了多少个桃子。参考答案1.C2.A3.A4.C5.B6.D7.A8.A9.D10.B11.012.4,5,313.314.10109015.参考代码:main(){longintt=0,tn=1;inti;for(i=1;i<=10;i++){tn=i*tn;t=t+tn;}printf("t=%ld",t);}16.参考代码:main(){intn,s=0;for(n=1;n<=100;n++)if(n%8==0){s=s+n;printf("%4d",n);}17.参考代码:main(){intday,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("桃子总数=%d\n",x1);}模块5:C语言程序中的数组应用课后习题一.运行程序写结果1.以下程序的执行结果是()。main(){intk,a[6]={1,2,3,4,5,6};for(k=5;k>0;--k)if(a[k]%2==0)printf("%d",a[k]);}2.以下程序的执行结果是()。#include<stdio.h>main(){charstr[]="SSSWLIA",c;intk;for(k=2;(c=str[k])!='\0';k++){switch(c){case'I':++k;break;case'L':continue;default:putchar(c);continue;}putchar('*');}}3.以下程序的执行结果是()。#include<string.h>main(){chara[]="Monday",b[]="day";strcpy(a,b);printf("%s\t%s\n",a,b);printf("%c\t%c\n",a[4],a[5]);}二.编程题1.已有10个数,求它们当中的最大值。2.从键盘输入10个学生的成绩,建立一个一维数组,求学生的平均分。3.将两个一维整型数组中的对应元素相加后显示出来。参考答案一.运行程序写结果1.6422.SW*3.daydayay二.编程题1.参考代码:main(){inti,a;intn[10]={8,2,4,6,7,1,0,85,32,54};a=n[0];for(i=1;i<10;i++)if(n[i]>a)a=n[i];printf("a=%d\n",a);}2.参考代码:main(){inti;floata[10],sum=0,ave;printf("输入10个学生的成绩:");for(i=0;i<10;i++){scanf("%f",&a[i]);sum=sum+a[i];}ave=sum/10;printf("10个学生的平均成绩是%5.2f。",ave);}3.参考代码:#include<stdio.h>main(){inti;intx[5]={10,8,7,6,5};inty[5]={-3,9,-10,-2,4};intz[5];for(i=0;i<5;i++)z[i]=x[i]+y[i];printf("\n相加后一维数组为:");for(i=0;i<5;i++)printf("%d",z[i]);}模块7:C语言程序中的函数及结构体应用课后习题一.编程题1.编写一个函数输出三个数中的最大值。2.编写一个函数,将一个任意三位数n逆序输出。即若n=456,则输出654。3.编写求字符串长的函数。4.编写一个函数判定一个数是否是素数,在主函数中调用该函数,输入一个整数,输出是否是素数的信息。5.编写一程序,定义一个点的坐标。然后定义两个点,求这两个点间的距离。6.请编写程序:将下表数据赋给结构体数组,并按照年龄从小到大顺序将它们输出到屏幕上。姓名年龄年薪zhangsan3828000lisi2222000wangwu2427000参考答案1.编写一个函数输出三个数中的最大值。intmax(intx,inty,intz){intt;if(x>=y)t=x;elset=y;if(t<z)t=z;return(t);}main(){intx,y,z;printf("input3numbers:");scanf("%d%d%d",&x,&y,&z);printf("max=%d\n",max(x,y,z));}2.编写一个函数,将一个任意三位数n逆序输出。即若n=456,则输出654。intrec(intx){inta,b,c;a=x/100;b=x%100/10;c=x%10;return(c*100+b*10+a);}main(){intrec(intx);inty,z;printf("inputanumber(100-999):");scanf("%d",&y);z=rec(y);printf("thechangednumberis:%d\n",z);}3.编写求字符串长的函数。参考代码:#include<stdio.h>main(){inttest();intn;charstr[100];gets(str);n=test(str);printf("thenumbersis:%d\n",n);}inttest(str)charstr[];{intn=0;while(str[n]!=’\0’)n++;return(n);}4.编写一个函数判定一个数是否是素数,在主函数中调用该函数,输入一个整数,输出是否是素数的信息。参考代码:#include<math.h>main(){intm;printf("Pleaseinputadatam=:");scanf("%d",&m);isprime(m);}isprime(intn){inti,k;k=n/2;for(i=2;i<=k;i++)if(n%i==0)break;if(i>=k+1)printf("Thisisaprimenumber");elseprintf("Thisisnotaprimenumber");}5.参考代码:#include<stdio.h>#include<math.h>structpoint{intx,y;};main(){structpointp1,p2; /*定义两个点*/floatdist;printf("\nPleaseinputthefirstpoint\'svalue:\nx="); /*输入第一个点*/scanf("%d",&p1.x);printf("y=");scanf("%d",&p1.y);printf("\nPleaseinputthesecondpoint\'svalue:\nx=");/*输入第二个点*/scanf("%d",&p2.x);printf("y=");scanf("%d",&p2.y);dist=sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));/*计算两点距离*/printf("Distanceoftwopointis%10.2f.\n",dist);}6.参考代码:#include<stdio.h>structemp{charname[20];intage;longyearsal;};main(){structempdata[3]={{"zhangsan",38,28000},{"lisi",22,22000},{"wangwu",24,27000}},tmp;inti;if(data[0].age>data[1].age) /*比较前两个的年龄,并在可能时交换位置*/{tmp=data[0];data[0]=data[1];data[1]=tmp;}if(data[1].age>data[2].age) /*比较后两个的年龄,并在可能时交换位置*/{tmp=data[1];data[1]=data[2];data[2]=tmp;}if(data[0].age>data[1].age) /*再次比较前两个的年龄,并在可能时交换位置*/{tmp=data[0];data[0]=data[1];data[1]=tmp;}printf("\n%20s%4s%9s","Name","Age","Income");for(i=0;i<3;i++) /*输出结果*/printf("\n%20s,%3d,%8ld",data[i].name,data[i].age,data[i].yearsal);}模块8:C语言程序中的文件操作应用课后习题1.下面哪一个函数用于从标准输入读取一个字符?A.putchar()B.fgets()C.getchar()D.scanf()2.在C语言中,以下哪个函数用于从文件中读取一个字符?A.fgets()B.fgetc()C.getc()D.getchar()3.下面哪个函数用于向文件中写入一个字符串?A.puts()B.fputs()C.fprintf()D.fwrite()4.使用哪个函数可以打开一个文件以进行读写操作?A.fopen()B.freopen()C.fwrite()D.fseek()5.以下哪个函数用于将文件位置指针移动到文件的开头?A.rewind()B.fseek()C.ftell()D.fgetpos()6.在C语言中,如何关闭一个已经打开的文件?A.fclose()B.closefile()C.endfile()D.fileclose()7.哪个宏定义用于指示文件结尾?A.EOFB.EOLC.EOSD.EOFILE8.哪个函数用于从文件中读取一个字符串?A.fgets()B.fscanf()C.fgetc()D.fgetpos()9.下面哪个函数用于设置文件位置指针?A.fseek()B.fgetpos()C.fsetpos()D.ftell()10.以下哪个函数用于在标准输出上打印格式化的数据?A.printf()B.fprintf()C.puts()D.write()11.编写一个程序,打开一个名为“example.txt”的文件,并向其中写入“Hello,World!”。12.编写一个程序,从标准输入读取一个字符串,并将其写入一个名为“output.txt”的文件。13.编写一个程序,从名为“input.txt”的文件中读取内容,并将其打印到标准输出。14.编写一个程序,打开一个名为“data.txt”的文件,计算文件中的字符数并打印出来。15.编写一个程序,从标准输入读取一个整数,并将其以二进制形式写入一个名为“binary.dat”的文件。参考答案1.C2.B3.B4.A5.A6.A7.A8.A9.A10.A11.#include<stdio.h>intmain(){FILE*file=fopen("example.txt","w");if(file==NULL){printf("Erroropeningfile!\n");return1;}fprintf(file,"

温馨提示

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

评论

0/150

提交评论