C语言考试题库及答案_第1页
C语言考试题库及答案_第2页
C语言考试题库及答案_第3页
C语言考试题库及答案_第4页
C语言考试题库及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言考试题库及答案

1.以下不是C语言的特点的是(C)

A、C语言简洁,紧凑B、能够编制出功能复杂的程序

C、C语言可以直接对硬件进行操作D、C语言的移植性好

2.一个C程序是由()B

A、一个主程序和若干个子程序组成B、一个或多个函数组成

C、若干过程组成D、若干子程序组成

3.以下描述正确的是()C

A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合

语句。

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

C、在do-while循环体中,不一定要有能使while后面表达式的值变成零(“假”)的操作。

D、do-while循环中,根据情况可以省略while。

4.以下对一维整形数组a的正确说明是()D

A、inta(10);B、intn=10,a[n];

C、intn;D、inta[10];

5.以下对二维数组a的正确说明是()C

A、inta[3][];B、floata(3,4);

C、doublea[l][4];D、floata⑶⑷;

6.数组名作为实参传给被调用的函数时,形参获得的是()C

A、该数组第一个元素的值

B、该数组所有元素的值

C、该数组第一个元素的首地址

D、该数组所有元素的首地址

7.C程序的开始是从()A

A、main。函数开始,直到main。函数结束

B、第一个函数开始,直到最后一个函数结束

C、第一个语句开始,直到最后一个语句结束

D、main。函数开始,直到最后一个函数结束

8.在C程序中,main()函数的位置()C

A、必须作为第一个函数B、必须作为第二个函数

C、可以任意D、必须放在它所调用的函数之后

9.C编译程序是()C

A、C语言的机器语言版本B、一组机器语言指令

C、将C源程序编译成目标程序的程序D、是由自己编制的

10以下叙述中错误的是()C

A、C程序经过编译、连接之后形成一个真正可执行的二进制机器指令文件

B、用C语言编写的程序称为源程序,它以ASCH代码形式存放在文件中

C、C语言中的每条可执行语句和非执行语句最终被转换成二进制的机器指令

非执行的语句不转换:例如〃和/**/是注释的意思

D、C语言源程序经编译后生成后缀为.obj的目标程序

1.以下不正确的C语言标识符是()D

字母,数字,下划线组成,但是不能以数字开头

A、ABCB、abcC^a_bcD、ab.c

12.一个C语言程序是由()B

A、一个主程序和若干子程序组成B、函数组成

C、若干过程组成D、若干子程序组成

13似下叙述错误的是()C

算法可以没有输入输入,但是一定不能没有输出

A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入

C、算法正确的程序可以有零个输出

D、算法正确的程序对于相同的输入一定有个相同的结果

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

C

强制类型转换

A、intB^floatC、doubleD、不确定

15.以下叙述中错误的是()C

A、结构化程序由顺序、分支、循环三种基本结构组成

B、C语言是一种结构化程序设计语言

C、使用三种基本结构构成的程序只能解决简单问题

D、结构化程序设计提倡模块化的设计方法

16.以下叙述中错误的是()C

A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入

C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同

的结果

17.以下选项中关于程序模块化的叙述错误的是()B

A、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

C、把程序分成若干相对独立的模块,可便于编码和调试

D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

18.关于C语言的符号常量,以下叙述中正确的是()C

A、符号常量的名是标识符,必须大写B、符号常量的名是标识符,必须小写

C、符号常量是指用一个符号名来代表一个常量

D、符号常量的符号名必须是常量

19.关于C语言的变量,以下叙述中错误的是()B

A、所谓变量是指在程序运行过程中其值可以被改变的量

B、变量所占的存储单元地址可以随时改变

C、程序中用到的所有变量都必须先定义后使用

D、由三条下划线构成的符号名是合法的变量名

20以下选项中合法的变量名是()C

A、5aB、A%C、_10_D、sizeof

21.在C语言中,char型数据在内存中的存储形式是()D

A、补码B、反码C、源码D、ASCII码

22.有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是(

B

#include<stdio.h>

main(){

intx;

floaty;

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

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

23.C语言中,不合法的字符常量是()•B

双引号””包括起来的整体是字符串

A.'\t'B."a"C.'a'D.'\x32'

24.在C语言中,数字0x32是一个()。D

A.非法数B.八进制数C.十进制数D.十六进制数

25.已知字母A的ASCII码是65,以下程序的执行结果是()D

#include<stdio.h>

main()

,'

charcl=A'zc2=C;

()

printf"%d,%d\n"zcl,c2;

A、A,YB、65,65C、65,90D、65,67

26.下列运算符中优先级最高的是()C

A、VB、+C、!D>=

27.若变量均己正确定义并赋值,以下合法的C语言赋值语句是()D

赋值语句=左边必须为变量,不能为常量。B选项等式两边均为变量

A、x=m%2.5;B、x+n=i;C、x=5=4+l;D^x=y==5;

28.若有定义语句inta=3,b=2,c=l;以下选项中错误的赋值表达式是()B

A、a=b=c+l;B、a=(b=4)=3;C、a=(b=4)+3;D^a=l+(b=c=4);

29.有以下程序

main()

{intx=lzy=0;

if(冈y++;

elseif(x==O)

if(x)y+=2;

elsey+=3;

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

程序运行后的输出结果是()B

#include<stdio.h>

intmain(void)

(

intx=l,y=O;

if(!x)

y++;

elseif(x==O)〃这里不满足,直接就结束了

if(x)

y+=2;

else〃这个else只和最近的if生效

y+=3;

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

return0;

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

30.有以下程序段,程序的运行结果是()D

main()

{intx=l,y=0/a=0,b=0;

switch(x)

{casel:a++;b++;a++;break;

case2:a++;b++;break;

case3:a++;b++;}

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

A、a=2,b=2B、a=l,b=lC、a=l,b=0D、a=2,b=l

31.下列叙述中正确的是()C

A、在switch语句中必须使用default

B^break语句必须与switch语句中的case配对使用

C、在switch语句中,不一定使用break语句

D,break语句只能用于switch语句

32.以下叙述中正确的是()A

可以自己调用自己:eg:递归函数

A、函数名代表该函数入口地址B,所有函数不能接受函数名作为实参传入

C、函数体中的语句不能对自己的调用D、如果函数带有参数,就不能调用自己

33.下列定义数组的语句中,正确的是()。B

ANintN=10;intx[N];B、#defineN10intx[N];C>int[0..10];D、intx[];

34.下面程序的运行结果是()A

这是结构体,就是看着有点复杂

#include<stdio.h>

#include<string.h>

voidmain()

{tructstudent

{intxh;

charxm[20];

}studl={1001;'LiMing"};

printf("xh=%d,xm=%s\n",studl.xh,studl.xm);}

A、xh=1001,xm=LiMingB、xh=1001,xm=

C、xh=,xm=D、xh=lxm=L

35.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是()。

D

A、A'&&

B、x<=y

C、x11y+z&&y-z

D、!((x<y)&&!z||1)

36.判断char型变量cl是否为小写字母的正确表达式为()D

A、'a'<=cl<=f,zB、(cl>=a)&&(cl<=z)

C、('a'>=cl)(<z,<=cl)D、(cl>=,a')&&(clV='z')

37.字符串"a"在内存中占据的字节个数为()C

字符串以\0结束,占用一个字节,但是如果计算机的话不会算\0,后面有题

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

38.下面有关for循环的正确描述是()D

A、for循环只能用于循环次数已经确定的情况

大多数用于循环次数已知的

B、for循环是先执行循环体语句,后判定表达式

先判定,后循环

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

D、for循环体语句中,可以包含多条语句,但要用花括号括起来

39.下面程序的运行结果是()C

#include<stdio.h>

main()

{intnum=0;

while(num<=2)

{num++;

printf(u%d,num);}

}

A、1B、12C、123D、1234

40.C程序是由函数构成,C程序总是由(main)函数开始执行。

41.C程序书写自由,(;)是C程序语句结束的标志。

42.结构化程序设计的三种基本机构为顺序结构、选择结构(分支结构)和循环结构

43.程序中注释采用(〃或者/**/)标识作为对程序进行解释说明。

44.在C语言中的实型变量分为两种类型,它们是—float和double。

45.当a=5,b=4,c=2时,表达式a>b!=c的值是1。左结合

,下列程序片段运行后的输出结果是

46—0124—0

for(k=0;k<5;k++)

if(k==3)continue;

(H)

printf"%dzk;

K=3的时候不输出直接continue,开始下一个k=4,然后输出k=4

47.实型变量分为单精度和双精度,定义双精度变量的类型说明符为(double)o

48.表达式a+=a-=a=9的值是(0)。

a=9;a=a-9;a=0;a=a+0;a=0

49.若有以下程序,则程序的输出结果是(5,-2)o

#include<stdio.h>

main()

{inta=-ll/b=10;

a/=b/=-4

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

50.表示关系式xWyWz的C语言表达式为((y>=x)&&(y<二z))。

51.设1山\/\/二1小二2,丫二32二41二5力二6;则执行语句(2二\/\/")&&(13二丫>2);后6二()

逻辑与运算符&&,当左边不成立时,右边直接不看,b的赋值直接不执行,还是b=6;

52.执行程序中printf("%d”,strlen("good"));的输出结果为(4)。

计算机并不会加上\0

53.数学表达式0<x<10在C语言中正确的表达方式是(0<x)&&(x>10)o

54.在C语言中,二维数组元素的内存中的存放顺序是_按行存放o

55.在C语言中,表达式后加;构成C语言语句。

分号一定要是英文的哦

56.C语言中文件的存取方式可以顺序存取,也可以随机存取。()T

57.系统分配给一个结构体变量的内存空间字节数是各成员所需内存字节数的总和。()

T

58.C语言程序的变量必须先定义再使用。()T

59.C语言中一行可以写多个语句,一个语句也可以写多行。()T

60.C语言是属于高级语言。()T

这个高级的意思并不是优先级高(并不是等级高的意思),而是相较机器语言那一种低级语

言语言来说是高级语言。

61.C语言程序的变量必须符合标识符的命名格式。()T

62.同一结构体类型中的各成员项数据类型可以不相同。()T

数组中必须要求是同一类型

63.C语言程序中,switch语句可以使用break。()T

64.关系表达式或逻辑表达式用1代表逻辑“真”,0代表逻辑“假”。()T

65.同一结构体类型中的各成员项数据类型可以不相同。()T

66.C语言程序中,switch语句不一定使用default。()T

67.条件表达式只能是关系表达式或逻辑表达式.()F

还有算数表达式

68.运算符/和%要求参加运算的对象均为整型数据。()F

69.Abs100是合法的标识符。()T

70.函数的调用次数可以是多次的。()T

71.函数的类型可以是整型、实型、字符型,但不可以是指针型。()F

72.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值。F

程序设计题

1.输入圆的半径,输出圆的周长、面积,编写程序的要求如下:

(1)定义符号常量:#definePI3.1415926。

(2)定义双精度变量:圆半径r,圆周长I,圆面积s。

(3)输出10位宽度,其中两位小数,输出数字左对齐。

(•]圆的周长与面积<

1#include<stdio.h>

2#definepi3.1415926

3intmain(void)

4E){

5doubler,1,s;

6printf("pleaseinputr:N*)[//4示输入陶的¥汴

7scanf("%lf",&r);〃管人掰的//户

8l=2*pi*r;////^/y/v

9s=pi*r*r;〃〃奴/切族

10printf(”网的冏长是%//输入周氏

11printf("|M|的血枳是%10.2f",s);//赧/〃阑次

12return0;

13L

Printf里面的%f改为%10.2f

10表示宽度,2表示两位小数,若没有限制宽度只限制二位小数则把%f改为%0.2f

2.输入矩形的长a,宽b、求出矩形的周长L和面积S,编写程序的要求如下:

(1)定义双精度变量:长a,宽b、周长L和面积S。

(3)从键盘上输入a、b的值,计算周长L和面积S并输出,保留两位小数。

[•]长方形的周长和面积工

1#include<stdio.h>

2intmain(void)

3早{

4double双精度变量

5printf(Hinputa,b\nM);

6scanf(M%lf,%lf",&a,ab);

7l=2*(a+b);//Z/W/v

8s=a*b;///7

9printf(“周长是%0・2八门:1);//?崎〃"J界进仃小腹心上3\

10printf("周长是%。・2八rf,s);

11return0;

12L)

Printf里面的%f改为%.2f

3.输出100-999之间所有的水仙花数。水仙花数指的是:各位数字立方和等于该数本身例

如:153=l*l*l+5*5*5+3*3*3o

[•]水仙花数<

1#include<stdio.h>

2intmain(void)

3早(

4inti,be,bl,b2;//足*。一八交/々小户/,

5intcount=0;〃依。untZ仙花个坟.川始化为9

6for(i=106;i<1000;i++)//^-W100-1000//;^/

7A{

8b0=i/100;////7/Z?^

9bl=(i-b0*100)/10;////«/A/i>'

10b2=i%ie;//〃r/个管

11if(i==((be*be*be)+(bl*bl*bl)+(b2*b2*b2)))〃/〃M'/7/""^^Z:.&/C

120(

13count++;〃累加.如果满足进行加

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

15-)

16-}

17printf("水仙花个数是%d”,count);//,:“、100-1000<//774'^1'.!

18return0;

19L

1D:\c语言习题'水仙花数.exe

153

370

371

407

水仙花个数是4

Processexitedafter0.03544secondswithreturnvalue0

隆粕仟意犍继续______________________________________

4.从键盘输入三个整数,输出其中最大整数

1*1三个整数输出最大整数.c

1#include<stdio.h>

2intmain(void)

3早{

4inta,b,c,max;

5printf("请输入三个整数啊a,b,c:\n");

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

7eax=a>b?a;〃付ab.进行比较,二的值赋给max

8max=c>max?c:max;//.-max,、俏赋乡fimax

9printf("二个整数中最大的整数是%d",max);

10return0;

11

12L}

同样也可以使用两次if-else语句,先将a的值赋给max,然后依次与b,c比较,最后将最

大的值赋给max,如何输出

5.输出Fibonacci(斐波那契)数列的前20个数。这个数列有如下特点。第1、2个数为1,

从第3个数开始,该数是其前面两个数之和,。即该数列为1,1,2,3,5,8,13,21,

34OOOOOO

「斐波飕2.C

1#include<stdio.h>

2intmain(void)

3S(

4inta[2e],i;〃第乂•个数组长度为靖的禽联

5a®\=g//因为前两个兀素没有规律.可.以单独赋值汴且输

6a[l]=l;//过数组唱面前两外元素进行赋值

7printf("%d\n",a[0]);//^7卜标从。开始

8printf("%d\n",a[l]);

9for(i=2;i<=20;i++)

100(

11a[i]=a[i-l]+a[i-2];//V•竹。r循环,依次对数组里向的值进行赋值

12printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论