C语言习题+答案(共48)_第1页
C语言习题+答案(共48)_第2页
C语言习题+答案(共48)_第3页
C语言习题+答案(共48)_第4页
C语言习题+答案(共48)_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

C语言(yiiyWii)章节(zh*ngji6)复习题

目录(miilii)

C语言章节复习题..............................................1

第一章C语言概述.................................................2

第三章数据类型、运算符和表达式..................................3

第四章顺序结构程序设计...........................................4

第五章选择结构程序设计..........................................10

第六章循环结构程序设计..........................................18

第一章C语言概述(gAishil)

一、选择题:

1、一个(yig3)C程序的执行是从(A)。

A本程序(chengxu)的main函数开始,到main函数结束

B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C本程序的main函数开始,到本程序文件的最后一个函数结束

D本程序文件的第一个函数开始,到本程序main函数结束

2、在C语言中,每个语句必须以(D)结束。

A.回车符B.冒号C.逗号D.分号

3、C语言规定:在一个源程序中,main函数的位置(C)。

A.必须在最开始B.必须在系统调用的库函数的后面

C.可以任意D.必须在最后

4、一个C语言程序是由(B)。

A.一个主程序和若干子程序组成B.函数组成

C.若干过程组成D.若干子程序组成

5、下列说法中错误的是(D)。

A.主函数可以分为两个部分:主函数说明部分和主函数体

B.主函数可以调用任何非主函数的其他函数

C.任何非主函数可以调用其他任何非主函数

D.程序可以从任何非主函数开始执行

6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。

A.生成可执行目标文件B.生成目标文件

C.输出运行结果D.自动保存源文件

二、填空题:

1、C语言只有(32)个关键字和(9)种控制语句。

2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。

3、C语言程序的注释可以出现在程序中的任何地方,它总是以(\*)符号作为开始标

记,以(*\)符号作为结束标记。

4、C语言中,输入操作是由库函数(scanf)完成的,输出操作是由库函数(printf)完成

的。

5、系统默认的C语言源程序文件的扩展名是(.c),经过编译后生成的目标文件的扩展

名是(.obj),经过连接后生成的可执行文件的扩展名是(.exe)o

6、C语言的标识符只能由字母、数字和(下划线)三种字符组成。

2/48

第三章数据类型、运算符和表达式

一、选择题:

1、以下选项中,不正确的C语言(ytiyAn)浮点型常量是(C)。

A.160.B.0.12C.2e4.2D.0.0

2、以下(yix啕选项中,(D)是不正确的C语言字符(zif⑴型常量。

A.'a'B.'\x41'C.'\101'D."a"

3、在C语言中,字符型数据在计算机内存中,以字符的(C)形式存储。

A.原码B.反码C.ASCII码D.BCD码

4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C)。

x=(i=4,j=16>k=32)

A.4B.16C.32D.52

5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。

A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算

C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算

6、表达式!x||a=b等效于(D)。

A.!((x||a)=b)B.!(x||y)==bC.!(x||(a==b))D.(!x)||(a=b)

7、设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c〉d)后,m,n的值是(B)。

A.0,0B.0,1C.1,0D.1,1

8、设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是(B)。

A.3B.0C.9D.-12

9、在以下一组运算符中,优先级最低的运算符是(D)。

A.*B.!=C.+D.=

10、设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是(B)。

A.6B.12C.15D.表达式出错

11、若已定义x和y为double类型,则表达式x=l,y=x+3/2的值是(C)。

A.1B.2C.2.0D.2.5

12、设a=l>b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为(D)。

A.4B.3C.2D.1

13、设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是(A)。

A.10<a<15B.a==1111a==1211a==1311a==14

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

14、设f是实型变量,下列表达式中不是逗号表达式的是(D)。

A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)

15、表达式18/4*sqrt(4.0)/8值的数据类型是(C)。

A.intB.floatC.doubleD.不确定

16、已知字母A的ASC工工码为十进制数65,且c2为字符型,则执行语句

C2='A'+'6'-C后c2中的值是(A)。

A.DB.68C.不确定的值D.C

17、以下用户标识符中,合法的是(B)。

A.intB.nitC.123D.a+b

18、C语言中,要求运算对象只能为整数的运算符是(A)。

3/48

A.%B./C.>D.*

19、若有说明语句:charc='\72';则变量(bianliMg)c在内存占用的字节数是(A)。

A.1B.2C.3D.4

20、字符串"ABC”在内存(n6icGn)占用的字节数是(B存

A.3B.4C.6D.8

21、要为字符型变量a赋初值,下列(xinli6)语句中哪一个是正确的(B)。

A.chara="3";B.chara=,3,;C.chara=%;D.chara=*;

22、下列不正确的转义字符是(C)。

A.\\B.\'C.074D.\0

二、填空题:

1、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。

2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式

x%=(n%=2)后x的值为Oo

3、设c=,w',a=l,b=2,d=-5,则表达式'x'+l>c,'y'!=c+2,-a-5*b<=d+l,b==a=2的值为1、

0、1、1。

4、设floatx=2.5,y=4.7;inta=7;,表达式x+a茗3*(int)(x+y)茗2/4的值为2.5。

5、判断变量a、b的值均不为0的逻辑表达式为a!=0&&bi=0,值为1。

6、求解赋值表达式a=(b=10)%(c=6),表达式值为4、a、b、c的值依次为1,0,

6。

7、求解逗号表达式x=a=3,6*a后,表达式值为18、x、a的值依次为3,3。

三、编程题:

1、设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。

2、编写一个程序,将大写字母A转换为小写字母a。

1.

main()

{floatx=1.5,y=2.3;printf(uareais%6.2f\n,,,x*y);}

2.

main()

{charc=,A5jprintf^^^od'^c+S2);}

第四章顺序结构程序设计

基础练习(A)

一、填空题

i>c语句分为五种:控制语句、函数调用语句、表达式语句、空语句和复合语

句。

2、一个基本语句的最后一个字符是上。

3、复合语句又称分程序,是用{}括起来的语句。

4/48

4、使用c语言库函数时,要用于预编译命令include将有关的“头文件”包括

到用户源文件中。

5、使用标准输入输出库函数时,程序的开头要有如下(riixi/)预处理命令:

#includevstdio.h>。

6、{a=3;c+=a-b;}在语法(yQfd)上被认为是1条语句(灯j⑴。

7、getchar函数的作用是从终端输入1个字符。

8、如果从键盘输入字符'a'并按回车键,请写出以下程序运行效果a。

#include<stdio.h>

main()

(

putchar(getchar());

)

9、以下程序的输出结果为i:dec=-

4,oct=177774,hex=fffc,unsianed=65532。

main()

(

shorti;

i=-4;

printf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);

}

10、以下程序的输出结果为*3.140000,3.142*。

main()

(

printf(1,*%f,%4.3f*\n",3.14,3.1415);

}

11、以下程序的输出结果为c:dec=120,oct=170,hex=78,ASCII=x。

main()

(

charc='x';

printf(',c:dec=%d,oct=%o,hex=%x,ASCII=%tn",c,c,c,c);

)

12、已有定义intd=-2;执行以下语句后的输出结果是*d(1)=-2*d(2)=-2*d(3)=-2*

*d(4)=177776*d(5)=177776*d(6)=177776*

printf("*d(1)=%cl*cl(2)=%3d*d(3)=%-3cl*\n,,,d,d,d);

printf("*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n,,,d,d,d);

13、以下程序的输出结果为x=1y=2*sum*=3

10Squaredis:100

main()

(

intx=l,y=2;

printf("x=%dy=%d*sum*=%d\n”,x,y,x+y);

printf("10Squaredis:%d\n",10*10);

5/48

)

14、以下程序的输出结果为(1)123.456000

(2)□□□□□□□123.457

(3)123.4560

(4)8765.456700

(5)□□□□□□8765.457

(6)8765.4567

(7)8765.4567

♦include<stdio.h>

main()

{floata=123.456;doubleb=8765.4567;

printf("⑴%f\n”,a);

printf("(2)%14.3f\n,,,a);

printf("(3)%6.4f\n,,,a);

printf("⑷%lf\n,,,b);

printf("(5)%14.3lf\n,,,b);

printf("(6)%8.4lf\n",b);

printf(u(7)%.4f\n",b);

}

二、判断题

1、所谓(su6w6i)函数体实际上就是一个复合语句。(对)

2、C语言本身不提供输入输出(shtichU)语句,输入和输出操作是由函数来实现的。

(对)

3、putchar函数可以(k*yi)向终端输出一个整数数据。(错)

4、考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时可不加

#include命令。(对)

5、任何表达式都可以加上分号而成为有意义的语句。(对)

三、选择题

1、以下不属于流程控制语句的是(A)。

A)表达式语句B)选择语句C)循环语句D)转移语句

2、putchar函数可以向终端输出一个(D)。

A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值

3、getchar函数的参数个数是(B)。

A)1B)0C)2D)任意

4、以下程序的输出结果是(D)o

main()

(

printf("\n*s1=%15s*n,"chinabeijing");

,,

printf(*'\n*s2=%-5s*I"chi");

}

A)*sl=chinabeijing*B)*sl=chinabeijing*

*s2=**chi**s2=chi*

C)*sl=*chinabeijing*D)*sl=chinabeijing*

*s2=chi**s2=chi*

5、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5歹如果字符

串长度大于5,则输出按方式(B)0;如果字符串长度小于5,则输出按方式

6/48

A)从左起输出该字串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出(shuchu)错误信息

6、已有定义(dingyi)inta=-2;和输出(shUchd)语句:printff%8k,a)以下正确的叙述是

(D)o

A)整型变量的输出格式符只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%81乂是错误的

D)%81x不是错误的格式符,其中数字8规定了输出字段的宽度

7、以下C程序正确的运行结果是(C)o

main()

(

longy=-43456;

printf(uy=%-81d\n,,,y)

printf(uy=%-081d\n,,,y)

printf(uy=%08ld\nn,y)

printf("y=%+8ld\n”,y)

A)y=-43456B)y=-43456

y=-43456V=-43456

y=-0043456y=-0043456

y=-43456y=+-43456

C)y=-43456D)y=-43456

y=-43456y=-0043456

y=-0043456y=00043456

y=-43456y=+43456

8、以下C程序正确的运行结果是(D)o

main()

(

inty=2456;

printf(My=%3o\nM,y)

printfCty=%8o\n,,,y)

printf("y=%#8o\n”,y)

)

A)y=2456B)y=4630

y=2456y=4630

y=########2456y=########4630

C)y=2456D)y=4630

y=2456y=4630

y=02456y=04630

基础练习(B)

一、填空题

1、printf函数的作用是向终端输出若干个任意类型的数据。

2、printf函数中的“格式控制”,包括格式说明和普通字符两种信息。

7/48

3、scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。

4、在用scanf函数中输入数据时,如果在“格式控制”字符传中除了格式说明以外

还有其他字符,则应在对应位置输入与这些字符相同缸里里。

5、在用“%C"格式输入字符时,空格字符和“转义字符”都作为有效字符输入。

6、在输入数据时,遇以下情况时该数据认为(MnwCi)结束:遇空格(kongg@)、

或按“回车(hWch。)”或“跳格”键;按指定的宽度结束;遇非法输入。

7、输入数据时不能规定精度一7"

8、如果在%后有一个“*”附加说明符,表示跳过它指定的列数。

二、选择题

1、若inta,b;scanf("%d%d”,&a,&b);不可以用(A)作为输入的分隔符。

A),B)空格C)回车D)TAB键

2、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句

是(B)o

A)scanf("%d%lx,%le”,&x,&y,&z);

B)scanf(1,%2d*%d%lf,,&x,&y,&z);

C)scanf("%x%*d%o”,&x,&y);

D)scanf("%x%o%6.2f,,&x,&y,&z);

3、已有如下定义和输入语句,若要求al,a2,cl,c2的值分别为10,20,A和

B,当从第一列开始输入数据时,正确的数据输入方式是(D)。

intal,a2;charcl,c2;

scanf("%d%d,,,&a1,&a2);

scanf("%c%c”,&c1,&c2);

A)1020AB<CR>B)1020<CR>

AB<CR>

C)1020AB<CR>D)1020AB<CR>

4、阅读以下程序,当输入数据的形式为25,13,10<CR〉正确的输出结果为

(D)。

main()

(

intx,y,z;

scanf("%d%d%dn,&x,&y,&z);

printf("x+y+z=%d\n",x+y+z);

)

A)x+y+z=48

B)x+y+z=35

C)x+z=35

D)不确定值

5、已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为(D)。

main()

(

inta;floatf;

printf("\nlnputnumber:");

输入语句

printf(M\nf=%f,a=%d\n",f,a);

)

Inputnumber:4.52<CR>

A)scanf("%d,%r,&a,&f);

8/48

B)scanf("%f,%d,,,&f,&a);

C)scanf("%d%f”,&a,&f);

D)scanf(1,%f%d,,,&f,&a);

6、根据定义和数据的输入方式,输入语句的正确形式为(B)0

己有定义:floatfl,f2;

数据(shiijii)的输入方式:4.52

3.5

A)scanf("%f,%r,&f1,&f2);

B)scanf("%f%r,&f1,&f2);

C)scanf("%3.2f%2.ir,&f1,&f2);

D)scanf("%3.2f%2.1f,,,&f1,&f2);

7,阅读以下程序,若运行(yiinxing)结果为如下形式,输入输出语句的正确内容是

(B)。

main()

(

intx;floaty;

printf("enterx,y:");

输入(shQnl)语句

输出语句

)

输入形式enterx,y:23.4

输出形式x+y=5.40

A)scanf("%d,%r,&x,&y);

printf("\nx+y=%4.2f,,x+y);

B)scanf("%d%f,,,&x,&y);

printf(,1\nx+y=%4.2f,,x+y);

C)scanf("%d%r,&x,&y);

printf("\nx+y=%6.1f',x+y);

D)scanf("%d%3.ir,&x,&y);

printf("\nx+y=%4.2f,,x+y);

8、以下说法正确的是(D)o

A)输入项可以为一实型常量,如scanf("%r,3.5);

B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如

scanf("%4.2r,&f);

D)当输入数据时,必须指明变量的地址,如scanf("%r,&f);

9、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为

3,c为2,从键盘输入数据的正确形式应当是(D)。

A)132c回车〉

B)1,3,2〈回车〉

C)a=lb=3c=2〈回车〉

D)a=l,b=3,c=2(回车>

)

10、已有如下定义和输入语句,若要求al,a2,cl,c2的值分别为10,20,A和

B,当从第一列开始输入数据时,正确的数据输入方式是(A)。

intal,a2;charcl,c2;

scanf(u%d%c%d%c,,,&a1,&c1,&a2,&c2);

9/48

A)10A20B<CR>B)10A20B<CR>

C)10A20B<CR>D)10A20B<CR>

11、已有定义intx;floaty;且执行scanf("%3d%f',&x,&y);语句,若从第一列开始输入

数据12345678〈回车>,则x的值为(B),y的值为(B)。

(1)A)12345B)123C)45D)345

(2)A)无定值B)45.000000C)678.000000D)123.000000

三、编程:

1、编写程序,从键盘(ji/npAn)上输入三个数分别给变量a、b、c,求它们的平均值。

并按如下(riixi豆)形式输出:averageof**>**and**is**.**。其中(qizhdng),三个

**依次表示a、b、c的值,**.**表示a,b,c的平均值。

2、输入9时23分并把它化成分钟后输出。(从零点整开始计算)。

1、参考答案

main()

{floata,b,c,t;

printf(upleaseinputa,b,c:\rT);

scanf(吟f,%f,%fH,&a,&b,&c);

t=(a+b+c)/3;

printf("averageof%6.2f>%6.2fand%6.2fis%6.2f\n,,,a,b,C,t);

}

2、参考答案

main()

{inth,m,s;

printf(upleaseinputh,m:\nn);

n

scanf(%d,%d"z&h,&m);

s=h*60+m;

printf("total%dminute\nM,S);

)

第五章选择结构程序设计

基础练习(A)

一、填空题

1、关系表达式的运算结果是逻辑值。c语言没有逻辑型数据,以上代表

“真”,以工代表“假”。

2、逻辑运■将!是单目运算符,其结合性是由右结合性。

3、C语言提供的三种逻辑运算符是&&、||、!o其中优先级最高的

为!,优先级最低的为||。

4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以

是任何类型的数据。系统最终以0和非0来判定它们属于“真”或“假”。

5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。

6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式

x<z||y<zo

7、条件“2<x<3或x<-10”的C语言表达式是Xv-10||x>2&&Xv3。

10/48

(ch<=

)&&

'A'

h>=

是(c

达式

确表

的正

字母

大写

否为

ch是

型变量

har

断c

8、判

)。

Z

是0

的值

a>b>c

式f=

表达

l时,

c=

b=2

a=3

9、当

z

z

是1

的值

!=c

a>b

达式

时,表

c=2

=4,

a=5b

10>当

z

0

值是

>B的

B&&!C

||A<

&C〉A

A〉B&

达式

,6,表

C=3

=2,

5,B

=7.

知A

11、已若

2

1、

1

值是

c/2的

-l&&b+

a-b)+c

式!(

则表达

温馨提示

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

评论

0/150

提交评论