C语言的语法基础

习  题

 

一、 选择题(每题只有一个正确答案)

2.1  C语言的简单数据类型包括【1】。

【1】 A)整型、实型、逻辑型                       B)整型、实型、字符型、逻辑型

C)整型、字符型、逻辑型                    D)整型、实型、字符型

2.2  以下不属于C语言关键字的是【2】。

【2】 A)default        B)unsigned           C)real         D)typedef

2.3 在C语言中,合法的字符常量是【3】。

【3】 A)'\\'            B)"Hello!"                       C)'Hello'         D)a

2.4 以下四组中都能正确作为C语言程序标识符的是【4】组。

【4】 A)print          B)sort_3_float                C)pow                  D)book->name

if                PI                  5_abc           A#B

2.5 以下C语言合法的数据类型关键字是【5】。

【5】 A)Double        B)unsigned        C)integer        D)Char

2.6 以在C语言中,变量所分配的内存空间大小【6】。

【6】 A)均为一个字节 B)由用户自己定义           C)由变量的类型决定   D)是任意的

2.7 C语言的字符型数据在内存中的形式存储是【7】。

【7】 A)原码          B)补码             C)反码        D)ASCII码

2.8 C语言的整型数据在内存中的存储形式是【8】。

【8】 A)原码          B)补码                C)反码          D)ASCII码

2.9 C语言中关于用户变量定义与使用的不正确描述是【9】。

【9】 A)变量按所定义的类型存放数据                B)系统在编译时为变量分配相应的存储单元

C)变量应先定义后使用                         D)通过类型转换可更改变量存储单元的大小

2.10 设int类型的数据长度为2个字节,则unsigned  int类型数据的取值范围是【10】。

【10】 A)0至255       B)0至65535     C)-32768至32767  D)-128至127

2.11 C语言中整数-8在内存中存储的二进制形式是【11】。

【11】 A)1111111111111000                B)1000000000001000

C)0000000000001000                          D)1111111111110111

2.12 下面关于C语言变量的叙述,错误的是【12】。

【12】 A)变量名必须由字母或下划线开1头    B)程序中的变量必须被使用之前定义

C)不同基本类型的变量之间可以混合运算 D)在定义变量的同时不能对变量赋初值

2.13 在C语言中,合法的整型常数是【13】。

【13】 A)-0x123        B)3.14159               C)01001101b    D)6.7e10

2.14 在C语言中,合法的字符常量是【14】。

【14】 A)'\101'               B)"K"                 C)'abc'          D)K

2.15 以下整数值中,不正确的八进制或十六进制数是【15】。

【15】 A) 0x16         B)-016            C) 081                 D) 0x3A

2.16 下列各变量均为整型,选项中不正确的C语言赋值语句是【16】。

【16】 A)i += ++i;               B) i = j == k;         C)i = j += i;                     D) i = j + 1 = k;

2.17 设有语句int x=2, y=3; 则表达式x=(y==3)的值为【17】。

【17】 A)0                      B)1                        C)2                D)3

2.18 设有定义:char c; float f; int i; unsiged u; double d;  下列各表达式类型分别为【18】。

① u+1       ② d!= f&&(i+1)     ③ 4.0*i+c

【18】 A)double, double, double                         B)int, double, char

C)unsiged, int, double                       D)unsiged, unsined, int

2.19 数学关系式 x≤y<≤z 可用C语言的表达式表示为【19】。

【19】 A)(x<=y)&&(y<=z)   B)(x<=y)and(y<=z)   C)(x<=y<=z)     D)(x<=y)&(y<z)

2.20 下列c为字符型变量,当且仅当c的值为小写字母时,表达式【20】为真。

【20】 A)'a'<=c<='z'     B)(c>=a)&&(c<=z)            C)('a'<=c)&&('z'>=c)  D)(c>='a')||(c<='z')

2.21 若表达式!x的值为1,则表达式【21】的值为1。

【21】 A)x==0         B)x==1                           C)x=!1                       D)x!=0

2.22 下列程序段的输出结果为【22】。

int k=11, k1=-11;

printf("k=%d, k=%o, k=%x\n", k, k, k);

printf("k1=%d, k1=%o, k1=%x\n", k1, k1, k1);

【22】 A)k=11, k=13, k=b                               B)k=11, k=11, k=b

k1=-11, k1=177765, k1=fff5                 k1=-11, k1=-13, k1=-b

C)k=11, k=11, k=11                             D)k=11, k=13, k=b

k1=-11, k1=fff5, k1=b                                 k1=-11, k1=-13, k1=b

2.23 若 w, x, y, z 均为int型变量,要使以下语句的输出为1234+123+12+1,正确输入形式应当是【23】。

scanf("%4d+%3d+%2d+%1d", &x, &y, &z, &w);

printf("%4d+%3d+%2d+%1d\n", x, y, z, w);

【23】 A)123412312<回车>                         B)1234123412341234<回车>

C)1234+1234+1234+1234<回车>               D)1234+123+12+1<回车>

2.24 下列程序段的输出结果为【24】。

int i=-0123;

printf("i=%05d,i=%-5d,i=%u,i=%#X\n", i, i, i, i);

【24】 A)i=-0083,i=-83  ,i=83,i=0XFFAD                    B)i=-0083,i=-83  ,i=65453,i=0Xffad

C)i=-0083,i=-83  ,i=65453,i=0XFFAD     D)i=-0083,i=-83  ,i=-83,i=ffad

2.25 C语言的运算符按运算对象的个数可以分为【25】。

【25】A)单目运算符一种                            B)单目和双目运算符

C)单目、双目和三目运算符                 D)单目、双目、三目和四目运算符

2.26 以下程序运行结果是:【26】。

main()

{ int x=1, y=2, z;

z = x>y ? ++x : ++y;

printf("%d,%d,%d\n", x, y, z);

}

【26】A)1,2,3           B)1,3,3                       C)2,3,3                      D)2,2,3

2.27 运行以下程序段时编译时出错,其原因是【27】。

char c1 = 'a',  c2 = '123';

printf( "%c,%d\n", c1, c2 );

【27】 A)字符串要用"123"表示                 B)'123'只能赋值给字符数组

C)c2是字符变量,不能用%d格式输出    D)c2是字符变量,只能赋以字符常量

2.28 若定义 float a; 现要从键盘输入a数据,其整数位为3位,小数位为2位, 则选用【28】。

【28】 A)scanf( "%6f", &a );                                  B)scanf( "%5.2f", a );

C)scanf( "%6.2f", &a );                         D)scanf( "%f", a );

2.29若定义double t; 则表达式 t=1, t+5, ++t 的值为【29】。

【29】 A)1.0           B)2.0                 C)6.0                  D)7.0

2.30 已知各变量的类型说明如下,则C语言中错误的表达式是【30】。

int k, a, b;

unsigned long w = 5;

double x = 1.42;

【30】 A)x % (-3)      B)w += 2                   C)k = ( a=2, b=3, a+b)   D)a += a -= ( b=4*(a=3) )

2.31 以下程序段的运行结果是【31】。

unsigned a = 0356, b;

b = ~a | a << 2 + 1  ;

printf("%x\n", b);

【31】 A)ffba           B)ff71                      C)fff8                    D)fc02

2.32 以下程序段的运行结果是【32】。

int a=0, b=0, c=0;

if ( a  &&  ++b ) c++;

printf("%d,%d\n", b, c);

【32】A)1,1                     B)1,0                              C)0,0                  D)0,1

2.33 在以下运算符中,优先级最高的运算符是【33】。

【33】A)<=              B)+                     C)!=                  D)||

2.34 若 int a,b,c; 则表达式 (a=2, b=5, b++, a+b) 的值是【34】

【34】A)7                     B)8                        C)6                    D)2

2.35 若 int a=1, b=2, m=2, n=2; 执行 (m=a>b) && ++n; 后 n 的值是【35】。

【35】A)1                 B)2                      C)3                 D)4

2.36 已知各变量的类型如下,则以下符合C语言语法的表达式是【36】。

int i=8, a, b;

double x=1.42, y=5.2;

【36】A)a+=a-=(b=4)*(a=3)   B)a=a*3=2          C)x%(-3)            D)y=float(i)

2.37 若有以下程序段,则 z 的二进制值是【37】。

int x=3, y=6, z;

z = x ^ y << 2;

【37】A)00011011          B)00010100                      C)00011000             D)00000110

2.38 在C语言中,判定逻辑值为“真”的最正确叙述是:【38】。

【38】A)1             B)大于0的数                  C)非0整数                        D)非0的数

Tags:

发表评论