c语言题答案.doc_第1页
c语言题答案.doc_第2页
c语言题答案.doc_第3页
c语言题答案.doc_第4页
c语言题答案.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

复习题一、选择题1、C程序由( C )组成。 A子程序 B主程序和子程序 C函数 D过程2、以下正确的叙述是( C )。 A 在C语言中,main函数必须位于文件的开头 B C语言每行中只能写一条语句 C C语言本身没有输入、输出语句 D 对一个C语言进行编译预处理时,可检查宏定义的语法错误 3、下面属于C语言标识符的是( D )A 2ab B. f C. ?b D. _a124、下列符号中用来表示C语言中的回车换行的是( B ) A. ” B. n C. b D. 5、若定义#define P 3.1416 则P是( A ) A符号常量 B单精度变量 C整型变量 D一般变量6、一个C程序的执行是从( A )A. 本程序的main()函数开始,到main()函数结束.B. 本程序文件的第一个函数开始,到本程序文件第一个函数结束.C. 本程序文件的第一个函数开始,到本程序main函数结束.D. 本程序的main()函数开始,到本程序文件的最后一个函数结束.7、下列关于C语言注释的叙述中错误的是( D )。A以“/*”开头并以“*/”结尾的字符串为C语言的注释内容。B注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义。C程序编译时,不对注释作任何处理。 D程序编译时,需要对注释进行处理。8、若有定义:int a=8, b=5, c; 执行语句c = a/b+0.4 ;后,c的值为(B )。 A 1.4 B1 C 2.0 D 2 9、若t为int类型,表达式t=1,t= 5,t+的值是( C) A2 B6 C5 D 710、设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句( B )if (x=y) printf( x is equal to y.); A. 语法错 B. 不能判断x和y是否相等 C. 编译出错 D. 能判断x和y是否相等11、 有如下输入语句:scanf(“x=%d:y=%d”, &x, &y); 为使变量x的值为2002, 变量y的值为11,那么从键盘输入数据的正确格式为 ( B )。 A 2002 11 B x=2002:y=11 C x=2002 y = 11 D x=2002,y=1112有int x,y,z ;且 x=3,y=-4,z=5 ;则以下表达式的值为( A ) ! ( xy ) +(y != z ) | ( x+y ) ( y - z) A) 1; B) 0; C) 2; D) 4;13设 a=50, b=20, c=12,则 x 的值是( D ) x= if( ab ) a=b ,c=a ,+c; A) 13 B) 51 C) 50 D) 2114下面的表达式正确的是( C ) A) (a+b)+ B) 8+ C) _(i+) D) (-k )+15.设以下变量均为int类型,则值不等于 7的表达式是:( C ) A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1) C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)16设有如下程序段,输出结果应为( A ) x=( a=3, 6*3 ); y=a=3, 6*a; printf(“x=%d,y=%d n”,x, y ); A) x=18, y=3; B) x=18, y=19; C) x=3, y=18; D) x=3, y=3;17、写出下列程序的执行结果( D ) int x=-2; printf(%d,%u,%o,x, x, x); A -2, -2, -2 B-2, 32767, -177777 C-2, 32768, 177777 D-2, 65534, 177776 18、若有定义int a; char b; float c; 则表达式 a*b-c 的类型是( D ) Afloat B int C char D double 19、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。 A 1 B 2 C 2.0 D 2.5 20、Putchar 函数可以向终端输出一个( D ) A)整型变量表达式值; B) 字符串; C)实型变量值; D) 字符或字符型变量值;21执行以下程序段,正确的输出结果( A ) #include main( ) int b=1; b%=5-2; Printf( “%d”,b); b+=b*=b-=b*=4; printf(“%d”,b); A) 1,0; B) 2,0; C) -2,8; D) 1,8;22、若有程序段:double x=-5.9;int y;y=(int)x; 执行该段程序后( A )。Ax=-5.9,y=-5 Bx=-5.9,y=-6 Cx=-5,y=-5 Dx=-6,y=-623.以下程序的运行结果是:( B ) #include”stdio.h” main() int a,b,d=241; a=d /100% 9; b=(-1) (-1); printf(“%d,%d”,a,b); A) 6, 1 B) 2, 1 C) 6, 0 D) 2, 024、以下正确的叙述是( C )。 A在if-else语句中第一个else与第一个if相匹配B完整的if语句中都有else存在的 Cif-else语句中,else 与最近的if匹配 D以上都正确25、下列保留字中用于构成循环结构的是( B ) A. if B. while C. switch D. default26. 运行下面的程序段,结果是:( A ) int n=0; while(n+=2);printf(“%d”,n); A)2 B)3 C)4 D)有语法错27以下描述正确的是:( B ) A) goto 语句只能用于退出多层循环。 B)switch 语句中不能出现continue语句。 C) 只能用 continue语句来终止本次循环。 D) 在循环中break语句不能独立出现。 28以下循环的执行次数是( C ) for(x=0,y=0;(y=123 x4 );x+);A)是无限循环 B) 循环次数不定C)执行4次 D) 执行3次29.下面有关 for循环的正确描述是:( D )A) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判断表达式C) 在for循环中,不能用break语句跳出循环体D) for循环的循环体语句中,可以包含多条语句,但是,必须用花括号括起来。 30、for(i=0; ;i+) ;执行循环的次数为:( D ) A0次 B 许多次 C错误 D无限多次 31.设有以下程序段 int x=0, s=0; while(!x!=0) s+=+x; Printf(“%d”,s);则( B )A)运行程序段后输出0 B)运行后输出 1C)程序段中控制表达式是非法的 D)程序执行无限次32、以下程序段中由while构成的循环,执行的次数为( A )。 int k=0;while(k=1) k+;A无限次 B有语法错,不能执行C 一次也不执行 D 执行1次33、 以下正确的描述是( B ) A continue语句的作用是结束整个循环的执行B只能在循环体内和switch语句体内使用break语句C在循环体内使用break语句或continue语句的作用相同Dgoto语句只能用于退出多层循环34、下面的for循环语句的循环次数是( A )。 int i; for (i=1;i100;i+=2)i+; A 33次 B50次 C 49次 D 99次35、下列语句中,不正确的是( D )。A. int a23 = 1 , 2 , 3 , 4 , 5 , 6; B. int a23 = 1, 4 , 5;C. int a 3 = 1, 4; D. int a = 1 , 2 , 3 , 4 , 5 , 6;36、若有定义char x=abcdefg; char y=a, b, c, d, e, f, g ; 则下述正确的叙述为( C )。 A数组x 和数组y等价 B 数组x 和数组y的长度相同 C数组x 长度大于数组y的长度 D 数组x 长度小于数组y的长度 37、合法的数组定义是(C ) Achar a=H,e,l,l,o; Bchar a5=Hello; Cchar a5=H,e,l,l,o; Dchar a5=”Hello”;38、若有如下定义: int n5=1, 2, 3, 4, 5 , *p=n; 则值为5的表达式是( C ) 。 A *p+5 B *(p+5) C*(p+4) Dp+4 39、以下各语句或语句组中,正确的操作是( C )。 A char s5=abcde ; B char *s; gets(s); Cchar *s; s=abcde; Dchar s5; scanf(%s, &s); 40、已知int b; 则对指针变量p正确的说明和初始化是:( D ) Aint *p=b; Bint p=b; Cint p=&b; Dint *p=&b;41、以下正确的函数定义形式是( A ) Adouble fun(int x, int y) Bdouble fun(int x;int y) Cdouble fun(int x, int y); Ddouble fun(int x,y);42、如果定义char a20=0;则a3的初值是( A ) A0 B0 Cn DF43、以下各语句或语句组中,正确的操作是( C )。 A char s5=abcde ; B char *s; gets(s); Cchar *s; s=abcde; Dchar s5; scanf(%s, &s); 44、若有定义:int a56; 则下面关于数组a的叙述中正确的是( C )。A该数组共有20个元素 Ba06是该数组的一个元素Ca00是该数组的一个元素 Da56是该数组的一个元素45、已知int b; 则对指针变量p正确的说明和初始化是:( D )Aint *p=b; Bint p=b; Cint p=&b; Dint *p=&b;46下面程序C(每行程序前面的数字表示行号) ( C ) 1 main() 2 3 float a 10= 0.0; 4 int i;C 5 for(i=0; i3; i+) scanf(“%d”,ai); 6 for(i=0; i10; i+) a0=a0+ai; 7 printf(“%fn”,a0); 8 A)没有错误 B)第 3行有错误C)第 5 行有错误 D) 第7行有错误47合法的数组定义是( B ) A) int s = “good”; B) int s5= 0,1,2,3,4; C) char s= “good”; D) char = 0,1,2,3,4; 48下面程序中有错误的行是( D )(每行程序前面的数字表示行号) 1 main() 2 3 int a3= 1 ; 4 int i; 5 scanf(“%d”,a); 6 for(i=1; i3; i+) a0=a0+ai; 7 printf(“a0=%dn”,a0); 8 A) 3 B)6; C)7; D) 5;49以下能对一维数组进行正确初始化的语句是( C ) A) int a10=( 0,0,0,0,0); B) int a10= ; C) int a = 0 ; D) int a10= 10*1;50对一维整型数组 a的正确说明是( D ) A) int a; B) int n =10 ,an; C) int n;scanf(“%d”,n); D) #define SIZE 10 int an ; int aSIZE;51执行以下程序段,输出结果( D ) #include int x = 5,4,3,2,1; main( ) int i,*p,m=0; for(p=x,i=1;p+i=x+4;i+=2) printf(“%d,”,*(p+i); for(i=0;i=4;i+) m+=xi; printf(“%d”,m); A) 5,4,3,2,1 B) 1,2,3,4,5 C) 4,2,10 D) 4,2,15二、填空题1、C语言标识符由字母、下划线或数字组成。命名标识符必须以 下划线 或 字母 开头,字母严格区分大小写,不能使用C语言的关键字作为标识符。2、C语言中为了简化程序,提高程序的编译效率,在赋值运算符前面加上其他运算符号构成复合运算符。例如:x=x+5 用复合运算符可以写成 x+=5 。3、结构化程序设计的基本结构有三种,分别是顺序,选择和循环4、“: ?”条件运算符是C语言中唯一的三目运算符。由其连接的表达式为条件表达式,其格式为: ?: 。执行过程:首先计算表达式1的值,如果表达式1的值是“真”(非0),则整个表达式的值为 表达式2 的值如果表达式1的值是“假”(0),则整个表达式的值为 表达式3 的值。5、表达式10|20|30的值是 1 。 6、C语言中常用的三种循环控制语句中,while语句和for语句属于 当 型循环,dowhile语句属于 直到 型循环。7、 多分支选择结构,可以用嵌套的if语句和_switch_ _while_语句来实现。8、 break语句只能用于_switch_ _语句和_ 循环 _语句。9、已知字符A的ACSII码值为65,以下语句的输出结果是 B,66 。char ch=B; printf(%c,%dn,ch,ch); 10、 在定义时,对数组的每一个元素赋值叫数组的_初始化 _,对全部数组元素赋初值,可以不指定数组的_ _长度_。11、有定义int b7=3, 1, 2, 则b5的值为 0 。 12、在C语言中,头文件的扩展名是 .h 。13、int *p,i;p=&i;*p=5;中的两个*含义是不一样的,前者指 定义指针变量 后者指 对指针变量的引用 。14、若定义:int a=511,*b=&a;, 则printf(%dn,*b); 的输出结果为 511 。15、若C语言中定义了二维数组a22,则a中的元素为(按存储顺序写) a00,a01,a02,a10,a11,a12,a20,a21,a2216、 int *p,i;p=&i;*p=5;中的两个*含义是不一样的,前者指 定义指针变量 后者指 对指针变量的引用 。17、设有说明char str20, 如果想从终端上把以下字符“This is a book”送到数组str中,使用的完整语句为 gets(str); 。18、 有这样的定义:float a;float *point; a=8.23; 让指针point指向a的语句是_,point=&a_,当point指向a 后,_ _&a_与point等价,_a _与 *point等价。19、 数组定义和输出语句如下: Static char str =”abcxefg!”; Printf(“%4.5s”,str );则输出结果为_abcxe_ _。20、有这样的定义 : static int a5=1,2,3,4,5; int * p; p=&a0; 写出一个与p=&a0等价的语句 p=a ,*(p+1)的值是_2_ _,*(a+2)的值是_3_。 21、函数直接或间接地自己调用自己,称为函数的_递归调用_。22、在函数内部定义的只在本函数内有效的变量叫局部变量,在函数以外定义的变量叫全局变量。三、分析下列程序。1程序输出结果是 a=2,i=3 。#include void main()int i=2,a;a=i+;printf(“a=%d,i=%d”,a,i);2程序输出结果是 cap=12 。#include void main()int sum=10,cap=10; cap=sum+,cap+,+cap; printf(cap=%dn,cap);3. 程序输出结果是 x=14,y=4 。#include void main()int x=10,y=5;switch(x)case 1:x+;default :x+=y;case 2:y-;case 3:x-;printf(x=%d,y=%dn,x,y);4 程序输出结果是 x= 3 。#include void main()int x=3,y=1;if(x0) x=x+1; else x=x+2; printf(x=%dn,x); 2 2 3 9 10 65.给出下面程序运行结果 16 17 18 。#include void main()int a33=1,2,3,4,5,6,7,8,9;int i,j;for(i=0;i3;i+) for(j=0;j=j) aij+=aii;for(i=0;i3;i+)for(j=0;j3;j+) printf(%5d,aij);printf(n);6若键盘输入为 1 3 5 7 9 2 4 6 8 0,则程序输出结果是 0 8 6 4 2 9 7 5 3 1 。#include void main()int a10,i;for(i=0;i=0;i-) printf(%2d,ai);7. 给出下面程序运行 love china! H W 。#include void main() char *s2=I love China!; char *s3,c; char *s4=w; s3=&c; *s3=H; s2=s2+2; printf(%st%ct%sn,s2,*s3,s4);8.给出下面程序运行结果 abcd 123 。#include void main()char a50=abcd,b20=123456;int i,j;i=0;while(ai!=0) i+;for(j=0;bj!=0&j3;j+,i+)ai=bj;ai=0;printf(%s,a);9. 给出下面程序运行结果 10,10,10 。#include void main() int a,b,*ap,*bp; a=10; ap=&a; bp=&*ap; printf(%d,%d,%d,*bp,*ap,a); 10 若通过键盘输入2 3,给出下面程序运行结果 8.000000 。 #include #include float func(float x,float y) return(pow(x

温馨提示

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

评论

0/150

提交评论