C语言期末复习卷习题_第1页
C语言期末复习卷习题_第2页
C语言期末复习卷习题_第3页
C语言期末复习卷习题_第4页
C语言期末复习卷习题_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言期末复习卷习题LOGOYOUR LOGO电话:010 - 0000 0000网址:www. xxxx. com 由Bf牛:xxxxxxxxx. com 地址:某某广告设计有限公司期末总复习(基础知识+程序设计部分)一.填空1 .已知char ch=,A,;则下列表达式的值是:a& chy) +(y!=z)ll(x+y)&(y-z) 03) x+-y+(+z) 1 36 .设x,y,z为int型变量,请用C语言表达式描述下列命题1) x 和 y 中有一个小于 z (xvz&yzllxz&yvz )=12) x,y和z中有两个为负数(xvO&yvO&z=OllzvO&y=OllyvO&xO&

2、z=O)=l3) y是奇数y%2!=07 .下面for循环语句最多可执行4 次For (x=0,y=0;(y!=99)&(x4);x+)8 .设i,j,k均为int型变量,则执行以下for语句后,k的值呈10for (i=0J=10;ix w:zyz:x值是411 .若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void12 .凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储13 .在C语言中,一个函数直接或间接地调用自身,编构成函数的 递归14 .如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将 该文件的存储类型定义成型一在调用函数的文件中将

3、该函数说明为型。15 .对于所定义的二维数组a23,元素是数组的第6个元素。N*j+m+l16 .若有定义:char *str= 1 am a student.”;则字符串在存储单元中占16 个字节c17 .在执行血2口3=1,2,3,4;语句后,研12的值是o18 .调用strlen(abc0eR0g)的返回值皋 30 0为停止符19 .设有定义:chars12=string;则 printf(%dn”,strlen(s);的输出值是 620 .执行下列程序段后,2等干3int a5= 1,3,5,7,9; *p=a;p+;二.判断(true or false)1 .调用函数时,实参的类型、

4、个数和顺序与函数定义时形参的类型、个数和顺序完全一 致。T2 .函数可以嵌套定义F3 .函数必须有返回值.否则不能正确作用F4 . C程序中有调用关系的所有函数必须放在同一源程序文件中。F5 .全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F6 .函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型F7 .当函数定义放在main。函数前面时,可以缺省函数声明。T8 . C语言中允许函数嵌套调用T9 .局部静态变量是在编译时赋初值的,即只赋一次初值。T10 .外部变量必须定义在文件的开头部分F11 .字符,0,是字符串的结束标记,其ASCII码为12 .若有说明:in

5、ta4=0;则数组a中每个元素的初值都为13 .若有说明:inta4=0, 0;则只有a0和的初值为0,其余元素的初值均 不为0. F14 .若有说明:inta34;则数组a中各元素可在程序的编译阶段达到初值15 .若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。 F16 .在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。F17 .当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets ()函数。T18 .在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。F19 . &b指的是变量b的地址处所存放的值;F20 .指针变量可用于保存同类型变

6、量的地址值;F21 .存放地址的变量同其他类型的变量一样,可以存放任何类型的数据;F22 .指向同一数组的两指针pl, P2相减的结果与所指元素的下标相减的结果是相同的。F23 .如果定义函数时参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量,数组名或简单变量的地址T24 . char *name 5 定义了一个一维指针数组,它有5个元素,每个元素都是指 向字符数据的指针型数据。F25 . 语句 y=*p+;和 y=(*p)+;是等价的:,f26 .函数指针指向的是函数的入口地址。T27 . int *p;定义了一个指针变量,其值是整型的。F28 .用指针作为函数参数时,采用的是

7、“地址传送”方式.T三、选择题1 ,下列变量名中哪些是合法的2a a# C$ t3 _var2 .语言中用 表示逻辑值“真”。A) trueB)整型值0D)T3 .下列合法的字符常量为 oA) nalf B) n C) 1 china14 .设有语句char c=,72t则变量c 0intC)非零整数值D) aA)包含1个字符 B)包含2个字符C)包含3个字符 D)不合法5.字符串“t,fNameAddressn”的长度为 oA) 19 B) 15 C) 18D)不合法6 .设为int型变量,且a = 3 ,b = 4c = 5,下面表达式值为。的是A) & b1 B) a = bC) a |

8、 | b+c & b-c D) ! ( (ab) & !c | | 1)7 .若有以下定义:char a ;int b ;float c ;double d ;则表达式a * b + d - c的值的类型为A)floatB) intC) charD)double8 .设有语句int a = 3;执行了语句a += a -= a * a;后,变量a的值是A) 3 B) 0 C) 9D) -129 .设有语句int a = 3;执行了语句printf (“*d”,-a +);后,输出的结果是C,变量a的值是一DoA) 3 B) 4 C) -3D) -210 .将下列数学表达式表示为合法的C语言表达

9、式。(1) (2)(a + h)(c + d) + 2(3) (lnx + sin(y)/22c(4)2(6)七一l + i2y + yX12 .下列可作为C语言赋值语句的是:A)x = 3, y = 5 B) a = b = cC) i -;D) y = int(X );13 .以下程序的输出结果为:omain()(int a = 2, c = 5;printf(na = %d, b = %dn”,a, c);)A)a = %2, b = %5 B)a = 2, b = 5C)a=%d, b=%d D)a=%d, b=%d14 .在下面的条件语句中,只有一个在功能上与其它三个语句不等价(其中

10、si和s2表示它是C语句),这个不等价的语句是:0A)if (a) si; else s2;B)if (!a) s2; else si;C) if (a != 0) si; else s2;D) if (a = 0) si; else s2;15.设有声明语句:int a=l,b=0;则执行以下语句后输出为:oswitch (a)case 1: switch (b)case 0: printf(H*0*n)/break;case 1: printf(n*l*H);break; case 2: printf(n*2*H);break; )A) *0* B) *0*2* c)*0*l*2* D)有

11、语法错误16.在while (x)语句中的x与下面条件表达式等价的是:oA) x = 0 B) x = 1 C) x ! = 1 D) x ! = 017.若int x;且有下面的程序片断,则输出结果为:。for (x=3; x s2)B) if (strcmp(si, s2)C) if (strcmp (s2z si) 0) D) if (strcmp (si, s2) 0)23. 若用数组名作为函数调用时的实参,则实际上传递给形参的是:一0A)数组的首地址;B)数组的第一个元素值;C)数组中全部元素的值;D)数组元素的个数。24. 在函数调用时,以下说法中正确的是:。A)在C语言中,实参与

12、其对应的形参各占独立的存储单元;B)在C语言中,实参与其对应的形参共占同一个存储单元;O在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D)在C语言中,形参是虚拟的,不占存储单元。25. C语言中形参的缺省存储类别是:oA)自动(auto) B)静态(static) C)寄存器(register) D)外部(extern)26. C语言规定:简单变量做实参时,它和对应形参之间数据的传递方式为:0A)地址传递;B)单向值传递;C)由实参传给形参,再由形参传回给实参;D)由用户指定传递方式。27.(1)阅读程序,选择程序的运行结果。#include int Try(int n)

13、(if (n 0) return(n*Try(n-2);else return 1;) main )int x;x = Try(5); printf (,%dn, x); )A. 15B. 120C. 1 D.前面三个答案都是错的(2)下面的函数f两次进行调用,请选择程序的运行结果。#include int Fun(int m) (static int n = 0;m /= 2;m =m * 2; if (m) (n *= m;return(Fun (m-2); ) else return n; ) main ) ( int for (i=0; i2; i+) (a = Fun(4+i); p

14、rintf(n%dnHra); )第一次输出的结果A.8B.0C.64D.4 第一次输出的结果A.8B.0C.64D.428.设有语句:int a10 , *p=a;,则在下面语句中,不正确的是A) P=P+1B)P0=*P+l C)a0= a0+l D)a=a+12 9 .指向变量的指针,其含义是指该变量的A)值 B)地址 C)名 D)一个标志30.若int (*p) 5;,则其中p的含义是A) 5个指向整形变量的指针;B)指向5个整形变量的函数指针;C)一个指向具有5个整形元素的一维数组的指针;D)具有5个指针元素的一维数组指针,每个元素都只能指向整型量;31 .设有定义:int a=3,

15、b, *p=&a;则下列语句中使b不为3的语句是A) b=*&a; B)b=*P; C)b= a; D)b=*a;32 .设char则以下表达式中,正确的是A) s=,computerz,;B) *s=z,computer,z;C) *s=z,computerz,;D) *s=z s33 .设char s 10 , *p=s;,以下表达式中不正确的是A) p=s + 5;B)s = s+p; C)s 2=p4; D)*p=s0;34 .执行下列程序段后,*p等于int a=3,5,7,9, *p=a; p+A) 1; B) 3; C) 5; D) 7;程序设计题1 .编程计算 1*2*3 +

16、3*4*5 + 99*100*101 的值。#include oint main()(int i j,k,sum=0;for(i= 1 ,j=2,k=3;iv 100 j 101 ,k 102;i+=2J+=2,k+=2)sum=sum+i*j*k;printf(n%dn,sum);2 .编程计算a + aa + aaa +.+ aa.a (n个a)的值,n和a的值由键盘输入。#include Void main()(int n,a,i;int sum,na;printf(HPlease input n and a:);scanf(%d %d,&n,&a);sum=0;na=a;for(i=l;i=n;i+)(sum+=na;na=na* 10+a;)printf

温馨提示

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

评论

0/150

提交评论