广西科技大学工科类专业C语言复习练习题.docx

上传人:b****5 文档编号:14759261 上传时间:2023-06-27 格式:DOCX 页数:47 大小:63.42KB
下载 相关 举报
广西科技大学工科类专业C语言复习练习题.docx_第1页
第1页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第2页
第2页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第3页
第3页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第4页
第4页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第5页
第5页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第6页
第6页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第7页
第7页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第8页
第8页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第9页
第9页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第10页
第10页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第11页
第11页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第12页
第12页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第13页
第13页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第14页
第14页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第15页
第15页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第16页
第16页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第17页
第17页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第18页
第18页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第19页
第19页 / 共47页
广西科技大学工科类专业C语言复习练习题.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

广西科技大学工科类专业C语言复习练习题.docx

《广西科技大学工科类专业C语言复习练习题.docx》由会员分享,可在线阅读,更多相关《广西科技大学工科类专业C语言复习练习题.docx(47页珍藏版)》请在冰点文库上搜索。

广西科技大学工科类专业C语言复习练习题.docx

广西科技大学工科类专业C语言复习练习题

第2部分补充练习题

第1、2章C语言概述及数据类型与表达式

一、单项选择题

1.C语言源程序名的后缀是。

A.exe

B.c

C.obj

D.cpp

2.以下叙述中错误的是。

A.计算机不能直接执行用C语言编写的源程序

B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D.后缀为.obj和.exe的二进制文件都可以直接运行

3.可在C程序中作为用户标识符的一组是。

A.and

B.Date

C.Hi

D.case

_2007

y-m-d

Dr.Tom

Bigl

4.以下关于long、int和short类型数据占用内存大小的叙述中正确的是。

A.均占4个字节

B.根据数据的大小来决定所占内存的字节数

C.由用户自己定义

D.由C语言编译系统决定

5.若变量均已正确定义并赋值,以下合法的C语言赋值语句是。

A.x=y==5;

B.x=n%2.5;

C.x+n=i;

D.x=5=4+1;

6.以下正确的字符串常量是。

A."\\\"

B.'abc'

C.OlympicGames

D.""

7.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'。

执行语句printf("%d,%d",c1,c2-2);后输出结果是。

A.A,B

B.A,68

C.65,66

D.65,68

8.执行scanf("a=%d,b=%d",&a,&b);语句,若要使变量a和b的值分别为3和4,则正确的输入方法为.

A.3,4

B.a:

3b:

4

C.a=3,b=4

D.34

9.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。

以下所示的输入形式中正确的是(注:

□代表空格字符)。

A.10□X□20□Y<回车>

B.10□X20□Y<回车>

C.10□X<回车>

D.10X<回车>

20□Y<回车>

20Y<回车>

10.转换说明符%x的输出形式是。

A.十六进制数

B.八进制数

C.十进制数

D.二进制数

11.若有以下类型说明语句:

charw;

intx;

floaty;

doublez;

则表达式w*x+z-y的结果为类型。

A.float

B.double

C.int

D.char

12.将int型变量n转换成float型变量的方法是。

A.floatn

B.(float)n

C.float(n)

D.intn

13.以下不能正确计算代数式

值的C语言表达式是。

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

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

A./

B.%

C.!

D.*

15.运行以下程序段时编译出错,其原因是。

charc1='a',c2='123';

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

A.字符串要用"123"表示

B.'123'只能赋值给字符数组

C.c2是字符变量,不能用%d格式输出

D.c2是字符变量,只能赋以字符常量,不能赋以字符串常量

16.设有定义:

intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是。

A.k++

B.k+=1

C.++k

D.k+1

17.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中的大写字母转换成对应小写字母的语句是。

A.c=(c-'A')%26+'a'

B.c=c+32

C.c=c-'A'+'a'

D.c=('A'+c)%26-'a'

18.有以下程序:

#include

voidmain()

{intx,y,z;

 x=y=1;

z=x++,y++,++y;

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

 }

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

A.2,3,3

B.2,3,2

C.2,3,1

D.2,2,1

19.指出下面输入函数正确的是。

A.scanf("a=b=%d",&a,&b);B.scanf("a=%d,b=%f",&m,&f);

C.scanf("%3c",c);D.scanf("%5.2f",&f);

20.有以下程序:

#include

voidmain()

{charc1,c2,c3,c4,c5,c6;

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

c5=getchar();

c6=getchar();

putchar(c1);

putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是。

A.1267

B.1256

C.1278

D.1245

21.以下程序的功能是:

给r输入数据后计算半径为r的圆面积s。

#include

voidmain()

/*Beginning*/

{intr;

floats;

scanf("%d",&r);

s=π*r*r;

printf("s=%f\n",s);

}

程序在编译时出错,出错的原因是。

A.注释语句书写位置错误

B.存放圆半径的变量r不应该定义为整型

C.输出语句中格式描述符非法

D.计算圆面积的赋值语句中使用了非法变量

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

#include

voidmain()

{intm=3,n=4,x;

  x=-m++;

  x=x+8/++n;

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

}

A.3

B.5

C.-1

D.-2

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

#include

voidmain()

{intx=4,y=8;

 x+=y;

 y+=x;

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

}

A.1220

B.48

C.1212

D.84

24.下列程序的执行结果是。

#include

voidmain()

{intx='c';

printf("%c\n",'B'+(x-'b'+1));

}

A.D

B.H

C.I

D.J

25.下列程序的执行结果是。

#include

voidmain()

{inta=5;

floatx=2.14;

a*=x*('D'-'A');

printf("%f\n",(float)a);

}

A.32.100000

B.32

C.32.000000

D.33.000000

26.数字字符0的ASCII值为48,以下程序运行后的输出结果是。

#include

voidmain()

 {chara='1',b='2';

   printf("%c,",b++);

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

  }

A.3,2

B.50,2

C.2,2

D.2,50

27.有以下程序:

#include

voidmain()

{chara1='M',a2='m';

printf("%c\n",a1,a2);

}

 以下叙述中正确的是。

A.程序输出大写字母M

B.程序输出小写字母m

C.格式说明符不足,编译出错

D.程序运行时产生出错信息

28.有以下程序:

#include

voidmain()

{charc1='1',c2='2';

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

}

当运行时输入:

a<回车>后,以下叙述正确的是。

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入第2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值

二、填空题

1.一个C源程序是由若干个函数构成,其中必须有一个是main函数。

2.两整数相除的结果为int类型。

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

函数体的前面是定义语句部分,其后是执行语句部分。

4.在C语言中整数可用二进制进制数、十六进制数和十进制进制数三种数制表示。

5.在C语言程序中,整型数据占4字节,用关键字float定义单精度实型变量,字符型数据占1字节。

6.执行以下程序后的输出结果是14。

#include

voidmain()

{inta=10;

a=(3*5,a+4);

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

}

7.设有定义:

floatx=123.4567;则执行以下语句后的输出结果是123.460000。

printf("%f\n",(int)(x*100+0.5)/100.0);

8.已知字母A的ASCII码为65。

以下程序运行后的输出结果是67G。

#include

voidmain()

{chara,b;

a='A'+'5'-'3';

b=a+'6'-'2';

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

}

9.有以下程序,当运行时输入:

12<回车>后,输出结果是12。

#include

voidmain()

{charch1,ch2;

intn1,n2;

ch1=getchar();

ch2=getchar();

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

n1=ch1-'0';

n2=n1*10+(ch2-'0');

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

}

10.执行以下程序后的输出结果是。

#include

voidmain()

{intx,y,z;

x=y=2;

z=3;

y=z++-1;

printf("%d\t%d\t",x,y);//x=2y=2z=4

y=++x-1;

printf("%d\t%d\n",x,y);//x=3,y=2,z=4

y=z---1;

printf("%d\t%d\t",z,y);//x=3,y=3,z=3

y=--z-1;

printf("%d\t%d\n",z,y);//x=3,y=1,z=2

}

11.执行以下程序后的输出结果是。

#include

voidmain()

{intx;

x=-3+4*5-6;

printf("%d,\t",x);//11,

x=3+4%5-6;

printf("%d,\t",x);//1,

x=(7+6)%5%2;

printf("%d\n",x);//1

}

12.执行以下程序后的输出结果是。

#include

voidmain()

{inta,b=97;

a=-3;

printf("\ta=%d\tb=\'%c\'\t\"end\"\n",a,b);//-3a

}

13.以下程序输入1.2345.6789,则程序运行结果为x=1.230000,y=45.678900,

请填空完成程序。

注:

表示回车。

#include

voidmain()

{doublex,y;

scanf();//"%4lf%7lf",&x,&y

printf("x=%lf,y=%lf\n",x,y);

}

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

#include

voidmain()

{inti=5,j=9;

floatx=2.3,y=4.5;

printf("%8.2f\n",i%(int)(x+y)*j/2/3+y);//11.5

}

第3章算法的基本控制结构

一、单项选择题

1.以下叙述中错误的是。

A.C语句必须以分号结束

B.复合语句在语法上被看作一条语句

C.空语句出现在任何位置都不会影响程序运行

D.赋值表达式末尾加分号就构成赋值语句

2.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同

这个选项是。

A.k%2

B.k%2==1

C.(k%2)!

=0

D.!

k%2==1

3.有以下程序段

intk=0,a=1,b=2,c=3;

k=a

b:

a;k=k>c?

c:

k;

执行该程序段后,k的值是。

A.3

B.2

C.1

D.0

4.设变量a、b、c、d和y都已正确定义并赋值。

若有以下if语句

if(a

if(c==d)y=0;

elsey=1;

该语句所表示的含义是。

0a

A.y=

1a≥b

0a

B.y=

1a≥b且c≠d

0a

C.y=

1a

0a

D.y=

1c≠d

5.以下程序运行后的输出结果是。

#include

voidmain()

{inta,b,d=25;

a=d/10%9;b=a&&(-1);

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

}

A.6,1

B.2,1

C.6,0

D.2,0

6.以下程序运行后的输出结果是。

#include

voidmain()

{inta=1,b;

for(b=1;b<=10;b++)

{if(a>=8)break;

if(a%2==1)//b=1a=1a=6b=2a=3b=3a=8b=4break;

{a+=5;

continue;

}

a-=3;

}

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

}

A.3

B.4

C.5

D.6

7.设变量已正确定义,则以下能正确计算f=n!

的程序段是。

A.f=0;

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

f*=i;

B.f=1;

for(i=1;i

f*=i;

C.f=1;

for(i=n;i>1;i++)

f*=i;

D.f=1;

for(i=n;i>=2;i--)

f*=i;

8.设a为整型变量,不能正确表达数学关系:

10

A.10

B.a==11||a==12||a==13||a==14

C.a>10&&a<15

D.!

(a<=10)&&!

(a>=15)

9.当执行以下程序段时,供选择的答案是。

a=-3;do{a+=a;}while(!

a);

A.循环体将执行一次

B.循环体将执行两次

C.循环体将执行无限次

D.系统提示有语法错误

10.若定义intk;则以下循环语句的循环执行次数是。

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

A.无限

B.0

C.1

D.2

11.为了避免嵌套的条件语句if-else的二义性,C语言规定。

A.else与缩排位置相同的if配对

B.else与其之前最近的if配对

C.else与其之后最近的if配对

D.else与同一行上的if配对

12.以下不正确的描述是。

A.用while和do-while循环时,循环变量初始化的操作应在循环语句前完成

B.while循环是先判断表达式,后执行循环体语句

C.do-while和for循环均是先执行循环体语句,后判断表达式

D.for,while和do-while循环中的循环体语句均可以由空语句构成

13.下列条件语句中,功能与其他语句不同的是。

A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!

=0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

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

#include

voidmain()

{inti=0,s=0;

 for(;;)

  {if(i==3||i==5)continue;

  if(i==6)break;

  i++;

  s+=i;

  }

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

}

A.10

B.13

C.21

D.程序是死循环

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

#include

voidmain()

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

  if(a>b)

  if(b>c)

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

  else

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

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

 }

A.2

B.3

C.43

D.44

16.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是。

A.(!

E==0)

B.(E>0‖E<0)

C.(E==0)

D.(E!

=0)

17.要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是。

A.while((ch=getchar())!

=N)printf("%c",ch);

B.while(ch=getchar()!

='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

18.有以下程序:

#include

voidmain()

{intx=6;

while(x--);

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

}

运行程序的输出结果是。

A.x=0

B.x=-1

C.x=1

D.while构成无限循环

二、填空题

1.表示条件:

10

2.当x=6,y=5,z=4时,表达式a=x>y>z的值是。

3.阅读下列程序:

#include

voidmain()

{charc;

while((c=getchar())!

='\n')

{if(c>='A'&&c<='Z')c=c+32;

elseif(c>='a'&&c<='z')c=c-32;

printf("%c",c);

}

printf("\n");

}

执行时,如果从键盘上输入:

DEFabc<回车>,则运行结果是。

4.输入:

742<回车>,以下程序的运行结果是9866。

#include

voidmain()

{intc;

while((c=getchar())!

='\n')

{switch(c-'2')

{case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

default:

putchar(c+2);break;

}

}

printf("\n");

}

5.执行以下程序后的输出结果是4。

#include

voidmain()

{inti,j,x=0;

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

{x++;

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

if(j%2)break;

x++;

}

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

}

6.以下程序的功能是:

输出a、b、c三个变量中的最小值,请填空。

#include

voidmain()

{inta,b,c,t1,t2;

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

t1=a

;

t2=c

;

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

}

7.有以下程序段,且变量已正确定义和赋值:

for(s=1.0,k=1;k<=n;k++)

s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空,使下面程序段的功能与之完全相同。

s=1.0;k=1;

while()

{s=s+1.0/(k*(k+1));

;}

printf("s=%f\n\n",s);

8.:

一球从100米高度垂直自由落下,每次落地后反弹回上次高度的一半,再落下……。

以下程序计算该球第10次反弹高度(米),以及球第10次落地时经过的路程(米)。

9.求s=1+12+123+

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2