C语言各章习题答案.docx

上传人:b****5 文档编号:12367867 上传时间:2023-04-18 格式:DOCX 页数:37 大小:30.96KB
下载 相关 举报
C语言各章习题答案.docx_第1页
第1页 / 共37页
C语言各章习题答案.docx_第2页
第2页 / 共37页
C语言各章习题答案.docx_第3页
第3页 / 共37页
C语言各章习题答案.docx_第4页
第4页 / 共37页
C语言各章习题答案.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C语言各章习题答案.docx

《C语言各章习题答案.docx》由会员分享,可在线阅读,更多相关《C语言各章习题答案.docx(37页珍藏版)》请在冰豆网上搜索。

C语言各章习题答案.docx

C语言各章习题答案

第3章

1、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为:

a)char

B)char=int

C)char

D)char=int=longint<=float

2、以下不正确的叙述是

在C程序中,逗号运算符的优先级最低

在C程序中,APH和aph是两个不同的变量

若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

d当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

3、以下正确的叙述是

在C程序中,每行中只能写一条语句

若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

在C程序中,无论是整数还是实数,都能被准确无误地表示

d在C程序中,%是只能用于整数运算的运算符

4、若x、i、j和k都是int型变量,则执行下面表达式后x的值为:

x=(i=4,j=16,k=32)

A)4B)16c)32D)52

5、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:

A)7b)8C)6D)2

6、下面四个选项中,均是合法整型常量的选项是:

a)160B)-0xcdfC)-01D)-0x48a

-0xffff01a986,0122e5

0110xe06680x

7、下面四个选项中,均是不合法的浮点数的选项是

A)160.0.12E3b)1232E4.2.E5

C)-.18123E40.0D)-E3.2341E3

8、下面四个选项中,均是合法转义字符的选项是

a\’\\\nB)\\017\”

C)\018\fxabD)\\0\101x1f

9、下面不正确的字符串常量是

a)’abc’B)“12’12”C)”0”D)“”

10、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是

a)67,DB)B,CC)C,DD)不确定的值

main()

{charch1,ch2;

ch1='A'+'5'-'3';ch2='A'+'6'-'3';

printf("%d,%c\n",ch1,ch2);}

11、以下说法中正确的是

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

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

c)C语言程序总是从main()函数开始执行

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

12、在c语言中,要求运算数必须是整型的运算符是:

A)/B)++C)!

=d)%

13、若有以下定义,则能使值为3的表达式是:

intk=7,x=12;

A)x%=(k%=5)B)x%=(k-k%5)

C)x%=k-k%5d)(x%=k)-(k%=5)

14、设以下变量均为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)

15、已知ch是字符型变量,下面正确的赋值语句是:

A)ch='123';b)ch='\xff';C)ch='\08';D)ch=”\”;

16、设x、y均为float型变量,则以下不合法的赋值语句是:

A)++x;b)y=(x%2)/10;C)x*=y+8D)x=y=0;

17、下列语句中符合C语言语法的赋值语句是

A)a=7+b+c=a+7;B)a=7+b++=a+7;

C)a=3=7+b,b++,a+7D)a=7+b,c=a+7;

18、下面程序的输出是

A)0B)1c)3D)不确定的值

main()

{intx=10,y=3;

printf("%d\n",y=x/y);}

19、若已定义x和y为double类型,则表达式:

x=1,y=x+3/2的值是

A)1B)2c)2.0D)2.5

20、设变量a是整型,f是实型,I是双精度型,则表达式10+‘a’+I*f值的数据类型是

A)intB)floatc)doubleD)不确定

 

答案:

1A2D3D4C5B6A7B8A9A10A11C12D13D14C15B16B17D18C19C20C

第4章

1)若x为float型变量,则以下语句___b______。

x=213.82631;

printf("%4.2f\n",x);

输出格式描述符的域宽不够,不能输出

输出为213.83

C)输出为213.82

D)输出为-213.82

2)若k为int型变量,则以下语句___________。

k=8567;

printf("|%-6d|\n",k);

A)输出格式描述符不合法

B)输出为|008567|

c)输出为|8567|

D)输出为|-08567|

3)若k为int型变量,则以下语句___________。

k=-8567;

printf("|%6D|\n",k);

a输出为|%6D|

输出为|-8567|

格式描述符不合法,输出无定值

输出为|-8567|

4)若a为float型变量,b为unsigned型变量,则以下输入语句是合法的__________。

A)scanf("%6.2f%d",&a,&b);

B)scanf("%f%n",&a,&b);

c)scanf("%f%d",&a,&b);

D)scanf("%f%3.2f",&a,&b);

5)若已定义a,b为整型变量,用scanf(”%d%d”,&a,&b);语句输入a、b的值时,不可以用_________作为输入的分隔符。

a),B)空格C)回车D)Tab

6)若a为整型变量,a=-2L;printf("%d\n",a);则以下语句:

[]

A赋值不合法b输出值为-2C输出为不确定值D输出值为2

 

答案:

BCACAB

第4章

1、判断char型变量ch是否为大写字母的正确表达式是:

)'A'<=ch<='Z'B)(ch<='A')&&(ch>='Z')

c)(ch>='A')&&(ch<='Z')D)('A'<=ch)AND('z'>=ch)

2、已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!

y)的值是:

A)0B)语法错c)1D)“假”

3、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是:

A)A%2==1B)!

(A%2==0)c)!

(A%2)D)A%2

4、执行以下语句后a的值为【1】,b的值为【2】

inta,b,c;

a=b=c=1;

++a||++b&&++c

[1]A)错误B)0c)2D)1

[2]a)1B)2C)错误D)0

5、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是

if(x>y)

z=x;x=y;y=z;

A)x=10,y=20,z=30b)x=20,y=30,z=30

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

6、若w=1,x=2,y=3,z=4,则条件表达式w

w:

y

y:

z的值是

A)4B)3C)2d)1

7、执行以下程序段后,变量a,b,c的值分别是

intx=10,y=9;

inta,b,c;

a=(--x==y++)?

--x:

++y;

b=x++;

c=y;

A)a=9,b=9,c=9b)a=8,b=8,c=10

C)a=9,b=10,c=9D)a=10,b=11,c=10

8、执行以下程序段后的输出结果是

intw=3,z=7,x=10;

printf("%d\n",x>10?

x+100:

x-10);

printf("%d\n",w++||z++);

printf("%d\n",!

w>z);

printf("%d\n",w&&z);

A)0B)1c)0D)0

1111

1100

1110

9、判断char型变量ch是否为大写字母的正确表达式是:

A)'A'<=ch<='Z'B)(ch<='A')&&(ch>='Z')

c)(ch>='A')&&(ch<='Z')D)('A'<=ch)AND('z'>=ch)

10、已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!

y)的值是:

A)0B)语法错c)1D)“假”

11、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是:

A)A%2==1B)!

(A%2==0)c)!

(A%2)D)A%2

12、inta=1,b=2,c=3,d=4,m=2,n=2,则执行:

(m==a>b)&&(n==c>d)后n的值为:

A)1b)2C)3D)4

13、判断char型变量c1是否为小写字母的正确表达式为:

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

C)('a'>=c1)||('z'<=c1)d)(c1>='a')&&(c1<='z')

14、以下不正确的:

if语句形式是:

A)if(x>y&&x!

=y);

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

c)if(x!

=y)scanf("%d",&x)elsescanf("%d",&y);

if(x<y){x++;y++;}

答案1C2C3C4CA5B6D7B8C9C10C11C12B13D14C

第5章

1、下面程序段的运行结果是:

a=1;b=2;c=2;

while(a<b<c)

{t=a;a=b;b=t;c――}

printf("%d,%d,%d",a,b,c)

a)1,2,0B)2,1,0C)1,2,1D)2,1,1

2、下面程序段的运行结果是:

x=y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

A)20,7B)6,12C)20,8d)8,20

3、下面程序的功能是将从键盘输入的一对数,由小到大排序输出

当输入一对相等数时结束循环选择

#include<stdio.h>

main()

{inta,b,t;

scanf("%d%d",&a,&b)

while([1])

{if(a>b)

{t=a;a=b;b=t;}

printf("%d,%d\n",a,b)

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

}

}

A)!

a=bb)!

(a=b)C)a==bD)a=b

4、下面程序的运行结果是

main()

{inta=1,b=10

do

{b―=a;a++;}while(b――<0)

printf(“a=%d,b=%d\n”,a,b);

A)a=3,b=11b)a=2,b=8C)a=1,b=1D)a=4,b=9

5、若i为整型变量,循环执行次数是:

for(i=2;i==0;)printf("%d",i――);

A)无限次b)0次C)1次D)2次

6、以下不是无限循环的语句为:

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

7、下面程序的运行结果是

main()

{inti,j,x=0

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

{x++;

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

{if(j%2)continue;

x++;

}

x++;

i++;

}

printf(“x=%d\n”,x)

}

A)x=4b)x=8C)x=6D)x=12

答案:

1A2D3B4B5B6A7B

综合练习

第1题下列程序段运行后,变量x的值是[]。

 

    int a,b,c,x;

    a=b=c=0; x=35;

    if(!

a) x--;

    else if(b)x++ ; 

if(c) x=3;

    else  x=4;

A)33B)34c)4D)35

第2题下列程序段中,do-while循环的循环体执行的次数是[]。

    int i=1;

    do

{  i*=2; } 

while (i<100);

A)0次B)6次c)7次D)8次

第3题C在语言中,while和do-while循环的主要区别是[]。

a)do-while的循环体至少无条件执行一次

B)while的循环控制条件比do-while的循环控制条件严格

C)do-while允许从外部转到循环体内

D)do-while的循环体不能是复合语句

第4题下列程序的输出结果是[]

main()

{inti,j;floats;

for(i=6;i>4;i--)

{s=0.0;

for(j=i;j>3;j--)

s=s+i*j;

}

printf(“%f\n”,s);}

A90.000000b45.000000

C135.000000D60.000000

第5题下列叙述中,正确的是[]。

A)continue语句的作用是结束整个循环的执行

b)只能在循环体内和switch语句体内使用break语句

C)在循环体内使用break语句或continue语句的作用相同

D)从多层循环嵌套中退出时,只能使用goto语句

第6题设x和y均为int型变量,则执行下面的循环后,x的值为[]。

for(y=1,x=1;y<=50;y++)

{if(x>=10)break;

if(x%2==1)

{x+=5;continue;}

x-=3;

}

A)4B)6C)8d)10

第7题下列程序段的运行结果是:

a=1;b=2;c=2;

while(a

{t=a;a=b;b=t;c--;}

printf(“%d,%d,%d”,a,b,c);

a)1,2,0B)2,1,0C)1,2,1D)2,1,1

第8题下列程序段的运行结果是:

x=y=0;

while(x<12)

{y++;

x+=++y;}

printf(“%d,%d”,y,x);

A)5,12B)8,20C)3,11d)6,12

第9题若i为整型变量,循环执行次数是:

for(i=2;i==0;)

printf(“%d”,i--);

A)无限次b)0次C)1次D)2次

第10题以下不是无限循环的语句为:

Afor(y=0,x=1;x>++y;x=i++)

i=x;

for(;;x++=i)

;

while

(1)

x++;

for(i=10;;i--)

sum+=i;

答案:

CCABBDADBA

 

第6章

错误的说明语句是____d________。

A)charword[]={’T’,’u’,’r’,’b’,’o’,’\0’};

B)charword[]={”Turbo\0”};

C)charword[]=”Turbo\0”;

D)charword[]=’Turbo\0’;

2)要说明一个有10个int元素的数组,应当选择语句____a______。

A)inta[10];

B)inta[2,5];

C)inta[];

D)int*a[10];

3)合法的数组说明语句是____d______。

A)inta[]=”string”;

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

C)chara=”string”;

D)chara[]={0,1,2,3,4,5};

4)以下对一维整型数组a正确的说明是____d_____。

A)inta(10);

B)intn=10,a[n];

C)intn;

scanf(”%d”,&n);

inta[n];

D)#defineSIZE10

inta[SIZE];

5)若有以下语句,则正确的描述是____b_____。

charx[]=”12345”;

chary[]={’1’,’2’,’3’,’4’,’5’};

A)x数组和y数组的长度相同

B)x数组长度大于y数组的长度

C)x数组长度小于y数组的长度

D)x数组等价于y数组

6)调用strlen(”abcd\0ef\0g”)的返回值是____a______。

A)4B)5C)8D)9

 

7)已知:

charstr[]=”ab\n\012\\\””则执行语句:

printf(”%d”,strlen(str));的结果是_______c__。

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

8)已知:

charstr1[10],str2[10]={”books”};则在程序中能够将字符串”books”赋给数组str1的正确语句是____d_____。

A)str1={”books”};

B)strcpy(str1,str2);

C)str1=str2;

D)strcpy(str2,str1);

9)已知:

charstr1[20]=”abcde”,str2[20]=”xyz”;则执行语句:

printf(”%d”,strlen(strcpy(str1,str2)));

输出结果是______d___。

A)9B)3C)5D)8

10)已知:

inta[10];则对a数组元素的正确引用是__b_______。

A)a[10]

B)a[3.5]

C)a(5)

D)a[10-10]

11)若二维数组a有m列,则在a[I][j]前的元素个数为:

b

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

12)定义如下变量和数组:

intk;

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

则下面语句的输出结果是:

a

for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);

A)357B)369C)159D)147

13)下面程序运行结果是:

c

mian()

{inta[6];

for(i=1,i<6;i++)

{a[i]=9*(i-2+4*(i>3))%5;

printf(“%2d”,a[i]);

}

}

A)-40404B)-40403C)-40443D)-40440

答案:

1D2A3D4D5B6A7C8B9B10D11B12A13C

第7章

1、函数调用语句f((el,e2),(e3,e4,e5));中参数的个数是【】。

A)1B)2C)4D)5

2、对C语言函数的有关描述中,正确的是【】。

A)调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参

B)C函数既可以嵌套定义,又可以递归调用

C)函数必须有返回值,否则不能定义成函数

D)C程序中,有调用关系的所有函数必须放在同一个源程序文件中

3、决定C语言中函数返回值类型的是【】。

A)return语句中的表达式类型

B)调用该函数的主调函数类型

C)调用函数时临时指定的类型

D)定义函数时在函数首部中所指定的类型(若缺省,则隐含为int型)

4、当调用函数时,实参是一个数组名,则函数传送的是【】。

A)数组的长度B)数组的首地址

C)数组每个元素的地址D)数组每个元素中的值

5、以下说法不正确的是【】

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

B)形式参数是局部变量

C)在函数内定义的变量只在本函数内有效

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

6、C语言中,函数的隐含存储类型是【】

A)autoB)staticC)externD)无存储类别

7、在C语言中,使用时才占用内存的变量存储类型为【】:

A)static和auto

B)register和auto

C)static和register

D)static和extern

8、以下函数声明,正确的是【】

voidplay(vara:

integer,varb:

integer)

intplay(inta,b)

voidplay(inta,intb)

D)floatplay(inta,b,floatc)

9、执行下述程序的输出结果是【】

func(intx)

{

staticinta=3;

a+=x;

return(a);

}

main()

{

intk=2,m=1,n;

n=func(k);

n+=func(m);

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

}

A)8B)9C)11D)14

10、以下程序的正确运行结果是:

main()

{inta=2,i;

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

printf(“%4d”,f(a));

}

f(inta)

{intb=0;

staticintc=3;

b++;c++;

return(a+b+c);

}

A)777

B)71013

C)7911

D)789

11、执行下述程序的输出结果是【】

intfunc(intu,intv);

main()

{

inta=24,b=16,c;

c=func(a,b);

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

}

intfunc(intu,intv)

{

intw;

while(v)

{w=u%v;

u=v;

v=w;}

return(u);

}

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

12、以下程序运行后,输出结果是【】:

#include

func(inta,intb)

{

staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{

intk=4,m=1,p;

p=func(k,m);

printf("%d,",

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

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

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