首页 C语言习题_答案

C语言习题_答案

举报
开通vip

C语言习题_答案1/45C语言章节习题目录C语言章节习题.................................................................................................1第一章C语言概述...........................................................................................2第三章数据类型、运算符和表达式..............................

C语言习题_答案
1/45C语言章节习题目录C语言章节习题.................................................................................................1第一章C语言概述...........................................................................................2第三章数据类型、运算符和表达式...............................................................3第四章顺序结构程序设计...............................................................................4第五章选择结构程序设计.............................................................................10第六章循环结构程序设计.............................................................................17第7章数组习题.............................................................................................25第8章函数习题.............................................................................................33第九章预处理.................................................................................................40第十章指针.....................................................................................................412/45第一章C语言概述一、选择题:1、一个C程序的执行是从(A)。A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在C语言中,每个语句必须以(D)结束。A.回车符B.冒号C.逗号D.分号3、C语言 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 :在一个源程序中,main函数的位置(C)。A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后4、一个C语言程序是由(B)。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成5、下列说法中错误的是(D)。A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。A.生成可执行目标文件B.生成目标文件C.输出运行结果D.自动保存源文件二、填空题:1、C语言只有(37)个关键字和(9)种控制语句。2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。3、C语言程序的注释可以出现在程序中的任何地方,它总是以(\*)符号作为开始标记,以()符号作为结束标记。4、C语言中,输入操作是由库函数(scanf)完成的,输出操作是由库函数(printf)完成的。5、系统默认的C语言源程序文件的扩展名是(.c),经过编译后生成的目标文件的扩展名是(.obj),经过连接后生成的可执行文件的扩展名是(.exe)。6、C语言的标识符只能由字母、数字和(下划线)三种字符组成。3/45第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的C语言浮点型常量是(C)。A.160.B.0.12C.2e4.2D.0.02、以下选项中,(D)是不正确的C语言字符型常量。A.'a'B.'\x41'C.'\101'D."a"3、在C语言中,字符型数据在计算机内存中,以字符的(C)形式存储。A.原码B.反码C.ASCII码D.BCD码4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C)。x=(i=4,j=16,k=32)A.4B.16C.32D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算6、表达式!x||a==b等效于(D)。A.!((x||a)==b)B.!(x||y)==bC.!(x||(a==b))D.(!x)||(a==b)7、设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值是(B)。A.0,0B.0,1C.1,0D.1,18、设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是(B)。A.3B.0C.9D.-129、在以下一组运算符中,优先级最低的运算符是(D)。A.*B.!=C.+D.=10、设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是(B)。A.6B.12C.15D.表达式出错11、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(C)。A.1B.2C.2.0D.2.512、设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为(D)。A.4B.3C.2D.113、设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是(A)。A.10<a<15B.a==11||a==12||a==13||a==14C.a>10&&a<15D.!(a<=10)&&!(a>=15)14、设f是实型变量,下列表达式中不是逗号表达式的是(D)。A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)15、表达式18/4*sqrt(4.0)/8值的数据类型是(C)。A.intB.floatC.doubleD.不确定16、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=?A?+?6?-,3?;后c2中的值是(A)。A.DB.68C.不确定的值D.C17、以下用户标识符中,合法的是(B)。A.intB.nitC.123D.a+b18、C语言中,要求运算对象只能为整数的运算符是(A)。A.%B./C.>D.*4/4519、若有说明语句:charc='\72';则变量c在内存占用的字节数是(A)。A.1B.2C.3D.420、字符串"ABC"在内存占用的字节数是(B)。A.3B.4C.6D.821、要为字符型变量a赋初值,下列语句中哪一个是正确的(B)。A.chara="3";B.chara=?3?;C.chara=%;D.chara=*;22、下列不正确的转义字符是(C)。A.\\B.\'C.074D.\0二、填空题:1、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为0。3、设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!=c+2,-a-5*b<=d+1,b==a=2的值为1、0、1、1。4、设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2.5。5、判断变量a、b的值均不为0的逻辑表达式为a!=0&&b!=0,值为1。6、求解赋值表达式a=(b=10)%(c=6),表达式值为4、a、b、c的值依次为1,0,6。7、求解逗号表达式x=a=3,6*a后,表达式值为18、x、a的值依次为3,3。三、编程题:1、设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。2、编写一个程序,将大写字母A转换为小写字母a。1.main(){floatx=1.5,y=2.3;printf(“areais%6.2fn”,x*y);}2.main(){charc=?A?;printf(“%d”,c+32);}第四章顺序结构程序设计基础练习(A)一、填空题1、C语句分为五种:控制语句、函数调用语句、表达式语句、空语句和复合语句。2、一个基本语句的最后一个字符是;。3、复合语句又称分程序,是用{}括起来的语句。4、使用C语言库函数时,要用于预编译命令#include将有关的“头文件”包括到用户源文件中。5、使用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 输入输出库函数时,程序的开头要有如下预处理命令:#include<stdio.h>。6、{a=3;c+=a-b;}在语法上被认为是1条语句。7、getchar函数的作用是从终端输入1个字符。8、如果从键盘输入字符?a?并按回车键,请写出以下程序运行效果a。#include<stdio.h>5/45main(){putchar(getchar());}9、以下程序的输出结果为i:dec=-4,oct=177774,hex=fffc,unsigned=65532。main(){shorti;i=-4;printf(“n”,i,i,i,i);}10、以下程序的输出结果为*3.140000,3.142*。main(){printf(“*%f,%4.3f*n”,3.14,3.1415);}11、以下程序的输出结果为c:dec=120,oct=170,hex=78,ASCII=x。main(){charc=‘x’;printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%cn”,c,c,c,c);}12、已有定义intd=-2;执行以下语句后的输出结果是*d(1)=-2*d(2)=-2*d(3)=-2**d(4)=177776*d(5)=177776*d(6)=177776*printf(“*d(1)=%d*d(2)=%3d*d(3)=%n”,d,d,d);printf(“*d(4)=%o*d(5)=%7o*d(6)=%n”,d,d,d);13、以下程序的输出结果为x=1y=2*sum*=310Squaredis:100main(){intx=1,y=2;printf(“x=%dy=%d*sum*=%dn”,x,y,x+y);printf(“10Squaredis:%dn”,10*10);}14、以下程序的输出结果为(1)123.456000(2)□□□□□□□123.457(3)123.4560(4)8765.456700(5)□□□□□□8765.457(6)8765.4567(7)8765.4567#include<stdio.h>6/45main(){floata=123.456;doubleb=8765.4567;printf(“(1)%fn”,a);printf(“(2)%14.3fn”,a);printf(“(3)%6.4fn”,a);printf(“(4)%lfn”,b);printf(“(5)%14.3lfn”,b);printf(“(6)%8.4lfn”,b);printf(“(7)%.4fn”,b);}二、判断题1、所谓函数体实际上就是一个复合语句。(对)2、C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。(对)3、putchar函数可以向终端输出一个整数数据。(错)4、考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时可不加#include命令。(对)5、任何表达式都可以加上分号而成为有意义的语句。(对)三、选择题1、以下不属于 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 控制语句的是(A)。A)表达式语句B)选择语句C)循环语句D)转移语句2、putchar函数可以向终端输出一个(D)。A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值3、getchar函数的参数个数是(B)。A)1B)0C)2D)任意4、以下程序的输出结果是(D)。main(){printf(“n*s1=%15s*”,“chinabeijing”);printf(“\n*s2=%-5s*”,“chi”);}A)*s1=chinabeijing*B)*s1=chinabeijing**s2=**chi**s2=chi*C)*s1=*chinabeijing*D)*s1=chinabeijing**s2=chi**s2=chi*5、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B)。;如果字符串长度小于5,则输出按方式(C)。A)从左起输出该字串,右补空格B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格D)输出错误信息6、已有定义inta=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是(D)。A)整型变量的输出格式符只有%d一种B)%x是格式符的一种,它可以适用于任何一种类型的数据C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度7、以下C程序正确的运行结果是(C)。main()7/45{longy=-43456;printf(“y=%n”,y);printf(“y=%n”,y);printf(“y=%08ldn”,y);printf(“y=%+8ldn”,y);}A)y=-43456B)y=-43456y=-43456y=-43456y=-0043456y=-0043456y=-43456y=+-43456C)y=-43456D)y=-43456y=-43456y=-0043456y=-0043456y=00043456y=-43456y=+434568、以下C程序正确的运行结果是(D)。main(){inty=2456;printf(“y=%3on”,y);printf(“y=%8on”,y);printf(“y=%#8on”,y);}A)y=2456B)y=4630y=2456y=4630y=########2456y=########4630C)y=2456D)y=4630y=2456y=4630y=02456y=04630基础练习(B)一、填空题1、printf函数的作用是向终端输出若干个任意类型的数据。2、printf函数中的“格式控制”,包括格式说明和普通字符两种信息。3、scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。4、在用scanf函数中输入数据时,如果在“格式控制”字符传中除了格式说明以外还有其他字符,则应在对应位置输入与这些字符相同的字符。5、在用”%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。6、在输入数据时,遇以下情况时该数据认为结束:遇空格、或按“回车”或“跳格”键;按指定的宽度结束;遇非法输入。7、输入数据时不能规定精度。8、如果在%后有一个“*”附加说明符,表示跳过它指定的列数。二、选择题1、若inta,b;scanf(“%d%d”,&a,&b);不可以用(A)作为输入的分隔符。A),B)空格C)回车D)TAB键2、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是(B)。A)scanf(“%d%lx,%le”,&x,&y,&z);B)scanf(“%2d*%d%lf”,&x,&y,&z);C)scanf(“%x%*d%o”,&x,&y);D)scanf(“%x%o%6.2f”,&x,&y,&z);3、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(D)。inta1,a2;charc1,c2;8/45scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020AB<CR>B)1020<CR>AB<CR>C)1020AB<CR>D)1020AB<CR>4、阅读以下程序,当输入数据的形式为25,13,10<CR>正确的输出结果为(D)。main(){intx,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);}A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值5、已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为(D)。main(){inta;floatf;printf(“nInputnumber:”);输入语句printf(“n”,f,a);}Inputnumber:4.52<CR>A)scanf(“%d,%f”,&a,&f);B)scanf(“%f,%d”,&f,&a);C)scanf(“%d%f”,&a,&f);D)scanf(“%f%d”,&f,&a);6、根据定义和数据的输入方式,输入语句的正确形式为(B)。已有定义:floatf1,f2;数据的输入方式:4.523.5A)scanf(“%f,%f”,&f1,&f2);B)scanf(“%f%f”,&f1,&f2);C)scanf(“%3.2f%2.1f”,&f1,&f2);D)scanf(“%3.2f%2.1f”,&f1,&f2);7、阅读以下程序,若运行结果为如下形式,输入输出语句的正确 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 是(B)。main(){intx;floaty;printf(“enterx,y:”);输入语句输出语句}输入形式enterx,y:23.4输出形式x+y=5.40A)scanf(“%d,%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);B)scanf(“%d%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);C)scanf(“%d%f”,&x,&y);printf(“nx+y=%6.1f”,x+y);D)scanf(“%d%3.1f”,&x,&y);printf(“nx+y=%4.2f”,x+y);9/458、以下说法正确的是(D)。A)输入项可以为一实型常量,如scanf(“%f”,3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);9、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是(D)。A)132<回车>B)1,3,2<回车>C)a=1b=3c=2<回车>D)a=1,b=3,c=2<回车>}10、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(A)。inta1,a2;charc1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A)10A20B<CR>B)10A20B<CR>C)10A20B<CR>D)10A20B<CR>11、已有定义intx;floaty;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345678<回车>,则x的值为(B),y的值为(B)。(1)A)12345B)123C)45D)345(2)A)无定值B)45.000000C)678.000000D)123.000000三、编程:1、编写程序,从键盘上输入三个数分别给变量a、b、c,求它们的平均值。并按如下形式输出:averageof**、**and**is**.**。其中,三个**依次表示a、b、c的值,**.**表示a,b,c的平均值。2、输入9时23分并把它化成分钟后输出。(从零点整开始计算)。1、参考答案main(){floata,b,c,t;printf(“pleaseinputa,b,c:n”);scanf("%f,%f,%f",&a,&b,&c);t=(a+b+c)/3;printf("averageof%6.2f、%6.2fand%6.2fisn”,a,b,c,t);}2、参考答案main(){inth,m,s;printf(“pleaseinputh,m:n”);scanf("%d,%d",&h,&m);s=h*60+m;printf("total%dn”,s);}10/45第五章选择结构程序设计基础练习(A)一、填空题1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。2、逻辑运算符!是单目运算符,其结合性是由右结合性。3、C语言提供的三种逻辑运算符是&&、||、!。其中优先级最高的为!,优先级最低的为||。4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0和非0来判定它们属于“真”或“假”。5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x<z||y<z。7、条件“2<x<3或x<-10”的C语言表达式是x<-10||x>2&&x<3。8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A<B&&!C>B的值是0。12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。13、有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。14、有intx,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。!(x>y)+(y!=z)||(x+y)&&(y-z)15、有inta=3,b=4,c=5,x,y;,则以下表达式的值为0。!(x=a)&&(y=b)&&016、if(!k)a=3;语句中的!k可以改写为k==0,使其功能不变。二、选择题1、逻辑运算符两侧运算对象的数据类型(D)。A)只能是0或1B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据2、以下关于运算符优先顺序的描述中正确的是(C)。A)关系运算符<算术运算符<赋值运算符<逻辑与运算符B)逻辑与运算符<关系运算符<算术运算符<赋值运算符C)赋值运算符<逻辑与运算符<关系运算符<算术运算符D)算术运算符<关系运算符<赋值运算符<逻辑与运算符3、下列运算符中优先级最高的是(B)。A)<B)+C)&&D)!=4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(C)。A)(x>=1)&&(x<=100)&&(x>=200)&&(x<=300)B)(x>=1)||(x<=100)||(x>=200)||(x<=300)C)(x>=1)&&(x<=100)||(x>=200)&&(x<=300)D)(x>=1)||(x<=100)&&(x>=200)||(x<=300)11/456、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。A)‘x’&&‘y’B)x<=yC)x||y+z&&y-zD)!((x<y)&&!z||1)7、已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是(C)。A)0B)语法错C)1D)“假”8、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为(B)。A)1B)2C)3D)49、以下不正确的if语句形式是(C)。A)if(x>y&&x!=y);B)if(x==y)x+=y;C)if(x!=y)scanf(“%d”,&x)elsescanf(“%d”,&y);D)if(x<y){x++;y++;}10、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是(B)。if(x>y)z=x;x=y;y=z;A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10D)x=20,y=30,z=2011、以下if语句语法正确的是(B)。A)if(x>0)printf(“%f”,x)elseprintf(“%f”,-x);B)B)if(x>0){x=x+y;printf(“%f”,x);}elseprintf(“%f”,-x);C)C)if(x>0){x=x+y;printf(“%f”,x);};elseprintf(“%f”,-x);D)D)if(x>0){x=x+y;printf(“%f”,x)}elseprintf(“%f”,-x);12、请阅读以下程序:main(){inta=5,b=5,c=0;if(a==b+c)printf(“***n”);elseprintf(“$$$n”);}以下程序(C)。A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出***D)输出$$$三、写出下列程序的运行结果1、若运行时输入:2<回车>,则以下程序的运行结果是2ndclasspostageis14p。#include<stdio.h>voidmain(void){charClass;printf(“Enter1for1stclasspostor2for2ndpost”);scanf(“%c”,&Class);if(Class==‘1’)printf(“1stclasspostageis19p”);elseprintf(“2ndclasspostageis14p”);12/45}2、若运行时输入:4.4<回车>,则以下程序的运行结果是SellingPrice(0.30)$5.72。#include<stdio.h>voidmain(void){floatCostPrice,SellingPrice;printf(“EnterCostPrice$:”);scanf(“%f”,&CostPrice);if(CostPrice>=5){SellingPrice=CostPrice+CostPrice*0.25;printf(“SellingPrice(0.25)$%6.2f”,SellingPrice);}else{SellingPrice=CostPrice+CostPrice*0.30;printf(“SellingPrice(0.30)$%6.2f”,SellingPrice);}}3、以下程序的运行结果是F。main(){if(2*2==5<2*2==4)print(“T”);elseprintf(“F”);}能力提高(B)一、选择题1、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是(D)。A)A%2==1B)!(A%2==0)C)!(A%2)D)A%22、下列运算符中优先级最低的(A),优先级最高的是(C)。A)?:B)&&C)+D)!=3、请阅读以下程序:main(){inta=5,b=0,c=0;if(a=b+c)printf(“***n”);elseprintf(“$$$n”);}以下程序(D)。A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出***D)输出$$$4、以下程序的运行结果是(C)。main(){intm=5;if(m++>5)printf(“%dn”,m);elseprintf(“%dn”,m--);}A)4B)5C)6D)7二、根据程序的功能,将以下程序补充完整1、以下程序对输入的四个整数,按从小到大的顺序输出。请在内填入正确内容。main()13/45{intt,a,b,c,d;printf(“inputa,b,c,d:”)scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf(“%d,%d,%d,%d”,a,b,c,d);}三、编程:1、试编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。2、编制程序要求输入整数x、y和z,若x2+y2+z2大于1000,则输出x2+y2+z2千位以上的数字,否则输出三数之和。3、编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的提示信息。1、参考答案main(){intx;if(x%5==0&&x%7==0)printf(“yes”);elseprintf(“no”);}2、参考答案main(){intx,y,z,a,b;scanf(“%d%d%d”,&x,&y,&z);a=x*x+y*y*z*z;if(a>1000){b=a/1000;printf(“%d”,b);}elseprintf(“%d”,x+y+z);}3、参考答案#include<math.h>main(){floata,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if(a+b>c&&b+c>a&&a+c>b){s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%7.2fn”,area);}elseprintf(“bunengzhuchengsanjiaoxingn”);}第2讲基础练习(A)一、填空题14/451、在if语句中又包含一个或多个if语句称为if语句的嵌套。2、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与其之前最近的未配对的if配对。如果if与else数目不一样,为实现设计者的企图,可以加花括号关系。3、条件运算符是C语言中唯一的一个三目运算符,其结合性为从右至左。4、假设条件表达式的格式为:表达式1?表达式2:表达式若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较高的类型5、在switch语句中,switch后面括弧内的“表达式”,可以为任何类型。6、若a=1,b=2,则表达式a>b?a:b+1的值是3。7、若w=1、x=2、y=3、z=4,则条件表达式w<x?w:y<z?y:z的值是1。8、若有以下if语句:if(a<b)min=a;elsemin=b;可用条件运算符来处理的等价式子为min=(a<b)?a:b;。9、若x=1,y=2,z=3,则表达式(x<y?x:y)==z++的值是0。10、设有变量定义:inta=5,c=4;则(--a==++c)?--a:c++的值是5,此时c的存储单元的值为6。二、判断题1、在switch语句中,每一个的case常量表达式的值可以相同。(错)2、在switch语句中,各个case和default的出现次序影响执行结果。(对)3、在switch语句中,多个case可以共用一组执行语句。(对)4、条件表达式能取代一般if的语句。(错)5、case后的常量表达式类型一定与表达式类型匹配。(对)三、写出以下程序的运行结果1、main()-1{inta=2,b=3,c;c=a;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;printf(“%dn”,c);}2、main()200{inta,b,c;ints,w,t;s=w=t=0;a=-1;b=3;c=3;if(c>0)s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}elseif(c>0)w=a-b;elset=c;printf(“%d%d%d”,s,w,t);}3、switch(grade){case,A?:printf(“85-n”);case,B?:printf(“70-n”);case,C?:printf(“60-n”);case,D?:printf(“<60n”);default:printf(“error!n”);15/45}若grade的值为?C?,则输出结果是60-69〈60error!能力提高(B)一、写出下列程序的运行结果1、#include<stdio.h>551voidmain(void){intx,y=1,z;if(y!=0)x=5;printf(“n”,x);if(y==0)x=4;elsex=5;printf(“n”,x);x=1;if(y<0)if(y>0)x=4;elsex=5;printf(“n”,x);}2、#include<stdio.h>4-2404-2voidmain(void){intx,y=-2,z;if((z=y)<0)x=4;elseif(y==0)x=5;elsex=6;printf(”n”,x,z);if(z=(y==0))x=5;x=4;printf(“n”,x,z);if(x=z=y)x=4;printf(“n”,x,z);}3、#include<stdio.h>a=2,b=1main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}16/45case2:a++;b++;break;}printf(“a=%d,b=%d”,a,b);}二、根据程序的功能,将以下程序补充完整以下程序计算某年某月有几天。其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年。请在内填入正确内容。main(){intyy,mm,len;printf(“year,month=”);scanf(“%d%d”,&yy,&mm);switch(mm){case1:case3:case5:case7:case8:case10:case12:len=31;break;case4:case6:case9:case11:len=30;break;case2:if(yy%4==0&&yy%100!=0||yy%400==0)len=29;elselen=28;break;default:printf(“inputerror”);break;}printf(“thelengthof%d%dis%dn”,yy,mm,len);17/45第六章循环结构程序设计基础练习(A)一、选择题1、C语言中while和do-while循环的主要区别是(A)。A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件严格C)C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句2、以下描述中正确的是(C)。A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while3、设有程序段intk=10;while(k)k=k-1;则下面描述中正确的是(A)。A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次4、下列循环语句中有语法错误的是(D)。A)while(x=y)5;B)while(0);C)do2;while(x==b);D)dox++while(x==10);5、已知inti=1;执行语句while(i++<4);后,变量i的值为(C)。A)3B)4C)5D)66、语句while(!E);中的表达式!E等价于(A)。A)E==0B)E!=1C)E!=0D)E==17、下面程序段的运行结果是(A)。a=1;b=2;c=2;while(a<b<c){t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);A)1,2,0B)2,1,0C)1,2,1D)2,1,18、下面程序的运行结果是(C)。#include<stdio.h>main(){intnum=0;while(num<=2){num++;printf(“%dn”,num);}}A)1B)1C)1D)1222339、以下能正确计算1×2×3×,×10的程序段是(C)。A)do{i=1;s=1;B)do{i=1;s=0;s=s*i;s=s*i;i++;i++;}while(i<=10);}while(i<=10);18/45C)i=1;s=1;D)i=1;s=0;do{s=s*i;do{s=s*i;i++;i++;}while(i<=10);}while(i<=10);10、下面程序的运行结果是(D)。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf(“%dn”,y--);}A)-1B)1C)8D)011、已知inti=1,j=0;执行下面语句后j的值是(D)。while(i)switch(i){case1:i+=1;j++;break;case2:i+=2;j++;break;case3:i+=3;j++;break;default:i--;j++;break;}A)1B)2C)3D)死循环12、若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是(A)。#include<stdio.h>main(){intc;while((c=getchar())!=‘\n’)switch(c-‘2’){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}printf(“n”);}A)668977B)668966C)66778777D)6688766二、填空题1、执行下面程序段后,k值是36。k=1;n=263;do{k*=n%10;n/=10;}while(n);2、下面程序的运行结果是s=254。#include<stdio.h>main(){inta,s,n,count;a=2;s=0;n=1;count=1;while(count<=7){n=n*a;s=s+n;++count;}printf(“s=%d”,s);}3、下面程序段的运行结果是**。x=2;do{printf(“*”);x--;}while(!x==0);19/454、运行以下程序时,从键盘键入China#<CR>(<CR>代表回车),则下面程序的运行结果是5,5。#include<stdio.h>main(){intv1=0,v2=0
本文档为【C语言习题_答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_507557
暂无简介~
格式:pdf
大小:158KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2020-03-28
浏览量:47