《C语言》总复习题_第1页
《C语言》总复习题_第2页
《C语言》总复习题_第3页
《C语言》总复习题_第4页
《C语言》总复习题_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

《C语言》课程综合复习资料

一、单项选择

I若有如下语句:ini*pl,*p2;则其中int所指的是(D)

A.pl的类型

B.*pl和*p2的类型

C.p2的类型

D.pl和p2所能指向变量的类型

2.下列程序段的输出结果是(C)x=9;while(x>7){printf(<<t:n

A.****

B.***

C.**

D.*

3.下列变量的定义及赋值正确的是(C)

A.inti=O;j;

B.charc=wA”;

C.doublex,y,z;x=y=z=100;

D.floata=b=IOO;

4.设有语句:intx=10;x=x-=x-x:,则执行语句后,x的值为(B)

A.30

B.20

C.10

D.40

5.设有语句:floatx=l,y;y=x3/2;则y的值是(C)

A.1

B.2

C.2.0

D.2.5

6设有如下定义和执行语句,其输出结果为(A)inta=3,b=3;a=-b+1;printf(a%d%dMab);

A.32

B.42

C.22

D.23

7,设有两字符串“Beijing"、“China”分别存放在字符数组strl[10],str2[10]中,下面语句中能把“China”

连接到“Beijing”之后的为(C)

A.slrcpy(strl,str2);

B.strcpy(strl,"China");

C.strcat(strI,aChinaM)

D.strcat("Beijing”,str2);

8.设有定义语句:charstrW2()]={"Beijing""},*p=slr;则printf(",'%d\n"",strlen(p+20));输出结果

是(C)

A.0

B.5

C.7

D.20

9.设有定义皇,]:[1,5,7,9,1113},?=@3;则*(氏2),*54)的值是(A)

A.511

B.19

C.59

D.有错误

10.设有定义:intx=O,y=l,z=l:则运行表达式:x=y>z-后,x,y,z的值分别是(D)

A.1,1,1

B.1,2,0

C.0,1,1

D.0,2,0

11.设有定义:intx=12,n=5;则表达式x%=(n%2)的值为(A)

A.0

B.1

C.2

D.3

12.设有定义inta=3,b=4,c=5;,则以下表达式中,值为。的表达式是(D)

A.a&&b

B.a<=b

C.a||bc&&b-c

D.!((a<b)&&!c||l)

13.设有定义inta[]={l,5,7,9,ll,13),*p=a3;JM*(p-2),*(a4)的值是(A)

A.511

B.I9

C.59

D.有错误

14.设有定义char*p=uabcde\Ofghjik\0w;则printf("%d\n",strlen(p));输出结果是(D)

A.12

B.15

C.6

D.5

15.设有intx=ll;则表达式(x*1/3)的值是(A)

A.3

B.4

C.11

D.12

16.设a=3,b=4,c=-5,则逻辑表达式:a||bc&&b==c的值是(A)

A.I

B.O

C.非0

D.语法错

17.若有以F定义:inta[10],*p=a;则*(p+3)表示的是(B)

A.元素a[3]的地址

B.元素a[3]的值

C.元素a[4]的地址

D.元素a[4]的值

IS.若有以下定义:chars[20]="programming",*ps=s;则不能代表字符g的表达式是(A)

A.ps3

B.s[3]

C.ps[3]

D.ps=3,*ps

19.C语言中,函数返I可值的类型是由(D)

A.return语句中的表达式类型决定

B.调用函数的主调函数类型决定

C.调用函数时的临时类型决定

D.定义函数时所指定的函数类型决定

20.C语言提供的合法关键字是(D)

A.swicth

B.cha

C.Case

D.default

二、读程序题

I.^include<stdio.h>

voidmain()

{inta=4,x=3,y=2,z=l;

prinlf(""%d\n"",(a<x?a:z<y?z:x));

}"

2."#include<stdio.h>

voidmain()

{intx=12,y=0;

if(x>=0)

{if(x>0)y=10;}

elsey=-10;

printq“y=%d\n”,y);

)"

3."^include<stdio.h>

voidmain()

{intk=l;

switch(k)

{case0:printf(""A"");break;

case1:printf(""B'M,);

case2:prinlf(”T");

case3:printf(""G"");break;

default:printf(““E"”);

)

I"

4."#include<stdio.h>

#dcfineS(x)x*x

voidmain()

{inta,k=3,m=l;

a=S(k+m);

printf(,",%d,,,,,a);

}"

5."#include<stdio.h>

intfunfinta.inib)

{if(a>b)return(a);

elsercturn(b);

)

voidmain()

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

r=fun(fun(x,y),2*z);

printf(',"%d\nH",r);

I"

6#includc<stdio.h&>

voidmain()

{intk=4,n=0;

for(;n<k;)

{n++;

if(n%3!=0)continue;

k--;

)

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

编程题

1.写一个判断素数的函数。要求在主函数中输入一个整数并输出相应的判断信息。

2.编程序计算s=H-2!+3!-4!+……-10!,并输出结果。

《C语言》课程综合复习资料参考答案

一、单项选择

题目12345678910

答案DCCBCACCAD

题目11121314151617181920

答案ADADAABADD

二、读程序题

1.答案:1

2.答案:y=10

3.答案:BIG

4.答案:7

5.答案:12

6答案:3,3

三、编程题

I.参考代码:

#:ncludc<stdio.h>

voidmain()

{intn,i;

printff'pleaseenteraintegernumber,n=?^^);

scanfC%d”,&n);

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

if(n%i==O)brcak;

iRi<n)prinU("%disnotaprimenumber.\n,5,n);

elseprintf(u%disaprimenumberin'',n);

)

2.参考代码:

#include<sldio.h>

voidmain()

{inti,k=l,njie=l;

floatsum=0;

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

{njie=njie*i;

sum=sum+njie*k;

k=-l*k;

}

printf("%iAn",sum);

)

若有:inta[]={1,2,3,4,5,6,7,8),*p=a;不能正确表示a[5]的表达式是(A)

•A)

P5

•B)

p[5]

•C)

*(a5)

•D)

*(p5)

2(2.0分)

设有两字符串“Beijing"、“China”分别存放在字符数组strl[10],str2放0]中,下面

语句中能把“China”连接到“Beijing”之后的为(C)

•A)

strcpy(strl,str2);

•B)

strcpy(strl,“China”);

•0

strcat(strl,"China”)

•D)

strcat("Beijing”,str2);

3(2.0分)

能正确表示x的取值范围在[0,100]和[TO,-5]内的表达式是(C)

•A)

(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

•B)

(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)

•C)

(x>=-10)&&(xV=-5)&&(x>=0)&&(x<=100)

•D)

(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

4(2.0分)

设有语句:intx=10;x=x-=x-x;,则执行语句后,x的值为(B)

•A)

30

•B)

20

•0

10

•D)

40

5&0分)

若有定义:inta[5];则a数组中首元素的地址可以表示为(A)

•A)

&a

•B)

a1

•0

a

•D)

&a[l]

6⑵0分)

表示xWO或x21的正确的表达式是(A)

•A)

x>=l|x<=0

•B)

x>l|x<=0

•C)

x>=lorx<=0

•D)

x>=l||x<0

7(2.0分)

若二维数组a有m列,则元素前的数组元素个数为(B)

•A)

j*mi

•B)

i*mj

•0

i*mj-113

•D)

i*mj1

8(2.0分)

下列程序段的输出结果是(C)x=9;while(x>7){printf();x-;}

•A)

****

•B)

***

•0

**

•D)

*

9⑵0分)

设有定义inta[]={1,5,7,9,11,13),*p=a3;则定p-2),*(a4)的值是(A)

•A)

511

•B)

19

•C)

59

•D)

有错误

10(2.0分)

C语言中,运算对象必须是整型数的运算符是(A)

•A)

%

•B)

\

•0

%和\

•D)

**

11(2.0分)

假定x和y为double型,则表达式x=2,y=x3/2的值是(D)

•A)

3.500000

•B)

3

•0

2.000000

•D)

3.000000

12(2.0分)

下列变量的定义及赋值正确的是(C)

•A)

inti=0;j;

•B)

charc="A”;

•C)

doublex,y,z;x=y=z=100;

•D)

floata=b=100;

⑵0分)

若有如下语句:int*pl,*p2;则其中int所指的是(C)

•A)

pl的类型

•B)

*pl的类型

•C)

p2的类型

•D)

pl利p2所能指向变量的类型

14(2.0分)

若有:inta[10],*p=&a[0];,关于数组名a的不正确的说法是(C)

•A)

a是个数组指针

•B)

数组名a表示数组的首地址

•0

数组名a与a[0]等价

•D)

a和p都指向同一个存储单元

15(2.0分)

设有定义语句:charstr[][20]={〃Hello〃,“Beijing"},*p=str;则

,/,,

printf(%d\n,strlen(p+20));输出结果是(C)

•A)

0

•B)

5

•0

7

•D)

20

16(2.0分)

结束while(表达式)循环的条件是(B)

•A)

当表达式的值为0时

•B)

当表达式的值不为0时

•C)

当表达式的值为1时

•D)

当表达式的值非0时

17(2.0分)

对于inta[]=<1,2,3,4,5,6},p;p=a;*(p3)=2;则*p,*(p3)的值是(C)

•A)

15

•B)

13

•C)

14

•D)

16

18(2.0分)

设有定义:intx=0,y=1,z=l;则运行表达式:x二y>z—后,x,y,z的值分别是(C)

•A)

1,1,1

•B)

1,2,0

•0

0,1,1

•D)

0,2,0

19(2.0分)

设有如下定义和执行语句,其输出结果为(A)inta=3,b=3;a=一b+1;

printf(^%d%dM,a,b);

•A)

32

•B)

42

•C)

22

•D)

23

20(2.0分)

设有语句:floatx=l,y;y=x3/2;则y的值是(C)

•A)

1

•B)

2

•0

2.0

•D)

2.5

答题要求:

读程序,写出程序的执行结果。

)

ttinclude<stdio.h>

ttdefineS(x)x*x

voidmain()

{inta,k=3,m=l:

a=S(k+m);

printfa);

}

答案:7

22

ttinclude<stdio.h>

voidmain()

{intx=12,y=0;

if(x>=0)

{if(x>0)y-10;}

elsey=-10;

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

}

答案:y=10

23

^include<stdio.h>

intfun(inta,intb)

{if(a>b)return(a);

elsereturn(b);}

voidmain()

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

r=fun(fun(x,y),2*z);

printf(z,%d\n,z,r);

)

答案:12

24

ttinclude<stdio.h>

voidmain()

{inta=4,x=3,y=2,z=l;

printf(/z%d\n,z,(a<x?a:z<y?z:x));

)

答案:1

25

)

tfinclude<stdio.h>

voidmain()

{intk=l;

switch(k)

{case0:printf(〃A〃);

break;

case1:printf("B〃);

case2:prinlf(〃I〃);

case3:printf(?,G,Z);

break;

default:printf(〃E");

)

}

答案:BIG

26

#include<stdio.h>

#defineS(a,b)(a)*(b)

voidmain()

{inta=3,area;

area=S(a,a+3);

printf("area二%d\n”,area);

)

答案:1

三、编程题

答题要求:

按照题目要求编写程序。

27.编程,在NxN矩阵中(即N行N列的数组),求主对角线和次对角线上的各元素之和。

答案:#defineN10;

main()

(

irti,j;

irta[N][N];

irtsum=0;

for(i=0;i

28.写一个判断素数的函数。要求在主函数中输入一个整数并输出相应的判断信息。

答案:^include<stdio.h>

voidmain()

{intn,i;

printf("pleaseenteraintegernumber,n=?w);

scanf("%d",&n);

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

if(n%i==0)break;

if(i<n)printf(isnotaprimenumber.\n",n);

elseprintf("刎isaprimenumber.\nv,n);

}

29.编程序计算s=l!-2!+3!-4!+.....-101,并输出结果。

答案:^include<stdio.h>

voidmain()

{inti,k=l,njie=l;

floatsum=0;

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

{njie=njie*i;

sum=sum+njie*k;

k=-l*k;

)

printfsum);

)

不是给数组的第一个元素赋值的语句是(D)

•A)

inta[2]={l};

•B)

inta[2]={l*2};

•0

inta[2];scanf("%d”,a);

•D)

a[l]=l;

2(2.0分)

设有两字符串“Beijing"、“China”分别存放在字符数组strl[10],str2[10]中,下面

语句中能把“China”连接到“Beijing”之后的为(C)

•A)

strcpy(strl,str2):

•B)

strcpy(strl,“China");

•0

strcat(strl,“China”)

•D)

strcat("Beijing”,str2);

3对于循环for(k=16;k>0;k-=3)putchar('*,);输出是(B)

•A)

•B)

•C)

.卜*1*,卜,卜*?*

•D)

无限循环

4设有语句:intx=10;x=x-=x-x;,则执行语句后,x的值为(B)

•A)

30

•B)

20

•0

10

•D)

40

5如有以下变量定义:inta=5,b=6,c=12:那么下列表达式结果为真的是(A)

•A)

a-b

•B)

a>b

•C)

b/c

•D)

c%b

6能将高级语言编写的源程序转换为目标程序的软件是(D)

•A)

汇编程序

•B)

编辑程序

•C)

解释程序

•D)

编译程序

7,若有定义:inta[5];则a数组中首元素的地址可以表示为(A)

•A)

&a

•B)

a1

•C)

a

•D)

&a[l]

8结构化程序设计的三种基本结构是(A)

•A)

顺序结构、选择结构、循环结构

•B)

if、switch>break

•C)

for>while、do-while

•D)

if、for、continue

9从变量的作用域来分,可分为全局变量和局部变量,形参是(A)

•A)

局部变量

•B)

全局变量

•C)

静态变量

•D)

动态变量

ioJ

对于inta=99,b='b';printf(<<%c,%dn,a,b);的结果是(C)

•A)

99,b

•B)

c,98

•C)

99,98

•D)

c,b

11.下列程序段的输出结果是(C)x=9;while(x>7){printf("*");x-;}

•A)

****

•B)

***

•0

**

•D)

*

12.若有定义intx,*p;,则IF确的赋值表达式是(C)

•A)

p=&x;

•B)

p二x;

•0

*p二&x;

•D)

*p二*x:

13.设有定义inta[]={1,5,7,9,11,13),*p=a3;则*[p-2),*(a4)的值是(A)

•A)

511

•B)

19

•0

59

•D)

有错误

14.下列变量的定义及赋值正确的是(C)

•A)

inti=0;j;

•B)

charc二"A”;

•C)

doublex,y,z;x=y=z=100;

•D)

floata=b=100;

15.设有定义语句:charstr□[20]二{"Hello","Beijing"},*p=str;则

printfCz%d\n/z,strlen(p+20));输出结果是(C)

•A)

0

•B)

5

•C)

7

•D)

20

16.若有:inta[10],*p=&a[0];,关于数组名a的不正确的说法是(A)

•A)

a是个数组指针

•B)

数组名a表示数组的首地址

•0

数组名a与a[0]等价

•D)

a和p都指向同一个存储单元

17.若有如下语句:int*pl,*p2;则其中int所指的是()

•A)

P1的类型

•B)

*pl和*p2的类型

•C)

P2的类型

•D)

P1和P2所能指向变量的类型

18.设有如下定义和执行语句,其输出结果为(A)inta=3,b=3;a=~b+1;

printf(u%d%dn,a,b);

•A)

32

•B)

42

•C)

2

温馨提示

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

评论

0/150

提交评论