C语言复习题.docx

上传人:b****1 文档编号:1962028 上传时间:2023-05-02 格式:DOCX 页数:85 大小:56.32KB
下载 相关 举报
C语言复习题.docx_第1页
第1页 / 共85页
C语言复习题.docx_第2页
第2页 / 共85页
C语言复习题.docx_第3页
第3页 / 共85页
C语言复习题.docx_第4页
第4页 / 共85页
C语言复习题.docx_第5页
第5页 / 共85页
C语言复习题.docx_第6页
第6页 / 共85页
C语言复习题.docx_第7页
第7页 / 共85页
C语言复习题.docx_第8页
第8页 / 共85页
C语言复习题.docx_第9页
第9页 / 共85页
C语言复习题.docx_第10页
第10页 / 共85页
C语言复习题.docx_第11页
第11页 / 共85页
C语言复习题.docx_第12页
第12页 / 共85页
C语言复习题.docx_第13页
第13页 / 共85页
C语言复习题.docx_第14页
第14页 / 共85页
C语言复习题.docx_第15页
第15页 / 共85页
C语言复习题.docx_第16页
第16页 / 共85页
C语言复习题.docx_第17页
第17页 / 共85页
C语言复习题.docx_第18页
第18页 / 共85页
C语言复习题.docx_第19页
第19页 / 共85页
C语言复习题.docx_第20页
第20页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言复习题.docx

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

C语言复习题.docx

C语言复习题

《C语言程序设计》

第一、二章C程序与算法

单项选择题

1.将汇编语言编写的程序翻译成目标程序的程序是(C)。

A)解释B)编译C)汇编D)目标

2.不属于面向机器语言的是(D)。

A)符号语言B)二进制语言C)汇编语言D)C语言

3.将高级语言编写的程序翻译成目标程序的程序是(B)。

A)解释B)编译C)汇编D)二进制

4.不属于高级语言的是(D)。

A)BASICB)CC)ALGOLD)符号语言

5.程序段的基本结构中,不包含(A)。

A)函数结构B)循环结构C)顺序结构D)分支结构

6、C语言源程序的最小单位是(D)。

A、程序行B、语句C、函数D、字符

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

A、在C语言中,要调用的函数必须在main()函数中定义

B、C语言程序总是从第一个定义的函数开始执行

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

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

8、以下对C语言描述中正确的是(C)。

A、C语言源程序中可以有重名的函数

B、C语言源程序中要求每行只能书写一条语句

C、C语言源程序中,注释可以出现在任何位置

D、最小的C源程序中没有任何内容

9、对C语言源程序执行过程描述正确的是(A)2。

A、从main()函数开始执行,到main()函数结束

B、从程序的第一个函数开始执行,到最后一个函数结束

C、从main函数开始执行,到源程序的最后一个函数结束

D、从第一个函数开始执行,到main函数结束。

填空题

1.能完成某个任务的、有始有终的C语言语句序列称为C程序。

2.用来编写程序的计算机语言称为程序设计语言。

3.高级语言编写的程序称为源程序。

4.用C语言编写的源程序简称为“C程序”,扩展名规定为“C”。

5.C程序经过“编译”后将获得扩展名为“OBJ”的中间代码文件(目标文件)。

6.C程序经过编译后获得的中间代码文件还需要经过连接,才能成为可执行的“程序”,目标程序的扩展名规定为"EXE"。

7、ANSIC标准中共规定了32个关键字,9条控制语句。

8、一个执行的C语言源程序至少应包含一个主函数。

9.选择结构是按某种条件选择某个操作来执行的—种程序结构。

10.选择结构可以分为单分支结构、双分支结构和多分支结构。

11.循环结构又可分为当型循环、直到型循环及次数型循环。

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

单项选择题

1.以下程序的输出结果是A。

main()

{inta=10,b=10;

printf("%d,%d",a--,++b);}

A)10,11B)10,10C)9,9D)9,11

2.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是D

A)'a'&&'b'B)a<=b

C)a||b+c&&b-cD)!

((a

c||1)

3.设ch是char型变量,其值为'a',且有下面的表达式:

B

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

(ch-32):

ch

上面表达式的值是

A)'a'B)'A'C)'Z'D)'z'

4.下面程序的输出是C

main()

{inta=-1,b=4,k;

k=(a++<=0)&&(!

(b--<=0));

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

A)003B)012C)103D)112

5.字符串“\t\n\\\045\’”的长度为C。

A)4B)10C)5D)说明不合法

6.C语言中最基本的数据类型包括C。

A)整型,实型,逻辑型B)整型,实型,布尔型C)整型,实型,字符型D)整型,实型,指针型

7.C浯言中的构造类型包括A。

A)数组型,结构体型,联合体型B)结构体型,联合体型,指针型

C)结构体型,联合体型,枚举类型D)数组型,结构体型,联合体型,指针型

8.设C语言中,一个int型数据在内存中占用两个字节,则int型数据的取值范围为:

B

A)-128~127B)-32768~32767C)0~65536D)0~2147483647

9.若a是float型变量,则表达式a=l,a++,a+=a的值为D。

A)2B)4C)2.0D)4.0

10.以下运算符中,运算优先级最低的是D。

A)->B)++C)*D)=

11.不属于字符型常量的是B。

A)'A'B)"A"C)'\\'D)'\"'

12.不属于整型常量的是D

A)10B)010C)0xl0D)4/2

13.属于实型常量的是D

A)E10B)10C)10LD)1E10

14.'\060'和"\060"在内存中占用的字节数分别为C。

A)22B)21C)12D)44

15.设有以下程序片段,请问执行后的输出结果是A

inti=010,j=10,k=0xl0;printf("%d,%d,%d",k,j,i);

A)16,10,8B)81016C)10,10,10D)8,10,16

16.设整型变量a的值为5,使整型变量b的值不为2的表达式是C。

A)b=a/2B)b=6-(--a)C)b=a%2D)b=a>3?

2:

1

17.设单精度变量f,g的值均为5.0,则下面的表达式中,使f为10.0的表达式是A。

A)f+=gB)f-=g+5C)f*=g-5D)f/=g*5

18.表达式-l?

(10?

10:

1):

(0?

0:

-1)的值为A

A)10B)1C)0D)-1

19.sizeof(double)的值为D

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

20.sizeof(float)是C。

A)一种函数调用B)—个单精度表达式C)—个整型表达式D)—个不合法的表达式

21.设有以下的程序片段,请问执行后变量i的值是D。

inti;floatf=10.5;i=((int)f)/2;

A)5.0B)5.5C)6D)5

22.以下程序的输出结果是A

#include

main()

{intk=4,m=1,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%d\n",p);}

func(a,b)

inta,b;

{staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}

A)8,17B)8,16C)8,20D)8,8

填空题

1.数学式sin

x*(a+b)/(a-b)写成C语言表达式是sin(x)*sin(x)*(a+b)/(a-b)。

2.若已知a=1,b=2,则表达式!

a

3.C语言的常量可以分为整型常量,实型常量,字符常量,字符串常量,符号常量和枚举常量。

4.C语言的基本数据类型分为整型,实型,字符型,枚举类型。

5.已知字母'A'的ASCII码值为十进制数65,且ch为字符型,则执行语句ch='A'+'6'-'0’后,ch的值为G。

6.设C语言中,一个int型数据在内存中占用两个字节,则unsignedint型数据的取值范围为0~65535。

7.若a是float型变量,且a=6,则表达式a/2+(int)(a+1)%2的值为4.0。

8.假设m是一个三位数,百位、十位、个位的数值分别为a、b、c,则百位、十位、个位的数值分别为c、a、b的数的表达式是(m%10)*100+m/100*10+m%100/10。

第四章顺序程序设计

单项选择题

1.设有整型变量m值为8,下列赋值语句中,正确的是。

A)++m=6;B)m=m++;C)m+1=8;D)m+1+=8;

2.设字符型变量ch的值为'A',整型变量m的值为'1',假定执行ch=getchar();m=getchar();时,从键盘输入B,则变量ch和m的值分别为。

A)'A'和'1'B)'B'和'1'C)'B'和''D)'B'和'\n'

3.设字符型变量ch的值为'A',整型变量m的值为'1',假定执行putchar(m);putchar('');putchar(ch);后,则输出结果是。

A)A1B)lAC)AlD)1A

4.如果用scanf()来输入长整型数据,则正确的格式控制符是。

A)%xB)%lxC)%lDD)%d

5.如果用printf()来输出双精度型数据、则正确的格式控制符是。

A)%-10.2fB)%lfC)%leD)%lg

6.执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是。

A)1B)12C)1,2D)122

7.设整型变量a和b的值分别为8和9。

printf("%d,%d",(a++,++b),b--);的输出是。

A)8,8B)8,7C)9,9D)10,9

8.设有下列程序段,则其正确的输出是。

intx=011,y=0xll;

printf("x=%-3dy=%3d",x,y);

A)口口917口B)x=9口口y=口17C)x=口口9y=17口D)x=lly=x11

9.设字符型变量ch已有值,下列语句中错误的是。

A)scanf("%c%c",ch,ch);B){intch=6;printf("%d",ch);}

C)5;D)ch>48&&ch<0x3A;

10.下列表达式中,结果不为1.0的表达式是。

A)fabs(-1.0)B)powl0(0))C)floor(0.99)D)sin(90*3.14159/180)

11.运行下列程序的输出是。

main()

{intk=1;

{intk=2;printf("%d",k);}

printf("%d",k);}

A)12B)21C)11D)22

12.运行下列程序的输出是。

main()

{charch='B';

printf("%c%d",ch,ch++);}

A)C65B)B65C)B66D)C66

填空题

1.使用"putchar()"函数时,程序的开头必须写一条包含命令:

____。

2.用输入函数scanf()输入长整型十六进制数据时,对应的格式控制符是____.

3.用输入函数scanf()输入双精度实型数据时,对应的格式控制符可以是%lf或____。

4.用输出函数printf()输出双精度实型数据时,对应的格式控制符可以选用%f,%e或____

5.在输出函数printf()中使用了%s格式字符,则输出表达式是____。

6.表达式语句的构成规则是在任何表达式的后面加上一个____。

7.表达式"sound(1200)"的运算结果是____。

8.表达式"random(889)"的运算结果是产生____—个整数。

9.运行下列程序的输出结果是____

#include”math.h”

main()

{floatf1=1.0,f2=-2.0;

printf(“f2=%f,fabs(f2)>f1=%d”,f2+=f1,fabs(f2)>f1);}

10.运行下列程序的输出结果是____

#include”math.h”

main()

{intm=64;

printf(%d,%c,%#o,%#x”,m,m+1,m+2,m+3);

}

第五章选择程序设计

单项选择题

1.已知a,b,c的值分别是1,2,3,则执行下列语句后a,b,c的值分别是

if(a++

elsea=b=c=0;

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

2.以下if语句中格式正确的是

A)if(a>b)b++elsea++;

B)if(a>b){b++;printf("%d",b);}

else{a++;printf("%d",a);}

C)if(a>b){b++;printf("%d",b)}

else{a++;printf("%d",a);}

D)if(a>b)b++;printf("%d",b);

elseprintf("%d",a);

3.若i是int型变量,且有下面的程序片段

i=0;

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

elseprintf("****");

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

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

4.有以下程序:

#include

main()

{intx,y;printf("Enteraninteger(x):

");

scarf("%d",&x);

if(x++<0)y=-1;

elseif(x==0)y=0;elsey=1;printf("%d",y);}

现从键盘上输入-1,则程序的输出是。

A)-1B)0C)1D)不确定的值

5.有以下程序,运行后的输出结果是

main()

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

if(a=b+c)

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

elseif(a==0)a=b=c=0;

elsea=b=c=1;

elsea=b=c=-1;

printf("%d,%d,%d",a,b,c);}

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

6.若执行下面的程序时从键盘上输入10,则输出是

main()

{inta;scanf("%d",&a);

if(a++>10)

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

elseprintf("%d\n",a--);}

A)12B)11C)10D)9

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

#include

main()

{inti=2,p;p=f(i,i+1);

printf("%d",p);}

intf(a,b)

inta,b;

{intc;c=a;

if(a>b)c=1;

else

if(a==b)c=0;elsec=-1;

return(c);}

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

8.有以下程序:

#include

main()

{intal=0,a2=0,a3=0;

charch;

while((ch=getchar())!

='\n')

switch(ch)

{case'A':

a1++;

case'B':

a2++;

default:

a3++;}

printf("%d,%d,%d",a1,a2,a3);}

现从键盘上输入AAAAABBBC<回车>,则程序执行后的输出结果是

A)5,8,9B)5,3,1C)5,3,9D)5,8,1

9.请读程序:

#include

main()

{intx=l,y=0,a=0,b=0;

switch(x)

{casel:

switch(y)

{case0:

a++;break;

case1:

b++;break;}

case2:

a++;b++;break;}

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

上面程序的输出结果是

A)a=2,b=lB)a=l,b=lC)a=l,b=0D)a=2,b=2

10.若要求表示a不等于0的关系,错误的表达式是

A)a<>0B)a!

=0C)aD)a<0||a>0

11.程序的三种基本结构是。

A)顺序结构,循环结构,递归结构B)顺序结构,循环结构,选择结构

C)选择结构,循环结构,递归结构D)顺序结构,选择结构,递归结构

12.C语言中,逻辑真表示为

A)TRUEB)'y'或'Y'C)1D)非零值

13.设有如下程序:

#include

main()

{charch1,ch2;

scanf(“%c%c”,&ch1,&ch2);

if(ch1!

=’B’)

{switch(ch2)

{case’B’:

switch(ch1)

{case’A’:

printf(“AB”)

break;

case’B’:

printf(“BB”);

break;}

case‘A’:

switch(ch1)

{case’A’:

printf(“AA”)

break;

case’B’:

printf(“BA”);

break;

}}}}}

若执行是从键盘上输入的数据时AB,则输出是

A)ABB)ABAAC)ABBBAABAD)BBBA

14.已知a,b,c,w时int型变量,a,b均以赋值,且满足a

scanf(“%d”,&c);

w=a;

if(w<=b)w=b;

if(w<=c)printf(“%d”,w);

elsew=c;

为把c的值放入w中,则执行此程序段时,从键盘输入的c的值不应取的范围是

A)b>cB)c>=bC)c>a且ca或c

15.设a,b,w为整型变量,ch为字符型变量,用if语句改写以下的程序段:

switch(ch)

{case'+':

w=a+b;break;

case'-':

w=a-b;break;

case'*':

w=a*b;break;

case'/':

w=a/b;break;}

在下列写法中,错误的是

A)if(ch=='+')w=a+b;B)if(ch=='*')w=a*b;

if(ch=='-')w=a-b;elseif(ch=='/')w=a/b;

if(ch=='*')w=a*b;if(ch=='+')w=a+b;

if(ch=='/')w=a/b;elseif(ch=='-')w=a-b;

C)if(ch=='+')w=a+b;D)if(ch=='+')w=a+b;

elseif(ch=='-')w=a-b;elseif(ch=='-')w=a-b;

if(ch=='*')w=a*b;if(ch=='*')w=a*b;

elsew=a/b;elseif(ch=='/')w=a/b;

16.实型变量a,b中放有两门课程的考试成绩,如果两门成绩都及格(成绩>=60),则显示“pass”,如果a成绩不及格,则显示"fail",如果a成绩及格而b成绩不及格则不做任何处理。

下列程序段中可实现上述要求的是

A)if(a>=60)B)if(a<60)

if(b>=60)printf(”fail”);

printf("pass");elseif(b>=60)

elseprintf("pass");

printf("fail");

C)if(a>=60)&&(b>=60))D)if(b>=60)

printf("pass");if(a>=60)

elseif(b<60)printf("pass");

printf("fail");elseprintf("fail");

17.下面满足当(a>=b)&&(c==d)时u=w,否则x=y的if语句是

A)if(a

if(c==d)x=y;elseif(c==d)u=w;

elsex=y;elsex=y;

elseu=w;

C)if(a=b)

{if(c==d)x=y;{if(c==d)x=y;

elseu=w;elseu=w;

}}

18.以下程序的输出结果是

#include

main()

{inta=0,b=l,c=0,x=0,y=0;

if(x<=y)

if(y=l0)

if(!

b)a=1;

elseif(c)a=10;

a=-1;

printf("%d",a);}

A)1B)10C)-1D)不确定的值

填空题

1.有以下程序:

main()

{inti;

scanf(“%d”,&i);

swith

(1)

{case1:

printf(“%d”,i++)

case2:

printf(“%d,i++)

case3:

printf(“%d”,i++)

case4:

printf(“%d”,i++)

break;

default:

printf(“END”)}}

输入数据1,执行以上程序,则输出结果是____

2.执行下面程序后输出的结果为____。

main()

{inti=0,j;

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

switch(j)

{case1:

i=i+1;

case2:

i=i+2;

case3:

i=i+3;}

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

3.设有以下程序:

#include

main()

{charch1,ch2;

scanf("%c%c",&ch1,&ch2);

if(ch1!

='B')

{switch(ch2)

{case'B':

switch(ch1)

{case'A':

printf("AB");

case'B':

printf("BB");}

break;

case'A':

switch(ch1)

{case'A':

printf("AA");

case'B':

printf("BA");

}}}

elseprintf("Nothing");}

若执行此程序段时输入的数据是AB,则程序的输出是____。

4.有以下程序:

#include

main()

{intc;

while((c=getchar())!

='\n')

{switch(c-'2')

{case0:

casel:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

default:

putchar(c+2);break;

}}}

若执行时从键盘上输入2473代表回车),则程序的输出结果是____。

5.若x是int型变量,请写出"x是偶数则为真"的表达式

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2