C语言_复习题_FXT352062_1112_第1页
C语言_复习题_FXT352062_1112_第2页
C语言_复习题_FXT352062_1112_第3页
C语言_复习题_FXT352062_1112_第4页
C语言_复习题_FXT352062_1112_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、C 语言复习题一、选择题 1、 字符串“ABC”在内存中占用的字节数是() A 5 B 4 C 7 D 0(第六章 数组(字符串)、 合法的C语言赋值语句是(B)A Aa:=b=8; B I+; C ac=8,bb=5; D y=int(a-b)(第三章 赋值语句)、如下的for循环:for(x=0,y=0;(y!=23)&(x4);x+); 是(C)A 不循环的 B 循环次数不确定 C 执行4次 D 执行8次(第五章 循环控制)、阅读程序 #include”stdio.h”#include”string.h”main() char sl=”AbCdEf”,s2=”aB”; sl+;s2+;

2、printf(“%dn”,strcmp(s1,s2); 上面程序的输出结果是(A) A 正数 B 负数 C 零 D 不确定的值(第六章 数组(字符串)、若x和y都是int型变量,x=210,y=100,且有下面的程序片段:printf(“%d”,x/y);上面的程序片段的输出结果是(B)A 1 B 2 C 3 D 2.1 (第三章 输出函数)、 以下将c定义成文件指针的是(B)A FILE *c; B FILE c; C file c; D file *c;(第十二章 文件)、 以下正确的变量标识符是()A 01bc B char C my_var D bc-cd(第一章 标识符)、表示关系x

3、yz的C语言表达式为()A (xy)&(yz) B (xy)与(yz)C (xyz) D (xy) and (yz)(第二章 关系表达式)、若变量已正确定义并赋值,下面符合C语言语法的表达式是(B) A c:=a+1 B a*=c+2 C int 28.3%4 D b=a+7=a+b(第二、三章 表达式,语句)、C语言程序中一行写不下时,可以(B)A 用冒号换行 B 用逗号换行 C 用空格换行 D 用回车换行 、设有以下程序段: char str=”hello”; char *ptr; ptr=str;执行完上面和程序后,*(ptr+5)的值为(B)A h B 0 C 确定的值 D “h”的地

4、址(第九章 指针)、以下程序片段的结果是(D)int x=23;do printf(“%2d”,x-);while(!x);A 打印出123 B 陷入死循环 C 不打印 D 打印出23(第三、五章 输出语句,循环结构)、表达式(”abcd”abd”)的值为_A_ A 1 B 0 C -1 D 2(第二章 表达式)、有定义char a=”hello”; 则strlen(a)=5,a有_B_个元素A 5 B 6 C 7 D 8(第五章 字符串)、下面哪个运算符被称为取地址运算符:_B_A * B & C % D (第九章 指针)、 有如下程序段:int x=10,y=3;printf(“%dn”,

5、y=x/y);输出结果是: C A) 0 B) 1 C) 3 D) 3.333333 (第三章 赋值语句)、下列运算符中,优先级最低的是: A A) | B) != C) = D) +、请选出可用作C语言用户标识符的一组标识符: B A) void B) a3_b3 C) For D) 2a define _123 -abc DO WORD IF Case sizeof (第二章 标识符)、以下说法中正确的是: C A)#define和printf都是C语句 B)#define是C语句,而printf不是 C)printf是C语句,但#define不是 D)#define和printf都不是C

6、语句 (第三章 语句概述)、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是: C A)1 B)2 C)2.0 D)2.5 (第二章类型混合运算)、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是: C A)c=b=a; B)(a=c)(b=c); C)(a=c)&(b=c); D)a=c=b; (第四章 关系表达式) 、有以下程序 #include main() int a,b,c=246; a=c/100%9; b=(-1)&(-1); printf(%d,%dn,a,b); 输出结果是: A A) 2,1 B) 3,2 C) 4,3 D) 2,-1

7、(第四章 逻辑运算符)、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为: D A)a0 B)!a C)a=0 D)a (第4章 条件表达式) 、假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表 1 示代数式 - 的表达式是: D abc A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)cD) 1.0/a/b/c (第二章 类型混合运算)、下面哪个程序段不是死循环: C (A) a=0; sum=0;while(a=1)sum=sum+a;a+; (B) int I,sum=0; For(i=1;i=3;su

8、m+) sum+=I; (C) sum=0; for(i=1;i10;i+); sum=sum+i; (D) sum=0; for(i=1; ;i+) sum=sum+i;(第五章 for循环语句) 、 运行以下程序后,如果从键盘上输入 china#,则输出结果为: C A) 2,0 B) 5,0 C) 5,5 D) 2,5 #include main() int v1=0,v2=0; char ch; while(ch=getchar()!=#) switch(ch) case a; case h; default; v1+; case 0; v2+; printf(%d,%dn,v1,v2

9、); (第四章 switch语句) 、执行下面的程序后,a的值为: B main() int a,b; for (a=1,b=1;a=20)break; if(b%3=1) b+=3; continue; b-=5; A)7 B)8 C)9 D)10 (第5章 break,continue 语句)、不能把字符串:Hello!赋给数组b的语句是: B A)char b10=H,e,l,l,o,!;B)char b10;b=Hello!;C)char b10;strcpy(b,Hello!);D)char b10=Hello!; (第6章 字符数组的使用)、给出以下定义: char x =abcd

10、efg; char y =a,b,c,d,e,f,g; 则正确的叙述为: C A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同 C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度 (第6章 字符数组的定义)、以下程序运行后,如果从键盘上输入: book book 则输出的结果是: B A) *8 B) #9 C) #6 D) *9 #include main() char a180,a280,*s1=a1, *s2=a2; gets(s1); gets(s2); if(! strcmp(s1,s2) printf(*); esle printf(#); printf

11、(%d/n,strlen(strcat(s1,s2); (第6章 字符串处理函数;第9章 字符串指针)、下面哪个程序段编译会出错: D A) max(int x,int y,int *z) B) max(int x, int y) *z=xy?x:y; return xy?x:y;C) max(int x,int y) D) int max(int x, y) int z; int z z=xy?x:y; z=xy?x:y; return z; return z; 1、若有以下定义和语句: int w23,(*pw)3; pw=w; 则对w数组元素非法引用是: B A)*(w0+2) B)*(

12、pw+1)2 C)pw00 D)*(pw1+2) 2、设有如下程序 : B #include main() int *k, *j, i=100; j=&i; k=&j; printf(%dn, *k); 上面程序的输出结果是 A) 运行错误 B) 100 C) i的地址 D) j的地址 (第9章 指向指针的指针)33、若已知a=10,b=20 则表达式!a0;y-) if(y%3=0) printf(“%d”,-y);continue;运行结果:8522, #include”stdio.h” main() int n2,I,j,k; for(I=0;I2;I+) nI=0; k=2;for(I

13、=1;Ik;I+)for(j=0;jk;j+) nj=nI+1; printf(”%d”,nj); 运行结果:1113、main( ) int i;for(i=1;iy) t=x; x=y; y=t; if(xz) t=x; x=z; z=t; if(yz) t=y; y=z; z=t; printf(“x=%d, y=%d, z=%dn”, x,y,z);若输入为66,21,9,执行结果为 程序运行结果:x=9,y= 21,z= 66 三、简答题(1) 简述C语言中有哪几种语句,并举例?(P43) 5种。(控制、函数、表达式、空、复合语句)(2) 分别各列出两种C语言中的输入输出函数,并例举

14、出每个函数的使用格式? Getchar(); putchar(); printf();scanf() (p48)(3) 简述C语言中三种循环结构的特点。 (p84)while ; do_while ; for (4) 简述C语言中全局变量与局部变量的区别,以及对程序调用的影响?(P146)全局:函数体外定义的变量;局部:函数体内定义的变量;全局对各个程序中的修改都起作用。(5) 简述C语言中动态变量与静态变量的区别,以及对程序调用的影响?(P150)动态:auto; 静态:static ,静态变量存储在专用的静态存储区中,在函数结束是不会消失,下次对函数调用有起作用,直到整个程序运行结束才消失

15、。 (6) 分析数组指针和指向数组的指针有何区别?(p190) 定义方式不同;意义不同。(7) 分析什么是形式参数,实际参数?比较实际参数是数组名和数组元素时有何区别?(p123)数组元素是一般值传递,数组名是传递的地址,因此, 对主调函数的影响也不同。 (8) 简述文件操作的步骤?(p292) 1、文件指针的定义2、文件打开3、文件读写4、文件关闭 (9)C语言中十进制、八进制、十六进制表示的方法是什么?十进制数100表示为八进制、十六进制分别是什么? (0144,0X64)(10)简述break;和 continue;语句的不同? break;跳出循环结构,执行循环结构后面的语句。 con

16、tinue;跳出本次循环,回到循环开头重新执行四、编程题【程序1】题目:输入三个整数x,y,z,请把这三个数由小到大输出。1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换, 然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。2.程序源代码:main()int x,y,z,t;scanf(%d%d%d,&x,&y,&z);if (xy)t=x;x=y;y=t; /*交换x,y的值*/if(xz)t=z;z=x;x=t;/*交换x,z的值*/if(yz)t=y;y=z;z=t;/*交换z,y的值*/printf(small to

17、big: %d %d %dn,x,y,z);-【程序2】题目:输出9*9口诀。1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。2.程序源代码:#include stdio.hmain() int i,j,result; printf(n); for (i=1;i10;i+) for(j=1;j10;j+) result=i*j; printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/ printf(n);/*每一行后换行*/ -【程序3】题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 2.程序源代码:#include math.hmain() int m,i,k,h=0,leap=1; printf(n); for(m=101;m=200;m+) k=sqrt(m+1); for(i=2;i=k;i+) if(m%i=0) leap=0;break; if(leap) printf(%-4d,m);h+; if(h%10=0) printf(n); leap=1; printf(nThe total is %d,h);-【程序4】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各

温馨提示

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

评论

0/150

提交评论