习题15.docx

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

习题15.docx

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

习题15.docx

习题15

习题1

一、单项选择题

1.一个C程序的执行是从

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

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

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

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

2.以下叙述正确的是

A)在C程序中,main函数必须位于程序的最前面

B)程序的每行中只能写一条语句

C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

3.以下叙述不正确的是

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

4.C语言规定:

在一个源程序中,main的位置

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

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

5.一个C语言程序是由( )

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

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

二、填空题

1.C源程序的基本单位是。

2.一个C源程序中至少包括一个。

3.在C语言中,格式化输入操作是由库函数完成的,格式化输出操作是由库函数

完成的。

习题2

一、单项选择题

1.下面四个选项中,均是不合法的用户标识符的选项的是

A)A   p_o   do  

B)float   lao    _A

C)b-a   goto      int

D)_123  temp   INT

2.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符

A)必须为字母

B)必须为下划线

C)必须为字母或下划线

D)可以是字母、数字和下划线中的任意一种

3.下面正确的字符常量是

A)‘c"     B)'\\"         

C)'w'           D)"

4.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为  

A)4                B)16                  

C)32                 D)52

5.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是

A)7                 B)8                   

C)6                  D)2

6.若有数学式

则不正确的C语言表达式是

A)a/b/c*e*3B)3*a*e/b/c

C)3*a*e/b*cD)a*e/c/b*3

7.在C语言中,要求运算数必须是整型的运算符是 

A)/                 B)++    

C)!

=           D)%

8.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为

A)int            B)float             

C)double               D)不确定

9.在C语言中,char型数据在内存中存储形式是

A)补码            B)反码                

C)原码                  D)ASCII码

10.表达式18/4*sqrt(4.0)/8值的数据类型为

A)float            B)char                  

C)double           D)不确定

11.判断字符型变量c1是否为小写字母的正确表达式为

A)’a’<=c1<=’z’B)(c1>=a)&&(c1<=z)

C)(‘a’>=c1)||(‘z’<=c1)D)(c1>=’a’)&&(c1<=’z’)

12.设:

inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为

A)1B)2

C)3D)4

13.下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”的要求的是

A)x%2==0B)!

x%2!

=0

C)(x/2*2-x)==0D)!

(x%2)

二、填空题

1.若s是int型变量,s=6;则表达式s%2+(s+1)%2的值为

2.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为

3.若a.b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为,b值为,c值为。

4.若x和n均是int型变量,且x和n的初值均为5,则精神表达式x+=n++后x的值为,n的值为。

5.若定义:

inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值。

6.在C语言中,不带任何修饰符的浮点常量,是按类型数据存储的。

7.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为

8.C语言中的标识符只能由三种字符组成,它们是,和。

9.若有定义:

inte=1,f=4,g=2;floatm=10.5,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是

10.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为

11.假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是

12.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A

C>B的值是。

13.若有x=1,y=2,z=3,则表达式(x

x:

y)==z++的值是。

14.执行以下程序段后,a=,b=,c=。

intx=10,y=9;

inta,b,c;

a=(x--=y++)?

x--:

y++;

b=x++;

c=y;

15.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式:

16.设有以下变量定义,并已赋确定的值,charw;intx;floaty;doublez;

则表达式:

w*x+z-y所求得的数据类型为。

17.若x为int类型,请以最简单的形式写出与逻辑表达式!

x等价的C语言关系表达式。

18.数学表达式

等价的C语言表达式是

19.数学表达式

等价的C语言表达式是

习题3

一、单项选择题

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

inta1,a2;charc1,c2;

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

A)10A20B↙B)10A20B↙

C)10A20B↙C)10A20B↙

2.执行下列程序片段时输出结果是。

intx=13,y=5;

printf(“%d”,x%=(y/=2));

A)3B)2C)1D)0

3.若定义x为double型变量,则能正确输入x值的语句是。

A)scanf(“%f”,x);B)scanf(“%f”,&x);

C)scanf(“%lf”,&x);D)scanf(“%5.1f”,&x);

4.有输入语句:

scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是。

A)132↙B)1,3,2↙

C)a=1b=3c=2↙D)a=1,b=3,c=2↙

5.逻辑运算符两侧运算对象的数据类型。

A)只能是0或1B)只能是0或非0正数

C)只能是整型或字符型数据D)可以是任何类型的数据

6.下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。

A)x%2==0B)!

x%2!

=0C)(x/2*2-x)==0D)!

(x%2)

7.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。

A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B)(x>=1)||(x<=10)||(x>=200)||(x<=210)

C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)

8.C语言对嵌套if语句的规定是:

else总是与。

A)其之前最近的if配对B)第一个if配对

C)缩进位置相同的if配对D)其之前最近的且尚未配对的if配对

9.设:

inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为。

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

10.下述程序的输出结果是。

#include

intmain()

{

inta=0,b=0,c=0;

if(++a>0||++b>0)

++c;

printf(“%d,%d,%d”,a,b,c);

return0;

}

A)0,0,0B)1,1,1C)1,0,1D)0,1,1

11.以下程序输出结果是。

#include

intmain()

{

intx=1,y=0,a=0,b=0;

switch(x)

{

case1:

switch(y)

{

case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

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

return0;

}

A)a=1,b=0B)a=2,b=1C)a=1,b=1D)a=2,b=2

12.下面程序段

intk=2;

while(k=0){printf(“%d”,k);k--;}

则下面描述中正确的是。

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

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

13.以下程序段的循环次数是。

for(i=2;i==0;)printf(“%d”,i--);

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

14.下面程序的输出结果是。

#include

intmain()

{

intx=9;

for(;x>0;x--)

{

if(x%3==0)

{

printf(“%d”,--x);

continue;

}

}

return0;

}

A)741B)852C)963D)875421

15.下面程序的输出结果是。

#include

intmain()

{

intk=0,m=0,i,j;

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

{

for(j=0;j<3;j++)

k++;

k-=j;

}

m=i+j;

printf(“k=%d,m=%d”,k,m);

return0;

}

A)k=0,m=3B)k=0,m=5C)k=1,m=3D)k=1,m=5

16.若运行以下程序时,输入2473↙,则程序的运行结果是。

#include

intmain()

{

intc;

while((c=getchar())!

=’\n’)

switch(c-‘2’)

{

case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

default:

putchar(c+2);break;

}

printf(“\n”);

return0;

}

A)668977B)668966C)66778777D)6688766

二、基本知识填空题

1.一个表达式要构成一个C语句,必须。

2.复合语句是用一对界定的语句块。

3.写出数学式子

的C语言表达式。

4.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式

5.C语言的语法规定:

else子句总是与的if相结合,与书写格式无关。

6.switch语句中,如果没有与该值相等的标号,并且存在default标号,则从开始执行,直到switch语句结束。

7.C语言三个循环语句分别是语句,语句和语句。

8.至少执行一次循环体的循环语句是。

9.continue语句的作用是结束循环。

10.用break语句可以使程序流程跳出switch语句体,也可以在循环结构中止循环体。

三、阅读程序,指出结果

1.若运行时输入100↙,写出以下程序的运行结果

#include

intmain()

{

inta;

scanf(“%d”,&a);

printf(“%s”,(a%2!

=0)?

”No”:

”Yes”);

return0;

}

2.写出以下程序的运行结果

#include

intmain()

{

inta=2,b=7,c=5;

switch(a>0)

{

case1:

switch(b<0)

{

case1:

printf(“@”);break;

case2:

printf(“!

”);break;

}

case0:

switch(c==5)

{

case1:

printf(“*”);break;

case2:

printf(“#”);break;

default:

printf(“#”);break;

}

default:

printf(“&”);

}

printf(“\n”);

return0;

}

3.阅读下面程序,输入字母A时,指出其运行结果

#include

intmain()

{

charch;

ch=getchar();

switch(ch)

{

case65:

printf("%c",'A');

case66:

printf("%c",'B');

default:

printf("%s\n","other");

}

return0;

}

3.写出下面程序运行的结果

#include

intmain()

{

intx,i;

for(i=1;i<=100;i++)

{

x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf(“%d”,x);

}

return0;

}

4.写出下面程序运行的结果

#include

intmain()

{

inti,b,k=0;

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

{

b=i%2;

while(b--==0)k++;

}

printf(“%d,%d”,k,b);

return0;

}

5.写出下面程序运行的结果

#include

intmain()

{

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=20)break;

if(b%3==1){b+=3;continue;}

b-=5;

}

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

return0;

}

6.写出下面程序运行的结果

#include

intmain()

{

intk=1,n=263;

do{k*=n%10;n/=10;}while(n);

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

return0;

}

7.写出下面程序运行的结果

#include

intmain()

{

inti=5;

do

{

switch(i%2)

{

case0:

i--;break;

case1:

i--;continue;

}

i--;i--;

printf(“%d”,i);

}while(i>0);

return0;

}

8.写出下面程序运行的结果

#include

intmain()

{

inti,j;

for(i=0;i<3;i++,i++)

{

for(j=4;j>=0;j--)

{

if((j+i)%2)

{

j--;

printf(“%d,”,j);

continue;

}

--i;

j--;

printf(“%d,”,j);

}

}

return0;

}

9.写出下面程序运行的结果

#include

intmain()

{

inta=10,y=0;

do

{

a+=2;

y+=a;

if(y>50)break;

}while(a==14);

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

return0;

}

10.写出下面程序运行的结果

#include

intmain()

{

inti,j,k=19;

while(i=k-1)

{

k-=3;

if(k%5==0)

{

i++;

continue;

}

elseif(k<5)break;

i++;

}

printf(“i=%d,k=%d\n”,i,k);

return0;

}

11.写出下面程序运行的结果

#include

intmain()

{inty=2,a=1;

while(y--!

=-1)

do{

a*=y;

a++;

}while(y--);

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

return0;

}

四、程序填空

1.以下程序输出x,y,z三个数中的最小值。

#include

intmain()

{

intx=4,y=5,z=8;

intu,v;

u=x

;

v=u

;

printf(“%d”,v);

return0;

}

2.下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填空使程序完整。

#include

intmain()

{

intn,k=1,s=0,m;

for(n=1;n<=100;n++)

{

k=1;s=0;

;

while()

{

k*=m%10;

s+=m%10;

;

}

if(k>s)printf(“%d”,n);

}

return0;

}

3.已知如下公式:

下面程序的功能使根据上述公式输出满足精度要求的eps的

值,请填

(2)空使程序完整。

#include

intmain()

{

doubles=0.0,eps,t=1.0;

intn;

scanf(“%lf”,&eps);

for(n=1;;n++)

{

s+=t;

t=;

}

;

return0;

}

4.下面程序段的功能是计算1000!

的末尾有多少个零,请填空使程序完整。

#include

intmain()

{

inti,k;

for(k=0,i=5;i<=1000;i+=5)

{

m=i;

while()

{

k++;

m=m/5;

}

}

return0;

}

5.下面程序接受键盘上的输入,直到按↙键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序完整。

#include

intmain()

{

charcx,front=’\0’;

while(!

=’\n’)

{

if(cx!

=’’)putchar(cx);

if(cx==’’)

if()

putchar()

front=cx;

}

return0;

}

6.下面程序按公式

求和并输出结果,请填空使程序完整。

#include

intmain()

{

;

intk;

for(k=1;k<=100;k++)

s+=k;

for(k=1;k<=50;k++)

s+=k*k;

for(k=1;k<=10;k++)

s+=;

printf(“sum=”,s);

return0;

}

7.以下程序的功能是:

从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

#include

intmain()

{

floats;

floatgmax,gmin;

scanf("%f",&s);

gmax=s;

gmin=s;

while()

{

if(s>gmax)

gmax=s;

if()

gmin=s;

scanf("%f",&s);

}

printf("\ngmax=%f\ngmin=%f\n",gmax,gmin);

return0;

}

五、编程题

1.有一函数:

编写一程序,输入x,输出y值。

2.从键盘上输入3个整数,求最小的数。

3.输入某人的出生日期,计算并显示其出生的当天是星期几。

(注:

要计算出生日是星期几,首先要计算出出生前一年的12月31日是星期几,其计算公式如下)

,如果是闰年出生的且出生月份大于2月,则总天数要加1。

4.企业发放的奖金根据利润提成:

利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时

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

当前位置:首页 > 考试认证 > 其它考试

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

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