《C语言程序设计》练习题Word下载.docx

上传人:b****7 文档编号:21947106 上传时间:2023-02-01 格式:DOCX 页数:29 大小:33.77KB
下载 相关 举报
《C语言程序设计》练习题Word下载.docx_第1页
第1页 / 共29页
《C语言程序设计》练习题Word下载.docx_第2页
第2页 / 共29页
《C语言程序设计》练习题Word下载.docx_第3页
第3页 / 共29页
《C语言程序设计》练习题Word下载.docx_第4页
第4页 / 共29页
《C语言程序设计》练习题Word下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》练习题Word下载.docx

《《C语言程序设计》练习题Word下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》练习题Word下载.docx(29页珍藏版)》请在冰豆网上搜索。

《C语言程序设计》练习题Word下载.docx

A)C=5/9(F-32)B)C=5*(F-32)/9

C)C=5/9*(F-32)D)三个表达式都正确

11.逗号表达式"

(a=3*5,a*4),a+15"

的值是_C___。

A)15B)60C)30D)不确定

12.如果inta=1,b=2,c=3,d=4;

则条件表达式"

a<

b?

a:

c<

d?

c:

d"

的值是__A_。

书103页

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

13.已知inti=10;

表达式"

20-0<

=i<

=9"

的值是__B__。

A)0B)1C)19D)20

14.使用语句scanf("

x=%f,y=%f"

&

x,&

y);

输入变量x、y的值(□代表空格),正确的输入是_C___。

(scanf函数是取地址的,所以一定要加上字母。

不是int函数)

A)1.25,2.4□2.4C□

15.已知intx=(1,2,3,4);

变量x的值是__D__。

(其实,逗号表达式无非是把若干个表达式“串联”起来,分解开就是:

x=1;

x=2;

x=3;

x=4;

最终结果是x=4)

16.已知inti=1,j=0;

执行下面语句后j的值是_D___。

while(i)

switch(i)

{case1:

i+=1;

j++;

break;

case2:

i+=2;

case3:

i+=3;

default:

i--;

}A)1B)2C)3D)死循环

17.求取满足式12+22+32+……+n2≤1000的n,正确的语句是A____。

A)for(i=1,s=0;

(s=s+i*i)<

=1000;

n=i++);

B)for(i=1,s=0;

n=++i);

C)for(i=1,s=0;

(s=s+i*++i)<

n=i);

D)for(i=1,s=0;

(s=s+i*i++)<

18.下面的for语句_C___。

for(x=0,y=10;

(y>

0)&

&

(x<

4);

x++,y--);

A)是无限循环B)循环次数不定C)循环执行4次D)循环执行3次

19.已知chara[][20]={"

Beijing"

"

shanghai"

tianjin"

chongqing"

};

语句printf("

%c"

a[30]);

的输出是_C___。

A)<

空格>

B)nC)不定D)数组定义有误

20.对二维数组的正确说明是___C_。

前面的括号内的数字可以省略,但后面的不可以

A)inta[][]={1,2,3,4,5,6};

B)inta[2][]={1,2,3,4,5,6};

C)inta[][3]={1,2,3,4,5,6};

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

21.对字符数组str赋初值,str不能作为字符串使用的一个是_D___。

A)charstr[]="

B)charstr[]={"

C)charstr[9]={'

s'

'

h'

a'

n'

g'

i'

D)charstr[8]={'

22.如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为_A___。

A)静态变量(全局变量)B)动态变量(局部变量)C)外部变量D)内部变量

23.在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是__D__。

A)externB)registerC)auto(自动变量)D)static(静态变量)

24.定义一个函数实现交换x和y的值,并将结果正确返回。

能够实现此功能的是_C___。

A)swapa(intx,inty)B)swapb(int*x,int*y)

{inttemp;

{inttemp;

temp=x;

x=y;

y=temp;

temp=x;

}}

C)swapc(int*x,int*y)D)swapd(int*x,int*y)

{int*temp;

temp=*x;

*x=*y;

*y=temp;

25.在下列结论中,只有一个是错误的,它是__C__。

A)C语言允许函数的递归调用

B)C语言中的continue语句,可以通过改变程序的结构而省略

C)有些递归程序是不能用非递归算法实现的

D)C语言中不允许在函数中再定义函数

26.说明语句"

int(*p)();

的含义是__C__。

A)p是一个指向一维数组的指针变量

B)p是指针变量,指向一个整型数据

C)p是一个指向函数的指针,该函数的返回值是一个整型(一个变量的指针即为其地址)

D)以上都不对

27.设有说明int(*p)[4];

其中的标识符p是_C___。

A)4个指向整型变量的指针变量

B)指向4个整型变量的函数指针

C)一个指向具有4个整型元素的一维数组的指针

D)具有4个指向整型变量的指针元素的一维指针数组

28.已知:

chars[10],*p=s,则在下列语句中,错误的语句是__B__。

S是变量,不能赋予确切的值

A)p=s+5;

B)s=p+s;

C)s[2]=p[4];

D)*p=s[0];

29.已知:

inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int(*ptr)[3]=a,*p=a[0];

则以下能够正确表示数组元素a[1][2]的表达式是_C___。

A)*(*(a+1)+2)B)*(*(p+5))C)(*ptr+1)+2D)*((ptr+1)[2])

30.已知:

inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;

则值为3的表达式是AC____。

A)p+=2,*(p++)B)p+=2,*++pC)p+=2,*p++D)p+=2,++*p

32.函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。

能正确执行此功能的函数是D____。

A)funa(int*x,int*y)B)funb(intx,inty)

{int*p;

{intt;

p=x;

*y=*p;

t=x;

y=t;

C)func(int*x,int*y)D)func(int*x,int*y)

{*x=*y;

*y=*x;

{*x=*x+*y;

*y=*x-*y;

*x=*x-*y;

33.有定义如下:

structsk

{inta;

floatb;

}data,*p;

如果p=&

data;

则对于结构变量data的成员a的正确引用是_B___。

A)(*).data.aB)(*p).aC)p->

data.a

34.已知:

structst

{intn;

structst*next;

staticstructsta[3]={1,&

a[1],3,&

a[2],5,&

a[0]},*p;

如果下述语句的显示是2,则对p的赋值是__C__。

printf("

++(p->

next->

n));

A)p=&

a[0];

B)p=&

a[1];

C)p=&

a[2];

D)p=&

a[3];

35.fscanf函数的正确调用形式是____D。

A)fscanf(文件指针,格式字符串,输出列表);

B)fscanf(格式字符串,输出列表,文件指针);

C)fscanf(格式字符串,文件指针,输出列表);

D)fscanf(文件指针,格式字符串,输入列表);

36.使用fgetc函数,则打开文件的方式必须是___C_。

A)只写B)追加C)读或读/写D)参考答案B和C都正确

37.已知宏定义

#defineN3

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

执行语句z=2*(N+Y(5+1));

后,变量z的值是_B___。

A)42B)48C)52D)出错

38.已知宏定义#defineSQ(x)x*x,执行语句printf("

10/SQ(3));

后的输出结果是C___。

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

二、阅读程序题

阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。

通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。

如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。

程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。

1.下面程序的输出结果是___B_。

#include<

stdio.h>

main()

{intx=10;

{intx=20;

printf("

%d,"

x);

}

%d\n"

}A)10,20B)20,10C)10,10D)20,20

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

{intx=10,y=10;

printf("

%d%d\n"

x――,――y);

}A)1010B)99C)910D)109

3.下面程序可能的输出结果是_AC___。

main()

{inta,b;

scanf("

%2d%3d"

a,&

b);

a=%db=%d\n"

a,b);

}A)a=12b=34B)a=123b=45C)a=12b=345D)语句右错误

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

inta=10,b=50,c=30;

if(a>

b)

a=b;

b=c;

c=a;

a=%db=%dc=%d\n"

a,b,c);

A)a=10b=50c=10B)a=10b=30c=10

C)a=50b=30c=10D)a=50b=30c=50

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

{inta=0,b=1,c=0,d=20;

if(a)d=d-10;

elseif(!

if(!

c)d=15;

elsed=25;

d=%d\n"

d);

}A)d=10B)d=15C)d=20D)d=25

6.下面程序的输出结果为___B_。

{inta=1,b=0;

switch(a)

switch(b)

{case0:

**0**"

);

break;

case1:

**1**"

**2**"

}A)**0**B)**0****2**C)**0****1****2**D)有语法错误

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

{char*s="

12134211"

intv1=0,v2=0,v3=0,v4=0,k;

for(k=0;

s[k];

k++)

switch(s[k])

{case'

1'

:

v1++;

case'

3'

v3++;

2'

v2++;

v4++;

v1=%d,v2=%d,v3=%d,v4=%d\n"

v1,v2,v3,v4);

}A)v1=4,v2=2,v3=1,v4=1B)v1=4,v2=9,v3=3,v4=1

C)v1=5,v2=8,v3=6,v4=1D)v1=4,v2=7,v3=5,v4=8

8.下面程序的输出是____B。

{intnum=0;

while(num<

=2)

{num++;

num);

}A)1B)1C)1D)1

222

33

4

9.从键盘上输入"

446755"

时,下面程序的输出是C____。

{intc;

while((c=getchar())!

='

\n'

switch(c-'

putchar(c+4);

putchar(c+3);

putchar(c+2);

\n"

}A)888988B)668966C)88898787D)66898787

10.下面程序的输出结果是__A__。

{inti,j,x=0;

for(i=0;

i<

2;

i++)

{x++;

for(j=0;

j<

-3;

j++)

{if(j%2)

continue;

x++;

x=%d\n"

x);

}A)x=4B)x=8C)x=6D)x=12

11.下面程序的输出结果是_C___。

{intn[3][3],i,j;

3;

i++)

j++)

n[i][j]=i+j;

n[i+1][j+1]+=n[i][j];

n[i][j]);

}A)14B)0C)6D)不确定

12.下面程序的输出结果是_B___。

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

inti,j,n;

n=9;

i=n/5;

j=n-i*5-1;

a[%d][%d]=%d\n"

i,j,a[i][j]);

}A)6B)-3C)2D)不确定

13.下面程序的输出结果是__D__。

{chars1[50]={"

somestring*"

},s2[]={"

test"

%s\n"

strcat(s1,s2));

}A)somestring*B)test

C)somestritestD)somestring*test

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

f(char*s)

{char*p=s;

while(*p!

\0'

p++;

return(p-s);

{printf("

f("

ABCDEF"

));

}A)3B)6C)8D)0

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

string.h>

{charstr[100]="

Howdoyoudo"

strcpy(str+strlen(str)/2,"

esshe"

str);

}A)HowdoyoudoB)esshe

C)HowareyouD)Howdoesshe

16.下面程序的输出结果是___C_。

func(inta,intb)

c=a+b;

return(c);

{intx=6,y=7,z=8,r;

r=func((x--,y++,x+y),z--);

r);

}A)11B)20C)21D)31

17.下面程序的输出结果是_A___。

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

int*p;

p=a;

%d"

*p);

*(++p));

*++p);

*(p--));

p+=3;

%d%d"

*p,*(a+3));

}A)123354B)123456C)122345D)123445

18.下面程序的输出结果是___A_。

main()

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

intx,y,*p;

p=&

x=*(p+2);

y=*(p+4);

%d,%d,%d\n"

*p,x,y);

}A)1,3,5B)1,2,3C)1,2,4D)1,4,5

19.下面程序的输出结果是__D__。

#include"

string.h"

fun(char*w,intn)

{chart,*s1,*s2;

s1=w;

s2=w+n-1;

while(s1<

s2)

{t=*s1++;

*s1=*s2--;

*s2=t;

{staticchar*p="

1234567"

fun(p,strlen(p));

%s"

p);

}A)7654321B)1717171C)7171717D)1711717

20.下面程序的输出结果是__D__。

char*p="

abcdefghijklmnopq"

{inti=0;

while(*p++!

e'

);

%c\n"

*p);

}A)cB)dC)eD)f

21.下面程序的输出结果是B__C__。

stdio.h"

structstr1

{charc[5];

char*s;

{structstr1s1[2]={{"

ABCD"

EFGH"

},{"

IJK"

,"

LMN"

}};

structstr2

{structstr1sr;

intd;

}s2={"

OPQ"

RST"

,32767};

structstr1*p[2];

p[0]=&

s1[0];

p[1]=&

s1[1];

,++p[1]->

s);

/*①*/

,s2.sr.c[2]);

/*②*/

}①A)LMNB)MNC)ND)IJK

②A)OB)PC)QD)R

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

{intx,*y;

}*p;

ints[]={10,20,30,40};

structsta[]={1,&

s[0],2,&

s[1],3,&

s[2],4,&

s[3]};

{p=a;

++(*(++p)->

y));

}A)10B)11C)20D)21

三、程序填空题

在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。

这类习题的设计就是要引导读者逐步掌握编程的方法。

本节习题的难度适中,可能有些典型的程序在

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

当前位置:首页 > 法律文书 > 辩护词

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

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