C语言程序设计习题集答案Word文件下载.docx

上传人:b****4 文档编号:16637996 上传时间:2022-11-25 格式:DOCX 页数:69 大小:56.99KB
下载 相关 举报
C语言程序设计习题集答案Word文件下载.docx_第1页
第1页 / 共69页
C语言程序设计习题集答案Word文件下载.docx_第2页
第2页 / 共69页
C语言程序设计习题集答案Word文件下载.docx_第3页
第3页 / 共69页
C语言程序设计习题集答案Word文件下载.docx_第4页
第4页 / 共69页
C语言程序设计习题集答案Word文件下载.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

C语言程序设计习题集答案Word文件下载.docx

《C语言程序设计习题集答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集答案Word文件下载.docx(69页珍藏版)》请在冰豆网上搜索。

C语言程序设计习题集答案Word文件下载.docx

A.b70B.#abC.symbolD.a_1

5.以下不正确的叙述是(D)。

A.在C程序中所用的变量必须先定义后使用

B.程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在执行了赋值语句a=b;

后b中的值将放入a中,b中的值不变

D.当输入数值数据时,对于整型变量只能输入整型值;

对于实型变量只能输入实型值

6.能正确表示逻辑关系:

"

a≥10或a≤0"

的C语言表达式是(D)。

A.a>

=10ora<

=0B.a>

=0|a<

=10C.a>

=10&

&

a<

=0D.a>

=10||a<

=0

7.C语言的注释定界符是(D)。

A.{}B.[]C.**D./**/

8.以下运算符中,优先级最高的运算符是(D)。

=C.*(乘号)D.()

9.若希望当A的值为奇数时,表达式的值为"

真"

A的值为偶数时,表达式的值为"

假"

则以下不能满足要求的表达式是(C)。

A.A%2==1B.!

(A%2==0)C.!

(A%2)D.A%2

10.设int类型的数据长度为2字节,则该类型数据的取值范围是(D)。

A.0至65536B.0至65535C.-32767至32768D.-32768至32767

11.在C语言中逻辑值“真”是用(B)表示的。

()

A.预定义为真值的宏B.非零值C.正数D.非零整数

12.若定义:

inta=511,*b=&

a;

则printf("

%d\n"

*b);

的输出结果为(D)。

A.确定值B.a的地址C.512D.511

13.设在tc2.0中有整型变量x,y,z均为3,表达式(x++)+(y++)+(z++)的值是(D)。

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

14.设有语句scanf(“%d,%d”,&

m,&

n);

要使m、n的值依次为2,3,正确的输入是(B)。

A.2⊔3↙B.2,3↙C.2;

3D.2↙

15.已知inta=5,b=7,c=3;

则逻辑表达式a<

b||++c运算后,c的值为(C)。

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

16.以下定义语句中正确的是(C)。

A)chara='

A'

b='

B'

;

B)floata=b=10.0;

C)inta=10,*b=&

D)float*a,b=&

17.设a=6,b=4,则表达式b*=a+3的值为(D)。

A)3B)18C)27D)36

18.有如下程序段,其输出结果是(B)。

inta=3;

floatb=15.6,f=1.5;

printf(“%d”,a+(int)b/2+(int)f%3);

A)10B)11C)12D)13

19.已知inta=5,b=7,c=3;

b||++c运算后,c的值为(C)。

A)1B)=0C)3D)4

20.若x、i、j和k都是int型变量,计算x=(i=4,j=16,k=32)表达式后,x的值为(C)。

(A)4(B)16

(C)32(D)52

21.执行以下语句后,a,b的值分别为(C)。

inta,b,c;

a=b=c=1;

++a||++b&

++c;

(A)2,2   (B)1,1

(C)2,1  (D)1,2

22.若有定义:

inta=8,b=5,c;

执行语句c=a/b+0.4;

后c的值为(B)。

(A)1.4(B)1

(C)2.0(D)2

23.设变量a是整形,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型为(C)。

A.intB.floatC.doubleD.不确定

24.在C语言中,char型数据在内存中的存储形式是(A)。

A.补码B.反码C.源码D.ASCII码

25.判断char型变量cl是否为小写字母的正确表达式为(D)。

A.’a’<=c1<=’z’B.(c1>=a)&

(c1<=z)

C.(‘a’>=c1)(‘z’<=c1)D.(c1>=’a’)&

(c1<=’z’)

26.以下不能定义为用户标识符的是(C)。

A.MAINB._HJC.208ongD.LINE12

27.设有intx,y;

以下语句判断x和y是否相等,正确的说法是该语句(B)。

if(x=y)printf("

xisequaltoy."

);

A.语法错B.不能判断x和y是否相等

C.编译出错D.能判断x和y是否相等

28.以下各项是错误的整型常量的是(B)。

A.-0xcdfB.018C.0xeD.011

29.已知intx=10,y=20,z=30;

以下语句执行后x,y,z的值分别是(C)。

if(x>

y)z=x;

x=y;

y=z;

 

(A)x=10,y=20,z=30(B)x=20,y=30,z=10

(C)x=20,y=30,z=30(D)x=20,y=30,z=20

30.设x=3,y=-4,z=5,则表达式!

(x>

y)+(y!

=z)||(x+y)&

(y=z)的值是`。

31.为表示关系x≥y≥z,正确的C语言逻辑、关系表达式为x>

=y&

y>

=z。

32.有inta=3,b=4,c=5,x,y;

,则以下表达式的值为0

!

(x=a)&

(y=b)&

c

33.在C语言的表达式中,x=x+5用复合运算符可以写成x+=5。

34.已知赋值语句zhang.year=1985;

可判断zhang是结构体类型的变量;

35.若a是int型变量,且a的初值为6,则计算表达式“a+=a-=a*a”后a的值为-60

36.当a=3,b=2,c=1时,表达式f=a>

b>

c的值是0.

37.若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式“x%=(n%=2)”后,x的值为0。

38.在C语言中,表示逻辑"

值用非0值.

39.与if(x==0)等价的表达式写法写法是!

x。

40.若s是int型变量,且s=6,则表达式“s%2+(s+1)%2”的值为1。

41若x是int型变量,则执行表达式“x=(a=4,6*2)”后,x的值为12。

42.表达式pow(2.8,sqrt(double(x)))值的数据类型为double。

1.若有以下程序段(n所赋的是八进制数):

intm=32767,n=0327;

printf("

%d,%o\n"

m,n);

执行后输出结果是(A)。

A)32767,327B)32767,0327C)32767,777D)32767,0777

2.若有说明语句:

inta,b,c,*d=&

c;

,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(A)。

A)scanf("

%d%d%d"

&

a,&

b,d);

B)scanf("

b,&

d);

C)scanf("

a,b,d);

D)scanf("

a,b,*d);

3.若变量x、y已定义为int类型且X的值为99,y的值为9,请将输出语句

printf(_”x/y=%d”____,x/y);

补充完整,使其输出的计算结果形式为:

x/y=11。

4.在scanf函数中,变量前加&

表示变量的地址。

5.以下程序的运行结果是computer,□□com。

□表示空格

main()

{printf("

%s,%5.3s"

"

computer"

}

6.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是5.0,4,c=3。

intb,c;

floata;

scanf("

%f,%d,c=%d"

,&

a,&

b,&

c);

1.C语言中,while和do…while循环的主要区别是(B)。

A.while的循环控制条件比do…while的循环控制条件严格

B.do…while的循环体至少无条件执行一次

C.do…while允许从外部转到循环体内

D.do…while的循环体不能是复合语句

2.现已定义整型变量inti=1;

执行循环语句while(i++<

5);

后,i的值为(C)。

A)1B)5C)6D)以上三个答案均不正确

3.执行语句:

for(i=1;

i<

=9;

i++)后;

变量i的值是(A)。

A.10B.9C.不定 D.11

4.以下描述正确的是(C)。

A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

C.在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。

D.do-while循环中,根据情况可以省略while。

5.对do...while语句错误的描述是(C)。

A.可构成多重循环结构B.循环次数不可能为0

C.循环次数可能为0D.先执行后判断。

6.执行下面的程序段后,k值是36。

k=1;

n=263;

do{k*=n%10;

n/=10;

}while(n);

1.若定义数组并初始化inta[10]={1,2,3,4},以下语句中(D)成立。

A.若引用a[10],编译时报错

B.若引用a[10],连接时报错

C.若引用a[10],运行时出错

D.若引用a[10],系统不报错

2.下列选项中正确的语句组是(D)。

A.chars[8];

s={"

Beijing"

};

B.char*s;

C.chars[8];

s="

D.char*s;

3.以下对二维数组a的正确说明是(C)。

A.inta[3][]B.floata(3,4)C.doublea[1][4]D.floata(3)(4)

4.C标准库函数中,字符串处理函数的原形在(C)头文件中。

A.stdio.hB.math.hC.string.hD.ctype.h

5.以下一维数组a的正确定义是(D)。

A.inta(10);

B.intn=10,a[n];

C.intn;

D.#defineN10

scanf(“%d”,&

inta[N];

inta[n];

6.有数组定义:

chararray[]=”Computer”;

则数组array所占的存储空间为(C)。

A.7个字节B.8个字节C.9个字节D.10个字节

7.有数组定义:

则数组array所占的存储空间为(C)。

A)7个字节B)8个字节C)9个字节D)10个字节

8.以下不能正确定义二维数组的选项是(D)。

A)inta[2][2]={{1},{2}};

B)inta[][2]={1,2,3,4};

C)inta[2][2]={{1},2,3};

D)inta[2][]={{1,2},{3,4}};

9.数组定义为:

inta[4][5];

引用“a[1]+3”表示的是(A)。

(A)a数组第2行第4列元素的地址(B)a数组第2行第4列元素的值

(C)a数组第4行的首地址(D)a数组第1行第3个元素的地址

10.判断字符串s1是否大于字符串s2,应当使用的表达式是(D)。

(A)if(s1>

s2)(B)if(a==b)

(C)if(strcpy(s2,s1)>

0)(D)if(stcmp(s1,s2)>

0)

11.字符串"

a"

在内存中占据的字节个数为(C)。

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

12.若二维数组a有m列,则在a[i][j]前面的元素个数为(B)。

A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1

13.下面正确的数据声明的是(D)。

A.chara[][5]={“math”,“phy”,“chemi”};

B.intb[3][3]={{1,2,3},4,5,6,7,{8,9}};

C.floatc[sizeof(sin

(1))]={1,‘\’};

D.charch[][10]={“Beijing”,“Nanjing”},

14.以下是正确的字符常量是(B)。

A."

c"

B.'

\\'

C.'

W1'

D."

\32a"

15.若二维数组a有m列,则在a[i][j]前面的元素个数为(B)。

Aj*m+iBi*m+jCi*m+j-1Di*m+j+1

16.在C语言中,二维数组元素的内存中的存放顺序是行序优先。

17.下面程序的功能是将字符串a中的下标为奇数的元素由小到大排序,其他元素不变,请填空。

main()

{chara[]="

students"

t;

inti,j;

for(i=1;

7;

i+=2)

for(j=i+2;

j<

8;

j+=2)

if(a[i]>

a[j])

{t=a[i];

a[i]=a[j];

a[j]=t;

}

puts(a);

1.在C语言中以下正确的说法是(A)。

A.实参和与其对应的形参各占用独立储单元

B.实参和与其对应的形参共占用一个单元

C.只有当实参和与其对应的形参同名共占用存储单元

D.形参是虚拟的,不占用存储单元

2.以下正确的函数形式是(D)。

A.doublefun(intx,inty){z=x+y;

returnz;

B.fun(intx,y){intz;

C.fun(x,y){intx,y;

doublez;

z=x+y;

D.doublefun(intx,inty){doublez;

3.定义C语言函数时,形参可以是(B)。

A.常量B.变量C.表达式D.宏定义

4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。

A.float型B.int型C.long型D.double型

5.以下说法中正确的是(C)。

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须在main函数中定义

C.C语言程序总是从main函数开始执行

D.C语言程序中,main函数必须放在程序的开始部分

6.为了提高程序的运行速度,在函数中对于整型或指针可以使用的变量类型是(B)。

A.autoB.registerC.staticD.extern

7.数组名作为实参传递给被调用的函数时,形参获得的是(C)。

A.该数组第一个元素的值B.该数组所有元素的值

C.该数组第一个元素的首地址D.该数组所有元素的首地址

8.以下函数test返回值类型为(A)。

test(intx)

{printf(“%f\n”,(float)x);

A)intB)floatC)voidD)不确定或错误

9.若函数中有定义语句:

intk;

,则下列说法正确的是(B)。

A.系统将自动给k赋初值0B.这时k中的值不确定

C.系统将自动给k赋初值-1D.这时k中无任何值

10.下面函数

f(doublex)

{printf(“%6d”,x);

}的类型为(C)。

A.实型B.void类型C.int类型D.均不正确

11.若使用一维数组名作函数实参,则以下正确的说法是(A)。

A.必须在主调函数中说明此数组的大小

B.实参数组类型与形参数组类型可以不匹配

C.在被调用函数中,要设置形参数组的大小

D.实参数组名与形参数组名必须一致

12.在C语言中,以下说法中正确的是(A)。

A.实参与其对应的形参各占用独立的存储单元

B.实参与其对应的形参占用同一个存储单元

C.只有当实参与形参同名时才占用同一个存储单元

D.实参占用存储单元,但形参是虚拟的,不占用存储单元

13.若用数组名作为函数调用的实参,传递给形参的是(A)。

(A)数组的首地址  (B)数组的第一个元素

(C)数组中全部元素的值(D)数组元素的个数

14.C语言中,简单变量做实参时,它和对应的形参之间的数据传递方式是(B)。

(A)地址传递  (B)单向值传递

(C)由实参传给形参,再由形参传递给实参

(D)同用户指定传递方式

15.下列叙述中错误的是(B)。

A.引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。

B.不能用extern定义一个外部变量、数组。

C.无论在函数外还是在函数内部引用自定义的函数,都可以不写extern关键字。

D.用extern说明引用一个外部数组时,可以不给出数组大小。

16.以下正确的函数定义形式是(C)。

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

inty)

C.doublefun(intx,inty);

D.doublefun(intx,y);

17.若用数组名作为函数调用的实参,传递给形参的是(C)。

(A)数组的第一个元数;

(B)数组中全部元素的值;

(C)数组的首地址;

(D)数组元素的个数。

18.已知函数定义为:

intstat(int a,float*p)

{……………}

则此函数的两个参数类型分别是整型、指向浮点数的指针类型。

19.在TC中,printf()函数输出表列的求值顺序是从右向左。

20.在C语言中,函数默认是全局的。

(填“全局的”或“局部的”)

1.设有宏定义:

#defineIsDIV(k,n)((k%n==1)?

l:

0)且变量m已正确定义并赋值,则宏调用:

IsDIV(m,5)&

IsDIV(m,7)为真时所要表达的是(D)。

A.判断m是否能被5或者7整除

B.判断m是否能被5和7整除

C.判断m被5或者7整除是否余l

D.判断m被5和7整除是否都余1

1.有以下程序

#include<

stdio.h>

voidf(int*p,int*q);

{intm=1,n=2,*r=&

m;

f(r,&

printf("

%d,%d"

voidf(int*p,int*q)

{p=p+1;

*q=*q+1;

程序运行后的输出结果是(A)。

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

2.对于类型相同的指针变量,不能进行(B)运算。

A.-B.+C.=D.>

3.若有inta[10]={1,2,3,4,5,,6,7,8,9,10};

*p=a;

则值为9的表达式是(B)。

A.*p+9B.*(p+8)C.*p+=9D.p+8

4.变量p为指针变量,若p=&

a,下列说法不正确的是(D)。

A.&

*p==&

aB.*&

a==aC.(*p)++==a++D.*(++p)==++a

5.设有语句”inta[]={1,3,5,7,9},*p=&

a[0];

”则值为7的表达式是(C)。

A.*p+3B.*p+4C.*(p+3)D.*(p+4)

6.已知inta[2][3]={{1,3,5},{2,4,6}};

则*(*(a+1)+2)的值是(A)。

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

7.已知inta[2][3]={{1,3,5},{2,4,6}};

A)6B)3C)5D)4

8.已知i

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

当前位置:首页 > 求职职场 > 自我管理与提升

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

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