2022年湖北专升本C语言数据类型、运算符与表达式模拟题
一、单项选择题
1.下面四个选项中,均不是 c 语言关键字的选项是( A )。
A) define IF Type
B) getc char printf
C) include scanfcase
D) while go pow
2.C 语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( C )。
A) 必须为字母
B) 必须为下划线
C) 必须为字母或下划线
D) 可以是字母、数字和下划线中任一种字符
3.下列四个选项中,均是 C 语言关键字的选项是( B)。
A) auto enum include
B) switchtypedefcontinue
C) signed unionscanf
D) ifstructtype
4.下面四个选项中,均是不合法的用户标识符的选项是( C )。
A) AP_0do
B) floatla0_A
C) b-agotoint
D) _123tempint
5.以下有 4 组用户标识符,其中合法的一组是( C)。
A) For-subCase
B) 4dDOSize
C) f2_G3IFabc
D) WORDvoiddefine
6.下列选项中,合法的 C 语言关键字是( D )。
A) VAR
B) cher
C) integer
D) default
7.下面四个选项中,均是合法整型常量的选项是( A)。
A) 160-0xffff011
B) -0xcdf01a0xe
C) –019860120668
D) -0x48a 0x2e50xe
8.下面四个选项中,均是正确的八进制数或十六进制数的选项是( C)。
A) -100x8f-011
B) 0abc-0170xc
C) 010-0x11 0xf1
D) 0a12-0x123-0xa
9.设 C 语言中,一个 int 型数据在内存中占 2 个字节,则 unsigned int 型数据的取值范围为( C)。
A) 0~255
B) 0~32767 C) 0~65535 D) 0~2147483647
10.在 C 语言中,不正确的 int 类型的常数是( A )。
A)32768 B)0 C)037 D)0xAF (11101111=128+64+32+8+4+2+1)
11.下面四个选项中,均是不合法的整型常量的选项是( D)。
A) -0f1-0xffff0011
B) -0xcdf01712456
C) -0189995e2
D) -0x48eg-06803f
12.下面四个选项中,均是不合法的浮点数的选项是( B )。
A) 160.0.12e3
B) 1232e4.2.e5
C) -.18123e40.0
D) -e3.2341e3
13.下面四个选项中,均是合法的浮点数的选项是( B)。
A) +1e+15e-9.403e2
B) -.6012e-4-8e5
C) 123e1.2e-.4+2e-1
D) -e3.8e-45.e-0
14.下列变量定义中合法的是( A)。
A) short _a=1-.le-1;
B) double b=1+5e2.5;
C) long do=0xfdaL;
D) float 2_and=1-e-3;
15. 以下选项中合法的字符常量是( B)。
A) “B”
B)‘\010’
C) 68
D) D
16.以下选项中,非法的字符常量是( C )。
A) '\t'
B) '\17'
C) "n"
D) '\xaa'
17.以下所列的 C 语言常量中,错误的是( B )。
A) 0xFF
B) 1.2e0.5
C) 2L
D)‘\72’
18.在 C 语言中,char 型数据在内存中的存储形式是(D)。
A) 补码
B) 反码
C) 原码
D) ASCII 码
19.下面四个选项中,均是合法转义字符的选项是( A )。
A)‘\’’‘\\’‘\n’
B)‘\’‘\017’‘\”’
C)‘\018’‘\f’‘xab’
D)‘\\0’‘\101’‘xlf’
20.下面四个选项中,均是不合法的转义字符的选项是( B)。
A)‘\””’‘\\’‘\xf’
B)‘\1011’‘\’‘\a’
C)‘\011’‘\f’‘\}’
D)‘\abc’‘\101’‘xlf’
21.下面正确的字符常量是( C)。
A) “c”
B)‘\\’’
C)‘W’
D)‘’
22.下面四个选项中,均是正确的数值常量或字符常量的选项是(D)。
A) 0.00f8.9e‘&’
B)‘a’3.9e-2.51e1‘\’’
C)‘3’ 011 0xff00 0a
D) +0010xabcd2e250.
23.下面不正确的字符串常量是( A)
A)‘abc’
B) ”1212”
C) ”0”
D) ” ”
24.在 C 语言中(以 16 位 PC 机为例),5 种基本数据类型的存储空间长度的排列顺序为( A )。
A) char<int<long int
B) char=int<long int
C) char<int
D) char=int=long int<=float<double< p="">
25.若有说明语句:char c='\72';则变量 c( A )。
A) 包含 1 个字符
B) 包含 2 个字符
C) 包含 3 个字符
D) 说明不合法,c 的值不确定
26.设变量 a 是整型,f 是实型,i 是双精度型,则表达式 10+a+i*f 值的数据类型为( C )。
A) int
B) float
C) double
D) 不确定
27.表达式 18/4*sqrt(4.0)/8 值的数据类型为( C )。
A) int
B) float
C) double
D) 不确定
28.设有说明:char w; int x; float y; double z; 则表达式 w*x+z-y 值的数据类型为( D )。
A) float
B) char
C) int
D) double
29.以下选项中属于 C 语言的数据类型是( C)。
A) 复数型
B) 逻辑型
双精度型
D) 集合型
30.以下程序的输出结果是(A)
main()
{
char c=‘z';
printf(“%c”,c-25);
}
A) a
B) Z
C) z-25
D) y
31.若有定义:int a=7; float x=2.5,y=4.7; 则表达式 x+a%3*(int)(x+y)%2/4 的值是( A)。
A) 2.500000 B) 2.750000
C) 3.500000 D) 0.000000
32.若有代数式 3ae/bc,则不正确的 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
33.设有 int x=11; 则表达式 (x++ * 1/3) 的值是( A)。
A) 3
B) 4
C) 11
D) 12
34.以下变量 x.、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子 x/yz 的 C 语言表达式是( A )。
A) x/y*z
B) x*(1/(y*z))
C) x/y*1/z
D) x/y/z
35.C 语言中运算对象必须是整型的运算符是( A)。
A) %=
B) /
C) =
D) <=
36.下列程序的输出结果是( C)。
main()
{
double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d\n", d*y);
}
A) 3
B) 3.2
C) 0
D) 3.07
37.若 x,i,j 和 k 都是 int 型变量,则计算下面表达式 x=(i=4, j=16, k=32) 后,x 的值为( C )。
A) 4
B) 16
C) 32
D) 52
38.假设所有变量均为整型,则表达式(a=2, b=5, b++, a+b)的值是( B)。
A) 7
B) 8
C) 6
D) 2
39.假定 x 和 y 为 double 型,则表达式 x=2, y=x+3/2 的值是( D)。
A) 3.500000
B) 3
C) 2.000000
D) 3.000000
40.若以下变量均是整型,且 num=sum=7;则计算表达式 sum=num++, sum++, ++num 后 sum 的值为( B)。
A) 7
B) 8
C) 9
D) 10
41.若有定义 int k=7,x=12; ,则以下能使值为 3 的表达式是( D)。
A) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5)
42.设以下变量均为 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)
43.下列程序执行后的输出结果是( A)。
main()
{int x=‘f’;
printf(“%c\n”,‘A’+(x-‘a’+1));}
A) G
B) H
C) I
D) J
44.下列程序执行后的输出结果是( C )。
main()
{ char x=0xFFFF; printf("%d \n",x--); }
A) –32767
B) FFFE
C) -1
D) –32768
45.以下程序的输出结果是( D )。
main()
{ int a=3;
printf("%d\n",(a+=a-=a*a));}
A) -6
B) 12
C) 0
D) –12
46.若变量已正确定义并赋值,下面符合 C 语言语法的表达式是( B)。
A) a:=b+1
B) a=b=c+2
C) int 18.5%3
D) a=a+7=c+b
47.若有以下程序段,
int c1=1, c2=2, c3;
c3=1.0/c2*c1;
则执行后,c3 中的值是( A )。
A) 0
B) 0.5
C) 1
D) 2
48.有如下程序
main( )
{ int y=3, x=3, z=1;
printf(“%d %d\n”, (++x, y++), z+2);
}
运行该程序的输出结果是( D )。
A) 3 4
B) 4 2
C) 4 3
D) 3 3
49.已知大写字母 A 的 ASCII 码为 65,以下程序的运行结果为( A)。
#include
main( )
{
char c1=‘A’,c2=‘Y’;
printf(“%d,%d\n”,c1,c2);
}
A) 65,89
B) A,Y
C) 65,88
D) 65,90
50.以下程序的输出结果是( D )。
#include
main()
{
int a=010,b=10;
printf(“%d,%d\n”,a++,--b);
}
A) 10,10
B) 8,10
C) 10,9
D) 8,9
51.以下程序的输出结果是( B )。
main()
{
int a,b;
a=100;b=200;
printf(“%d\n”,(a,b));
}
A) 100
B) 200
C) 20000
D) 100=200
52.执行语句 y=10;x=y++; 的结果是( C )。
A) x=10,y=10
B) x=11,y=11
C) x=10,y=11 D) x=11,y=10
53.在表示 C 语言的整型变量时,表示“无符号长整型”的符号是( D)。
A) unsigned int
B) unsigned short
C) long int
D) unsigned long
54.在下列形式的常数中,C 程序不允许出现的是( B )。
A) .45
B) ±123
C) 25.6e-2
D) 4e3
55.以下程序的输出结果是(C)。
main()
{ float x=3.6;
int i;
i=(int)x;
printf(“x=%f,i=%d”,x,i);
}
A) x=3.600000,i=4
B) x=3,i=3
C) x=3.600000,i=3
D) x=3.000000,i=3.600000
56.在 C 语言中,要求运算数必须是整型数据的运算符是(B)。
A) /
B) %
C) !
D) <
57.执行下列语句的结果是( D)。
i=3;
printf(“%d,”,++i);
printf(“%d”,i++);
A) 3,3
B) 3,4
C) 4,3
D) 4,4
58.已知 x=3, y=2,则表达式 x*=y+8 的值为( C)。
A) 3
B) 2
C) 30
D) 14
59.执行语句 int i=65536; printf(“%d\n”,i); 的结果是( B)。
A) 65536
B) 0
C) 有语法错误,无输出结果
D) -1
60.在 C 语言中,不正确的 int 类型的常数是(A)。
A) 32768
B) 0
C) 037
D) 0xAF
61.C 语言提供的合法关键字是( D )。
A) swicth
B) chan
C) Case
D) default
62.表示“在使用 x 之前,先使 x 的值加 1”的正确方式是( A)。
A) ++x
B) x++
C) +x
D) +x+
63.设 x 的值为 5,则表达式(++x)+(++x)+(++x)的值是( D )。
A) 24
B) 20
C) 15
D) 21
64.在 C 语言中,合法的字符常量是( B )。
A)‘\084’
B)‘\x43’(十六进制)
C)‘ab’
D) “\0”
65.若已定义 x 和 y 为 double 类型,则表达式:x=1, y=x+3/2 的值是( C )。
A) 1
B) 2
C) 2.0
D) 2.6
66.若 t 为 double 类型,表达式 t=1, t+5, t++的值是( D)。
A) 1
B) 6.0
C) 2.0
D) 1.0
67.若有以下定义和语句,则输出结果是( B )。
char c1=‘b’,c2=‘e’;
printf(“%d,%c\n”,c2-c1,c2-’a’+’A’);
A) 2,M
B) 3,E
C) 2,E
D) 输出项与对应的格式控制不一致,输出结果不确定
68.设有如下的变量定义:
int i=8,a,b;
double x=1.42,y=5.2;
则以下符合 C 语言语法的表达式是(A)。
A) a+=a-=(b=4)*(a=3)
B) x%(-3)
C) a=a*3=2
D) y=float(i)
69.若有以下定义和语句:
int u=010,v=0x10,w=10;
printf(“%d,%d,%d\n”,u,v,w);()
则输出结果是(A)。
A) 8,16,10
B) 10,10,10
C) 8,8,10
D) 8,10,10
二、填空题
1.若 x 和 a 均是 int 型变量,则计算表达式(1)后的 x 值为12,计算表达式(2)后的 x 值为 4。
(1) x=(a=4, 6*2)
(2) x=a=4, 6*2
2.若 a 是 int 型变量,则表达式(a=4*5, a*2), a+6 的值为26。
3.若 b 是 int 型变量,则表达式 b=25/3%3 的值为2。
4.若 s 是 int 型变量,且 s=6 则下面表达式 s%2+(s+1)%2 的值为1。
5.若 a,b 和 c 均是 int 型变量,则计算表达式 a=(b=4)+(c=2)后,a 值为6,b 值为 4,c值为2。
6.若 x 和 n 均是 int 型变量,且 x 和 n 的初值均为 5,则计算表达式 x+=n++后 x 的值为10,n 的值为6。
7.若有定义:int b=7;float a=2.5,c=4.7;则表达式 a+(int)(b/3*(int)(a+c)/2)%4 的值为 5.5。
8 . 若有定义 : int a=2,b=3;float x=3.5,y=2.5; 则 表 达 式 (float)(a+b)/2+(int)x%(int)y 的 值为3.5。
9.若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b 的值为1。
10.若 x 和 n 均是整型变量,且 x 的初值为 12,n 的初值为 5,则计算表达式 x%=(n%=2)后 x 的值为0。
11.以下程序的输出结果是0。
main()
{ unsigned short a=65536; int b;
printf(“%d\n”,b=a);}
12.请写出数学式 a/bc 的 C 语言表达式a/(b*c)。
13.设 a、b、c 为整型数,且 a=2、b=3、c=4,则执行完语句 a*=16+(b++)-(++c)后,a 的值是28。
