C程序设计基础练习题1及答案.docx

上传人:夺命阿水 文档编号:990225 上传时间:2024-02-22 格式:DOCX 页数:20 大小:32.42KB
返回 下载 相关 举报
C程序设计基础练习题1及答案.docx_第1页
第1页 / 共20页
C程序设计基础练习题1及答案.docx_第2页
第2页 / 共20页
C程序设计基础练习题1及答案.docx_第3页
第3页 / 共20页
C程序设计基础练习题1及答案.docx_第4页
第4页 / 共20页
C程序设计基础练习题1及答案.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《C程序设计基础练习题1及答案.docx》由会员分享,可在线阅读,更多相关《C程序设计基础练习题1及答案.docx(20页珍藏版)》请在课桌文档上搜索。

1、一、单选题1、下面的叙述正确的是()。A.一个C的源程序必须包含1个以上的main函数B.一个C的源程序可以由一个或多个函数组成Cprintf函数是程序执行的起始位置D.在C的源程序中,main函数不是必须的正确答案:B解析:A、一个C的源程序可以由一个或多个函数组成,其中有且只有一个main。函数。C、C程序是从main()函数开始执行。D、一个C的源程序可以由一个或多个函数组成,其中必须有一个main()函数。2、C程序是从O开始执行的。A.放在最前面的函数B.文件开始的注释部分C.主函数D.return语句正确答案:C解析:A、无论main函数放在哪里,程序都从它开始执行B、程序的注释部

2、分是不执行的,仅方便人阅读程序。C、main函数是主函数,它是程序执行的入口。D、return语句结束程序的执行。3、以下正确的Printf语句是()。A.printfThisisaCprogram.;B.printf(ThisisaCprogram.);Cprintf(ThisisaCprogram.)D.printf(ThisisaCprogram.n);正确答案:D解析:A、函数缺少()B、字符串缺少引号C、语句缺少分号4、设有程序“l.cpp,编译后运行该程序,执行的是()文件。A.l.cppB.l.objC.l.cD.l.exe正确答案:D解析:A、CPP扩展名的文件是用C或c+编写

3、的源程序。ViSUaIC+6.0、DeV-C+的源程序默认采用cpp为扩展名B、obj扩展名的文件是执行“编译”命令产生的目标文件C、C扩展名的文件是用C语言编写的源程序5、不合法的C语言标识符是()。A.j2_KEYB.DoubleC.4dD._8_正确答案:C解析:C、标识符的第1个字符不能是数字6、下列定义变量的语句中错误的是()。A.doublezl;B.floatyl;C.Doubleal;D.int1;正确答案:C解析:C、双精度浮点型的类型说明为double,C语言中严格区分大小写,本选项的一个字母用大写D,是错误的7、下面()语句正确地描述了计算公式ax3V=yx-bA.y=a

4、*xx-b;B.y=ax*x(-b);C.y=a*xx-b;D.y=(a*x*)(x-b);正确答案:D8、下面()是合法的赋值语句.A.i=l;B.i+1=5;CJ*3=i+l;D.5=i;正确答案:A解析:B、赋值语句的左边必须是变量,只有变量才有保存值的功能D、二是赋值运算符功能是将=右边的值赋给左边的变量,与数学中的等号不同9、下面程序的输出是()。#includeintmain()(inta=5;printf(a=%dn+a+2);return0;A.3GB.a=8C.a=5D.8正确答案:B解析:B、+a+2是将+a表达式的值加2+a,自增运算符在前,先自增,a=a+l,a=6,然

5、后,取a的值作为表达式的值,所以,(+a)的值为6,6+2=8printf(a=%dn+a+2);双引号中的非开始的普通字符原样输出,因此,结果是a=810、78%10的结果是()oA.7B.10C.78D.8正确答案:D解析:D、是取余数的运算符,x%10的结果为X的个位数11、下面程序的输出是()。#includeintmain()(inta=8;printf(%dn,(a+)*2);return0;A.9B.16C.18D.8正确答案:B解析:B、(a+)*2是将a+表达式的值乘2a+,自增运算符在后,先取a的值作为表达式的值,所以,(a+)的值为8,8*2=1612、下面程序的输出是(

6、)。#includeintmain()(intb=3,a=3;printf(%dz%dnzbza-);return0;)A.3z2B.3C.2,3D.3z3正确答案:D解析:A、要求输出的第2个是表达式a-的值,并不是a的值D、要求输出的是b和表达式a-的值,b的值为3,关键是分析清楚a-表达式的值a-,自减运算符在后,则先取a的值作为a-表达式的值,所以,a-表达式的值为3.因此,本选项正确13、i=l;执行()语句后,变量i的值不会发生变化。A.-i;B.i=2*i;C.i+5;D.i=6;正确答案:C解析:A、i的值减1B、i的值是原来的2倍C、该语句仅取i的值1参与计算,整个表达式的值

7、为6o但是,并没有赋值语句,所以,i的值不变D、i的值被改为614、intX;scanf(%d,&x);下面()可以获得X的个位数。A.x-x/10;B.x100-10;C.x/10;D.x%10;正确答案:D解析:D、是取余运算,结果是X除以10的余数,即个位数15、有关运算符的正确描述是()A.赋值运算符是左结合的B.单目运算符优先级高于双目运算符C.赋值号的运算优先级是最低的D.所有运算符都是左结合的正确答案:B解析:A、赋值运算符是右结合的,从右向左运算C、逗号的运算优先级最低,其次是赋值类运算符16、下面选项中,()的优先级最低。A.+B=C./D.+正确答案:B解析:B、赋值运算符

8、的优先级较低,仅高于逗号运算符。17、能正确表示逻辑关系“a大于等于10或a小于等于0”的C语言表达式是()A.a=10ora=10Ila=10&a=0a=10正确答案:B解析:A、或者运算符写错C、该项写成了并且18、设a为整型变量,不能正确表达数学关系10a10&a15B.10a15C.a=lla=12a=13a=14D.!(a=15)正确答案:B解析:B、这是数学中的表示方式,在C语言程序中,含义已经不同。它将先判断1010;v后,t的值为()提示:赋值运算优先级较低,低于算术、关系、逻辑运算。A.值不确定B.1C.0D.10正确答案:C解析:C.t=x&x10,按优先级等价于t=(x&

9、x10)O先执行x10,结果为0,再执行x&x10,10&0,结果为0再执行t=020、语法不正确的语句是()A.if(x=y)&(x!=0)X+;B.if(x=y)x+;y+;C.if(x!=y)scanf(%dz&x);D.if(xy);正确答案:A解析:A、if后面的条件必须完全在括号内,应写为if(=y)&(x!=0)X+;B、本项语法正确:if的条件可以是任何合法的表达式,如果表达式的值非0,则条件为真。此处为赋值表达式,如果X的值非0,则为真。分支语句为复合语句21、如果整型变量a,b,C的值分别为5,4,3,则语句if(abc)C+;执行后c的值是()A.5B.4C.2D.3正确

10、答案:D解析:D、按左结合性,if(abc),先执行ab,54,结果为1再执行lc,结果为假,为0,所以if条件不满足,c+不执行22、C语言语句中,可以用来决定分支流程的表达式是()A.只能用逻辑表达式或关系表达式B.只能用关系表达式C.任意表达式D只能用逻辑表达式正确答案:C解析:A、C语言中表示条件的可以是算术表达式、关系表达式、逻辑表达式等,根据表达式值为非。或O来判断条件成立与否。B、C语言中表示条件的可以是算术表达式、关系表达式、逻辑表达式等,根据表达式值为非O或O来判断条件成立与否。C、C语言中表示条件的可以是算术表达式、关系表达式、逻辑表达式等,根据表达式值为非O或O来判断条件

11、成立与否。D、C语言中表示条件的可以是算术表达式、关系表达式、逻辑表达式等,根据表达式值为非O或O来判断条件成立与否。23、intx=102,y=12;printf(%2dz%3dn,x,y);执行后输出结果是()提示:当md中m小于数据的实际宽度时,按实际宽度输出。A.102z120B.102z12C.02z12D.10,012正确答案:B解析:B、Primfd%2d,%3drx,y)中的格式字符2d表示输出整型数值,宽度为2,而实际所需宽度超过2时,以实际所需宽度为准,因此输出102.%3d表示输出整型数值,宽度为3,而实际所需宽度不足3时,补足空格,因此输出12之前补了一个空格.24、设

12、i是int型变量J是float型变量,用下面的语句给这两个变量输入值:scanf(i=%d,j=%f,&i,&j);为了把10和2.5分别赋给i和j,则正确的输入为()A.102.5B.=10,y=2.5C.i=10,j=2.5D.102.5正确答案:C解析:C、scanf(i=%d,中的格式字符i二d表示输入格式%d,%f之外的字符要按照原样输入,因此,必须输入i=10,j=2.5才能正确输入i和j的值。25、执行下面语句,inta=l,b=2,c=3;if(ac)b=c;a=c;c=b;a,b,c的值分别为()(用逗号分隔)提示:由if控制的分支语句只有一条A.l,2,3B.3,2z2C.

13、332D.3z3,3正确答案:B解析:B、注意,题目中的:if(ac)b=c;a=c;c=b;if内嵌语句只有一句,也称if子句,b=c;是if的子句,而a=c;c=b;不是,它们是分支语句的后续语句。本题中,ac条件不成立,不执行b=c;而要执行a=c;c=b;故a,b,c的值为3,2,2如果想表示条件成立执行三条赋值语句,应当写作:if(ac)b=c;a=c;c=b;采用复合语句做为if子句二、多选题1、输出结果为25*64=1600的语句是()。A.printf(25*64=%d,25*64);B.printf(25*64=1600);Cprint25*64=1600;D.pntf(,2

14、5*64=%d,25*64);正确答案:A、B解析:C、Printf(”格式控制字符串”,表达式);函数格式不正确D、输出结果为25*64=0,25*64第二个25*64在双引号内,非开始的格式控制符原样输出2、下面是关于C程序注释的叙述,其中正确的是()oA.是行注释,从开始至行尾为注释内容B.从开始的程序都是注释内容C./*/可以注释多行,也可以注释一行D./*/与注释的范围没有区别正确答案:A、C解析:B、只注释至本行尾D、/*/可以注释多行3、下面()语句正确地描述了方程A.y=a*X*X*(x+c);B.y=(a*x*x)+c;C.y=a*x*+c;D.y=(a*)*x*(x+c);

15、正确答案:B、C4、下面()能完成变量a,b的值的交换。A.t=a;a=b;b=t;B.a=a+b;b=a-b;a=a-b;C.a=b;b=a;D.a=b;正确答案:A、B解析:B、a=a+b;b=a-b=(a+b)-b=aa=a-b=(a+b)-(a)=b因此,实现了交换C、执行后,b的值不变5、()可以使整型变量i的值加1。A.i=i+1;B.i+;C.i+=1;D.+i;正确答案:A、B、C、D解析:C、+=是复合赋值运算符,该语句等价于i=i+l;6、在Printf函数中,浮点型数据输出的格式控制符有()0A.%dB.%gC.%eD.%f正确答案:B、C、D解析:B、g为浮点型数据输出

16、格式控制符,表示按指数形式或小数形式二者中占宽度较短的形式输出C、e为浮点型数据输出格式控制符,表示按指数形式输出D、%f为浮点型数据输出格式控制符,表示按小数形式输出7、下面程序中,()可以输出变量a,b,c的最大值。A.if(ab)max=a;if(cmax)max=c;printf(最大值为dn,max);8.1 f(a=b&a=c)printf(最大值为dn”,a);if(b=a&b=c)printf(最大值为%dn”,b);if(c=a&c=b)Printf(最大值为dn,c);C.ma=a;if(bma)max=b;if(cmax)max=c;printf(最大值为dn,max);

17、D.if(abc)Printf(最大值为dn,a);if(bac)Printf(最大值为dn,b);if(cab)printf(最大值为dn”,c);正确答案:B、C解析:A、当abc不能表示ab且bc。三、填空题1、设a=l,b=2,c=3,逻辑表达式a&b&c的值是()。正确答案:1解析:整型值参与关系运算,如果该整型值非0,表示逻辑真,如果该整型值为0,表示逻辑假。根据a,b,c的值,可以得到:a&b&C为I。2、设a=l,b=2,c=3,逻辑表达式a11!b11Ic的值是()。正确答案:1解析:整型值参与关系运算,如果该整型值非0,表示逻辑真,如果该整型值为0,表示逻辑假。根据a,b,

18、c的值,可以得到:a为1,!b为0,!c为0,因此,a11!b11!c为1。3、输入一个考试分数(0至100范围内),如果分数小于60分,则输出“不及格”;大于90分输出“优秀”;大于等于60并且小于等于90,则输出“合格二(有1个空,答案一行写一个,不要添加多余的空格)#includeintmain()(int;Printfr请输入分数(O-Io0):);scanf(%d,&x);if(x90)Printf(优秀n“);Printf(合格n”);注意分数在一个区间内,C语言中该如何描述return0;正确答案:if(x=60&x=60,x=90,并且要用&(与)运算符4、我国的邮政编码由六位

19、阿拉伯数字组成,前第三位代表邮区,厦门市的邮政编码前三位为361。下面的程序功能:如果输入的邮政编码前3位是361,则输出“厦门市的邮件”;如果不是361,则输出“不是厦门市的邮件”。请完善程序(有2个空,答案一行写一个,不要添加多余的空格).#includeintcode;Printf(请输入邮政编码:*);scanf(%*3d,code);用scanf函数截取输入邮政编码的前3位if(361code)printf(厦门市的邮件n);if(361!=code)Printf(不是厦门市的邮件n);return0;)正确答案:%3d解析:1)scanf中使用3d可以截取键盘输入数的前3位,也就是邮编的前3位(邮区码),并保存至Code中2)因if满足条件时,输出的是厦门市的邮件,所以应填二,判断邮区码是否等于361

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号