C语言知识学习第2章理解练习知识题.docx

上传人:b****6 文档编号:8602773 上传时间:2023-02-01 格式:DOCX 页数:11 大小:99.95KB
下载 相关 举报
C语言知识学习第2章理解练习知识题.docx_第1页
第1页 / 共11页
C语言知识学习第2章理解练习知识题.docx_第2页
第2页 / 共11页
C语言知识学习第2章理解练习知识题.docx_第3页
第3页 / 共11页
C语言知识学习第2章理解练习知识题.docx_第4页
第4页 / 共11页
C语言知识学习第2章理解练习知识题.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言知识学习第2章理解练习知识题.docx

《C语言知识学习第2章理解练习知识题.docx》由会员分享,可在线阅读,更多相关《C语言知识学习第2章理解练习知识题.docx(11页珍藏版)》请在冰豆网上搜索。

C语言知识学习第2章理解练习知识题.docx

C语言知识学习第2章理解练习知识题

C语言第1、2章练习题

一、选择题

1.下列运算符中,(C)结合性从左到右。

A.三目B.赋值C.比较D.单目

2.下列for循环的次数为(B):

for(i=0,x=0;!

x&&i<=5;i++)

A.5B.6C.1D.无限

3.下述关于循环体的描述中,(C)是错误的。

A.循环体中可以出现break语句和continue语句;B.循环体中还可以出现循环语句;

C.循环体中不能出现goto语句;D.循环体中可以出现开关语句。

4.下列变量名中,(A)是合法的。

A.CHINA;B.student-num;C.doubleD.A+b

5.有以下程序段:

intn=0,p;  do{scanf(”%d”,&p);n++;}while(p!

=12345&&n<3);

此处do-while循环的结束条件是(D)。

A.p的值不等于12345并且n的值小于3B.p的值等于12345并且n的值大于等于3

C.p的值不等于12345或者n的值小于3D.p的值等于12345或者n的值大于等于3

6.若有定义:

inta=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为(B)

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

7.以下程序中,while循环的循环次数是(D)

main()

{inti=0;

while(i<10)

{if(i<1)continue;

if(i==5)break;

i++;}.....

A.1B.10C.6D.死循环,不能确定次数

8.下列while循环的执行次数是(A)while(i=0)i--;

A.0B.1C.5D.死循环

9.以下说法中正确的是:

C

A.C语言程序总是从第一个的函数开始执行;

B.在C语言程序中,要调用的函数必须在main()函数中定义;

C.C语言程序总是从main()函数开始执行;

D.C语言程序中的main()函数必须放在程序的开始部分。

10.以下程序的输出结果是:

D

main()

{intx=10,y=10;

printf("%d%d\n",x--,--y);

}

A.1010B.99C.910D.109

11.inta=1,b=3;,则下列表达式的结果为“真”的是:

D

A.a>=2||!

b&&b<4B.b-a&&!

a||a-b&&a/b

C.a-!

a%b&&!

b-!

b%bD.a+b&&a-b&&b-3&&a||b

12.请选出合法的C语言赋值语句C

A.a=b=58B.i++;C.a=58,b=58D.k=int(a+b);

13.若有以下定义和语句:

B

charc1='b',c2='e';

printf("%d,%c\n",c2-c1,c2-'a'+'A');

则输出结果是:

A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定。

14.运行以下程序段后变量a的值是:

D

inta=0,b=3;

switch(a+b&&a++&&b-a&&a)

{

case0:

a++;

case1:

b++;

case2:

a+=b;break;

case3:

a-=b;

default:

a;

}

(A)-3(B)1(C)5(D)6

15.在以下一组运算符中,优先级最高的运算符是:

C

(A)<=(B)=(C)%(D)&&

16.设inta=12,则执行完语句a+=a-=a*a后,a的值是D

(A)552(B)264(C)144(D)-264

17.C语言中基本数据类型包括B

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

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

18.执行下面程序片段的结果是B

intx=23;

do{

printf("%2d",x--);

}while(!

x);

(A)打印出321(B)打印出23(C)不打印任何内容(D)陷入死循环

19.若k是int型变量,且有下面的程序片段:

D

k=-3;

if(k<=0)printf("####")

elseprintf("&&&&");

上面程序片段的输出结果是

(A)####(B)&&&&(C)####&&&&(D)有语法错误,无输出结果。

20.为表示关系x≥y≥z,应使用C语言表达式A

(A)(x>=y)&&(y>=z)(B)(x>=y)AND(y>=z)(C)(x>=y>=z)(D)(x>=y)&(y>=z)

21.若c为char类型变量,能正确判断出c为小写字母的表达式是D

A)'a'<=c<='z'B)(c>='a')||(c<='z')C)c>='a'||c<='z'D)c<='z'&&c>='a'

22.下面程序执行后输出sum的值是D

A)15B)14C)0D)不确定

main()

{inti,sum;

for(i=0;i<6;i++)sum+=i;

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

}

23.以下叙述正确的是:

D

A)可以把include和if定义为用户标识符

B)可以把include定义为用户标识符,但不能把if定义为用户标识符

C)可以把if定义为用户标识符,但不能把include定义为用户标识符

D)include和if都不能定义为用户标识符

二、判断下列描述的正确性,对者划√,错者划╳。

1.switch语句中必须有break语句,否则无法退出switch语句。

0

2.C中标识符内的大小写字母是没有区别的。

0

3.隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。

0

4.运算符的优先级和结合性可以确定表达式的计算顺序。

1

5.while循环语句的循环体至少执行一次。

0

6.开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。

0

7.C语言在编译时不检查语法;0

8.在C语言中,”A”是错误的char类型的常数;1

9.字符(char)型数据在微机内存中的存储形式是ASCII码;1

10.C语言的源程序不必通过编译就可以直接运行;0

11.“Int”是合法的C语言关键字;0

 

三、写出下列程序的运行结果。

 

3.

voidmain()

{inta=0,i;

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

{switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}

}

printf(“%d”,a);31

}

4.

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:

m++;break;

case1:

m++;

switch(b%2)

{default:

m++;

case0:

m++;break;

}

};

printf(“%d”,m);}1

 

5.从键盘输入1325。

voidmain()

{intn1,n2;

scanf("%d",&n2);

while(n2!

=0)

{n1=n2%10;

n2=n2/10;

printf("%d",n1);

}

}5231

6.voidmain()

{inta=5,b=4,c=3,d;

d=(a>b>c);

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

}

先计算a>b结果为真,得到1然后计算1>c结果为假得到0

0

 

7.voidmain()

{ints,i;

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

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

}5

 

四、完成程序。

1.程序的功能是:

分别计算1到10之间奇数之和及偶数之和

voidmain()

{inta,b,c,i;a=c=0;

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

a+=i;

b=____i+1____;

c+=b;

}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",__c___);

}

2.下面程序的功能是:

输出100以内能被3整除且个位数为6的所有整数。

#include

voidmain()

{inti,j;

for(i=0;_i<10___;i++){

j=i*10+6;

if(__j%3!

=0__)continue;

printf("%d",j);

}

}

 

i

 

 

 

5.得到一个输入数字的反转数,然后一次输出这个整数。

voidmain()

{intn,right_digit,newnum=0;

printf("Enterthenumber:

");

scanf("%d",&n);

printf("reverseorderis");

do{right_digit=n%10;

//生成所输入数字的反转数

newnum=newnum*10+right_digit;

n=①

}while(n!

=0);

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

}

6.输入学号,并输出其中能被7或9整除的学号,当学号输入0值时结束循环。

voidmain()

{intnum;

do{scanf(“%d”,&num);

if(num/7==0||num/9==0)

printf(“%d”,num);

}while(num!

=0);

}

 

1.求1-5的阶乘之和。

n!

=(n-1)!

*nsum:

和。

初值为0。

factorial:

积。

初值为1。

#include

voidmain()

{inti,factorial=1,sum=0;

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

factorial*=i;

sum+=factorial;

}

printf(“%d”,sum);

}

2.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

#include

voidmain()

{charch;intletter=0,space=0,digit=0,other=0;

while((ch=getchar())!

='\n'){

if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))

letter++;

elseif(ch>='0'&&ch<='9')

digit++;

elseif(ch=='')

space++;

else

other++;

}

printf("%d,%d,%d,%d",letter,digit,space,other);}

五、程序设计题

 

 

 

5.打印图案。

(选做)

voidmain()

{inti,j,k;

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

for(j=0;j<=2-i;j++)printf("");

for(k=0;k<=2*i;k++)printf("*");

printf("\n");

}

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

for(j=0;j<=i;j++)printf("");

for(k=0;k<=4-2*i;k++)printf("*");

printf("\n");}

}

6.输入两个正整数m和n,用辗转相除法求最大公约数和最小公倍数。

(选做)

voidmain()

{inta,b,m,n,temp;

printf("Pleaseinputthetwonumber:

\n");

scanf("%d,%d",&m,&n);

if(m

{temp=m;m=n;n=temp;}

a=m;b=n;

while(b!

=0)/*a中放的是最大公约数*/

{temp=a%b;a=b;b=temp;}

printf("最大公约数是:

%d\n",a);

printf("最小公倍数是:

%d\n",m*n/a);

}

 

7.键盘输入若干个数,直至输入0为止,输出偶数及其个数。

voidmain()

{intx;intcount=0;

scanf(“%d”,&x);

while(x!

=0){

if(x%2==0){

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

count++;}

scanf(“%d”,&x);

}

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

}

 

7.设计具有以下功能的程序:

从键盘上输入若干个非负整数,统计并输出最大数和最小数,当输入负数时结束输入。

(自己完成,并上机验证)

#include

voidmain()

{

inti,j,max=0,min=0;

do{

scanf("%d",&i);

if(max

if(min>i)

min=i;

}while(i>=0);

printf("%d%d\n",max,min);

}

 

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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