C语言基础一:
1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) while IF char scanf go type printf case pow 2.下面四个选项中,均是合法整型常量的选项是( A )。 A)160 B)-0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x <<02>>B>>2
3.下面四个选项中,均是不合法的转义符的选项是( B )。 A) '\\\ '\\\\' '\\' '\\f' '\\101' 'xf' '\\A' '\\}' 'x1f' 4.下面不正确的字符串常量是( A )。
A)'abc' B)\5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT 6.C语言提供的合法关键字是( D )。 A) swith B) cher C) Case ). Default
7.下列标识符组中,合法的用户标识符为 A A)_0123与ssiped B)del-word与signed C)list与*jer D) keep%与wind
8.在C语言中,逻辑值\真\的表示是用( C )。 A) true B) 整型值0 C)非另整型值 D) T 9若有以下定义 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)4
11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。
A)D B)68 C)不确定的值 D)C 12逻辑运算符两侧运算对象的数据类型是 ( D )。 A) 只是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何合法的类型数据 13TURBO C中int类型变量所占字节数是( B )。 A)1 B)2 C)3 D)4 14在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<='z' B) (c1>=A. &&(c1<='z') C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z') 17 已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42
则以下不符合C语言语法的表达式是( A )。 A)x%(-3) B)w+=-2
C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)*(a=3)
若t为double类型,表达式t=1,t+5,t++的值是( D )。 A)1 B)6.0 C)2.0 D)1.0
设n=10,i=4,则赋值运算 n%=i+1执行后,n的值是( A ). A) 0 B) 3 C) 2 D) 1
设Int n=3;则有表达式++n,n的结果是( C )。 A)2 B)3 C)4 D)5
用十进制形式输入有符号整数时,在scanf函数语句里格式字符为( AB )。 A)d B)i C)n D)u 在scanf函数语句中可用的修饰符有( ABCD )。 A)*
B)h C)l D)宽度
1数据是操作的对象,操作的结果会改变数据的状况。 对 2字符型变量用来存放字符常量,注意只能放2个字符。 错 3C语言中可以把一个字符串赋给一个字符变量。 错
4在 C语言中的实型变量分为两种类型,它们是 float(实型)和double(双精度实型)。 错
5在C语言中,要求参加运算的数必须是整数的运算符是% . 对
6若有以下定义,则执行下面表达式y+=y-=m*=y后,y的值为-6。int m=5,y=2; 对7输入语句的格式为: scanf(\是正确的。 对
8在scanf(\函数中,可以使用一个或多个空格作为两个输入数之间的间隔。 错
9getchar函数的功能是接收从键盘输入的一串字符。 错 10在变量说明中给变量赋初值的方法是:int a=b=c=10; 错
12printf函数是一个标准库函数,它的函数原型在头文件\中。 对 13printf函数称为格式输入函数,它的函数原型在头文件\中。 错 14在printf函数中,不同系统对输出表列的求值顺序不一定相同,TC是按从右到左进行的。 对
15若int x=3; printf(\则系统会报错,没有任何结果。 错 16逻辑运算符的优先级别高于算术运算符 错 1在C语言中,表示逻辑\真\值用【 1 】.
2表达式pow(2.8,sqrt(double(x)))值的数据类型为( doubt )。 3假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是【 8 】。 4若x是int型变量,则执行下面表达式后,x的值为【 12 】。x=(a=4,6*2) 5若k为 int整型变量且赋值7,请写出赋值表达式 k *= k + 3的运算结果【70 】。6scanf函数是一个标准库函数,它的函数原型在头文件【 stdio.h 】中。
7getchar函数可以接收【 单 】个字符,输入数字也按字符处理。
8在语句中,给变量赋值时,赋值语句必须以【 分号 】结尾。 9当a=3,b=2,c=1时,表达式f=a>b>c 的值是【 0 】
10设x,y,z均为int型变量,请写出描述\中有一个为负数\的表达式【 x<0&&y>=0||y<0&&x>=0 】
11若a=6,b=4,c=3,则表达式 a&&b||b-c的值是【1 】
12设x=3,y=-4,z=5,则表达式!(x>y)+(y!=z)||(x+y)&&(y=z)的值是【 1 】 基础二
1下面四个选项中,均是非法常量的选项是( A )。
A)'as' B)'\\\\' C)-0x18 D)0xabc -0fff '\\01' 01177 '\\0' '\\0a' 12,456 0xf \2下面四个选项中,均是不合法整型常量的选项是( D )。 A)-0f1 B)-0xcdf C) -018 D)-0x48eg -0xffff 017 999 -068 0011 12,456 5e2 03f 3下面正确的字符常量是( C )。
A) \4以下每个选项都代表一个常量,其中正确的整型常量是( B )。 A)1.2 B)-20 C)1,000 D)4 5 6 5以下选项中不合法的用户标识符是( C )。
A)_123 B)Printf C)A$ D)Dim 6在下列C语言程序中,可以用做变量名的是( B )。 A) 1 B) a1 C) int D) *p
7C语言提供的合法数据关键字是( A )。 A) float B) Sagned C) Integer D) Char
8以下符号中不能用作用户标识符的符号是( B )。 A)_256 B)void C)scanf D)Struct 9若k为int型变量,则以下语句( C )。 k=8567;
printf(\
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<='z' B) (c1>=A. &&(c1<='z') C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z') 13以下叙述中正确的是( B )。
A.a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值
B.在赋值表达式中,赋值号右边即可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3 14表达式18/4*sqrt (4.0)/8值的数据类型为( C )。 A)int B)float C)double D)不确定 15下列运算符中,不属于关系运算符的是( C )。 A) < B) > = C) ! D) ! =
16若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是 ( C )。
A) A%2= =1 B) !(A%2= =0) C) !(A%2) D) A%2 17已知各变量的类型说明如下: 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=2 C)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+b 19逗号表达式(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)5
1用小数或指数形式输入实数时,在scanf函数语句里格式字符为( BCD )。 A)i B)f C)e D)g 2可以使用( CD )输入字符型数据。
A)putchar(c); B)getchar(c); C)getchar(); D)scanf(\
1C语言中数据有常量与变量之分。 2一般一个字符变量在内存中占一个字节。
3C语言规定,可以在定义变量时,同时使变量初始化。
4把k1、k2定义成基本整型变量,并赋初值0的定义语句是int k1=k2=0; 。错 5如果i的原值为3,则:j = ++ i,j的值为3。 错 6凡是表达式都有一个值。
7输入语句的格式为:scanf(\是正确的。 错
8在scanf(\,%*d,%d\函数中,当输入为1,2,3时,将1赋给a,将2赋给b。 错
9getchar函数的功能是接收从键盘输入的一个整数。 错
10假定变量a,b,c在说明时已赋初值,则 if ((a=b;)>0) c=a;是正确的。 错 11
12printf函数是一个标准库函数,它的函数原型在头文件\中。 错 13在printf函数中,格式字符d的意义是:以十进制形式输出带符号整数。 14 在printf函数中,输出表列的各输出项之间可用冒号分隔。 错 15若int x=3; printf(\则系统不会报错,会输出x的地址。 16int a=0,b=1,c=2;则表达式a||b+c&&b==c的值为0
1若有以下定义: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)b
3若a是int型变量、且a的初值为6,则执行下面表达式后,a的值为【 60 】。a+=a-=a*a
4若x是int型变量,则执行下面表达式后,x的值为【 4 】。x=a=4,6*2 5若a是int型变量,且a的初值为6,则计算表达式后a的值为【 60 】。a+=a-=a*a 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的6scanf函数的地址表列中给出各变量的地址,地址是由【 地址运算符\】后跟变量名组成的。
7使用getchar函数接收字符,若输入多于一个字符时,只接收第【 一 】个字符。
8 C语言的格式输出函数是【 printf() 】。 9当a=5,b=4,c=2时,表达式a>b!=c 的值是【 1 】
10已知A=7.5,B=2,C=3.6,表达式A>B&&C>A || AB的值是【 0 】 11若a=3,b=2,c=1,则表达式a-b 1下面四个选项中,均是不合法的用户标识符的选项是( C )。 A) A B) float C) b-a D) _123 p_0 lao goto temp do _A int INT 2下面四个选项中,均是不合法浮点数的选项是( B )。 A) 160. B) 123 C) -018 D) -e3 0.12 2e4.2 123e4 .234 e3 .e5 0.0 1e3 3下面四个选项中,均是不正确的八进制或十六进制数的选项是( D )。 A)016 B)0abc C)010 D)0a12 0x8f 017 -0x11 7ff 018 0xa 0x16 -123 4以下每个选项都代表一个常量,其中不正确的实型常量是( B )。 A)2.607E-1 B)0.8103e 2 C)-77.77 D)45.6e-2 5可用作用户标识符的一组标识符是( B )。 A)void B)a3_b3 C)For D)2a define _xyz -abc DO WORD IF Case sigeof 6下列标识符组中,合法的用户标识符为( B )。 A) PAd与p#d B) Scanf 与a10 C) void与max D) A*与temp 7( B )是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 8以下选项中正确的常量是( B )。 A) 012 B) -20 C) 1,000 D) 4 5 6 9现已定义整型变量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 )。 A) 'x'&&'z' B) (!y= =1)&&(!z= = 0) C) (x A) 在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示 B) 若在定义语句double a,b;之后,因为变量a,b已正确定义,因此立刻执行这样的表达式:a=b+9.381是正确的 C) 在C程序中,常量、变量、函数调用,都是表达式的一种 D) 在main函数中,变量一经定义,系统将自动赋予初始值 14设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( C )。 A) float B) char C) int D) double 15设a=2,b=3,c=4,则表达式 a+b>c&&b= =c&&a||b+c&&b+c的值为( D )。 A) 5 B) 8 C) 0 D) 1 16在C语言中,逻辑值\真\的表示是用( D )。 A) true B) 整型值0 C) 非另整型值 D) T 17以下不正确的叙述是( 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+f 19设有逗号表达式(a=3*5,a*4),a+15,a的值为( B )。 A)60 B)30 C)15 D)90 20设Int n=3;则有表达式n++,n的结果是( C )。 A)2 B)3 C)4 D)5 1若在scanf函数语句中没有非格式字符作输入数据的间隔,则可用( ACD )。 作为输入数据的间隔。 A)空格 B)逗号 C)TAB D)回车 2使用scanf函数时,在源程序开头( ABC )。 A)书写#include \B)书写#include 2 C语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。 对 3 C语言中定义了一个变量,代表内存中的一个地址。 对 4表达式3.5 + 1/2 + 56的计算结果是7.5 。 5 由赋值运算符将一个变量和一个表达式连接起来的式子称为\赋值表达式\。 对 6设C语言中,一个int型数据在内存中占2个字节,则int数据的取值范围为-32768-32769。 7在使用scanf函数之前应包含头文件\。 8在scanf(\函数中,当输入为字符a,b时,将a赋给c1,将b赋给c2。 9 scanf函数中,如果格式控制串中有普通字符则输入时也要输入该普通字符。 10 假定变量x,y,z在说明时已赋初值,则 if ((x=y+5)>0) z=x; 是正确的 11printf函数中的格式字符,既可以是大写形式,也可以是小写形式。 12在printf函数中,格式字符\可用来输出5个字符。 13在printf函数中,格式字符s的意义是:输出单个字符。 14 在printf函数中,输出项可以是任意合法的表达式。 15 算术运算符的优先级别高于关系运算符 16 int a=0,b=1,c=2,x,y;,则!(x=a)&&(y=b)&&c的值为1 1若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后,个字节,下8列程序的输出结果是( )。 main() { int k=-1; printf(\} A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535 9设已定义x为double类型变量 x=213.82631; printf(\则以上语句( )。 x的值为( 0 )。x%=(n%=2) 2假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为【 9 】。 3若a是int型变量,则执行下面表达式后,a的值为【2 】。a=25/3%3 4表达式1/3*3的计算结果是【 0 】。 5若a是int型变量,则计算表达式后a的值为【 2 】。a=25/3%3 6在输入字符数据时,若\格式控制字符串\中没有非格式字符,则认为所有输入的字符均为【 有效 】字符。 7在scanf函数中,【 &a 】表示变量a的地址。 8以下程序的运行结果是【 computer, com 】。 main() { printf(\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 基础四 1以下符号中不能用作用户标识符的符号是( )。 A)_256 B)void C)scanf D)Struct 2下面四个选项中,均是合法浮点数的选项是( )。 A) +1e+1 B) -.60 C) 123e D) -e3 5e-9.4 12e-4 1.2e-.4 .8e-4 03e2 -8e5 +2e-1 5.e-0 3下面四个选项中,均是正确的八进制或十六进制数的选项是( )。 A) -1a B)0abc C)0010 D)0a12 0x8f -017 0x11 -0x123 -011 0xc 0xf1 -0xa 4以下选项中,为C语言合法的关键字是( )。 A)swicth B)cher C)Case D)default 5C语言提供的合法的数据类型关键字是( )。 A)Double B)short C)integer D)Char 6下列标识符组中,合法的用户标识符为( )。 A)b-b与abc B)CCP与float C)hiy与 7 属于合法的C 语言长整型常量的是( )。 A)5876273 B)0L C)2E10 D)(Long)5876273若int类型数据占两 A)输出格式描述符的域宽不够,不能输出 B)输出为21.38e+01 C)输出为2.14e+02 D)输出为-2.14e2 10执行x=5>1+2&&2||2*4<4 - !0后,X的值为( )。 A) -1 B) 0 C) +1 D) 5 11 设 ch 是字符变量,其值为 A,且有下面的表达式 ch=!(ch>='A'&&ch<='z')?ch:(ch+32)则表达式的值是 ( ) A) A B) a C) 2 D) z 12设ch是char型变量,其值为Z,且有下面的表达式,其值为( )。 ch=(ch>='A'&&ch<='Z')?(ch+32):ch A) A B) a C) Z D) z 13以下的变量定义中,合法的是( )。 A)float 3_four = 3.4 ; B)int _abc_= 2 ; C)double a = 1 + 4e2.0 D)short do =15; 14若有int k = 11;则表达式(k++ * 1/3)的值是( )。 A)0 B)3 C)11 D)12 15逻辑运算符两侧运算对象的数据类型是 ( )。 A) 只是0或1 B)只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型数据 16下列表达式的值,那一个等于0 ( )。 A) 5%6 B) 5/6 C) 5/6.0 D) 5 - 6 17以下正确的叙述是( )。 A)在C程序中,每行只能写一条语句 B)若 a 是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误地表示 D)在C程序中,%是只能用于整数运算的运算符 18以下不正确的语句(设有int p,q)是( )。 A)p*=3; B)p/=q; C)p+=3; D)p&&=q; 19如果a=1,b=2,c=3,d=4,则条件表达式a 20设Int n=2;则++n+1= =4的结果是( )。 A)true B)false C)1 D)0 1若输入4位整数到整型变量a中,可用( )。 A)scanf(\B)scanf(\C)scanf(\ D)scanf(\ 2对于scanf(\设a为整型变量,输入5,其输出可为( )。 A)a=5 B)5 C)a= 5 D)a=a=5 1在C语言中,要求对所有用到的变量先定义,然后才能使用。 2C语言中,字符数据与整型数据可以互相赋值。 3C实型变量分为单精度和双精度两种。 4a1、a2定义成单精度实型变量,并赋初值1的定义语句是float a1=1; a2=1; 。 5C语言中逗号运算符又称为\顺序求值运算符\。 6C提供的三种逻辑运算符是 !, &&, >= . 7在使用scanf函数之前可以不包含头文件\。 8在scanf(\函数中,输入123456789,只把123456赋予变量i 。 9a=b=c=d=10;是一个合法的赋值语句。 10C语言的格式输出函数是scanf(). 12使用printf函数时,格式控制字符串和各输出项应一一对应。 13在printf函数中,格式字符f的意义是:以小数形式输出单精度实数。 14在printf函数中,转义字符\\b的作用是退格。 15算术运算符的优先级别高于逻辑运算符 16int a=1,b=0,c=1;,则!(a+b)+c-0&&b+c/2的值为1 1经过下述赋值后,变量x的数据类型是( )。 int x=2; double y; y=(int)(float)x; 2已知字母a的ASCII码的十进制代码为97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【 】。 3若s是int型变量,且s=6,则下面表达式的值为【 】。 s%2+(s+1)%2 4表达式1.0/2*3的计算结果是【 】。 5当a=3,b=2,c=1时,表达式f=a>b>c的值是【 】. 6getchar函数是【 】函数。 7赋值语句是由赋值表达式加上【 】构成的。 8在TC中,printf()函数输出表列的求值顺序是【 】。 9设y为int型变量,请写出描述\是奇数\的表达式【 】 10若a=2,b=4,则表达式!(x=a)|| (y=b)&&0的值是【 】 11条件\或x<-3\的c语言表达式是【 】 12有int a=3,b=4,c=5;,则以下表达式的值为【 】 !(a+b)+c-1&&b+c/2 基础五 1C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。 A)必须为大写 B)必须为下划线 C)必须为字母或下划线 D)可以是字母、数字和下划线中的任一种字符 2下面四个选项,均是合法转义字符的选项是( )。 A) '\\'' B) '\\' C)'\\018' D) '\\\\0'' '\\\\' '\\017' '\\f' '\\101' '\\n' '\\\ 3下面四个选项中,均是正确的数值常量或字符常量的选项是( )。 A)0.0 B)\ 0f 3.9E-2.5 011 0xabcd 8.9e 1e1 0xFF00 2e2 '&' '\\\4以下符号中不能用作用户标识符的是( )。 A)IF B)Switch C)gets D)case 5在C语言中,下列哪个字符为合法的字符常量( )。 A)'\\084′ B)'\\x43′ C)'ab′ D)'\\0′ 6下列四个选项中,均是C语言关健字的选项是( )。 A) auto B) switch C) signed D) if enum typedef union struct include continue scanf type 7不合法的常量是( )。 A)'\\2' B)'\8若a为整型变量,则以下语句( )。 a=-2L; printf(\ A)赋值不合法 B)输出值为-2 C)输出为不确定值 D)输出值为2 9已定义x为float型变量 x=213.82631; printf(\则以上语句 A)输出格式描述符的域宽不够,不能输出 B)输出为213.83 C)输出为213.82 D)输出为-213.82 10用getchar函数可以从键盘读入一个( ) A) 整型变量表达式值 B) 实型变量值 C)字符串 D) 字符或字符型变量值 11已知int x,y,z;执行语句x=(y=(z=10)+5)-5;后x、y、z的值是( )。A) x=10 B) x=10 C) x=10 D) x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=10 12 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是 ( )。A) 552 B) 144 C) 264 D) -264 13设x为int型变量,则执行以下语句段后,x的值为( )。 A)10 B)20 C)40 D)30 x = 10 ; x += x -= x - x; 14若有定义,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 15下列运算符中优先级最高的是 ( )。 A) < B) + C) && D) != 16设以下变量均为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) 17以下符合C语言语法的,赋值表达式是( )。 A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e,e++,d+9 D) d=9+e++=d+7 18以下使i的运算结果为4的表达式是( )。 A) int i=0,j=0; (i=3,(j++)+i); B) int i=1,j=0; j=i=((i=3)*2); C) int i=0,j=1; (j= =1)?(i=1):(i=3); D) int i=1,j=1; i+=j+=2; 19设Int n=3;则++n的结果是( )。 A)2 B)3 C)4 D)5 20设Int n=2;则有表达式++n+1= =4,n的结果是( )。 A)1 B)2 C)3 D)4 1下列能正确输入字符数组a 的语句是( ) A)scanf(\ B)scanf(\ C)scanf(\ D)循环执行scanf(\ 2在输入时,字符变量的值不用空格间隔,其输入函数可为( )。 A)scanf(\)scanf(\C)scanf(\)循环执行getchar() 1C的字符常量是用双引号括起来的一个字符。 2字符串常量是一对单引号括起来的字符序列。 3设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768-+32767。 4在C语言中的实型变量分为两种类型,它们是float和double。 5 若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为3.500000。 (float)(a+b)/2+(int)x%(int)y 6输入语句的格式为:scanf(\是正确的。 7getchar()函数得到的字符可以不赋给任何变量,而作为表达式的一部分。 8scanf函数中无精度控制。 9a+==a=2; 是一个合法的赋值语句,赋值后a的值为:2。 10在TC中,printf()函数输出表列的求值顺序是从右到左。 11在printf函数中,\表示按十进制正整数输出。 12printf是C语言的输出语句。 13在printf函数中,格式字符c的意义是:输出单个字符。 14在printf函数中,不能使用转义字符。 15关系运算符的优先级别高于逻辑运算符 16C语言中没有逻辑型数据 1表达式8/4*(int)2.5/(int(1.25*(3.7+2.3))值的数据类型为( )。 2若x、i、j和k都是int型变量,则计算下面表达式后,x的值为【 】。 x=(i=4,j=16,k=32) 3若a是int型变量,则下面表达式的值为【 】。 (a=4*5,a*2),a+6 4若k为 int 整型变量且赋值7,x为double型变量且赋值8.4,赋值表达式x = k的运算结果是【 】。 5若a=1, b=4, c=3, 则表达式 !(a 7在变量说明中给同类变量赋初值时,各变量之间用【 】隔开。 8以下程序的运行结果是【 】。 main() {int i=5; printf(\ 9设x,y,z均为int型变量,请写出描述\或y中有一个小于z\的表达式【 】 10若a=1,b=4,c=3,则表达式 !(a 11有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为【 】 12若a=1,b=2,则表达式a C语言(分支和循环结构)一 1.以下程序输出结果是( ) main() { int m=5; if(m++>5) printf(\else printf(\A)7 B)6 C)5 D)4 2以下程序的输出结果为( ) # include { int i=0, j=0, a=6; if ((++i>0)&&(++j>0)) a++; printf (\ A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=7 3有如下程序 main() { int a=2,b=-1,c=2; if(a 该程序的输出结果是( ) A) 0 B) 1 C) 2 D) 3 4若i为int型,且有程序如下,则输出结果是( ) i=111; if(i%3==0) printf(\ printf(\ A) #### B) **** C) ####**** D) 无输出结果 5若运行时x=12,则运行结果为( ) {int x, y; scanf(\ y=x>12 ? x+10:x-12; printf(\ A) 0 B) 22 C) 12 D) 10 6以下程序的输出结果是( ) main() { int i=0, j=0, k=6; if ((++i>0)||(++j>0)) k++; printf(\} A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7 7若变量都已正确说明,则以下程序段输出为( ) int a=1,b=2,c=3; if(a>b) a=b; b=c; c=a; printf(\A)a=1 b=2 c=1 B)a=1 b=2 c=3 C)a=1 b=3 c=1 D)a=2 b=3 c=2 8当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( ) if(a A) 1 B)2 C)3 D)6 9以下不正确的语句为( ) A)if(x>y); B)if(x==y)&&(x!=0)x+=y; C)if(x!=y)scanf(\,&x);else scanf(\,&y); D)if(x for (; (i=getchar ())!='\\n';) {switch (i-'a') {case 0: putchar (i); case 1: putchar (i+1);break; case 2: putchar (i+2); case 3: break; default: putchar (i);break; } } printf (\ } 输入下列数据后,程序的输出结果是( ) abcde A) abcde B) abcee C) abbde D) abccdd 11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( ) A) switch(a+b); B) switch(a*a+b*b) { case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case 1 :y=a-b; break { case 2: x=a*d; break case c1:case 4:x=a+b;break; default:x=a+b; case c2:case 11:y=a-b;break; } default:y=a*b;break; } 12写出下面程序输出结果( ) {int x=1, y=0, a=0, b=0; switch(x) {case 1: switch(y) {case 0: a++; case 1: b++; } case 2: a++; b++; } printf(\} A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式 均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。 A) < B) ++ C) ; D) , 14下面有关for循环的正确描述是( )。 A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句,后判定表达式 C) 在for循环中,不能用break语句跳出循环体 D) for循环体语句中,可以包含多条语句,但要用花括号括起来 15以下程序段( )。 x=-1; do { x=x*x;} while(!x) A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误 16如下的数组中,数组array占用的内存空间是( )个字节。 char array[]={'c','h','i','n','a'}; A. 1 B. 5 C. 6 D. 不确定 17设有程序段 int k=10; while(k=0) k=k-1; 则下面描述正确的是( )。 A) while 循环执行10次 B) 循环是无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 18下列程序段的运行结果是( ) int n=0; while(n++<3); printf(\ A. 2 B. 3 C. 4 D. 以上都不对 19设有程序段 t=0; while(printf(\ { t++; if (t<3) break; } 下面描述正确的是( )。 A) 其中循环控制表达式与0等价 B) 其中循环控制表达式与'0'等价 C) 其中循环控制表达式是不合法的 D) 以上说法都不对 20下面程序的运行结果是( )。 #include do { y--;} while(--y); printf(\} A) -1 B) 1 C) 8 D) 0 21以下程序段的输出结果是( ). main() { int i=5; for ( ;i<=15; ) { i++; if (i%4==0) printf(\ else continue;} } A. 8 12 16 B. 8 12 C. 12 16 D. 8 22以下不是无限循环的语句为( )。 A) for(y=0,x=1;x>++y;x=i++) i=x; B) for( ; ;x++=i); C) while(1){x++;} D) for(i=10; ; i--) sum+=i; 23有如下语句 int x=3; do { printf(\ 则上面程序段( ) A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D. 是死循环 24以下不是无限循环的是( ) A. for(y=0,x=1;x>++y;x=i++) i=x; B. for( ; ;x++=i); C. while(1) x++; D. for(i=10; ;i--) s+=i; 25以下正确的描述是( )。 A) continue语句的作用是结束整个循环的执行 B) 只能在循环体内和switch语句内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句 26以下程序输出结果为( ) #include \ main() {int i,b,k=0; for(i=1;i<=5;i++) { b=i%2; while (b-->=0) k++;} printf(\ } A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2 27以下程序段中循环体总的执行次数是( ) int i,j; for(i=7;i;i--) for(j=0;j<6;j++) {......} A) 42 B) 21 C) 13 D) 36 28以下不正确的描述是( ) A. break 语句不能用于循环语句和switch语句外的任何其他语句 B. 在switch语句中使用break语句或continue语句的作用相同 C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个 循环的执行 D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 1else语句总是和靠它最近的if匹配。 2switch语句中一定有default分支 3case后只能跟常量,不能跟变量 4break语句的作用就是结束本层循环。 5do-while语句构成的循环不能用其它语句构成的循环来代替。 6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。 7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。 8for循环中,如果表达式2为空,则该循环一定是死循环。 9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。 10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。 1若a、b均为int型变量,且a=100,则以下的for循环是死循环. for (b=100;a!=b;++a,b++) printf(\执行语句:for(i=1;i++<4;++i);后;变量i的值是5。 2以下程序的运行结果是【 】 main() {int x,y,z; x=1;y=2;z=3; x=y--<=x||x+y!=z; printf(\,%d\,y); } 3以下程序的运行结果是【 】 main() {int x,y,z; x=1;y=1;z=0; x=x||y&&z; printf(\,%d\,x&&!y||z); } 4以下程序的运行结果是【 】 main() {int a,b,c; int s,w=0,t; a=-1;b=3;c=3; if(c>0)s=a+b; if(a<=0) {if(b>0) if(c<=0)w=a-b; } else if(c>0)w=a-b; else t=c; printf(\ } 5阅读下面程序: main() { int s, t, a, b; scanf(\ s=1; t=1; if(a>0) s=s+1; if(a>b) t=s+t; else if (a==b) t=5; else t=2*s; printf(\} 6为了使输出结果t=4, 输入量a和b应满足的条件是【 】 7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。 #include