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

下载本文档

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

文档简介

1、期末总复习(基础知识+程序设计部分) 一. 填空1 .已知 char ch= A ;则下列表达式的值是:a_Ch=(ch= A & chy) +(y!=z)|(x+y)&(y-z)0 _3 ) x+-y+(+z)13_6.设 x,y,z 为 int 型变量,请用 C 语言表达式描述下列命题1 ) x 和 y 中有一个小于 z (_2)x,y 和 z 中 有 两 个 为 负 数(x0&y=0|z0&y=0|y0&x=0)=13 ) y 是奇数 y%2?!=07.下面 for 循环语句最多可执行_4_次For (x=0,y=0?;(y?!=99)&(

2、xx? w:zy? z:x 值是 411. 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为 _ 动态存储13. 在 C 语言中,一个函数直接或间接地调用自身,编构成函数的递归14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成 _ 在调用函数的文件中将该函数说明为 _型。15. 对于所定义的二维数组 a23,元素 a12是数组的第 6_ 个元素。N*j+m+116. 若有定义:char *str= ” I am a student.” ;则字 符串在 存储单 元中

3、 占16_个字节。17. 在执行 int a3=1,2,3,4;语句后,a12的值是 _0_ 。18. 调用 strlen( “ abc0ef0g ”)的返回值是 3。0 为停止符19. 设有定义:char s12=“string ” ;贝 U printf(“dn”,strlen(s);的输出值是_6_20. 执行下列程序段后,*p 等于3int a5=1,3,5,7,9; *p=a;p+;二 判断( true or false )1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序 完全一致。 T2.函数可以嵌套定义 F3.函数必须有返回值,否则不能正确作用 F4.C

4、程序中有调用关系的所有 函数必须放 在同一源程序文件中。 F5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。 F6.函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型 F7.当函数定义放在 main() 函数前面时,可以缺省函数声明。 T8.C 语言中允许函数嵌套调用 T9.局部静态变量是在编译时赋初值的,即只赋一次初值。 T10. 外部变量必须定义在文件的开头部分 F11. 字符 0 是字符串的结束标记,其 ASCII 码为 0.T12. 若有说明 ?:int a34=0 ;则数组 a 中每个元素的初值都为 0.T13. 若有说明 ?:int a24=0,0

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

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

7、当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets ()函数3.下列合法的字符常量为_1.下列变量名中哪些是合法的?2a a# C$ t3 _var2 .语言中用 _ 表示逻辑值“真”A) trueB)整型值0intC)非零整数值D) T(6)A) aB)nC)chinaD)4.设有语句 char c=72;则变量 cA)包含 1 个字符B) 包含 2 个字符 C) 包含 3 个字符D) 不合法5.字符串tNameAddressn的长度为A) 19B) 15C) 18D)不合法6.设 a,b,c 为 int型变量,且 a = 3 ,b = 4 , c = 5,下面表达式值为0 的是

8、A) a & bB)a = bC) a | b+c & b-cD) !(ab) & !c | 1)7.若有以下定义:char a ;int b ;float c ;double d ;的值的类型为A) floatB)intC) charD) double8.设有语句int a = 3;执行了语句 a += a -= a * a;后,变量 a 的值是A) 3B)C) 9D) -129.设有语句int a = 3;执行了语句 prin tf(%d, -a +);后,输出的厶士申曰 c纟口果疋 C,变量a 的值是 DA) 3B) 4C) -3D) -210.将下列数学表达式表

9、示为合法的C 语言表达式(1)、a2b22c(2)(a b)(c d) 2(3)(ln x sin(y)/2(4)(5)sin(30 ) 2ex2y yx(6)12.下列可作为 C 语言赋值语句的是:,A) x = 3, y = 5B) a = b = cC) i -;(x );13.以下程序的输出结果为: _。mai n()D) yintint a = 2, c = 5;printf(a = %d, b = %dn, a, c);A) a = %2, b = %5B) a = 2, b = 5C) a=%d, b=%da=%d, b=%d14.在下面的条件语句中,只有一个在功能上与其它三个语

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

11、语错误16.在 while (x)语句中的 x 与下面条件表达式等价的是:。A) x = 0B) x = 1C) x != 1D) x != 017. 若 int x;且有下面的程序片断,则输出结果为:。for (x=3; x s2)C) if (strcmp(s2, si)B) 0) D)23.若用数组名作为函数调用时的实参,if (strcmp(s1,if (strcmp(si,s2)s2) 则实际上传递给形参的数组的第一个元素值;数组元素的个数。为:_oA)地址传递;B)单向值传递;a = Fun(4+i);C)由实参传给形参,再由形参传回给实参;D)由用户指定传递方式27.(1)阅读程

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

13、)printf(%dn,a);28.设有语句:int a10, *p=a?;,A) P=P+1B)P0=*P+1 C)a0= a0+129.指向变量的指针,其含义是指该变量的30. 若 int (*p ) 5?;, 则其中 p 的含义是A) 5 个指向整形变量的指针;B) 指向 5 个整形变量的函数指针;C) 一个指向具有 5 个整形元素的一维数组的指针;D)具有 5 个指针元素的一维数组指针,每个元素都只能指向整型量31.设有定义:int a=3,b,*p=&a;则下列语句中使 b 不为 3 的语句是_A) b=*&a;B)b=*P; C)b= a; D)b=*a;32 .设

14、 char *s;则以下表达式中,正确的是 _A) s= ” computer ”; B) *s=” computer ”;C) *s=” computer ”; D)*s= s 33 .设 char s10, *p=s;,以下表达式中 不正确的是_A) p=s+5; B)s=s+p; C)s2=p4; D)*p=s0;34.执行下列程序段后,*p 等于_int a5=1,3,5,7,9, *p=a; p+A) 1;B)3; C)5; D)7;程序设计题1.编程计算 1*2*3 + 3*4*5 + 99*100*101 的值。#in elude 第一次输出的结果 A. 8B. 0C. 64D.

15、 4第一次输出的结果 A. 8B. 0C. 64D. 4则在下面语句中,不正确的是D)a=a+1A)值 B)地址 C)名 D) 一个标志int main()int i,j,k,sum=0;for(i=1,j=2,k=3;i100,j101,k102;i+=2,j+=2,k+=2)sum=sum+i*j*k;printf(%dn,sum);2.编程计算 a + aa + aaa +.+ aa.a (n 个 a)的值, n和 a 的值由键盘输入。#include Void main()int n,a,i;int sum,na;printf(Please input n and a:);scanf(%d %d,&n,&a);sum=0;na=a;for(i=1;i=n;i+)sum+=na;na=na*10+a;prin tf(sum=%dn,sum);3. 利用24466.前 100

温馨提示

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

评论

0/150

提交评论