欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

c语言复习题和答案

  • 资源ID:155935460       资源大小:477.01KB        全文页数:152页
  • 资源格式: DOC        下载积分:12.8积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要12.8积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

c语言复习题和答案

东北农业大学网络教育学院C语言复习题第一章 C语言概述一、填空(每空2分)1. *C语言中任何程序的运行总是从主函数开始,在( )函数中结束。 2. *一个C语言程序总是从( )函数开始执行。 3. *C语言源程序的扩展名为( )。 4*C语言源程序的扩展名为*.C、目标文件的扩展名为( )、可运行文件的扩展名为( )。5*C语言属于面向( )语言。 6. *C语言程序的注释可以出现在程序的任何地方,它总是以( ) 符号作为开始标记,以( )符号作为结束标记。7. *C语言中规定标识符只能由字母、数字、下划线组成,且第一个字符必须是( )或( )。 8. *结构化设计中的三种基本结构是( )、( )和循环结构。 9. * *程序开发的四个步骤是( )、 ( )链接和执行。 二、单项选择题 (每题2分)1*在C程序中所用的变量使用前( ) (A)可以不定义 (B)先定义后使用 (C)随时定义随时用 (D) 其他 2*C语言程序从main()函数开始执行,所以这个函数要写在( )。A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置3. * *下列关于C语言的叙述错误的是( )A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义4. *一个C程序的执行是从( )。  A)本程序的main函数开始,到main函数结束  B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束  C)本程序的main函数开始,到本程序文件的最后一个函数结束  D)本程序文件的第一个函数开始,到本程序main函数结束 5. * *以下叙述正确的是( )。 A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 6. * *以下叙述不正确的是( )。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 7. *一个C语言程序是由( ) 。A)一个主程序和若干子程序组成    B)函数组成 C)若干过程组成                  D)若干子程序组成 第三章 数据类型、运算符与表达式一、填空(每空2分)1、* *x=2,y=-3,z=3,则表达式x|y+z&&y-z的值为 ( )。 2、*在C语言中实型变量分为两种类型,它们是( )和 ( )。 3 * *、十进制11转化为八进制的值为( )。 4、* *十进制数159转换为八进制数是( ) 5、* *已知int x=6; 表达式x%2+(x+1)%2的值是( )。6、*C语言中char型变量在内存中占( ) 个字节的内存单元 7、*C语言的变量名:TEA与tea是( )同的。8、* *设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为()。9、* *表达式( 5<3) && (2 | 8<4 ) 的值是( )。 10、* *十六进制数2a转换为十进制数是( )。 11、* *计算 x 、 y 之和的平方,表达式应写作 ( ) 。12、* *执行语句“ a=5+(c=6); ”后,变量 a 、 c 的值依次为( ) 。13、* *设x是个实型变量。满足数学式|x|>4的c语言表达式是( )。14、* *若s 是整型变量,则计算表达式 s=22/3%2 后s的值为( ) 。15、*C语言用( )号括起来的单个或多个字符表示字符串常量。 16、*float x, y, z;是将x, y, z; 定义为 ( ) 17、*目前常用C语言的一个整型变量的存储容量为( )个字节。 18、*无符号基本整型的数据类型符为( ),双精度实型数据类型符为( )。 答案:unsigned int、double19、* *定义变量的完整语句格式是: ( ) ( ) 变量名1=初值1,变量名2=初值2,.;。 20、* *设有下列运算符:<<、+、+、&&、<=,其中优先级最高的是( ),优先级最低的是( )。 21、* “ = ” 是( )符号,不是等号。在语言中等于号用 “ ( ) ” 表示。 22、* *表达式10/3的结果是( ),10.0/3的结果是( )。 23* *表达式10%3的结果是( ),3%10的结果是( )。 24. * *定义int x,y;执行y=(x=1,+x,x+2);语句后,x的值是( ),y的值是( )。 二、单项选择题 (每题2分)1、*( )是不正确的字符常量。 (A)'n' (B)'1' (C)"a" (D)'/101'2、 *( )把x、y定义成float类型变量,并赋同一初值3.14。(A)float x, y=3.14; (B)float x, y=2*3.14; (C)float x=3.14, y=x=3.14; (D)float x=y=3.14; 3、* *若有以下定义和语句:int u=010,v=0x10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是( )。(A)8,16,10 (B)10,10,10 (C)8,8,10 (D) 8,10,10 4、*以下正确的字符常量是( ) (A)“x” (B) W (C) (D)XYZ 5、 * 在C语言的算术运算符中只能用于整型数的运算符是( ) (A)+ (B)/ (C) % (D)* 6、 *已知 int a; 那么 &a表示( ) (A)变量名 (B)变量a的地址 (C)变量a的值 (D)其他7、*不正确的标识符是() (A)_a2 (B)2ai (C)a2_i (D)Int8、*已知 int a=2,b=5; 则表达式a+5>b+3的值是( ) (A)0 (B)1 (C)不确定 ( D)表达式错误 9、* *若变量已正确定义并赋值,下面符合C语言语法的表达式是 (A) a:=b+1 (B) a=b=c+2 (C) int 18.5%3 (D) a=a+7=c+b10、 * *若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 (A) 1 (B) 2 (C) 2.0 (D) 2.511、*若变量a、i已正确定义,且i已正确赋值,合法的语句是 (A) a=1 (B) +i; (C) a=a+=5; (D) a=int(i);12、* *以下不是c语言规定保留字的是( )。 (A)float     (B)integer     (C)signed     (D) unsigned13 *、下列不正确的转义字符是 (A) '' (B)'" (C) '074' (D) '014、* *若有以下定义: char a; int b; float c; double d; 则表达式a*b+d-c值的类型为 (A) float (B)int (C) char (D) double 15、* *常数的书写格式决定了常数的类型和值, 0x1011 是 ( ) (A) 8 进制整型常量 (B)字符常量 (C) 16 进制整型常数 (D)2 进制整型常数16、* *在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为 A)char<int  <1ong  int<=float<double B)char=int<1ong  int<=float<double C)char<  int  <1ong  int=float=double D)char=int  =1ong  int<=float<double 17、*若x,i,j和k都是int型变量,则执行下面表达式后x的值为  x=(i=4,j=16,k=32)  A)4   B)16  C)32     D)52 18、*假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是:  A)7    B)8   C)6   D)2 19、* *下列四组选项中,均不是C语言关键字的选项是 A)define    B)getc    C)include   D)while   IF           char       scanf        go type          printf       case        pow 20、*下面四个选项中,均是C语言关键字的选项是 A)auto      B)switch    C)signed    D)if  enum       typedef       union      struct  include     continue      scanf      type 21、* *下面四个选项中,均是不合法的用户标识符的选项是。  A)  A            B)float       C)b-a       D)一123     P_0            1a0          goto          temp     do             一A          int           INT 22、*下面不正确的字符串常量是。   A)'abc'  B)"12'12"     C)"0"     D)"" 23、* *若有代数式3ae/bc,则不正确的C语言表达式是:  A) a/b/c*e*3      B)3*a*e/b/c  C)3*a*e/b*c       D)a*e/c/b*3 24、* *以下不正确的叙述是 A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量 C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。 25、* *以下正确的叙述是: A)在C程序中,每行中只能写一条语句 B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误地表示 D)在C程序中,%是只能用于整数运算的运算符 26 、* *以下符合C语言语法的赋值表达式是 A)d=9+e+f=d+9B)  d=9+e,f=d+9 C)d=9十e,e+,d十9     D)d=9十e+=d十7 27、* *已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3'后,c2中的值为 A)D     B)68   C)不确定的值     D)C 28、* *设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为  A)int     B)  float  C)  double  D)不确定 29、*设有说明:  char w; int  x;  f1oat  y;  double  z;则表达式w* x+z一y值的数据类型为: A)float    B)char   C)int     D)double 30、* *若有以下定义,则能使值为3的表达式是: int  k= 7,x =12; A)  x%=(k%= 5) B)  x%=(k一k%5) C)  x%=k- k%5   D)  (x%=k)一(k%=5)第四章 顺序程序设计一、填空(每题2分)1、*在屏幕上输出整型变量a,b值,每个数占5位,输出数据前有说明字符的 printf()函数为( )。 2、 *设char c=A,则语句printf(%c,c+32)结果为( ) 。3、*通过键盘输入整型变量a的scanf()函数为( )。4、*已知 int a,b,c; a或者b两个中间有一个小于c的表达式是( )。5、* *已知 int x; 如果用scanf(“%f”,&x);给x赋值,错误的原因是( )。 6、*float a=3.54; printf("% 2.3f ",a);的输出结果是( )7、* * * 若有定义语句 “ int a=25,b=14,c=19; ” ,以下语句的执行结果是( )。 if(a+<=25&&b-<=2&&c+) printf("*a=%d,b=%d,c=%dn",a,b,c); else printf("#a=%d,b=%d,c=%dn",a,b,c); 8、* * *以下程序输入1 2 3<CR>后的执行结果是( )。 #include <stdio.h> main() int a,c; char b; scanf("%d%c%d",&a,&b,&c); printf("a=%d,b=%c,c=%dn",a,b,c); 9、* *以下程序输入123456<CR>后的执行结果是( )。 #include <stdio.h> main() int a,b; scanf("%2d%3d",&a,&b); printf("a=%d,b=%dn",a,b); 10、* *若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为( )。二、单项选择题 (每题2分)1、 *设变量定义为“int a, b;”,执行下列语句时,输入( ),则a和b的值都是10。 scanf("a=%d, b=%d",&a, &b);(A)10 10 (B)10, 10 (C)a=10 b=10 (D)a=10, b=10 2、*若t为int类型,表达式t=1,t+5,t+的值是( )。(A)1 (B)6 (C)2 (D)1 3、*设x、y均为整型变量,且x=10 ,y=3,则以下语句的输出结果是( ) printf("%d,%dn",x-,-y); (A) 10,3 (B) 9,3 (C) 9,2 (D)10,24、 * 阅读以下程序,当输入数据的形式为:25,13,10<回车>,正确的输出结果是()main()int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z); (A)x+y+z=48 (B)x+y+z=35 (C)x+z=35 (D)不确定值5、*已知 int a=5,y; y=a+; 问a,y=? ( ) (A)a=6 , y=5 (B)a=6 , y=6 (C)a=6 , y=7 (D)a=5 , y=6 6、*已知 int a =5; 赋值表达式a+=a*a的值为( ) (A)5; (B)10; (C)30; (D)50; 7、*若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A) 0 (B) 0.5 (C) 1 (D) 2 8、*putchar函数可以向终端输出一个: ( )A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值 9、*printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 ( )A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 10、*已有定义 int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是: ( )A)整型变量的输出格式符只有%d一种 B)%x 是格式符的一种,它可以适用于任何一种类型的数据 C)%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的 D)%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度 11、*若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是: ( )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);    12、*已有如下定义和输入语句 ,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是 ( )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)10A20<CR>   D)10A20 B<cR>。 13、*已有定义int  x;  f1oat  y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345  678(回车),则x 的值为( ) A)12345  B)123   。  C)  45       D)  345 14、*已有定义int  x;  f1oat  y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345  678(回车),则y 的值为: ( ) A)无定值B)45.0000  C)  678.000000  D)  123.00000 15、*已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是: ( )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> 16、*已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为( )  main() int  a;float f;     printf("nInput number:");   输入语句     printf("nf=%f,a= %dn ,f,a); Input  number:  4.5   2<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); 17、*以下能正确地定义整型变量a,b和c 并为其赋初值5的语句是 ( ) A)int a=b= c= 5;       B) int a,b, c= 5;  C)a= 5,b=5,c=5;     D)  a= b= c=5; 18、*已知ch是字符型变量,下面不正确的赋值语句是 ( )A)ch='a+b'  B)ch='0'  C)ch='7'+'9'  D)  ch=5+9; 19、已*知ch是字符型变量,下面正确的赋值语句是 ( )A)  ch= '123'  B)  ch= 'xff'  C)  ch= '08'  D)  ch="" 20、*若有以下定义,则正确的赋值语句是:   int  a,b;float  x;   A)  a=1,b=2,    B)b+;  C)  a= b= 5     D)  b= int(x); 21、*设x 、y均为f1oat型变量,则以下不合法的赋值语句是( ) A)+x;   B)y=(x%2)/10; C)  x*=y+8;  D)x=y=0; 22、*x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)一5;后,x 、y 和之的值是: ( )  A)  x=10    B)  x=10  C)  x=10   D)  x=10        y=15  y=10        y=10        y=5        z=10  z=10        z=15        z=10 23、*逻辑运算符两侧运算对象的数据类型( )。   A)只能是0或1  B)只能是0或非0正数   C)只能是整型或字符型数据  D)可以是任何类型的数据 24、*下关于运算符优先顺序的描述中正确的是( )。 A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符 C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 25、*下列运算符中优先级最高的是( )。   A)<   B)十   C)&&     D)!= 三、阅读程序,写出程序运行结果(每题4分)1、*main() int a=1,b=2;a=a+b;b=a-b;a=a-b; printf("%d,%d n",a,b);2、*main() int x=7,a=2,b=2,c; c=x/a%b; printf(c=%dn”,c);3、*以下程序输入100<CR>后的执行结果是( )。 #include <stdio.h> main() int n; scanf("%o",&n); printf("n=%dn",n); 4、*以下程序输入x=1.23,y=50<CR>后的执行结果是( )。 #include <stdio.h> main() float x,y; scanf("x=%f,y=%f",&x,&y); printf("x=% 7.2f ,y=% 7.2f n",x,y); 5、*阅读下列程序,写出程序的输出结果。 main() int x=100,a=10,b=20,ok1=5,ok2=0; if (a<b) if (b!=15) if (!ok1) x=1; else if(ok2) x=10; else x=-1; printf("%dn",x); 6、*阅读下列程序,写出程序运行的输出结果。 main() int y=9; for (;y>0;y-) if(y%3=0) printf("%d",-y); continue; 7、*阅读下列程序: main() int a; char b; float c; printf("input a b c:"); scanf("%d%c%f",&a,&b,&c); printf("a=%d,b=%c,c=%fn",a,b,c); 程序运行后若输入“1234r1234.567(回车)”,写出程序的输出结果。 8、*阅读下列程序: main() int a; float b,c; printf("input a b c:"); scanf("%2d% 3f % 4f ",&a,&b,&c); printf("a=%d,b=%f,c=%f",a,b,c); 9、*阅读下列程序: main() int a; float b,c; scanf("%d%f%f",&a,&b,&c); printf("a=%d,b=%f,c=%f",a,b,c); 程序运行后若输入“12 345 6789 87654321(回车)”,写出程序的输出结果。 第五章 选择结构程序设计一、填空(每空2分)1、*能正确表示“当ch为小写字母为真,否则为假”的表达式是( )。2、 *设y是int型变量,请写出判断y为5的倍数的关系表达式( ) 。3、 *已知int a=1,b=2;表达式 (a<b ? a:b)的值是( )。 4、 *在switch语句中出现的break语句的功能是( )。 5、*能正确表示“当A=5时布尔量BL为真,否则为假”的表达式是( )。 6、*已知 int a,b; a、b中有一个小于0的表达式是( )。7、*在C语言中,表示逻辑量“真”用1,表示逻辑量“假”用( )。8、*若x=5,y=10,则x>y和x<=y的逻辑值分别为( )和( )。9、* C语言中的逻辑运算符按优先级别是( )、( ) 、( )。10、*C语言中逻辑运算符( )的优先级高于算术运算符。11、*将下列数学式(A) a=b 或 a<c (B) |x|>4改写成C语言的关系表达式或逻辑表达式( )和( )12、* 请写出以下程序的输出结果( )。 main() int a=100; if (a>100) printf(“%dn”,a>100); else printf(“%dn”,a<=100);13、*当a=1,b=2,c=3时,以下if 语句执行后,a 、b 、c 中的值分别为( )、( )、 ( )。 if (a>c) b=a;a=c; c=b;二、单项选择题 (每题2分)1、*已知整型变量k的值为3,下面程序段执行的结果是( ) switch(k) case 1:putchar(A);break; case 2:putchar(B);break; case 3:putchar(C); case 4:putchar(D); default:putchar(E); (A) CDE (B) C (C) ABC (D) ABCD 2、*以下程序段正确的是( ) (A)if(a>b) c=1 (B) if(a>b) c=1; else c=2; else c=2 (C) if(a>b) c=1; (D) if(a>b); c=1; else c=2; else c=2; 3、*以下程序运行的结果是( ) main() int x=12,y; y=x>12 ? x+10 : x-12; printf(“y=%dn”,y); (A)y=0 (B) y=22 (C)y=12 (D)y=10 4、*表示关系x<=y<=z的c语言表达式为 (A) (X<=Y)&&(Y<=Z) (B)(X<=Y)AND(Y<=Z) (C) (X<=Y<=Z) (D) (X<=Y)&(Y<=Z)5、*假定所有变量均已正确说明,下列程序段运行后x的值是 a=b=c=0;x=35; if(!a)x-; else if(b); if(c)x=3; else x=4; (A)34 (B)4 (C) 35 (D) 36、*当a=1,b=3,c=5,d=4 ,执行完下面一段程序后x 的值是 :        if(a<b)        if(c<d)x=1;        else        if(a<c)        if(b<d)x=2;        else x= 3;        else x=6;        else x=7;       A)18 B)2      C)3      D)6 7、*以下程序的输出结果是:    main()   int  a=100,x =10,y=20,okl=5,ok2=0;     if  (x<y)     if(y ! =10)     if(!okl)  a=1;    else      if(ok2)  a=10;       a=-1:     printf( "%dn",a )      A)  1      B)  0    C)一1    D)值不确定 8、*为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句     总是与(  )配对。     A)缩排位置相同的if     B)其之前最近的if     C) 之后最近的if  D)同一行上的if 9、*以下不正确的语句为:   A)  if(x>y);   B)  if  (x= y) &&(x! = 0)  x+= y;   C)  if(x!= y)scanf("%d",&x);  else  scanf("%d",&y);   D)if(x< y)x+ y十十; 10、*请阅读以下程序:       #include<stdio. h>        main()       float  a,b       scanf("%f",&a);       if (a<10.0) b=1.0/x;       else if(a<0.5)&&(a!=2.0)b= 1.0/(a十2.0);       else  if(a<10.0)  b= 1.0/x        else  b=10.0;     printf("%fn",y);       若运行时输入2.0(回车),则上面程序的输出结果是:     A)0.000000   B)0.500000  C)  1. 000000   D) 0.250000 11、*若有条件表达式(exp) ?  a+:b-,则以下表达式中能完全等价于表     达式(exp)的是:     A)  (exp=0) B)  (exp!=0)     C)  (exp= 1) D)  (exp!=1)    12、*若运行时给变量x 输入12,则以下程序的运行结果是:     main()     int  x,y;       scanf("%d",&x);     y=x > 12?x+10:  x一12;     printf("%dn",y);            A)0      B)22 C)12       0)10 13、*以下程序的运行结果是:       main()'       int  k= 4,a=3,b=2,c=;        printf("n %dn",k< a ? k:c<b ?c :a);          A)4      B )3     C)2      D)1 14、*执行以下程序段后、变量a,b,c的值分别是一。     int  x=10,y=9;     int  a,b,c;     a =(- -x = = y+)?- -x:+y      b = x +;     c = y;     A)a=9,b= 9,c= 9       B )a=8,b=8,c=10   C)a=9,b= 10,c=9      0)a=1,b= 11,c=10 15、*若w,x,y,z,m均为int型变量,则执行下面语句后的m值是:     w= 1;x = 2;y= 3;z=4;     m=(w<y)?w:x;     m= (m<y)?  m:y;     m=(m<z)?m:Z;     A)1 B )2     C)3 D)4 16*若w=1,X = 2,y= 3,z=4,则条件表达式w<x?w:y<z?y:z的值是:       A)4      B)3      C)20 D)1 17、*执行以下程序段后的输出结果是     int  w=3,  z=7,x =10;     printf("%dn",x> 10?  x+100:x 一10);     printf("%dn",w+|z+ );     printf("%dn",!w>z);     printf("%dn",w&&z);     A)0       B)   1       C)0      D) 0 三、阅读程序,写出程序运行结果(每题4分)1、* main( ) int i, j=4 ; for(i=j; i<=2*j; i+) switch (i/j) case 0 : case 1: printf(“*”); break ; case 2: printf(“#”,a); 、* 若x=2,y=3,z=2,求下列表达式的值(1) xy?y:z(2)xy? (+x):( +z)3、* main() int a=10,b=5,x; x=a<b?b:a; printf(“x=%dn”,x);4、* main() int a=1, b=2, c=3; if(a>c) b=a; a=c; c=b; printf(“a=%d b=%d c=%dn” ,a,b,c); 25、 *main( ) int i=5;do switch(i%2) case 4: i-; break; case 6: i-; continue; i-=2; printf("%5d",i);while(i>0); 6. * 若x=3,y=z=4,求下列表达式的值(1) (z>=y>=x)?1:0(2) z>=y&&y>=x7、*main() int a, b;for(a=1, b=1; a<=100; a+) if(b>=10) break;if (b%3= =1) b+=3; continue; printf("%dn",a);8、*#include <stdio.h>main( ) int s=0,k; for (k=0; k<=7;k+) switch(k) case 1: case 4: case 7: s+; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; printf(“s=%dn”,s);五、编写程序(每题10分)1、*设计一个判断输入年份是否是闰年的程序。第六章 循环控制一、填空(每空2分)1、*C语言中while和do-while循环的主要区别是( )的循环体至少无条件执行一次。2、 *要使for(i=0;i<= ;printf(“%dn”,i+=2);程序段输出10个整数,i应<=( )。3、 *若While(ch=getchar()=e) printf(“*”);输入字符串:abcde<回车>,则循环体将执行 ( ) 次。 4、*在while(表达式) 循环语句中,表达式的值是( )时可以循环,至少循环( )次。5、*循环语句for(;) printf("OK n");和do printf("OKn"); while(0);执行完毕循环,循环次数分别是( )和( )。6、*结构化程序设计的三种基本结构是:选择结构、顺序结构和( )。7、*当循环体中的switch语句内有break语句,则只跳出( )语句。同样,当switch语句中有循环语句,内有 break 语句,则只跳出( )语句。 8、*循环体执行遇到continue 语句时( )。 二、单项选择题 (每题2分)1、*以下程序的输出结果是 main( ) int i;for(i='A';i<'I';i+,i+) printf("%c",i+32);printf(" n");(A) 编译不通过,无输出 (B) aceg(C) acegi (D) abcdefghi 2、*执行以下程序后,输出的结果是 main () int y=10;do y - -; while(- - y); printf("%dn",y -);(A) -1 (B) 1 (C) 8 (D) 0 3、*若变量已正确定义,语句“if(a>b) k=0; else k=1;”和( )等价。 (A)k=(a>b)?1:0; (B)k=a>b;(C)k=a<=b; (D)a<=b ? 0 : 1; 4、* 设有程序段int k=10; while (k=0) k=k-1;则下面描述中正确的是()(A)循环执行十次 (B)循环是无限循环 (C)循环体语句一次也不执行 (D)循环体语句执行一次 5、 *已知:int i; for(i=0; i<=10;i+);如果表达式1即i=0缺省那么完成表达式1功能的语句可以( ) (A)放在for语句的前面 (B)放在循环体中 (C)放在for语句的后面 (D)放在程序的任何地方6、*以下可以正确计算s=1*2*3*4*5的程序段是( ) (A)for(i=1;i<=5;i+) (B) for(i=1;i<=5;i+) s=1; s=0; s=s*i; s=s*i; (C)s=1; (D) s=0; for(i=1;i<=5;i+) for(i=1;i<=5;i+) s=s*i; s=s*i; 7、*以下叙述正确的是(  )。   (A)do-while语句构成的循环不能用其他语句构成的循环来代替  (B)do-while语句构成的循环只能用break语句退出  (C)do-while语句构成的循环,在while后的表达式为非零时结束循环  (D)do-while语句构成的循环,在while后的表达式为零时结束循环8、*以下程序段输出的结果是( ) a=-1; do a=a*a;while(a<0); (A) 循环一次 (B) 循环两次 (C) 死循环 (D) 有语法错误 9、*设x和y均为int型变量,则执行下的循环后,y值为 for(y=1,x=1;y<=50;y+) if(x>=10)break; if (x%2=1) x+=5; continue; x-=3; (A) 2 (B)4 (C) 6 (D) 810、*假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do b-=a; a+; while (b-<0) ; (A) 9 (B)-2 (C) -1 (D) 811、 *设j为int型变量,则下面for循环语句的执行结果是 for( j=10;j>3;j-) if(j%3)j-; -j; -j; printf("%d ",j); (A) 6 3 (B)7 4 (C) 6 2 (D) 7 312、*设有程序段   int  k=10;   while  (k=0)  k= k1;   则下面描述中正确的是 A)  while循环执行10次      B)循环是无限循环 C)循环体语句一次也不执行   D)循环体语句执行一次 13、*有以下程序段     int  x=0,s=0;     while  (!  x!= 0)  s+=+x;     printf("%d",s);     则 A)运行程序段后输出0  B)运行程序段后输出1 C)程序段中的控制表达式是非法的       D)程序段执行无限次 14、*语句while(!E)中的表达式!E等价于: A)  E=0   B)  E!=1  C)

注意事项

本文(c语言复习题和答案)为本站会员(xian****hua)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!