C语言习题.docx

上传人:b****5 文档编号:6410790 上传时间:2023-01-06 格式:DOCX 页数:68 大小:68.89KB
下载 相关 举报
C语言习题.docx_第1页
第1页 / 共68页
C语言习题.docx_第2页
第2页 / 共68页
C语言习题.docx_第3页
第3页 / 共68页
C语言习题.docx_第4页
第4页 / 共68页
C语言习题.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

C语言习题.docx

《C语言习题.docx》由会员分享,可在线阅读,更多相关《C语言习题.docx(68页珍藏版)》请在冰豆网上搜索。

C语言习题.docx

C语言习题

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

重点和难点:

理解c语言中的各种数据类型以及变量的含义,掌握变量的定义;理解各种类型的运算符和表达式的含义及用法。

一、选择题

1、以下定义语句中正确的是()

A)doublea;b;B)doublea=b=7;

C)doublea=7,b=7;D)doublea,b;

2、以下合法的字符型常量是()

A)‘\x13’B)‘\081’

C)‘65’D)”\n”

3、以下选项中不合法的标识符是()

A)printB)FOR

C)&aD)_00

4、若变量均已正确定义并赋值,以下合法的c语言赋值语句是()

A)x=y==5B)x=n%3.2

C)x+n=4D)x=5=4+1

5、设有定义:

intk=0;,以下选项中的四个表达式中与其它三个表达式的值不同的是()

A)k++B)k+1

C)++kD)k+=1

6、以下选项中,当x为大于1的奇数时,值为0的表达式是()

A)x%2==1B)x/2

C)x%2!

=0D)x%2==0

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

A)int_int;B)doubleint;

C)charFor;D)floatUS$

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

A)f=3,5,4B)f=(3,2,1,0)

C)f>=3,f<2,0D)f=2,f=1

9、设有定义:

floata=2,b=4,h=3;,以下c语言表达式中与代数式(a+b)h/2计算结果不相符的是()

A)(a+b)*h/2B)(1/2)*(a+b)*h

C)(a+b)*h*1/2D)h/2*(a+b)

10、以下符合c语言语法的实型常量是()

A)1.2E0.5B)3.14159E

C).5E-3D)E15

11、若有表达式(w)?

(--x)(++y),以下与w等价的表达式是()

A)w==1B)w==0

C)w!

=1D)w!

=0

12、c语言中最基本的数据类型包括()

A)整型、实型、逻辑型B)整型、实型、字符型

C)整型、字符型、逻辑型D)实型、字符型、逻辑型

13、若变量已正确定义并赋值,以下符合c语言语法的表达式是()

A)a:

=b+1B)a=b=c+2

C)int18.5%3D)a=a+7=c+b

14、设有定义:

inta=2,b=3,c=4;,则以下选项中值为0的表达式是

  A)(!

a==1)&&(!

b==0)B)(a

c||1

  C)a&&bD)a||(b+b)&&(c-a)

15、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为()

A)d                           B)68              C)不确定的值           D)C

16、设有说明:

charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()

A)float         B)char         C)int          D)double

17、设C语言中,一个shortint型数据在内存中占2个字节,则unsignedshortint型数据的取值范围为 ()  。

A)0~255       B)0~32767       C)0~65535        D)0~2147483647

18、设以下变量均为int类型,则值不等于7的表达式是  ()

A)(x=y=6,x+y,x+1)             B)(x=y=6,x+y,y+1)   

   C)(x=6,x+1,y=6,x+y)           D)(y=6,y+1,x=y,x+1)

19、下列四组选项中,均是不合法的用户标识符的选项是 ()

A)W                      P_0          do

B)b-a                    goto          int

C)float                       la0              _A

D)-123                       abc             TEMP

20、以下叙述正确的是 ()

A)在C程序中,每行只能写一条语句    

B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,%是只能用于整数运算的运算符

D)在C程序中,一行可以写一条语句也可以写多条语句。

21、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后,x和n的值为()

A)11,6             B)10,5   

   C)10,6          D)11,5

22、若有定义:

intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为 ()

   A)1.7             B)1   

C)2         D)1.71

23、在C语言中,要求运算数必须是整型的运算符是()。

A)/B)++C)!

=D)%

第3章顺序结构程序设计

重点掌握输入函数scanf()、输出函数printf()的使用方法,以及程序编写的方法。

一、选择题

1、当用户要求输入的字符串中含有空格时,应使用的输入函数是()

A)scanf()B)getchar()

C)gets()D)puts()

2、有以下程序

#include”stdio.h”

voidmain()

{inta=0,b=0;

a=10;b=20;

printf(“a+b=%d\n”,a+b);

}

程序运行后的输出结果是()

A)a+b=10B)a+b=30

C)30D)出错

3、整型变量a、b、c的值分别为2、3、4,执行运算表达式“a*=16+(b++)-(++c)”后,a的值是()

A)31B)29

C)30D)28

4、有以下程序

#include”stdio.h”

voidmain()

{floatx=123.456;

printf(“%-5.2f\n”,x);

}

程序运行后的输出结果是()

A)123.4B)123.5

C)123.45D)123.46

5、设i为整型变量,f为float变量,用下面的语句给这两个变量输入值:

scanf(“i=%d,f=%f”,&i,&f);

为了把100和745.14分别赋给i和f,则正确的输入是()

A)100<空格>745.14<回车>B)i=100,f=745.14<回车>

C)100<回车>745.14<回车>D)x=100<回车>,y=745.14<回车>

6、若变量a,i已正确定义,且i已正确赋值,合法的语句是()

A)a==1;B)++i;

C)a=a++=5;D)a=int(i);

7、若运行时给变量x输入12,则以下程序的运行结果是()

#include”stdio.h”

voidmain()

{

intx,y;

scanf(“%d”,&x);

y=x>12?

x+10:

x-12;

printf(“%d\n”,y);

}

A)0B)22

C)12D)10

8、以下叙述不正确的是 ()

A)在C程序中,逗号运算符的优先级最低    

B)在C程序中,MAX和max是两个不同的变量

C)若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变

D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

9、以下说法正确的是()。

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

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

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);

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

10、已有如下定义和输入语句,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()。

inta1,a2;charc1,c2;

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

A)10A20BB)10A20B

C)10A20D)10A20B

11、在C语言中,char型数据在内存中的存储形式是()。

A)补码B)反码C)原码D)ASCII码

12、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。

如果字符串长度大于5,则输出按方式()。

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

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

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

D)输出错误信息

13、有如下程序

#include”stdio.h”

voidmain()

{chara,b,c,d;

scanf("%c,%c,%d,%d",&a,&b,&c,&d);

printf("%c,%c,%c,%c\n",a,b,c,d);

}

若运行时从键盘上输入:

6,5,65,66<回车>,则输出结果是()

A)6,5,6,6B)6,5,A,B

C)6,5,65,66D)6,5,a,b

二、填空题

1、给定的程序的功能是:

从键盘输入两个整数,交换它们的值,并输出结果。

__1__

voidmain()

{

inta,b;

__2__

printf(“请输入两个整数:

a,b\n”);

scanf(“%d%d”,&a,&b);

printf(“交换前a,b的值为:

\n”);

printf(“a=%d,b=%d\n”,a,b);

__3__;a=b;b=t;

printf(“交换后a,b的值为:

\n”);

printf(“a=%d,b=%d\n”,a,b);

}

2、给定的程序的功能是:

从键盘输入一个四位的正整数,将其最高位移到个位,并输出结果。

例如:

输入1234,输出是2341。

#include"stdio.h"

voidmain__1__

{

inta,b;

intt;

printf("请输入一个四位正整数:

\n");

scanf(__2__,&a);

printf("移位前a的值为:

\n");

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

__3__

b=a%1000*10+t;

a=b;

printf("移位后a的值为:

\n");

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

}

三、改错题

1、给定的程序的功能是:

计算半径为5的圆的面积,并输出结果。

#include”stdio.h”

/**********found***********/

#definePI=3.14159

voidmain()

{

/**********found***********/

floatrs;

r=5.0;

s=PI*r*r;

/**********found***********/

printf(“%d\n”,s);

}

2、给定程序的功能是:

由键盘输入两个实数求和,并输出结果。

#include”stdio.h”

/**********found***********/

voidmain();

{

floata,b,sum;

scanf(“%f%f”,&a,&b);

/**********found***********/

sum=a+b

printf(“sum=%f\n”,sum);

/**********found***********/

四、编程题

1、从键盘输入一个实数保留该实数小数点后两位数,并对第三位进行四舍五入。

2、将a,b两个两位正整数合并形成一个新的整数放在c中。

合并的方式是:

将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。

例如:

当a=45,b=12时,c=1425。

3、从键盘输入一个小写字母,将其转换为大写字母,并输出。

例如:

输入a,输出为A。

第4章选择结构程序设计

本章学习内容主要包括:

关系运算符及关系表达式、逻辑运算符及逻辑表达式、分支结构的两条语句if语句和switch语句。

其中由关系运算符和逻辑运算符相结合组成的表达式、if语句格式的正确使用是本章的重点和难点。

一、选择题

1.逻辑运算符中,运算优先级按从高到低的顺序依次为()。

A.&&,!

,||    B.||,&&,!

    

C.&&,||,!

    D.!

,&&,||

2.表达式!

x||a==b等价于()。

A.!

((x||a)==b)     B.!

(x||y)==b     

C.!

(x||(a==b))    D.(!

x)||(a==b)

3.表示关系x≤y≤z的c语言表达式为()。

A.(x<=y)&&(y<=z)B.(x<=y)AND(y<=z)

C.(x<=y<=z)D.(x<=y)&(y<=z)

4.能正确表示a≥10或a≤0的关系表达式是()。

A.a>=10ora<=0B.a>=10|a<=0

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

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

A.0,0    B.0,1   

C.1,0   D.1,1

6.intb=0,x=1;执行语句if(x++)b=x+1后,x,b的值依次为()。

A.2,3B.2,0   

C.3,0D.3,2

7.根据题目描述,写出正确的if语句为()。

如果x>0,求x的平方根(x和y都是单精度类型的数据)。

(1)将结果放入变量y中;

(2)输出x的平方根y。

A.if(x>0)B.if(x>0)

{y=sqrt(x);{y=sqrt(x);}

printf("%f",y);printf("%f",y);

}

C.if(x>0)D.{if(x>0)

y=sqrt(x);y=sqrt(x);

printf("%f",y);printf("%f",y);}

8.阅读下面的程序,程序的运行结果为()。

#include

voidmain()

{

inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

printf("%d\n",c);

}

A.2  B. 0 

C.3   D.-1

9.阅读下面的程序,程序的运行结果为()。

#include

voidmain()

{

intx=20;

if(x>=0)

if(x<50)

printf("xisok\n");

else

printf("xisnotok\n");

}

A.xisnotok  B. xisok

C.xisok\n  D.无输出结果

10.阅读下面的程序,程序的运行结果为()。

#include

voidmain()

{

intx,a;

scanf("%d",&x);

a=x%10;

switch(a)

{

case0:

case2:

case4:

case6:

case8:

printf("even!

\n");break;

default:

printf("odd!

\n");

}

}

A.若给x输入奇数,则输出odd ;否则输出even

B.若给x输入奇数,则输出even ;否则输出odd

C.无论给x输入奇数或偶数,均输出odd   

D.无输出结果

二、填空题

1.计算y的值。

x+5(x>=0)

y=

x-5(x<0)

#include

voidmain()

{

floatx,y;

scanf("%f",__1__);

__2__(x>=0)

y=x+5;

else

y=__3__;

printf("%f",y);

}

2.从键盘输入某一年份,判断该年是否为闰年。

#include

voidmain()

{

intyear;

scanf("__1__",&year);

__2__(year%4==0&&year%100!

=0||year%100==0__3__year%400==0)

printf("%d是闰年",year);

elseprintf("%d不是闰年",year);

}

3.从键盘输入一个整型数,判断它是否既能被3整除,又能被7整除。

#include

voidmain()

{

inty;

scanf("%d",__1__);

if(y__2__3==0&&y%7==0)

printf("%d能被3和7整除",y);

__3__

printf("%d不能被3和7整除",y);

}

三、改错题

1.从键盘上输入三个数,求出其中的最大值。

利用该程序的方法试求出四个数、五个数中的最大值。

#include

voidmain()

{

floata,b,c,max;

/**********found***********/

scanf("%f%f%f",&a,&b,c);

/**********found***********/

max=a

if(max<=b)max=b;

/**********found***********/

else(max<=c)max=c;

printf("%f",max);

}

2.用海伦公式求三角形的面积,三角形的三条边由键盘输入,求面积前须判断三角形的三条边能否构成三角形。

#include

#include

voidmain()

{

floata,b,c,h,s,area;

/**********found***********/

scanf("%d%d%d",&a,&b,&c);

/**********found***********/

else(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b)

{h=(a+b+c)/2;

s=h*(h-a)*(h-b)*(h-c);

/**********found***********/

area=fabs(s);

printf("%f",area);

}

else

printf("不能构成三角形");

}

3.从键盘上输入一个字符,判断它是大写字符、小写字符还是其它字符。

#include

voidmain()

{

charch;

/**********found***********/

scanf("%f",&ch);

if(ch>='a'&&ch<='z')

printf("是小写字符");

/**********found***********/

elseif(ch>='A'||ch<='Z')

printf("是大写字符");

/**********found***********/

elseif

printf("是其它字符");

}

四、编程题

1.判断两个数的大小关系。

2.从键盘输入某一学生的百分制成绩,给出相应的等级。

90分以上为“Excellent”;80~89分为“VeryGood”;70~79分为“Good!

”;60-69分为“Pass!

”;60分以下为“Fail”,试用switch语句和if语句分别来实现。

第5章循环结构程序设计

本章是C语言的重点章节,主要内容包括循环结构的三类语句while语句、do—while语句、for语句以及在三类语句中使用的break语句和continue语句。

本章的重点内容是三类循环语句的执行、应用过程和三类循环语句之间的相互嵌套。

必须熟练掌握三类循环语句及其嵌套语句的执行、应用过程,这是本章的难点,也是后续章节的编程基础。

在循环结构的三类语句中,不管使用哪一类循环语句编写程序,都要用到循环变量。

在一个程序中,通常情况下,和循环变量相关的有三个表达式:

初始值表达式、终止值表达式和增量表达式。

一、选择题

1.下面关于for循环的正确描述是()。

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判断终止条件

C.在for循环中,不能用break语句跳出循环体

D.在for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来

2.对for(表达式1;;表达式3)可以理解为()。

A.for(表达式1;0;表达式3)

B.for(表达式1;1;表达式3)

C.for(表达式1;表达式1;表达式3)

D.for(表达式1;表达式3;表达式3)

3.若有“intm;”,则以下循环执行次数是()。

for(m=2;m==0;)

A.无限次B.0次C.1次D.2次

4.下面不是死循环的是()。

A.for(y=0,x=1;x>++y;x=i++)i=x;

B.n=0;

do{++n;}while(n>=0);

C.while

(1){x++;}

D.for(i=10;;i--)sum+=i;

5.下面程序段的运行结果是()。

for(i=0;i<5;i++)

{

if(i==2)continue;

printf("%d",i);

}

A.01B.0134C.01234D.无输出结果

6.下面程序段的运行结果是()。

intk=10;

while(k=0)k=k-1;

A.while循环执行10次B.循环是无限循环

C.循环体语句一次也不执行D.循环体语句执行一次

7.以下正确的描述是()。

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和switch语句

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

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1