ImageVerifierCode 换一换
格式:DOCX , 页数:78 ,大小:91.16KB ,
资源ID:3280678      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3280678.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计复习习题.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计复习习题.docx

1、C语言程序设计复习习题一、判断题使用循环的嵌套结构时,外层循环应完全包含内层循环,不能发生交叉. ( 对 )一个函数由两部分组成:函数首部和函数体. ( 对 )语句 printf(%f%,1.0/3);输出为 0.333333. ( 错 )在for循环中,循环变量只能是整型或字符型的. ( 错 )C程序中以#include和#define开始的程序行均不是C语句. ( 对 )while循环结构的特点是先判断后执行,如果表达式的值一开始就为假,循环体一次也不执行.( 对)当数组被说明为静态(static)类别时,无论是否显式给出初值,数组元素都将有确定的值. ( 对 )宏不存在类型问题,宏名无类

2、型,它的参数也无类型. ( 对 )进行宏定义时,宏名必须使用大写字母表示. ( 错 )若a=3,b=2,c=1则关系表达式(ab)=c 的值为真. ( 对 )移动指针时,不允许加上或减去一个非整数. ( )已知: int t=0; while (t=1). 该循环一次也不执行. ( 错 )在for循环中,循环变量只能增加,不能减少. ( 错 )a=(b=4)+(c=6) 是一个合法的赋值表达式. ( 对 )for( ; ; )语句 相当于 while(1)语句. ( 对 )main函数由用户定义,并可以被其他函数调用. ( 错 )用typedef可以声明各种类型名,也有可以用来定义变量. (

3、) 在C语言中允许函数递归调用. ( 对 )在循环体内使用break语句或continue语句的作用相同. ( 错 )指针不允许进行乘、除运算. ( )break语句用于结束整个循环,不再继续判断执行循环的条件是否成立. ( 对 )C语言规定,实参变量对形参变量的数据传递是单向的值传递. ( 对 )参加位运算的数据可以是任何类型的数据. ( 错 )程序段:if(strlstr2)printf(%s,strl); else printf(%s,str2);表示输出较大字符串. ( 错 )可以将一个结构体变量作为一个整体进行输入和输出. ( )利用scanf函数可以输入带空格的字符串. ( 错 )

4、带参数的宏中的形参要定义其类型. ( 错 )共同体变量所占的内存长度等于最长的成员的长度. ( )设有定义int *p4; 其中的p是指向一维数组的指针变量. ( )数据输出时,凡是打印出来的数字都是准确的. ( 错 )在switch语句中,无论如何default后面的语句都要执行一次. ( 错 )在一个文件中定义的全局变量的作用域为本程序的全部范围. ( )do-while循环中,根据情况可以省略while. ( 错 )printf(%-6d,a);中的-代表输出一个负数. ( 错 )如果对数组不赋初值,则数组元素取随机值. ( 错 )若有int i =3;,则printf(%d,-i+);

5、输出的值为 -4. ( 错 )数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址. ( )数组名的规定与变量名不相同. ( )数组元素的值可以使用赋值语句或输入函数进行赋值,但占用运行时间. ( 对 )在循环语句中,for循环是当型循环. ( 对 )在循环语句中,while语句与do-while语句完全等价. ( 错 )#include命令可以包含一个有函数定义的C语言源程序文件. ( 对 )C语言提供位运算功能,因此C语言属于低级语言. ( 错 )C语言中所有运算符的结合方向是自左向右的. ( 对)在对一维数组初始化时,数组的长度可以省略,系统会自动按初值的个数分配存储空间.(对

6、)continue作用为终止循环而执行循环后面的语句. ( 对 )C语言中可以用字符串常量来初始化字符数组. ( 错)while循环最少执行1次. ( 错)当形参是变量时,实参与它所对应的形参占用不同的存储单元. ( 对 )共用体变量所占的内存长度等于最长的成员的长度. ( )在C语言中,形式参数的作用域只是局限于所在函数. ( 对 )在Turbo C中,此定义和语句是合法的:enum aa a=5,b,cbb;bb=(enum aa)5;( ) 在一个文件中定义的全局变量的作用域为本程序的全部范围. ( )C语言的函数在形式上必须要有参数. ( )for语句中的表达式1,表达式2,表达式3均

7、可以省略,并且分号也可以省略. ( 错 )函数调用语句func(expl,exp2),(exp3,exp4,exp5);含有实参的个数为 5. ( 错 )函数值类型与程序中返回值类型出现矛盾时,以函数值类型为准. ( 对 )如果要保留某位只需和0进行按位或运算. ( )如果将一个位清零,就让这位和0进行按位或(|)运算,即可达到清零目的. ( )在嵌套的if语句中,else应与第一个if语句配对. ( 错 )整型常量-012表示一个负的八进制数12,也就是十进制数-10. (错)break语句不能用于循环语句和switch语句之外的任何其他语句中. (对 )C语言对文件的处理方法有缓冲文件系统

8、和非缓冲文件系统. ( 对 )C语言中文件的存取方式可以是顺序存取,也可以是随机存取. (对 )定义二维数组时,若对全部元素都赋初值,则第一维的长度不能省,但第二维的长度可以不指定. ( )宏替换只不过是字符替代而已. ( 错 )在C语言中,数组元素的下标是整型常量或整型变量,并且下标默认从1开始. ( 错 )调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指变量的值. ( )调用函数时,实参与形参的类型必须一致. ( 错 )定义二维数组时,若对全部元素都赋初值,则第一维的长度不能省,但第二维的长度可以不指定. ( )分号是语句的必要组成部分,所以函数首部的后面和编译预处理的后面都得

9、加分号. ( 错 )宏替换占运行时间. ( 错 )嵌套的循环提倡使用缩进式书写格式,以增加程序的可读性. ( 对 )在switch语句中,case 常量表达式:只起语句标号作用. ( 对 )在编译时,对数据类型和变量都分配空间. ( 对 )C语言中同一数组中的每一个数组元素必须属于同一数据类型. ( 对 )多分支选择结构只能通过switch语句来实现. ( 错 )do-while语句中的语句可以一次也不执行. ( 错 )宏定义不是C语句. ( 对 )下面的输入语句是否合理:scanf(%7.2f,&a) . ( 错 ) 一个函数返回值的类型是由return语句中的表达式类型决定. ( )若有以

10、下的数组定义:char x=12, y=1,2;则x数组和y数组长度相同.( ) 一个C程序可以由若干个源程序文件(分别进行编译的文件模块)组成. ( 对 )在C语言的函数中,最好使用全局变量. ( 错 )在初始化数组时,若数组长度小于初值的个数,则会产生编译错误. ( 对 ) 在嵌套的if语句中,else应与它上面的最近的且未曾配对的if语句配对. ( 对 )字符串gtibbk101的长度是13. ( 错 )在C语言中以源文件而不是以函数为单位进行编译. ( 错 )在if语句中,条件判断表达式可以不用括号括起来. ( 错)在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量.

11、( )二、选择题有以下函数int fun(char *s) char *t=s; while(*t) +t; return(t-s);该函数的功能是( A ).A.比较两个字符串的大小 B.计算s所指字符串占用内存字节的个数C.计算s所指字符串的长度 D.将s所指字符串复制到字符串t中以下程序的输出结果是(B ).int f(void) static int i=0; int s=1; s+=i; i+; return s; int main(void) int i,a=0; for(i=0;i5;i+)a+=f(); printf(%dn,a); return 0;A.20 B.24 C.2

12、5 D.15有下面程序段#include string.hint main(void) char a320=china,isa,bigcountry!; char k100=0,*p=k; int i; for(i=0;i3;i+) p=strcat(p,ai); i=strlen(p); printf(%dn,i); return 0;则程序段的输出结果是( ).A.18 B.19 C.20 D.21有以下程序#include string.hint main(void) char p=a, b, c,q10= a, b, c; printf(%d%dn,strlen(p),strlen(q

13、); return 0;以下叙述中正确的是( ).A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B.由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C.由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D.由于p和q数组中都没有字符串结束符,故长度都不能确定有以下程序#include string.hint main(void) char p20=a, b, c, d, q=abc, r=abcde; strcpy(p+strlen(q), r); strcat(p, q); printf(%d %dn, sizeof(p),

14、strlen(p); return 0;程序运行后的输出结果是( ).A.209 B.99 C.2011 D.1111下列二维数组初始化语句中,正确且与语句float a3=0,3,8,0,9;等价的是( ).A.float a2=0,3,8,0,9; B.float a3=0,3,8,0,9,0;C.float a3=0,3,8,0,9,0; D.float a2=0,3,8,0,9,0;下面程序的输出结果是( ).int main(void) int a=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(%dn,*p+9); return 0; A.0 B.1 C.1

15、0 D.9下面程序的运行结果是( ).int main(void) static char a=Language,b=programe; char *p1,*p2;int k; p1=a; p2=b; for(k=0; kb?a+b:a-b); return 0;A.9 B.1 C.10 D.无法确定下面的表达式while(!x)中的表达式 !x 与下面条件( )等价.A.x=0 B.x=1 C.x=0|x=1 D.x!=0有如下程序:int main(void) int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+;

16、 printf(a=%d,b=%dn,a,b); return 0;该程序的输出结果是( ).A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2执行下列程序时输入:123456789 输出结果是( ).int main(void) char s100; int c, i; scanf(%c,&c); scanf(%d,&i); scanf(%s,s); printf(%c,%d,%sn,c,i,s); return 0;A.123,456,789 B.1,456,789 C.1,23,456,789 D.1,23,456以下程序的输出结果是( ).int main(

17、void) int a,i;a=0; for(i=1;i5;i+) switch(i) case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; printf(%dn,a); return 0;A.31 B.13 C.10 D.20有以下程序void fun(char *p) +p; printf(%sn,*p);int main(void) char *a=Morning,Afternoon,Evening,Night; fun(a);return 0;程序的运行结果是( ).A.Afternoon B.fternoon C.Mornin

18、g D.orning有以下程序void fun(int *a,int n) int t,i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj) t=ai;ai=aj;aj=t; int main(void) int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c+4,6); for(i=0;iy) z=x; x=y; y=z;A.x=1, y=2, z=3 B.x=2, y=3, z=3 C.x=2, y=3, z=1 D.x=2, y=3, z=2以下叙述中正确的是( C).A.用C程序实现的算法必须要有输入和输出操作B.用C程序实现

19、的算法可以没有输出但必须要有输入C.用C程序实现的算法可以没有输入但必须要有输出D.用C程序实现的算法可以既没有输入也没有输出有定义:int b; char c10;,则正确的输入语句是( A ).A.scanf(%d%s,&b,&c); B.scanf(%d%s,&b,c);C.scanf(%d%s,b,c); D.scanf(%d%s,b,&c);若用数组名作为函数的实参,传递给形参的是( D ).A.数组的首地址 B.数组第一个元素的值C.数组中全部元素的值 D.数组元素的个数已知int a;float b;所用的scanf调用语句格式为: scanf(a/%d,b=%f,&a,&b);

20、为了将数据3和25.08分别赋给x和y,正确的输入形式是( C).A.3,25.08 B.a=3,b=25.08 C.a/3,b=25.08 D.a/3b=25.08C语言规定,函数返回值的类型是由( D).A.return语句中的表达式类型所决定 B.调用该函数时的主调函数类型所决定C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型所决定不合法的main()函数命令行参数表示形式是( ).A.main(int a,char *c) B.main(int arc,char *arv)C.main(int argc,char *argv) D.main(int argv,char

21、*argc)函数的值通过return语句返回,下面关于return语句的形式描述错误的是(C ).A.return 表达式; B.return(表达式);C.一个return语句可以返回多个函数值 D.一个return语句只能返回一个函数值若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( D ).A.函数调用可以作为独立的语句存在 B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中 D.函数调用可以作为一个函数的形参阅读下面的程序,该程序( C ).int main(void) int a=5,b=0,c=0; if(a=b+c) printf(*n); else

22、printf($n); return 0;A.有语法错不能通过编译 B.可以通过编译但不能通过连接C.输出* D.输出$下列说法中错误的是( A ).A.只能在循环体内使用break语句B.在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C.在while和dowhile循环中,continue语句并没有使整个循环终止D.continue的作用是结束本次循环,即跳过本次循环体中尚未执行的语句,接着再一次进行循环判断若有定义int a9,*p=a;则p+5表示( ).A.数组元素a5的值 B.数组元素a5的地址C.数组元素a6的地址 D.数组元素a0的值加上5以下只有在使

23、用时才为该类型变量分配内存的存储类说明是( ).A.auto和 static B.auto和 register C.register和 static D.extern和 register在C语言中,定义函数时函数的类型可以缺省,此时函数的隐含类型是( A ).A.void B.int C.float D.double以下错误的描述是:函数调用可以( D ).A.出现在执行语句中 B.出现在一个表达式中C.做为一个函数的实参 D.做为一个函数的形参以下正确的函数定义形式是( A ).A.double fun(int x,int y) B.double fun(int x; int y)C.dou

24、ble fun(int x;y); D.double fun(int x,y);若要对a进行+运算,则a应具有下面( )说明.A.int a32; B.char *a=12,ab;C.char (*a)3; D.int b10,b=*a;若有定义和语句int *point,a=4;point=&a;下面均代表地址的一组选项是( ).A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point若有以下定义和语句:int a10=1,2,3,4,5,6,7,8,9,10 ; *p=a ;则不能表示a数组定义的元素的表达式是

25、( ).A.*p B.a10 C.*a D.ap-a若执行下面的程序时,从键盘上输入5和2,则输出结果是( D ).int main(void) int a,b,k; scanf(%d,%d ,&a,&b); k=a; if(ab) k=a%b; else k=b%a; printf(%dn ,k); return 0; A.5 B.3 C.2 D.1若执行下述程序时,若从键盘输入6和8时,结果为( B ).int main(void) int a,b,s; scanf(%d%d,&a,&b); s=a; if(ab) s=b; s*=s; printf(%d,s); return 0;A.36 B.64 C.48 D.以上都不对以下叙述正确的是( B ).A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( ).A.c=*p1+*p2; B.p2=c; C.p1=p2; D.c=

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2