C习题集Word文档格式.docx

上传人:b****8 文档编号:22345860 上传时间:2023-02-03 格式:DOCX 页数:53 大小:72.12KB
下载 相关 举报
C习题集Word文档格式.docx_第1页
第1页 / 共53页
C习题集Word文档格式.docx_第2页
第2页 / 共53页
C习题集Word文档格式.docx_第3页
第3页 / 共53页
C习题集Word文档格式.docx_第4页
第4页 / 共53页
C习题集Word文档格式.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

C习题集Word文档格式.docx

《C习题集Word文档格式.docx》由会员分享,可在线阅读,更多相关《C习题集Word文档格式.docx(53页珍藏版)》请在冰豆网上搜索。

C习题集Word文档格式.docx

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

二、填空题

1. 若K为int整型变量且赋值11。

请写出运算K++后表达式的值A)____和变量的值 B)____。

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

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

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

4.C语言中的标识符可分为____、____、和预定义标识符三类。

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

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

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

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

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

           a*b

c

10.表达式s=10应当读做’’____’’.

11.计算机中内存储器的最小存储单位称____,基中能容纳的数是____。

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

在一个字节中能存放的最大(10进制)整数是____,它的二进制数的形式是____:

最小(十进制)整数是____,它的二进制数的形式是____。

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

14.在C语言中整数可用____进制数、____进制数、和____进制数三种数制表示。

三、上机改错题(读者最好在TURBOC环境下上机试一试,以便熟悉出错信息)。

1.请指出以下C程序的错误所在

#includestdio.h;

main();

/*mainfunction*/

floatr,s;

/*/*risradius*/,/*isareaofcircular*/*/

r=5.0;

s=3.14159*r*r;

printf(“%g\n”,s)

2.请指出以下C程序的错误所在

 #includestdio.h;

/*mainfunction*/

{ floata,b,c,v;

/*a,b,caresides,visvolumeofcube*/

a=2.0;

b=3.0;

c=4.0

v=a*b*c:

printf(“%f\n”,v)

第四章最简单的C程序设计——顺序程序设计

一、选择题

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

 A)a=b=c=100;

B)d++;

C)c+b;

D)d=(c=22)-(b++);

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

A){inti;

i++;

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

}B);

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

}

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

A)a=b=58B)k=int(a+b);

C)a=58,b=58D)–i;

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

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

main()

{intx=10,y=3

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

}

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

A)read(a,b,c);

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

C)scanf(“%D%D%D”,&

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

a,&

b,&

c);

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

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

2222.033.033

33

scanf(“%f%f%f,&

7.若变量已正确定义,要将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;

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

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

C)5.168                   D)5.169

X=5.16894

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

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

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

Intcl=1,c2=2,c3;

c3=c1/c3;

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

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

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

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

11.当运行以下程序时,在键盘上从第一列开始输入9876543213210<CR>(此处<

cr>

代表enter)则程序的输出结果是

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

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

Main()

{inta;

floatb,c;

scanf(“%2d%3f%4f”,&

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

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

A)a=%2,B=%5B)a=3,b=5

C)a=%%d,b=%%dD)a=%d,b=%d

{inta=2,b=5;

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

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

A)-1,-1B)-1.32767C)-1.32769D)-1.65535

Inta=-1;

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

14.以下程序段的输出是

A)*496*B)*496*C)00496D)输出格式符合法

Intx=496

Printf(“%d06d*\n”,x);

15.以下程序段的输出是

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

Floata=3.1415;

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

16.以下程序段的输出是

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

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

17.以下程序段的输出是

A)*0000057.66*B)*57.66*C)*0000057.67*D)*57.67*

Floata=57.666;

Printf(“*%010.2f*\n”,a);

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

A)scanf(“%f”,c);

B)scanf(“%8.14f”,&

C)scanf(“%6.2f”,&

D)scanf(“%8”,&

283.1900<

CR>

<

表示回车键

19.若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(u代表空格)

A)3.12uu9.0<

B)a=uu3.12b=uuu9<

C)a=3.12,b=9<

D)a=3.12uu,b=9uuuu<

Scanf(“a=%f,b=%f”,&

b);

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

A)98B)89C)66D)以上三个都不对

#include“math.h”

{doublea=-3.0,b=2;

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

二、填空题

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

(1)_____

(2)_____(3)_______

intI=-200,j=2500;

printf(“

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

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);

k);

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

12.3<

表示回车

则变量I、j、k的值分别是___、____、____。

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

空语句的形式是___。

4. C语句的最后用__结束。

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

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

Intk;

floata;

doublex;

Scanf(“%d%f%lf’,&

K,&

x);

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

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

Intx=0177

Printf(“x=%-3d,x=%6d,x=%6x,x=%6u\n”,x,x,x,x,x,);

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

Printf(“x=%-3d,x=%6d,x=$%-06d,x=$%06d,x=%%06d\n”,x,x,x,x,x,);

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

Dublea=513.789215;

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

三、编程题和改错题

 1. 以下程序多处有错。

要按下面指定的形式输入 数据和输出数据时,请对该程序做相应的修改

 main

{doublea,b,c,s,v;

printf(inputa,b,c:

\n);

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

s=a*b;

v=a*b*c;

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

printf(“s=%f\n”,s,”v=%d\n”,v);

当程序执行时,屏幕的显示和要求输入形式如下;

inputa,b,c:

1.02.03.0←此处的  2.0  2.0  3.0是用户输入的数据

a=2.000000,b=2.000000,c=3.000000←此处是要求输出形式

s=4.000000,v=12.000000

2.编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

3.编写程序,输入两个整数:

1500和350,求出它们的商数和余并进行输出。

4.编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。

5.编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的数给c,把c原来的值给a。

第五章选择结构程序设计

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

A)!

    B)%   C)-=    D)&&

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

A)||    B)!

=C)<=    D)+

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

A)(x>

=y)&

&

(y>

=z)B)(x>

=)AND(y>

=x)

C)(X>

=y>

=z)D)(x>

=z)

4.设a、b和c都是int型变量,且a=3,b=4,c=5;

则以下的表达式中,值为0的表达式是

A)a&

bB)a<

=bC)a||b+c&

b-cD)!

((a<

b)&

!

c||1)

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

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

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

if(a<

b)

if(b<

0)c=0;

elsec+=1;

printf("

%d\n"

c);

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

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

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

(w<

x?

w:

z<

y?

z:

x));

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

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

{inta,b,s;

scanf("

%d%d"

&

s=a;

b)s=b;

s*=s;

s);

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

-1(x<

0)1(x<

0)

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

1(x>

0)0(x>

0(x<

0)-1(x<

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

y=-1;

if(x!

=0)

if(x>

0)y=1;

elsey=0;

9.运行以下程序后,输出

A)####B)&

C)####&

D)有语法错不能通过编译

{intk=-3;

if(k<

=0)printf("

****\n"

elseprintf("

\n"

);

10.若a和b均是正整型变量,以下正确的switch语句是

A)switch(pow(a,2)+pow(b,2))(注:

调用求幂的数学函数)

    {case1:

case3:

y=a+b:

break;

case0:

case5:

y=a-b;

B)switch(a*a+b*b);

{case3:

case1:

y=a+b;

y=b-a;

C)switcha

{default:

x=a+b;

case10:

case11:

x=a*b;

D)switch(a+b)

{case10:

x=a+b:

1.C语言中用__表示逻辑值"

真"

,用__表示逻辑值"

假"

.

2.C语言中的关系运算符按优先级别是__、__、__、__。

3.C语言中的逻辑运算符按优先级别是__、__、__。

4.C语言中的关系运算符和逻辑运算符的优先级别是__、__、__、__、__、__、__。

5.C语言中逻辑运算符__的优先级高于算术运算符。

6.将下列数学式改写成C语言的关系表达式或逻辑表达式A)__B)__。

A)a=b或a<

cB)|x|>

4

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

{inta=100;

if(a>

100)printf("

a>

100);

a<

=100);

8.写出与以下表达式等价的表达式A)__B)__。

A)!

(x>

0)B)!

9.当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为__、__、__。

10.若变量已正确定义,以下语句段的输出结果是__。

x=0;

y=2;

z=3

switch(x)

{case0:

switch(y==2)

{case1:

printf("

*"

case2:

%"

case1:

switch(z)

$"

default:

#"

三、编程题

1.请将以下语句改写成switch语句。

if(a<

30)m=1;

elseif(a<

40)m=2;

50)m=3;

60)m=4;

elsem=5

2.编写程序,输入一位学生的生日(年:

y0、月:

m0、日:

d0);

并输入当前的日期(年:

y1、月:

m1、日:

d1);

输出该生的实足年龄。

3. 编写程序,输入一个整数,打印出它是奇数还是偶数。

4.编写程序,输入a、b、c三个数,打印出最大者。

5.有一函数:

x(-5<

x<

y=x-1(x=0)

x+1(0<

10)

编写一程序,要求输入x的值,输出y的值。

分别用   

(1)不嵌套的if语句    

(2)嵌套的if语句

      (3)if_else语句      (4)switch语句

第六章循环控制

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

A)9B)1C)11D)10

Intk,j,s;

For(k=2;

k<

6;

k++,k++)

{s=1;

for(j=k;

j<

j++)s+=j;

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

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

A)12   B) 15   C)  10   D) 9

IntI,j,m=0;

For(I=1;

I<

=15;

j+=4)m++;

Printf(“%d\n”,m);

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

A)10B)9C)10D)9

9898

8787

76

intn=10;

while(n>

7)

{n--;

print(“%d\n”,n):

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

A)1B)30C)1-2   D)死循环

 Intx=3;

Do

{printf(“%3d\n”,x-2);

while(!

(--x));

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

A)15B)14C)不确定D)0

{intI,sum;

for(I=1;

I++)sum+=sum;

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

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

A)741B)852C)963D)875421

{inty=10;

for(;

y>

0;

y--)

if(y%3==0)

{printf(“%d”,--y);

continue;

7.若x是int型变量,以下程序段的输出结果是

A) **3  B) ##3C)##3D)**3##4

##4**3**4##5**5

**5##5

for(x=3;

x<

x++)

printf((x%2)?

(“**%d”);

(“##%d\n”),x);

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

A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$

{intI;

=5;

I++);

elsecontinue;

printf(“#”);

printf(“#”);

9.以下几种叙述正确的是

A)do_while语句构成的循环不能用其它语句构成的循环来代替。

B)do_while语句构成的循环只能用break语句退出。

C)用do_while语句构成的循环时,只有在while后的表达式为非零时结束循环。

D)用do_while语句构成的循环时,只有在while后的表达式为零时结束循环。

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

A)3981B)4284C)2668D)2870

{intx,I;

for(I=1;

=100;

I++)

{x=I;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

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

当前位置:首页 > 法律文书 > 判决书

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

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