版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言期末复习卷习题C语言期末复习卷习题C语言期末复习卷习题V:1.0精细整理,仅供参考C语言期末复习卷习题日期:20xx年X月期末总复习(基础知识+程序设计部分)填空1.已知charch=’A’;则下列表达式的值是:aCh=(ch>=’A’&&ch<=’Z’)
(ch+32):ch;
2.若x=1,y=2,z=3,则表达式z+=++x+y++之值是73.若x=2,y=3,则x%=y+3之值为24..若有定义inty=3;floatz=5.2,x=4.8;则表达式y+=(int)x+x+z的值为175.设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值1)(x&&y)==(x||z)12)!(x>y)+(y!=z)||(x+y)&&(y-z)03)x++-y+(++z)136.设x,y,z为int型变量,请用C语言表达式描述下列命题1)x和y中有一个小于z(x<z&&y>z||x>z&&y<z)==12)x,y和z中有两个为负数(x<0&&y<0&&z>=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==13)y是奇数y%2
!=07.下面for循环语句最多可执行4次For(x=0,y=0
;(y
!=99)&&(x<4)
;x++)8.设i,j,k均为int型变量,则执行以下for语句后,k的值是10for(i=0,j=10
;i<=j
;i++,j--)k=i+j
;9.若已知x,y,z,m,n均为int型变量,则执行下面语句后,x的值为7y的值为9z的值为7m=10;n=5;x=(--m==n++)--m:++n;y=m++;z=n;10.若有说明语句:w=1,x=2,y=3,z=4;则表达式w>xw:z>y
z:x值是411.若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void12.凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储13.在C语言中,一个函数直接或间接地调用自身,编构成函数的递归14.如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。15.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第6个元素。N*j+m+116.若有定义:char*str=”Iamastudent.”;则字符串在存储单元中占16个字节。17.在执行inta[][3]={{1,2},{3,4}};语句后,a[1][2]的值是0。18.调用strlen(“abc\0ef\0g”)的返回值是3。\0为停止符19.设有定义:chars[12]=“string”;则printf(“%d\n”,strlen(s));的输出值是620.执行下列程序段后,*p等于3inta[5]={1,3,5,7,9};*p=a;p++;判断(trueorfalse)调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序完全一致。T函数可以嵌套定义F函数必须有返回值,否则不能正确作用FC程序中有调用关系的所有函数必须放在同一源程序文件中。F全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型F当函数定义放在main()函数前面时,可以缺省函数声明。TC语言中允许函数嵌套调用T局部静态变量是在编译时赋初值的,即只赋一次初值。T外部变量必须定义在文件的开头部分F字符’\0’是字符串的结束标记,其ASCII码为0.T若有说明
:inta[3][4]={0};则数组a中每个元素的初值都为0.T若有说明
:inta[2][4]={0,0};则只有a[0][0]和a[0][1]的初值为0,其余元素的初值均不为0.F若有说明
:inta[3][4];则数组a中各元素可在程序的编译阶段达到初值0.F若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。F在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。F当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets()函数。T在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。F&b指的是变量b的地址处所存放的值;F指针变量可用于保存同类型变量的地址值;F存放地址的变量同其他类型的变量一样,可以存放任何类型的数据;F指向同一数组的两指针p1,p2相减的结果与所指元素的下标相减的结果是相同的。F如果定义函数时参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量,数组名或简单变量的地址Tchar*name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符数据的指针型数据。F语句y=*p++;和y=(*p)++;是等价的。F函数指针指向的是函数的入口地址。Tint*p;定义了一个指针变量,其值是整型的。F用指针作为函数参数时,采用的是“地址传送”方式.T三、选择题1.下列变量名中哪些是合法的
2aa#C$t3_varint2.语言中用________表示逻辑值“真”。A)true B)整型值0 C)非零整数值 D)T3.下列合法的字符常量为________。A)"a"B)'\n'C)'china'D)a4.设有语句charc='\72';则变量c________。A)包含1个字符B)包含2个字符C)包含3个字符D)不合法5.字符串"\t\"Name\\Address\n"的长度为________。A)19B)15C)18D)不合法6.设a,b,c为int型变量,且a=3,b=4,c=5,下面表达式值为0的是________。A)'a'&&'b'B)a<=bC)a||b+c&&b-c D)!((a<b)&&!c||1)7.若有以下定义: chara; intb; floatc; doubled;则表达式a*b+d–c的值的类型为_____________A)float B)int C)char D)double8.设有语句inta=3;执行了语句a+=a-=a*a;后,变量a的值是________。A)3 B)0 C)9 D)-129.设有语句inta=3;执行了语句printf("%d",-a++);后,输出的结果是__C______,变量a的值是__D_____。A)3 B)4 C)-3 D)-210.将下列数学表达式表示为合法的C语言表达式。(1)(2)(3)(4)(5)(6)12.下列可作为C语言赋值语句的是:_____________。A)x=3,y=5 B)a=b=c C)i--; D)y=int(x);13.以下程序的输出结果为:_____________。main(){ inta=2,c=5; printf("a=%%d,b=%%d\n",a,c);}A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d14.在下面的条件语句中,只有一个在功能上与其它三个语句不等价(其中s1和s2表示它是C语句),这个不等价的语句是:。A)if(a)s1;elses2;B)if(!a)s2;elses1;C)if(a!=0)s1;elses2;D)if(a==0)s1;elses2;15.设有声明语句:inta=1,b=0;则执行以下语句后输出为:。switch(a){case1:switch(b){case0:printf("**0**");break;case1:printf("**1**");break;}case2:printf("**2**");break;}**0**B)**0****2**C)**0****1****2**D)有语法错误16.在while(x)语句中的x与下面条件表达式等价的是:。A)x==0B)x==1C)x!=1D)x!=017.若intx;且有下面的程序片断,则输出结果为:。for(x=3;x<6;x++){printf((x%2)==0"**%d":"##%d\n",x);
}A)**3B)##3C)##3D)**3##4##4**4**4##5**5**5##518.以下能对外部的一维数组a(含有10个元素)进行正确初始化的语句是:。A)inta[10]=(0,0,0,0,0);B)inta[10]={};C)inta[]={0};D)inta[10]={10*1};19.以下能对外部的二维数组a进行正确初始化的语句是:。A)inta[2][]={{1,0,1},{5,2,3}};B)inta[][3]={{1,2,1},{5,2,3}};C)2inta[2][4]={{1,2,1},{5,2},{6}};D)inta[][3]={{1,0,2},{},{2,3}};20.若二维数组a有m列,则在a[i][j]之前的元素个数为:。A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+121.已知:staticinta[3][4];则数组a中各元素。A)可在程序运行阶段得到初值0B)可在程序编译阶段得到初值0C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值022.判断字符串s1是否大于字符串s2,应当使用:。A)if(s1>s2)B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)>0)D)if(strcmp(s1,s2)>0)23..若用数组名作为函数调用时的实参,则实际上传递给形参的是:。A)数组的首地址;B)数组的第一个元素值;C)数组中全部元素的值;D)数组元素的个数。24.在函数调用时,以下说法中正确的是:。A)在C语言中,实参与其对应的形参各占独立的存储单元;B)在C语言中,实参与其对应的形参共占同一个存储单元;C)在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D)在C语言中,形参是虚拟的,不占存储单元。25.C语言中形参的缺省存储类别是:。A)自动(auto)B)静态(static)C)寄存器(register)D)外部(extern)26.C语言规定:简单变量做实参时,它和对应形参之间数据的传递方式为:。A)地址传递;B)单向值传递;C)由实参传给形参,再由形参传回给实参;D)由用户指定传递方式。27.(1)阅读程序,选择程序的运行结果。#include<stdio.h>intTry(intn){ if(n>0) return(n*Try(n-2)); else return1;}main(){ intx; x=Try(5); printf("%d\n",x);}A.15 B.120 C.1 D.前面三个答案都是错的(2)下面的函数f两次进行调用,请选择程序的运行结果。#include<stdio.h>intFun(intm){ staticintn=0; m/=2; m=m*2; if(m) { n*=m; return(Fun(m-2)); } else returnn;}main(){ inta,i,j; for(i=0;i<2;i++) { a=Fun(4+i); printf("%d\n",a); }}①第一次输出的结果A.8 B.0 C.64 D.4②第一次输出的结果A.8 B.0 C.64 D.428.设有语句:inta[10],*p=a
;,则在下面语句中,不正确的是A)P=P+1B)P[0]=*P+1C)a[0]=a[0]+1D)a=a+129.指向变量的指针,其含义是指该变量的A)值B)地址C)名D)一个标志30.若int(*p)[5]
;,则其中p的含义是A)5个指向整形变量的指针;B)指向5个整形变量的函数指针;C)一个指向具有5个整形元素的一维数组的指针;D)具有5个指针元素的一维数组指针,每个元素都只能指向整型量;31.设有定义:inta=3,b,*p=&a;则下列语句中使b不为3的语句是A)b=*&a;B)b=*P;C)b=a;D)b=*a;32.设char**s;则以下表达式中,正确的是A)s=”computer”;B)*s=”computer”;C)**s=”computer”;D)*s=’s’33.设chars[10],*p=s;,以下表达式中不正确的是A)p=s+5;B)s=s+p;C)s[2]=p[4];D)*p=s[0];34.执行下列程序段后,*p等于inta[5]={1,3,5,7,9},*p=a;p++A)1;B)3;C)5;D)7;程序设计题编程计算1*2*3+3*4*5+99*1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论