版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计任务驱动式教程PAGE178PAGE19PAGE14C语言程序设计课后思考与训练第一单元1.讨论题(1)讨论C程序的结构是由哪几个部分组成的。(2)C语言中注释的作用。(3)在编写C语言程序时,需要注意的编码规范有哪些?2.选择题(1)C语言属于下列哪类计算机语言?A.汇编语言B.高级语言C.机器语言D.以上均不属于(2)一个C程序是由()。A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成(3)一个C程序的执行是从()。A.main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束(4)C语言语句的结束符是()。A.回车符 B.分号 C.句号 D.逗号(5)以下说法正确的是()。A.CB.C程序的注释只能是一行C.C程序的注释不能是中文文字信息D.C程序的注释中存在的错误会被编译器检查出来(6)以下说法正确的是()。A.C程序中的所有标识符都必须小写B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写D.C程序中关键字必须小写,其他标识符区分大小写3.填空题(1)C语言源程序文件的后缀是,编译后生成目标文件的扩展名是,经过连接后生成可执行文件的扩展名是。(2)C程序多行注释是由和所界定的文字信息组成的。(3)源程序的执行要经过、、和4个步骤。4.编程题(1)试编写一个C程序并上机调试,运行后能输出以下信息。**************************************Thisismyfirstprogram.**************************************(2)编写程序,用“*”输出字母C。C语言程序设计任务驱动式教程第
2
单元C语言程序设计基础2第二单元1.讨论题(1)C语言为什么规定对所有用到的变量都要“先定义,后使用”?(2)定义变量时一定要赋初值吗?不赋初值的变量一定不能用吗?(3)不同类型数据之间在进行运算时,结果类型应该如何确定?(4)C语言中常量、变量命名规范是什么?2.选择题(1)以下正确的C语言标识符是()。A.%X B.a+b C.a123 D.test!(2)已定义inta,b;则以下不正确的C语句是()。A.a*=5; B.b/=2; C.a+=1.75; D.b%=a;(3)若x、i、j和k都是整型变量,则执行下面的表达式后x的值为()。x=(i=4,j=16,k=32)A.4 B.16 C.32 D.52(4)C语言中的标识符只能由字母、数字和下画线3种字符组成,且第一个字符()。A.必须是字母 B.必须为下画线 C.必须为字母或下画线 D.可以是字母、数字、下画线中的任一字符(5)下面正确的字符常量是()。A."c" B.'\\" C.'w' D."(6)设x、y均为float型变量,则以下赋值语句不合法的是()。A.++x; B.y=(x%2)/10;C.x*=y+8; D.x=y=0;(7)下列不正确的转义字符是()。A.'\\' B.'\" C.'\19' D.'\0'(8)下列不是C语言常量的是()。A.e−2 B.074 C."a" D.'\0'(9)若定义了intx;则将x强制转化成双精度类型应该写成()。A.(double)x B.x(double)C.double(x) D.(x)double(10)在C语言中,要求参加运算的数必须是整数的运算符是()。A./ B.* C.% D.=(11)为了计算s=10!(即10的阶乘),则s变量应定义为()。A.int B.unsigned C.long D.以上3种类型均可3.填空题(1)字符常量使用一对界定单个字符,而字符串常量使用一对来界定若干个字符的序列。(2)在C语言中,不同运算符之间运算次序存在的区别,同一运算符之间运算次序存在的规则。(3)字符串"hello"的长度是。(4)下列程序的运行结果是。voidmain(){intx=5;inty=10;printf("%d\n",x++);printf("%d\n",++y);}4.编程题(1)请用C语言描述一个学生的年龄、身高、体重、性别,并输出到显示器上。(2)编写程序:假定银行定期存款的年利率为2.25%,并已知存款期为n年,存款本金为x元,试编程计算n年后可得到本利之和是多少。C语言程序设计任务驱动式教程第
4
单元选择结构程序设计4第三单元1.讨论题(1)在使用输入输出函数时,若不写上编译预处理命令#linclude<stdio.h>,对程序执行的结果有何影响?(2)在C语言中,我们经常使用的语句有哪些?(3)常用的输入输出格式控制符有哪些?(4)格式化的输入函数和格式化的输出函数使用方法有哪些区别?2.单选题(1)阅读下列程序,当输入数据的形式为:25,13,10,正确的输出结果为()。#include<stdio.h>voidmain(){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z);}A.x+y+z=48 B.x+y+z=35 C.x+z=35 D.不确定值(2)以下程序的运行结果是()。include<stdio.h>voidmain(){inta=2,b=5;printf("a=%%d,b=%%d",a,b);}A.a=%2,b=%5 B.a=2,b=5C.a=%%d,b=%%d D.a=%d,b=%d(3)putchar函数可以向终端输出一个()。A.整型变量表达式值 B.实型变量值 C.字符串 D.字符或字符型变量值(4)已知有定义inta=−2;和输出语句printf("%8lx",a);,以下叙述正确的是()。A.整型变量的输出格式只有%d一种B.%x是格式符的一种,它可以适用于任何一种类型的数据C.%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度(5)已知ch是字符型变量,下面不正确的赋值语句是()。A.ch='a+b'; B.ch='\0'; C.ch='7'+'9'; D.ch=7+9;3.分析程序并上机操作(1)以下程序的输出结果是()。include<stdio.h>voidmain(){intn=2,m=2;printf(“%d,%d”,++m,n--);}(2)以下程序的输出结果是()。#include<stdio.h>voidmain(){inta=325;doublex=3.1415926;printf("a=%dx=%4.2f\n",a,x);}(3)若x为int型变量,则执行下列语句后x的值是()。x=7;x+=x-=x+x;(4))程序运行时输入:12<回车>,执行后输出结果是()。#include<stdio.h>voidmain(){charch1,ch2;intn1,n2;ch1=getchar();ch2=getchar();n1=ch1-'0';n2=n1*10+(ch2-'0');printf("%d\n",n2);}4.编程题(1)求ax+b=0的解,a、b的值由键盘输入。(2)正第四单元1.讨论题(1)嵌套if语句和多重if语句有何区别?举例说明在实际编程过程中,这两种选择依据能否用来解决相同的问题?(2)多重if语句与switch语句能否相互替换?考虑其分别适用的场合。2.选择题(1)逻辑运算符两侧运算对象的数据类型()。A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任意类型的数据(2)判断char型变量ch是否为大写字母的正确表达式是()。A.'A'<=ch<='Z' B.(ch>='A')&(ch<='Z')C.(ch>='A')&&(ch<='Z') D.(ch>='A')AND(ch<='Z')(3)已知intx=10,y=20,z=30;,以下语句执行后x、y、z的值是()。if(x>y)z=x;x=y;y=z;A.x=10,y=20,z=30 B.x=20,y=30,z=30C.x=20,y=30,z=10 D.x=20,y=30,z=20(4)当a=1,b=3,c=5,d=4时,执行完下面的程序段后,x的值是()。if(a<b)if(c<d)elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A.1 B.2 C.3 D.63.分析程序并上机操作(1)下列程序的运行结果是什么?main(){intx,y,z;x=y=z=1;--x&&--y||--z;printf("x=%d\ty=%d\tz=%d\n",x,y,z);x=y=z=-1;++x||++y||++z;printf("x=%d\ty=%d\tz=%d\n",x,y,z);x=y=z=0;x--&&++y&&++z;printf("x=%d\ty=%d\tz=%d\n",x,y,z);}(2)下列程序的运行结果是什么?main(){inta=1,b=0;switch(a){case1:switch(b){case0:printf("**0**");break;case1:printf("**1**");break;}case2:printf("**2**");break;}}4.填空题(1)以下程序运行后的了输出结果是______。#include<stdio.h>voidmain(){inta=1,b=2,c=3;if(c=a)printf("%d\n",c);elseprintf("%d\n",b);}(2)设y是int型变量,请写出判断y为奇数的关系表达式______。(3)若从键盘输入58,则以下程序输出的结果是______。#include<stdio.h>voidmain(){inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);}(4)以下程序的输出结果是______。#include<stdio.h>voidmain(){inta=5,b=4,c=3,d;d=(a>b>c);printf("%d\n",d);}(5)以下程序运行后的输出结果是______。#include<stdio.h>voidmain(){intp=30;printf("%d\n",(p/3>0?p/10:p%3));}5.编程题(1)编写程序,判断通过键盘输入的字符属于哪一类字符(大写字母、小写字母、数字或其其它字符)。(2)假设国家对个人收入所得税起征点为5000元,超过部分要征收个人所得税,未超过3000的部分征收3%,超过3000到12000的部分征收10%,超过12000到25000的部分征收20%。编写程序输入个人当月税前收入,计算个人所得税及个人实际收入。(3)从键盘输入3个数据,然后按照从小到大的顺序输出。(4)某厂对产品进行分级,产品性能在90分以上,则该产品定为A级产品;性能在80~89分,则定为B级产品;如果性能得分为60~79分之间,则定为C级;产品性能在60分以下,则该产品定为D级产品。试编写一程序实现对该厂产品进行分级评定。C语言程序设计任务驱动式教程第
5
单元循环结构程序设计5第五单元循环讨论题三种循环语句适用什么循环的情况,比如:固定次数的循环和不固定次数的循环等。2.选择题(1)以下程序段是()。x=-1;do{x=x*x;}while(!x);A.死循环 B.循环执行二次 C.循环执行一次 D.有语法错误(2)执行语句for(i=1;i++<4;);后变量i的值是()。A.3 B.0 C.5 D.不定(3)循环语句for(x=0,y=0;(y!=123)||(x<4);x++);的循环执行次数为()。A.无限次 B.不确定次数 C.4次 D.3次(4)假定a和b为int类型变量,则执行以下语句后b的值为()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9 B.−2 C.−1 D.8(5)C语言中while和do-while循环的主要区别是()。A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能为复合语句(6)以下描述正确的是()。A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句和continue语句的作用相同D.从多层循环嵌套中退出时,只能用goto语句3.分析程序并上机操作(1)以下循环体的执行次数。#include<stdio.h> voidmain(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);}(2)以下程序的输出结果。#include<stdio.h> voidmain(){ints,i;for(s=0,i=1;i<3;i++,s+=i);printf("%d\n",s);}(3)以下程序的输出结果。#include<stdio.h> voidmain(){inty=10;while(y--);printf("y=%d\n",y);}4.填空题(1)以下程序的功能是计算:1+12+123+1234+12345。请填空。#include<stdio.h> voidmain(){intt=0,s=0,i;for(i=1;i<=5;i++){t=i+______;s=s+t;}printf(“s=%d\n”,s);}(2)以下程序的功能是计算自然数1-10的偶数和。请填空。#include<stdio.h> voidmain(){inti,s=0;for(i=1;i<10;i+=2);printf("%d\n",s);}5.编程题(1)判断字符类型,直到输入‘#’结束。(2)循环输入年份月份,输出该月份的天数,直到年份输入0结束。(3)请将计算器程序改为循环程序。(4)尝试将第4章的选择结构程序改为循环。(5)输出以下图案:**********C语言程序设计任务驱动式教程第
67
单元数组67第六单元数组1.选择题(1)在C语言中,引用数组元素时,其数组下标的数据类型允许是()。A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任意类型的表达式(2)以下程序段执行后,输出结果是()。charstr[]="ab\n\\012\\\";printf("%d",strlen(str));A.1 B.9 C.7 D.10(3)判断字符串s1是否大于字符串s2,应当使用()。A.if(s1>s2) B.if(strcmp(s1,s2))C.if(strcmp(s1,s2)>0) D.以上都不正确(4)下面程序的运行结果是()。#include<stdio.h>voidmain(){inta[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf("%2d",a[i]);}}A.−40403 B.−40443C.−40404 D.−40440(5)下面的说明语句正确的是()。A.intA[][] B.intA['a']C.int*A[10] D.intA[](6)以下程序的输出结果是()。#include<stdio.h>voidmain(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A、258B、741C、852D、369(7)以下不能正确定义二维数组的选项是()。A.inta[2][2]={{1},{2}};B.inta[][2]={1,2,3,4};C.inta[2][2]={{1},2,3};D.inta[2][]={{1,2},{3,4}};(8)以下程序的输出结果是()。#include<stdio.h>voidmain(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21(9)以下程序的输出结果是()。#include<stdio.h>voidmain(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}A、1,5,9B、1,4,7C、3,5,7D、3.6.9(10)合法的数组定义是()。A.inta[]="string";B.inta[5]={0,1,2,3,4,5};C.chars="string";D.chara[]={0,1,2,3,4,5};2.填空题(1)下面程序的功能是输出数组s中最大元素的下标,请填空。#include<stdio.h>voidmain(){intk,p;ints[]={1,-9,7,2,-10,3};for(p=0,k=p;p<6;p++)if(s[p]>s[k]);printf("%d\n",k);}(2)以下程序以每行5个数据的形式输出a数组,请填空。#include<stdio.h>voidmain(){inta[50],i;printf("输入10个整数:");for(i=0;i<10;i++)scanf("%d",);for(i=1;i<=10;i++){if()printf("%3d\n",);printf("%3d",a[i-1]);}}(3)下面程序实现以下输出数组(右上半三角),请填空。1234678111216#include<stdio.h>voidmain(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=1;j<=i;j++)printf("%4c",'');for(j=____;j<4;j++)printf("%4d",num[i][j]);printf("\n");}}3.编程题(1)用冒泡法对10个数进行排序(由小到大)。(2)编程实现两个字符串的连接(不用strcat函数)。(3)统计字符串中输入数字字符的个数。第七单元函数讨论题:(1)在程序中为什么要使用函数?(2)有参函数是如何声明的?调用时应注意什么?(3)无返回函数和有返回值函数在声明和调用时分别注意什么?(4)在项目开发中,为什么要强调团队合作?作为一份子,如何做好自己的工作?2.选择题(1)C语言中的函数返回值的类型是由()决定。A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型(2)下面的描述中不正确的是()。A.调用函数时,实参可以是表达式B.调用函数时,实参和形参可以共用内存单元C.调用函数时,将形参分配内存单元D.调用函数时,实参与形参的类型必须一致(3)在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是()。A.地址传递B.值传递C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式(4)下面的函数调用语句中含有()个实参。inta,b,c;intsum(intx1,intx2);……total=sum((a,b),c);A.2 B.3 C.4 D.5(5)在C语言中()。A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均不可以嵌套C.函数的定义不可以嵌套,但是函数的调用可以嵌套D.函数的定义和调用均可以嵌套 (6)关于C语言中的return语句,下面的描述正确的是()。A.只能在主函数中出现B.在每个函数中都必须出现C.可以在一个函数中出现多次D.只能在除主函数之外的函数中出现3.填空题(1)C语言中定义函数时如果未指定函数类型,则默认的函数类型是。(2)C语言中没有返回值的函数类型应指定为。(3)下面函数返回值的类型是。floatfun(floata,doubleb){returna*b;}(4)发生函数调用时,实参和形参间的数据传递有两种方式,即和。(5)在一个函数内部调用另一个函数的调用方式称为,在一个函数内部直接或间接调用该函数本身的调用方式称为函数的。(6)如果被调函数在主调函数后定义,一般应该在主调函数中或主调函数前对被调函数进行。(7)C语言中的变量按其作用域分为和,按其生存期分为和。(8)已知如下函数定义,其函数声明的两种写法为,。doublefun(longm,doublen){return(m+n);}(9)C语言中变量的存储类别包括,,和。(10)下面程序的执行结果是。#include<stdio.h>intd=1;voidfun(intp){ intd=5; d+=p++; printf("%d",d);}voidmain(){ inta=3; fun(a); d+=a++; printf("%d",d);}4.编程题(1)编写程序,用函数实现小型计算器的加、减、乘、除功能。(2)编写有参函数,求两个整数中的最大值。PAGE53第八单元1.讨论题指针变量、指针变量作为函数参数、数组的指针和指针数组的概念与应用。2.选择题(1)若chars[10],*p=s;,则下列语句错误的是()。A.p=s+5 B.s=[p+s] C.s[2]=p[4] D.*p=s[0](2)已知定义char**s;,下列语句正确的是()。A.s="computer" B.*s="computer"C.**s="computer" D.*s='A'(3)C语言主函数最多允许有()个参数。A.1 B.2 C.3 D.4(4)说明语句int(*p)()的含义是()。A.p是一个指针型函数,返回值为指针B.p是指针变量,它指向一个整型数据的指针C.p是一个指向函数的指针,该函数的返回值为整型D.以上答案都不对(5)下列语句中,能表示p是一个指向整型变量的指针变量的是()。A.int**p B.int*p C.int(*p)() D.int*p[](6)下列叙述中,错误的是()。A.一个变量的地址称为该变量的指针B.一个指针变量只能指向同一数据类型的变量C.指针变量中只能存放地址D.指针变量可以由整型数赋值(7)若有以下定义语句:intvar,arr[10],*p;,则以下语句中非法的是()。A.p=&var B.p=arr C.p=10 D.p=&arr[5](8)两个指针变量不可以进行的操作是()。A.相加 B.相减 C.指向同一个地址 D.比较3.填空题(1)以下程序的功能是:从终端输入一行字符,以“$”作为结束,把该字符串存放在字符数组s中,然后输出,请在空白处填上适当的语句使程序完整。#include<stdio.h>#defineMAXSIZE100main(){ charstr[MAXSIZE],*p;intn;printf("请输入:\n");for(n=0;n<MAXSIZE-1;n++) {str[n]=getchar();if(str[n]=='$')break; }str[n]=;p=str;printf("输出为:\n");while(*p)putchar();printf("\n");}(2)以下程序的执行结果是。#include<stdio.h>voidf(inta,intb,int*p1,int*p2){*p1=a*b;*p2=a%b;}voidmain(){intx,y,*p,*q;x=10;y=4;p=&x;q=&y;f(x,y,p,q);printf("%d,%d\n",*p,*q);}4.编程题(1)利用指针的方法,输入学生的成绩判断等级。(2)利用指针的方法,完成四则运算计算器。(3)利用指针的方法,求数组中的最大数和最小数。(4)利用指针的方法,完成10个数的排序。第九单元:1.讨论题(1)简述结构体、共用体、枚举类型、动态链表的概念与特点。(2)如何在动态链表中插入、删除结点?(3)对于一个综合性的大型程序设计,按照软件工程理论如何进行分工合作?2.选择题(1)若有以下说明:structstudent{charname[20];intage;charsex;}b={"mahua",20,'m'},*p=&b;则下面对字符串mahua的引用方式不可以的是()。A.(*p).name B. C.p->name D.(2)对于下列说明,不能使变量p->b的值增1的表达式是()。structstr{inta;int*b;}*p;A.*p->b++ B.*++p->b C.(*(p++)->b)++ D.*++((p++)->b(3)以下程序企图把从终端输入的字符输出到名为abc.txt文件中,直到从终端读入字符#号时结束输入和输出操作,但是程序有错误。#include"stdio.h"main(){FILE*fout;charch;fout=fopen('abc.txt','w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出错的原因是()。A.函数fopen调用形式错误B.输入文件没有关闭 C.函数fgetc调用形式错误D.文件指针stdin没有定义(4)若fp已经正确定义并指向某个文件,当未遇到文件结束标志时函数feof(fp)的值是()。A.0 B.1 C.−1 D.一个非0的值(5)有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen('f1.txt','w');fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为()。A.goodabc B.abcd C.abc D.abcgood(6)在fopen函数中使用的文件方式是“w+”,该方式的含义是()。A.打开一个二进制文件读写 B.打开一个文本文件读写 C.建立一个新的文本文件读写 D.建立一个新的二进制文件读写(7)在C语言中,用于关闭文件的函数是()。A.fopen B.fseek C.ftell D.fclose3.填空题(1)以下程序用来统计文件中字符个数。请填空完成程序。#include<stdio.h>main(){FILE*fp;Longnum=0L;if(fp=fopen('fname.dat','r')==NULL){printf("openerror\n");exit(0);}while(){fetc(fp);num++}printf("num=%ld\n",num-1);fclose(fp);}(2)若fp已经正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen();(3)已知文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已经正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是。#include<stdio.h>main(){FILE*fr;charstr[40];…fgets(str,5,fr);fprintf("%s\n",str);fclose(fr);}C语言程序设计课后思考与训练答案
第一单元1.讨论题(略)2.选择题(1)B(2)A(3)B(4)A(5)A(6)D3.填空题(1).c.obj.exe(2)/**/(3)编辑、编译、连接、运行4.编程题(1)#include<stdio.h>voidmain(){ printf("******************************"); printf("Thisismyfirstprogram"); printf("******************************");}(2)#include<stdio.h>voidmain(){ printf("****\n"); printf("*\n"); printf("*\n"); printf("*\n"); printf("****\n");}第二单元1.讨论题(略)2,选择题(1)C(2)C(3)C(4)C(5)C(6)B(7)C(8)A(9)A(10)C(11)C3.填空题(1)单引号双引号(2)优先级自左向右(3)5(4)5114.编程题(1)#include<stdio.h>voidmain(){ intage=18; floatheight=180.5; doubleweight=130.1; chargender='M'; printf("age=%d,height=%.2f,weight=%.2lf,gender=%c\n",age,height,weight,gender);}(2)#include<stdio.h>#include<math.h>voidmain(){ intn; floattotal,benjin; printf("请输入存款年限和本金:"); scanf("%d",&n); scanf("%f",&benjin); total=benjin*pow(1+0.00225,n); printf("total=%f",total);}第三单元1.讨论题(略)2.单选题(1)A(2)D(3)D(4)D(5)A4.分析程序题(1)3,2(2)a=325x=3.14(3)-14(4)125.编程题(1)#include<stdio.h>voidmain(){doublea,b,x;printf(“请输入a,b的值:”);scanf(“%f%f”,&a,&b)
;x=-b/a;printf(“x=%f”,x);}(2)#include<stdio.h>voidmain(){intx,a,b,c;printf(“请输入一个三位的整数:”);scanf(“%d”,&x);a=x/100;b=x/10%10;c=x%10;printf(“百位数字a=%d十位数字b=%d个位数字c=%d”,a,b,c);}第四单元1.讨论题(略)2.选择题(1)D(2)C(3)B(4)B3.分析程序并上机操作(1)x=0y=1z=0x=0y=0z=0x=-1y=0z=0(2)**0****2**填空题(1)1(2)y%2!=0或y%2(3)585858(4)0(5)35.编程题(1)#include<stdio.h>voidmain(){charch;printf(“请输入一个字符:”);scanf(%c”,&ch);if(ch>=’A’&&ch<=’Z’)printf(“输入的字符为大写字母”);elseif(ch>=’a’&&ch<=’z’)printf(“输入的字符为小写字母”);elseif(ch>=’0’&&ch<=’9’)printf(“输入的字符为数字字符”);elseprintf(“输入的字符为其它字符”);}(2)#include<stdio.h>voidmain(){floatx,y,z,a;printf("请输入个人工资:");scanf("%f",&x);a=x-5000;if(a<=3000)y=a*0.03;elseif(a<=12000)y=3000*0.03+(a-3000)*0.1;elseif(a<20000)y=3000*0.03+9000*0.1+(a-12000)*0.2;z=x-y;printf("个人所得税是:%.2f\n,个人所得是:%.2f\n",y,z);}(3)#include<stdio.h>voidmain(){inta,b,c,t;printf(“请输入三个数”);scanf(“%d%d%d”,&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf(“从小到大的顺序为:%d,%d,%d”,a,b,c);}(4)#include<stdio.h>voidmain(){inta;printf(“请输入产品的分数:”);scanf(“%d”,&a);switch(a/10){case10:case9:{printf(“产品等级为A”);break;}case8:{printf(“产品等级为B”);break;}case7:case6:{printf(“产品等级为C”);break;}default:{printf(“产品等级为D”);break;}}第五单元1.讨论题(略)2.选择题(1)C(2)C(3)A(4)D(5)A(6)B3.分析程序并上机操作(1)1次(2)(3)4.填空题(1)t*10或10*t(2)s+=i+15.编程题(1)判断字符类型,直到输入‘#’结束。#include<stdio.h>voidmain(){charch;do {printf("请输入一个字符:");scanf("%1s",&ch);if(ch>='A'&&ch<='Z') printf("大写字母\n");elseif(ch>='a'&&ch<='z')printf("小写字母\n");elseif(ch>='0'&&ch<='9') printf("数字\n");else printf("其他\n"); }while(ch !='#');}(2)循环输入年份月份,输出该月份的天数,直到年份输入0结束。voidmain(){intyear,month,leap;printf("请输入一个年份:");scanf("%d",&year);while(year!=0) {printf("请输入一个月份:");scanf("%d",&month);switch(month) {case1:case3:case5:case7:case8:case10:case12:printf("该月为31天\n");break;case4:case6:case9:case11:printf("该月为30天\n");break;case2:if((year%4==0)&&(year%100!=0)||(year%400==0)) printf("该月为29天\n"); elseprintf("该月为28天\n"); break; } printf("请输入一个年份:");scanf("%d",&year); }}(3)请将计算器程序改为循环程序。#include<stdio.h>voidmain(){inta,b,n;do { printf("***************************************\n");printf("欢迎使用小型计算器\n");printf("设计人:李丽红\n");printf("***************************************\n");printf("1.加法运算\n");printf("2.减法运算\n");printf("3.乘法运算\n");printf("4.除法运算\n");printf("5.退出\n");printf("***************************************\n");printf("\n");printf("请选择:");scanf("%d",&n);switch(n) {case1:printf("请输入两个数:");scanf("%d%d",&a,&b);printf("两数相加是:%d\n",a+b);break;case2:printf("请输入两个数:");scanf("%d%d",&a,&b);printf("两数相减是:%d\n",a-b);break;case3:printf("请输入两个数:");scanf("%d%d",&a,&b);printf("两数相乘是:%d\n",a*b);break;case4:printf("请输入两个数:");scanf("%d%d",&a,&b);printf("两数相除是:%6.2f\n",(float)a/b);break;case5:exit(0); } }while(n!=5);}(4)尝试将第4章的选择结构程序改为循环。(5)输出以下图案:**********#include<stdio.h>voidmain(){ intn,i,j;printf("请输入行数:");scanf("%d",&n);for(i=1;i<=n;i++) { for(j=1;j<=i;j++)printf("*");printf("\n"); }}第六单元1.选择题(1)C(2)B(3)C(4)B(5)C(6)C(7)D(8)A(9)C(10)D2.填空题(1)k=p(2)&a[i]i%10==0a[i](3)i3.编程题(1)冒泡排序的过程是:从a0开始,逐个比较ai和ai+1,(i=0,1,2,……n-2)若ai>ai+1则交换ai和ai+1的位置,第一趟比较完成后an-1是序列中最大的元素。第二趟再从a0开始,逐个比较ai和ai+1,(i=0,1,2,……n-3)若ai>ai+1则交换ai和ai+1的位置,第一趟比二较完成后an-2是序列中最大的元素。如此反复进行n-1次冒泡排序后,原来序列中的元素就排列好了。#include"string.h"main(){ inta[11];inti,j,t;printf("inputl0numbers:\n");for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; }printf("thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);}(2)#include<stdio.h>#include<string.h>voidmain(){ inti,j; charsoustr[20],desstr[20]; printf("请输入两个字符串:\n"); gets(soustr); gets(desstr); printf("连接后的字符串是:\n"); i=strlen(soustr); for(j=0;j<=strlen(soustr);j++,i++) { soustr[i]=desstr[j]; }puts(soustr);}(3)#include<stdio.h>#include<string.h>main(){ chara[20]; intc,i,sum=0; printf("请输入一个字符串:\n"); gets(a);for(i=0;a[i]!='\0';i++) { if((a[i]>='0')&&(a[i]<='9')) sum++; } printf("输入了%d个数字字符\n",sum);}第七单元1.讨论题(略)2.选择题(1)D(2)B(3)D(4)A(5)C(6)C3.填空题(1)int(2)void(3)float(4)值地址(5)嵌套调用递归调用(6)声明(7)局部变量全局变量自动变量静态变量(8)doublefun(longm,doublen);doublefun(long,double);(9)自动变量静态局部变量静态全局变量寄存器变量(10)844.编程题(1)#include<stdio.h>voidmain(){ floata,b; chard; voidjiafa(floata,floatb); voidjianfa(floata,floatb); voidchengfa(floata,floatb); voidchufa(floata,floatb); do { printf("PleaseenterthetwoNumbers,separatedbySpaces:\n"); scanf("%f%f",&a,&b); printf("Pleaseselectoperationway:(-,*,/,^,s,!)\n"); scanf("%s",&d); switch(d) { case'+':jiafa(a,b);break; case'-':jianfa(a,b);break; case'*':chengfa(a,b);break; case'/':chufa(a,b);break; default:printf("inputerror\n"); } printf("Doyouwanttocontinue(Y/Nory/n)"); fflush(stdin); }while(toupper(getchar())=='Y');}voidjiafa(floata,floatb){ printf("a+b=%f\n",a+b);}voidjianfa(floata,floatb){ p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国农业科学院油料作物研究所油料基因工程与转基因安全评价创新团队科研助理招聘1人备考题库(历年真题)附答案详解
- 2026山东农业大学养分资源高效利用理论与技术创新团队博士后招聘备考题库及参考答案详解ab卷
- 2026江苏南通市第一人民医院第一批招聘备案制工作人员102人备考题库汇编附答案详解
- 2026云南红河州石屏嘉胜能源有限责任公司招聘5人备考题库附参考答案详解(轻巧夺冠)
- 2026中国电信校园招聘“优才计划”专项招聘备考题库及1套参考答案详解
- 2026云南农业大学后勤服务有限公司第一批就业见习人员招聘15人备考题库【重点】附答案详解
- 工商局财务审计制度
- 工地财务管理规章制度
- 2026广东广州市招聘中山医学院医科公共平台技术员1人备考题库含答案详解(达标题)
- 工程建设期绩效考核制度
- 10kV配电网电流保护系统设计
- 雨课堂在线学堂《信息素养-学术研究的必修课》作业单元考核答案
- 2025内蒙古单招计算机试题及答案
- 国家基本药物制度培训
- DB4201∕T 533.1-2017 清洁服务规范 第1部分:分类与一般要求
- 春秋三传经典常谈课件
- WST856-2025安全注射标准解读
- 2025年门球裁判考试题库
- 2025版太阳能光伏电站运维与发电量保证合同
- “无废城市”建设中固体废弃物资源化利用模式及对策研究
- 艾滋病、梅毒、乙肝暴露儿童干预、随访及转介流程
评论
0/150
提交评论