c语言程序设习题及答案.docx_第1页
c语言程序设习题及答案.docx_第2页
c语言程序设习题及答案.docx_第3页
c语言程序设习题及答案.docx_第4页
c语言程序设习题及答案.docx_第5页
已阅读5页,还剩143页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计第一轮习题及答案第1章 C语言概述一、选择题1、一个C语言程序是由C组成。A.主程序 B.子程序 C.函数 D.过程2、下列关于c语言用户标识符的叙述中正确的是 B。A. 用户标识符中可以出现下划线和中划线(减号)B. 用户标识符中不可以出现中划线,但可以出现下划线C. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2、一个C语言程序总是从 C 开始执行。A.主程序 B.子程序 C.主函数 D.函数3、下列选项中,可以作为语言标识符的是( ) A、3stu B、#stu C、stu3 D、stu.34、下列选项中,不可以作为语言标识符的是( ) A、 num B、turbo_c C、printf D、student35、请选出可用作C语言用户标识符的一组标识符( )A、void, define, WORD B、a3_b3,_123,IF_AC、FOR,abc, Case D、2a,Do,Sizeof6、以下叙述正确的是。A.在C程序中,main函数必须位于子程序的最前面B.C程序的每一行中只能写一条语句C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误D.C语言本身没有输入输出语句【答案】D【解析】每一个C源程序都必须有、且只能有一个主函数(main函数),但是不必位于最前面,编译之后,运行是会自动搜寻到main函数并开始执行,A项错误;书写程序时,为了清晰,便于阅读和理解,一般是一个说明或一个语句占一行,但这不是必须的,B项错误;编译过程中不对注释进行编译,所以发现不了编译中的拼写错误,C项错误;C语言本身没有输入输出语句,scanf函数和printf函数是标准输入输出库函数,其头文件为stdio.h,D项为答案。7、下面标识符中,不合法的用户标识符为。A. Pad B. a_10 C. _124 D. a#b【答案】D【解析】C语言中规定,标识符只能是字母(AZ,az)、数字(09)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。D包含#,是不合法的;8、C语言程序的执行,总是起始于【 】。A) 程序中的第一条可执行语句 B) 程序中的第一个函数C) main函数 D) 包含文件中的第一个函数分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。本题正确答案为C。9、下列说法中正确的是【 】。A) C程序书写时,不区分大小写字母B) C程序书写时,一行只能写一个语句C) C程序书写时,一个语句可分成几行书写D) C程序书写时每行必须有行号分析:C语言严格区分大小写字母,如A1和a1被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。本题正确答案为C。10、下面对C语言特点,不正确描述的是【 】。A) C语言兼有高级语言和低级语言的双重特点,执行效率高B) C语言既可以用来编写应用程序,又可以用来编写系统软件C) C语言的可移植性较差D) C语言是一种结构式模块化程序设计语言分析:C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。本题正确答案为C。11、C语言源程序的最小单位是【 】。A) 程序行 B) 语句 C) 函数 D) 字符分析:程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。本题正确答案为D。12、以下四项中属于C语言关键字的是【 】。A) CHAR B) define C) unsigned D) return分析:C语言有32个关键字(或称保留字),它们都有特定的含意,并且由小写字母组成,所以选项A是错的,选项B不是保留字,选项D是return的错误拼写。本题正确答案为C。13下列字符串不符合标识符规定的是【 】。A) SUM B) sum C) 3cd D) end分析:标识符规定只能由26个英文字母(大小写均可),数字09和下划线组成,且不能以数字开头,题中的3cd不符合规定。本题正确答案为C。二、填空题1、一个C语言的语句至少应包含一个分号。2、C源程序的基本单位是 函数。3、函数是具有相对独立功能的程序段。4、C语言中的标识符可以由3种字符组成,它们是: 英文字母、下划线、数字 ,并且第一个字符必须是字母或下划线。第3章 数据类型、运算符与表达式一、选择题1、C语言中,最简单的数据类型是B。A.整形、实型、逻辑型 B.整型、实型、字符型C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型2、 B是C语言提供的合法的数据类型关键字。A. Float B. signed C. integer D. Char3、不正确的字符串常量是A。A. abc B. “1212” C.”0” D.”“4、若定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 B 。A.7 B.2.50000 C.3.500000 D.0.000005、设有以下定义:#define d 2int a=0;double b=1.25;char c=A;则下面语句中错误的是 D。A. a+; B.b+; C.c+; D.d+;6.下列选项中,可以作为C语言常量的是( ) A)13.8e B)1/2 C)M D)”abc”7.下列选项中,不可以作为C语言常量的是( ) A).88 B)35.6e3 C)4e-2 D)3/57、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3;后,c2中的值为 A 。A.D B.68 C.C D.不确定的值8、下列程序的运行结果是( )main( )char c1=6,c2=0;printf(“%c,%c,%dn”,c1,c2,c1-c2);A) 因程序格式不合法,提示出错信息。B) 6,0,6C) 6,0,7D) 6,0,59.以下程序的输出结果是( ) main( ) int x=010,y=10,z=0x10;printf(“%d,%d,%dn”,x,y,z);A) 8,10,16B) 8,10,10C) 10,10,10D) 10,10,1610已知各变量的类型定义如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2;则以下两组表达式中不符合C语言语法的表达式分别是: A)k=i+ B)(int)x+0.4 C)y+=x+ D)a=2*a=3 A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)*(a=3)11在C语言中,合法的字符常量是A) 084 B) x43 C) ab D) “0”【答案】B【解析】字符常量是用单引号括起来的一个字符,据此定义,选项C和D显然错误。A和B是转义字符。转义字符是一种特殊的字符常量,以反斜线开头,后跟一个或几个字符,它有两种写作形式,ddd和xhh,其中ddd和hh分别为八进制和十六进制的ASCII代码。A选项084,反斜线之后是三位数字,是采用的ddd形式,不过084作为八进制显然是错误的;B项x43,采用的xhh形式,43作为两位十六进制数,对应ASCII代码67,对应的是字符c。12设有如下的变量定义: int i=8, k, a, b; unsigned long w=5; double x=1, 42, y=5.2;则以下符合C语言语法的表达式是A) a+=a-=(b=4)*(a=3) B) x%(-3);C) a=a*3=2 D) y=float(i)【答案】A【解析】A项是赋值表达式和算术表达式的结合,符合C语言语法;B项中,%是模运算符,要求运算符两侧均为整数,x为double,显然错误;C项是赋值表达式,要求赋值运算符的左侧是变量,3=2部分显然错误;D项,强制类型转换运算符使用错误,应为y=(float)i13以下程序运行后,输出结果是A) cde B) 字符c的ASCII码值 C) 字符c的地址 D) 出错 main() char *s=abcde; s+=2; printf(%ldn,s); 【答案】C【解析】char *s =abcde,声明s是一个字符串指针,并且将字符数组abcde的首地址赋值给了s,s+=2,即是在原来的s地址上向前推进两个字节,又因为数组是在连续空间上存储的一组数据,且一个字符占一个字节,那么也就等价于由数组的第一个字节地址推进到第三个字符的地址,即字符c的地址。答案为c14当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 A) c=b=a; B) (a=c) (b=c) ; C) (a=c) &(b=c); C) a=c=b;【答案】C【解析】赋值运算符是自右向左运算的。A项是将a的值赋给了b,又将b的值赋给了a,与题意不符;B项和C项都是逻辑运算,且都自左向右运算,它们的区别是:或运算是先计算左边表达式的值,若为真,则结束运算,若为假,继续计算右边表达式,所以,如果a=c为真(只需要a0),那么b=c语句不会执行,即不能完成c给b的赋值;与运算则是两边的表达式都要计算,所以,a=c和b=c都能得到执行,C为正确答案;D项是将b的值赋给了c和a15设有如下定义:int x=l,y=-1;,则语句:printf(%dn,(x-&+y);的输出结果是 A) 1 B) 0 C) -1 D) 2【答案】B【解析】表达式x-&+y中,逻辑运算符&的优先级最低,应该先计算它两边的表达式。x- :x参与逻辑运算后,x的值再自减1,那么x参与逻辑表达式的值为1;+y:y自增1后再参与逻辑运算,那么+y参与逻辑表达式的值为-1+1=0。x-&+y即为1&0,值为0,答案为B。16若定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。A.7 B.2.50000 C.3.500000 D.0.00000【答案】B【解析】这是一个算术表达式,根据运算符的优先级,应该先计算(x+y),得到值7.2,之后对其进行强制数据类型转换(int),得到值7,取模运算和乘、除运算在同一优先级上,自左向右依次计算,则先进行取模运算,a%3即7%3=1,之后1*7=7,7%2=1,1/4=0,即a%3*(int)(x+y)%2/4的值为0,那么表达式的值即是x的值,为2.50000。17已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3;后,c2中的值为。A.D B.68 C.C D.不确定的值【答案】A【解析】字符是以ASCII码的形式存储的,表达式A+6-3的运算实际就是对应ASCII码的算数运算,加减运算是同一优先级的,所以A+6-3=65+54-51=68,即D的ASCII的值。此处定义c2是字符型,所以,c2的值是D;如果c2定义为整型,则c2的值是68。18下面叙述不正确的是【 】。A) C语句末尾必须有分号B) C语言中无论是整数还是实数都能准确的表示C) 运算符“%”只能用于整数运算D) 乘除运算符优先级高于加减运算符19复合语句应用【 】括起来。A) 小括号 B) 方括号 C) 大括号 D) 尖括号20C语言语句一行写不下时,可以【 】。A) 用逗号换行 B) 用分号换行 C) 用回车换行 D) 在任意一空格处换行21下面程序的输出是【 】。(“”表示一个空格)int a=3366;printf(|%-08d|,a);A) |-0003366| B) |00003366| C) |3366| D) 输出格式非法22若有说明语句:int a; float b;,以下输入语句正确的是【 】。A) scanf(%f%f,&a,&b);B) scanf(%f%d,&a,&b);C) scanf(%d,%f,&a,&b);D) scanf(%6.2f%6.2f,&a,&b);23以下程序的输出结果是【 】。main( ) int x=11,y=11;printf(%d%dn,x-,-y);A) 11,11 B) 10,10 C) 10,11 D) 11,1024执行下面程序段,给x、y赋值时,不能作为数据分隔符的是【 】。int x,y;scanf(%d%d,&x,&y);A) 空格 B) Tab键 C) 回车 D) 逗号25下面合法的语句是【 】。A) int a=8,b;b=+a+;printf(%d,%d,a,b+); B) int a;printf(%d,scanf(%d,&a);C) char a;scanf(%c,&a);char b=scanf(b=%c,&b);D) char c=getchar( ); putchar(int)c);26执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是【 】。int a;float b;scanf(a=%d,b=%f,&a,&b);A) 252.5B) 25,2.5C) a=25,b=5.5D) a=25b=2.530与数学公式abxy不等价的语句是【 】。A) a*b/x*yB) a*b/x/yC) a*b/(x*y)D) a/(x*y)*b27下面不属于C语言的数据类型是【 】。A)整型 B)实型 C) 逻辑型 D) 双精度实型分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。本题正确答案为C。28下面四个选项中,均是合法实数的选项是【 】。A)2e-4.2 B)33e-4 C)0.2e-.5 D)-e5 分析:实数有两种表示形式:小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e之前必须有数字,e之后必须是整数。选项A)中的2e-4.2,选项C)中的0.2e-.5,选项D)中的-e5均是不合法的。本题正确答案为B。29下列正确的字符型常量是【 】。A) a B) C) r D) 277分析:字符常量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,是转义字符。本题正确答案为B。30若有说明语句char ch1=x41;则ch1【 】。A) 包含4个字符 B) 包含3个字符 C) 包含2个字符 D) 包含1个字符分析:x41中的41是十六进制数,即十进制的65,题中ch1存放的65是字母A的ASCII码。本题正确答案为D。31下列程序段输出的字符串长度为【 】。printf(aaacccbddd);A) 11 B) 12 C) 13 D) 17分析:、b和为转义字符,程序输出结果为:aaaccddd。本题正确答案为A。32下列运算符中,要求运算对象必须是整数的是【 】。A) / B) * C) % D) !分析:题目中/、*、!的运算对象既可以整数,也可以是实数,只有取余数运算符%要求运算对象必须是整数。本题正确答案为C。33下面合法的赋值语句是【 】。A) x+y=2002; B) ch=green; C) x=(a+b)+; D) x=y=0316;分析:赋值号左端不能为表达式,选项A)是错的;赋值号不能将字符串赋给某个变量,选项B)也是错的;增量运算符“+”不能用于表达式,选项C)也是错的。本题正确答案为D。34已知a为int型,b为double型,c为float型,d为char型,则表达式a+b*c-d/a结果的类型为【 】。A) int 型 B) float型 C) double型 D) char型分析:不同类型数据混合运算的转换规律是:运算前float型数据会自动转换为double型,char型数据会自动转换为int型。运算时int型数据和double型数据要先化为相同类型,即double型,运算结果也为double型。本题正确答案为C。35下面的程序运行后输出为【 】。#include #include main( ) int a,b;float c;b=5;c=6;c=b+7;b=c+1;a=sqrt(double)b+c); / *sqrt是开平方库函数,定义代码在math.h中*/printf(%d,%f,%d,a+6,c,b);A) 11.000000,12.000000,13.000000B) 11.000000,12.000000,13C) 11.0000000,12,13D) 11,12.000000,13分析:C语言允许将一种类型的数据赋给另一种类型的变量,但是变量的类型并不会因为赋值而发生改变,如本题中将b+7,即12赋给float型变量c,c值应为12.000000而不是整数12,同样a=sqrt(double)b+c),赋值号右边是双精度数,但由于a是整形变量,故a的值为5。本题正确答案为D。二、填空题:1、设a=3,b=4,c=5,求下列表达式的值。(1)a+bc&b=c (2)a|b+c&b-c(3)!(ab)&!c|1 (4)!(x=a)&(y=b)&02下面程序段的输出结果是 。int k=10;float a=3.5,b=6.7,c;c=a+k%3*(int)(a+b)%2/4;分析:本题考查运算符的优先级概念,式中要先算(a+b)的值,再算强制类型变换,*、/、%是同级的要从左到右计算,最后算加法和赋值。本题正确答案为:3.5000003若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是。 : . char a10,b; scanf(a=%s b=%c,a,&b); : .【答案】a=1234 b=5【解析】scanf函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。scanf(a=%s b=%c,a,&b)要求输入设备(键盘)输入数据的形式是a=%s b=%c(注意中间要求是空格),这里scanf的意义即是:从键盘顺序读取一串字符,以空格为分隔符,分别赋值给变量a,b;a可以接受一串字符,而b只能接受一个字符,多余的字符将被舍弃,scanf函数结束。所以,键盘上的输入应该是a=1234 b=54执行下列程序的输出结果是【 】。main( )float a=1,b;b=+a*+a;printf(%fn,b);5执行下列程序的输出结果是【 】。main( )int x=5,y;y=+x*+x;printf(y=%dn,y);6下面程序段的执行结果是x=4,y=11。inta=3,b=5,x,y;x=a+1,b+6;y=(a+1,b+6);printf(x=%d,y=%d,x,y);分析:此题考查逗号表达式的概念,因逗号运算符的优先级比赋值号还低,所以执行x=a+1,b+6时,x得到的是a+1的值。7已知:int a=5;则执行a+=a-=a*a;语句后,a的值为-40。分析:a+=a-=a*a的运算顺序是从右向左,相当于求a+=(a-=a*a),其中小括号内的运算得a=5-5*5即a=-20,下一步再求a+=a,即a=a+a,将-20代入得a=-40。8下面程序的运行结果是x=4.900000,y=4。main( ) float x=4.9;int y;y=(int)x;printf(x=%f,y=%d,x,y); 分析:强制类型变换并不改变x的原值,x仍为4.9,而变换得到的是中间结果,此题将中间结果赋给了y,另外注意是舍弃小数部分,而不是四舍五入。 第4章 顺序程序设计一、选择题1以下合法的赋值语句是A) x=y=100 B) d-; C) x+y; D) c=int(a+b);【答案】:B【解析】:赋值语句是由赋值表达式再加上分号构成的表达式语句。其一般形式为:变量=表达式; A后面没有“;”号,B等价于d=d-1;C不满足变量=表达式这个格式,D作为类型转换需要c=(int)(a+b);故B2x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是A) INPUT x、y、z; B) scanf(“%d%d%d”,&x,&y,&z);C) scanf(“%d%d%d”,x,y,z); D) read(“%d%d%d”,&x,&y,&z);【答案】:B【解析】:scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数的一般形式为:scanf(“格式控制字符串”,地址表列);地址是由地址运算符“&”后跟变量名组成的,故选B3已知各变量的类型说明如下: Int m=8,n, a, b; unsigned long w=10; double x=3.14, y=0.12; 则以下符合C语言语法的表达式是( )。Aa+=a-=(b=2)*(a=8) Bn=n*3=18Cx%3 Dy=float (m)【答案】:A【解析】:B的错误在于赋值语句的左侧只能为一个简单变量,如:n=3*(n=18); C的错误在于%运算符只能适用于整型数据,D的错误在于作类型转换时,应将类型加上括号,即为:y=(float)m4若有定义:int x,y; char s1,s2,s3; 并有以下输出数据:(注:代表空格) 12 UVW则能给x赋给整数1,给y赋给整数2,给s1赋给字符U,给s2赋给字符V,给s3赋给字符W的正确程序段是( )。Ascanf(”x=%dy=%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar(); Bscanf(”%d%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();Cscanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3);Dscanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);【答案】:D【解析】:A getchar()输入单个字符,但这样不能满足U,V,W之间的空格,C同样不能输出空格,只有D满足条件满足scanf格式输入函数,而且又可以满足题意。二、填空题1main() int a=88,b=89; printf(%d %dn,a,b); printf(%d,%dn,a,b); printf(a=%d,b=%d,a,b);的输出值【答案】:第四行88 89 第五行 88,89 第六行 a=88,b=89.【解析】:本题中四次输出了a,b的值,但由于格式控制串不同,输出的结果也不相同。第四行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a,b值之间有一个空格。第五行的printf语句格式控制串中加入的是非格式字符逗号, 因此输出的a,b值之间加了一个逗号。第六行中为了提示输出结果又增加了非格式字符串。2 设int a=1,b=2,c,d,e; 执行c=(-a+)+(+b);d=(b-)+(+a)-a;e=(a/(+b)-(a/(-a);请问a,b,c,d,e的结果是:_。Visual C+下,结果为a=2,b=3,c=2,d=3,e=-0。 a+和+a是自增运算,相当于a=a+1;a-和-a是自减运算,相当于a=a-1“+a”或“-a”是先自增自减再参与计算;“a+”或“a-”是先参与计算再自增自减这是一种简写形式,题目写的是复合语句。C语句是以分号结尾的,所以先后是以分号为界的。 第一句:c=(-a+)+(+b); a+是先参与计算,然后在程序执行到分号后才自增,而+b是程序读到该处b的值马上+1变为3,所以c=(-1)+(3)=2,执行到分号,a的值+1变为2复合语句【c=(-a+)+(+b);】分解开就是:b=b+1;c=-a+b;a=a+1;第二句:【d=(b-)+(+a)-a;】分解开就是:(注意经过语句1,a=2,b=3)a=a+1;d=b+a-a;b=b-1;第三句:【e=(a/(+b)-(b/(-a);】分解开就是:(注意经过语句2,a=3,b=2)b=b+1;e=a/b;a=a-1;e=e-b/a;(注意你定义的e是整型数,所以只要整数部分,小数部分被丢弃)三、程序设计题1设圆的半径R=1.5,圆柱高H=3,求圆周长.面积.球表面积.球体积.圆柱体积.用scanf输入数据,输入数据,输出计算结果,输出时要求文字说明,取小数点后勤部位数字.请编程序。解:main() float pi,h,r,l,s,sq,vq,vz; pi=3.141526;I=2*pi*r;S=r*r*pi;Sq=4*pi*r*r;Vq=3.0/4.0*pi*r*r;Vz=pi*r*r*h;Printf(“圆周长为: I=%6.2fn”,I);Printf(“圆面积为: s=%6.2fn”,s);Printf(“圆球表面积: sq=%6.2fn”,sq);Printf(“圆球体积为: sv=%6.2fn”,sv);Printf(“圆柱体积为: sz=%6.2fn”,sz);2输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32)输出要有文字说明,取两位小数。解:main()float c,f;printf(“请输入一个华氏温度:/n”);scanf(“%f”,&f);c=(5.0/9.0)*(f-32);* /*注意5/9要用实型表示,否则5/9的值为0*/printf(“摄氏温度为:%5.2n”,c);3编程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:(1)变量c1,c2应定义为字符型或整型?或二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?3)整型变量与字符型变量是否在任何情况下都可以互相代替?如”c1,c2;”与”int c1,c2;”是否无条件地等价?解:#includemain()char c1,c2;printf(“请输入两个字符c1,c2:n”);c1=getchar();c2=getchar();printf(“用putchar语句输出结果为:n”);putchar(c1);putchar(c2);printf(“n”);printf(“用printf语句输出结果为:n”);printf(“%c,%cn”,c1c2);回答思考问题:(1) C1和c2可以定义为字符型或整型,二者皆可。(2) 在printf函数中用%d格式符输出,即:printf(“%d,%dn”c1,c2);(3) 字符变量在计算机内占一个字节,而整型变量占两个字节因此整型变量在可 输出字符的范围内(ASCII码为0-255之间的字符)是可以与字符数据互相转换的。如果整数在此范围外,则不能代替。请分析以下三个程序。 程序1;main()int c1,c2; /*定义为整型*/prinrf(“请输入两个整数c1,c2:n”);scanf(“%d,%d”,&c1,.&c2);printf(“按字符输出结果为:n”);printf(“%c,%c&c1&c2);printf(“按ASCII码输出结果为:n”);printf(“%d,%dn”,c1,c2);程序2:main()char c1,c2; /*定义为字符型*/int i1,i2; /*定义为整型*/printf(“请输入两个字符c1,c2:n”);scanf(“%c,%c”,&c1,&c2,n”);i1=c1; /*将字符型赋值给整型*/i2=c2;printf(“按字符输出结果为:n”);printf(“%c,%c”n,i1,i2); /*将整型变量按字符输出*/printf(“按整数输出结果为:n”);printf(“%d,%dn,c1,c2”); /*将字符变量按整型输出*/程序3:main()char c1,c2; /*定义为字符型*/char i1,i2; /*定义为整型*/printf(“请输入两个整数i1,i2:n”);scanf(“%c,%c”,&i1,&i2:n);c1=i1; /*将整型赋给字符型变量*/c2=i2;printf(“按字符输出为:n”);printf(“%c,%cn”,c1,c2);printf(“按整数输出结果为:n”);printf(“%d,%dn”,c1,c2);第5章 选择结构程序设计一、选择题1、能正确表示“当X的取值在1,10和200,210范围内为真,否则为假”的表达式是 B 。A. (X=1) &(X=200)&(X=1) &(X=200)&(X=1) |(X=200)|(X=1) |(X=200)|(X=210)2、判断char型变量ch是否为大写字母的正确表达式是 C 。A. A=ch=A)&(ch=A)&(ch=A)and(ch=Z)3、设x、y、z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是D。A.x&y B.x=y C.x|y+z&y-z D. !(x=y)&(y=z) B. (x=y) and(y=z)C. x=y=z D.(x=y)|(y=z)5、以下运算符中优先级最低的运算符。A. & B.& C.!= D.|6、下列表达式中, D 不满足“当x的值为偶数时值为真,为奇数时值为假“的要求。A. x%2=0 B. !x%2!=0 C.(x/2*2-x)=0 D. !(x%2)7、在C语言中,要求运算数必须是整型的运算符是 D 。A. / B. + C. != D. %8、执行下列程序段后,变量m的值是 D 。int w=1,x=2,y=3,z=4,m;m=(wx)?w:x;m=(my)?m:y;m=(mb) if(cc) if(bd) x=2;else x=3;else x=6;else x=7;A. 7 B. 2 C. 3 D. 610、有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是B。A. if(ca) x=1; else if(b3) x=3; else if(a2) x=2;else x=1;C. if(a3) x=1; else (a2) x=2; if(a,1) x=3;D. if(ab) x=b; if (bc) x=c;if(c0|b0) &(a0|b0&b0 C) a+b0 D)a*b013设 int x=1, y=1;表达式(!x|y-)的值是 ( )A) 0 B) 1 C) 2 D) -114. 设有以下程序main() int a=2,b=-1,c=2;if(b0) printf(“%dn”,a100); else printf(“%dn”,ay) z=x;B) if

温馨提示

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

评论

0/150

提交评论