C语言复习题
- 格式:doc
- 大小:493.50 KB
- 文档页数:35
01计算机本身最擅长的能力是?A、推理B、想像C、重复D、分析正确答案: C、重复。
02 计算机(CPU)能够直截了当运行人类编写的程序A、√B、×正确答案: B、×、03编程语言是与计算机交谈的语言A、√B、×正确答案: B、×。
04 关于C语言,以下讲法错误的有:A、C语言是与Unix操作系统一同发展起来的B、C语言不能写图形界面的软件C、C语言一般是编译执行的D、C语言诞生于1970年代正确答案: B、C语言不能写图形界面的软件、06 IDE的中文翻译是什么?正确答案是:集成开发环境、07 给定:int a,b; 以下哪些scanf的使用是正确的?A、scanf("%d”,&a); scanf(”%d",&b);B、scanf(”%d %d”, &a, &b);C、scanf("%d, %d", &a,&b);D、scanf("%d%d”, a, b);正确答案: A、scanf("%d”,&a); scanf(”%d", &b);。
B、scanf(”%d%d", &a, &b);、C、scanf(”%d,%d”,&a,&b);、08 以下哪些是有效的变量名?A、mainB、4everC、monkey—kingD、__int正确答案:A、main。
D、__int。
09给定:inta,b; scanf("%d %d", &a, &b);则以下哪些输入方式是正确的?A、1 2B、1,2C、1(回车)2D、1、2正确答案:A、1 2。
C、1(回车)2、10给定以下代码段:inta,b=0;则a的初始值是0A、√B、×正确答案: B、×、11写出下式的运算结果:10/3、0*3 正确答案是:10、0。
12写出下式的运算结果:10/3*3、0正确答案是:9、0。
1、已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36 B)0 C)-24 D)-60正确答案: D2、下列表达式中,结果为5的是A)6*5%6 B)5*-2+15 C)5+75%10 D)6+-2/3正确答案: B3、已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是A)-1 B)0 C)1 D)语句错误正确答案: B4、已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为A)1 B)2 C)3 D)4正确答案: C5、若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是A)9 B)8 C)3 D)2正确答案: C6、数学上的不等式和C语言中的关系表达式意义不同。
若x=5,y=6,z=7,则x<y<z在c语言中值为()。
A) 1 B) 0 C) 5 D)77、若整型变量a、b、c、d中的值依次为:1、4、3、2。
则条件表达式a>b?a:c<d?c:d的值(B)。
A)1 B)2 C)3 D)48、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()。
A)0 B)1 C)2 D)39、已知char ch=′C′;则以下表达式的值是ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;A)A B)a C)Z D)c正确答案: D10、以下选项中,当x为大于1的奇数时,值为0的表达式是:( d)A:x%2= =1 B:x/2 C:x%2!=0 D: x%2==011、为表示关系x≥y≥z,应使用C语言表达式(a)A) (x>=y)&&(y>=z) B)(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z)12、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是(a)A)(!a==1)&&(!b==0) B)(!a||b)C)a && b D)a||(b+b)&&(c-a)13、逗号表达式(a=3*5,a*4),a+15的值为( B )A)15 B)30 C)60 D)9014、设a=1,b=2,c=3,则(a>b)!=c的值为( B )A) 0 B) 1 C) 2 D)315、设有int i; char c; float f; 则以下结果为整数的表达式是( D )A)i+f B)c+f C)i+c+f D)i*c16、表示关系a<=b<=c的c语言表达式为( B)A) (a<=b)&(b<=c) B) (a<=b)&&(b<=c) C) (a<=b<=c) D) (a<=b)AND(b<=c)17、有表达式:x=(y=4,z=16,k=32),式中x、y、z和k都是int型变量,则x=( c )A) 4 B)16 C) 32 D)5218、执行语句“x=(a=3,b=a- -)后x,a,b 的值依次为(C)A) 3,3,2 B) 3,2,2 C) 3,2,3 D) 2,3,219、若有说明和语句:int a=5; ++a; 此处表达式++a的值是(C )。
c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
1. 若有定义:long int j,*p;,则操作j=(long int)p;是合法操作。
√ ×正确2. 设有说明int(*ptr)[M];其中ptr是指向含有M个整型元素的一维数组的指针。
()√ ×正确3. 对同一类型的两个指针变量而言,一个变量向另外一个变量赋值的结果是使得两个指针指向同一个对象。
√ ×正确4. 定义一个指向某种类型函数的指针后,就可以讲任何函数的首地址赋给这个指针变量。
√ ×错误正确答案为×5. 可以将一个整型指针变量的值赋给一个实型指针变量,但可能引起符号位扩展。
√ ×错误正确答案为×6. 可以将一个实型指针变量的值赋给一个整型指针变量,但可能影响指针的精度。
√ ×错误正确答案为×7. 由于指针的数据类型实际上是指定指针所能指向对象的数据类型,所以不通数据类型的指针变量不能相互赋值。
√ ×正确8. 函数中使用指针变量作为形式参数,就有可能在被调函数中操作主调函数中的实参。
√ ×正确9. 若有定义:int a[5],*p;,则操作p=a;是合法的操作。
√ ×正确10. 若有定义:int a[5],*p;,则操作p=&a[2];是合法的操作。
√ ×正确11. 若有定义:int a[5][5],*p;,则操作p=a;是合法操作。
√ ×错误正确答案为×12. 若有定义:int a[5][5],*p;,则操作p=*a;是合法操作。
√ ×正确13. 若有定义:int a[5][5],*p;,则操作p=a[0];是合法操作。
√ ×正确14. 若有定义:int a[5][5],*p;,则操作p=&a[0][0];是合法操作。
√ ×正确15. 若有定义:int a[5][5],(*p)[5];,则操作p=a;是合法操作。
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
所有单选题1、C语言中下列叙述正确的是__d____。
A:不能使用do-while语句构成的循环B:do-while语句构成的循环,必须用break语句才能退出C:do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 1真0假,1 进入循环 D:do-while语句构成的循环,当while语句中的表达式值为零时结束循环答案:D2、以下选项中属于C语言的数据类型是__C____。
A:复数型B:逻辑型C:双精度型D:集合型答案:C3、下列描述中不正确的是__C____。
A:字符型数组中可以存放字符串B:可以对字符型数组进行整体输入、输出C:可以对整型数组进行整体输入、输出D:不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值答案:C4、以下程序的输出结果是______。
main(){ int x=10,y=10,i;for(i=0;x>8 ;y=++i)printf("%d %d ",x--,y);}A:10 1 9 2B:9 8 7 6C:10 9 9 0D:10 10 9 1答案:D5、以下程序的输出结果是______。
main(){ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i ;i=8;p=a+i;printf("%s\n",p-3);}A:6B:6789C:'6'D:789答案:B6、能正确表示a和b同时为正或同时为负的逻辑表达式是__D____。
A:(a>=0||b>=0)&&(a<0|| b<0)B:(a>=0&&b>=0)&&(a<0&&b<0)C:(a+b>0)&&(a+b<=0)D:a*b>0答案:D7、以下程序的输出结果是__A____。
C语言复习题及参考答案一、单项选择1、以下叙述正确的是:__B__。
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。
2、以下4个用户定义标识符中,全部合法的一组是__A__。
A)_main enclude sin B)if –max turbo C)txt REAL 3COM D)int k_2 _001 3、以下不能定义为用户标识符的是_D__。
A)scanf B)Void C)_3com D)int4、C语言中用于结构化程序设计的3种基本结构是__A__。
A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue5、为解决某一特定问题而设计的指令序列称为__C__。
A)文档B)语言C)程序D)系统6、用高级程序设计语言编写的程序称为__C__。
A)目标程序B)可执行程序C)源程序D)伪代码7、能将高级语言编写的源程序转换成目标程序的是__B__。
A)编辑程序B)编译程序C)驱动程序D)链接程序8、下列叙述中,正确一条是__C__。
A)计算机语言中,只有机器语言属于低级语言。
B)高级语言源程序可以被计算机直接执行。
C)C语言属于高级语言。
D)机器语言是所用机器无关的。
9、以下符合C语言语法的实型常量是__C__。
A)1.2E0.5B)3.14159E C).5E-3D)E1510、下面叙述正确的是__A___。
A)C程序中注释部分可以出现在程序中任何合适的地方。
B)花括号“{”和“}”只能作为函数体的定界符。
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名。
D)分号是C语句之间的分隔符,不是语句的一部分。
11、设有以下定义:int a=0; double b=1.25; char c=’A’;#define d 2则下面语句中,错误是__D__。
第1章1.1 单选题1.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。
A.有零个或多个输入 B. 有零个或多个输出C.有穷性 D. 可行性2. 以下叙述中正确的是()。
A. C语言的源程序不必通过编译就可以直接运行B. C语言中的每条可执行语句最终都将被转换成二进制的机器指令C. C语言源程序经编译形成的二进制代码可以直接运行D. C语言中的函数不可以单独进行编译3. 用C语言编写的代码程序()。
A. 可立即执行B. 是一个源程序C. 经过编译即可执行D. 经过编译解释才能执行4. 结构化程序由三种基本结构组成,三种基本结构组成的算法()。
A. 可以完成任何复杂的任务B. 只能完成部分复杂的任务C. 只能完成符合结构化的任务D. 只能完成一些简单的任务5. 以下叙述中正确的是()。
A. 用C程序实现的算法必须要有输入和输出操作B. 用C程序实现的算法可以没有输出但必须要有输入C. 用C程序实现的算法可以没有输入但必须要有输出D. 用C程序实现的算法可以既没有输入也没有输出1.2 填空题1.C语言程序的基本单位是__________。
2.一个C语言程序总是从__________开始执行,并终止于__________。
3.一个C语言程序是由一个或若干个函数构成的,程序中至少应包含一个__________函数。
4.一个C语言函数一般由两部分组成,它们分别是__________和__________。
5.函数体以__________开始,以__________结束。
6.结构化程序的3种基本结构是______、_____和_____。
7.C语言源程序文件名的后缀是__________,经过编译后,生成的目标文件名的后缀是__________,经过连接后,生成的可执行文件名的后缀是__________。
第2章1.下列叙述中正确的是()。
A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型2.下列关于C语言用户标识符的叙述中正确的是()。
A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线C.用户标识符中可以出现下划线,但不能放在用户标识符的开头D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头3.下列4个选项中,()是合法的用户自定义标识符。
A.b-b B.float C.2a D._isw 4.以下选项中不正确的整型常量是()。
A.12L B.-10 C.1 900 D.123U 5.以下选项中,()是不正确的字符常量。
A."a" B.'1' C.'\n' D.'\101 6.下列关于自增运算符++和自减运算符--的叙述中正确的是()A.它们的运算对象可以是任何类形的变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量、int型变量和float型变量7.下列表达式中值为0的是()。
A.3%5 B.3/5.0 C.3/5 D.3.0/5 8.设变量已正确定义并赋值,表达式()不符合C 语言语法。
A.int(3.14) B.++a C.a=b=5 D.a=4,3 9.若变量已正确定义并赋值,下面符合C语言语法的表达式是()。
A.a:=b+1 B.a=b=c+2C.int 18.5%3 D.a=a+7=c+b10.若变量已正确定义并赋值,表达式()不符合C 语言语法。
A.a*b/c; B.3%2 C.2, b D.a/b/c 11.下列选项中,()可以将x、y定义成float类型变量,并赋同一初值3.14。
A.double x, y=3.14; B.double x, y=2*3.14;C .double x=3.14, y=3.14;D .double x=y=3.14; 12.若变量已正确定义,表达式“j=3, j++”的值是( )。
A .3B .4C .5D .0 13. 假设在程序中a ,b ,c 均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 abc1的表达式是( )。
A. 1/a*b*c B .1/(a*b*c) C .1/a/b/(float)c D .1.0/a/b/c 14. 以下能正确定义且赋初值的语句是( )A.int n1=n2=10;B. char c=32;C. float f=f+1.1;D. double x=12.3E2.5; 15. 以下不能定义为用户标识符的是( )A. scanfB. VoidC. _3com_D. int 16. 设x 、y 、z 和k 都是int 型变量,则执行表达式:x=(y=4,z=16,k=32+z)后,x 的值为 ( )A .4B .16C .48D .32 17. 设有 int x=11,则表达式(x++ * 1/3)的值是( )。
A . 3B .4C . 11D .12 18. 以下变量x 、y 、z 均为double 类型且已正确赋值,不能正确表示数学式子zy x的C 语言表达式是()。
A . x/y*zB . x*(1/(y*z))C . x/y*1/zD . x/y/z19. 有以下程序 main(){ char a1='M ', a2='m ';printf("%c\n", (a1, a2) ); } 以下叙述中正确的是( )A .程序输出大写字母M B.程序输出小写字母m C .格式说明符不足,编译出错 D.程序运行时产生出错信息20. 以下程序运行后的输出结果是( ). main(){ char p[]={'a ', 'b ', 'c '}, q[]="abc"; printf("%d %d\n", sizeof(p),sizeof(q)); };A .4 4 B.3 3 C.3 4 D.4 3 21. 以下叙述中错误的是( )A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识 22.在C 语言中,下列属于构造类型的是()A.整型 B 字符型 C 实型 D.数组类型 23.下列字符串属于标识符的是()A. INTB. 5_studentC. 2ongD. !DF 24.C 语言中能用来表示整常数的进制是() A.十进制、八进制、十六进制 B.十二进制、十进制C.六进制、八进制D.二进制、十进制 25.在C 语言中,回车换行符是()A. \nB. \tC. \vD. \b 26. 在ASCII 码表中可以看到每个小写字母的ASCII 码比它相应的大写字母的ASCII 码 () 。
A )大32B )大64C )小32D )小64 27. 设d 为字符变量,下列表达式不正确的是() 。
A )d=97B )d=‟a ‟C )d=”a ”D )d=‟g ‟ 28.设d 为字符变量,下列表达式正确的是 () 。
A )d=678 B )d=‟a ‟ C )d=”d ” D )d=‟gjkl ‟ 29. 已知在ASCII 字符集中,数字0的序号为48,下面程序的输出结果为 。
main() {char x,y; x=‟0‟;y=‟9‟;printf(“%d,%d\n ”,x,y); }A )因输出格式不合法,输出错误信息B )B )48,57C )0,9D )48,58 30.已知在ASCII 字符集中,字母A 的序号为65,下面程序的输出结果为 。
main(){char c=‟A ‟;int i=10; c=c+10; i=c%i;printf(“%c,%d\n ”,c,i); }A )75,7B )75,5C )K,5D )因存在非图形字符,无法直接显示出来31.已知在ASCII 集中,字母A 的序号为65,下面程序的输出结果为 。
main(){char c1=‟B ‟,c2=‟Y ‟;printf(“%d,%d\n ”,++c1,--c2); }A )输出格式不合法,输出错误信息B )67,88C)66,89 D)C,X 32. C语言中,运算对象必须是整型数的运算符是()。
A)% B)\ C)% 和\ D)** 33..下列常数中,合法的C 常量是()。
A)-0. B)‟105‟C)‟AB‟)”35”34.下列常数中,合法的C 常量是()。
A)”x-y”B)‟105‟C)‟Be‟D)7ff 35.下列常数中,合法的C 常量是()。
A)‟\n‟B)e-310 C)‟DEF‟D)‟1234‟36.下列常数中,不合法的C 常量是()。
A)-0x2a B)lg3 C)‟[‟D]”CHINA”37.下列常数中,不合法的C 常量是()。
A)-0x3b B)123e+2.3 C)‟}‟D)6e+7 38.下列符号中,可以作为变量名的是()。
A)+a B)12345e C)a3B D)5e+0 39.下列符号中,可以作为变量名的是()。
A)+c B)*X C)_DAY D)next day 40. 若已定义X和Y为double类型,则表达式:x=1,y=x+3/2的值为()。
A)1 B)2 C)2.0 D)2.5 41.下列程序的执行结果是()。
#include<stdio.h>#define sum 10+20main(){int b=0,c=0;b=5;c=sum*b;printf("%d",c);}A)100 B)110 C)70 D)150 42..下列程序的执行结果是()。
#include<stdio.h>#define sum(10+20)mian(){int a=0,b=0,c=0;a=sum;b=5;c=sum*b;printf("%d",c);}A)100 B)110 C)70 D)150 43. 表达式(int)2.1416的值为()。
A)2 B)2.1 C)0 D)3 44.表达式(double)(20/3)的值为。
A)6 B)6.0 C)2 D)3 45. 假设所有变量均为整型, 则表达式( a=5, b=2, a++, a+b ) 的值是()。