⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 练习(一).txt

📁 谭浩强的C语言题集
💻 TXT
📖 第 1 页 / 共 4 页
字号:
C语言概述
一、单项选择题:
1、一个C/C++程序的执行是从(   )
   (A)本程序的main函数开始,到main函数结束。
   (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
   (C)本程序的main函数开始,到本程序文件的最后一个函数结束。
   (D)本程序文件的第一个函数开始,到本程序main函数结束。
2、以下叙述正确的是(   )
   (A)在C/C++程序中,main函数必须位于程序的最前面。
   (B)C/C++程序的每行中只能写一条语句。
   (C)C/C++语言本身没有输入输出语句。
   (D)在对一个C/C++程序进行编译的过程中,可发现注释中的拼写错误。
3、以下叙述不正确的是(   )
   (A)一个C/C++源程序可由一个或多个函数组成。
   (B)一个C/C++源程序必须包含一个main函数。
   (C)C/C++程序的基本组成单位是函数。
   (D)在C/C++程序中,注释说明只能位于一条语句的后面。
4、C/C++语言规定:在一个源程序中,main函数的位置(   )
   (A)必须在最开始。
   (B)必须在系统调用的库函数的后面。
   (C)可以任意。
   (D)必须在最后。
5、一个C/C++程序是由(   )
   (A)一个主程序和若干子程序组成。
   (B)函数组成。
   (C)若干过程组成。
   (D)若干子程序组成。
二、填空题:
6、C/C++源程序的基本单位是(      )。
7、一个C/C++源程序中至少应包括一个(        )。
8、在一个C源程序中,注释部分两侧的分界符分别为(    )和(    )。
9、在C语言中,输入操作是由库函数(         )完成的,输出操作是由库函数(          )完成的。


数据类型、运算符与表达式
一、单选题:
1、在C语言中,5种基本数据类型的存储空间长度的排列顺序为(   )
   (A)char<int<long int<=float<double
   (B)char=int<long int<=float<double
   (C)char<int<long int=float=double
   (D)char=int=long int<=float<double
2、若x、i、j、k都是int型变量,则计算下面表达式后,x的值为(   )
   x=(i=4,j=16,k=32)
   (A) 4       (B) 16      (C) 32      (D) 52
3、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(   )
   (A) 7       (B) 8       (C) 6       (D) 2
4、下列四组选项中,均不是C语言关键字的选项是(   )
   (A) define  (B) getc    (C) include (D) while
       IF          char        scanf       go
       type        printf      case        pow
5、下列四组选项中,均是C语言关键字的选项是(   )
   (A) auto    (B) switch  (C) signed  (D) if
       enum        typedef     union       struct
       include     continue    scanf       type
6、下面四个选项中,均是不合法的用户标识符的选项是(   )
   (A) A       (B) float   (C) b-a     (D) _123
       P_0         la0         goto        temp
       do          _A          int         INT
7、C/C++中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(   )
   (A)必须为字母           (B)必须为下划线
   (C)必须为字母或下划线   (D)可以是字母、数字和下划线中的任一种字符
8、下面四个选项中,均是合法整型常量的选项是(   )
   (A) 160     (B) -0xcdf  (C) -01     (D) -0x48a
       -0xffff     01a         986,012      2e5
       011         0xe         0668         0x
9、下面四个选项中,均是不合法的整型常量的选项是(   )
   (A) --0f1   (B) -0Xcdf  (C) -018    (D) -0x48eg
       -0xffff     017         999          -068
       0011        12,456      5e2          03f
10、下面四个选项中,均是不合法的浮点数的选项是(   )
   (A) 160.    (B) 123     (C) -.18    (D) -e3
       0.12        2e4.2       123e4        .234
       e3          .e5         0.0          1e3
11、下面四个选项中,均是合法的浮点数的选项是(   )
   (A) +1e+1   (B) -.60    (C) 123e    (D) -e3
       5e-9.4      12e-4       1.2e-.4      .8e-4
       03e2        -8e5        +2e-4        5.e-0
12、下面四个选项中,均是合法转义字符的选项是(   )
   (A) '\''    (B) '\'     (C) '\018'  (D) '\\0'
       '\\'        '\017'      '\f'         '\101'
       '\n'        '\"'        'xab'        'x1f'
13、下面四个选项中,均是不合法转义字符的选项是(   )
   (A) '\"'    (B) '\1011' (C) '\011'  (D) '\abc'
       '\\'        '\'         '\f'        '\101'
       '\xf'       '\a'        '\}'        'x1f'
14、下面正确的字符常量是(   )
   (A) "c"     (B) '\\''   (C) 'W'     (D) '\abc'
15、下面四个选项中,均是不正确的八进制数或十六进制数的选项是(   )
   (A) 016     (B) 0abc    (C) 010     (D) 0a12
       0x8f        017         -0x11       7ff
       018         0xa         0x16        -123
16、下面四个选项中,均是正确的八进制数或十六进制数的选项是(   )
   (A) -10     (B) 0abc    (C) 0010    (D) 0a12
       0x8f        -017        -0x11       -0x123
       -011        0xc         0xf1        -0xa
17、下面四个选项中,均是正确的数值常量或字符常量的选项是(   )
   (A) 0.0     (B) "a"     (C) '3'     (D) +001
       0f          3.9E-2.5    011         0xabcd
       8.9e        1e1         0xff00      3e2
       '&'         '\"'        0a          50.
18、下面不正确的字符串常量是(   )
   (A) 'abc'   (B) "12'12" (C) "0"     (D) "  "
19、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是(   )
	代数式				C语言表达式
   (A) (e的(x*x/2)次方)÷(2π的开方)	exp(x*x/2)/sqrt(2*3.14159)
   (B) (ax+(a+x)/4a)/2			1.0/2.0*(a*x+(a+x)/(4*a))
   (C) ((sin x)的2.5次方)的开方		sqrt((pow(sin(x*3.14159/180),2.5))
   (D) x*x-e的5次方			x*x-exp(5.0)
20、若有代数式3ae÷bc,则不正确的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
21、已知各变量的类型说明如下:
	int k,a,b;
	unsigned long w=5;
	double x=1.42;
    则以下不符合C语言语法的表达式是(   )
   (A) x%(-3)              (B) w+=-2
   (C) k=(a=2,b=3,a+b)     (D) a+=a-=(b=4)*(a=3)

22、已知各变量的类型说明如下:
	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) a=a*3=2
   (C) x%(-3)              (D) y=float(i)
23、以下不正确的描述是(   )
   (A) 在C程序中,逗号运算符的优先级最低
   (B) 在C程序中,APH和aph是两个不同的变量
   (C) 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变。
   (D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
24、以下正确的叙述是(   )
   (A) 在C程序中,每行中只能写一条语句
   (B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
   (C) 在C程序中,无论是整数还是实数,都能被准确无误地表示
   (D) 在C程序中,%是只能用于整型数运算的运算符
25、以下符合C语言语法的赋值表达式是(   )
   (A) d=9+3+f=d+9         (B) d=9+e,f=d+9
   (C) d=9+e,e++,d+9       (D) d=9+e++=d+7
26、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为(   )
   (A) D       (B) 68      (C) 不确定的值 (D) C
27、在C语言中,要求运算数必须是整型的运算符是(   )
   (A) /       (B) ++      (C) !=      (D) %
28、若以下变量均是整型,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为(   )
   (A) 7       (B) 8       (C) 9       (D) 10
29、在C语言中,int、char和short三种类型树木在内存中所占用的字节数(   )
   (A) 由用户自己定义      (B) 均为2个字节
   (C) 是任意的            (D) 由所用机器的机器字长决定
30、若有说明语句:char c='\72';则变量c(   )
   (A) 包含一个字符        (B) 包含2个字符
   (C) 包含3个字符         (C) 说明不合法,c的值不确定
31、若有定义:int a=7; float x=2.5, y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是(   )
   (A) 2.500000            (B) 2.750000
   (C) 3.500000            (D) 0.000000
32、sizeof(float)是(   )
   (A) 一个双精度型表达式  (B) 一个整型表达式
   (C) 一种函数调用        (D) 一个不合法的表达式
33、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(   )
   (A) int     (B) float   (C) double  (D) 不确定
34、下面四个选项中,均是非法常量的选项是(   )
   (A) 'as'    (B) '\\'    (C) -0x18   (D) 0xabc
       -0xfff      '\01'       01177       '\0'
       '\0xa'      12,456      0xf         "a"
35、若有代数式:((y的x次方)+㏒y)的开方,则正确的C语言表达式是(   )
   (A) sqrt(fabs(pow(y,x)+log(y)))
   (B) sqrt(abs(pow(y,x)+log(y)))
   (C) sqrt(fabs(pow(x,y)+log(y)))
   (D) sqrt(abs(pow(x,y)+log(y)))
36、若有代数式:|x*x*x+㏒x|,则正确的C语言表达式是(   )
   (A) fabs(x*3+log(x))
   (B) abs(pow(x,3)+log(x))
   (C) abs(pow(x,3.0)+log(x))
   (D) fabs(pow(x,3.0)+log(x))
37、在C语言中,char型数据在内存中的存储形式是(   )
   (A) 补码    (B) 反码    (C) 原码    (D) ASCII码
38、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(   )
   (A) n=(n*100+0.5)/100.0 (B) m=n*100+0.5,n=m/100.0
   (C) n=n*100+0.5/100.0   (D) n=(n/100+0.5)*100.0
39、表达式18/4*sqrt(4.0)/8值的数据类型为(   )
   (A) int     (B) float   (C) double  (D) 不确定
40、设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为(   )
   (A) 0~255              (B) 0~32767
   (C) 0~65535            (D) 0~2147483647
41、设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为(   )
   (A) float   (B) char    (C) int     (D) double
42、若有以下定义,则能使值为3的表达式是(   )
	int k=7,x=12;
   (A) x%=(k%=5)           (B) x%=(k-k%5)
   (C) x%=k-k%5            (D) (x%=k)-(k%=5)
43、设以下变量均为int类型,则值不等于7的表达式是(   )
   (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)
二、填空题
44、在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为________;一个int型数据在内存中所占字节数为________。
45、在C语言中(以16为PC机为例),一个float型数据在内存中所占的字节数为________;一个double型数据在内存中所占字节数为________。
46、若有如下定义,则计算表达式y+=y-=m*=y后的y值是________。
	int m=5,y=2;
47、设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为______。
48、在C语言中的实型变量分为两种类型,他们是________和________。
49、C语言所提供的基本数据类型包括:单精度型、双精度型、________、________和________。
50、若s是int型变量,则下面表达式的值为________。
	s%2+(s+1)%2
51、若a是int型变量,则下面表达式的值为________。
	(a=4*5,a*2),a+6
52、若x和a均是int型变量,则计算表达式(1)后的x值为________,计算表达式(2)后的x值为________。
	(1) x=(a=4,6*2)
	(2) x=a=4,6*2
53、若a、b和c均是int型变量,则计算表达式后,a值为________,b值为________,c值为________。
	a=(b=4)+(c=2)
54、若a是int型变量,且a的初值为6,则计算表达式后a的值为________。
	a+=a-=a*a
55、若a是int型变量,则计算表达式后a的值为________。
	a=25/3%3
56、若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为________,n的值为________。
	x+=n++
57、若有定义:int b=7; float a=2.5,c=4.7; 则下面表达式的值为________。
	a+(int)(b/3*(int)(a+c)/2)%4
58、若有定义:int a=2, b=3; float x=3.5, y=2.5; 则下面表达式的值为________。
	(float)(a+b)/2+(int)x%(int)y
59、若有定义:char c='\010'; 则变量c中包含的字符个数为________。
60、若有定义:int x=3, y=2; float a=2.5, b=3.5; 则下面表达式的值为________。
	(x+y)%2+(int)a/(int)b
61、若x和n均是int型变量,且x的初值为12,n的初值为5,则计算表达式后x的值为________。
	x%=(n%=2)
62、假设所有变量均为整型,则表达式(a=2, b=5, a++, b++, a+b)的值为________。
63、C语言中的标识符只能由三种字符组成,它们是________,________和________。
64、已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为________。
65、把以下多项式写成只含七次乘法运算,其余皆为加、减运算的表达式为________。
	5X^7+3X^6-4X^5+2X^4+X^3-6X^2+X+10
66、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为________。
67、若有定义:int e=1, f=4, g=2; float m=10.5, n=4.0, k; 则计算赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是________。
68、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为________。
69、表达式pow(2.8,sqrt(double(x)))值的数据类型为________。
70、假设m是一个三位数,从左到右用a、b、c表示各位数字,则从左到右各个数字是bac的三位数的表达式是________。


位运算
一、选择题
1、以下运算符中优先级最低的是(   ),优先级最高的是(   )。
   (A) &&      (B) &       (C) ||      (D) |
2、若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是(   )
   (A) sizeof,&=,<<,^      (B) sizeof,<<,^,&=
   (C) ^,<<,sizeof,&=      (D) <<,^,&=,sizeof
3、在C语言中,要求运算数必须是整型的运算符是(   )
   (A) ^       (B) %       (C) !       (D) >
4、在C语言中,要求运算数必须是整型或字符型的运算符是(   )
   (A) &&      (B) &       (C) !       (D) ||
5、sizeof(float)是(   )
   (A) 一种函数调用        (B) 一个不合法的表示形式
   (C) 一个整型表达式      (D) 一个浮点表达式
6、表达式a<b||~c&d的运算顺序是(   )
   (A) ~,&,<,||            (B) ~,||,&,<
   (C) ~,&,||,<            (D) ~,<,&,||
7、以下叙述中不正确的是(   )
   (A) 表达式a&=b等价于a=a&b
   (B) 表达式a|=b等价于a=a|b
   (C) 表达式a!=b等价于a=a!b
   (D) 表达式a^=b等价于a=a^b
8、表达式0x13&0x17的值是(   )
   (A) 0x17    (B) 0x13    (C) 0xf8    (D) 0xec
9、请读程序片段:
	char x=56;
	x=x&056;
	printf("%d,%o\n",x,x);
   以上程序片段的输出结果是(   )
   (A) 56,70   (B) 0,0     (C) 40,50   (D) 62,76
10、若x=2,y=3则x&y的结果是(   )
   (A) 0       (B) 2       (C) 3       (D) 5
11、在执行完以下C语句后,B的值是(   )
	char Z='A';
	int B;
	B=((241&15)&&(Z|'a'));
   (A) 0       (B) 1       (C) TRUE    (D) FALSE
12、表达式0x13|0x17的值是(   )
   (A) 0x13    (B) 0x17    (C) 0xE8    (D) 0xc8
13、若a=1,b=2则a|b的值是(   )
   (A) 0       (B) 1       (C) 2       (D) 3
14、若有以下程序段:
	int x=1,y=2;
	x=x^y;
	y=y^x;
	x=x^y;
    则执行以上语句后x和y的值分别是(   )
   (A) x=1,b=2 (B) x=2,y=2 (C) x=2,y=1 (D) x=1,y=1
15、请读程序片段:
	unsigned t=129;
	t=t^00;
	printf("%d,%o\n",t,t);
    以上程序片段的输出结果是(   )
   (A) 0,0     (B) 129,201 (C) 126,176 (D) 101,145
16、表达式0x13^0x17的值是(   )
   (A) 0x04    (B) 0x13    (C) 0xE8    (D) 0x17
17、请读程序片段:
	int x=20;
	printf("%d\n",~x);
    上面程序片段的输出结果是(   )
   (A) 02      (B) -20     (C) -21     (D) -11
18、表达式~0x13的值是(   )
   (A) 0xFFEC  (B) 0xFF71  (C) 0xFF68  (D) 0xFF17
19、在位运算中,操作数每右移一位,其结果相当于(   )
   (A)操作数乘以2          (B) 操作数除以2
   (C)操作数除以4          (D) 操作数乘以4
20、在位运算中,操作数每左移一位,其结果相当于(   )
   (A)操作数乘以2          (B) 操作数除以2
   (C)操作数除以4          (D) 操作数乘以4
21、设有以下语句:
	char x=3,y=6,z;
	z=x^y<<2;
	则z的二进制值是(   )
   (A) 00010100            (B) 00011011
   (C) 00011100            (D) 00011000
22、请读程序
	struct bit
	{
		unsigned a_bit:2;
		unsigned b_bit:2;
		unsigned c_bit:1;
		unsigned d_bit:1;
		unsigned e_bit:2;
		unsigned word:8;
	};
	void main()
	{
		struct bit *p;
		unsigned int modeword;
		printf("Enter the mode word(HEX): ");
		scanf("%x",&modeword);
		p=(struct bit*) & modeword;
		printf("\n");
		printf("a_bit: %d\n",p->a_bit);
		printf("b_bit: %d\n",p->b_bit);
		printf("c_bit: %d\n",p->c_bit);
		printf("d_bit: %d\n",p->d_bit);
		printf("e_bit: %d\n",p->e_bit);
	}
    若运行时从键盘输入:96〈回车〉
    则以上程序的运行结果是(   )
   (A)a_bit: 1 (B)a_bit: 2 (C)a_bit: 2 (D)a_bit: 1
      b_bit: 2    b_bit: 1    b_bit: 1    b_bit: 2
      c_bit: 0    c_bit: 0    c_bit: 1    c_bit: 2
      d_bit: 1    d_bit: 1    d_bit: 0    d_bit: 0
      e_bit: 2    e_bit: 2    e_bit: 2    e_bit: 1
23、设有以下说明:
	struct packed
	{
		unsigned one:1;
		unsigned two:2;
		unsigned three:3;
		unsigned four:4;
	}data;
    则以下位段数据的引用中不能得到正确数值的是(   )
   (A) data.one=4          (B) data.two=3
   (C) data.three=2        (D) data.four=1
24、设位段的空间分配由右到左,则以下程序的运行结果是(   )
	struct packed_bit
	{
		unsigned a:2;
		unsigned b:3;
		unsigned c:4;
		int i;
	}data;
	void main()
	{
		data.a=8;
		data.b=2;
		printf("%d\n",data.a+data.b);
	}
   (A) 语法错  (B) 2       (C) 5       (D)10
二、填空题
25、在C语言中,& 运算符作为单目运算符时表示的是________运算;作为双目运算符时表示的是________运算。
26、与表达式a&=b等价的另一书写形式是________。
27、与表达式x^=y-2等价的另一书写形式是________。
28、请读程序片段:
	int a=1,b=2;
	if(a&b) printf("***\n");
	else printf("$$$\n");
    以上程序片段的输出结果是________。
29、设有char a,b; 若要通过a&b运算屏蔽掉a中的其它位,只保留第2和第8位(设右起为第1位),则b的二进制数是________。
30、测试char型变量a第六位是否为1的表达式是________(设最右位是第一位)。
31、设二进制数x的值是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是________。
32、请读程序片段:
	int a=-1;
	a=a|0377;
	printf("%d,%o\n",a,a);
    以上程序片段的输出结果是________。
33、设x是一个整数(16bit),若要通过x|y使x低8位置1,高8位不变,则y的八进制数是________。
34、设x=10100011,若要通过x^y使x的高4位取反,低4位不变,则y的二进制数是________。
35、请读程序片段:
	int m=20,n=025;
	if(m^n) printf("mmm\n");
	else printf("nnn\n");
    以上程序片段的输出结果是________。
36、请读程序片段:
	int x=1;
	printf("%d\n",~x);
    以上程序片段的输出结果是________。
37、以下程序的运行结果是________。
	void main()
	{
		unsigned a,b;
		a=0x9a;
		b=~a;
		printf("a: %x\nb: %x\n",a,b);
	}
38、以下程序的运行结果是________。
	void main()
	{
		char a=-8; unsigned char b=248;
		printf("%d,%d",a>>2,b>>2);
	}
39、以下程序的运行结果是________。
	void main()
	{
		unsigned char a,b;
		a=0x1b;
		printf("0x%x\n",b=a<<2);
	}
40、请读程序片段:
	unsigned a=16;
	printf("%d,%d,%d\n",a>>2,a=a>>2,a);
    以上程序片段的输出结果是________。
41、若x=0123,则表达式(5+(int)(x))&(~2)的值是________。
42、下面程序的运行结果是________。
	void main()
	{
		unsigned char a,b;
		a=0x9d;
		b=0xa5;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -