C程序设计基础练习题1及答案_第1页
C程序设计基础练习题1及答案_第2页
C程序设计基础练习题1及答案_第3页
C程序设计基础练习题1及答案_第4页
C程序设计基础练习题1及答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

一、单选题

1、下面的叙述正确的是()。

A.一个C的源程序必须包含1个以上的main函数

B.一个C的源程序可以由一个或多个函数组成

C.printf函数是程序执行的起始位置

D.在C的源程序中,main函数不是必须的

正确答案:B

解析:A、一个C的源程序可以由一个或多个函数组成,其中有且

只有一个main。函数。C^C程序是从main。函数开始执行。D^

一个C的源程序可以由一个或多个函数组成,其中必须有一个main()

函数。

2、C程序是从()开始执行的。

A.放在最前面的函数

B.文件开始的注释部分

C.主函数

D.return语句

正确答案:C

解析:A、无论main函数放在哪里,程序都从它开始执行B、程

序的注释部分是不执行的,仅方便人阅读程序。C、main函数是主

函数,它是程序执行的入口。D、return语句结束程序的执行。

3、以下正确的printf语句是()。

A.printf"ThisisaCprogram.";

B.printf("ThisisaCprogram.);

C.printf("ThisisaCprogram.")

D.printf("ThisisaCprogram'll”);

正确答案:D

解析:A、函数缺少()B、字符串缺少引号C、语句缺少分号

4、设有程序“l.cpp〃,编译后运行该程序,执行的是()文件。

A.l.cpp

B.l.obj

C.l.c

D.l.exe

正确答案:D

解析:A、cpp扩展名的文件是用C或C++编写的源程序。VisualC++6.0、

Dev-C++的源程序默认采用cpp为扩展名B、obj扩展名的文件是执

行“编译”命令产生的目标文件C、c扩展名的文件是用C语言

编写的源程序

5、不合法的C语言标识符是()o

A.j2_KEY

B.Double

C.4d

D._8_

正确答案:C

解析:C、标识符的第1个字符不能是数字

6、下列定义变量的语句中错误的是()o

A.doublezl;

B.floatyl;

C.Doubleal;

D.intxl;

正确答案:C

解析:C、双精度浮点型的类型说明为double,C语言中严格区分

大小写,本选项的一个字母用大写D,是错误的

7、下面()语句正确地描述了计算公式

A.y=a*x*x*x/x-b;

B.y=ax*x*x/(x-b);

C.y=ax*x*x/x-b;

D.y=(a*x*x*x)/(x-b);

正确答案:D

8、下面()是合法的赋值语句.

A.i=l;

B.i+1=5;

C.i*3=i+l;

D.5=i;

正确答案:A

因此,结果是a=8

10、78%10的结果是()o

A.7

B.10

C.78

D.8

正确答案:D

解析:D、%是取余数的运算符,x%10的结果为x的个位数

11、下面程序的输出是()。

#include<stdio.h>

intmain()

(

inta=8;

printf("%d\n"z(a++)*2);

return0;

)

A.9

B.16

C.18

D.8

正确答案:B

解析:B、(a++)*2是将a++表达式的值乘2

a++,自增运算符在后,先取a的值作为表达式的值,所以,(a++)的

值为8,8*2=16

12^下面程序的输出是()。

#include<stdio.h>

intmain()

intb=3,a=3;

printf(”%d,%d\ntb,aT;

return0;

A.3,2

B.3

C.2,3

D.3,3

正确答案:D

解析:A、要求输出的第2个是表达式“的值,并不是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参与计算,整个表达式的值为6o但是,并没有赋值语句,所

以,i的值不变D、i的值被改为6

14、intx;

scanf("%d”,&x);

下面()可以获得x的个位数。

A.x-x/10;

B.x/lOO-x/lO;

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、赋值运算符的优先级较低,仅高于逗号运算符。

17、能正确表示逻辑关系“a大于等于10或a小于等于0”的C语言

表达式是()

A.a>=10ora<=0

B.a>=10Ia<=0

C.a>=10&&a<=0

D.a>=01a<=10

正确答案:B

解析:A、或者运算符写错C、该项写成了并且

18、设a为整型变量,不能正确表达数学关系10<a<15的C语言表

达式是()

A.a>10&&a<15

B.10<a<15

C.a==ll||a==12||a==13||a==14

D.!(a<=10)&&!(a>=15)

正确答案:B

解析:B、这是数学中的表示方式,在C语言程序中,含义已经不

同。它将先判断10<a,再将结果与15比

19、设x,t均为int型变量,则执行语句"x=10;t=x&&x>10

后,t的值为()

提示:赋值运算优先级较低,低于算术、关系、逻辑运算。

A.值不确定

B.1

C.0

D.10

正确答案:C

解析:C>t=x&&x>10,按优先级等价于t=(x&&x>10)o

先执行x>10,结果为0,

再执行10&&0,结果为0

再执行t=0

20、语法不正确的语句是()

A.if(x==y)&&(x!=0)x++;

B.if(x=y){x++;y++;}

C.if(x!=y)scanf("%£)",&x);

D.if(x>y);

正确答案:A

解析:A、if后面的条件必须完全在括号内,应写为if((x==y)&&(x!=O))

x++;B、本项语法正确:

if的条件可以是任何合法的表达式,如果表达式的值非0,则条件为

真。

此处为赋值表达式,如果x的值非0,则为真。

分支语句为复合语句

21、如果整型变量a,b,c的值分别为5,4,3,则语句if(a>b>c)C++;

执行后c的值是()

A.5

B.4

C.2

D.3

正确答案:D

解析:D、按左结合性,if(a>b>c),先执行a>b,5>4,结果为1

再执行1“,结果为假,为0,

所以if条件不满足,C++不执行

22、C语言语句中,可以用来决定分支流程的表达式是()

A.只能用逻辑表达式或关系表达式

B.只能用关系表达式

C.任意表达式

D.只能用逻辑表达式

正确答案:C

解析:A、C语言中表示条件的可以是算术表达式、关系表达式、

逻辑表达式等,根据表达式值为非。或0来判断条件成立与否。B、

C语言中表示条件的可以是算术表达式、关系表达式、逻辑表达式等,

根据表达式值为非0或0来判断条件成立与否。C、C语言中表示

条件的可以是算术表达式、关系表达式、逻辑表达式等,根据表达式

值为非0或0来判断条件成立与否。D、C语言中表示条件的可以

是算术表达式、关系表达式、逻辑表达式等,根据表达式值为非0或

。来判断条件成立与否。

23、intx=102,y=12;

printf("%2dz%3d\n",x/y);

执行后输出结果是()

提示:当%0^中m小于数据的实际宽度时,按实际宽度输出。

A.102,120

B.102,12

C.02,12

D.10,012

正确答案:B

解析:B、printf(”%2d,%3d\n”,x,y)中的格式字符%2d表示输出整型

数值,宽度为2,

而实际所需宽度超过2时,以实际所需宽度为准,因此输出102.%3d

表示输出整型数值,宽度为3,

而实际所需宽度不足3时,补足空格,因此输出12之前补了一个空

格.

24、设i是int型变量,j是float型变量,用下血的语句给这两个

变量输入值:

scanf("i=%d/j=%f"/&i,&j);

为了把10和2.5分别赋给i和则正确的输入为()

A.10<回车>2.5<回车>

回车回车>

B.x=10<>zy=2.5<

C.i=10J=2.5<回车>

D.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(a>c)b=c;a=c;c=b;

a,b,c的值分别为()(用逗号分隔)

提示:由if控制的分支语句只有一条

A.1,2,3

B.3,2,2

C.3,3,2

D.3,3,3

正确答案:B

解析:B、注意,题目中的:

if(a>c)b=c;a=c;c=b;

if内嵌语句只有一句,也称if子句,b=c;是if的子句,而a=c;c=b;

不是,它们是分支语句的后续语句。

本题中,

a>c条件不成立,不执行b=c;

而要执行a=c;c=b;

故a,b,c的值为3,2,2

如果想表示条件成立执行三条赋值语句,应当写作:

if(a>c){b=c;a=c;c=b;}采用复合语句做为if子句

二、多选题

1、输出结果为25*64=1600的语句是()。

A.printf("25*64=%d,),25*64);

B.printf("25*64=1600");

C.print25*64=1600;

D.printf("25*64=%d,25*64");

正确答案:A、B

解析:C、printf(”格式控制字符串“,表达式);

函数格式不正确D、输出结果为25*64=0,25*64

第二个25*64在双引号内,非%开始的格式控制符原样输出

2、下面是关于C程序注释的叙述,其中正确的是()o

A.〃是行注释,从〃开始至行尾为注释内容

B.从〃开始的程序都是注释内容

C./*……*/可以注释多行,也可以注释一行

D./**/与〃注释的范围没有区别

正确答案:A、C

解析:B、只注释至本行尾D、/**/可以注释多行

3、下面()语句正确地描述了方程

A.y=a*x*x*(x+c);

B.y=(a*x*x*x)+c;

C.y=a*x*x*x+c;

D.y=(a*x)*x*(x+c);

正确答案:B、C

4、下面()能完成变量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=a

a=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函数中,浮点型数据输出的格式控制符有()。

A.%d

B.%g

C.%e

D.%f

正确答案:B、C、D

解析:B、%g为浮点型数据输出格式控制符,表示按指数形式或小

数形式二者中占宽度较短的形式输出C、%e为浮点型数据输出格式

控制符,表示按指数形式输出D、%f为浮点型数据输出格式控制符,

表示按小数形式输出

7、下面程序中,()可以输出变量a,b,c的最大值。

A.if(a>b)max=a;

if(c>max)max=c;

printf("最大值为%d\n,max);

B.if(a>=b&&a>=c)printf("最大值为%d\n,a);

if(b>=a&&b>=c)printf("最大值为%d\n",b);

if(c>=a&&c>=b)printf("最大值为%d\n",c);

C.max=a;

if(b>max)max=b;

if(c>max)max=c;

printf("最大值为%d\n“,max);

D.if(a>b>c)printf("最大值为%d\n”,a);

if(b>a>c)printf("最大值为%d\n”,b);

if(c>a>b)printf("最大值为%d\n”,c);

正确答案:B、C

解析:A、当a<=b时,不执行max=a,则max没有值,无法再与

F面的c进行比较D、注意,a>b>c不能表示a〉b且b>c。

三、填空题

1、设a=l,b=2,c=3,逻辑表达式a&&b&&c的值是()。

正确答案:1

解析:整型值参与关系运算,如果该整型值非0,表示逻辑真,

如果该整型值为0,表示逻辑假。

根据a,b,c的值,可以得到:

3&&b&&c六J1o

2、设a=l,b=2,c=3,逻辑表达式a11!bII!c的值是()。

正确答案:1

解析:整型值参与关系运算,如果该整型值非0,表示逻辑真,

如果该整型值为0,表示逻辑假。

根据a,b,c的值,可以得到:

a为1,

!b为0,

!c为0,

因此,a||!b||!c为1。

3、输入一个考试分数(0至100范围内),如果分数小于60分,则输

出“不及格”;大于90分输出“优秀”;大于等于60并且小于等于

90,则输出“合格”。(有1个空,答案一行写一个,不要添加多余的

空格)

#include<stdio.h>

intmain()

(

intx;

printf("请输入分数(0-100):");

scanf("%d",&x);

if(x<60)

温馨提示

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

评论

0/150

提交评论