辽东学院 c语言期末复习题.docx

上传人:b****3 文档编号:5457894 上传时间:2022-12-16 格式:DOCX 页数:12 大小:24.08KB
下载 相关 举报
辽东学院 c语言期末复习题.docx_第1页
第1页 / 共12页
辽东学院 c语言期末复习题.docx_第2页
第2页 / 共12页
辽东学院 c语言期末复习题.docx_第3页
第3页 / 共12页
辽东学院 c语言期末复习题.docx_第4页
第4页 / 共12页
辽东学院 c语言期末复习题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

辽东学院 c语言期末复习题.docx

《辽东学院 c语言期末复习题.docx》由会员分享,可在线阅读,更多相关《辽东学院 c语言期末复习题.docx(12页珍藏版)》请在冰豆网上搜索。

辽东学院 c语言期末复习题.docx

辽东学院c语言期末复习题

2、下面程序的功能是输出数组s中最大元素的下标。

填补空出的语句,以使程序完整。

main()

{

intk,p;

ints[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])_____________;

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

}

一、单项选择题(每题2分,共20分)

1.设x,y,z,k都是int型变量,则执行表达式:

x=(y=4,z=16,k=32)后,x的值为______

A.4   B.16   C.32   D.52

2.从循环体内某一层跳出,继续执行循环外的语句是:

______

  A.break语句     B.return语句    C.continue语句    D.空语句。

3.一个C程序的执行是从______

A.main()函数开始,直到main()函数结束。

B.第一个函数开始,最后一个函数结束。

  C.第一个语句开始,最后一个语句结束。

  D.main()函数开始,直到最后一个函数。

4.若x=5,y=3则y*=x+5;y的值为______

  A. 10  B. 20   C. 15     D. 30

5.若有以下定义,则能使值为3的表达式是:

intk=7,x=12;

A.x%=(k%=5)B.x%=(k-k%5)

C.x%=k-k%5D.(x%=k)-(k%=5)

6.C语言中用于结构化程序设计的三种基本结构是______

  A.if、switch、break

  B.if  while  for

  C.while  do-while  for

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

7.main()

  { intn;(n=6*4,n+6),n*2;printf(“n=%d\n”,n);}

  此程序的输出结果是______

A.30   B. 24    C. 60     D. 48

8.在16位机上使用C语言,若有如下定义:

uniondata{inti;charch;doublef;}b;

则共用体变量b占用内存的字节数是________。

A.所有成员字节数的总和B.2C.成员f的字节数D.11

9.以下说法正确的是:

A.输入项可以为-实型常量,如scanf("%f",3.5);

B.只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");

C.当输入-个实型数据时,格式控制部分应规定小数点后的位数,

如scanf("%4.2f",&f);

D.当输入数据时,必须指明变量的地址,如scanf("%f",&f);

10.下列对数组定义不正确的语句是______

  A.intm[5];              B、charb[]={‘h’,‘e’};

C、inta[10]={1,6,8,4};    D、char p[];

11、能正确表示a和b同时为正或同时为负的逻辑表达式是_______。

A.a>=0||b>=0)&&(a<0||b<0)     B.(a>=0&&b>=0)&&(a<0&&b<0)

C.(a+b>0)&&(a+b<=0)           D.a*b>0

12.有如下语句:

X+Y*Z>39&&X*Z||Y*Z是什么表达式_________。

A.算术表达式 B.逻辑表达式      C.关系表达式 D.字符表达式

二、填空题(每空2分,共20分)

1.C语言中的实型变量分为两种类型,它们是______________和_____________。

2.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式______________。

3、若有inta[5],*p=a;则p+2表示第    个元素的地址。

4.表达式7+8>2&&25%5的结果是___________________。

5.int*p的含义________________________________。

6.一个变量的指针是指。

7.数组int a[3][4];共定义了___________个数组元素。

8.执行以下for(i=1;i++<=5)语句后,变量i的值为______________。

9、设a=12、b=24、c=36,对于“scanf(”a=%d,b=%d,c=%d“,&a,&b,&c);”,输入形式应为______________。

一、选择题(每题2分,共20分)

1、列正确的标识符是。

  A.hot_do   B.a+b   C.test!

   D.%y

2、设整型变量a为5,使b不为2的表达式是。

  A.b=a/2   B.b=6-(——a)   C.b=a%2   D.b=a>3?

2:

1

3、设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是

A.把x和y按从大到小排列B.把x和y按从小到大排列

C.无确定结果D.交换x和y中的值

4、以下程序的输出结果是。

  intx=10,y=10;

  printf(“%d %d\n”,x——,——y);

  A.10 10     B.9  9     C.9  10    D.10  9

5、变量定义为inta[3]={1,4,7},*p=&a[2],则*p的值是。

A.&a[2]   B.4      C.7      D.1

6、以下不能正确定义二维数组的语句是_________。

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

C.inta[2][2]={{1},2,3};     D.inta[2][]={{1,2},{3,4}};

7、下面几种说法中哪个是正确的?

_____________

  A.else语句需与它前面的if语句配对使用;

  B.else语句需与前面最接近它的if语句配对使用;

  C.else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;

  D.以上都正确。

8、下面程序段的运行结果是________。

charstr[]="EFC",*p=str;printf("%d\n",*(p+2));

A.70B.0C.字符'F'的地址D.字符'F'

9、以下程序的输出结果是。

  charstr[15]=“hello!

”;

  printf(“%d\n”,strlen(str));

  A.15        B.14         C.7          D.6

10、若有如下定义,则_________是对数组元素的正确的引用。

  int a[10],*p;

  p=a;

  A.*&a[10]    B. a[11]     C. *(p+10)     D.*p

二、填空题(每空2分,共20分)

1、数组是表示类型相同的数据,而结构体则是若干       数据项的集合。

2、若自定义函数要求返回一个值,则应在该函数体中有一条语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符。

3、下列程序段的输出是___。

int*p,*q,k=5,j=6;

q=&k;p=q;q=&j;

printf("%d",*p);

4、在C语言中,字符串常量是用           括起的一串字符。

5、语句for(i=1;i==1;++i);循环次数是,退出循环后i=。

6、C语言的表达式与语句的区别在于。

 

7、给定声明intx=5,y=4;,表达式x+=y++的值是,执行该表达式后,x,y的值是,。

一、选择题(每小题2分,共20分)

1、在C程序中有如下语句:

char*func(intx,inty);它是。

  A.对函数func的定义。

      B.对函数func的调用。

  C.对函数func的原型说明。

  D.不合法的。

2、对于for(s=2; ;s++)可以理解为:

(    )

  A.for(s=2;0;s++)     B.for(s=2;1;s++)

  C.for(s=2;s<2;s++)   D.for(s=2;s>2;s++)

3、若c,c1,c2均为字符型变量,下列语句执行后。

c='a';

c1=++c;

c2=c++;

c1,c2的值分别为。

A、c1='b',c2='c'B、c1='a',c2='c'C、c1='b',c2='b'D、c1='a',c2='b'

4、执行语句:

printf(“%d”,(a=2)&&(b=-2));后,输出结果是______。

  A.无输出      B.结果不确定    C.-1        D.1

5、若变量c为char类型,能正确判断出c为小写字母的表达式是______.

  A.‘a’<=c<=‘z’            B.(c>=‘a’)||(c<=‘z’)

  C.(‘a’<=c)and(‘z’>=c)     D.(c>=‘a’)&&(c<=‘z’)

6、设单精度变量f,g均为5.0,使f为10.0的表达式是________.

  A. f+=g    B. f-=g+5     C. f*=g-15      D. f/=g*10

7、已有定义intx=3,y=4,z=5;则表达式“!

(x+y)+z-1&&y+z/2”的值是_______.

  A.6     B.0     C.2       D.1

8、设a=1,b=2,c=3,d=4,则表达式:

a

a:

c

a:

d的结果是()

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

9、设a为整型变量,不能正确表达数学关系:

10

  A.10

  C.a>10&&a<15  D.!

(a<=10)&&!

(a>=15)

10、以下说法中正确的是______________.

A、在C程序中,每行只能写一条语句

B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数据

C、在C程序中,%是只能用于整数运算的运算符

D、在C程序中,无论是整数还是实数,都有能被准确无误地表示

二、填空题(每空2分,共20分)

(1)、组成数组元素的特点是_________________;

  组成结构体元素的特点是___________________.

(2)C语言提供的三种逻辑运算符是、、。

(3)C程序设计中语句后的符号/*……*/所起作用是______________。

(4)在循环中,continue语句与break语句的区别是:

continue语句是_______,break是______。

(5)在C语言中,正确的标识符是由组成的,且由开头的。

(6)数组是表示类型相同的数据,而结构体则是若干       数据项的集合。

(7)C语言中putchar(c)函数的功能是______________________________。

三、判断题(每题1分,共10分)

1、C语言源程序文件通过了编译、连接之后,生成一个后缀为.EXE的文件。

(  )

2、在C程序中,函数既可以嵌套定义,也可以嵌套调用。

()

3、表达式1/2与表达式1.0/2.0的结果相同。

                                ()

4、构成数组的各个元素可以有不同的数据类型。

 (       )

5、在定义二维数组时,可以将该数组的两个维数全部省略           (      )

6、C语言中字符串的结束符是‘\0’。

()

7、do一while循环由do开始,用while结束,在while(表达式)后面不能写分号。

()

8、C程序总是从main()函数的第一条语句开始执行的。

 ()

9、只能在循环体内和switch语句体内使用break语句。

(   )

10、字符串"That"小于字符串"the"。

(    )

四、将下列程序补充完整(每空2.5分,共10分)

1、输入三角形的三条边a,b,c,求三角形的面积。

  #include“math.h”

  #include“stdio.h”

  main()

  {float a,b,c,d,t,s;

  printf(“请输入三角形的三条边:

”);

  scanf(“%f,%f,%f”,&a,&b,&c);

  if  

(1)

  printf(“%f%f%f不能构成三角形!

”,a,b,c);

  else{t=(a+b+c)/2;

  s= 

(2)

  printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\n”,a,b,c,s);}}

 2、编写程序,输入n个整数(n由键盘输入),统计其中正数、负数和零的个数。

  #include“stdio.h”

  main()

  {intx,n,k,k1=0,k2=0,k3=0;

  printf(“inputn=:

”);

(3)  

  for(k=0;k

  {scanf(“%d”,&x);

  if(x<0)k1++;

(4);

  else k3++;

  printf(“k1=%4d,k2=%4d,k3=%4d\n”,k1,k2,k3)}}

五、读程序题(每题5分,共10分)

1、 4. main()

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

  inti,j,s1=0,s2=0;i,j,s1=0,s2=0;

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

  for(j=0;j<3;j++)

  {if(i==j)s1=s1+a[i][j];

  if(i+j==2)s2=s2+a[i][j];

  }

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

2、intfun(intn)

{if(n>0)         

    returnn*fun(n-1);

else

    return1;

}

main()

{ inta=fun(4);

  printf(″a=%d\n″,a);

}

程序运行结果:

____________________

一、选择题(每小题2分,共20分)

1.若有代数式3ae/bc,则不正确的C语言表达式是:

A)a/b/c*e*3B)3*a*e/b/c

C)3*a*e/b*cD)a*e/c/b*3

2.设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为。

A.P+i*2      B. P+(i-1)*2     C. P+(i-1)      D. P+i

3.以下能正确定义整型变量a、b、c并为其赋初值5的语句是。

  A.int a=b=c=5;  B.int a,c,c=5;

  C.a=5,b=5,c=5;   D.a=b=c=5;

4、若有说明inta[3][4];则对a数组元素的正确引用是

  A.a[2][4]   B.a[1,3]   C.a[1+1][0]   D.a

(2)

(2)

5、设inta=5,b,*p=&a,则使b不等于5的语句为:

  A.b=*&a    B.b=*a    C.b=*p  D.b=a

6.下面程序段的运行结果是

charc[5]={'a','b','\0','c','\0'};

printf("%s",c);}

A.’a’’b’B.abC.abcD.a,b

7.已知各变量的类型说明如下:

intk,a,b;

unsignedlongw=5;

doublex=1.42;

则以下不符合C语言语法的表达式是:

A)x%(-3)B)w+=-2

C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)

8、不是C语言实型常量的是:

A.55.0   B.0.0   C.55.5   D.55e2.5

9.已有定义inta=-2;和输出语句:

printf("%8lx",a);以下正确的叙述是:

A.整型变量的输出格式符只有%d-种

B.%x是格式符的-种,它可以适用于任何-种类型的数据

C.%x是格式符的-种,其变量的值按+六进制输出,但%8lx是错误的

D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

10.字符串“xyzw”在内存中占用的字节数是:

  A.6   B.5   C.4   D.3

二、填空题(每空2分,共20分)

1.语句printf(″s\\t″)的输出结果为。

2.C程序设计的三种基本结构是_______、________、________。

3.已知整型变量a=3,b=4,c=5,写出逻辑表达式a||b+c>c&&b-c的值是。

4.若有说明和语句:

inta=25,b=60;b=++a;则b的值是      。

5.若有定义:

charc=‘\010’;则变量c中包含的字符个数是。

6.在C语言中,二维数组元素在内存中的存放顺序是。

若有定义:

doublex[3][5];则x数组中行下标的下限为,列小标的上限为

7.数组int a[5][4];共定义了______个数组元素。

8.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是__。

三、判断题(每小题1分,共10分)

1.逻辑运算符&&、|| 、!

的运算顺序是!

优先于&&优先于||。

 ()

2、在循环过程中,使用break语句和continue语句的作用是一样的(     )

3.数组的下标从1始。

( )

4.数组名可以作为参数进行传递。

(     )

5.C语言的一个特点是可以对计算机硬件进行操作 。

(   )

6.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输

入实型数值。

( )

7.选择结构不可以使用嵌套形式,但是循环结构可以使用嵌套形式。

( )

8.C语言中字符串的结束符是‘\0’。

(   )

9、逻辑运算符两侧运算对象的数据类型只能是0或1。

(     )

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

 (  )

11.getchar()函数的功能是从键盘上输入一个字符串。

 ( )

12、inti=20;switch(i/10){case2:

printf("A");case1:

printf("B");}输出

结果为A。

()

13.在定义二维数组时,可以将该数组的两个维数全部省略              (      )

14.若有说明intc;则while(c=getchar());是错误的C语句。

(   )

15.10、在C程序中,APH和aph代表不同的变量。

(         )

一、选择题(每题2分,共20分)

1. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回给实参

D.由用户指定传递方式

2.在C语言中,要求运算数必须是整型的运算符是

  A、/   B、++  C、!

=   D、%

3、若有以下定义语句doublea[8],*p=a;  inti=5;对数组元素错误的引用是

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

4.下面标识符中正确的是。

  A、a#bc           B、123ABC       C、sime        D、Y·M·D

5. 以下正确的函数定义形式是。

A.doublefun(intx,inty);B.doublefun(intx;inty)

C.doublefun(intx,inty)D.doublefun(intx,y)

6. 以下对二维数组a进行正确初始化的是(    )

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

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

7.执行语句“x=(a=4,b=a--)”后,x,a,b的值依次是

  A、4,4,3  B、4,3,3  C、4,3,34 D、3,4,3

8.C语言中while和do—while循环的主要区别是

  A、do—while的循环体至少无条件执行一次

  B、While的循环控制条件比do—while的循环控制条件严格

  C、do—while允许从外部转到循环体内

  D、do—while循环体不能是复合语句

9、若已定义:

inta[9],*p=a;不能表示a[1]地址的表达式是

A. p+1          B. a+1      C. a++              D. ++p

10.假设指针p已经指向某个整型变量x,则*p相当于

A &x        B &p        C x        D *x

二、填空题(每个空2分,共20分)

1、C程序设计中语句后的符号/*……*/所起作用是_____________。

2、用{}把一些语句括起来称为语句。

3、若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是,a[2][2]得到的初值是。

4、执行下列语句inta=6; a+=a-=a*a;后,a的值是______。

5、组成数组元素的特点是______________;

 组成结构体元素的特点是_________________。

6、语言中strlen(c)函数的功能是_______________________

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

当前位置:首页 > 医药卫生 > 基础医学

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

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