C习题及答案.docx

上传人:b****5 文档编号:3246599 上传时间:2022-11-21 格式:DOCX 页数:28 大小:33.22KB
下载 相关 举报
C习题及答案.docx_第1页
第1页 / 共28页
C习题及答案.docx_第2页
第2页 / 共28页
C习题及答案.docx_第3页
第3页 / 共28页
C习题及答案.docx_第4页
第4页 / 共28页
C习题及答案.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C习题及答案.docx

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

C习题及答案.docx

C习题及答案

第一、二章C语言概述与算法

一、选择题(四个选项中只有一个是正确的----下同)

1.一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是

A)有零个或多个输入B)有零个或多个输出

C)有穷性D)可行性

2.以下叙述中正确的是

A)C语言的源程序不必通过编译就可以直接运行

B)C语言的每条可执行语句最终都将被转换成二进制的机器指令

C)C语言的源程序经编译形成的二进制代码可以直接运行

D)C语言的函数不可以单独进行编译

3.对用C语言编写的代码程序,以下叙述中哪个是正确的

A)可立即执行B)是一个源程序

C)经过编译即可执行D)经过编译解释才能执行

4.结构化程序由三种基本结构组成,由这三种基本结构组成的算法

A)可以完成任何复杂的任务B)只能完成部分复杂的任务

C)只能完成符合结构化的任务D)只能完成一些简单的任务

5.有一个命名为C001.C的C语言源程序,当正常执行后,在当前目录下不存在的文件是

A)C001.OBJB)C001.DATC)C001.EXED)C001.C

二、填空题

1.结构化程序由、、三种基本结构组成。

2.模块化程序设计的设计原则是和。

3.组成C程序的基本单位是,其组成部分包括和。

4.C程序中的main称,它可以出现在程序的位置。

5.由“/*”和“*/”括起来的内容称为,它的作用是。

6.描述算法的常用方法有:

第三章数据类型、运算符与表达式

一、选择题

1.与十进制数97不等值的字符常量是

A)’a’B)’\101’C)’\x61’D)’\141’

2.在编写了一个C语言源程序C001.C并正确执行之后,当前目录下哪个文件不存在

A)C001.CB)C001.OBJC)C001.DATD)C001.EXE

3.以下选项中正确的整型常量是

A)5.B)-10C)1.000D)4/5

4.以下选项中正确的实型常量是

A)0B)3.1415C)0.03x102D).32

5.以下选项中不正确的实型常量是

A)2.670E-1B)0.05e+1.5C)-77.77D)456e-2

6.以下选项中不合法的用户标识符是

A)wb-1B)fileC)MainD)PRINTF

7.以下选项中不合法的用户标识符是

A)_123B)printfC)A$D)Dim

8.C语言中运算对象必须是整型的运算符是

A)%B)/C)*D)+

9.可在C程序中用作标识符的一组标识符是

A)voidB)as_b3C)ForD)2c

Define_123-abcDO

WORDIfcaseSiG

10.若变量已正确定义并赋值,符合C语言语法的表达式是

A)a=a+7;B)a=7+b+c,a++C)int(12.3%4)D)a=a+7=c+b

11.以下非法的赋值语句是

A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;

12.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是

A)6.500000B)6C)5.500000D)6.000000

13.已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是

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

14.以下叙述中正确的是

A)a是实型变量,C允许以下赋值a=10,因此可以这样说实型变量中允许存放整型值。

B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式

C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0

D)已有a=3,b=5。

当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3

15.以下叙述中正确的是

A)在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。

B)C程序由主函数组成。

C)C程序由函数组成。

D)C程序由函数和过程组成。

16.TurboC中int类型变量所占字节数是

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

17.不合法的八进制数是

A)0B)028C)07700D)01

18.不合法的十六进制数是

A)oxffB)0XabcC)0x11D)0x19

19.若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是

A)a=b=c=100;B)d++;C)c+b;D)d=(c=22)-(b++);

20.以下选项中不是C语句的是

A){inti;i++;printf(“%d\n”,i);}B);

C)a=5,c=10D){;}

21.以下合法的C语言赋值语句是

A)a=b=58B)k=int(a+b);C)a=58,b=58D)--i;

22.以下程序的输出结果是

main()

{intx=10,y=3;

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

}

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

23.C语言中的简单数据类型有

A)整型、实型、逻辑型B)整型、实型、字符型

C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型

24.C语言中,字符(char)型数据在微机内存中的存储形式是

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

25.设有语句chara=‘\172’;,则变量a

A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法

26.C语言中不合法的字符常量是

A)’\xff’B)’\65’C)’&’D)’\028’

27.C语言中不合法的字符串量是

A)”\121”B)’y=’C)”\n\n”D)”ABCD\x6d”

二、填空题

1.若k为int型变量且赋值11,请写出运算k++后表达式的值和变量的值。

2.若x为double型变量,请写出运算x=3.2,++x后表达式的值和变量的值。

3.函数体由符号开始,用符号结束。

4.函数体的前面是部分,其后面是部分。

5.在C语言程序中,用关键字定义基本整型变量,用关键字定义单精度实型变量,用关键字定义双精度实型变量。

6.把a1、a2定义成单精度实型变量,并赋初值1的说明语句是。

7.C程序中定义的变量,代表内存中的一组。

8.表达式3.5+1/2的计算结果是。

9.对以下数学式,写出三个等价的C语言表达式是、、

10.表达式s=10应当读做“”。

11.计算机中内存储器的最小单位称为,其中能容纳的数是个

12.通常一个字节包含个二进制位。

在一个字节中能存放的最大十进制整数是,它的二进制数的形式是;最小十进制整数是,它的二进制形式是。

13.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是、最小十进制整数是,它们的二进制形式是。

14.以下程序的输出结果是。

main()

{inta=0;

a+=(a=8);

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

}

第四章顺序结构程序设计

一、选择题

1.若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是

A)read(a,b,c)B)scanf(“%d%d%d”,a,b,c);

C)scnaf(“%D%D%D”,&a,&b,&C);D)scanf(“%d%d%d”,&a,&b,&c);

2.若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是

scanf(“%f%f%f”,&a,&b,&c);

A)10B)10.0,22.0,33.0C)10.0D)1022

2222.033.033

33

3.已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是

A)scanf("%2d%2d%2d",&i,&j,&k);

B)scanf("%d%d%d",&i,&j,&k);

C)scanf("%d,%d,%d",&i,&j,&k);

D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);

4.若有以下程序:

main()

{intk=2,i=2,m;

m=(k+=i*=k);printf("%d,%d\n",m,i);

}

执行后的输出结果是

A)8,6B)8,3C)6,4D)7,4

5若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是

A)a=a+b,b=a-b,a=a-b;B)t=a;a=b;b=t;

C)a=t;t=b;b=a;D)t=b;b=a;a=t;

6.有以下程序

main()

{inti=10,j=1;

printf("%d,%d\n",i--,++j);

}

执行后输出结果是

A)9,2B)10,2C)9,1D)10,1

7.若变量已正确定义,以下程序段的输出结果是

x=5.16894;

printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);

A)输出格式说明与输出项不匹配,输出无定值B)5.17000

C)5.168000D)5.169000

8.若有以下程序段,c3中的值是

intc1=1,c2=2,c3;

c3=c1/c2;

A)0B)1/2C)0.5D)1

9.若有以下程序段,其输出结果是

inta=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

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

A)0,0,-10B)0,0,5C)-10,3,-10D)3,3,-10

10.当运行以下程序时,在键盘上从第一列开始,输入9876543210(此处表示Enter),则程序的输出结果是

main()

{inta;floatb,c;

scanf(“%2d%3f%4f”,&a,&b,&c);

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

}

A)a=98,b=765,c=4321B)a=10,b=432,c=8765

C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.0

11.以下程序的输出结果是

main()

{inta=2,b=5;

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

}

A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%d

12.若int类型占两个字节,则以下程序段的输出是

inta=-1;

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

A)-1,-1B)-1,32767C)-1,32768D)-1,65535

13.以下程序段的输出是

intx=496;

printf(“*%-06d*\n”,x);

A)*496*B)*496*

C)*000496*D)输出格式不合法

14.以下程序段的输出是

floata=3.1415;

printf(“|%6.0f|\n”,a);

A)|3.1415|B)|3.0|C)|3|D)|3.|

15.以下程序段的输出是

printf(“|%10.5f|\n”,12345.678);

A)|2345.67800|B)|12345.6780|C)|12345.67800|D)|12345.678|

16.若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是

A)scanf(%f”,c)B)scanf(%8.4f”,&c);C)scanf(%6.2f”,&c);D)scanf(%8f”,&c);

17.若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是

scanf(“a=%f,b=%f”,&a,&b);

A)3.129.0B)a=3.12b=9C)a=3.12,b=9.0D)a=3.12,b=9

18.以下程序的输出结果是

#include“math.h”

main()

{doublea=-3.0,b=2;

printf(“%3.0f%3.0f\n”,pow(b,fabs(a)),pow(fabs(a),b));

}

A)98B)89

C)66D)以上三个都不对

19.以下程序的输出结果是

main()

{charc1=‘A’,c2=‘Y’;

printf(“%d,%d\n”,c1,c2);

}

A)因输出格式不合法,无正确输出B)65,90

C)A,YD)65,89

20.以下程序段的输出结果是

main()

{charx=‘A’;

x=(x>=’A’&&x<=’Z’)?

(x+32):

x;

printf(“%c\n”,x);

}

A)AB)aC)ZD)z

21以下程序段的输出结果是

main()

{charch1,ch2;

ch1=‘A’+‘5’-‘3’;

ch2=‘A’+‘5’-‘3’;

printf(“%d,%c\n”,ch1,ch2);

}

A)67,CB)B,C

C)C,DD)不确定的值

22.若变量已正确说明,要求用以下语句给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是

scanf(“%f%c%f%c”,&a,&c1,&b,&c2);

A)2.0%4.0#B)2.0%4.0#C)2%4#D)2%4#

23.以下程序的输出结果是

main()

{intw=4,x=3,y=2,z=1;

printf(“%d\n”,(w

w:

z

z:

x));

}

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

24.下列程序段的输出结果是

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("%2d,%2.1f,%2.1f",a,b,c);

A)无输出

B)12,123.5,12345.5

C)1234,123.5,12345.5

D)1234,123.4,1234.5

二、填空题

1.若有以下定义,请写出以下程序段中输出语句执行后的结果。

(1)

(2)(3)

inti=-200,j=2500;

printf(“

(1)%d%d”,i,j);

printf(“

(2)i=%d,j=%d\n”,i,j);

printf(“(3)i=%d\nj=%d\n”,i,j);

2.变量i、j、k已定义为int类型并赋初值0,用以下语句输入时

scanf(“%d”,&i);scanf(“%d”,&j);scanf(“%d”,&k);

当执行第一个输入语句时从键盘输入:

    12.3表示Enter键

则变量i、j、k的值分别是。

3.复合语句在语法上被认为是。

空语句的形式是。

4.以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。

写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式、、。

intk;flaota;doublex;

scanf(“%d%f%lf”,&k,&a,&x);

printf(“k=%d,a=%f,x=%f\n”,k,a,x);

5.以下程序段的输出结果是。

intx=0177;

printf(“x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n”,x,x,x,x,x);

6.以下程序段的输出结果是。

doublea=513.789215;

printf(“a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\n”,a,a,a,a);

7.若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是。

请用代表Enter键。

scanf(“%d%c%d%c%d%c%d%c”,&w,&a,&x,&b,&y,&c,&z,&d);

8.若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入7.29和101.298,从键盘正确输入数据的形式是。

charc1,c2;floata1,a2;

scanf(“%f%f”,&a1,&a2);

scanf(“%c%c”,&c1,&c2);

9.若有以下说明和输入语句,要求给c1、c2、c3输入字符A、B和C,请写出从键盘正确输入数据的形式是。

charc1,c2,c3;

scanf(“%4c”,&c1);

scanf(“%4c”,&c2);

scanf(“%4c”,&c3);

10.下列程序的输出结果是16.00,请填空。

main()

{inta=9,b=2;

floatx=,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

第五章选择结构程序设计

一、选择题

1.下面的程序片断所表示的数学函数关系是

y=-1;

if(x!

=0)y=1;

if(x>0)y=1;

elsey=0;

-1(x<0)1(x<0)

A)y=0(x=0)B)y=-1(x=0)

1(x>0)0(x>0)

0(x<0)-1(x<0)

C)y=0(x=0)D)y=1(x=0)

1(x>0)0(x>0)

2.运行以下程序后,输出的结果是

main()

{intk=-3;

if(k<=0)

printf(“****\n”),

elseprintf(“&&&&\n”);

}

A)****B)&&&&

C)****&&&&D)有语法错误不能通过编译

3.有如下程序

main()

{

intx=1,a=0,b=0;

switch(x)

{

case0:

b++;

case1:

a++;

case2:

a++;b++;

}

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

}

该程序的输出结果是

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

4.有以下程序

main()

{

inta=5,b=4,c=3,d=2;

if(a>b>c)

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

elseif((c-1>=d)==1)

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

elseprintf("%d\n",d+2);

}

执行后输出结果是

A)2B)3C)编译时出错D)4

5.有以下程序

main()

{

inti=1,j=1,k=2;

if((j++||k++)&&i++)

printf("%d,%d,%d\n",i,j,k);

}

执行后输出结果是

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

6.有如下程序

main()

{

floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);}

该程序的输出结果是

A)0.000000B)0.250000C)0.500000D)1.000000

7.若执行以下程序时从键盘上输入3和4,则输出结果是

main()

{

inta,b,s;

scanf(“%d%d”,&a,&b);

s=a;

if(a

s*=s;

pritnf(“%d\n”,s);

}

A)14B)16C)18D)20

8.假定所有变量均已正确定义,下面语句段执行后的x的值是

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

if(!

a)x--;elseif(b);if(c)x=3;elsex=4;

A)34B)4C)35D)3

9.判断char型变量c是否为大写字母的C表达式是

A)’A’<=c<=’Z’B)(c>=’A’&(c<=’Z’)

C)(‘A’<=c)AND(‘Z’>=c)D)(c>=’A’)&&(c<=’Z’)

10.下列运算符中优先级最高的运算符是

A)!

B)%C)-=D)&&

11.下列运算符中优先级最低的运算符是

A)||B)!

=C)<=D)+

12.为表示关系x≥y≥z,应使用的C语言表达式是

A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)

C)(x>=y>=z)D)(x>=y)&(y>=z)

13.设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是

A)a&&bB)a<=b

C)a||b+c&&b-cD)!

((a

c||1)

14.以下程序的运行结果是

main()

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

printf(“%d\n”,c);

}

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

二、填空题

1.请写出以下程序的输出结果。

main()

{inta=100;

if(a>100)printf(“%d\n”,a>100);

elseprintf(“%d\n”,a<=100);

}

2.将上题中的双分支if语句改写成条件表达式语句:

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

当前位置:首页 > 小学教育 > 英语

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

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