C语言程序设计 - 习题大全(含答案) - C语言-1 下载本文

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与 D) isw与INT

7 属于合法的C 语言长整型常量的是( )。

A)5876273 B)0L C)2E10 D)(Long)5876273若int类型数据占两个字节,下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(\则以上语句( )。

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 = scanf(\ y=x>12 ? x+10:x-12; printf(\

A) 0 B) 22 C) 12 D) 10 6以下程序的输出结果是( ) 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 main ( )

{ 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;

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 main() { int y=10;

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语句的作用是结束整个循环的执行