C语言期末复习资料重要.docx

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

C语言期末复习资料重要.docx

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

C语言期末复习资料重要.docx

C语言期末复习资料重要

(注:

本文档参考答案中“↙”代表回车换行,“□”代表空格,程序代码中省略了#include

注意函数这一章节太多不懂的了和文件太多概念不懂

一、基础知识和顺序结构

(一)选择题

1.以下不正确的C语言标识符是

A.ABC

B.abc

C.a_bc

D.ab.c

2.以下正确的C语言标识符是

A.%x

B.a+b

C.a123

D.test!

3.一个C语言程序的执行是从。

A.main()函数开始,直到main()函数结束

B.第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束

D.main()函数开始,直到最后一函数结束

4.在C语言程序中,main函数的位置。

A.必须作为第一个函数

B.必须作为最后一个函数

C.任意

D.必须放在它所调用的函数之后

5.一个C语言程序是由。

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

B.一个或多个函数组成

C.若干过程组成

D.若干子程序组成

6.下列四个叙述中,错误的是_______________。

A.一个C源程序必须有且只能有一个主函数

B.一个C源程序可以含零个或多个子函数

C.在C源程序中注释说明必须位于语句之后

D.C源程序的基本结构是函数

7.编辑程序的功能是。

A.建立并修改程序

B.将C源程序编译成目标程序

C.调试程序

D.命令计算机执行指定的操作

8.C编译程序是。

A.C语言程序的机器语言版本

B.一组机器语言指令

C.将C源程序编译成目标程序的程序

D.由制造厂家提供的一套应用软件

9.以下叙述不正确的是____________。

A.分号是C语句的必要组成部分

B.C程序的注释可以写在语句的后面

C.函数是C程序的基本单位

D.主函数的名字不一定用main表示

10.C语言中允许的基本数据类型包括_______。

A.整型、实型、逻辑型

B.整型、实型、字符型

C.整型、字符型、逻辑型

D.整型、实型、逻辑型、字符型

11.C语言中能用八进制表示的数据类型为________。

A.字符型、整型

B.整形、实型

C.字符型、实型、双精度型

D.字符型、整型、实型、双精度型

12.下列属于C语言合法的字符常数是___________。

A.’\97’

B.”A”

C.’\t’

D.”\0”

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

A.7

B.8

C.6

D.2

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

A./

B.++

C.!

=

D.%

15.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为

A.0-255

B.1-32767

C.0-65535

D.0-2147483647

16.下面不正确的字符串常量是:

A.'abc'

B."12'12"

C."0"

D.""

17.表达式18/4*sqrt(4.0)/8值的数据类型是:

A.int

B.float

C.double

D.不确定

18.若有以下定义:

chara;intb;

floatc;doubled;

则表达式a*b+d-c值的类型为:

A.float

B.int

C.char

D.Double

19.不属于字符型常量的是

A.'A'

B."B"

C.'\n'

D.'\x72'

20.在C语言中,合法的长整型常数是____________。

A.0L

B.4962710

C.0412765?

为什么不行

D.0xa34b7fe

21.若有以下定义语句charc1=’b’,c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是__________。

A.2,M

B.3,E大小写转化

C.2,E

D.输出项与相应的格式控制不一致,输出结果不确定

22.设charch;以下正确的赋值语句是:

A.ch='123';一个字符

B.ch='\xff';

C.ch='\08';不会有8

D.ch="\";

23.若t为double类型,表达式t=1,t+5,t++的值是

A.1

B.6.0

C.2.0

D.1.0

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

A.0,0

B.0,1

C.1,0执行0后就不执行了

D.1,1

25.若a=1,b=2,c=3,d=4,则条件表达式a

a:

a

c:

d的值为

A.1

B.2

C.3

D.4

26.设a=2,则执行b=a==!

a;语句后,b的结果是

A.0非真及假

B.1

C.2

D.3

27.设有以下语句,则c的二进制值是

chara=3,b=6,c;解:

a=00000011,b=00000110

c=a^b<<2;a^b=00000101c=00010100

A.00011011

B.00010100位移或再换位移两位

C.00011100

a)00011000

28.设x和y均为int型变量,则以下语句:

x+=y;y=x-y;x-=y;的功能是D

A.把x和y按从大到小排列

B.把x和y按从小到大排列

C.无确定结果

D.交换x和y中的值

(二)填空题

1.C语言中的标识符只能由三种字符组成,它们是字母 、数字、下划线。

2.一个C语言程序有且仅有一个_main_函数。

3.结构化设计中的三种基本结构是顺序,分支,循环。

4.C语言程序的执行是从__main函数__开始执行的。

5.C语言源程序文件后缀是_c或cpp_,经编译后生成文件的后缀是_obj__。

经链接后生成文件的后缀是_exe__。

6.C语言源程序的语句分隔符是__;__。

7.若a是int型变量,且a的初值为6,则执行下面表达式后a的值为-60。

a+=a-=a*a解:

a=a-36=-30a=a+(-30)注意分步

8.‘\72’在内存中占1个字节,”\72”在内存中占2个字节。

字符和字符串的区别

9.若有以下定义语句:

inta=5;printf(“%d\n”,a++);则输出结果是___5__。

后自加

10.C语言中的基本数据类型分为整型、实型和字符型。

11.C语言的实型可分为float型和double型。

12.若有以下定义语句:

intu=010,v=0x10,w=10;printf(“%d,%d,%d\n”,u,v,w);则输出结果是_8,16,10_。

区分各个进制

13.下面程序的输出是_k=11,k=13,k=b__。

main()

{intk=11;

printf("k=%d,k=%o,k=%x\n",k,k,k);}

14.若有以下定义语句:

inta=5;printf(“%d\n”,a++);则输出结果是_____5_____。

15.设x为int型变量,执行以下语句,x=10;x+=x-=x-x;x的值为__20___。

16.若有定义inta=10,b=9,c=8;接着顺序执行下列语句后,变量b的值为___3____。

c=(a-=b-5);

c=(a%11)+(b=3);

17.设有以下定义,并以赋予了确定的值:

charw;intx;floaty;doublez;则表达式w*x+z-y所求得值的数据类型为___double_____。

18.设x和y均为int型变量,且x=10和y=3则以下语句的输出结果是__10,2_______。

Printf(“%d,%d\n”,x++,--y);注意格式

19.下列程序的输出结果是__2,1___。

main()

{inta=1,b=2;

a+=b;b=a-b;a-=b;

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

20.以下程序执行结果是:

2,1

main()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

21.以下程序执行结果是:

3.14159,3.1416,3.142

main()

{floatf=3.1415927;

printf("%5f,%5.4f,%3.3f",f,f,f);}

22.以下程序输入123↙后的执行结果是:

a=1,b=2,c=3

main()

{inta,c;

charb;

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

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

23.以下程序输入123456后的执行结果是:

a=12,b=345

main()

{inta,b;

scanf("%2d%3d",&a,&b);

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

24.以下程序输入ABC后的执行结果是:

c=A

main()

{charc;

scanf("%3c",&c);

printf("c=%c\n",c);}

二、分支结构

(一)选择题

1.选择合法的条件语句(设intx,a,b,c;)()。

A.if(a=b)++x;

B.if(a=

C.if(a<>b)++x;

D.if(a>=b)++x;?

2.执行下列程序,输入为1的输出结果是(A),输入为4的输出结果是(C),输入为3的输出结果是(D)。

main()

{intk;

scanf("%d",&k);

switch(k)

{case1:

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

case2:

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

break;

case3:

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

break;

case4:

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

case5:

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

break;

default:

printf("Full!

\n");}}

A.1↙2

B.1

C.4↙5

D.3

(二)填空题

1.下列程序运行后输出结果是__end___。

main()

{inta,b,c;

a=2;b=3;c=1;

if(a>b)

if(a>c)

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

else

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

printf("end\n");}

2.以下程序执行结果是__d=1_____。

main()

{inta,b,c,d,x;

a=b=c=0;

d=1;

if(a)d=d-10;

elseif(!

b)

if(!

c)x=6;

elsex=7;

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

3.若从键盘输入m,下列程序执行结果是___M____。

main()

{charc;

printf("Enteracharacter:

");

scanf("%c",&c);

if('a'<=c&&c<='z')

c=c-32;

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

4.若上题中,从键盘输入B,程序执行结果是___B____。

5.若从键盘输入7,10,1,3,则下列程序执行结果是a=7,b=10,c=1,d=3↙

13710。

main()

{inta,b,c,d,t;

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

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

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(a>d)

{t=a;a=d;d=t;}

if(b>c)

{t=b;b=c;c=t;}

if(b>d)

{t=b;b=d;d=t;}

if(c>d)

{t=c;c=d;d=t;}

printf("\n%d%d%d%d\n",a,b,c,d);}按从大到小的顺序排列

6.以下程序的执行结果是__first↙third_。

main()

{intx=1,y=0;

switch(x)

{case1:

switch(y)

{case0:

printf("first\n");break;

case1:

printf("second\n");break;}

case2:

printf("third\n");}}

7.执行以下程序,输入-10的结果是__x=0_,输入5的结果是_x=5_,输入10的结果是_x=10__,输入30的结果是__x=5_。

main()

{inta,b;

floatx;

scanf("%d",&a);

if(a<0)b=-1;

elseb=a/10;

switch(b)

{case-1:

x=0;break;

case0:

x=a;break;

case1:

x=10;break;

case2:

case3:

x=-0.5*a+20;break;

default:

x=-2;}

if(x!

=-2)printf("x=%g\n",x);

elseprintf("error!

\n");}

三、循环结构

(一)选择题

1.若i,j已定义为int型,则以下程序段中内循环体的执行次数是()。

for(i=5;i;i--)

for(j=0;j<4;j++){……}

A.20

B.24

C.25

D.30

2.若i,j已定义为int型,则以下for循环是()。

for(i=0,j=0;(j!

=123)&&(i<4);i++);

A.无限循环

B.循环次数不定

C.执行4次0123且

D.执行3次

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

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

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

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

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

4.执行下列程序段后,x值是(A),i值是(C)。

inti,x;

for(i=1,x=1;i<=20;i++)

{if(x>=10)

break;

if(x%2==1)

{

x+=5;

continue;

}

x-=3;

}

A.10X=13579再跳出循环+1=10

B.7

C.6I=123456

D.14

5.下列程序的执行结果是()。

#include

main()

{ints=0,k;

for(k=7;k>=0;k--)

{switch(k)

{case1:

case4:

case7:

s++;

break;

case2:

case3:

case6:

break;

case0:

case5:

s+=2;

break;}}

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

A.s=4

B.s=7

C.s=3

D.s=5

6.下列程序段执行结果是输出()。

x=3;

do

{

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

}while(!

x);

A.0

B.3

C.321

D.210

(二)填空题

1.C语言while和do…while循环的主要区别是前者先判后做,后者先做后判。

2.以下程序输出结果是1↙2↙3。

main()

{intnum=0;

while(num<=2)

{num++;

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

3.下列程序运行输出结果是1

22

333

4444

55555

666666

main()

{inti,j,k;

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

{for(j=1;j<=20-2*i;j++)

printf("");

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

printf("%4d",i);

printf("\n");}}

4.下列程序执行结果是237↙273。

main()

{inti=2,j,k;

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

for(k=0;k<=9;k++)

if(i*j*k==42&&i+j+k==12)

printf("%d%d%d\n",i,j,k);}

5.下列程序执行时,若从键盘输入124cmknp03↙,结果是d=5s=1a=5。

main()

{charc;

intd,s,a;

d=s=a=0;

c=getchar();

while(c!

='\n')

{if(c<='9'&&c>='0')

d=d+1;

if(c=='')

s=s+1;

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

a=a+1;

c=getchar();}

printf("d=%ds=%da=%d\n",d,s,a);}

6.下列程序执行结果是72。

main()

{inti,j,k,s=0;

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

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

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

s=s+i+j+k;

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

7.下列程序执行结果是01↙24↙69↙1216↙1719↙2124↙2731↙3540↙4245↙4852↙5661↙6672(↙代表回车换行)。

main()

{inti,j,k,s=0;

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

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

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

{s=s+i+j+k;

printf("%d",s);}

printf("\n");}}

8.下列程序执行结果是*

**

***。

main()

{inti;

charj='*';

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

switch(i)

{case1:

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

break;

case2:

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

break;

case3:

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

break;}}

9.执行下列程序,若由键盘输入4,程序执行结果是47910。

main()

{ints=0,i;

scanf("%d",&i);

do

{if(i==0)

break;

else

{s=s+i;

printf("%d\t",s);}

}while(--i);}

四、数组

(一)选择题

1.以下关于数组的描述正确的是()。

A.数组的大小是固定的,但可以有不同类型的数组元素

B.数组的大小是可变的,但所有数组元素的类型必须相同

C.数组的大小是固定的,所有数组元素的类型必须相同

D.数组的大小是可变的,可以有不同类型的数组元素

2.下面一维数组a正确定义是()。

A.inta(10);

B.intn=10,a[n];

C.intn;

scanf(‘%d”,&n);

inta[n];

D.#defineSIZE10

inta[SIZE];

3.若定义inta[10];则对a数组元素的正确引用是()。

A.a[10]

B.a[4.3]

C.a(5)

D.a[6-6]

4.以下对一维数组进行正确初始化的语句是()。

A.inta[3]=(0,1};

B.inta[3]={};

C.inta[]=[0];

D.inta[3]={3*2};

5.下列程序:

#defineN6

main()

{chara[N];

inti=0;

for(;i

for(i=0;i

运行时输入以下三行字符,每行输入都是在该行首列开始:

a↙

b↙

cdef↙

程序输出结果是()

A.abcdef

B.a↙b↙c↙d

C.a↙b↙cd

D.a↙b↙cdef

6.运行下列程序的输出结果是()。

main()

{inta=5;

floatx=67.846;

staticchard[10]="abc";

printf("%4d,%4.1f,%c",a,x,d[2]);}

A.□□□□5,□□67.8,□□c

B.□□□5,67.8,c

C.□□5,□□67.8,□□b

D.□□□5,67.8,b

7.若定义inta[3][2];则printf(“%d”,a[1][0]);语句输出的是第()个元素。

A.1

B.3

C.4

D.5

8.当输出含空格的字符串时,应使用()函数。

A.printf()

B.puts()

C.putchar()

D.putc()

9.在执行charstr[10]=”ch\nina”;strlen(str)的结果是()。

A.5

B.6\n

C.7

D.9

10.10.当接收用户键入的含空格的字符串时,应使用()函数。

A.scanf()

B.gets()

C.getchar()

D.getc()

(二)填空题

1.C语言数组元素的下标必须是正整数、0或者整型表达式。

2.C语言数组元素的下标下限为0。

3.C语言的数组名是一个地址

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

当前位置:首页 > 小学教育 > 语文

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

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