程序设计与数据结构练习题 附答案Word文档格式.docx

上传人:b****2 文档编号:4596805 上传时间:2023-05-03 格式:DOCX 页数:56 大小:52.09KB
下载 相关 举报
程序设计与数据结构练习题 附答案Word文档格式.docx_第1页
第1页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第2页
第2页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第3页
第3页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第4页
第4页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第5页
第5页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第6页
第6页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第7页
第7页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第8页
第8页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第9页
第9页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第10页
第10页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第11页
第11页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第12页
第12页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第13页
第13页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第14页
第14页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第15页
第15页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第16页
第16页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第17页
第17页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第18页
第18页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第19页
第19页 / 共56页
程序设计与数据结构练习题 附答案Word文档格式.docx_第20页
第20页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序设计与数据结构练习题 附答案Word文档格式.docx

《程序设计与数据结构练习题 附答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《程序设计与数据结构练习题 附答案Word文档格式.docx(56页珍藏版)》请在冰点文库上搜索。

程序设计与数据结构练习题 附答案Word文档格式.docx

11.设有inti=010,j=10;

则printf(“%d,%d\n”,++i,j--);

的输出是(B)。

A.11,10B.9,10C.010,9D.10,9

12.已知w=1,x=2,y=3,z=3,a=4,b=2;

则执行语句(a=w>

x)&

(b=y>

z);

后,a,b的值为(D)。

A.1和1B.0和0C.4和2D.0和2&

前一条件为假,无论后面什么情况结果都为假

13.定义如下变量关系,则下面语句的输出结果是(D)。

inti;

intx[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;

i++)printf("

%d"

x[0][2-i]);

A.159B.123C.357D.321

14.已知数组floatb[3][2];

该数组行下标的范围是(D)。

A.1—3B.0—3C.1—2D.0—2

15.下列语句中,正确的是(D)。

A.#definePI=3.14159B.include“stdio.h”C.defineM3D.#definePI3.14159

16.有如下程序,该程序段的输出结果是(B)。

voidmain(void)

{intn=5;

while(n>

2){n--;

printf(“%d”,n);

}

}

A.543B.432C.4321D.5432

17.下列四种数组定义,合法的数组定义是(A)。

A.chara[]="

hello"

;

B.inta[4]={4,3,2,1,0};

C.chara="

;

D.chara[4]="

18.设p1和p2均为指向int型的指针变量,k为int型变量,下列不正确的赋值语句是(C)。

A.k=*p1+*p2;

B.k=*p1*(*p2)C.p2=kD.p1=p2

19.有如下程序,该程序的输出结果是(C)。

{chars[]=“ABCD”,*p;

for(p=s+1;

p<

=s+3;

p++)

printf(“%c\n”,*p);

A.ABCB.AC.BD.BCD

BCBCCD

CCDD

20.对于C程序的函数,下列叙述中正确的是(A)。

A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套

C.函数的定义和调用均可以嵌套D.函数的定义和调用均不能嵌套

21.设x为整型变量,p是指向整型的指针变量,则下列赋值表达式正确的是(A)。

A.p=&

xB.p=xC.*p=&

xD.*p=*x

22.函数定义时,形参是整型变量,则函数调用时,实参不可以是(C)。

A.整型常量B.字符型常量C.数组名D.整型表达式

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

{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&

a[3],*q=p+2;

printf(“%d\n”,*p+*q);

A.16B.10C.8D.6

24.设有如下定义,若有p=&

ab;

则对ab中成员项的正确引用是(B)。

structss

{inta;

floatb;

}ab,*p;

A.(*p).ab.aB.p->

aC.p->

ab.aD.p.ab.a

25.若要对E盘上的一个非空文件“w1.dat”进行修改,正确的打开语句是(D)。

A.fp=fopen(“w1.dat”,“r+”);

B.fp=fopen(“w1.dat”,“w+”);

C.fp=fopen(“E:

\\w1.dat”,“r+”);

D.fp=fopen(“E:

\\w1.dat”,“w+”);

26.C语言程序的三种基本结构是(A)。

A.顺序结构,分支结构,循环结构B.递归结构,循环结构,转移结构

C.嵌套结构,循环结构,顺序结构  D.递归结构,分支结构,顺序结构

27.能正确表达逻辑关系“0<

a<

1或0<

b<

1”的c语言表达式是(A)。

A.(0<

a)&

(a<

1)||(0<

b)&

(b<

1)B.((0<

a)||(a<

1))&

((0<

b)||(b<

1))

C.(0<

1)&

(0<

1)D.(0<

1)

28.设x和y为浮点型变量,则以下(C)语句是正确的赋值语句。

A. x=&

yB.x*x=yC.x=x+10*yD.*x=y+2

29.设inta=3;

下列哪一个表达式的值等于0(D)。

A.aB.!

a||aC.a>

=aD.a%=a

30.定义如下变量和数组,则下面程序段落的输出结果是(A)。

inti;

intx[3][3]={0,1,2,3,4,5,6,7,8};

for(i=0;

printf(“%d”,x[i][2-i]);

A.246    B.036   C.048   D.258

31.以下叙述错误的是(D)。

A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数

C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面

32.C语言中运算对象必须是整型的运算符是(A)。

A.%=B./C.=D.〈=

33.有如下程序,程序运行后的输出结果是(B)。

{unsignedintx=0xffff;

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

A.-1B.65535C.32767D.0xFFFF

34.若有代数式

(其中e仅代表自然对数的底数,不是变量),则以下能够正确代表该代数式的C语言表达式是(C)。

A.sqrt(abs(n^x+e^x)B.sqrt(fabs(pow(n,x)+pow(x,e)))

C.sqrt(fabs(pow(n,x)+exp(x)))D.sqrt(fabs(pow(x,n)+exp(x)))

35.字符串“\t12\x42\\abcd”的长度是(B)。

A.14B.9C.15D.20

36.以下叙述中错误的是(D)。

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

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

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

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

37.以下选项中,与k=x++;

完全等价的表达式是(B)。

A.x=x+1;

k=x;

B.k=x;

x=x+1;

C.k=x+1;

D.k+=x+1;

38.以下叙述中正确的是(C)。

A.break语句只能用于switch语句中

B.continue语句的作用是:

使程序的执行流程跳出包含它的所有循环

C.break语句只能用在循环体内和switch语句体内

D.在循环体内使用break语句和continue语句的作用相同

39.判断字符型变量ch是否为大写英文字母的表达式为(B)。

A.‘A’<

=ch<

=‘Z’B.ch>

=‘A’&

ch<

=‘Z’C.ch>

‘a’&

=‘z’D.ch>

=‘A’||ch<

=‘Z’

40.若表达式(m)?

a++:

a--,则表达式m和(B)等价。

A.m==0B.m!

=0C.m=0D.m=1

41.在c语言中,运算对象的逻辑值“真”用(B)表示。

A.falseB.非0C.0D.负数

42.已知函数原型声明为:

char*www(chara,charb);

该函数的类型为(A)。

A.指向字符型的指针B.字符型C.整型D.指向整型的指针

43.设int类型的数据长度为2字节,则该类型数据的取值范围是(D)。

A.0至65536B.0至65535C.-32767至32768D.-32768至32767

44.inta,*p,**w;

p=&

a,w=&

p;

取a的值的表达式为(D)。

A.&aB.&*pC.**pD.**w

45.C语言程序的基本单位是(A)。

A.函数B.标识符C.表达式D.语句

46.判断字符型变量ch的值是否为大写英文字母的表达式为(B)。

A.‘A’<

=’Z’B.ch>

=’A’&

=’Z’C.ch>

’a’&

=’z’D.ch>

=’A’||ch<

=’Z’

47.已知w=3,x=2,y=3,z=3,a=4,b=2;

x)||(b=y>

z);

后,a,b的值为(C)。

A.1和1B.0和0C.1和2D.4和2

48.若有定义语句inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;

值为8的数组元素的正确表示为(D):

A.a[8]B.a+7C.p+7D.*(p+7)

49.下列程序运行结果是(A)。

#defineA2

#defineAAA+A/2

voidmain(void)

{

printf(“%d,”,AA);

printf(“%d\n”,5*AA);

A.3,11B.3,15C.2,10D.8,40

50.若有如下定义,则对ex中的a成员的正确引用是(B)。

structsk{inta;

}ex,*p=&

ex;

A.(*p).ex.aB.p->

aC.p->

ex..aD.p.ex.a

二、填空题

1.在内存中存储一个字符‘a’占用___1___个字节,

而存储字符串”abcdef”则占用___7___个字节。

2.表达式4/5的值为__0__。

3.设x=4.5,a=7,y=3.4,表达式x+a%3*(int)(x+y)%2/4的值为_4._。

4.设a=14,执行a+=a-=a*=a后,a=__0_。

5.设x=y=z=6,执行x=(y>

z)?

x+2:

x-2;

后,x=__4__。

6.getchar()函数用于输入_字符_,而gets()函数则用于输入_字符串__。

7.设有定义语句:

charww[20]=”\t\\wab\n”;

则表达式:

strlen(ww)的值是_6。

8.设有定义语句:

charstr[7]=”abcdef”,则数组元素str[2]中的字符是__c__,数组元素str[6]中的字符是_\0___。

9.函数中的形参和调用时的实参都是变量时,传递方式为_值传递__;

都是数组名时,传递方式为__地址传递__。

10.设有char*p=”12345”,则printf(“%s”,p)的输出是_12345__;

而printf(“%c”,*p)的输出则是__1__。

11.若s是int型变量,且s=7,则表达式:

s/2+(s+1)%2的值为__3_。

12.C语言中,以0x_打头的int常数是十六进制。

13.有说明语句chars=‘\102’;

S包含了__1___个字符。

14.有数学表达式sinx+

-6x,

写出其对应的C语言的表达式___sin(x)+sqrt(x)-6*x__。

15.有定义语句:

inta[][3]={{0},{1},{2}};

则数组元素a[1][2]的值是0。

16.若程序中使用了函数strlen(),则必须包含的头文件名为__string.h__。

17.有如下程序,该程序的输出结果是a=2,b=1。

voidmain(void)

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

switch(x)

{case0:

b++;

case1:

a++;

case2:

a++,b++;

printf("

a=%d,b=%d\n"

a,b);

18.若a函数中调用了b函数,而b函数又调用了a函数,

这种调用称为_递归___调用。

19.函数调用时,若形参和实参均为数组名时,传递方式为_地址传递_。

20.若有以下定义语句,则输出的结果是__4__。

chars1[]=“abcdef”,*s2=“1234”;

printf(“%d\n”,strlen(strcpy(s1,s2)));

21.若宏定义为:

#definey(x)2+x

则表达式a=4+3*y

(2)的值为12。

22.设有以下语句:

staticinta[4][2]={1,2,3,4,5,6,7,8};

int(*p)[2];

p=a;

则*(*(p+2)+1)的值为6。

23.在turboC中,int型数据占2字节,则定义

structnode

{

charx[10];

inty;

union{floata;

longb;

}ab;

}t;

后,sizeof(t)=16。

24.设有一个名为“ww1.c”的C程序,

其主函数为main(intargc,char*argv[]),如果在执行时,输入的命令行为:

ww1aabbcc↙

则形式参数argc的值是__4__。

25.执行下列程序段后,(**q-1)的值为__99__。

inta,*p,**q;

a=100;

p=&

a;

q=&

26.C语言源程序中主函数名由系统规定为__main___,程序员是不能改变的。

27.有数学表达式:

-3,其C语言表达式为___sqrt(x)-3____。

28.已知函数定义为:

intstat(inta,float*p){......}

则此函数的两个参数类型分别是整型、指向浮点型指针。

29.设有数组a[10];

则首地址可以写成___a或&

a[0]_

数组元素a[3]的地址可以写成__&

a[3]或a+3_。

30.要使以下程序段中的函数调用语句printf(“***”);

执行10次,应在①处填入整数__19或20__。

for(i=1;

=___①___;

i+=2)printf(“***”);

31.用只读方式打开e:

\目录下的名为“aa.dat”的文件,正确的打开

语句为FILE*fp;

fp=_fopen(“e:

\\aa.dat”,”r”)___。

32.判断两个浮点型变量x和y是否相等一般用:

if(fabs(x–y)<

1e-6)…。

33.已知赋值语句zhang.year=1985;

可判断zhang是结构体类型的变量。

三、程序分析题

1.下面程序的运行结果为5,6,5,0

#include<

stdio.h>

voidmain()

{inta,b,c,d;

a=4;

b=6;

c=++a;

d=(c<

a&

c<

b);

printf("

%d,%d,%d,%d"

a,b,c,d);

2.下面程序的运行结果为c=1\d=0.

voidfun(intx,inty)

inta,b;

floatd;

a=x+14;

b=y-4;

d=(float)(b/a);

printf("

d=%f\n"

d);

intb=9,a=6,c;

c=b/a;

c=%d\n"

c);

fun(a,b);

3.设从键盘上输入HelloWorld!

下面程序的运行结果为helloworld!

voidmain(void)

{charss[20];

gets(ss);

for(i=0;

ss[i]!

='

\0'

i++)

if(ss[i]>

A'

&

ss[i]<

Z'

ss[i]=ss[i]+32;

puts(ss);

4.下面程序的运行结果为b=-10\i=33,b=0\i=75,b=33\

inti=1;

voidother(void);

{intb=-10;

b=%d\n"

b);

other();

i=i+10;

voidother()

{staticintb;

i=i+32;

i=%d,b=%d\n"

i,b);

b=i;

5.下面程序的运行结果为6,45\2,98\

{inta[10]={78,89,98,66,54,76,45,82,62,95};

intka,ki,j;

ka=ki=0;

for(j=1;

j<

10;

j++)

{if(a[ki]>

a[j])ki=j;

if(a[ka]<

a[j])ka=j;

printf(“%d,%d\n%d,%d\n”,ki,a[ki],ka,a[ka]);

6.运行时假定键盘输入数据为:

12345678910下面程序的运行结果为13579

voidmain(void)

{inti,a[10];

int*p;

p=a;

for(i=0;

i<

10;

i++)

scanf(“%d”,p++);

for(p=a;

p<

a+10;

p++)

if(*p%2)printf(“%3d”,*p);

7.下面程序的运行结果为10,10\101\11(要求注明输出格式!

inta=10,b=11;

intc=0,d=0;

%5d,%5d\n"

a++,--b);

%5d"

a&

!

a);

%d\n"

c);

d+=a);

8.下面程序的运行结果为1+1=21+2=31+3=4\2+2=42+3=5\3+3=6

inti,j;

for(i=1;

i++)

for(j=i;

j<

j++)

printf(“%d+%d=%d”,i,j,i+j);

printf(“\n”);

9.下面程序的运行结果为a=1,b=-5,c=0\a=2,b=2,c=10\a=3,b=-5,c=2

#include<

inta=1,b;

voidfun(void);

{staticintc;

intb=-5;

a=%d,b=%d,c=%d\n"

a,b,c);

fun();

a+=1;

c+=2;

voidfun()

{intc=10;

b+=2;

10.下面程序的运行结果为ABCD\BCD\CD\D

#include<

charstr[5],*p;

inti;

for(i=0;

4;

str[i]=’A’+i;

str[i]='

p=str;

while(p<

str+4)

{printf("

%s\n"

p);

p++;

}

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

当前位置:首页 > 解决方案 > 学习计划

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

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