C语言程序设计练习一.docx

上传人:b****6 文档编号:4394358 上传时间:2022-12-01 格式:DOCX 页数:21 大小:37.61KB
下载 相关 举报
C语言程序设计练习一.docx_第1页
第1页 / 共21页
C语言程序设计练习一.docx_第2页
第2页 / 共21页
C语言程序设计练习一.docx_第3页
第3页 / 共21页
C语言程序设计练习一.docx_第4页
第4页 / 共21页
C语言程序设计练习一.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言程序设计练习一.docx

《C语言程序设计练习一.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习一.docx(21页珍藏版)》请在冰豆网上搜索。

C语言程序设计练习一.docx

C语言程序设计练习一

《C语言程序设计》练习一

说明:

本练习题主要是让学生通过练习进一步巩固C语言程序设计的基本概念和知识。

本练习题与考试题库无关,如有类同纯属巧合。

一、单项选择题

1.下面转义字符中,表示字符串结束的是( C  )

A.\rB.\nC.\0D.\f

2.在TurboC2.0中,若定义unsignedinta;则变量a在内存中分配的字节数是( B  )

A.1个B.2个C.4个D.8个

3.设有intx=2,y,z;执行z=y=x--;后,变量z的值是(  C )

A.0B.1C.2D.3

4.以十六进制形式输出整数的格式说明符是( C  )

A.%uB.%ldC.%xD.%o

5.下面合法的if语句是( A  )

A.if(a=b)c++;B.if(a=b)c++;D.if(a=>b)c++;

6.结束while(表达式)循环的条件是(  A )

A.当表达式的值为0时B.当表达式的值不为0时

C.当表达式的值为1时D.当表达式的值为非1时

7.下面列出的位运算符中,表示按位与操作的是( B  )

A.~B.&C.^D.|

8.设有说明:

intx=0x03,y=3;表达式x&~y的值是(  A )

A.0B.1C.2D.3

9.设有inta=3,b=-4,c=5;表达式(a

a+b:

(a-b,b+4,a-=b+4)的值是(  C )

A.–1B.0C.3D.7

10.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( B  )

(其中表示换行)

inta,b;

scanf(″a=%db=%d″,&a,&b);

A.2B.a=2b=3C.a=2,b=3D.2,3

3

11.下列if语句中,有语法错误的是(  C )

A.if(x>y);

B.if(x=y)x+y;

C.if(x!

=y)scanf(″%d″,&x)elsescanf(″%d″,&y)

D.if(x

12.下面程序段执行后的输出结果是( A  )

inti=-1;

if(i<=0)printf(″****\n″);

elseprintf(″%%%%\n″);

A.****B.%%%%C.%%%%cD.****c

13.下面程序段的循环次数是( A  )

intk=2;

while(k==0)printf(″%d″,k);

k--;printf(″\n″);

A.0次B.1次C.2次D.无限次

14.下面各个位运算符的优先级从左到右依次升高的是( A  )

A.|^&>>B.^>>&~C.<<|^~D.~|&>>

15.设有说明:

intu=1,v=14;表达式u+v>>2的值是(  B )

A.0B.3C.5D.7

16.设有inta=3,b=-4,c=0;表达式((a>b)?

a:

b)&&c<0的值是( B  )

A.-4B.0C.1D.3

17.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( C  )

(其中表示换行)

inta,b;

scanf(″a=%d,b=%d″,&a,&b);

A.2B.a=2b=3C.a=2,b=3D.2,3

3

18.关于if语句下面叙述正确的是(  D )

A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句

B.只有当if语句中表达式的值为假时,才执行if的内嵌语句

C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句

D.只要if语句中表达式的值非0时,就执行if的内嵌语句

19.若intx=0;则while(x==0);的循环次数是(  D )

A.0B.1C.2D.无限次

20.下面各个运算符的优先级从左到右依次降低的是(  D )

A.&>>|^B.~&>>|

C.>>&^|D.~>>&^

21.设有说明:

intu=1,v=2;表达式:

u+v<<2的值是( D  )

A.-1B.1C.9D.12

22.字符串常数“CHINA”在内存中存储时占的字节数是(  B )

A.5个B.6个C.7个D.8个

23.如果a=1,b=2,c=3,d=4,则表达式a>b?

a:

c

c:

d的值是( C  )

A.1B.2C.3D.4

24.输出字符串的格式说明符是(  B )

A.%cB.%sC.%uD.%g

25.设有说明intx=0,y=0;

则执行if(x++)y=1+x;

elsey=2+x;

后,变量y的值是(D)

A.0B.1C.2D.3

26.以下程序段所表示的数学函数关系是(  C )

y=-1

if(x!

=0)if(x>0)y=1;elsey=0;

A.

B.

C.

D.

27.执行下面程序段后,输出字符A的个数是(  B )

for(i=0;i<=5;i+=2)

printf(″A″);

A.0个B.3个C.5个D.6个

28.设有说明:

intx=0x15,y=0x0f;则x&y的结果是( A  )

A.0x5B.0x15C.0xf0D.0xf5

29.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是( C  )

A.#includeB.#include

C.#includeD.#incLude

30.整数-2在机器内存中的表示是(  B )

A.1000000000000010B.111111*********0

C.111111*********01D.111111*********1

31.下列运算符中优先级最低的是(  D )

A.>B.!

C.%D.==

32.设有inta=3,b=-4,c=5;表达式++a-c+b++的值是( B  )

A.-6B.-5C.-4D.-3

33.以十进制无符号形式输出整数的格式说明符是( A  )

A.%uB.%xC.%oD.%d

34.执行while(表达式)循环的条件是(  C )

A.当表达式的值为0时B.仅当表达式的值为1时

C.当表达式的值非0时D.当表达式的值不为1时

35.下列位运算符中,表示按位异或操作的是( C  )

A.~B.│C.^D.&

36.下列各个位运算符的优先级从左到右依次升高的是(  C )

A.>>│&~B.│>>&~C.│&>>~D.~│&>>

37.设有说明:

intu=1,v=3;则表达式u<<=v的值是( D  )

A.0B.1

C.3D.8

38.下列转义字符中,表示回车的是(  B )

A.\0B.\nC.\rD.\f

39.若定义doubled;则d在内存中分配的字节数是(  D )

A.1个B.2个C.4个D.8个

40.下列表达式中运算结果为3的表达式是(  B )

A.(-7)%4B.7/4+2C.7/4*4-4D.8/3+8/3

41.设有inta=3,b=-4,c=5;表达式a++-c+b++的值是( A  )

A.-6B.-5C.-4D.-3

42.在printf语句中,格式说明符u表示(  C )

A.以十进制带符号形式输出整数

B.以十六进制带符号形式输出整数

C.以十进制无符号形式输出整数

D.以十六进制无符号形式输出整数

43.关于switch中的表达式,正确的说法是( D  )

A.它必须是算术表达式B.它必须是关系表达式

C.它必须是逻辑表达式D.它可以是任意类型的表达式

44.对do语句while(表达式);结构的循环,下列说法正确的是( B  )

A.当表达式的值为非零时不执行循环体

B.循环体至少被执行一次

C.当表达式的值为零时循环体一次也不执行

D.循环体仅被执行一次

45.只能在循环语句中用于结束本轮循环的语句是( B  )

A.break;B.continue;C.gotoD.if

46.下列是合法C语言常量的是(C)

A.eB.7E4.0C.E4D.-9.13E-30

47.设有inta=3,b=-4,c=5;表达式(a

a:

b&&c<0的值是(A)

A.0B.1C.3D.4

48.以指数形式输出实型数的格式说明符是(D)

A.%uB.%xC.%fD.%e

49.下列各个位运算符的优先级从左到右依次降低的是(C)

A.|&ˆ>>B.ˆ&>>|C.~>>ˆ|D.~>>|ˆ

50.设有说明:

intu=1,v=3,w=5;表达式:

v&~~u|w的值是(B)

A.3B.5C.6D.8

51.在TurboC2.0中,若定义charch;则变量ch在内存中分配的字节数是(A)

A.1个B.2个C.4个D.8个

6

52.下面程序段的输出结果是(B)

main()

{inta=2,b=5;

printf(″a=%d%%,b=%d%%″,a,b);}

A.a=2,b=5B.a=2%,b=5%C.a=%2,b=%5D.a=%d,b=%d

53.设有条件表达式(exp)?

a++:

b--,则下列表达式中能够与该表达式完全等价的表达式是(A)

A.(exp!

=0)?

a++∶b--B.(exp==0)?

a++∶b--

C.(exp==1)?

a++∶b--D.(exp!

=1)?

a++:

b--

54.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是(B)

A.表达式1B.表达式2C.表达式3D.表达式l和表达式3

55.设有intx=2,y,z;执行z=y=x——;后变量y的值是(C)

A.0B.1C.2D.3

56.在下列选项中,没有构成死循环的程序段是(C)

A.inti=100;B.for(;;);

while

(1)

{i=i%100+1;

if(i>100)break;}

C.intk=1000;D.ints=36;

do{++k;}while(k>10000);while(s);一一s;

57.设有说明:

intu=l,v=3,w=5;

表达式:

u<<=(v|w)的值是(D)

A.1B.5C.13D.128

58.设有说明:

intu=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是(  A )

A.0B.1C.3D.5

59.下面程序段的输出结果是(  D )

main()

{ints,p;

s=p=5;

p=++s;

p++;++p;

printf(″%d\n″,p);

}

A.5B.6C.7D.8

60.下面程序段的输出结果是(  A )

a=100;

while(a>120);

a=a+1;

printf(″%d″,a);

A.100B.101C.120D.121

61.下面程序执行后,i的值是(  C )

main()

{inta[5]={1,2,3,4,5},i=2

printf(″%d″,a[i++]);

}

A.1B.2C.3D.4

62.下面程序的输出结果是(  C )

main()

{inti,x[3][3]={9,8,7,6,5,4,3,2,1};

for(i=0;i<4;i+=2)printf(″%d″,x[i][1]);

}

A.51B.52C.82D.93

63.下面程序段的输出结果是( B  )

main()

{ints,p;

s=p=5;

p=--s;

p++;++p;

printf(″%d\n″,p);

}

A.5B.6C.7D.8

64.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是(  A )

main()

{inta,b,s;

scanf(″%d″,&a,&b);

s=a;

if(a

s=s*s;

printf(″%d″,s);

}

A.9B.12C.16D.25

65.下面程序段的输出结果是(  C )

for(i=1;i<3;i++)

{for(j=1;j<3;j++)

printf(″%d″,i+j);

printf(″\n″);}

A.2334B.234

C.23D.2

3434

66.下列程序段的输出结果是(  B )

voidmain(void)

{

inyy=1,x=5;

if(x<0)y=-1;

if(x>=0)y=0;

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

}

A.-1B.0C.1D.5

67.执行如下程序段后,x的值是( D  )

intx=1,y=-1;

if(y<0)x-=y;

elsex+=y;

A.-1B.0C.1D.2

68.下列程序段输出的结果是(  A )

for(i=1;i<3;i++)

for(j=1;j<3;j++)

printf("%d",i+j);

A.2334B.234

C.23D.2

3434

69.若有inta=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是( A  )

if(a

{

if(c==d)

x=c;

}

else

x=d++

A.4B.5C.6D.7

70.下列程序的输出结果是(D)

main()

{intx=5,y;

if(x<0)y=-1;

if(x==0)y=0;

y=1;

printf(″%d″,y);

}

A.-5B.-1C.0D.1

71.下列程序段的输出结果是(D)

i=1;

while(i<3)

{j=1;

while(j<=i)

{printf(″%d″,i+j);

j++;

}

i++;

printf(″\n″);

}

A.2334B.234

C.23D.2

3434

72.设有下列程序:

(A)

#include″stdio.h″

main()

{

unsignedx=8,y=2;

printf(″%d\n″,y|~(x&y));

}

该程序的运行结果是

A.-1B.0xffC.127D.65535

73.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是(A)

voidmain(void)

{

intx;

scanf("%d",&x);

if(x++>5)printf("%d",x);

elseprintf("%d\n",x——);

}

A.7和5B.6和3C.7和4D.6和4

74.设有下面程序:

#include"stdio.h"

voidmain(void)

{

unsignedx=1,y=3,z=5;

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

}

该程序的运行结果是(C)

A.0B.3C.4D.5

75.若有定义inta[3][5];则数组a在内存中占用的字节数是( D  )

A.8B.15C.16D.30

76.下面程序的输出结果是(  C )

mian()

{inta[5]={2,4,6,8,10},i;

i=2;

printf(″%d″,a[i++]);

}

A.2B.4C.6D.8

77.下面程序的输出结果是( A  )

main()

{inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

inti,j,k=0;

for(i=0;i<3;i++)

k=k+a[i][0];

printf(″%d\n″,k);

}

A.27B.33C.39D.45

78.若有定义chara[]=″computer″;则存储字符m的数组元素是(  B )

A.a[1]B.a[2]C.a[3]D.a[4]

79.若有定义inta[4]={1,2,3,4};则a[a[3]-a[1]*a[1]]的值是( A  )

A.1B.2C.3D.4

80.若有定义ints[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是( B  )

A.1B.2C.3D.4

81.若有定义inta[3][5];则数组a在内存中分配的字节数是(  D )

A.8B.15C.24D.30

82.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?

( A  )

A.gets(strl)B.gets(strl,str2)C.getchar(strl)D.getchar(strl,str2)

83.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是(B)

A.puts(str1,str2)B.puts(str2)C.putchar(strl)D.putchar(str1,str2)

84.设有下列程序:

(A)

voidmain(void)

{

intx[4]={1,3,5,7},i;

i=0:

printf("%d",x[i++]);

}

其输出结果是

A.1B.3C.5D.7

85.定义如下变量和数组

intk;

intx[3][3]={9,8,7,6,5,4,3,2,l};

则执行下面语句

for(k=0;k<3;k++)

if(k%2)printf("%5d",x[k][k]);

后输出结果是(B)

A.3B.5C.7D.9

86.下面能正确进行字符串赋值操作的是(C)

A.chars[5]={"ABCDE"};B.chars[5]={′A′,′B′,′C′,′D′,′E′};

C.char*s;s="ABCDE";D.char*s;scanf("%s",s);

87.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是( D  )

A.charB.floatC.longD.int

88.若有说明:

int*p,m=5,n;以下正确的程序段是(  D )

A.p=&n;B.p=&n;

scanf(〃%d〃,n);scanf(〃%d〃,*p);

C.scanf(〃%d〃,&n);D.p=&n;

p=n;*p=m;

89.变量的指针,其含义是指该变量的( B  )

A.值B.地址C.名D.一个标志

90.在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是( B  )

A.由系统自动指定对应实参和形参是否共用存储单元

B.对应实参和形参各占一个独立的存储单元

C.对应实参和形参共用一个存储单元

D.可以由用户指定对应实参和形参是否共用存储单元

91.下面叙述中不正确的是( D  )

A.不同函数中可以使用相同名字的变量

B.形式参数是局部变量

C.在一个函数内部定义的变量只能在本函数范围内有效

D.在一个函数内部的复合语句中定义的变量在本函数范围内有效

92.设有语句inta[4][10],*p=*a;则下面表达式中属于地址表达式的是(  B )

A.a[1][2]B.a[1]C.*(p+1*10+2)D.*(a[1]+2)

93.以下正确的函数定义形式是( A  )

A.doublefun(intx,inty)B.doublefun(intx;inty)

C.doublefun(intx,inty);D.doublefun(intx,y);

94.关于变量以下不正确的说法是(  B )

A.在不同函数中可以使用相同名字的变量

B.形式参数是全局变量

C.在函数内定义的变量只在本函数范围内有效

D.在函数内的复合语句中定义的变量是局部变量

95.设有语句inta[4][10],*p=*a;则下列表达式中不是地址表达式的是( C  )

A.&a[1][2]B.a[3]C.*(p+1*10+2)D.p+1*10+2

96.如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为(  D )

A.源文件的全部范围B.本程序的全部范围

C.本函数的全部范围D.从定义该变量的位置开始至本文件末尾

97.下列定义中,不是指针数组定义的是(  C )

A.int*p[5];B.float*q[4];C.int(*r)[6];D.char*w[7];

98.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是( D  )

A.a,point,*&aB.&*a,&a,*point

C.*&point,*point,&aD.&a,&*point,point

99.下列程序的运行结果是( B  )

#difineN9

fun(chars[])

{

char*p=s+4,*q=s;

inti;

for(i=0;i<4;i++,p++,q++)

{

s[i]=*p;

s[i+4]=*q

}

}

main()

{

charss[N]=″ABCDEFGH″;

fun(ss)

printf(″%s\n″,ss);

}

A.EFGHABCDB.EFGHEFGHC.ABCDEFGHD.ABCDABCD

100.设有下列程序:

ff()

{intc=9;

staticinta=1,b=4;

if(b==4){a+=c;b++;}

else{a+=c;b——;}

printf("a=%d,b=%d\n",a,b);}

main()

{ff();ff();}

则该程序执行后,显示的结果为(D)

A.a=10,b=5B.a=10,b=4

a=19,b=5a=l9,b=5

C.a=10,b=4D.a=10,b=5

a=19

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1