C语言总复习资料Word文档格式.docx

上传人:b****6 文档编号:16544624 上传时间:2022-11-24 格式:DOCX 页数:46 大小:37.24KB
下载 相关 举报
C语言总复习资料Word文档格式.docx_第1页
第1页 / 共46页
C语言总复习资料Word文档格式.docx_第2页
第2页 / 共46页
C语言总复习资料Word文档格式.docx_第3页
第3页 / 共46页
C语言总复习资料Word文档格式.docx_第4页
第4页 / 共46页
C语言总复习资料Word文档格式.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

C语言总复习资料Word文档格式.docx

《C语言总复习资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言总复习资料Word文档格式.docx(46页珍藏版)》请在冰豆网上搜索。

C语言总复习资料Word文档格式.docx

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

8.以下不能定义为用户标识符的是()。

A)MainB)_0C)_intD)sizeof

9.以下选项中不能作为合法常量的是()。

A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0

10.数字字符0的ASCII值为48,若有以下程序

main()

{chara='

1'

b='

2'

;

%c,"

b++);

%d\n"

b-a);

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

A)3,2B)50,2C)2,2D)2,50

11.有以下程序

成功接收文件

{intm=12,n=34;

%d%d"

m++,++n);

%d%d\n"

n++,++m);

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

A)12353514B)12353513C)12343514D)12343513

12.有定义语句:

intb;

charc[10];

则正确的输入语句是()。

A)scanf("

%d%s"

&

b,&

c);

B)scanf("

b,c);

C)scanf("

b,c);

D)scanf("

b,&

13.有以下程序

{intm,n,p;

scanf("

m=%dn=%dp=%d"

m,&

n,&

p);

%d%d%d\n"

m,n,p);

}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()。

A)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)123456789\

14.有以下程序

{inta,b,d=25;

a=d/10%9;

b=a&

&

(-1);

%d,%d\n"

a,b);

A)6,1B)2,1C)6,0D)2,0

15.有以下程序

main()

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

if(i++==1&

(++j==3||k++==3))

%d%d%d\n"

i,j,k);

}

A)123B)234C)223D)233

16.若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a>

b||c>

d的值为()

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

17.有以下程序

main(){

intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<

7)if(p[i]%2)j+=p[i];

j);

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

A)42B)45C)56D)60

18.有以下程序

main(){chara[7]="

a0\0a0\0"

inti,j;

i=sizeof(a);

j=strlen(a);

%d%d\n"

i,j);

A)22B)76C)72D)62

19.以下能正确定义一维数组的选项是()。

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

B)chara[]={0,1,2,3,4,5};

C)chara={'

A'

'

B'

C'

};

D)inta[5]="

0123"

20有以下程序

intf1(intx,inty){returnx>

y?

x:

y;

}

intf2(intx,inty){returnx>

y:

x;

main(){inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

%d,%d,%d\n"

e,f,g);

A)4,3,7B)3,4,7C)5,2,7D)2,5,7

21.已有定义:

chara[]="

xyz"

b[]={'

x'

y'

z'

,以下叙述中正确的是()。

A)数组a和b的长度相同B)a数组长度小于b数组长度

C)a数组长度大于b数组长度D)上述说法都不对

22.有以下程序

voidf(int*x,int*y)

{intt;

t=*x;

*x=*y;

*y=t;

}

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

p=a;

q=&

a[7];

while(p{f(p,q);

p++;

q--;

8;

i++)printf("

%d,"

a[i]);

A)8,2,3,4,5,6,7,1,B)5,6,7,8,1,2,3,4,C)1,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,1,

23有以下程序

inta[3][3],*p,i;

p=&

a[0][0];

9;

i++)p[i]=i;

a[1][i]);

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

A)012B)123C)234D)345

24以下叙述中错误的是()。

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”出错信息

D)可以通过赋初值的方式确定数组元素的个数

25为了判断两个字符串s1和s2是否相等,应当使用()。

A)if(s1==s2)B)if(s1=s2)C)if(strcpy(s1,s2))D)if(strcmp(s1,s2))

二、阅读程序填空(每小题3分,共30分)

1.以下程序运行时,若从键盘输入:

102030<

回车>

,输出的结果是

(1)。

#include

main() 

{inti=0,j=0,k=0;

scanf("

%d%*d%d"

i,&

j,&

k);

printf("

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

(2)。

#defineS(x)4*x*x+1

main(){inti=6,j=8;

S(i+j));

3.以下程序运行后的输出结果是(3)。

main(){inta=3,b=4,c=5,t=99;

if(bif(aprintf("

a,b,c)}

4.以下程序运行后的输出结果是(4)。

main(){inta,b,c;

a=10;

b=20;

c=(a%b<

1)||(a/b>

1);

a,b,c);

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

main(){charc1,c2;

for(c1='

0'

c2='

9'

c1printf("

\n"

6.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:

B33<

,则输出结果是(6)。

#include

main(){chara,b;

a=getchar();

a=a-'

+'

b=b*2;

%c%c\n"

7.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。

请填空。

voidfun(int,int,int(*)[4],int*);

main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

i++)printf("

%4d"

b[i]);

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

i{x=ar[i][0];

for(j=0;

j(7)=x;

}}

10.以下程序运行后的输出结果是(10)。

main(){charch[]="

abc"

x[3][4];

inti;

i++)strcpy(x[i],ch);

%s"

x[i][i]);

8.以下程序运行后的输出结果是(8)。

voidswap(intx,inty)

t=x;

x=y;

y=t;

%d%d"

x,y);

main(){inta=3,b=4;

swap(a,b);

%d%d"

9.以下程序运行后的输出结果是(9)。

voidfun(char*s,intp,intk){inti;

for(i=p;

i}

main(){chars[]="

abcdefg"

fun(s,3,strlen(s));

puts(s);

三、程序改错题(本题共20分)

下面程序的功能是对a数组中的元素按从大到小的顺序排序。

其中有5处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。

(每找对1个错误位置,得2分,每修改正确1个错误,再得2分。

#include<

stdio.h>

#defineN10;

{inta[N]={2,17,8,3,24,53,82,1,29,101};

inti,j,k,t;

{k=i;

for(j=i+1;

j<

j++)

if(a[j]<

a[k])k=j;

if(k=i)

{t=a[j];

a[j]=a[i];

a[i]=t;

}}

1.D2.B3.A4.C5.B

6.C7.C8.D9.B10.C

11A12B13A14B15D

16B17B18C19B20A

21C22D23D24C25D

二、阅读程序题(每小题3分,共30分)

1.103002.813.45994.102005.0918273645

6.1B7.br[i]8.43349.abcfg10.abcbcc

错!

应为:

#defineN10

{

inta[N]={2,17,8,3,24,53,82,1,29,101};

inti,j,k,t;

for(j=i+1;

if(a[j]<

错!

if(a[j]>

a[k])

if(k=i)错!

if(k!

=i)

{

t=a[j];

错!

t=a[k];

a[j]=a[i];

a[k]=a[i];

a[i]=t;

一.单项选择题(每小题2分,共30分)

一个程序的执行是从()。

A.本程序的main函数开始,到main函数结束

B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

C.本程序的main函数开始,到本程序文件的最后一个函数结束。

D.本程序文件的第一个函数开始,到main函数结束。

2.设有以下定义:

defineD2

inta=0;

doubleb=1.25;

charc=’A’;

则下面语句中错误的是()。

A.a++;

B.b++;

C.c++;

D.D++;

3.有如下输入语句:

scanf(“x=%d:

y=%d”,&

x,&

y);

为使变量x的值为2002,

变量y的值为11,那么从键盘输入数据的正确格式为()。

A.200211B.x=2002:

y=11

C.x=2002y=11D.x=2002,y=11

4.设有变量定义intx=5,n=5;

计算表达式x+=n++后,变量x,n值分别为()。

A.11,6B.10,5C.10,6D.5,6

5.已知inti=5;

执行下列语句后,变量i的值为()。

switch(i)

{case4:

i+=1;

case5:

case6:

default:

A.5B.6C.7D.8

6.表示关系X<

=Y<

=Z的c语言表达式为()。

A.(X<

=Y)&

(Y<

=Z)B.(X<

=Y)AND(Y<

=Z)

C.X<

=ZD.(X<

7.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()。

A.1B.2C.2.0D.2.5

8.表达式strcmp(“box”,“boss”)的值是一个()。

A、正数B、负数C、0D、不确定的数

9.判断字符串是否相等,应当使用()。

A.if(a==b)B.if(a=b)C.if(strcpy(a,b))D.if(!

strcmp(a,b))

10.以下叙述中不正确的是()。

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在main()函数中定义的变量是全局变量,可以被文件中的其它函数使用

11.若i和j已定义为int类型,则以下程序段中内循环体的总的执行次数是()。

for(i=5;

i;

i--)

for(j=0;

j<

4;

j++)

{.........}

A.25B.20C.24D.30

12.若有以下说明和语句:

structworker

{

intno;

char*name;

}work,*p=&

work;

则以下引用方式不正确的是()。

A.work.noB.(*p).noC.work->

noD.p->

no

13.设有定义:

inta,*pa=&

a;

则以下语句中能正确为变量a读入数据的是()。

A.scanf(“%d”,&

pa);

B.scanf(“%d”,a);

C.scanf(“%d”,pa);

D.scanf(“%d”,*pa);

14.有如下定义

structperson

{charname[9];

intage;

structpersonclass[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam16,};

根据上述定义,能输出字母M的语句是()。

A.printf(“%c\n”,class[3].name);

B.printf(“%c\n”,class[3].name[1]);

C.printf(“%c\n”,class[2].name[1]);

D.printf(“%c\n”,class[2].name[0]);

15.若有说明inti,j=2,*p=&

i;

,则能完成i=j赋值功能的语句是()。

A.i=*p;

B.*p=j;

C.i=*j;

D.i=**p;

阅读和分析下列程序,根据程序写出程序的输出结果或填空。

(1~4小题每小题3分,5~6小题每空3分,共30分)

1. 

以下程序的输出结果是:

_____。

main()

inti,s=0;

for(i=1;

i<

i+=2)

s+=i+1;

printf(“%d\n”,s);

2. 

以下程序段的输出结果是:

________。

main()

{

intm=0;

while(m++<

=1)

printf("

m);

3. 

#include"

stdio.h"

voidfun(intx,inty)

{x=x+y;

y=x-y;

x=x-y;

%d,%d,"

{intx=2,y=3;

fun(x,y);

printf("

4. 

_______。

#include"

inta=7,b=8,*p,*q,*r;

p=&

q=&

b;

r=p;

p=q;

q=r;

%d,%d,%d,%d\n"

*p,*q,a,b);

5.下面程序的功能是:

从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

{floatx,max,min;

scanf(“%f”,&

x);

max=x;

min=x;

while(

(1))

{if(x>

max)max=x;

if(

(2))min=x;

scanf(“%f”,(3))

printf(“\nMax=%f\nMin=%f\n”,max,min);

6. 

函数fun的功能是求xy(y>

=1),请填空。

doublefun(doublex,inty)

(1)

doublez;

for(i=1,z=1;

(2);

i++)

z=z*x;

(3)

三、编程题(共40分)

1.编写一程序求出表达式s=1!

+3!

+5!

+…….+19!

(10分)

2.编写一个strlen函数,它能对一个字符串测出其长度,函数返回值就是字符串的长度。

(注:

长度不包括字符串结束标志“\0“)。

(10分)

3.假设在磁盘文件in.dat中存放着如下格式的10个整数:

583723618492932

试编写程序实现如下功能:

编写函数input从文件in.dat中读出所有数据;

编写函数sort将这组数据按从小到大的顺序排列;

编写函数output将排序后的数据输出到文件out.dat中。

在主函数中依次调用以上函数。

(20分)

二.单项选择题(每小题2分,共30分)

1.A2.D3.B4.C5.D

6.A7.C8.A9.D10.D

11.B12.C13.C14.D15.B

三.阅读和分析下列程序,根据程序写出程序的输出结果或填空。

1.30 

2.1

2

3

3.3,2,2,3

4.8,7,7,8

5.

(1)x>

=0

(2)x<

min(3)&

x

6.

(1)inti;

(2)i<

=y(3)return(z)或returnz

1.参考程序如下:

#include“stdio.h”

main()

{inti;

longs=1,f=1;

for(i=3;

=19;

i+=2)

{f=f*(i-1)*i;

s=s+t;

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

当前位置:首页 > 求职职场 > 面试

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

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