C语言-基本选择题及答案解析.doc_第1页
C语言-基本选择题及答案解析.doc_第2页
C语言-基本选择题及答案解析.doc_第3页
C语言-基本选择题及答案解析.doc_第4页
C语言-基本选择题及答案解析.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

计算机程序设计基础(C语言)单项选择练习题说明:带*号的对非信息学院的同学不作要求。一、基本概念1. C语言程序是由 C 构成的。A)一些可执行语言 B)main函数 C)函数 D)包含文件中的第一个函数2( A )是构成C语言程序的基本单位。A、函数 B、过程 C、子程序 D、子例程3C语言程序从 C 开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的main函数 D) 包含文件中的第一个函数4C语言程序从main()函数开始执行,所以这个函数要写在_D_。A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置5、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分6. 下列方法中错误的是(D)。A.主函数可以分为两个部分:主函数说明部分和主函数体。B.主函数可以调用任何非主函数的其它函数。C.任何非主函数可以调用其它任何非主函数。D.程序可以从任何非主函数开始执行。7. 下列说法错误的是:( B )A. C程序运行步骤是编辑、编译、连接、执行。B. C语言的变量名必须用小写,常量用大写。C. C语言的三种基本结构是顺序、选择、循环。D. C程序一定由函数构成的。8.下列关于C语言的说法错误的是( B ) 。A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行9. 系统默认的C语言源程序扩展名为.C,需经过 C 之后,生成.exe文件,才能运行 A) 编辑编译 B )编辑连接 C) 编译连接 D) 编辑改错*10.下列说法中正确的是(B)。A.由于C源程序是高级语言程序,因此一定要在TC软件中输入。B.由于C源程序是由字符流组成的,因此可以作为文本文件在任何文本编辑的软件中输入。C.由于C程序是高级语言程序,因此输入后即可执行。D.由于C程序是高级语言程序,因此它是由命令组成的。二、数据类型、运算符与表达式1. 不是C语言提供的合法关键字是(B)。A.switchB.cherC.caseD.default*2.C语言提供的合法关键字是(D)。A.next B.string C.do case D.struct*3.下列不属于C语言中关键字的是 B A)long B)print C)default D)typedef4.下列正确的标识符是(C)。A.-a1 B.ai C.a2_i D.int t5. 下列C语言用户标识符中合法的是( B )。 A、*y B、sum C、int D、%5f 6. 下面四个选项中,合法的标识符是:( D ) A. auto B. define C. 6a D. c7下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union8. 以下选项中合法的用户标识符是 B A) longB) _2TestC) 3DmaxD) A.dat9下列四组选项中,正确的C语言标识符是( C )。A) %x B) a+b C) a123 D) 12310. 请选出可用作C语言用户标识符的一组标识符( B )A) void B) a3_b3 C) For D) 2adefine _123 -abc DOWORD sum Case sizeof11、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、Iam one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My-book line# His.age 12.下列C语言标识符中合法的变量名是 B 。 A)2e3 B)you C)*y D)float13.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型14、下列可以正确表示字符型常量的是( A )。 A、t B、”a” C、”n” D、29715.下列表达式中, D 是正确的C语言字符常量。 A)”x” B)e3 C)”COMPUTER” D)#16.在下列表达式中,属于字符型常量的是 B 。A) A B) a C) A D) b17. 以下选项中合法的字符常量是( B ) A) “B” B) n C) 68 D) E18下面字符常量表示错误的是( D ) A)a B)? C)n D)”n” 19. 已定义c为字符型变量,则下列语句中正确的是 ( C ) A)c=97 B)c=97 C)c=a D)c=a 20. 已知ch是字符型变量,不正确的赋值语句是( A ) A) ch=a+b ; B) ch= 0 ; C) ch= 7 ; D) ch=;;21语言中字符型(char)数据在内存中的存储的是( D ) A) 原码 B) 补码 C) 反码 D) ASCII码22在C语言中,字符型数据所占的内存空间是( C ) A)2个字节 B) 4字节 C) 1字节 D)由用户自定义*23若int类型数据占2个字节,则unsigned int类型数据的取值范围是 ( B ) A)0255 B)065535 C)-3276832767 D)-256255*24. 若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为( D ) A)float B) char C) int D)double*25若有以下类型说明语句:char w;int x;float y;double z;则表达式w-x*y/z的结果为( D )类型,表达式(int)(x+y-z*w)的结果为( C )类型。 A)float B)char C)int D)double26 .C语言中运算对象必须是整型的运算符是( A )A) %= B) / C) = D) =27.在C语言程序中,表达式8/5的结果是( B ) A)1.6 B)1 C)3 D)028.设x为int型变量,则执行以下语句后,x的值为 B x=10; x+=x;A) 10 B) 20 C) 40 D) 3031.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)332如果int a=3,b=4;则条件表达式ab? a:b的值是_A_。A) 3 B) 4 C) 0 D) 133若int x=2,y=3,z=4 则表达式xz?y:z的结果是( B ). A)4 B)3 C)2 D)0 E)134C语言中,关系表达式和逻辑表达式的值是( B ) 。A) 0 B) 0或1 C) 1 D) T或F35设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是( D )A、a&b B、a=b C、a|b+c&b-c D、!(ab)&!c|1)37. 下面( D )表达式的值为4. A) 11/3 B) 11.0/3 C) (float)11/3 D) (int)(11.0/3+0.5)*39. 已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是( C )A .0 B. 1 C. 5 D. 640. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3;后,c2中的值为 ( B ) A) 68 B) D C) 错误 D) d41下列关于C语言的叙述错误的是( A)A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义42. 有:int w=11,x=12,y=3,m; 执行下面语句后m的结果是( C ) m=(wx)?w:x; m=(mx)?w:x; m=(my)?m:y; A. 12 B. 0 C. 3 D. 1 45.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B)A.b=1.0/a B.b=(float)(1/a) C.b=1/(float)a D.b=1/(a*1.0)48. 以下运算符中优先级最高的运算符是( B)A)& B)+ C)+= D)!=49.若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)A.1 B.4 C.4.333333 D.4.652. 设x为int型变量,则执行以下语句后,x的值为(C)x=10; x*=x;A) 10 B) 20 C) 100 D) 053. 若有语句int a=1,b; double y=2.3; b=(int)y; 则b的值为 (B )A) 3 B) 2 C) 1 D) 2.354.已知int x;char y;则下面错误的scanf函数调用语句为(B ) A)scanf(“%d,%d”,&x,&y); B) scanf(“%d,%c”,x,y) C) scanf(“%d%d”,&x,&y) D) scanf(“%d,%c”,&x,&y)57在C语言的库函数中,可以输出char型变量x值的语句是 C 。 A)getchar(x); B)fputc(x) C)putchar(x) D)puts(x)60. 以下说法正确的是( C )A) x+5是一个错误的表达式B) C语言不允许类型的混合运算 C) 强制类型转换时,类型说明符必须加括号D) (int)x+y 和(int)(x+y)是完全等价的表达式61.设 int x=0, y=1; 表达式(x|y)的值是 ( B ) A) 0 B) 1 C) 2 D) -1三、选择结构1. 在C语言中,认为( D )为逻辑真 A) true B)大于0的数 C)非0整数 D)非0的数2. 表示关系x=y=z的c语言表达式为 A A) (x=y)&(y=z) B) (x=y)AND(y=z)C) (x=y=z) D) (x=y)&(y=10 or a=0|a=10 &a=10a=04、判断char型变量c1是否为大写字母的表达式为( D )。 A、A=c1=A) & (c1=Z) C、(A=c1) D、 c1=A & c1=Z5. 为表示逻辑表达式79X79 )&( X79 )!=( X90 )C) 79X79 )|( X0&b&c0”的 值是( A)A.1 B.0 C.-1 D.出错7. 设a为整型变量,则不能正确表达数学关系10a15的C语言表达式是( A )。A.10a10&a15 D.!(a=15)8. 设x,t均为int型变量,则执行语句“x=10;t=x&x10;”后,t的值为(D)A.不定值B.10 C.1 D.09. 若int i=10; 执行下列程序后,变量i的正确结果是( A )。 switch ( i ) case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; A、13 B、12 C、11 D、1010. 在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是( D )。 A、if (a) s1 ; else s2; B、if (a= =0) s2; else s1;C、 if (a!=0) s1; else s2; D、if (a= =0) s1; else s2; 11.假定所有变量均已正确定义,则下列程序段运行后y的值是(A)int a=0,y=10; if(a=0) y-; else if(a0) y+; else y+=y;A.20 B.11 C.9 D.012.假定所有变量均已正确定义,则下列程序段运行后x的值是(B)。a=b=c=0; x=35; if(!a) x-; else if(b); if(c) x=3; else x=4;A.34 B.4 C.35 D.313. C语言对嵌套if语句的规定是:else语句总是与( D )配对。 A) 其之前最近的if B) 第一个ifC) 缩进位置相同的if D) 其之前最近的且尚未配对的if14. 在C语言语句中,用来决定分支流程的表达式是( A)。A可用任意表达式B.只能用逻辑表达式或关系表达式C只能用逻辑表达式D.只能用关系表达式15.C语言中用( B )表示逻辑“真”。A. true B. 整数值1C. 非零整数值 D. false16、若k是int型变量,且有下面的程序段:int k;k= -3;if (k=0) printf(“#”);else printf(“&”);上面程序段的输出结果是( A )A、# B、& C、#& D、有语法错误,无输出结果17. main() int x=0,a=0,b=0;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf(“a=%d,b=%dn”,a,b);该程序的输出结果是 D A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=218. 以下程序的输出结果是:( C )main() int x=-10,y= 1,z=1; if(xy) if(yb)a=b;b=c;c=a;printf(a=%2d b=%2d c=%2dn,a,b,c);A) a=10 b=50 c=10 B) a=10 b=30 c=10C) a=50 b=30 c=10 D) a=50 b=30 c=50四、循环结构*1.在C语言中,下列说法中正确的是( D)。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。 C) do-while语句构成的循环在while后的表达式非零时结束循环。 D) do-while语句构成的循环,在while后的表达式为零时结束循环。2. break语句不能出现在( D)语句中A. switch B.for C. while D. ifelse*3对于break语句和continue语句的说法错误的是( B )A) break语句不能用于循环语句和switch语句之外的任何其他语句中。B) break和continue也可以用于if语句中C) continue语句只结束本次循环,而不是终止整个循环的执行。D) break语句是结束整个循环过程,不再判断执行循环的条件是否成立。4.语句while(!y);中的表达式!y等价于 A A)y0 B)y!1 C)y!0 D) y=15.若有“int a=1,x=1;”,则循环语句“while(a10) x+; a+;”的循环执行(A)A.无限次 B.不确定次C.10次D.9次6. 有以下程序段int k=0while(k)k+;则while循环体执行的次数是 C A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次7. 下列循环语句中有语法错误的是( D ) A while(x=y) 5; B while(0) ;C do 2;while(x= =b); D do x+ while(x= =10);*8.当运行时输入:abcd$abcde, 下面程序的运行结果是 B #includemain() while(putchar(getchar()!=$);printf(end);A) abcd$abcde B)abcd$end C)abcdend D) abcd$abcdeend9. 以下程序段 ( A )x=-1;do x=x*x; while(x0);A. 是死循环 B. 循环执行一次 C. 循环执行二次 D. 有语法错误10. 下面程序段执行后的结果为: ( B ) int sum=0, n=10; do sum=sum+n; n+; while(n0;i+);”的循环执行( A)。A.无限次B.不确定次C.10次D.9次13.执行语句for(j=0;j=3;j+) a=1;后变量j的值是 C . A)0 B) 3 C)4 D) 114 有如下程序main() int i,sum=2;for(i=1;i=3;i+=2) sum+=i;printf(“%dn”,sum); 该程序的执行结果是 A A) 6 B) 3 C) 死循环 D) 4*15、执行语句”for ( i=0; i+3 ; ) ;”后,变量i的值为( C )。 A、2 B、3 C、4 D、516.设x和y均为int型变量,则执行以下的循环后,y的值为( D)。for(y=1,x=1;y=0) break; if(x%2=1) x+=5;continue; x-=3;A.2 B.4 C.6 D.1五 数组1. 以下对一维数组a的正确说明是: D A) char a(10); B) int a; C)int k5,ak; D)char a3=a,b,c;2.以下能对一维数组a进行初始化的语句是: ( C ) A. int a5=(0,1,2,3,4,) B. int a(5)= C. int a3=0,1,2 D. int a5=10*13.在C语言中对一维整型数组的正确定义为 D 。 A)int a(10); B)int n=10,an; C)int n;an; D)#define N 10 int aN; 4、已知:int a10; 则对a数组元素的正确引用是( D )。 A、a10 B、a3.5 C、a(5) D、a05. 执行下面的程序段后,变量k中的值为 C A) 不定值 B) 33 C) 30 D) 10 int k=3, s2; s0=k; k=s0*10;*6. 下列说法中错误的是 C A 构成数组的所有元素的数据类型必须是相同的B 用指针法引用数组元素允许数组元素的下标越界C 一维数组元素的下标依次是1、2、3D 定义数组时的长度可以是整型常量表达式7. 若有以下数组说明,则数值最大的和最小的元素下标分别是( B)。int a12=1,2,3,4,5,6,7,8,9,10,11,12;A.1,12 B.0,11 C.1,11 D.0,128.若有以下数组说明,则i=10;aai元素数值是( B)。int a12=1,4,7,10,2,5,8,11,3,6,9,12;A.10 B.9 C.6 D.59. 假定int类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组x在内存中所占字节数是 D A) 3 B) 6 C) 10 D) 2011.若有说明:int a3=1,2,3,4,5,6,7; 则数组a的第一维的大小为: ( B ) A. 2 B. 3 C. 4 D.无确定值12.以下定义语句中,错误的是 ( D ) A) int a=1,2; B) char *a;C) char s10=“test”; D) int n=5,an; 13.下面程序段的输出结果是: ( C ) int i; int x33=1,2,3,4,5,6,7,8,9; for (i=0;iage D) (*p).age*5. 有如下定义struct personchar name9; int age;struct person class10=“Tom”,17,“John”,19,“Susan”,18,“Adam”,16,;根据上述定义,能输出字母A的语句是( B )A) printf(“%cn”,);B) printf(“%cn”,0);C) printf(“%cn”,1);D) printf(“%cn”,3);6.存放100个学生的数据、包括学号、姓名、成绩。在如下的定义中,不正确的是( B )。Astruct student int sno; char name20; float score; stu100;B. struct student stu100 int sno; char name20; float score;C. struct int sno; char name20;float score; stu100;D. struct student int sno; char name20; float score;; struct student stu100;*7.设有定义语句“struct int x; int y; d2=1,3,2,7;”则“printf(“%dn”,d0.y/d0.x*d1.x);”输出的是( D )。A.0 B.1 C.3 D.68.已知: struct sk int a; float b; data, *p; 若有p=&data,则对data中的成员a的正确引用是( C )。 A、(*p).data.a B、p-data.a C、(*p).a D、p.data.a9.设有如下定义:struck sk int a;float b;data;int *p;若要使P指向data中的a域,正确的赋值语句是 C A) p=&a;B) p=data.a;C) p=&data.a;D)*p=data.a;10.设有以下说明语句: typedef struct stu int a; float b; stutype; 则下面叙述中错误的是( D )。 A、struct是结构类型的关键字 B、struct stu是用户定义的结构类型 C、a和b都是结构成员名D、stutype是用户定义的结构体变量名八指针1 语句int *p;说明了 C 。A)p是指向一维数组的指针 B)p是指向函数的指针,该函数返回一int型数据C)p是指向int型数据的指针 D)p是函数名,该函数返回一指向int型数据的指针2. 变量的指针,其含义是指该变量的:( B ) A. 值 B. 地址 C. 名 D.一个标志3.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是( A )A) pb=&x B) pb=x C) *pb=&x D) *pb=*x4、已知:int a, *p=&a; 则下列函数调用中错误的是( D )。 A、scanf(“%d”,&a); B、scanf(“%d”,p); C、printf(“%d”,a); D、printf(“%d”,p);5.对于同类型的指针变量,不可能进行的运算是( C)。A.- B.= C.+ D.=6. 对于基类型相同的两个指针变量之间,不能进行的运算是 C A) B) = C) + D) -7下列不正确的定义是(A )。A. int *p=&i,i; B.int *p,i;Cint i,*p=&i; D.int i,*p;8. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: (D )A)p=q B)*p=*q C)n=*q D)p=n9. int *p,a=10,b=1; p=&a; a=*p+b;执行该程序段后,a的值为 C A) 编译出错 B) 10 C) 11 D) 1210有语句:int a10,;则 B 是对指针变量p的正确定义和初始化。A)int p=*a; B)int *p=a; C)int p=&a; D)int *p=&a;11.若有说明语句“int a5,*p=a;”,则对数组元素的正确引用是( C )。A.ap B.pa C.*(p+2) D.p+212. 若指针变量p指向整型数组a10的首地址, 即p=a ; 则下列数组元素ai

温馨提示

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

评论

0/150

提交评论