C语言期末复习选择题_第1页
C语言期末复习选择题_第2页
C语言期末复习选择题_第3页
C语言期末复习选择题_第4页
C语言期末复习选择题_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言选择题复习1.在下列C语言源程序的错误中,通常不能在编译时发现的是

A.括号不匹配B.非法标识符C.数组元素下标值越界D.程序结构不完整C

2.在以下各组标识符中,均可以用作变量名的一组是

A.a01,IntB.table_1,a*.1C.0_a,W12D.for,pointA

用户标示符3.若有声明“longa,b;”且变量a和b都需要通过键盘输入获得初值,则下列语句正确的是

A.scanf("%ld%ld,&a,&b");B.scanf("%d%d",a,b);C.scanf("%d%d",&a,&b);D.scanf("%ld%ld",&a,&b);D格式化输入4.若有声明:“charc=256;inta=c;”,则执行该程序段后a的值是

A.256 B.65536 C.0 D.-1C256整数的二进制表示是0000000100000000,转成char会被截断,只保留低8位,也就是0;

5.若在一个C源程序中“e1”和“e3”是表达式,“s”是语句,则下列选项中与语句“for(e1;;e3)s;”功能等同的语句是

A.e1;while(10)s;e3;B.e1;while(10){s;e3;}C.e1;while(10){e3;s;}D.while(10){e1;s;e3;}Bforwhiledo...while6.若有声明“inta[3][4],*p=a[0],(*q)[4]=a;”,则下列叙述中错误的是

A.a[2][3]与q[2][3]等价B.a[2][3]与p[2][3]等价C.a[2][3]与*(p+11)等价D.a[2][3]与p=p+11,*p等价B(*q)[N]:类型为int长度为N 的指针数组7.若有结构类型定义typedefstructtest{intx,y[2];}TEST;则以下声明中正确的是

A.structtestx;B.structx;C.testx;D.structTESTx;A

8.若有声明:

longfun(int*x,intn,long*s);

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

则以下函数调用形式中正确的是

A.c=fun(a,4,b);B.c=fun(a[],4,&b);C.c=fun(a[4],4,b);D.c=fun(a,4,&b);D

函数调用9.若有枚举类型定义:

enumlist1{x1,x2,x3,x4=6,x5,x6};

则枚举常量x2和x6代表的值分别是

A.1,6 B.1,8 C.2,6 D.2,8B

10.已知在函数f中声明了局部变量x,如果希望f函数第一次被调用返回后变量x中存储的数据保持到下次f函数被调用时仍可以使用,则在声明x时必须指定其存储类型为

A.autoB.registerC.staticD.externC11.下列叙述中正确的是

A.main函数必须出现在其他函数之前B.main函数中至少必须有一条语句C.程序总是从main函数的第一条语句开始执行D.C程序总是在执行完main函数的最后一条语句后结束C

12.以下常量表示中正确的是

A.\xff B.5L C.aEb D.3.14UB

5L中的L表示long13.若程序中已有相应的声明,则下列语句中错误的是

A.printf(i==4?"%6d\n":"%6d",i);B.i==4?printf("%6d\n",i):printf("%6d",i);C.for(i=10;;i--)if(i==1)break;D.for(i=10;;)if(i--);break;

D14.若有声明:“floatf=123.45678;”,则执行语句“printf(“%.3f”,f);”后,输出结果是

A.1.23e+02 B.123.457C.123.456780D.1.234e+02B

15.若有声明:“intx=2,y=1,z=0;”,则下列关系表达式中有语法错误的是

A.x>y=2 B.z>y>x C.x>y==1 D.x==(x=0,y=1,z=2)

A16.若有声明:intx[10]={0,1,2,3,4,5,6,7,8,9},*p;则下列值不为4的表达式是

A.p=x,*(p+4)B.p=x+4,*p++C.p=x+3,*(p++)D.p=x+3,*++p

C17.若有声明:inti,k=1;unsignedj;,则下列语句执行时会出现无限循环的语句是

A.for(j=15;j>0;j-=2)k++;B.for(j=0;j<15;j+=2)k++;C.for(i=0;i<15;i+=2)k++;D.for(i=15;i>0;i-=2)k++;A

18.已知A盘根目录下有文本文件data.txt且程序中已有声明:FILE*fp;,若程序需要先从data.txt文件中读出数据,修改后再写入data.txt文件中,则调用fopen函数的正确形式是

A.fp=fopen("a:\\data.txt","rw");B.fp=fopen("a:\\data.txt","w+");C.fp=fopen("a:\\data.txt","r+"); D.fp=fopen("a:\\data.txt","r");C

19.以下选项均为fun函数定义的头部,则其中错误的是

A.intfun(intx,inty[])B.intfun(intx,inty[x])C.intfun(intx,inty[3])D.intfun(intx,int*y)B

20.以下结构变量stu1的声明中,错误的是

A.typedefstructstu{charname[10];floatscore;}STU;STUstu1;

B.

#defineSTUstructstuSTU{charname[10];floatscore;}stu1;C.structstu{charname[10];floatscore;}stu1;D.structstu{charname[10];floatscore;}STU;STUstu1;D21.以下叙述中正确的是

A.在编译时可以发现注释中的拼写错误B.C语言程序的每一行只能写一条语句C.main(){……}必须位于程序的开始D.C语言程序可以由一个或多个函数组成

D

22.以下选项中不能用作变量名的是

A._floatB.switchC.sumD._123B

23.已知sizeof(int)的值为2,为将10!的值存储到变量f中(10!=3628800),则变量f应声明为

A.longintB.intC.shortintD.unsignedintA若有声明:doublex=3,c,*a=&x,*b=&c;则下列语句中错误的是

A.a=b=0;B.a=&c,b=a;C.&a=&b;D.*b=*a;C

25.数学代数式:在C语言程序中的正确表示形式为

A.sqrt(a)/2*bB.sqrt(a)/2/bC.sqrt(a)/2bD.sqrta/(2*b)

B26.已知有程序段:charstr[][10]={"Aoyun","Beijing"},*p=&str[0][0];printf("%s\n",p+10);则执行printf语句后输出为

A.BeijingB.AoyunC.ingD.ngA

27.

以下声明中错误的是

A.inta[2];B.inta[]={0,1};C.inta[3]=0;D.inta[3][4]={0};C

28.已知有结构定义和变量声明如下:

structstudent{charname[20];intscore;structstudent*h;}stu,*p;int*q;则以下选项中错误的是

A.p=&stu;B.q=&stu.score;C.scanf("%s%d",&stu);D.stu.h=p;C

已有声明“inta=3,b=3,c=2;”,以下选项中值为0的表达式是

A.!a&&!b&&cB.!a||!b||cC.a==b&&b>=cD.a>=b&&b>cA

短路或||短路且&&

30.若有声明“charss[8]=“Red”;”,则

sizeof(ss)的值是

A.8B.4C.3D.1A31.某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是

A.#defineP3.14;B.#defineP(3.14)C.#defineP=3.14;D.#defineP3.14

D

32.下列选项中属于C语言关键字的是

A.FloatB.singleC.doubleD.realC

33.已知某编译系统中signedint类型数据的长度是16位,该类型数据的最大值是

A.32767B.32768C.127D.65535

A34.以下关于if语句和switch语句的叙述中错误的是

。A.if和switch语句都可以实现算法的选择结构B.if和switch语句都能实现多路选择C.if语句可以嵌套使用D.switch语句不能嵌套使用D

已有声明:char*s1="China",s2[10],*s3="Nanjing",*s4;

则以下字符串赋值语句在执行时可能出现错误的是

A.strcpy(s3,s1);B.strcpy(s4,s1);C.strcpy(s2,s1);D.strcpy(s2,s3);B

已有声明“intx=0,*p=&x;”,以下语句中有语法错误的是

A.printf("%d",*x);B.printf("%d",&x);C.printf("%d",*p);D.printf("%d",x);

A37.以下叙述中错误的是

A.在函数外可以声明变量B.变量声明的位置决定了该变量名的使用范围C.调用函数时,在函数内声明的变量所得到的值将无法保存到该函数的下一次调用D.在函数外声明的变量,其值可以保存到该程序运行结束

C

38.已有声明:intt=1;,则执行:printf("%d",(t+5,t++));时输出结果是

。A.1B.6C.2D.7A

39.已有声明:staticchar*p="Apple";

则执行语句:puts(p+2);时输出为

A.AppleB.CppleC.ppleD.pleD

40.以下选项均欲声明变量p,其中错误的是

。A.typedefstructPersonB.structPerson{charname[20];{charname[20];intage;intage;}Per;};Perp;structPersonp;C.structD.struct{charname[20];{charname[20];intage;intage;}Per;}p;Perp;

C41.

以下有关C语言函数的描述中,错误的是

A.一个完整的C程序可以有多个函数,其中必须有且只能有一个名为main的函数B.当一个C程序包含多个函数时,先定义的函数先执行C.函数可以嵌套调用D.函数不可以嵌套定义

B

42.以下程序段在编译时不会报错的是

A.#definedouble2B.#define

a2void

main(

)void

main(

){doublea=0;}{inta=0;

}C.#define

a

2D.#define

a2voidmain(

)intx=a;{a++;}voidmain(

){

x++;}D

43.

已有声明:intx=0,

y=2;,则执行语句:y=

--x||++y;后,变量y的值为

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

B44.

已有预处理命令“#include<math.h>”和声明“inta=4,

b;”,则以下语句中正确的是

A.if

(a%2=1)

b=a;B.if

(sqrt(a)%2)

b=a;C.if

(a==1)

b=a;D.if

(a==1)

b=*a;

C

45.以下函数中能正确实现n!(n<13)计算的是

A.longfact(longn)B.longfact(longn){{if(n<=1)

return1;returnn*fact(n-1);elsereturnn*fact(n);}}C.longfact(longn)D.longfact(longn){staticlongs,

i;{longs=1,i;for(i=1;i<=n;i++)

s=s*i;

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

s=s*i;return

s;returns;}}D46.以下叙述中正确的是

A.chars[11]=“C

Language”;等价于

chars[11];s="C

Language";B.chars[11]=“C

Language”;等价于

chars[11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论