




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言章节习题目录C语言章节习题1第一章C语言概述2第三章数据类型、运算符和表达式3第四章顺序结构程序设计4第五章选择结构程序设计10第六章循环结构程序设计17第7章数组习题25第8章函数习题33第九章预处理40第十章指针41第一章C语言概述一、选择题:1、一个C程序的执行是从A.A本程序的main函数开始,至U main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在C语言中,每个语句必须以D结束.A.回车符 B.冒号 C.逗号 D.分号3、C语言规定:在
2、一个源程序中,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
3、种限制语句.2、每个源程序有且只有一个main函数,系统总是从该函数开始执行C语言程序.3、C语言程序的注释可以出现在程序中的任何地方,它总是以*符号作为开始标记,以符号作为结束标记.4、C语言中,输入操作是由库函数scanf完成的,输出操作是由库函数printf 完成的.5、系统默认的 C语言源程序文件的扩展名是 .c,经过编译后生成的目标文件的扩展名是.obj,经过连接后生成的可执行文件的扩展名是.exe .6、C语言的标识符只能由字母、数字和下划线三种字符组成.第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C语言浮点型常量是C.A. 160. B. 0.12 C.
4、2e4.2 D. 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=32A. 4 B. 16C.32D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为B.A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C
5、.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算6、表达式!x|a=b等效于D.A. !x|a=b B. !x|y=b C. !x|a=b D. !x|a=b7、设整型变量 m,n,a,b,c,d均为1,执行m=a>b&&n=c>d后,m,n的值是B.A. 0, 0 B. 0, 1 C. 1,0 D. 1,18、设有语句int a=3;,那么执行了语句a+=a-=a*=a;后,变量 a的值是B.A. 3 B. 0 C. 9 D. -129、在以下一组运算符中,优先级最低的运算符是D.A. * B. != C. + D.=10、设整型变量i值为2,表达式
6、+i+i+i的结果是B.A. 6 B. 12 C. 15 D.表达式出错11、假设已定义 x和y为double类型,那么表达式x=1 , y=x+3/2的值是C.A. 1 B. 2 C. 2.0 D. 2.512、设 a=1, b=2 , c=3, d=4,那么表达式:a<b? a : c<d? a : d 的结果为D.A. 4 B. 3 C. 2 D. 113、设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是A.A. 10<a<15B. a= =11| a= =12 | a= =13 | a= =14C. a>10 &&a
7、mp; a<15 D. !a<=10 && !a>=1514、设f是实型变量,以下表达式中不是逗号表达式的是D.A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0, f>0 D. f=3.2, 1.015、 表达式18/4*sqrt4.0/8值的数据类型是C.A. int B. float C. double D. 不确定16、字母 A的ASCII码为十进制数65,且c2为字符型,那么执行语句C2=' A' +-' '63第 c2 中的值是A.A. D B. 68 C.不确定的值 D. C
8、17、以下用户标识符中,合法的是 B.A. int B. nit C. 123 D. a+b18、C语言中,要求运算对象只能为整数的运算符是 A.A. % B. / C. > D. *19、假设有说明语句:char c='72'那么变量c在内存占用的字节数是(A).A. 1 B. 2 C. 3 D. 420、字符串"ABC"在内存占用的字节数是(B).A. 3 B. 4 C. 6 D. 821、要为字符型变量a赋初值,以下语句中哪一个是正确的( B).A. char a="3" B. char a= ' C. char a=
9、%; D. char a=*;22、以下不正确的转义字符是( C).A. B. ' C. 074 D. 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、设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(
10、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()float x=1.5,y=2.3;printf(" aren"is,%y)2f2.main()char c= '
11、 A' ;printf(" %d' ,c+32);第四章顺序结构程序设计根底练习(A)一、填空题1、c语句分为五种:捽制语句、函数调用语句、表达式语句、空语句和复合语句 .2、一个根本语句的最后一个字符是一3、复合语句又称分程序,是用 括起来的语句.4、使用C语言库函数时,要用于预编译命令#include 将有关的“头文件包括到用户源文件中.5、使用标准输入输出库函数时,程序的开头要有如下预处理命令:#include <stdio.h> .6、 a=3;c+=a-b; 在语法上被认为是 1 条语句.7、getchar函数的作用是从终端输入 1一个字符.8、
12、如果从键盘输入字符/按回车键,请写出以下程序运行效果a .#include<stdio.h>main()(putchar(getchar();)9、以下程序的输出结果为 i:dec=-4,oct=177774,hex=fffc,unsigned=65532 main()(short i;i=-4;printf( "n",i,i,i,i);)10、以下程序的输出结果为*3.140000,3.142*.main()(printf( "*%f,%4.3f ,3.14,3.1415);)11、以下程序的输出结果为c:dec=120,oct=170,hex=78
13、,ASCII=x .main()(char c= 'x'printf( " c:dec=%d,oct=%o,hex=%x,ASCII=%C ,c,c,c,c);)12、已有定义int d=-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=1 y=2
14、 *sum*=310 Squared is: 100main() (int x=1,y=2;,x,y,x+y);printf( " x=%d y=%d *sum*=%if printf( "10 Squared isn% d,10*10;)14、以下程序的输出结果为 (1) 123.456000(2) 123.457 123.4560(4) 8765.456700(5) 口口门7 8765.457(6) 8765.4567 8765.4567_#include <stdio.h>main() (float a=123.456; double b=8765.456
15、7;printf("n% f ,a);printf( “(2) %14i3f ,a )printf(" 614f ,a);printf( " (4) %If ,b);printf( "(5) %14n3lf ,b);printf(" (6) %8n4lf ,b);printf(" (7) %4f ,b);、判断题1、所谓函数体实际上就是一个复合语句.对2、C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的.对3、putchar函数可以向终端输出一个整数数据.错4、考虑到 printf和scanf函数使用频繁,系统允许在使用这
16、两个函数时可不加#include命令.对5、任何表达式都可以加上分号而成为有意义的语句.对三、选择题1、以下不属于流程限制语句的是A .A表达式语句B选择语句C循环语句 D转移语句2、putchar函数可以向终端输出一个D .D字符或字符型变量值A整型变量表达式值B实型变量值C字符串3、getchar函数的参数个数是B .A 1 B 0C 2D任意4、以下程序的输出结果是D.main()(“chinabeijing ");“chi );B) *s1=chinabeijing*s2=chi *D) *s1= chinabeijing*s2=chi *printf( n*S1=%15s*
17、“printf( n*s2=%- 5s* A) *s1=chinabeijing * *s2=*chi*C) *s1=*chinabeijing*s2=chi*5、printf函数中用到格式符 那么输出按方式B .;5s,其中数字5表示输出的字符串占用如果字符串长度小于 5,那么输出按方式5歹U.如果字符串长度大于C .5,A从左起输出该字串,右补空格B按原字符长从左向右全部输出C右对齐输出该字串,左补空格D输出错误信息6、已有定义int a=-2;和输出语句:printf"8lx'以同正确的表达是D .A整型变量的输出格式符只有d 一种B % x是格式符的一种,它可以适用于
18、任何一种类型的数据C%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D%8lx不是错误的格式符,其中数字8规定了输出字段的宽度 7、以下C程序正确的运行结果是C .mainlong y=-43456;printf("y=% n ,y);printf("y=% n,y);printf("y=%081d,y);printf("y=%+81d,y);A) y=)-43456B) y=-43456y=- 43456 y=-0043456 y=-43456C) y=-43456y=-43456y=-0043456y=+-43456D) y= -43
19、456y=-43456 y=-0043456y= -43456y=-0043456 y=00043456 y=+434568、以下C程序正确的运行结果是(D ).main()int y=2456;printf(printf( printf()A) y= 2456y=2456y=#2456C) y=2456y=2456y=02456"y=%3'0 ,y);“y=%80 ,y);“y=%#80 ,y);B) y= 4630y=4630y=#4630D) y=4630y= 4630y= 04630根底练习(B)一、填空题1、printf函数的作用是向终端输出 假设干个任意类型的数据
20、.2、printf函数中的“格式限制,包括格式说明和普通字符两种信息.3、scanf函数中的“格式限制后面应当是变量地址 ,而不是变量名.4、在用scanf函数中输入数据时,如果在“格式限制字符传中除了格式说明以外还有其他字符,那么应在对应位置输入与这些字符相同的字符 .5、在用 络式输入字符时,空格字符和“转义字符都作为有效字符输入 .6、在输入数据时,遇以下情况时该数据认为结束:遇 空格 、或按 “回车 或"跳格键;按指定的宽度结束;遇非法输入.7、输入数据时不能规定精度 .8、如果在后有一个“ *附加说明符,表示 跳过它指定的列数 .二、选择题1、假设int a,b; scan
21、f( "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%0 ,&x,&y);D)scanf( "x%o%6.2f ,&x,&am
22、p;y,&z);3、已有如下定义和输入语句,假设要求 al , a2, cl , c2的值分别为10, 20, A和B,当从第一列 开始输入数据时,正确的数据输入方式是(D ).int a1,a2; char c1,c2;scanf( "%d%d ,&a1,&a2);scanf( "%c%C ,&c1,&c2);A) 1020AB<CR>B) 10 20<CR>AB<CR>C) 10 20 AB<CR>D) 10 20AB<CR>4、阅读以下程序,当输入数据的形式为25,13
23、,10<CR> 正确的输出结果为(D ).main() int x,y,z;scanf( "%d%d%d ,&x,&y,&z);printf("x+y+z=%d ,x+y+z);)A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值5、已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为(D ).main() int a; float f;printf( ninput number: ");输入语句printf( "n ,f,a);) Input number:4.5 2<CR>A
24、)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 ).已有定义:float f1,f2;数据的输入方式:4.523.5A)scanf( "f,%f",&f1,&f2);B)scanf( "f%f,&f1,&f2);C)scanf( "%3
25、.2f %2.1f ",&f1,&f2);D)scanf( "%3.2f%2.1f &f1,&f2);7、阅读以下程序,假设运行结果为如下形式,输入输出语句的正确内容是(B ).main() int x; float y;printf( "enter x,y: ");输入语句 输出语句)输入形式enter x,y:2 3.4输出形式x+y=5.40A)scanf( "d,%f,&x,&y);printf( nx+y=%4.2f ,x+y);B)scanf( "d%f ,&x,&a
26、mp;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);8、以下说法正确的选项是(D ).A)输入项可以为一实型常量,如 scanf( "f",3.5);B)只有格式限制,没有输入项,也能进行正确输入,Sc scanf( "a=%d,b=%d );C)当输入一个实型数据时,格式限制局部应规定小数点后的位数,如 sc
27、anf( “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=1 b=3 c=2< 回车>D)a=1,b=3,c=2< 回车> 10、已有如下定义和输入语句,假设要求 a1, a2, c1 , c2的值分别为1
28、0, 20, A和B,当从第一 列开始输入数据时,正确的数据输入方式是(A ).int a1,a2; char c1,c2;scanf( " %d%c%d% c,&a1,&c1,&a2,&c2);A) 10A 20B<CR>B) 10 A 20 B<CR>C) 10A20B<CR>D) 10A20 B<CR>11、已有定义int x; float y;且执行scanf( "%3d%f ,&x,&y)f句,假设从第一列开始输入数据12345678V回车 >,那么x的值为(B
29、) , y的值为( B ). A) 12345 B) 123C) 45D) 345 A)无定值 B) 45.000000 C) 678.000000 D) 123.000000三、编程:1、编写程序,从键盘上输入三个数分别给变量a、b、c,求它们的平均值.并按如下形式输出:average of*、* and * is *.*.其中,三个 * 依次表示 a、b、c 的值,*.* 表示 a,b,c 的平均值.2、输入9时23分并把它化成分钟后输出.(从零点整开始计算).1、参考答案main () float a, b, c, t;printf("please input a,b,(n&q
30、uot;);scanf ("%f, %f, %f", &a, &b, &c);t=(a+b+c)/3;printf ("average of %6.2f 、%6.2f and %6.2f isn ,a,b,c,t);2、参考答案main ( ) int h,m,s;printf("please input h,mn");scanf ("%d,%d", &h, &m);s=h*60+m;printf ("total %dn ,s);第五章选择结构程序设计根底练习(A)一、填空题
31、1、关系表达式的运算结果是逻辑 值.c语言没有逻辑型数据,以,代表“真",以 0代表"假.2、逻辑运算符!是 单目运算符,其结合性是由右结合性 .3、C语言提供的三种逻辑运算符是&&、|、! .其中优先级最高的为,优先级最低的为| | Q4、逻辑运算符两侧的运算对象不但可以是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、
32、条件 " 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&
33、gt;B 的值是 0.12、假设 a=6,b=4,c=2 ,那么表达式!(a-b)+c-1&&b+c/2 的值是 1.13、有 int x,y,z;且 x=3,y=-4,z=5 ,那么表达式(x&&y)=(x|z)的值为 1.14、有int x,y,z;且x=3,y=-4,z=5 ,那么以下表达式的值为1.!(x>y)+(y!=z)|(x+y)&&(y-z)15、有int a=3,b=4,c=5,x,y;,那么以下表达式的值为0.!(x=a)&&(y=b)&&016、if (!k) a=3;语句中的!k可以改
34、写为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的值不是数字也不是字母时,
35、应采用下述表达式( 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&&
36、;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<=
37、100)&&(x>=200)|(x<=300)6、设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) 0 B)语法错 C) 1D) “假8、设有:int
38、a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后 n 的值为( B ).A) 1 B) 2C) 3D) 49、以下不正确的if语句形式是(C ).A) if(x>y&&x!=y);B) if(x=y) x+=y;C) if(x!=y) scanf("%d ,&x) else scanf("%d ,&y);d) if(x<y) x+; y+;10、int x=10,y=20,z=30;以下语句执行后 x, y, z的值是( B ). if(x>y) z=x; x
39、=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)else printf("-%f",B) B) if(x>0) x=x+y; printf("%f" x);else printf( "%f',C) C)if(x>0) x=x+y; printf("%f" x);else print
40、f("-%f",D) D)if(x>0) x=x+y; printf( " %f" x)else printf("-%f",12、请阅读以下程序: main() int a=5,b=5,c=0;if(a=b+c) printf("rf*);else printf("娜$);以下程序(C ).A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出*D)输出$三、写出以下程序的运行结果1、假设运行时输入:2<回车,那么以下程序的运行结果是2nd class postage is 14P#includ
41、e <stdio.h> void main(void) char Class;printf( " Enter 1 for 1st class post or 2 for 2nd post");scanf( "%C ,&Class);if(Class= ' 1')printf(“1st class postage is 19p");elseprintf(“2nd class postage is 14p");)2、假设运行时输入:4.4<回车,那么以下程序的运行结果是Selling Price(0.30)
42、$5.72#include <stdio.h>void main(void)float CostPrice,SellingPrice;printf( "Enter Cost Price $:");scanf( "%f ,&CostPrice);if(CostPrice>=5)SellingPrice=CostPrice+CostPrice*0.25;printf( "Selling Price(0.25)$%6.2f ,SellingPrice);) elseSellingPrice=CostPrice+CostPrice*0.
43、30;printf( "Selling Price(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=1 B) !(A%2=0) C) !(A%2) D) A%2D) !=“n*);“娜$);B)可以通过编译但不能通过连接2、以下运算符中优先级最低的( A ),优先级最高的是( C ).
44、A) ?:B) &&C) +3、请阅读以下程序:main() int a=5,b=0,c=0; if(a=b+c) printf( else printf( ) 以下程序(D ). A)有语法错不能通过编译C)输出*D)输出$4、以下程序的运行结果是( C ).main() int m=5;if(m+>5) printf("%d ,m);else print f( "%raT ,曲); )A) 4B) 5C) 6D) 7二、根据程序的功能,将以下程序补充完整1、以下程序对输入的四个整数,按从小到大的顺序输出.请在 内填入正确内容.main()int t
45、,a,b,c,d;printf( "input a,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、试编程判断输入的正整数是否既
46、是5又是7的整倍数.假设是,那么输出 yes;否那么输出no.2、编制程序要求输入整数x、y和z,假设x2+y2+z2大于1000,那么输出x2+y2+z2千位以上的数字,否那么输出三数之和.3、编写程序,输入三角型的三条边长,求其面积.注意:对于不合理的边长输入要输出数据错误 的提示信息.1、参考答案main() int x;if (x%5=0 && x%7=0)printf(“yes );elseprintf("no");2、参考答案main() int x,y,z,a,b;scanf( "%d %d %d ,&x,&y,&am
47、p;z);a=x*x+y*y*z*z;if (a>1000)b=a/1000;printf("%d ,b);else pri ntf("%d ,x+y+z);3、参考答案#include <math.h>main() float a,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(&q
48、uot;area=%7.2f ,area);elseprintf( "bu nenghucheng san jiao xi n");第2讲根底练习(A)一、填空题1、在if语句中又包含一个或多个if语句称为 if语句的嵌套 .2、为了防止在嵌套的条件语句if-else中产生二义性,一C语言规定:else子句总是与其之前最近的未配又的if配对.如果if与else数目不一样,为实现设计者的企图,可以加花括号 关系.3、条件运算符是 C语言中唯一的一个 三目运算符,其结合性为从右至左.4、假设条件表达式的格式为:表达式 1 ?表达式2:表达式假设表达式2和表达式3的类型不同,此时
49、条件表达式的值的类型为二者中较高 的类型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;else min=b;可用条件运算符来处理的等价式子为min=a<b?a:b ;.9、假设 x=1,y=2,z=3 ,那么表达式x<y?x:y=z+ 的值是 0.10、设有变量定义:int a=5,c=4;那么-a=
50、+c?-a:c+的值是 5,此时c的存储单元的值为6 .二、判断题1、在switch语句中,每一个的 case常量表达式的值可以相同. 错2、在switch语句中,各个 case和default的出现次序影响执行结果. 对3、在switch语句中,多个 case可以共用一组执行语句. 对 4、条件表达式能取代一般if的语句. 错5、case后的常量表达式类型一定与表达式类型匹配. 对 三、写出以下程序的运行结果1、 main()-1int a=2,b=3,c;c=a;if(a>b) c=1;else if(a=b) c=0;else c=-1;printf( "%d,c);2、
51、 main()200int a,b,c; int s,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;else if(c>0) w=a-b;else t=c;printf( "%d %d %d ,s,w,t);switch(grade)case'A':printf("85");case' B':printf(“n0 );case'C:printf("60 );case ' D
52、39; : printf(n"<;60default: printf( a erro);!)假设grade的值为C'那么输出结果是 60-69 60error!水平提升(B)一、写出以下程序的运行结果1、 #include <stdio.h>551void main(void) int x,y=1,z;if(y!=0) x=5;printf( " n" ,x);if(y=0) x=4;else x=5;printf( " n" ,x);x=1;if(y<0)if(y>0) x=4;else x=5;prin
53、tf( " n" ,x); )2、 #include <stdio.h>4-2404-2void main(void) int x,y=-2,z;if(z=y)<0) x=4;else if(y=0) x=5;else x=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() int x=1,y=
54、0,a=0,b=0; switch(x)case 1: switch(y) case 0: a+; break;case 1: b+; break; )case 2:a+; b+; break;) printf("a=%d,b=%d ,a,b);)二、根据程序的功能,将以下程序补充完整以下程序计算某年某月有几天.其中判别闰年的条件是:能被 4整除但不能被100整除的年是闰年,能被400整除的年也是闰年.请在 内填入正确内容. main()int yy,mm,len;printf( "year,month=");scanf( "%d %d ,&yy
55、,&mm); switch(mm) case 1: case 3: case 5: case 7: case 8: case 10: case 12: len=31 ; break; case 4: case 6: case 9:case 11: len=30; break; case 2:if(yy%4=0&&yy%100!=0|yy%400=0) len=29 ;else len=28; break;default: printf( "input error " ); break;)printf( "the length of %d %
56、d is %dn ,yy,mm,len);第六章循环结构程序设计根底练习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循环体中,一定
57、要有能使while后面表达式的值变为零D do-while循环中,根据情况可以省略 while3、设有程序段int k=10;whilek k=k-1;那么下面描述中正确的选项是 A .B循环是无限循环D循环体语句执行一次A while循环执行10次C循环体语句一次也不执行4、以下循环语句中有语法错误的选项是 DA) while(x=y) 5 ;B) while(0) ;C) do 2 ; while(x=b);D) do x+ while(x=10);5、int i=1 ;执行语句while (i+<4);后,变量i的值为( C ).A) 3B) 4 C) 5D) 66、语句 whil
58、e(!E);中的表达式!E等价于( A ).A) E=0B) E!=1 C) E!=0 D) 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,0 B) 2,1,0 C) 1,2,1D) 2,1,18、下面程序的运行结果是( C ).#include <stdio.h>main()int num=0;while(num<=2) num+;printf("%d ,num);A) 1B) 1C) 1D)
59、 1222339、以下能正确计算1X2X3X-X 10的程序段是( C ).A) doi=1; s=1;B) doi=1; s=0;s=s*i;i+;while(i<=10);s=s*i;i+;while(i<=10);D) i=1; s=0;dos=s*i;i+;while(i<=10);D) 0D) 6688766C) i=1;s=1;dos=s*i; i+;while(i<=10);10、下面程序的运行结果是( D ).#include <stdio.h>main()int y=10;do y-; while(-y);printf(“%d,-);A) -1B) 1C) 8 11、int i=1,j=0 ;执行下面语句后j的值是( D ).while(i)switch(i) case 1: i+=1 ; j+ ; break ;case 2: i+=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 衣橱颜色搭配管理办法
- 超市入库单管理办法
- 肥城停车场管理办法
- 上海校外机构管理办法
- 镇公章使用管理办法
- 路桥技术部管理办法
- 资中市河道管理办法
- 费用控制预算管理办法
- 中学教师成绩管理办法
- 专项债券评级管理办法
- 寻找消失的滇缅路:松山战痕课件
- 中小学教师职业道德规范解读
- 社会组织管理概论全套ppt课件(完整版)
- 政府预算理论与实务(第四版)全套教学课件
- 四年级上册美术课件第1课 送给老师的花|沪教版
- 轧机设备安装施工方案
- 最新开工报告范文
- 制药企业仓库温湿度分布的验证
- GB∕T 3099.4-2021 紧固件术语 控制、检查、交付、接收和质量
- 山东临清实验中学2012学年八年级语文 7课背影共3课时教案(表格版) 人教新课标版
- 深圳牛津小学英语单词汇总
评论
0/150
提交评论