《C语言基础》强化精选练习题1-3附答案.pdf
C 语言基础强化精选练习题 1-3 附答案C 语言基础一:1.下列四组选项中,均不是 C 语言关健字的选项是( A )。A) define B) gect C) include D) while IF char scanf go type printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。A)160 B)-0 xcdf C) -01 D)-0 x48a -0 xffff 01a 986,012 2e5 011 0 xe 0668 0 xB23.下面四个选项中,均是不合法的转义符的选项是( B )。A) B) 1011 C) 011 D) abc f 101 xf A x1f4.下面不正确的字符串常量是( A )。A)abc B)1212 C)0 D) 5.以下选项中不合法的用户标识符是( A )。 A)abc.c B)file C)Main D)PRINT6.C 语言提供的合法关键字是( D )。A) swithB) cherC) Case) Default7.下列标识符组中,合法的用户标识符为 AA)_0123 与 ssipedB)del-word 与 signedC)list 与*jerD) keep%与 wind8.在 C 语言中,逻辑值真的表示是用( C )。A) true B) 整型值 0 C)非另整型值 D) T9 若有以下定义char s=092;则该语句( B )A)使 s 的值包含一个字符 B)定义不合法,s 的值不确定 C)使 s 的值包含 4 个字符 D)使 s 的值包含 3 个字符10 设 C 语言中,int 类型数据占 2 个字节,则 float 类型数据占( D )个字节。A)1 B)2 C)8 D)411 已知字母 A 的 ASCII 码为十进制数 65,且 c2 为字符型,则执行语句 c2=A+6-3后,c2 中的值为( A )。A)D B)68 C)不确定的值 D)C12 逻辑运算符两侧运算对象的数据类型是 ( D )。A) 只是 0 或 1 B) 只能是 0 或非 0 正数C) 只能是整型或字符型数据 D) 可以是任何合法的类型数据13TURBO C 中 int 类型变量所占字节数是( B )。 A)1 B)2 C)3 D)414 在 C 语言中,char 型数据在内存中的存储形式是( D )。A) 补码 B) 反码 C) 原码 D) ASCII 码15 若有以下定义,则能使值为 3 的表达式是( D )。int k=7, x=12;A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)16 判断 char 型变量 c1 是否为小写字母的正确表达式为 ( D )。A) a=c1=A. &(c1=c1)|(z=a)&(c1bc 的值是【 0 】10 设 x,y,z 均为 int 型变量,请写出描述x,y 中有一个为负数的表达式【 x=0|y=0 】11 若 a=6,b=4,c=3,则表达式 a&b|b-c 的值是【1 】12 设 x=3,y=-4,z=5,则表达式!(xy)+(y!=z)|(x+y)&(y=z)的值是【 1 】基础二1 下面四个选项中,均是非法常量的选项是( A )。A)as B) C)-0 x18 D)0 xabc -0fff 01 01177 0 0a 12,456 0 xf a2 下面四个选项中,均是不合法整型常量的选项是( D )。 A)-0f1 B)-0 xcdf C) -018 D)-0 x48eg -0 xffff 017 999 -0680011 12,456 5e2 03f3 下面正确的字符常量是( C )。A) c B) C) W D) 4 以下每个选项都代表一个常量,其中正确的整型常量是( B )。A)1.2 B)-20 C)1,000 D)4 5 65 以下选项中不合法的用户标识符是( C )。 A)_123 B)Printf C)A$ D)Dim6 在下列 C 语言程序中,可以用做变量名的是( B )。A) 1B) a1C) intD) *p7C 语言提供的合法数据关键字是( A )。A) floatB) SagnedC) IntegerD) Char8 以下符号中不能用作用户标识符的符号是( B )。A)_256 B)voidC)scanf D)Struct9 若 k 为 int 型变量,则以下语句( C ) 。k=8567;printf(|%-06d|n,k);A)输出格式描述不合法 B)输出为|008567|C)输出为|8567| D)输出为|-08567|10sizeof(float)是( B )。A)一个双精度表达式 B)一个整型表达式C)一种函数调用 D)一个不合法的表达式11 在 C 语言中, int、char 和 short 三种类型数据在内存中所占用的字节数( D )。A)由用户自己定义 B)均为 2 个字节C)是任意的 D)由所用机器的机器字长决定12 判断 char 型变量 c1 是否为小写字母的正确表达式为 ( D )。A) a=c1=A. &(c1=c1)|(z=a)&(c1=z)13 以下叙述中正确的是( B )。Aa 是实型变量,C 语言允许进行以下赋值 a=10,因此可以这样说:实型变量中允许存放整型值B在赋值表达式中,赋值号右边即可以是变量也可以是任意表达式C执行表达式 a=b 后,在内存中 a 和 b 存储单元中的原有值都将被改变,a 的值已由原值改变为 b 的值,b 的值由原值变为 0D已有 a=3,b=5 当执行了表达式 a=b,b=a 之后,已使 a 中的值为 5,b 中的值为 314 表达式 18/4*sqrt (4.0)/8 值的数据类型为( C )。A)int B)float C)double D)不确定15 下列运算符中,不属于关系运算符的是( C )。A) = C) ! D) ! =16 若希望当 A 的值为奇数时,表达式的值为真,A 的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是 ( C )。A) A%2= =1 B) !(A%2= =0) C) !(A%2) D) A%217 已知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合 C 语言语法的表达式是( A )。A)a+=a-=(b=4)*(a=3)B)a=a*3=2C)x%(-3)D)y=float(i)18 若变量已正确定义并赋值,下面符合 C 语言语法的表达式是( B )。 A)a=a+7; B)a=7+b+c,a+ C)int 12.3%4 D)a=a+7=a+b19 逗号表达式(a=3*5,a*4),a+15 的值为( C )。A)15 B)60 C)30 D)不确定20 设 Int n=3;则 n+的结果是( B )。A)2 B)3 C)4 D)51 用小数或指数形式输入实数时,在 scanf 函数语句里格式字符为( BCD )。A)i B)f C)e D)g2 可以使用( CD )输入字符型数据。A)putchar(c); B)getchar(c); C)getchar();D)scanf(%c,&c);1C 语言中数据有常量与变量之分。2 一般一个字符变量在内存中占一个字节。3C 语言规定,可以在定义变量时,同时使变量初始化。4 把 k1、k2 定义成基本整型变量,并赋初值 0 的定义语句是 int k1=k2=0; 。错5 如果 i 的原值为 3,则:j = + i,j 的值为 3。 错6 凡是表达式都有一个值。7 输入语句的格式为:scanf(%d,%d,%d,a,b,c);是正确的。 错8 在 scanf(%d,%*d,%d,&a,&b)函数中,当输入为 1,2,3 时,将 1 赋给 a,将 2 赋给b。 错9getchar 函数的功能是接收从键盘输入的一个整数。 错10 假定变量 a,b,c 在说明时已赋初值,则 if (a=b;)0) c=a;是正确的。 错1112printf 函数是一个标准库函数,它的函数原型在头文件string.h中。 错13 在 printf 函数中,格式字符 d 的意义是:以十进制形式输出带符号整数。14 在 printf 函数中,输出表列的各输出项之间可用冒号分隔。 错15 若 int x=3; printf(%d,&x);则系统不会报错,会输出 x 的地址。16int a=0,b=1,c=2;则表达式 a|b+c&b=c 的值为 01 若有以下定义:char c=010;则变量 C 中包含的字符个数为( 1 ) 。2 若有以下定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为【 1 】 。(x+y)%2+(int)a/(int)b3 若 a 是 int 型变量、且 a 的初值为 6,则执行下面表达式后,a 的值为【 60 】 。a+=a-=a*a4 若 x 是 int 型变量,则执行下面表达式后,x 的值为【 4 】 。x=a=4,6*25 若 a 是 int 型变量,且 a 的初值为 6,则计算表达式后 a 的值为【 60 】 。a+=a-=a*a 6scanf 函数的地址表列中给出各变量的地址,地址是由【 地址运算符& 】后跟变量名组成的。7 使用 getchar 函数接收字符,若输入多于一个字符时,只接收第【 一 】个字符。8 C 语言的格式输出函数是【 printf() 】 。9 当 a=5,b=4,c=2 时,表达式 ab!=c 的值是【 1 】10 已知 A=7.5,B=2,C=3.6,表达式 AB&CA | AB 的值是【 0 】11 若 a=3,b=2,c=1,则表达式 a-bc|b=c 的值是【0 】12 有 int a=0,b=4,c=5;则表达式 a|b+c&b!=c 的值为【 1 】基础三1 下面四个选项中,均是不合法的用户标识符的选项是( C )。A) A B) float C) b-a D) _123 p_0 lao goto temp do _A int INT2 下面四个选项中,均是不合法浮点数的选项是( B )。A) 160. B) 123 C) -018 D) -e3 0.12 2e4.2 123e4 .234 e3 .e5 0.0 1e33 下面四个选项中,均是不正确的八进制或十六进制数的选项是( D )。A)016 B)0abc C)010 D)0a12 0 x8f 017 -0 x11 7ff 018 0 xa 0 x16 -1234 以下每个选项都代表一个常量,其中不正确的实型常量是( B )。 A)2.607E-1 B)0.8103e 2 C)-77.77 D)45.6e-25 可用作用户标识符的一组标识符是( B )。 A)void B)a3_b3 C)For D)2a define _xyz -abc DOWORD IF Case sigeof6 下列标识符组中,合法的用户标识符为( B )。A) PAd 与 p#dB) Scanf 与 a10C) void 与 maxD) A*与 temp7( B )是 C 语言提供的合法的数据类型关键字。A)Float B)signed C)integer D)Char8 以下选项中正确的常量是( B )。A) 012B) -20C) 1,000D) 4 5 69 现已定义整型变量 int i=1;执行循环语句 while(i+ +5);后,i 的值为( B )。A)1 B)5 C)6 D)以上三个答案均不正确10 设变量 a 是整型,f 是实型,i 是双精度型,则表达式 10+a+i*f 值的数据类型为( C )。A)int B)float C)double D)不确定11 若有说明语句:char c=72;则变量 c ( C )。A)包含 1 个字符 B)包含 2 个字符C)包含 3 个字符 D)说明不合法,c 的值不确定12 设 X、Y、Z 都是 int 整型变量,且 x=2, y=3, z=4,则下面的表达式中,值为 0 的表达式是( A )。A) x&z B) (!y= =1)&(!z= = 0)C) (xc&b= =c&a|b+c&b+c 的值为( D )。A) 5 B) 8 C) 0 D) 116 在 C 语言中,逻辑值真的表示是用( D )。A) true B) 整型值 0 C) 非另整型值 D) T17 以下不正确的叙述是( C )。A)在 C 程序中,逗号运算的优先级最低B)在 C 程序中,APH 和 aph 是两个不同的变量C)若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值18 以下结果为整型的表达式(设有 int i; char c; float f;)是( D ) 。 A)i+f B)i*c C)c+f D)i+c+f19 设有逗号表达式(a=3*5,a*4),a+15,a 的值为( B )。A)60 B)30 C)15 D)9020 设 Int n=3;则有表达式 n+,n 的结果是( C )。A)2 B)3 C)4 D)51 若在 scanf 函数语句中没有非格式字符作输入数据的间隔,则可用( ACD )。作为输入数据的间隔。A)空格 B)逗号 C)TAB D)回车2 使用 scanf 函数时,在源程序开头( ABC )。A)书写#include stdio.h B)书写#include C)不必写#include D)书写#include scanf.h1C 语言规定标识符只能由字母、数字和小数点三种字符组成。2 C 语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。 对3 C 语言中定义了一个变量,代表内存中的一个地址。 对4 表达式 3.5 + 1/2 + 56%10 的计算结果是 7.5 。5 由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。 对6 设 C 语言中,一个 int 型数据在内存中占 2 个字节,则 int 数据的取值范围为-32768-32769。7 在使用 scanf 函数之前应包含头文件math.h。8 在 scanf(%c%c,&c1,&c2)函数中,当输入为字符 a,b 时,将 a 赋给 c1,将 b 赋给 c2。9 scanf 函数中,如果格式控制串中有普通字符则输入时也要输入该普通字符。10 假定变量 x,y,z 在说明时已赋初值,则 if (x=y+5)0) z=x; 是正确的11printf 函数中的格式字符,既可以是大写形式,也可以是小写形式。12 在 printf 函数中,格式字符%5c可用来输出 5 个字符。13 在 printf 函数中,格式字符 s 的意义是:输出单个字符。14 在 printf 函数中,输出项可以是任意合法的表达式。15 算术运算符的优先级别高于关系运算符16 int a=0,b=1,c=2,x,y;,则!(x=a)&(y=b)&c 的值为 11 若 x 和 n 均是 int 型变量,且 x 的初值为 12,n 的初值为 5,则执行下面表达式后,x 的值为( 0 ) 。x%=(n%=2)2 假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为【 9 】 。3 若 a 是 int 型变量,则执行下面表达式后,a 的值为【2 】 。a=25/3%34 表达式 1/3*3 的计算结果是【 0 】 。5 若 a 是 int 型变量,则计算表达式后 a 的值为【 2 】 。a=25/3%36 在输入字符数据时,若格式控制字符串中没有非格式字符,则认为所有输入的字符均为【 有效 】字符。7 在 scanf 函数中, 【 &a 】表示变量 a 的地址。8 以下程序的运行结果是【 computer, com 】 。main() printf(%s,%5.3s,computer,computer); 9 在 C 语言中,表示逻辑真值用【 非零数 】10 若 a=6,b=4,c=2,则表达式!(a-b)+c-1&b/3+c/2 的值是【 1 】11 设 a=-1,b=0,c=1,则表达式 a|b+c&b=c 的值是【 1 】12 有 int a=3,b=4,c=5,x,y;,则以下表达式的值为【 0 】!(x=a)&(y=b)&c