大学C语言期末复习题.ppt_第1页
大学C语言期末复习题.ppt_第2页
大学C语言期末复习题.ppt_第3页
大学C语言期末复习题.ppt_第4页
大学C语言期末复习题.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、1,1. 以下语句中正确的是_。 printf(“%c”,x77A); B. printf(“%d”,77A); C. printf(“%d”,077A); D. printf(“%d”,0 x77A); 2. 已有声明:int x=3; 以下表达式中正确的是_ x+=+x | x+ B. x+2 = 5 C. x= +(x+1) D.x = +-x 3. 已知字符串“t”NameAddressn”,则其长度为_ A. 19 B. 15 C. 16 D. 17,D,A,B,2,4. sizeof ( 8.0 ) 的值为_ 5、已知有声明int x=1,y=2,z=3;则执行语句 xy?( z

2、-=-x):(z+=+y);后,x,y,z的值为_ 。,1,3,6,8,3,6、如有声明语句int x=1,y=2,z=3;则执行语句z=x+=2|y-;后变量x,y,z的值是 _。 7.已知有声明int a=1.5;float b=2.5;double c=3.5;long d; 表达式c=d=+a+b+的值是 _ 。 8. 假定某编译系统用2个字节存储int型整数,已知有声明int x ; 当x= _ 时 x+1x 成立。,2,2,2,4.0,32767,4,9. 下面程序的输出结果是_ #include main() int x=-1, y=4, t; t=(+x0) A. 3, 0,

3、0 B 4, 0, 1 C 3, 0, 1 D. 0, 4, 0,D,5,10 以下程序时输出结果为 _ . #include #define F1 1 #define F2 2 #define F3 3 main() int i,x=3,y=5; printf(n); for(i=0;i3;i+) switch (y%x) case F3-F2-F1: printf(%d,y); case F2-F1: printf(%d,y-);break; case F3-F1: printf(%d,-y);break; ,4433,6,11、函数root是一个采用半分区间法求解一元非线性方程cos(x

4、)=0在a,b区间的一个实根的通用函数,完成空出的语句。 #include double root(double a,double b) double x,y; if(_) printf( no root);return 0; x=(a+b)/2;y=cos(x); while(fabs(y)1e-6 ,cos(a)*cos(b)0,y*cos(a)0,(a+b)/2,return x,7,(1) 以下不能对二维数组a进行正确初始化的语句是(_) (A) int a23=0; (B) int a3=1,2,0; (C) int a23=1,2,3,45,6; (D) int a3=1,2,3,

5、4,5,6;,C,8,(2) 以下各组选项中,均能正确说明二维实型数组a的是(_) (A) float a34; (B) float a(3,4); float a4; float a34; float a3=1,0; float a=0,0; (C) float a34; (D) float a34; float a4=0,0; float a3; auto float a4=0,0,0;float a4;,C,9,(3) 若二维数组a有m列,则在aij之前的元素个数为(_) (A) j*m+1 (B)i*m+j (C) i*m+j-1 (D) i*m+j+1 (4) 下述对C语言字符数组的

6、描述中错误的是(_) (A) 字符数组可以存放字符串 (B) 字符数组中的字符串可以进行整体输入/输出 (C) 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 (D) 字符数组的下标从0开始,B,C,10,(5) 若要求:如果字符串s1大于字符串s2,则执行if语句的语句,应当使用(_) (A) if(s1s2) (B) if(strcmp(s1,s2) (C) if(strcmp(s2,s1)0) (D) if(strcmp(s1,s2)0) (6) 若用数组名作为函数调用时的实参,则实际上传递给形参的是(_) (A) 数组首地址 (B) 数组的第一个元素值 (C) 数组中全部元素的

7、值 (D) 数组元素的个数,D,A,11,(7) 阅读下列程序,选择程序的运行结果 #include #define FMT %Xn void main() static int a4=1,2,3,4,5,6,7,8,9,10,11,12; printf(FMT,a22); /* (_) */ printf(FMT,*(*(a+1)+1); /* (_) */ (1) (A) 11 (B) A (C) B (D) 前面三个答案均是错误的 (2) (A) 6 (B) 7 (C) 8 (D) 前面三个答案均是错误的,C,A,12,(8) 有已按升序排列的字符串a,下面的程序将字符串s中的每个字符按

8、升序插入a中 main() char a20=cehiknqtw“; char s=fbla; int i,k,j; for(k=0;sk!=0;k+) j=0; while(sk=aj 2. (A) ai=ai+1 (B) ai+1=ai (C) ai=ai-1 (D) ai-1=ai,B,B,13,(9) 下面函数fun()的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为0的元素中,其它依次类推。 fun(int x, int b) int k=0, r; do r=(_); bk+=r; x=(_); while(x); ,x%2,x/

9、2,14,(10) 说明语句int *(*p)();和int (*p)()中p的含义分别是(_) (A) p是一个指向int型数组的指针 (B) p是指针变量,它构成了指针数组 (C) p是一个指向函数的指针,该函数的返回值是一个整型 (D) p是一个指向函数的指针,该函数的返回值是一个指向整型数据的指针,D C,15,(11) double *p6和double (*p)6中p的含义分别是(_) (A) p是指向double类型变量的指针 (B) p是double类型数组 (C) p是指针数组 (D) p是数组指针,C D,16,(12) 已知int x=1,3,5,7,9,11,*ptr=

10、x; 则能够正确引用数组元素的语句是(_) (A) x (B) *(ptr-) (C) x6 (D) *(-ptr) (13) 已知int i,x34,(*p)4;则不能将x11的值赋给变量i的语句是(_) (A) i=*(*(x+1)+1); (B) p=x; i=*(*(p+1)+1); (C) i=*(*(x+1); (D) i=*(x1+1);,B,C,17,(14) 下列结论中唯一正确的是(_) (A) 函数的形式参数是自动变量 (B) 函数的形式参数是外部变量 (C) 函数的形式参数是静态变量 (D) 函数的形式参数可以根据需要来定义存储类型 (15) 下列结论中唯一一个错误的是(

11、_) (A) C语言允许函数的递归调用 (B) C语言中的continue语句,可以通过改变程序的结构而省略 (C) 有些递归程序是不能用非递归算法实现的 (D) C语言中不允许在函数中再定义函数,A,C,18,(16) 在下列结论中,正确的一个是(_) (A) 在递归函数中,不同层次的递归过程中的同名变量一定会产生互相影响。 (B) 在递归函数中,不同层次的递归过程中的同名变量可能会产生互相影响。 (C) 在递归函数中,不同层次的递归过程中的同名变量一定不会产生互相影响。 (D) C语言中无法得出上述3个结论之一,C,19,(17) 写出程序运行结果(_) fun(int n, int *s

12、) int f1,f2; if(n=1 | n=2) *s=1; else fun(n-1, ,8,20,(18) 以下程序运行时输出为_。 int f(int n) static int f1,f2,f; if(n=1)return f1=1; if(n=2)return f2=1; f=f1+f2; f1=f2; f2=f; return f; main() int i; for(i=1;i6;i+) printf(%d,f(i); ,1,1,2,3,5,21,(19) 用宏替代计算多项式4*x*x+3*x+2之值得函数f,正确的宏定义是(_) (A) #define f(x) 4*x*x

13、+3*x+2 (B) #define f 4*x*x+3*x+2 (C) #define f(a) (4*(a)*(a)+3*(a)+2) (D) #define (4*a*a+3*a+2) f(a),C,22,(20) 以下程序中,输出值是(_). #define M 3 #define N M+1 #define NN N*N/2 main printf(%dn,NN); (A) 8 (B) 6 (C) 9 (D) 5,B,23,(21) 以下程序运行时输出结果是(_) #define PT 3.14 #define S(x) PT*x*x void main() int a=2; pri

14、ntf(“%4.1f “,6.28/S(a); (22) 下面4个运算符中,优先级最低的是(_) (A) ( ) (B) . (C) - (D) +,8.0,D,24,(23) 已知定义 struct t1 union t2 int i; int i; char c; char c; float a; float a; ; ; 则sizeof(struct t1)=(_), sizeof(union t2)=(_)。,7,4,25,(24) 已有枚举类型定义enum letterA,B,C=7,D,E;, 以下表达式中除 ( _) 外,其它表达式的机内值均等于10。 A. xb-1 B. B+

15、E C. 010+2 D. 0 xf-3,D,26,(25) 输入学生的姓名和成绩,然后输出 struct stuinf char name20; int score; stu,*p; main() p= (A) (B) struct node *link; *head; main() char ch; struct node *p; head=NULL; while(ch=getchar()!=n) p=(struct node *)malloc(_); p-data=ch; p-link=(_); head=(_); while(p!=NULL) printf(%c,p-

16、data); p=p-link; ,sizeof(struct node),head,p,28,(27) 使用fgetc函数,则打开文件的方式必须是(_) (A) 只写 (B) 追加 (C) 读或者读/写 (D) B和C都正确 (28) 以下程序片断用于打开一个软盘上已经存在的数据文件out.dat,要求既可以读出文件中原有数据,也可以向文件中写入新的数据以更新原有数据: char mode5; FILE *fp; gets(mode); /* 给mode数组赋值 */ fp=fopen(“a:out.dat”,mode); 则给mode数组赋值的键盘输入应当为(_)。 (A). r (B).

17、 r+ (C). w+ (D). a+,C,B,29,(29) 设有以下结构类型: struct st char name8; int num; float s4; student50; 并且结构数组student中的元素都有值,如要将这些元素写到文件fp中,则下面错误的是(_) (A) fwrite(student,sizeof(struct st),50,fp); (B) fwrite(student,50*sizeof(struct st),1,fp); (C) fwrite(student,25*sizeof(struct st),25,fp); (D) for(i=0;i50;i+) fwrite(,C,30,(30) 函数rewind的作用是(_) (A) 使位置指针重新返回文件的开头 (B) 使位置指针指向

温馨提示

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

评论

0/150

提交评论