中南民大C语言各章习题附答案.docx

上传人:b****8 文档编号:9986891 上传时间:2023-02-07 格式:DOCX 页数:54 大小:37.71KB
下载 相关 举报
中南民大C语言各章习题附答案.docx_第1页
第1页 / 共54页
中南民大C语言各章习题附答案.docx_第2页
第2页 / 共54页
中南民大C语言各章习题附答案.docx_第3页
第3页 / 共54页
中南民大C语言各章习题附答案.docx_第4页
第4页 / 共54页
中南民大C语言各章习题附答案.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

中南民大C语言各章习题附答案.docx

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

中南民大C语言各章习题附答案.docx

中南民大C语言各章习题附答案

 

C语言程序设计习题

 

学院:

计算机科学学院

专业:

年级:

班级:

姓名:

学号:

第1~2章习题

1、一个C程序的执行是从

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

2、以下叙述正确的是:

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写一条语句C)分号是C语句的必要组成部分

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

3、以下叙述不正确的是:

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数

C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面

4、C语言规定:

在一个源程序中,main函数的位置

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后

5、一个C语言程序是由

A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成

6、在C语言中,5种基本数据类型的存储空间长度的排列顺序为

A)char

C)char

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

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

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

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

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

9、下列四组选项中,均不是C语言关键字的选项是:

A)defineB)getcC)includeD)while

IFcharscanfgo

typeprintfcasepow

10、设以下变量均为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+l,x=y,x+1)

11、下面四个选项中,均是不合法的用户标识符的选项是:

A)AB)floatC)b-aD)-123

P_0La0gototemp

do-AintINT

12、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符

A)必须为字母B)必须为下划线

C)必须为字母或下划线D)可以是字母,数字和下划线中任一种字符

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

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

-0xffff01a986,0122e5

0110xe06680x

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

intk=7,x=12;

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

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

A)160.B)123C)-.18D)-e3

0.122e4.2123e4.234

e3.e50.01e3

16、设有说明:

charw;intx;f1oaty;doublez;则表达式w*x+z-y值的数据类型为:

A)floatB)charC)intD)double

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

A)'\''B)'\'C)'\018'D)'\\0'

'\\''\017''\f''101'

'\n''\"''xab''xlf'

18、设inta=6,则执行完语句a-=a+=a*=a后,a的值是

A)36B)72C)-36D)0

19、下面正确的字符常量是:

A)"a"B)'\\''C)'W'D)''

20、下面四个选项中,均是不正确的八进制数或十六进制数的选项是:

A)016B)oabcC)010D)0a12

0x8f017-0x117ff

0180x80x16-123

21、设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为:

A)0~255B)0~32767C)0~65535D)0~2147483647

22、下面四个选项中、均是正确的数值常量或字符常量的选项是:

A)0.0B)"a"C)'3'D)+001

0f3.9E-2.50110xabcd

8.9elel0xFFOO2e2

'&''\'''0a50.

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

A)'abc'B)"12'12"C)"0"D)""

24、若有代数式3ae/bc,则不正确的C语言表达式是:

A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3

25、已知各变量的类型说明如下:

intk,a,b;

unsignedlongw=5;

doublex=1.42;

则以下不符合C语言语法的表达式是:

A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)

26、已知各变量的类型说明如下:

inti=8,k,a,b;

unsignedlongw=5;

doublex=1.42,y=5.2;

则以下符合C语言语法的表达式是:

A)a+=a-=(b=4)*(a=3)B)a=a*3=2C)x%(-3)D)y=f1oat(i)

27、以下不正确的叙述是:

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

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

C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。

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

28、以下正确的叙述是:

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

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

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

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

29、表达式18/4*4.0/8值的数据类型为:

A)intB)floatC)doubleD)不确定

30、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为:

A)DB)EC)不确定的值D)C

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

A)/B)++c)!

=D)%

32、若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值为:

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

33、在C语言中,int、char和short种类型数据在内存中所占用的字节数

A)由用户自己定义B)均为2个字节C)是任意的D)由所用机器的机器字长决定

34、若有说明语句:

charc='\72'则变量c

A)包含1个字符B)包含2个字符

C)包含3个字符D)说明不合法,c的值不确定

35、若有定义:

inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

A)2.500000B)2.7500OOC)3.500000D)0.000000。

36、sizeof(float)是:

A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式

37、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为

A)intB)floatC)doubleD)不确定

38、以下选项中,与k=++n完全等价的表达式是

A)k=n,n=n+1B)n=n+1,k=nC)k=n++D)k+=n+1

39、在C语言中,char型数据在内存中的存储形式是:

A)补码B)反码C)原码D)ASCII码

40、设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是:

A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0

 

第3~5章习题

1、putchar函数可以向终端输出一个:

A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值

2、若运行以下程序时,从键盘输入ADescriptor(CR)表示回车),则下面程序的运行结果是:

#include

main()

{charc;

intv0=0,v1=0,v2=0;

do{

switch(c=getchar())

{case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'o':

Case'O':

case'u':

case'U':

v1+=1;

default:

v0+=1;v2+=1;

}

}while(c!

='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

}

A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=12,vl=4,v2=12

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

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

A)A%2==1B)!

(A%2==0)C)!

(A%2)D)A%2

4、已有定义intx;f1oaty;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345678(回车),则x的值为:

A)12345B)123C)45D)345

5、设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是

A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次

6、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是:

inta1,a2;charc1,c2;

scanf("%d%d",&a1,&a2);

scanf("%c%c",&c1,&c2);

A)1020ABB)1020ABC)1020ABD)1020AB

7、已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为:

main()

{inta;floatf;

printf("\nInputnumber:

");

输入语句

printf("\nf=%f,a=%d\n,f,a);

}

Inputnumber:

4.52

A)scanf("%d,%f",&a,&f);B)scanf("%f,%d",&f,&a)C)scanf("%d%f",&a,&f);D)scanf("%f%d",&f,&a);

8、以下说法正确的是:

A)输入项可以为一实型常量,如scanf("%f",3.5);

B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);

D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);

9、阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为:

main()

{intx,y,z;

scanf("%d%d%d",&x,&y,&z);

printf("x+y+z=%d\n“,x+y+z);

}

A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值

10、阅读下程序,若运行结果为如下形式,输入输出语句的正确内容是:

main()

{intx;floaty;printf("enterx,y:

");

输入语句输出语句

}

输入形式enterx,y:

2

3.4

输出形式x+y=5.40

A)scanf("%d,%f",&x,&y);

printf("\nx+y=%4.2f",x+y);

B)scanf("%d%f",&x,&y);

printf("\nx+y=%4.2f",x+y);

C)scanf("%d%f",&x,&y);

printf("\nx+y=%6.2f",x+y);

D)scanf("%d%3.1f",&x,&y);

printf("\nx十y=%4.2f",x+y);

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

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

while(a

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

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

12、根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为:

main()

{charch1,ch2,ch3;

输入语句

printf("%c%c%c",ch1,ch2,ch3);}

输入形式:

ABC

输出形式:

AB

A)scanf("%c%c%c",&ch1,&ch2,&ch3);B)scanf("%c,%c,%c",&ch1,&ch2,&ch3);

C)scanf("%c%c%c",&ch1,&ch2,&ch3);D)scanf("%c%c",&ch1,&ch2,&ch3);

13、有输入语句:

scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是:

A)132(回车)B)1,3,2(回车)C)a=1b=3c=2(回车)D)a=1,b=3,c=2(回车)

14、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是:

A)inta=5,b=5,c=5;B)inta,b,c=5;C)inta=b=c=5;D)a=b=c=5;

15、以下程序段

x=-1;

do

{x=x*x;}while(!

x);

A)是死循环B)循环执行二次C)循环执行一次D)有语法错误

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

A)ch='123';B)ch='\xff';C)ch='\08';D)ch="\";

17、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。

#include

main()

{intn,sum=0;

n=2345

do{sum=sum+(n%10)*n%10);

n=【】;

}while(n);

printf("sum=%d",sum);

}

A)n/1000B)n/100C)n/10D)n%10

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

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

19、下面有关for循环的正确描述是:

A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

20、逻辑运算符两侧运算对象的数据类型:

A)只能是0或1B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据

21、下关于运算符优先顺序的描述中正确的是:

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑与运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑与运算符

22、对for(表达式1;;表达式3)可理解为:

A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)

23、能正确表示"当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是:

A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B)(x>=1)||(x<=10)||(x>=200)||(x<=210)

C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)

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

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

D)(‘A’<=ch)AND('Z'>=ch)

25、若i为整型变量,则以下循环执行次数是:

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

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

26、以下程序段的输出结果是

inti,j;

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

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

if(i!

=j)break;

printf(“i=%d,j=%d”,i,j);

A)i=2,j=2B)i=1,j=1C)i=0,j=1D)i=2,j=3

27、以下程序的运行结果是

#include

main()

{intm=1,j=1,k=1,sum=0;

while(m<8)

{m++;sum++;

while(j<5)

{j++;sum++;

while(k<5)

{k++;sum++;

if(sum>10)gotostop;

}

}

}

stop:

printf(“m=%d,j=%d,k=%d,sum=%d\n”,m,j,k,sum);

}

A)m=8,j=5,k=5,sum=15B)m=2,j=3,k=5,sum=11C)m=8,j=5,k=5,sum=39D)m=2,j=2,k=1,sum=11

28、设有inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为:

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

29、以下正确的描述是

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

B)只能在循环体内使用break语句

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

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

E)在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作

30、以下程序的运行结果是:

#include"stdio.h"

main()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

A)6,1B)2,1C)6,0D)2,0

31、下面程序段:

for(t=1;t<=100;t++)

{scanf("%d",&x);

if(x<0)continue;

printf("%3d",x);}

A)当x<0时整个循环结束B)x>=0时什么也不输出C)printf函数永远也不执行

D)最多允许输出100个非负整数

32、已有如下定义和输入语句,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是:

inta1,a2;charc1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

A)10A20BB)10A20BC)10A20BD)10A20B

33、若w,x,y,z,m均为int型变量,则执行下面语句后的m值是:

w=1;x=2;y=3;z=4;

m=(w

w:

x;

m=(m

m:

y;

m=(m

m:

Z;

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

34、下面程序段:

x=3;

do

{y=x--;

if(!

y){printf("x");continue;}

printf("#");

}while(1<=x<=2);

A)将输出##B)将输出##*C)是死循环D)含有不合法的控制表达式

35、以下程序的运行结果是:

main()

{intk=4,a=3,b=2,c=1;

printf("\n%d\n",k

k:

c

c:

a);

}

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

36、请阅读以下程序

main()

{inta=5,b=0,c=0;

if(a=b+c)printf("***\n");

e1seprintf("$$$\n");

}以上程序:

A)有语法错不能通过编译可以通过编译但不能通过连接C)输出***D)输出$$$

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

#include"stdio.h"

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%3==1){b+=3;continue;}

b-=5;}

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

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

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

#include

{intk=0;

charc='A';

do

{switch(c++)

{case'A':

k++;break;

case'B':

k--;

case'C':

k+=2;break;

case'D':

k=k%2;

cas

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

当前位置:首页 > 初中教育 > 语文

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

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