C复习资料.docx

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

C复习资料.docx

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

C复习资料.docx

C复习资料

C复习资料:

 

1、下列叙述中错误的是(A)。

 A.一个C语言程序只能实现一种算法

B.C程序可以由多个程序文件组成

 C.C程序可以由一个或多个函数组成

D.一个C函数可以单独作为一个C程序文件存在

2、以下叙述中正确的是(C)。

A.C程序的基本组成单位是语句

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

C.简单C语句必须以分号结束

D.C语句必须在一行内写完

3、以下叙述中正确的是(C)。

A.C程序中的注释只能出现在程序的开始位置和语句的后面

B.C程序书写格式严格,要求一行内只能写一个语句

C.C程序书写格式自由,一个语句可以写在多行上

D.用C语言编写的程序只能放在一个程序文件中

4、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)。

  A.大写字母 B.连接符 

C.数字字符 D.下划线

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

 A.int_int; B.doubleint_; 

C.charFor; D.floatUSS

6、以下选项中不能作为C语言合法常量的是(A)。

A.´cd´B。

0.1c+6

C.〞\a〞D.´\011´

7、以下选项中不属于字符常量的是(B)。

A.'C'B."C"C.'\xCC0'D.'\072'

8、下列常量哪个是不合法的(B)。

A.0x4d00B.‘BASIC’

C.’\\’D.“/045”

9、以下4组用户定义标识符中,全部合法的一组是(A)。

A._main       B.If         C.txt                D.int

enclude     -max           REAL                k_2

sin         turbo        3COM               _001

10、以下选项中不属于字符常量的是(B)。

A.'C'B."C"C.'\xCC'D.'\072'

11、下列变量名中哪个是不合法(C)。

A.Turbo_CB.vcC.intD._2ab

12、设变量已正确定义并赋值,以下正确的表达式是(B)。

A.b=3++B.x=2,++y

C.a=14%3.3D.x=y+3=2

13、以下定义语句中正确的是(D)。

A.inta=b=0;B.charA=65+1,b='b';

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0,b=1.1;

14、以下选项中正确的定义语句是(C)。

A.doublea;b;B.doublea=b=7

C.doublea=7,b=7;D.double,a,b;

15、以下不能正确表示代数式2ab/cd的C语言表达式是(D)。

A.2*a*b/c/dB.a*b/c/d*2

C.a/c/d*b*2D.2*a*b/c*d

16、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是(A)。

 A.++x,y=x-- B.x+1=y 

C.x=x+10=x+y D.double(x)/10

17、以下关于逻辑运算符两侧运算对象的叙述中正确的是(D)。

 A.只能是整数0或1 

B.只能是整数0或非0的整数

 C.可以是结构体类型的数据 

D.可是任意合法的表达式

18、若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?

(x++):

(y++)中的条件表达式(x-y)等价的是(C)。

 A.(x-y>0) B.(x-y<0) 

C.(x-y<║x-y>0) D.(x-y==0)

19、设有定义:

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

 A.k++ B.k+=1 C.++k D.k+1

20、若以下选项中的变量已正确定义,则正确的赋值语句是(C)。

A.x1=26.8%3  B.1+2=x2 

C.x3=0x12 D.x4=1+2=3;

21、执行以下程序段后,w的值为(C)。

intw=´A´,x=14,y=15;

w=((x||y)&&(w<´a´));

A.-1B.NULLC.1D.0

22、当变量c的值不为2、4、6时,值也为“真”的表达式是(B)。

A.(c==2)‖(c==4)‖(c==6)

B.(c>=2&&c<=6)‖(c!

=3)‖(c!

=5)

C.(c>=2&&c<=6)&&!

(c%2)

D.(c>=2&&c<=6)&&(c%2!

=1)

23、 设有以下定义

int   a=0;  

double  b=1.25;

char c=’A’;

#define   d   2

则下面语句中错误的是(D)。

A.a++;  B.b++  C.c++;  D.d++;

24、若有以下函数首部

 intfun(doublex[10],int*n)则下面针对此函数声母语句中正确的是(B)。

A.intfun(doublex,int*n); 

B.intfun(double,int);

C.intfun(double*x,intn); 

D.intfun(double*,int*);

25、若程序中定义了以下函数

    double  myadd(double a,double b)

 { return (a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是(A)。

A.double myadd(double a,b);          

B.double myadd(double,double);

C.double myadd(double b,double a);    

D.double myadd(double x,double y);

26、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(C)。

 

A.abs(x-y)<10 B.x-y>-10&& x-y<10

C.(x-y)<-10||!

(y-x)>10 D.(x-y)*(x-y)<100 

27、已知intx=10,y=20,z=30;if(x>y)z=x;x=y;y=z;执行后x,y,z的值是(B)。

A.x=10,y=20,z=30B.x=20,y=30,z=30

C.x=20,y=30,z=10D.x=20,y=30,z=20

28、对for(表达式1;;表达式3)可理解为(B)。

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

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

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

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

29、以下叙述中正确的是(C)。

 A.break语句只能用于switch语句体中

 B.continue语句的作用是:

使程序的执行流程跳出包含它的所有循环

 C.break语句只能用在循环体内和switch语句体内

 D.在循环体内使用break语句和continue语句的作用相同

30、下列叙述中正确的是(D)。

 A.break语句只能用于switch语句

 B.在switch语句中必须使用default

 C.break语句必须与switch语句中的case配对使用

 D.在switch语句中,不一定使用break语句

31、在嵌套使用if语句时,C语言规定else总是(C)。

A.和之前与其具有相同缩进位置的if配对

B.和之前与其最近的if配对

C.和之前与其最近的且不带else的if配对

D.和之前的第一个if配对

32、若i为整型变量,则以下循环执行次数是(B)。

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

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

33、以下能正确计算1×2×3×...×10的程序段是(C)。

A.do{i=1;s=1;B.do{i=1;s=0;

s=s*i;s=s*i;

i++;i++;

}while(i<=10);}while(i<=10);

C.i=1;s=1;D.i=1;s=0;

do{s=s*i;do{s=s*i;

i++;i++;

}while(i<=10);}while(i<=10);

34、若有宏定义:

#definef(x)x*x,则表达式f(3+3)/f(3+3)的值为(B)。

A.1B.25C.3D.4

35、下面的函数调用语句中func函数的实参个数是(A)。

func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));

A.3B.4C.5D.8

36、以下叙述中错误的是(B)。

A.用户自定义的函数中可以没有return语句

B.用户自定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

C.用户自定义的函数中若没有return语句,则应当定义函数为void类型

D.函数的return语句中可以没有表达式

37、以下关于宏的叙述中正确的是(C)。

A.宏名必须用大写字母表示

B.宏定义必须位于源程序中所有语句之前

C.宏替换没有数据类型限制

D.宏调用比函数调用耗费时间

38、以下能正确定义一维数组的选项是(B)。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

39、若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是(D)。

A.#defineN10Inta[N] 

B.#definen5Inta[2*n]

C.inta[5+5] 

D.intn=10,a[n]

40、以下能正确定义二维数组的是(C)。

A.int a[][3]; B.int a[][3]=2{2*3};

C.int a[2][3]={0}; 

D.int a[2][3]={{1},{2},{3,4}}; 

41、若有以下定义语句:

intm[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是(C)。

A.m[i]B.m[2*2]C.m[m[0]]D.m[m[i]]

42、若有定义语句:

doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是(B)。

A.*pB.x[5]C.*(p+1)D.*x

43、若有定义语句:

chars[10]=〞1234567\0\0〞;,则strlen(s)的值是(A)

A.7B.8C.9D.10

44、有说明inta[][3]={1,2,3,4,5,6,7,8,9,10};则数组a的第一维的大小是(C)。

A.1B.3C.4D.不能确定

45、若有定义:

inta[2][3];,以下选项中对a数组元素正确引用的是(D)。

A.a[2][!

1]B.a[2][3]

C.a[0][3]D.a[1>2][!

1]

46、以下叙述中错误的是(D)。

A.在程序中凡是以“#”开始的语句行都是预处理命令行

B.预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

D.C程序对预处理命令行的处理是在程序执行的过程中进行的

47、设有定义语句int(*f)(int);,则以下叙述正确的是(B)。

A.f是基类型为int的指针变量

B.f是指向函数的指针变量,该函数具有一个int类型的形参

C.f是指向int类型一维数组的指针变量

D.f是函数名,该函数的返回值是基类型为int类型的地址

48、判断字符串s1是否大于字符串s2,应当使用(D)。

A.if(s1>s2)B.if(strcmp(s1,s2))

C.if(strcmp(s2,s1)>0)

D.if(strcmp(s1,s2)>0)

49、判断字符串a和b是否相等,应当使用(C)。

A.if(a==b) B.if(a=b)

C.if(strcmp(a,b)) D.if(strcpy(a,b)) 

50、设已有定义:

floatx;则以下对指针变量p进行定义且赋初值的语句中正确的是(D)。

A.float*p=1024;  B.int*p=(floatx);

C.floatp=&x;   D.float*P=&x;

51、若已有说明float*p,m=3.14;要让p指向m,则正确的赋值语句是(B)。

A.p=m;B.p=&m;

C.*p=m;D.*p=&m;

52、若有定义:

int*p[4];则标识符p(B)。

A.是一个指向整型变量的指针

B.是一个指针数组名

C.是一个指针,它指向一个含有四个元素的一维数组D.说明不合法

53、定义结构如下:

structstu

{longsno;

charname[10];

inta;

floatb;};

则sizeof(structstu)的值为(B)。

A.4B.20C.22D.24

54、以下对结构变量stu1中成员age的非法引用是(B)。

structstudent

{intage;

intnum;

}stu1,*p;p=&stu1;

A.stu1.ageB.p.age

C.p->ageD.(*p).age

55、在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(A)。

A.auto和registerB.extern和registerC.auto和staticD.static和register

56、设有定义语句:

charc1=32,c2=32;则以下表达式中值为零的是(A)。

A.c1^c2  B.c1&c2 

C.~c2D.c1|c2

57、C语言中可以处理的文件类型是(B)。

A.文本文件和数据文件

B.文本文件和二进制文件

C.数据文件和二进制文件

D.任何类型文件

58、若要以写的方式创建新打开文本文件,则在fopen函数中使用的打开方式是(A)。

A."w"B."rb"C."rb+"D."w+"

59、若有定义:

 int a=1,b=2,c=3;则表达式 (a

b:

a)>c?

c:

(a

b:

a)的值为(C)。

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

60、若有定义:

 int a,b;则表达式(a=3,b=3,b+=a+=3)的值是(C)。

A.3B.6 C.9D.12

二、阅读程序题,写出运行结果。

1、main()

{inta=2;

if(a>0)

a-=2;

else

if(a==0)

a-=2;

else

a+=10;

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

}

______0____。

2、main()

{intx=6,y=2;

if(x>5)

if(x>0)

printf("%d",x++);

else

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

printf("%d",x);

}

________6__。

3、#include

main()

{intx=1,y=2,z=3;

if(x>y)

if(y>z)printf(〞%d〞,++z);

elseprintf(〞%d〞,++y);

printf(〞%d\n〞,x++);

}

________1___。

4、main()

{intx,y,z;

x=y=z=0;

++x&&++y||++z;

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

}

______110___________。

5、main()

{intx=2;

switch(x==2)

{case1:

printf("*");break;

case2:

printf("%");break;

}

}

______*___________。

6、有以下程序

#include

main()

{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\n”,a,b);

}

_____a=2,b=1___________。

7、main()

{inti;

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

    switch(i)

    {case0:

printf(“%d”,i++);

      case1:

printf(“%d”,++i);

      default:

printf(“%d”,i);

   }

}

____022222_______。

8、main()

{intk=3,n=0;

do

{switch(k)

{case1:

n+=1;break;

case2:

n+=2;k--;break;

default:

n=0;k--;

}

printf("%d",n);

}while(k>0&&n<3);

}

______023______________。

10、 main()

 {inti;

 for(I=1;I<=40;I++)

 {if(I++%5=0)

 if(++I%8=0)printf("%d",i)

 }

 printf("\n")

 }

______32____________。

11、main()

{inti=1,s=3;

while(s<15)

{s+=i++;

if(s%7==0)

continue;

else

i++;

}

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

}

__8______________。

12、#include

main()

{intx=8;

for(;x>0;x--)

{if(x%3){printf(“%d,”,x--);

continue;}

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

}

}

8,5,4,2。

13、main()

{int i,j;

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

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

printf("%d*%d=%d ",i,j,i*j);

        printf("\n");

    }

}

_1*1=11*2=22*2=4。

14、main()(没改)

{inti,j;

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

{for(j=1;j<=3;j++)

printf("%d",i+j);

printf("\n");

}234

}345

_456_________。

15、main()

{

intaa[3][3]={{1,2,3},{1,2,3},{1,2,3}};

inti,k=0,s=0;

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

{s+=aa[i][k];

++k;

}

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

}

______6_。

16、fun(inta,intb)

{return(a

a:

b);

}

main()

{intx=5,y=7,z=6,r;

r=fun(z,fun(x,y));

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

}

________5______。

17、intx;

voidplusone()

{x++;}

main()

{x=1;

plusone();

plusone();

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

}

x=3。

18、intf()

{intsum=0;

staticintx=1;

returnsum+=x++;

}

main()

{inti;

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

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

}

123。

19、fun(intx,inty)

  {staticintm=0,I=2;

  I+=m+1;m=I+x+y;returnm;

 }

 main()

 {intj=1,m=1,k;

 k=fun(j,m);printf("%d",k);

 k=fun(j,m);printf("%d\n",k)

 }

5,11。

 20、#include

intf(intx)

{inty;

if(x==0||x==1)return(3);

y=x*x-f(x-2);

returny;

}

main()

{intz;

z=f(3);printf(“%d\n”,z);

}

______6___________。

21、intfun(intx)

{if(x>0)

returnx+fun(x-1);

return1;

}

main()

{printf("%d\n",fun(5));}

_______15_____。

22、#include

voidrecur(intx);

voidmain()

{recur(3);

}

voidrecur(intn)

{if(n<=0)

return;

printf("%d",n);

recur(n-1);

printf("%d",n);

}

_______321123________。

24、#include

intfun(inta,intb)

{if(b==0)returna;

elsereturn(fun(-a,-b));

}

main()

{printf(〞%d\n〞,fun(4,2));

}

2。

25、main()

{inta[4]={1,2,3,4};inti;

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

a[i]+=i;

for(i=3;i>=0;i--)

printf("%d",a[i]

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

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

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

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