《c语言期末考试题库完整.pdf》由会员分享,可在线阅读,更多相关《c语言期末考试题库完整.pdf(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、习题一一、选择题1C 语言是一种(C)。A.低级语言B.汇编语言C.高级语言D.机器语言2以下不是C 语言的特点的是(D)。A.语言简洁紧凑B.可以直接对硬件进行操作C.数据类型丰富D.是面向对象的程序设计语言3一个 C 程序的执行是从(A)。A.本程序的main 函数开始,到main 函数结束B.本函数的第一个数开始,到本程序文件的最后一个函数结束C.本程序的main 函数开始,到本程序文件的最后一个函数结束D.本函数的第一个数开始,到本程序main 函数结束4以下叙述正确的是(C)。A.在 C 程序中,main 函数必须位于程序的最前面B.C 程序的每行只能写一条语句C.C 语言的本身没有
2、输入输出语句D.在对一个C 程序进行编译的过程中,可以发现注释中的拼写错误5以下叙述不正确的是(D)。A.一个 C 源程序可由一个或多个函数组成B.一个 C 源程序必须包括一个main 函数C.C 程序的基本组成单位是函数D.在 C 程序中,注释说明只能位于一条语句的后面6C 语言规定:在一个源程序中,main 函数的位置(C)。A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后7一个 C 语言程序是由(B)。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成8以下叙述中正确的是(C)。A.C 程序的基本组成单位是语句B.C 程序中的每一行只能
3、写一条语句C.C 语句必须以分号结束D.C 语言必须在一行写完9以下叙述中正确的是(C)。A.C 程序中的注释只能出现在程序的开始位置和语句的后面B.C 程序书写格式严格,要求一行只能写一个语句C.C 程序书写格式自由,一个语句可以写在多行上D.用 C 语言编写的程序只能放在一个程序文件中10以下叙述中正确的是(C)。A.C 语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C 语言规定必须用main 作为主函数名,程序从此开始执行,在此结束D.main 可作为用户标识符,用以命名任意一个函数作为主函数11下列叙述中正确的是(A)。A
4、.每个 C 程序文件中都必须要有一个main 函数B.在 C 程序中 main()位置是固定的C.C 程序中所有函数之间都可以相互调用,与函数所在位置无关D.在 C 程序的函数中不能定义另一个函数12 C 语言源程序的基本单位是(B)。A.过程B.函数C.子程序D.标识符13下列关于算法的特点描述中错误的是(D)。A.有穷性B.确定性C.有零个或多个输入D.有零个或多个输出14以下选项中不属于算法特性的是(C)。A.有穷性B.确定性C.简洁性D.有效性15用 C 语言编写的代码程序(B)。A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行二、填空题1C 语言的源程序必须
5、通过编译和连接后,才能被计算机执行。2C 语言源程序文件的后缀是.c;经过编译后,生成文件的后缀是.obj;经过连接后,生成文件的后缀是.exe。3C语言从源程序的书写到上机运行输出结果要经过编辑、编译、连接、执行四个步骤。4结构化程序由顺序结构、选择结构和循环结构三种基本结构组成。5C 语言源程序的基本单位是函数。6一个 C 语言源程序是由若干函数组成,其中至少应含有一个主函数(或main 函数)。7在一个C 语言源程序中,注释部分两侧的分界符为/*/。8算法是程序设计的灵魂。9C 语言程序只能从main 函数开始执行。10自然语言、流程图和伪代码都可以用来表示算法,其中流程图是算法的图形化
6、表示方法。三、编程/思考题1简述 C 语言的主要特点。1C 语言的主要特点有:(1)C 语言具有结构化的高级编程语言应有的所有高级指令,使程序员不需要知道硬件细节。同时,C 也具有一些低级指令,允许程序员能够直接快速地访问硬件。(2)C 语言是结构式语言。(3)C 语言是一种高效的语言。(4)C 语言简洁紧凑,使用方便灵活。(5)C 语言运算符丰富。(6)C 语言是一种可移植性语言。2要得到一个可以正常运行的C 语言程序,一般经过哪几个过程?编辑 C 语言程序源代码,编译源文件,连接程序,执行程序。3算法具有哪些特点?3算法具有以下特点:(1)有穷性;(2)确定性;(3)有零个或多个输入;(4
7、)有一个或多个输出;(5)有效性。4用流程图表示求解123 45 的算法。5参照本章例题,编写一个C 程序,输出以下信息:*This is a simple C program!答#include void main()printf(*n);printf(This is a simple C program!n);printf(*n);习题二一、选择题1下列几个选项中,属于C 语言的基本数据类型的是(B)。A.整型、实型、结构体类型B.整型、实型、字符型C.整型、逻辑型、实型D.整型、字符型、数组类型2.C 语言规定,标识符的命名只能由字母、数字和下划线三种字符组成,且第一个字符(C)。A.必
8、须是字母B.必须是下划线C.必须是字母或下划线D.必须是数字3下列标识符中,合法的标识符为(B)。A.6adc B._max1 C.a*$bn D.123bc 4下列标识符中,不合法的标识符为(A)。A.int B._n5 C.i_5ab D.q5n 5.下列不合法的字符常量是(D)。A.aB.”C.n D.”a”6下列不合法的字符串常量是(A)。A.abcB.”abc”C.”dfb345”D.”7下列不合法的转义字符是(D)。A.B.tC.x6a D.898.下面四个选项中,均是不合法的转义字符的选项是(B)。A.t B.1234018 x3hC.n 16”D.x8a&1019下列整型常量中
9、,不合法的是(D)。A.89 B.-16 C.0 x4b D.0668 10.下面四个选项中,均是不合法的整型常量的选项是(A)。A.-0f1 018 2e5 B.25 0 xf3 3.5 C.065-54-0a4 D.013 0 xk5-069 11下列实型常量中,不合法的是(C)。A.0.0 B.123 C.123 D.2.34 12下列实型常量中,合法的是(D)。A.e3 B.2e4.3 C.e4 D.2e-4 13.下面四个选项中,均是不合法的实型常量的选项是(B)。A.3e5.4 0.0 2e5 B.e5 5e2.5 68 C.3.14 2e-4 123e-5 D.0.98-e-3
10、123e 14.在 C 语言中,int、char 和 short 三种类型数据在存中所占用的字节数(D)。A.由用户自己定义B.均为 2 个字节C.是任意的D.由所使用的编译系统决定15.若有说明语句:char c=72;则变量c(A)。A.包含 1 个字符B.包含 2 个字符C.包含 3 个字符D.说明不合法,c 的值不确定16 设变量 a是整型,f 是实型,i 是双精度型,则表达式10+a+i*f 值的数据类型为(C)。A.int B.float C.double D.不确定17设有说明语句:char w;int x;float y;double z;则表达式w*x+z y 值的数据类型为
11、(D)。A.float B.char C.int D.double 18在 C 语言中,负整数在存中的存储形式是(A)。A.补码B.反码C.原码D.ASCII 码19在 C 语言中,字符型数据在存中的存储形式是(D)。A.补码B.反码C.原码D.ASCII 码20在 C 语言中,实型数据在存中的存储形式是(B)。A.小数形式B.指数形式C.十进制形式D.ASCII 码21.在 C 语言中,设一个 short 型数据在存中占用2 个字节存储,则 unsigned short 型数据的取值围为(C)。A.0255 B.032767 C.065535 D.02147483647 22在 C 语言中,
12、设一个float 型数据在存中占用4 个字节来存储,则一个float 型数据的有效数字位数为(B)。A.5 位B.67 位C.1516 位D.1819 位23已知小写字母 a 的 ASCII 码为十进制数97,则执行语句c=a+2 后,变量 c 中的字符为(B)。A.A B.c C.C D.b24设有定义float x=3.5;则执行(int)x 之后,x 的值为(A)。A.3.500000 B.3 C.4 D.3.025若想确定所使用的编译系统中,int 型数据所占用的存储宽度,可使用(B)进行测试。A.(int)B.sizeof(int)C.(int)x D.(sizeof)int 二、填
13、空题1.C语 言 中 的 实 型 变 量 分 为 两 种 类 型,它 们 是float 和double。2.C 语 言 中 的 常 量 分 为普 通 常 量和符 号 常 量两种类型3.C 语言中的标识符只能由种字符组成,他们是字母、数字、下划线、和。4.在语言中,有一类特殊字符以“”开头,称为转义字符。转义字符 n 的功能是回车换行;转义字符 r 的功能是,回车不换行。5.在语言中,用关键字float 定义单精度实型变量,用关键字DOUBLE 定义双精度实型变量,用关键字char 定义字符型变量。6.要定义双精度实型变量a 和b,并使它们的初值都为5.6,则定义语句为doube a=5.6,b
14、=5.6;。7.设 C 语言中一个short 型数据占用2 个字节存储,一个int 型数据占用4 个字节存储,则要 将 数 值32768正 确 无 误 的 存 储 在 变 量x中,应 使 用 的 定 义 语 句 为int x=32768。8.若有定义char ch;则执行ch=A+32 后,变量ch 中的字符为 a。9.以下程序运行后的输出结果是9,90。#include void main()int x=011,y=0 x5a;printf(%d,%dn,x,y);10.以下程序的输出结果是Beijing China。#include void main()printf(BeijingnCh
15、inan,n);三、思考题1C 语言规定对所有用到的变量必须“先定义,后使用”,这样做有什么好处?1解:C 语言中,要求对所有用到的变量“先定义,后使用”,这样做的好处是:能够保证程序中变量名使用得正确;在编译时就能为变量分配相应的存储单元;便于在编译过程中检查对该变量进行的运算是否合法。2字符常量和字符串常量有什么区别?2解:字符常量是一个字符,在程序中是用单撇号括起来的;字符串常量由0 个或若干个字符组合而成,在程序中是用双撇号括起来的,在存储时,系统自动在字符串最后加上一个字符串结束符 0。3若想要将一个大写字母转换为对应的小写字母,可以如何操作?3.解:在存中,字符型数据以ASCII
16、码存储,ASCII 码是一串二进制编码,每个字符的ASCII码对应一个整数值,大写字母与其对应小写字母的ASCII 码对应整数值相差32。因此,要将一个大写字母转换为小写字母,只需将该变量的值加上32 即可。4常量 a 与”a”在存中所占用的字节数是否相同?为什么?4.解:常量 a 与”a”在存中所占用的字节数不相同,因为 a 是字符常量,在存中占用一个字节存储,而”a”是字符串常量,在存中存储时,系统自动在其后加上一个字符串结束符 0,在存中占用2 个字节存储。5若有定义int a;float f,则表达式 c+a+f 的结果为何种数据类型?为什么?5.若有定义int a;float f,则
17、表达式 c+a+f 的结果为double 型。因为表达式中f 为 float 型,在计算之前必须先转换为double 型,根据数据类型的自动转换规则,表达式的结果为double型。6设 C 语言中,一个short 型数据占用2 个字节存储,若有定义short x=-12,则变量x 的值-12 在存中存储的二进制代码是如何表示的?6.解:整数在存中以补码形式存储,负数的补码为反码+1,所以,当x=-12 时,其在存中的存储形式为:1111 1111 1111 0100。7设 C 语言中,一个short 型数据占用2 个字节存储,若有定义short x=32768,则用输出语句 printf(”%
18、dn”,x);输出 x 值为多?为什么?7.解:输出结果为-32768,因为一个short 型数据在存中占用2 个字节存储,所能表示的数值围为-3276832767,当 x=32768 时,超出了其能表示的围,发生了溢出,数值32768 的二进制编码的16 位正好对应数值-32768。8若有 x 为 int 型变量,则执行x=3.14 后,变量x 的值为多少?为什么?8.解:若有 x 为 int 型变量,则执行x=3.14 后,变量 x 的值为 3,因为 x 为 int 型变量,不能存储实型数据,当把一个实型数据赋给x 时,发生了数据类型转换,系统自动把实型数据的小数部分舍去。9 分析下面两个
19、程序运行结果是否相同?为什么?程序 A:#include 程序 B:#include void main()void main()char c1,c2;int c1,c2;c1=a;c1=97;c2=b;c2=98;printf(“%c,%cn”,c1,c2);printf(“%c,%cn”,c1,c2);9.解:两个程序的运行结果相同。因为字符型数据以ASCII 码存储,ASCII 码是一串二进制编码,每个字符的ASCII码对应一个整数值。因此,在一定围,整型数据和字符型数据是可以通用的。字符 a 和 b 对应的 ASCII 编码值分别为97,98。10 分析下面程序的运行结果:#inclu
20、de void main()char c1=A,c2=B,c3=C,c4=101,c5=x42;printf(a%cb%ctc%ctabcn,c1,c2,c3);printf(%ct%c bBn,c4,c5);aAbB cC abc ABB 习题三一、选择题1若有代数式bcae3,则不正确的C 语言表达式是(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 2在 C 语言中,要求运算数必须是整型的运算符是(D)。A./B.=C.+D.%3若有定义语句:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)
21、%2/4的值(A)。A.2.500000 B.2.750000 C.3.500000 D.0.000000 4.若有定义int x=5,y=2,则表达式5/2 的结果为(B)。A.2.5 B.2 C.2.0 D.3 5判断 char 型变量 ch 是否为大写字母的正确表达式是(C)。A.A=ch=A)&(ch=A)&(ch=A)and(ch=b=c B.(a=b)&(b=c)C.(a=b)&(b=c)D.(a=b)|(b=c)7逻辑运算符两侧运算对象的数据类型(D)。A.只能是 0 或 1 B.只能是 0 或非 0 正数C.只能是整型或字符型D.可以是任何数据类型8下列运算符中,优先级最高的是
22、(B )。A.B.+C.&D.=9设 x、y、z 是 int 型变量,且有x=3,y=4,z=5,则下面表达式中值为0 的是(D)。A.x&yB.x=y C.x|y+z&y-z D.!(x=y&chb)&(n=cd)后,n 的值为(C)。A.0 B.1 C.2 D.3 13判断 char 型变量 c 是否为 0 到 9 的数字的正确表达式为(C)。A.0=c=9B.0=c=0&c=0&c=9 14设有 int x=3,y=4,z=5,则执行表达式!(x+y)+z-1&y+z/2的结果是(D)。A.6 B.0 C.2 D.1 15以下程序的运行结果是(B)。#include void main(
23、)int a,b,d=241;a=d/100%9;b=(-1)&(-1);printf(“%d,%dn”,a,b);A.6,1 B.2,1 C.6,0 D.2,0 16执行以下语句后x 的值为,y 的值为(C)。int x=5,y=6,t=1,a=2,b=3,z=4;(x=ta)&(y=bz)A.5,6 B.5,0 C.0,6 D.0,0 17以下表达式中,与表达式!a 等价的是(D)。A.a=0 B.a=1 C.!a=0 D.!a=1 18以下符合C 语言语法的赋值表达式是(D)。A.a=10+n+m=a+3 B.a=10+m,b=a+5 C.b=b*8=2 D.a+=a-=(m=4)*(n
24、=3)19若有 int a=7,b=12,则以下表达式中,值为3 的是(D)。A.b%=(a%=5)B.b%=(a-a%5)C.b%=a-a%5 D.(b%=a)-(a%=5)20已知各变量的类型说明如下。int a=2,b;double x=2.56;则以下不符合C 语言语法的表达式是(A)。A.x%(-3)B.a+=2 C.a+=a-=(b=4)D.x/=(b=3)21设以下变量均为int 类型,则值不等于7 的表达式是(C)。A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)22若 x,i,j,
25、k 都是 int 型变量,则执行表达式x=(i=4,j=16,k=32)后,x 的值为(C)。A.4 B.16 C.32 D.52 23执行下面程序段后,输出结果为(C)。int x=13,y=5;printf(“%d”,x%=(y/2);A.3 B.2 C.1 D.0 24设 x,y 均为 float 型变量,则以下不合法的赋值语句是(B)。A.x=0.0 B.y=(x%2)/10;C.x*=y+8;D.x=y=0;25设 int a=10,则执行语句a+=a*=a/5+10;后,a 的值是(A)。A.240 B.120 C.30 D.60 26设有定义语句int x=2;则以下表达式中,值
26、不为6 的是(D)。A.x*=x+1 B.x=2,3*x C.x*=(1+x)D.2*x,x+=2 27 已知变量x、y、z 都为 int 型,则执行 z=2+(y=1,y+=1,x=y,x+8)后,x 和 z 的值分别为(A)。A.x=2,z=12 B.x=2,z=10 C.x=10,z=12 D.x=10,z=10 28若 w=1,x=2,y=3,z=4,则条件表达式wx?w:yz?y:z 的值是(D)。A.4 B.3 C.2 D.1 29若 w、x、y、z、m 均为 int 型变量,则执行下面语句后,m 的值为(A)。w=1;x=2,y=3;z=4 m=(wx)?w:x;m=(my)?m
27、:y m=(mz)?m:z;A.1 B.2 C.3 D.4 30若运行时给变量x 输入 12,则以下程序的运行结果是(A)。#include void main()int x,y;scanf(“%d”,&x);y=x12?x+10:x-12;printf(“%dn”,y);A.0 B.22 C.12 D.10 31若已知 num、sum 均为 int 型变量,且num=sum=7;则计算表达式sum=num+,sum+后,sum 的值为(B)。A.7 B.8 C.9 D.10 32若有 int x=11,则表达式(x+*1/3)的结果为(B)。A.5 B.3 C.4 D.6 33若有定义语句:
28、int x=3;则以下表达式中,值为5 的是(A)。A.+x,x+1 B.x+=2,-x C.x+=2,x+1 D.x+,x+34若已知m,n,x,y 为 int 型变量,则执行以下语句后,变量y 的值为(D)。m=10;n=5;x=(-m=n+)?-m:+n;y=n;A.5 B.10 C.6 D.7 35执行以下程序段后,变量a,b,c的值分别为(B)。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 D.a=1,b=11,c=10 36以下程序的输出结果是(
29、C)。#include void main()int w=3,z=7,x=10;printf(“%dn”,x10?x+100:x-10);printf(“%dn”,w+|z+);printf(“%dn”,!wz);printf(“%dn”,w&z);A.0 B.1 C.0 D.0 1 1 1 1 1 1 0 0 1 1 1 0 37.以下关于运算符优先顺序的描述中正确的是(C)。A.关系运算符 算术运算符 赋值运算符 逻辑与运算符B.逻辑与运算符 关系运算符 算术运算符 赋值运算符C.赋值运算符 逻辑与运算符 关系运算符 算术运算符D.算术运算符 关系运算符 赋值运算符 逻辑与运算符38下列运
30、算符中,优先级最高的是(D)。A.B.%C.&D.+39设 x、y 和 z 是 int 型变量,且x=3,y=4,z=5,则下面表达式中值为0 的是(C)。A.x&yB.x=y=z C.y+z&y-z&(x+1)%2 D.!x|xbc 的值为0。7.当 a=5,b=4,c=2 时,表达式ab&!c 的值为0。8.C语言提 供 的三种逻 辑 运算符是&、|、!。9.若 a=2,b=4,则表达式!(x=a)|(y=b)&0的值为0。10.若 a=1,b=4,c=3,则表达式!(a=0&x=-1&x=0。14.若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后,y 的值为-16。1
31、5.若a 是int型变量,且a 的初值为6,则计算表达式a+=a-=a*a后,a 的值为-60。16.若 a 是 int 型变量,则表达式(a=4*5,a*2),a+6 的值为26。17.若x 和n 均 为int型变量,且有x=n=5,则计算表达式x+=n+后,x 的值 为10,n 的值为6。18.若 n、i 均为 int 型变量,则表达式n=i=2,+i,i+的值为3。19.若有定义:int x=1,y=0;则表达式xy+?A:Z 的值为A。20.若有定义:int x=0,y=1;则表达式x+*x-!=y?8-4:y 的值为4。三、思考/编程题1设有定义:int a=3,b=4;float
32、x=2.5,y=3.5;分析下面算术表达式的值(1)x+a%2*(int)(x+y)%2/4(2)(float)(a+b)/2+(int)y%(int)x 2C 语言中如何表示“真”和“假”?系统如何判断一个量的“真”“假”?2如果一个表达式的值为“真”,则以 1 表示,如果值为“假”,则以 0 表示;当判断一个量的逻辑值时,系统将0 判断为“假”,将非 0 判断为“真”。3设有定义:int a=3,b=4,c=5,试分析下列表达式的值:(1)a+bc&b=c 0(2)a|b+c&b-c 1(3)!(ab)&!c|1 1(4)!(x=a)&(y=b)&0(5)!(a+b)+c-1&b+c/2
33、1 4设有定义:int a=15,n=7;试分析下列表达式执行后a 的值为多少?(1)a+=a(2)a-=5(3)a*=5-2(4)a%=(n%3)(5)a/=(a+a)(6)a+=a-=a*a(7)a+=a-=a*=a 4(1)30;(2)10;(3)45;(4)0;(5)0;(6)-420;(7)0 5设有定义:int a,b;试分析下面表达式执行后变量a、b 和表达式的值各是多少?a=3,b=a+2,a+,(b+)+1 a=4,b=6,表达式的值为6;6试分析下面程序的运行结果。#include void main()int i=10,j=10;int m,n;m=+i;n=j-;pri
34、ntf(“%d,%d,%d,%dn”,i,j,m,n);611,9,11,10 7试分析下面程序的运行结果。#include void main()int a,b,c;a=b=1;c=a+-1;printf(“%d,%dn”,a,c);c+=-a+(+b|+c);printf(“%d,%dn”,a,c);2,0 3,-1 8若程序运行时从键盘输入3 4 5,试分析下面程序的运行结果:#include void main()int x,y,z,max;scanf(“%d%d%d”,&x,&y,&z);max=xy&xz?x:yx&yz?y:z;printf(“%dn”,max);5 9编写程序,
35、从键盘输入整型变量x 的值,判断并输出x 是奇数还是偶数。9#include void main()int x;printf(请输入 x 的值:);scanf(%d,&x);x%2?printf(奇数 n):printf(偶数 n);10编写程序,从键盘输入一个大写字母赋给字符型变量ch,并将其转换成对应小写字母后输出。10#include stdio.h void main()char ch;printf(请输入一个大写字母:);scanf(“%c”,&ch);ch=ch+32;printf(%cn,ch);习题四一、选择题1C 语言程序的三种基本结构是(A)。A.顺序结构、选择结构、循环结
36、构B.递归结构、循环结构、转移结构C.嵌套结构、递归结构、顺序结构D.循环结构、转移结构、顺序结构2以下能正确定义且赋初值的语句是(B)。A.int n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=12.3E2.5 3以下能正确定义整型变量a,b 和 c 并为其赋初值5 的语句是(A)。A.int a=b=c=5;B.int a,b,c=5;C.a=5,b=5,c=5;D.a=b=c=5;4.在下列选项中,不正确的赋值语句是(D)。A.+t;B.n1=(n2=(n3=0);C.k=i=j;D.a=b+c=1 5有以下程序:main()int a=
37、0,b=0;a=10;b=20;printf(a+b=%dn,a+b);程序运行后的输出结果是(B)。A.a+b=10 B.a+b=30 C.30 D.出错6有以下程序段:char ch=a;int k=12;printf(%c,%d,ch,ch,k);printf(k=%dn,k);已知字符a的 ASCII 十进制代码为97,则执行上述程序段后输出结果是(D)。A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12 D.a,97,k=12 7执行下面程序段后的输出结果是(D)。int a=15;printf(a=%d,a=
38、%o,a=%xn,a,a,a);A.a=15,a=15,a=15 B.a=15,a=017,a=0 xf C.a=15,a=17,a=0 xf D.a=15,a=17,a=f 8以下程序的输出结果是(A)。main()int a=010,b=10,c=0 x10;printf(%d,%d,%d,a,b,c);A.8,10,16 B.8,10,10 C.10,10,10 D.10,10,16 9以下程序的运行结果是(A)。(注:代表空格)#include main()int m=5,n=10;printf(%d,%dn,m+,-n);A.5,9 B.6,9 C.5,10 D.6,10 10设有以
39、下程序:#include main()int a=201,b=012;printf(“%2d,%2d n”,a,b);程序执行后的输出结果是(B)。A.01,02 B.201,10 C.01,10 D.20,01 11有定义语句int a,b;,若要通过语句scanf(%d,%d,&a,&b);使变量 a 得到数值6,变量 b得到数值5,下面输入形式中错误的是(C)。(注:代表空格)A.6,5 B.6,5 C.6 5 D.6,5 12已有如下定义和输入语句,若要求a1,a2,c1,c2 的值分别为10,20,A 和 B,当从第一列开始输入数据时,正确的数据输入方式是(A)。(注:表示空格)in
40、t a1,a2;char c1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);A.10A 20B B.10A20B C.10A 20B D.10A20 B 13已有定义语句int x;float y;且执行 scanf(%3d%f,&x,&y);语句,若从第一列开始输入数据 12345678,则 x 的值为(B)。(注:表示空格)A.12345 B.123 C.45 D.345 14有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为 1,b 的值为 3,c的值为 2;从键盘输入数据的正确形式应当是(D)。(注:表示空格)A.1
41、32 B.1,3,2 C.a=1b=3c=2 D.a=1,b=3,c=2 15设有如下程序:#include main()char ch1=A,ch2=a;printf(%cn,(ch1,ch2);则以下叙述中正确的是(B)。A.程序的输出结果为大写字母B.程序的输出结果为小写字母a C.运行时产生错误信息D.格式说明符的个数少于输出项的个数,编译出错16执行下面程序段后的输出是(A)。(注:表示空格)float f1=111.111;printf(“%f f1=%8.3fn”,f1);A.%f f1=111.111 B.%f f1=111.111 C.f1=111.111 D.f1=111.
42、111 17以下不符合C 语法的赋值语句是(C)。A.m=(2+1,m=1);B.m=n=0;C.m=1,n=2 D.n+;18以下程序的输出结果是(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 *19根据以下定义语句和数据输入方式,scanf 语句的正确形式应为(B)。已有定义:fl
43、oat f1,f2;数据的输入方式:4.53 3.5 A.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);20阅读以下程序,当输入数据的形式为25,13,10,程序的输出结果为(D)。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.不确定值21以下 scanf 函数的叙述中,正确的是(D)。A.输入一项
44、可以为一实型常量,如scanf(%f,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如scanf(a=%d,b=%d);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%4.2f,&f);D.当输入数据时,必须指明变量地址,如scanf(%f,&f);22若有以下定义,则正确的赋值语句是(B)。int a,b;float x;A.a=1,b=2,B.b+;C.a=b=5 D.b=int(x);23已知 ch 是字符型变量,下面不正确的赋值语句是(A)。A.ch=a+b;B.ch=0;C.ch=7+9;D.ch=5+9;24设 x,y 均为 float 型变
45、量,则以下不合法的赋值语句是(D)。A.+x;B.y=(x%2)/10;C.x*=y+8;D.x=y=0;25设 int a=10,则执行语句a+=a*=a/5+10;后,a 的值是(A)。A.240 B.120 C.30 D.60 26以下程序的运行结果是(D)。#include main()int x1=0 xabc,x2=0 xdef;x2-=x1;printf(%xn,x2);A.ABC B.0 xabc C.0 x333 D.333 27有以下程序,其中%u 表示按无符号整数输出:main()unsigned int x=0 xFFFF;printf(%un,x);程序运行后的输出结
46、果是(B)。A.-1 B.65535 C.32767 D.0XFFFF 28设有以下程序:#include main()char c1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%cn,c5,c6);若运行时从键盘输入数据:abc defg,则输出结果是(B)。A.abcd B.abde C.abef D.abfg 29以下程序的运行结果是(A)。(注:表示空格)main()int y=23456;printf(y=%3xn,
47、y);printf(y=%8xn,y);printf(y=%#8x|n,y);A.y=5ba0 B.y=5ba0 y=5ba0 y=5ba0 y=0 x5ba0 y=0 x5ba0 C.y=5ba0 D.y=5ba0 y=5ba0 y=5ba0 y=0 x5ba0 y=#5ba0 30 若 x,y 均定义为int 型,z 定义为 double 型,以下不合法的scanf 函数调用语句是(D)。A.scanf(%d%lx,%le,&x,&y,&z);B.scanf(%2d%*d%lf,&x,&y,&z);C.scanf(%x%*d%o,&x,&y,&z);D.scanf(%x%o%6.2f,&x
48、,&y,&z);二、填空题1.C 语句的最后用;结束。2.以下 printf 语句中的负号的作用是输出数据左对齐。#include main()int x=12;double a=3.1415926;printf(%6d#n,x);printf(%-6d#n,x);3.以下 printf 语句中*号的作用是可以使同一输出语句中的输出宽度得以改变。#include main()int i=1;printf(#%*dn,i,i);4.以下程序的输出结果是x=1 y=2*sum*=3。main()int x=1,y=2;printf(x=%d y=%d*sum*=%dn,x,y,x+y);5.以下程
49、序的输出结果是261。#include main()int m=177;printf(%on,m);6.已有定义int a;float b,x;char c1,c2;为使 a=3,b=6.5,x=12.6,c1=a,c2=A,正确的 scanf函数调用语句是scanf(%d%f%f%c%c,&a,&b,&c1,&c2);。7.若整型变量a 和 b 中的值分别为7 和 9,要求按以下格式输出a 和 b 的值:a=7 b=9 请完成输出语句:printf(_ a=%dnb=%dn _,a,b);。8.以下程序运行后的输出结果是10,11。main()int m=011,n=11;printf(%d
50、,%dn,+m,n+);9.以下程序的输出结果是20。#include main()int n=0;n+=(n=10);printf(%dn,n);10.执行以下程序时输入1234567,则输出结果是12 34。#include main()int a=1,b;scanf(%2d%2d,&a,&b);printf(%d%dn,a,b);11.以下程序的输出结果是*3.140000,3.14*。main()printf(*%f,%4.3f*n,3.14,3.1415);12.以下程序的输出结果是2,48,20.0,20.0。#include main()int n=100;char c;floa