C语言期末考试题目_第1页
C语言期末考试题目_第2页
C语言期末考试题目_第3页
C语言期末考试题目_第4页
C语言期末考试题目_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、、单项选择题1.已知:int a, *y=&a ;则下列函数调用中错误的是 A) seanf(%d, &a);C) printf(%d, a);B) scanf(%d, y); D) printf(%d, y);2.说明语句int (*p)();的含义是。A) p是一个指向一维数组的指针变量B) p是指针变量,指向一个整型数据C) p是一个指向函数的指针,该函数的返回值是一个整型D) 以上都不对3.设有说明int (*p)4;其中的标识符p是。A) 4个指向整型变量的指针变量B) 指向4个整型变量的函数指针C) 一个指向具有4个整型元素的一维数组的指针D) 具有4个指向整型变量的指针元素的一维

2、指针数组4. 已知:char s10, *p=s,贝U在下列语句中,错误的语句是 。A) p=s+5 ;B) s=p+s;C) s2=p4 ;D)*p=s0;5. 已知:char s100; int i;则引用数组元素的错误的形式是 。A) si+10B) *(s+i)C)*(i+s)D)*(s+)+i)6. 已知:char s6, *ps=s;贝9正确的赋值语句是 。A) s=12345 ;B) *s=12345;C) ps=12345;D)*ps=12345;7. 已知:char a310=Be Jin g,Sha ngHai,Tia nJi n,*pa=a ;不能正确显示字符串Shang

3、Hai的语句是。A) printf(%s,a+1) ;B) printf(%s,*(a+1);C) printf(%s,*a+1) ;D) printf(%s,&a10);8. 已知: int a43=1,2,3,4,5,6,7,8,9,10,11,12;int (*ptr)3=a,*p=a0;则以下能够正确表示数组元素a12的表达式是。A) *(*(a+1)+2) B) *(*(p+5)C) (*pt 叶1)+2D) *(ptr+1)2)9. 已知:int a =1,2,3,4,5,6,7,8,9,10,11,12,*p=a;则值为 3 的表达式是A) p+=2,*(p+) B) p+=2,

4、*+pC) p+=2,*p+D) p+=2,+*p10. 已知:int a=1,2,3,4, y, *p=a;则执行语句y = (*+p)-;之后,数组a各元素的值变 为。A) 0,1,3,4B) 1,1,3,4C) 1,2,2,4D) 1,2,3,3变量y的值是。A) 1B) 2C) 3D) 411.已知:int a =1,3,5,7, y *p= a ;为使变量y的值为3,下列语句正确的是 A) y=+*p+ ; B) y=+(*p+) ; C) y=(+*p)+ ; D) y=(*+p)+ ;12.已知:int x = 1,3,5,7,9,11 ,*ptr=x ;则能够正确引用数组元素的

5、语句是 A) xB) *(ptr-)C) x6D) *(-ptr)功能的函数是。A) funa (int *x, i nt *y) int *p ;p=x ; *x=*y ; *y=*p ; C) func (int *x, i nt *y) *x=*y ; *y=*x ; 13. 函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此B) funb (int x, i nt y) int t ; t=x; x=y ; y=t ;D) func (int *x, i nt *y) *x=*x+*y ; *y=*x-*y ; *x=*x-*y ; 14. 有定义如下:str

6、uct sk int a ; float b ;data ,*p ;data的成员a的正确引用是。C) p-data.aD) p.data.a如果p=&data ;则对于结构变量A) ( *) .data.a B) (*p).a 15.已知:struct st int n ;struct st *n ext ;static struct st a3=1,&a1,3,&a2,5,&a0,*p ;如果下述语句的显示是2,则对p的赋值是。printf(%d,+(p-next-n);A) p=&a0 ;B) p=&a1 ; C) p=&a2 ;D) p=&a3; 16.已知:struct pers o

7、n char n ame10;int age;class10=LiMing,29,ZhangHong,21,WangFang,22; 下述表达式中,值为72的一个是。A) class0-age + class1-age+ class2-ageB) class1. name5C) perso n1. name5D) clase-n ame517. 已知:struct int i ;char c;float a ;test ;贝U sizeof(test)的值是。A) 4B) 5C) 6D) 718. 已知:union int i ;char c;float a ;test ;贝U sizeof(

8、test)的值是。A) 4B) 5C) 6D) 719. 已知:union u_type int i ;char ch;float a;temp ;现在执行temp.i=266 ; printf(%d,temp.ch)的结果是。A) 266 B) 256 C) 10 D) 120. 若有以下程序段:struct dent int n ;int *m ;int a=1,b=2,c=3;struct dent s3 = 101,&a,102,&b,103,&c;struct dent *p=s;则以下表达式中值为2的是。A) (p+)-mB) *(p+)-mC) (*p).mD) *(+p)-m2

9、1. 若有以下说明语句,则对结构变量pup中sex域的正确引用是 struct pupilchar n ame20;int sex;pup,*p ;p=&pup;A) p.pup.sexB) p-pup.sex C) (*p).pup.sex D) (*p).sex22. 以下对结构变量stul中成员age的非法引用是。struct stude nt int age;int num ;stu1,*p ;p=&stul ;A) stul.ageB) stude nt.ageC) p-ageD) (*p).age23. 若有以下定义和语句:union data int i ;char c;floa

10、t f ;a ;int n ;则以下语句正确的是。A) a=5;B) a=2,a,1.2 ;C) printf(%dn,a) ; D) n=a;24. 已知:struct sk int a ;int age;date,*p ;如果要使指针p指向data中的成员a,正确的赋值语句是 。A) p = (struct sk *)&data.a ;B) p = (struct sk *)data.a;C) p = & data.a;D) *p = data.a;25.已知 enum week sun,mon,tue,wed,thu,fri,satday;则正确的赋值语句是 A)sun=0;B) san

11、=day;C) sun=mon;D) day=s un;26. 已知 enum color red,yellow=2,blue,white,blackren ;执行下述语句的输出结果是 printf(%d,ren=white);A) 0B) 1C) 3D) 427. 已知enum namezhao=1,qian,sun,liman;执行下述程序段后的输出是 。man=0;switch(ma n) case 0: prin tf(Peoplen);case 1: printf(Mann);case 2: prin tf(Woma nn);default: printf(Errorn);A) Pe

12、ople B) ManC) Woma nD)Error28.下述关于枚举类型名的定义中,正确的是 。A) enem a= on e,two,three ;B) enem a on e=9,two=-1,three ;C) enem a=one,two,three ;D) enem a one,two,three;29. C语言中标准输入文件stdin是指A)键盘B)显示器 C)鼠标D)硬盘30.要打开一个已存在的非空文件file用于修改,选择正确的语句A) fp=fopen(file, r);C) fp=fopen(file, w);B) fp=fopen(file, a+);D) fp=fo

13、pen(file,叶);31.当顺利执行了文件关闭操作时,fclose函数的返回值是A) -1B) TRUEC) 0D) 132. fscanf函数的正确调用形式是 。A)fscanf (文件指针,格式字符串,输出列表);B)fscanf (格式字符串,输出列表,文件指针);C)fscanf (格式字符串,文件指针,输出列表);D)fscanf (文件指针,格式字符串,输入列表); OD)参考答案B和C都正确33.使用fgetc函数,则打开文件的方式必须是 A)只写B)追加C)读或读/写34.已知宏定义#define N 3#define Y(n) (N+1)* n)执行语句z=2*(N+Y(

14、5+1);后,变量z的值是A) 42B) 48C) 52D)出错35. 已知宏定义 #define SQ(x) x*x,执行语句printf(%d,10/SQ(3);后的输出结果是 A) 1B) 3C) 9D) 1036. 下面程序的输出结果是。void mai n() int a=1,2,3,4,5,6;int *p ;p=a ;prin tf(%d ,*p);prin tf(%d ,*(+p);prin tf(%d ,*+p)prin tf(%d ,*(p-)p+=3 ;prin tf(%d %d ,*p,*(a+3);A) 1 2 3 3 5 4B) 1 2 3 4 5 6C) 1 2

15、2 3 4 5D) 1 2 3 4 4 537. 下面程序的输出结果是。void mai n() int a34=1,2,3,4,5,6,7,8,9,10,11,12;int *p=a ;P+=6 ;printf(%d ,*p);/* */printf(%d ,*(*(a+6);/* */printf(%d ,*(a1+=2);/* */printf(%d,*(&a00+6); /* */A) 7 7 7 7B)句语法错误 C)句语法错误 D)句语法错误38. 下面程序的输出结果是#defi ne FMT %Xn#include mai n()39.printf( FMT, a22);prin

16、tf( FMT, *(*(a+1)+1)/* */;/*/A) 9B) 11C) AD) BA) 6B) 7C) 8D)前面三个参考答案均是错误的static int a 4 = 1,2,3,4,5,6,7,8,9,10,11,12 o下面程序的输出结果是#include void mai n () int a=1,2, 3, 4, 5 int x, y, *p ; P=&a0; x=*(p+2); y=*(p+4); prin tf(%d,%d,%dn, *p, x, y)A) 1,3,5B) 1,2,3C) 1,2,4D) 1,4,540. 下面程序的输出结果是void ive(x ,n)

17、 int x,n; int t,*p ;p=x+n-1 ;while(xvp) t=*x*x+=*p;*p-=t ;return ;void mai n() int i,a=1,2,3,4,5,6,7,8,9,0;ive(a,10);for(i=0 ; i10 ; i+)prin tf(%d ,ai);prin tf(n);A) 1 2 3 4 5 6 7 8 9 0B) 0 9 8 7 6 5 4 3 2 1C) 1 3 5 7 9 2 4 6 8 0D) 0 8 6 4 2 9 7 5 3 141. 下面程序的输出结果是。#i nclude stri ng.hfun( char *w,i

18、nt n) char t,*s1,*s2;s1=w ; s2=w+n-1 ;while(s1s2) t=*s1+;*s1=*s2-;*s2=t ;void mai n() static char *p=1234567;fun( p,strle n( p);prin tf(%s,p);D) 1711717A) 7654321B)1717171C) 717171742. 下面程序的输出结果是。#include char *p = abcdefghijkl mno pq;void mai n() int i=0 ;while( *p+!=e);prin tf(%cn, *p)A) cB) dC) e

19、D) f43. 下面程序的输出结果是。#include f(i nt x, int y) return (y-x);void mai n() int a=5, b=6, c ;int f(), (*g)()=f;printf(%dn, (*g)(a,b);A) 1B) 2C) 3 D)前面三个参考答案均是错误的44. 下面程序的输出结果是。#i nclude void mai n() int a=1,*p,*pp;PP=&P ;P=&a ;a+ ;printf (%d,%d,%dn, a,*p, *pp);A) 2,1,1 B) 2,1,2 C) 2,2,2 D)程序 有错误45. 下面程序的

20、输出结果是ovoid mai n()char *alpha7=ABCD,EFGH,IJKL,MNOP,QRST,UVWX,YZchar *p ;int i ;p=alpha ;for(i=0 ; i4 ; i+)prin tf(%c,*(pi)prin tf(n);A) AEIMB) BFJNC) ABCDD) DHLP46. 以下程序的输出结果是A) 15 B) 100 C) 10 D) 150#define MIN(x,y) (x)(y)?(x):(y)void mai n()int i,j,k;i=10: j=15; k=10*MIN(i,j);prin tf(%dn,k); 1.104

21、7. 以下程序的输出结果是A) 11.10B) 12.00C) 21.10D)void fun (float *p1,float *p2,float *s)s=(float *)calloc(1,sizeof(float);*s=*p1+*p2+;void mai n()float a2=1.1,2.2,b2=10.0, 20.0,*s=a;fun (a,b,s);prin tf(%5.2fn,*s);D)5,-2,-748. 以下程序的输出结果是A)5,2,3 B)-5,-12,-7 C)-5,-12,-7void sub(i nt x,i nt y,i nt *z)*z=y-x;void mai n()int a,b,c;sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);prin tf(%d,%d,%dn,a,b,c);二、程序完善题1. 下面程序的功能是实现数组元素中值的逆转。#i nclude void mai

温馨提示

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

评论

0/150

提交评论