C语言开发基础练习题及答案23-2023-背题版_第1页
C语言开发基础练习题及答案23-2023-背题版_第2页
C语言开发基础练习题及答案23-2023-背题版_第3页
C语言开发基础练习题及答案23-2023-背题版_第4页
C语言开发基础练习题及答案23-2023-背题版_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

试题说明

本套试题共包括1套试卷

每题均显示答案和解析

C语言开发基础练习题及答案23(500题)

C语言开发基础练习题及答案23

L[单选题]在C语言中,凡在一个标识符后面紧跟着一对圆括瓠,就表明它是一个()。

A)函数

B)文件

C)变量

D)子程序

答案:A

解析:

2.[单选题]现有如下程序

#include<stdio.h>

intfun(intx)

{printf(Mx=%d\nM,++x);}

intmain()

{fun(12+5);return0;}

则程序的输出结果是()

A)x=12

B)x=13

C)x=17

D)x=18

答案:D

解析:

3.[单选题]下列对文件的说法只有——是正确的。

A)对文件操作必须先打开文件

B)对文件操作必须先关闭文件

C)对文件只能进行顺序读写,而不能随机读写

D)以上说法都不正确

答案:A

解析:

4.[单选题]阅读下面的程序#includevoidmain。(inti,j,m,n;i=8;j=10;m=++i;n=j++;

printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是.

A)8,10,8,10

B)9,11,8,10

09,11,9,10

D)9,10,9,11

答案:C

解析:

5.[单选题]以下叙述中错误的是()

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

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

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

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

答案:A

解析:C语言中的非执行语句不会被编译不会生成二进制的机器指令,所以A)错误。由C语言构成的

指令序列称C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为0B的二进制文件(称为目

标文件);最后要由"连接程序"此0B文件与C语言提供的各种库函数连接起来生成一个后缀为EXE的

可执行文件。

6.[单选题]以下语句中,不能实现回车换行的是()。

A)printf("\n");

B)putchar("\n");

C)fprintf(stdout,"\n");

D)fwrite("\n",1,1,stdout);

答案:B

解析:

7.[单选题]以下程序执行后sum的值是()

Main()

{inti,sum=0;for(i=l;i<6;i++)sum+=i;printf("%d\n",sum);}

A)15

B)14

C)不确定

D)0

答案:A

解析:

8.[单选题]设有inta=2,b=3,c=4,d;,则执行d=(a>0?b:c);后d的值为。

A)2

B)3

04

D)5

答案:B

解析:

9.[单选题]下面属于整数类的实例是

A)0x518

B)0.518

0-518

D)5.18E+00

答案:A

解析:

10.[单选题]设有语句inta=3,则执行语句a+=a-=a*a以后变量a的值是()。

A)3

B)0

09

D)-12

答案:D

解析:

11.[单选题]以下语句或语句组中,能正确进行字符串赋值的是。

A)char*sp;*sp="right!";

B)chars[10];s="right!";

C)chars[10];*s="right!";

D)char*sp="right!";

答案:D

解析:本题考查的是字符串的赋值。

12.[单选题]设有chara='\101';,则变量a包含个字符。

A)1

B)2

03

D)4

答案:A

解析:

13.[单选题]在E-R图中,用来表示实体联系的图形是()。

A)椭圆形

B)矩形

C)菱形

D)三角形

答案:C

解析:在E-R图中,菱形表示联系,矩形表示实体,椭圆形表示属性。答案选择C选项。

14.[单选题]有如下程序

Main()

{floatx=12.0,y;

If(x<0.0)y=0.0;elseif(x<10.0)y=l.0/x;elsey=l.0;printf("%f\n",y);}

该程序的输出结果是()

A)0.000000

B)0.250000

C)0.500000

D)1.000000

答案:D

解析:

15.[单选题]在C语言中,引用数组元素时,其数组下标的数据类型允许是—o

A)整型常量

B)整型表达式

C)整型常量或整型表达式

D)任何类型的表达式

答案:C

解析:

16.[单选题]有以下程序

main()

{inta[]={l,2,3,4,5,6,7,8,9,0},*p;

for(p=a;p<;a+10;p++)printf(u%d,,*p);

)

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

A)l,2,3,4,5,6,7,8,9,0,

B)2,3,4,5,6,7,8,9,10,1,

C)0,1,2,3,4,5,6,7,8,9,

D)l,1,1,1,1,1,1,1,1,1,

答案:A

解析:c语言规定数组变量名代表数组的首地址,即第0号元素的地址。本题将a数组中的值全部输出

,即为1,2,3,4,5,6,7,8,9,0,。

17.[单选题]有以下程序Wincludeintfun(intx,inty){if(x!=y)return((x+y);2);else

return(x);)main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后

的输出结果是()。

A)3

B)6

08

D)12

答案:B

解析:

18.[单选题]有以下程序Wincludemain(){inti;for(i=l;i<=40;i++){if(i++%5==0)

if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。

A)32

B)24

C)5

D)40

答案:A

解析:自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量

的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形

式表达式的值为运算分量加1之前的值。题目中使用了一个for循环,循环变量i从1递增到40。在循

环体中有两条嵌套的if语句,首先判断i++%5==0,即判断i++的值(i加1之前的值)是否能被5整除

(判断后i被加1),然后再判断++i的值(i加1之后的值)是否能被8整除(判断后i被加1),若两

个条件都满足了,就输出i的值,只有i=30时,满足i++%5==0,此时i=31,++设8==0成立,此时

i=32o答案选择A选项。

19.[单选题]若有定义语句:intyear=2009,*p=&year;,以下不能使用变量year中的值增至2010的

语句是()。

A)*p+=l

B)(*p)++;

C)++(*p);

D)*p++;

答案:D

解析:A项,p所指内容执行增1操作;B项,先取P指针所指的内容,再执行后++运算;C项,先取P指

针所指内容,再执行前++运算;D项,实际上是p指针执行++操作,而后取值。答案选择D选项。

20.[单选题]以下()是不正确的字符串常量。

A)'abc"

B)"12'12"

C)"0"

D)""

答案:A

解析:

21.[单选题]下列叙述中正确的是()。

A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C)线性表的链式存储结构所需要的存储空问一般要少于顺序存储结构

D)线性表的链式存储结构所需要的存储空间与顺序存储结构没有任何关系

答案:B

解析:线性结构常用存储结构为:①顺序存储结构,物理上连续存储,空间位置隐含逻辑位置;②链

式存储结构,存储上不连续,通过指针相连。在链式存储方式中,每个结点包含存放数据的数据域

和存放指针的指针域。所以链式存储结构所需的存储空间一般要多于顺序存储结构。答案选择B选

项。

22.[单选题]下面程序段的运行结果是。

char*format="%s,a=%d,b=%d\n";

inta=l,b=10;

a+=b;

printf(format,"a+=b",a,b);

A)for,"a+=b",ab

B)format,"a+=b"

C)a+=b,a=ll,b=10

D)以上结果都不对

答案:C

解析:

23.[单选题]以下程序的运行结果是()。

ttinclude

Voidmain()

(

inti=l,sum=0;

while(i<10)

(

sum=sum+l;

i++:

}

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

}

A)运行出现错误

B)i=9,sum=9

C)i=2,sum=l

D)i=10,sum=9

答案:A

解析:

24.[单选题]若有说明:inta[10];则对a数组元素的正确引用是()。

A)a[10]

B)a[3,5]

C)a(5)

D)a[10-10]

答案:D

解析:

25.[单选题]下列选项中,合法的C语言关键字是()o

A)VAR

B)cher

C)integer

D)default

答案:D

解析:

26.[单选题]设有如下程序:#includeVstdio.h>main(){int**k,*j,i=100;j=&;i;

k=&;j;printf("%d\n",**k);}上面程序的输出结果是()。

A)运行错误

B)100

C)i的地址

D)j的地址

答案:B

解析:

27.[单选题]设有语句:intk=l,*pl=&k,*p2=&k;,以下不能正确执行的赋值语句是

A)pl=k

B)pl=p2

C)*pl=*p2

D)k=*pl+*p2

答案:A

解析:

28.[单选题]执行以下程序后,输出的结果是—()—.

#include<stdio.h>

voidmain()

{inty=10;

do{y一;}

while(-y);

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

}

A)-l

B)1

08

D)0

答案:D

解析:

29.[单选题]求平方根函数的函数名为()。

A)sqrt

B)pow

C)cos

D)abs

答案:A

解析:题号:55831

30.[单选题]下面正确的是()

A)0.00f8.9e'&'

B)A'3.9E-2.51el0928

03'OllOxffOOOa

D)0xabcd2e3-34027

答案:D

解析:

31.[单选题]int(*p)[6];它的含义为()o

A)具有6个元素的一维数组

B)定义了一个指向具有6个元素的一维数组的行指针变量

C)指向整型指针变量

D)指向6个整数中的一个的地址

答案:B

解析:

32.[单选题]在一个C源文件中,若要定义一个只允许本源文件中的所有函数使用的全局则该变量使

用的存储类别是

A)extern

B)register

C)auto

D)static

答案:D

解析:

33.[单选题]设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是

()O

A)n=0;while((ch=getchar())!="\n")n++;

B)n=0;while(getchar()!="\n";n++);

C)for(n=0;getchar()!="\n";n++);

D)n=0;for(ch=getchar()!="\n";n++);

答案:D

解析:要统计一行中输入字符个数(不包含回车符)的程序实现,首先定义一个用作统计的变量n,赋

初值为0;因为字符结束应该有换行符,所以该行字符是否结束的判断条件应为

“getchar()!="\n"";D项中for循环表达式格式错误,应在ch前添加“;”,注意for循环中有三

个表达式,必须有两个分号,D项编译错误。答案选择D选项。

34.[单选题]以下for循环的执行次数是0.for(x=0,y=0;(y=123)&&(x<4);x++);

A)是无限循环

B)循环次数不定

C)4次

D)3次

答案:C

解析:

35.[单选题]若执行下面程序时从键盘上输入5,

Main()

(

Intx;

Scanf("%d",&x);

If(x++>5)printf("%d\n",x);

Elseprintf("%d\n",x-);

}

则输出是o

A)7

B)6

05

D)4

答案:B

解析:

36.[单选题]以下程序的输出结果是?

Main()

(

Inta=10,b=4;

Printf("%d\n",a/b);

}

A)0

B)1

C)2

D)2.5

答案:C

解析:

37.[单选题]在C语言中,调用函数除函数名外,还必须有()o

A)函数预说明

B)实际参数

0()

D)函数返回值

答案:C

解析:

38.[单选题]设有如下说明

Typedefstruct

(intn;charc;doublex;}ST;

则以下选项中,能正确定义结构体数组并赋初值的语句是O

A)STtt[2]={{3,,m',48},{5,'k',66});

B)STtt[2]={l,"A",32(2)"",85);

C)struct='A',2,'B');

D)structtt[2>{{1,"A",62.5},{2,"B",75.0}};

答案:A

解析:

39.[单选题]判断两个字符串是否相等,正确的表达方式是()。

A)while(sl==s2)

B)while(sl=s2)

C)while(strcmp(sl,s2)==0)

D)while(strcmp(sl,s2)=0)

答案:C

解析:

40.[单选题]在C#中无需编写任何代码就能将int型数值转换为double型数值,称为()

A)显式转换

B)隐式转换

C)数据类型转换

D)变换

答案:B

解析:

41.[单选题]下面语句中有语法错误的是0

A)Printf("%d",Oe);

B)Printf("%f",0e2);

C)Printf("%d",0x2);

D)Printf("%s","0x2");

答案:A

解析:

42.[单选题]对于现实世界中事物的特征,在实体-联系模型中使用()。

A)属性描述

B)关键字描述

C)二维表格描述

D)实体描述

答案:A

解析:在实体-联系模型中,用属性来描述现实世界中事物的特征。答案选择A选项。

43.[单选题]以下不正确的定义语句是。

A)doublex[5]={2.0,4.0,6.0,8.0,10.0);

B)inty[5]={0,l,3,5,7,9};

Ochar=

D)charc2L]={'\xl0','\xa','\x8'};

答案:B

解析:

44.[单选题]有以下程序

ttdefineP3

voidF(intx){return(P*x*x);}

main()

{printf(“%d\n”,F(3+5));}

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

A)192

B)29

025

D)编译出错

答案:D

解析:return语句用于从被调函数带回一个函数值。void关键字表示“无类型”,即不需要从被调函

数中带回函数值,所以不需要return语句,故编译时出错。

45.[单选题]下列叙述中正确的是()。

A)存储空间连续的数据结构一定是线性结构

B)存储空间不连续的数据结构一定是非线性结构

C)没有根结点的非空数据结构一定是线性结构

D)具有两个根结点的数据结构一定是非线性结构

答案:D

解析:A项错误,数据结构线性与否与存储空间是否连续没有直接关系,如二叉树可以用一片连续的

空间来存储,但二叉树为非线性结构;B项错误,线性表的链式存储结构可以用不连续的空间来存

储,但线性表为线性结构;C项错误,没有根结点的非空数据结构一定不是线性结构;D项正确,线

性结构有且只有一个根结点,具有两个根结点的结构一定是非线性结构。答案选择D选项。

46.[单选题]有以下程序

Main()

{inta=l,b;

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

{if(a>=8)break;

if(a%2==l){a+=5;continue;)

a-=3;}

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

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

A)3

B)4

C)5

D)6

答案:B

解析:本题考查的是break与continue的区别。本题具体执行过程如下:

A=l,b=l:a>=8不成立,判断a%2==l成立,a+=5则a=6,continue,执行下一次循环;

A=6,b=2:a>=8不成立,判断a%2==l不成立,a-=3则a=3,执行下一次循环;

A=3,b=3:a>=8不成立,判断a%2==l成立,a+=5则a=8,continue,执行下一次循环;

A=8,b=4:a〉=8成立,break,结束整个循环,输出b的值4。

47.[单选题]下列叙述错误的是()

A)注释部分可单独占用一行,也可跟在语句的后面

B)若一条语句较长,可分写在多行上

C)C源程序必须包含一个main。函数

D)语句是构成C源程序的基本单位

答案:D

解析:

48.[单选题]下列条件语句中,输出结果与其他语句不同的是

A)if(a!=0)printf(%d\nw,x);elseprintf("%d\n",y);

B)if(a==0)printf(%d\nw,y);elseprintf(<<%d\n^^,x);

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

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

答案:C

解析:

49.[单选题]8、有以下程序_xOOOD_structSTU{_x000D_charname[10];_x000D_int

num;_x000D_};_x000D_voidfl(structSTUc)_x000D_{structSTU

b={"LiSiGuo",2042};x000D_c=b;}_x000D_voidf2(structSTU*c)_x000D_{structSTU

b={"SunDan",2044};_x000D_*c=b;_x000D_}_x000D_main()_x000D_{structSTU

a={"YangSan",2041),b={"WangYin",2043);_x000D_fl(a);f2(&b);_x000D_printf("%d

%d\n",a.num,b.num);}_xOOOD_执行后的输出结果是()。

A)20412044

B)20412043

020422044

1))20422043

答案:A

解析:

50.[单选题]阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输出结果为()。

#include<stdio.h>

Voidmain()

{intx,y,z;

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

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

)

A)x+y+z=48

B)x+y+z=35

C)x+z=35

D)不确定值

答案:A

解析:

51.[单选题]若已定义:intx=10;语句printf("x=%o,x=%d\n",x,x);执行后的输出结果是()。

A)x=12,x=12

B)x=12,x=10

C)x=10,x=10

D)x=10,x=12

答案:B

解析:

52.[单选题]有以下程序^includemain(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}程序

运行后的输出结果是()。

A)a=2,b=5

B)a=%2,b=%5

C)a=%d,b=%d

D)a=%%d,b=%%d

答案:C

解析:%在C语言中有两个作用,一是用作取余数运算符,另一个用作转义符。厥d相当于将第二个%转

义了,所以输出为%d。故答案选择C选项。

53.[单选题]以下叙述中不正确的是()。

A)表达式a&=b等价于a=a&b

B)表达式a|=b等价于a=a|b

C)表达式a!=b等价于a=a!b

D)表达式a~=b等价于a=a~b

答案:C

解析:

54.[单选题]若有以下程序段:

for(m=l;m<=100;m++)

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

if(y<0)

continue;

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

正确的描述是—

A)当y<0时整个循环结束

B)y>=0时什么也不输出

0printf函数永远也不执行

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

答案:D

解析:

55.[单选题]关于C语言的变量,以下叙述中错误的是()。

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

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

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

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

答案:B

解析:

56.[单选题]以下程序的输出结果是

StructHAR

{intx,y;structHAR*p;}h[2];

Main()

{h[0].x=l;h[0].y=2;

H[l].x=3;h[l],y=4;

H[0].p=&h[l];h[l].p=h;

Printf(n%d%d\nH,(h[0].p)->x,(h[l].p)->y);

)

A)12

B)23

014

D)32

答案:D

解析:

57.[单选题]下面程序的功能是实现两个字符变量互换值,若为chi输入a,ch2输入b,则程序运行时正

确的输入是()。ttinclude

Voidmain(){charchi,ch2,ch;scanf("%c%c",&chl,&ch2);ch=chl;chl=ch2;ch2=ch;

printf("chl=%c,ch2=%c\n",chi,ch2);}

A)a

B)a〈空格>b

C)ab

D)a〈回车>b

答案:C

解析:

58.[单选题]有以下程序

Main()

{inti=l,j=2,k=3;

if(i++==l&&(++j==3'|k++==3))

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

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

A)123

B)234

0223

D)233

答案:D

解析:本题考查的是条件判断语句。本题中执行"i++=l&&(++j==3||k++=3)"时,先执行i++==l,由

于i++是先运算,后自加,所以表达式"i++==l"的值为真,其值为1,然后执行括号中的表达式,由

于++j是先自加,后运算,所以表达式"++j==3"的值为真,根据短路原理,右边的表达式

"k++==3"不再进行运算,直接得出括中表达的值为1,相与后整个表达式的值也为1,输出i,j,k时

,由于未执行过k,所以它们的值分别为2,3,3。

59.[单选题]设有定义:inta=O,b=l;以下表达式中,会产生“短路”现象,致使变量b的值不变的

是()。

A)+a++b

B)a++++b

C)++a&&b++

D)a++&&b++

答案:D

解析:产生“短路”现象,即逻辑表达式靠后的部分不会被运算。对于逻辑或运算,表达式前半部分

运算结果为1时产生“短路”现象,A选项,+a的值是0,需要计算后半部分,B选项,a的值是先使

用再自增1,a++值是0,也需要计算后半部分;对于逻辑与运算,表达式前半部分运算结果为0时产

生“短路”现象,C选项,a的值是先自增1再传递,传值是1,需要计算后半部分;D项,a的值是先

传递再自增1,传值是0,无需要计算后半部分,可忽视b++的值,因此b值不发生改变。答案选择D选

项。

60.[单选题]执行以下程序段后,输出的结果是

Int

A,b=0;

For(a=l;a<=10;a++)

(

B=b+a;

If(b>=5)

Break;

)

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

A)10

B)ll

03

D)4

答案:C

解析:

61.[单选题]下列程序的输出结果是().

Main()

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

switch(x)

(

case1:switch(y)

(

case0:a++;break;

case1:b++;break;

)

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

case3:a++;b++;break;

}

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

}

A)a=l,b=O

B)a=2,b=l

C)a=l,b=l

D)a=2,b=2

答案:B

解析:

62.[单选题]一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述

中错误的是()O

A)有零个或多个输入

B)有零个或多个输出

C)有穷性

D)可行性

答案:B

解析:

63.[单选题]对于以下递归函数f,调用f(4),其返回值为()

Intf(intn)

{returnf(n-1)+n;}

A)10

B)ll

C)0

D)以上均不是

答案:D

解析:

64.[单选题]已有文本文件test,txt,其中的内容为:Hello,everyone!。以下程序中,文件test,txt已

正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是o

Sinclude<stdio.h>

MainO

{FILE*fr;charstr[40];

Fgets(str,5,fr);

Printf(n%s\nH,str);

Fclose(fr);)

A)Hell

B)hello

C)ever

D)Hello,everyone!

答案:A

解析:

65.[单选题]若已定义:intx;拟从键盘输入一个值赋予x,正确的函数调用是

A)scanf(H%dM,&x);

B)scanf("%d",x);

C)scanf(M%fM,&x);

D)scanf("%f",x);

答案:A

解析:

66.[单选题]若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c);给a赋值1、给

b赋值2、给c赋值3,以下输入形式中错误的是。(代表一个空格符)

A)l,2,3〈回车>

B)123〈回车>

01,2,3〈回车》

D)l,2,3〈回车>

答案:B

解析:

67.[单选题]下列选项中,不属于模块间耦合的是()。

A)数据耦合

B)标记耦合

C)异构耦合

D)公共耦合

答案:C

解析:按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据

耦合和非直接耦合,没有异构耦合这种方式。答案选择C选项。

68.[单选题]以下函数调用语句中有()个实参。

Func((al,a2,a3),(a4,a5));

A)2

B)5

01

D)不合法

答案:A

解析:

69.[单选题]c语言中的标识符分为关键字,预定义标识符和用户标识符,以下叙述正确的是

A)关键字可用作用户标识符,但失去原有含义

B)预定义标识符可用作用户标识符,但失去原有含义

C)在标识符中大写字母和小写字母被认为是相同字符

D)用户标识符可以由字母和数字认真顺序组成

答案:B

解析:

70.[单选题]若有定义语句:inta[3][6];按在内存中存放的顺序,a数组的第10个元素是()

A)a[0][3]

B)a[l][4]

C)a[0][4]

D)aEl][3]

答案:D

解析:

71.[单选题]当输入数据:2763时,下面程序的运行结果是()。

#include<stdio.h>

Intgbs(int

A,intb)

(

intc;

a=a>O?a:-a;

b=b>O?b:-b;

c=a*b;

if(c==0)

return0;

while(a!=b)

if(a>b)

a-=b;

else

b-=a;

returnc/a;

)

Intgys(int

A,intb)

(

if(a*b==0)

return0;

a=a>0?a:-a;

b=b>0?b:-b;

while(a!=b)

if(a>b)

a-=b;

else

b-=a;

returna;

}

Voidmain()

(

int

A,b,c,d;

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

c=gbs(a,b);

d=gys(a,b);

printf("a=%db=%dgbs=%dgys=%d\n",a,b,c,d);

A)a=30b=63gbs=189gys=9

B)a=27b=63gbs=190gys=10

C)a=27b=63gbs=189gys=9

D)a=27b=63gbs=188gys=10

答案:C

解析:

72.[单选题]能正确表示数学关系式TWsVl的表达式为()。

A)(s>=-l)&(s<l)

B)-l<=s<l

C)(s>=-l)&&(s<l)

D)(s>=-l)and(s<l)

答案:C

解析:&&表示逻辑与

73.[单选题]有如下程序段

Int*p,a=6,b=2;

P=&a;a=*p+b;

执行该程序段后,a的值为(,

A)6

B)8

C)7

D)编译出错

答案:B

解析:

74.[单选题]正确地引用了数组a中的基本元素已有定义“inta[2][3]”,下面选项中正确地引

用了数组a中的基本元()

A)a[l>2][!1]

B)a[2][0]

C)a[l]

D)a

答案:A

解析:

75.[单选题]以下程序

Winclude<iostream>

Usingnamespacestd;

Doublef(intn)

inti;

doubles=l.0;

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

s+=l.0/i;

returns;

Intmain()

inti,m=3;

doublea=0.0;

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

a+=f(i);

cout<<a<<endl;

return0;

其输出结果是()。

A)5.5

B)3

04

D)8.5

答案:A

解析:

76.[单选题]下列程序段的运行结果是()ointi,n=0;for(i=l;i<=10;i++){n+=2;++i;

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

A)10

B)8

012

D)20

答案:A

解析:

77.[单选题]有以下程序

Voidf(int*x,int*y)

(

intt;

t=*x;*x=*y;'*y=t;

)

main()

inta[8]={l,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&;a[7];

while(p<;q)

{f(p,q);p++;q-;}o

for(i=0;i<;3;i++)printf("%d",a[l][i]);

程序运行后的输出结果是

A)8,2,3,4,5,6,7,1,

B)5,6,7,8,1,2,3,4.

01,2,3,4,5,6,7,8,

D)8,7,6,5,4,3,2,1,

答案:D

解析:本程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。

78.[单选题]己有声明"chars[10],*ps=s;"",下列错误的表达式是_»

A)Ps=s+5

B)S=ps+5

C)S[2]=ps[3]

D)*ps=s[0]

答案:B

解析:

79.[单选题]整型变量x=l,y=3,经下列计算后,x的值不等于6的是().

A)x=(x=l+2,x*2)

B)x=y>2?6:5

C)x=9-(-y)-(y一)

D)x=y*4/2

答案:C

解析:

80.[单选题]在下列描述中,正确的一条是()。

A)if(表达式)语句中,表达式的类型只限于逻辑表达式

B)语句“goto12;”是合法的

C)for(;;)语句相当于while(1)语句

D)break语句可用于程序的任何地方,以终止程序的执行

答案:C

解析:

81.[单选题]以下程序的输出结果是?inti;for(i=l;i++<4;){}Console.Write(i);

A)3

B)4

C)5

D)循环次数不定

答案:c

解析:

82.[单选题]若inta=2,则执行完表达式a-=a+=a*a后,a的值是()

A)-4

B)-8

C)0

D)-2

答案:C

解析:

83.[单选题]在数据处理中,其处理的最小单位是()。

A)数据

B)数据项

C)数据结构

D)数据元素

答案:B

解析:数据是计算机的信息载体,数据处理的最小单位是数据项,多个数据项组成数据元素。答案选

择B选项。

84.[单选题]以下程序的输出结果是()□_xOOOD_main()_xOOOD_{int

i,j,x=0;_xOOOD_for(i=0;i

A)x=4

B)x=8

C)x=6

D)x=12

答案:B

解析:

85.[单选题]下列if语句中,不正确的是()。

A)if(x>y);

B)if(x==y)x+=y;

C)if(x!=y)scanf("%d",&;x)elsex=l;

D)if(x<y){x++;y++;}

答案:C

解析:

86.[单选题]若a和b均为int型变量,则执行以下程序断后x的输出是

X=15;y=15;

Printf("%d\n",x%=(y%=2));

A)0

B)1

06

D)12

答案:A

解析:

87.[单选题]若已定义inta=256;,执行语句printf(映x",a);的结果是().

A)100

B)256

C)ffe

D)ff

答案:A

解析:

88.[单选题]以下程序的输出结果是。

ttinclude<stdio.h>

Intx=3;

Main()

(

Intincre();

Inti;

For(i=l;i<x;i++)incre();

}

Intincre()

(

Staticintx=l;

X*=x+1;

Printf("%d",x);

)

A)33

B)22

C)26

D)25

答案:C

解析:

89.[单选题]以下不能对二维数组a进行正确初始化的说明是。

A)inta[2][3]={0};

B)inta[][3]={{l,2},{0});

Ointa[2][3]={{1,2},{3,4},{5,6}};

D)inta[][3]={l,2,3,4,5,6);

答案:C

解析:

90.[单选题]下列4个选项中,均是合法整型常量的是()。

A)160-OxffffOil

B)-Oxcdf01OXe

0-01986,0120668

D)-0x48a2e5Ox

答案:A

解析:

91.[单选题]若已定义:inta=l,b=2,c=3;则正确的表达式是

A)c=(a,b)

B)a+b=c

C)b+3=c

D)a=b\c

答案:A

解析:

92.[单选题]下面叙述中错误的是_

A)C语言的函数可以单独编译

B)C语言程序是由函数组成的

C)C语言的函数就是一段程序

D)C语言的函数可以直接使用,无需事先定义或声明

答案:D

解析:

93.[单选题]关系表中的每一横行称为一个()。

A)元组

B)字段

C)属性

D)码

答案:A

解析:关系表中的每一行称为一个元组。每一列称为一个字段,又称一个属性。惟一标识元组的最小

属性值称为该表的键或码。答案选择A选项。

94.[单选题]在C语言中,要求运算数必须是整型的运算符是().

AL

B)%

0!

D)>

答案:B

解析:

95.[单选题]计算机语言主要分为哪几类?

A)机器语言、汇编语言、编程语言

B)机器语言、编程语言、高级语言

C)汇编语言、编程语言、高级语言

D)机器语言、汇编语言、高级语言

答案:D

解析:

96.[单选题]已知inta=4,b=a<<2;,则语句printf("%d",b);的输出结果是

A)2

B)4

08

D)16

答案:D

解析:

97.[单选题]若有说明:staticinta[3][4];则数组中各元素。

A)可在程序的运行阶段得到初值0

B)可在程序的编译阶段得到初值0

C)不能得到确定的初值

D)可在程序的编译或运行阶段得到初值0

答案:B

解析:

98.[单选题]若有以下程序:

Main()

{intk=2,i=2,m;

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

)

执行后的输出结果是()

A)8,6

B)8,3

06.4

D)7,4

答案:C

解析:

99.[单选题]有如下程序main(){intx=23;do{printf("%d",x—);}while(!x);}该程序的执行结果

是()

A)321

B)23

C)不输出任何内容

D)陷入死循环

答案:B

解析:

100.[单选题]下面关于循环语句的描述中,()是错误的。

A)循环体内可以包含有循环语句

B)循环体内必须同时出现break语句和continue语句

C)循环体内可以出现选择语句

D)循环体内可以是空语句

答案:B

解析:

101.[单选题]为了避免在嵌套的条件语句if-else中产生二义性,C语言规定else子句,总是与

()配对。

A)缩排位置相同的尚未配对if

B)其之前最近的尚未配对if

C)之后最近的尚未配对if

D)同一行上的尚未配对if

答案:B

解析:

102.[单选题]对说明语句inta[10]=(617,8,9,10);的正确理解是。

A)将5个初值依次a[l]至a[5]

B)将5个初值依次a[0]至a[4]

C)将5个初值依次a[5]至a[9]

D)将5个初值依次a[6]至a[10]

答案:B

解析:

103.[单选题]设有如下函数定义:

若执行调用语句:n=fun(3);,则函数fun总被调用次数为()

A)2

B)3

04

D)5

答案:B

解析:首先n=fun(3),3被当作参数传递进去,这就进行了一次调用,3当做参数传进去后,程序会

执行这句elsereturnfun(k-1)+1;这就调用了第二次,而参数是3T也就是2。2被当做参数传

进去后,程序会执行这句elsereturnfun(k-1)+1;这就调用了第三次,而参数是2T也就是1。

1被当做参数传进去后,程序会执行这句elseif(k-1)returnl;不再递归调用,所以最终结果

为3次。

104.[单选题]若变量a,i已正确定义,且i已正确赋值,合法的语句是()。

A)a==l

B)++i;

C)a=a++=5;

D)a=int(i);

答案:B

解析:略。

105.[单选题]已知字符'a'的ASCH码为97,执行下列语句的输出是printf("%d,%c",'b','b'+D;

A)98,b

B)语句不合法

098,99

D)98,c

答案:D

解析:

106.[单选题]对以下程序,正确的说法是_().

sub(charx,chary)

{intz;z=x%y;returnz;}

voidmain()

{intg=5,h=3,k;

k=sub(g,h);

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

A)实参与其对应的形参类型不一致,程序不能运行

B)被调函数缺少数据类型说明,程序不能运行

C)主函数中缺少对被调函数的说明语句,程序不能运行

D)程序中没有错误,可以正常运行

答案:D

解析:

107.[单选题]设有chars[2][10>{"12","34"};,则数组s占用___个字节。

A)2

B)10

020

D)4

答案:C

解析:

108.[单选题]若有chara[4]={'A','\0','D'},*p=a,i=2,j=4;,则下列表达式值不是1的有(

)O

A)strlen(a);

B)jIIj;

C)*(p+2);

D)―i;

答案:C

解析:

109.[单选题]设有程序段intk=10;while(k)k=kT;则下面描述中正确的是()。

A)while循环执行10次

B)循环是无限循环

C)循环体语句一次也不执行

D)循环体语句执行一次

答案:A

解析:

110.[单选题]设有定义:inta=64,b=8;,则表达式(a&b)||(a&&b)和

(a|b)&&(a||b)的值分别为

A)l^ni

B)1^0

0。和1

口)0和0

答案:A

解析:常用的位运算符有:按位求反,”《左移,”>>”右移,按位与,“.按位异或

,“按位或。逻辑或运算符"”,计算左表达式值,如果为真,则不计算右表达式,而整个表达式

为真,若左表达式为假,再计算右表达式然后做或运算。逻辑与运算符“&&,计算左表达式值,如

果为假则不计算右表达式,而整个表达式为假,若左表达式为真,再计算右表达式然后做与运算。

a=64=1000000B,b=8=1000B,a&b0为假,a&&b为真,(a&b)(a&&b)为真,值为1.ab=1001000B为真

,ab为真,则(ab)&&(alb)为真,值为LA选项正确。

111.[单选题]若定义:intsum=0,i=3;,下列选项中,表示把i当前值累加到sum上并对i进行一次自

增的表达式是o

A)sum=sum+(++i)

B)sum=sum+i++

C)sum=++sum+I

D)sum=(sum++)+i

答案:B

解析:

112.[单选题]若ch为char型变量,k为int型变量(已知字符a的ASCH十进制代码为97),

则以下程序段的执行结果是().

ch='a';k=12;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);

A)因变量类型与格式描述符的类型不匹配,输出无定值

B)输出项与格式描述符个数不符,输出为零值或不定值

C)61,141,k=%d

D)61,141,k=%12

答案:C

解析:

113.[单选题]以下程序的输出结果是()。

MainO

{charc='z';

Printf("%c",c-25);

)

A)a

B)Z

C)z-25

D)y

答案:A

解析:该函数是以字符形式输出。

114.[单选题]若有以下宏定义:

ttdefineN2

#defineY(n)(N+l)*n

则执行语句intz;z=2*(N+Y(5));后z的值是_

A)50

B)34

019

D)无定值

答案:B

解析:

115.[单选题]一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A)一对一

B)一对多

C)多对一

D)多对多

答案:B

解析:因为一间宿舍可以住多个学生即多个学生住在一个宿舍中,但一个学生只能住一间宿舍,所以

实体宿舍和学生之间是一对多的关系。

116.[单选题]若给出以下定义:_xOOOD_charx[]="abcdefg";_xOOOD_chary[

]={%',%',%','』,%','『,*'};_*000。_则正确的叙述为()。

A)数组x和数组y等价

B)数组x和数组y的长度相同

0数组x的长度大于数组y的长度

D)数组x的长度小于数组y的长度

答案:c

解析:

117.[单选题]以下叙述中正确的是一o

A)用C程序实现的算法必须要有输入和输出操作

B)用C程序实现的算法可以没有输出但必须要输入

C)用C程序实现的算法可以没有输入但必须要有输出

D)用C程序实现的算法可以既没有输入也没有输出

答案:C

解析:算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到

的结果就是算法的输出,没有输出的算法是没有意义的,所以一个算法必须至少有一个输出。

118.[单选题]有以下程序

Sinclude<stdlib.h>

Main()

{char*p,*q;

P=(char*)malloc(sizeof(char)*20);q=p;

Scanf("%s%s",p,q);printf("%s%s\n",p,q);

)

若从键盘输入:abcdef/,则输出结果是______o

A)defdef

B)abcdef

C)abcd

D)dd

答案:A

解析:

119.[单选题]在以下叙述中,不正确的选项是_()o

A)C语言程序总是从main()函数开始执行

B)在C语言程序中,被调用的函数必须在main()函数中定义

C)C程序是函数的集合,在这个函数集中包括标准函数和用户自定义函数

D)在C语言程序中,函数的定义不能嵌套,但函数的调用可以嵌套

答案:B

解析:

120.[单选题]若有语句typedefstructS{intg;charh;}T;,则下列叙述中正确的是()。

A)可用S定义结构体变量

B)可用T定义结构体变量

C)S是struct类型的变量

D)T是structS类型的变量

答案:B

解析:

121.[单选题]若j为int型变量,则以下for循环语句的执行结果是()。

For(j=10;j>3;j—)

(

if(j%3)j—;

—J;一J;

cout«j<<"";

}

A)63

B)74

062

D)73

答案:B

解析:

122.[单选题]以下定义语句中,错误的是()o

A)char*a[3];

B)inta[]={l,2};

C)chars[10]="test";

D)intn=5,a[n];

答案:D

解析:

123.[单选题]下面关于循环语句for、while、dowhile的叙述中正确的是()

A)三种循环语句都可能出现无穷循环

B)三种循环语句中都可以缺省循环终止条件表达式

C)三种循环语句的循环体都至少被无条件地执行一次

D)三种循环语句的循环体都必须放入一对花括号中

答案:A

解析:

124.[单选题]若a=2,b=4则逻辑表达a&&b的值是()。

A)1

B)0

C)2

D)4

答案:A

解析:

125.[单选题]某学员写了如下代码publicstaticvoidShowMsgO{for(inti=0;I<5;

i++){Console.WriteLine("HelloWorld!");}}然后在主主法中调用ShowMsg(),那么按方法的结

构,本方法属于下列()的方法

A)有参无返回值

B)无参无返回值

C)无参有返回值

D)有参有返回值

答案:B

解析:

126.[单选题]若程序中定义了以下函数:

Doublemyadd(double

A,doubleb)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是_____O

A)doublemyadd(double

A,b);

B)doub1emyadd(doub1e,doub1e);

C)doublemyadd(double

B,doublea);

D)doublemyadd(doublex,doubley);

答案:A

解析:对被调函数进行说明的作用是告诉系统:在本函数中将要用到的某函数是返回值的类型,以便

在主调函数中按此类型对函数值作相应的处理。本题选项A中,函数参数列表中,不可以用一类型声

明多个变量,即变量b没有被声明,所以出错。

127.[单选题]有以下程序

Intfun(intn)

{if(n==l)return1;

else

return(n+fun(n-1));}

Main()

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",x);}

执行程序时,给变量x输入10,程序的输出结果是.o

A)55

B)54

065

D)45

答案:A

解析:本题考查的是函数的递归调用。fun函数共被调用8次,即fun(9)、fun(8),fun(7)fun(6),

fun⑸、fun(4)、fun(3)、fun(2),n=10+9+8+7+6+5+4+3+2+1=55,所以x=55。

128.[单选题]设有以下宏定义:#defineN3#defineY(n)((N+l)*n)则执行语句:z=2*

(N+Y(5+l));后,z的值为()o

A)出错

B)42

048

D)54

答案:C

解析:

129.[单选题]算法具有五个特性,以下选项中不属于算法特性的是____o

A)有穷性

B)简洁性

0可行性

D)确定性

答案:B

解析:本题考查的是算法的特性。有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性

是算法的五大特性。

130.[单选题]下列叙述中错误的是()。

A)C程序在运行过程中所有的计算都以二进制方式进行

B)C程序在运行过程中所有的计算都以十进制方式进行

C)所有的C程序都需要在连接无误后才能运行

D)C程序中整型变量只能存放整数,实型变量只能存放浮点数

答案:B

解析:在C程序运行过程中,编译器的作用是将程序转换为目标代码,目标代码都是二进制的。答案

选择B选项。

131.[单选题]对于语句

chars[3][3];

不正确的说法是—O

A)s是一个指针

B)s[0]代表一个字符串

C)*s[0]代表一个字符串

D)s[0]是一个指针

答案:C

解析:

132.[单选题]以下程序段给数组所有元素输入数据,应在下划线处填入的是main(){inta[10],i

=0;while(i<10)scanf();…D}

A)&a[i+1]

B)a+i

C)&a[++i]

D)a+(i++)

答案:D

解析:题号:55783

133.[单选题]已有枚举类型定义"enumletter{E,

F,G=7,

H,I};",下面表达式中除外,其他表达式的机内值均等于10。

A)'\xb'-1

B)F+I

0010+2

D)0xf-3

答案:D

解析:

134.[单选题]若程序中定义了以下函数

Doublemyadd(double

A,doubleb)

{return(a+b);)

并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是o

A)doublemyadd(double

A,b);

B)doublemyadd(double,double);

C)doublemyadd(double

B,doublea);

D)doublemyadd(doublex,doubley);

答案:A

解析:

135.[单选题]为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。

A)static

B)register

C)auto

D)extern

答案:B

解析:

136.[单选题]以下选项中,不能作为合法常量的是()。

A)12340

B)1.234e0.4

C)12340

D)1.234

答案:B

解析:本题考查的是指数的表示方法,字符e前面的为底数,字符e后面的为指数。要求指数必须为整

数,底数为合法数字。

137.[单选题]44、C语言源程序文件后缀为()。

A)EXE

B)OBJ

C)C

D)ASM

答案:C

解析:

138.[单选题]执行以下程序段后,输出结果是一o

Intxl=l,x2=2,t=l;

If(xl=x2)t=10;

Printf("%d,%d\n",xl,t);

A)l,l

B)l,10

02,10

D)2,l

答案:C

解析:

139.[单选题]表达式”(a=4*5,b=a*2),b-a,a+=2"的值是()

A)2

B)20

022

D)42

答案:C

解析:

140.[单选题]下面不正确的字符串常量是。

A)"abc'

B)"12"12"

C)"0"

温馨提示

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

评论

0/150

提交评论