C语言老师给的题库.doc_第1页
C语言老师给的题库.doc_第2页
C语言老师给的题库.doc_第3页
C语言老师给的题库.doc_第4页
C语言老师给的题库.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

单项选择=题号:16604以下语句中有语法错误的是( )。A、printf(%f,0e2);B、printf(%s,0x2);C、printf(%d,0e);D、printf(%d,Ox2);答案:C题号:16599以下选项中不能用作变量名的是( )。A、_float B、switch C、_123D、sum答案:B题号:16600以下选项中,不能用作标识符的是( )。A、 &a B、 FOR C、printD、_00答案:A题号:16640设有四个常数:4e0.5,87,0x5a,“”,其中符合C语法规则的常量是( )。A、 B、C、 D、答案:A题号:16721已知有声明int m=5,4,3,2,1,i=0;,下列对m数组元素的引用中,错误是_。A、m2*2 B、m5 C、m+iD、mm4答案:B题号:16705以下关于c语言函数的叙述中,正确的是(_)A、在一个函数体中可以定义另一个函数,也可以调用其他函数B、在一个函数体中可以调用另一个函数,但不能定义其他函数C、在一个函数体中可以定义另一个函数,但不能调用其他函数D、在一个函数体中不可以调用另一个函数,也不能定义其他函数答案:B题号:16603以下局部变量声明中正确的是( )。A、void a=0;B、 int a, b=a=0;C、int a=b=0;D、int char=2答案:B题号:16700函数返回值的类型应由(_)决定。A、return中的表达式类型B、调用该函数的主调函数类型C、实参类型D、定义函数所指定的类型答案:D题号:16720下列数组定义中正确的是_。A、int a12; B、int a33; C、int a2=1,2,3;D、int a22=1,2;答案:D题号:16703以下叙述中错误的是 (_)A、用户定义的函数中若没有return语句,则应当定义函数为void类型B、用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C、函数的return语句中可以没有表达式D、用户定义的函数中可以没有return语句答案:B题号:16611已有声明“int x,a=3,b=2;”,则执行赋值语句“x=ab+?a+:b+;”后,变量x、a、b的值分别为( )。A、 3 3 3 B、3 4 3 C、3 3 4D、4 3 4答案:B题号:16622关于以下程序的说法中正确的是( )。#include void main() int x=3,y=0,z=0; if(x=y+z) printf(11n); else printf(22n);A、输出11 B、输出22C、有语法错误不能通过编译D、能通过编译,但不能运行答案:B题号:16645下列条件语句中,功能与其他语句不同的是( )。A、if(a=0) printf(%dn,y); else printf(%dn,x);B、if(a=0) printf(%dn,x); else printf(%dn,y);C、if(a!=0) printf(%dn,x); else printf(%dn,y);D、if(a) printf(%dn,x); else printf(%dn,y);答案:B题号:16651设e1和e3是表达式,则与“for(e1; e3)s;”等同的语句是( )。A、for(e1;e1;e3) s;B、for(e1;0;e3)s;C、for(e1;e3;e3) s;D、for(e1;1;e3) s;答案:D题号:16605已知有声明int a=3,b=4,c=5;,以下表达式中值为0的是( )。A、a|b&cB、a=b C、!(!c|1) 双竖线为或D、a&b答案:C题号:16708以下叙述中不正确的是(_)A、在C中,外部变量的隐含类别是自动存储类别。B、在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。C、在C中,函数形参可以说明为register变量。D、在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。答案:A题号:16716以下关于预处理命令的叙述中错误的是(_)A、预处理命令由预处理程序解释B、预处理命令既可以出现在函数定义的外部,也可以出现在函数体内部C、程序中的预处理命令是以#开始的D、若在程序的一行中出现多条预处理命令,这些命令都是有效的答案:D题号:16638以下符合操作数必须是整型的运算符是( )。A、%B、/C、+= D、=答案:A题号:16697以下函数定义中能正确编译的是(_)。A、double fun(int x, y) int z=x+y; return z;/定义问题B、double fun(int x,int y) int x,y; double z; z=x+y; return z;/重复定义C、double fun(int x,int y) double z; z=x+y; return z;D、double fun(int x,int y) z=x+y; return z;/z未定义答案:C题号:16620设有变量说明“int a=3,b=4,c=5;”,下列表达式中,值为0的表达式是( )。 A、a&b B、a|b+c&b-c C、a=bD、!(ab& cb|b)答案:D题号:16717某程序需要使用一个代表常数3.14的符号常量P,以下定义中正确的是(_)A、#define P 3.14B、#define P 3.14 ;C、#define P=3.14 ;D、#define P(3.14);答案:A题号:16646以下if结构形式错误的是( )。A、if(xy) x+;y+;D、if(x=y) x+=y;答案:B题号:16710关于局部变量,下面说法正确的是(_)A、定义该变量的复合语句中的定义处以下的任何语句都可以访问B、定义该变量的程序文件中的函数都可以访问C、定义该变量的函数中的定义处以下的任何语句都可以访问D、定义该变量的函数中的定义处以上的任何语句都可以访问答案:A题号:16593以下叙述中正确的是( )。A、用户定义的函数可以被一个或多个函数调用任意多次B、C语言系统以函数为单位编译源程序 /以代码文件为单位C、在一个函数体内可以定义另外一个函数 /不可以D、main函数必须放在程序开始 /不一定答案:A题号:16614已知某编译系统中signed int 类型数据的长度是16位,该类型数据的最大值是( )。A、32768B、32767C、65535D、127答案:B题号:16714以下程序程序运行后的输出结果是(_) # define f(x) (x*x)void main() int i1, i2; i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ; printf(%d, %dn,i1,i2); A、64, 64B、4, 3C、4, 4D、64, 28答案:B/本题考套的是宏定义。对带参数的宏的展开只是将语句中宏名后面括号内的实参字符串代替#define命令行中的形参。本题中“i1=f(8)/f(4)”用#define f(x)(x*x)代替得i1=(8*8)/(4*4),结果为4;i2=f(4+4)/f(2+2)用“#define f(x)(x*x)”代替得i2=(4+4+4+4)/(2+2+2+2),求得结果为3。故本题输出的值为4,3题号:16633以下程序中,while循环的循环次数是( )。void main() int i=0; while(i10) if(i1) continue; if(i=5) break; /死循环 i+; A、死循环B、1C、10D、6答案:A题号:16706以下只有在使用时才为该类型变量分配内存的存储类说明是(_)A、register和 staticB、auto和 registerC、auto和 staticD、extern和 register答案:B题号:16598以下常量表示中正确的是( )。A、aEb /e后面须为整数B、5L C、 3.14U /看不懂D、 xff /看不懂答案:B题号:16715以下叙述中错误的是(_)A、在函数外声明的变量,其值可以保存到该程序运行结束B、函数调用时在函数内声明的变量所得到的值将无法保存到该函数的下一次调用 /三短一长选最长C、变量声明的位置决定了该变量名的使用范围D、在函数外可以声明变量答案:B填空=题号:16753设有两个语句”int xa; scanf(%d,x);”,则编译认为_语句是错误的。答案:空 1:后一个题号:16748设有以下宏定义:#define N 3#define Y(n) (N+1)*n)则执行语句“z=2*(N+Y(5+1);”后,z的值是(_)/z=2*(3+4*5+1) 注意5+1没有括号,5和前面(N+1)同时运算 答案:空 1:48题号:16746以下程序的运行结果是(_)#includestdio.hint func(int m) static int k=1; while(m)k*=m-; return k;void main( ) int i,j; i=func(3); j=func(5); printf(%d %dn,i,j);答案:空 1:6 720题号:16747在函数内部声明局部变量时缺省了存储类型,该变量存储类型为_答案:空 1:auto题号:16733以下程序运行时输出结果是(_)#includeint f(int x, int y) return x+y; void main() double a=5.5, b=2.5; printf(%d,f(a,b); /int取整很关键好吧答案:空 1:7题号:16682有语句“int a=10,b=20,c=30;”, 以下语句执行后变量a、b、c的值分别是_、_和_。 if(a=b) a+=b;b+=a;c=+a;答案:空 1:10空 2:30空 3:10 / =+可能就是赋值的意思题号:16756数组作参数时,若函数中改变了形参数组某元素的值,则实参数组对应元素的值_。数组元素作参数时,若函数中改变了形参数组元素的值,则实参数组元素的值_。(改变/不改变)答案:空 1:改变空 2:不改变题号:16685若有“int j=10;” 则执行完语句“while (j=0) j+;”后j的值为_。答案:空 1:10题号:16731以下程序运行时输出结果是(_)#include void func(int b) int a; a=b; b=10; void main() int a=10,b=20; func(b); printf(%d,%d,a,b); 答案:空 1:10,20题号:16676当_语句被执行时,程序的执行流程无条件地从一个函数跳转到另一个函数。答案:空 1:return/很关键!题号:16681语句“int x=-5; printf(%dn,x0?1:x0?-1:0);”的输出的结果为_。答案:空 1:-1/*题号:16675以下程序输出的第一行是_,第二行是_。#include void main() int x=0,y=0; int i,j; for(i=0;i4;i+) x+; for(j=0;j5;j+) if(j%2)y+;continue; x+; printf(x=%dn,x); printf(y=%dn,y);答案:空 1:x=16空 2:y=8题号:16745以下程序的运行结果是(_)#includestdio.h#define PI 3.14#define F(y) (y)*(y)#define P(a) printf(%d,a)void main() int x=PI;P(F(1+2)*x);答案:空 1:27题号:16659已知有声明char ch=g;,则表达式ch=ch-a+A的值为字符_的编码。答案:空 1:G题号:16740以下程序运行时输出到屏幕的结果是 (_)#includelong f(int n) static long s; if(n=1) return s=2; else return +s;void main() long i,sum=0; for(i=1;i4;i+) sum+=f(i); printf(%ld,sum);答案:空 1:9题号:16654大多数C程序都要包含_头文件,该文件包含了所有输入/输出操作。答案:空 1:stdio.h题号:16672以下程序运行时输出结果是_。#includemain() int s=1,n=235; do s*=n%10; n/=10; while(n); printf(%dn,s);答案:空 1:30题号:16665已有声明“double x=3.5;”,表达式“(int)x+x”值的类型是_语句。答案:空 1:double/*题号:16743以下程序运行时输出到屏幕的结果第一行是(_),第二行是(_) ,第三行是(_) #includeint g(int x,int y) return x+y;int f(int x,int y) static int x=2; if(y2) x=x*x; y=x; else y=x+1; return x+y;void main() int a=3; printf(%dn,g(a,2); printf(%dn,f(a,3); printf(%dn,f(a,2);答案:空 1:5空 2:7空 3:8题号:16661执行程序段int x=0x6c;printf(x=%dn,x);后的输出结果为_。答案:空 1:x=108题号:16686与“while(!a)”中的“!a”等价的表达式是_。答案:空 1:a=0题号:16670以下程序运行时输出结果为_。#include void main() int i,sum=0; for (i=0;i5;i+) switch(i) case 0: case 1: sum+; case 3: sum+; case 4: sum-; break; printf(%dn,sum);答案:空 1:1题号:16688continue语句只能用在_语句中。答案:空 1:循环题号:16758函数fun的功能是:输出n(n10)阶杨辉三角形,形式如下,请填空。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 void fun(int a10,int n) int i,j; for(i=0;in;i+) ai0=aii=_; for(i=2;in;i+) for(j=1;ji;j+) aij=_; for(i=0;in;i+) for(j=0;_;j+) printf(”%d ”, aij); printf(”n”); 答案:空 1:1空 2:ai-1j-1+ai-1j空 3:j=i题号:16737以下程序运行时输出到屏幕的结果是 (_)#include void fun(int m,int n)if(m=n) printf(%d,m); else fun(m+1,n); printf(%d,m); void main() fun(1,2); 答案:空 1:2 2 1题号:16749以下程序该程序运行后,输出x的值是_,y的值是_#includeint x=1;int f(int x) if(x=3) int x=2; return x; else return x;void main() int y; y=f(3);printf(%dn%d,x,y);答案:空 1:1空 2:2题号:16757以下程序运行时输出到屏幕的结果中第一行是_,第二行是_。#include#define M 3#define N 4void fun(int aMN) int i, j, p; for(i = 0; i M; i+) p = 0; for(j = 1; j aij)p = j; printf(% dn, aip); void main() int aMN = -1, 5, 7, 4, 5, 2, 4, 3, 8, 2, 3, 0; fun(a);答案:空 1:-1空 2:2题号:16683若有 int i=5, j=10; 则执行完以下语句后i和j的值分别为_和_。switch ( i ) case 4: j+; break; case 5: i-; case 6: j+; break; case 7: j-=i; break; default: ;答案:空 1:4空 2:11题号:16662已有声明“int n=12;double a;”,则执行语句“a=n/=5;”之后,a的值为_。答案:空 1:2.000000题号:16741以下程序运行时输出到屏幕的结果中第一行是(_),第二行是(_)#include#define f(x,y) y=x*xvoid g(int x,int y) y=x*x; void main() int a=2,b=0,c=2,d=0; f(a,b); g(c,d); printf(%dn%d,b,d);答案:空 1:4空 2:0程序设计=题号:5355/*-【程序设计】-功能:编写函数fun求1!+2!+3!+ +n!的和,在main函 数中由键盘输入n值,并输出运算结果。请编写fun 函数。例如:若n值为5,则结果为153.000000。-*/ #include stdio.hfloat fun(int n) /*Begin*/ /* End */ void TestFunc() FILE *IN,*OUT; int i; int iIN; long int iOUT; IN=fopen(in.dat,r); if(IN=NULL) printf(Please Verify The Currernt Dir.It May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed); for(i=0;i10;i+) fscanf(IN,%d,&iIN); iOUT=fun(iIN); fprintf(OUT,%ldn,iOUT); fclose(IN); fclose(OUT);main() int n; float result; scanf(%d,&n); result=fun(n); printf(%fn,result); TestFunc();示例代码:int i;float f=1,s=0;for(i=1;i=n;i+) f=f*i; s=s+f; return s;题号:486/* 编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 例如:若n的值为11时,则函数值为:1.833333 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include #include #include #includefloat fun(int n) /* Begin */ /* End */NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int n,j;float s; FILE *rf,*wf; rf = fopen(b25.in,r); wf = fopen(a25.out, w) ; for (j=0;j4;j+) fscanf(rf,%d,&n); s=fun(n); fprintf(wf,the result is:%fn,s); fclose(rf); fclose(wf) ; main() int n;float s; system(cls); printf(nPlease enter N:);scanf(%d,&n); s=fun(n); printf(the result is:%fn,s); NONO();示例代码:int i; float s=1.0,h=1; for (i=2;i=n;i+) h=h+i; s=(float)(s+1.0/h); return(s);程序填空=题号:11504/*-【程序填空】-功能:用结构体调用的方法编程。要求输入A,B,C,D,E,F五 个元素的数值,并按从大到小的顺序输出。-*/#define N sizeof tbl/sizeof tbl0 /*取得数组有多少个元素*/int A,B,C,D,E,F;struct ele char vn; /*FILL*/ int _; tbl=A,&A,B,&B,C,&C,D,&D,E,&E,F,&F,t;main() int k,j,m; /*FILL*/ for(k=0;k0) for(k=j=0;jm;j+) /*FILL*/ if(*tblj.vp_) t=tblj; tblj=tblj+1; tblj+1=t; k=j; /*FILL*/ _; for(k=0;kN;k+) printf(%c(%d),tblk.vn,*tblk.vp); printf(n); 答案:位置 1:*vp位置 2:N位置 3:*tblj+1.vp 【或】 *tblj+1.vp位置 4:m=k题号:11529/*-【程序填空】-功能:十个小孩围成一圈分糖果,老师分给第一个小孩 10 块,第二 个小孩 2 块,第三个小孩 8 块,第四个小孩 22 块,第五个 小孩16 块,第六个小孩 4块,第七个小孩 10 块,第八个小孩 6 块,第九个小孩 14 块,第十个小孩20 块。然后所有的小孩 同时将自己手中的糖分一半给左边的小孩;糖块数为奇数的人 可向老师要一块。问经过这样几次调整后大家手中的糖的块数 都一样?每人各有多少块糖? -*/main() int i,count=0,a11=0,10,2,8,22,16,4,10,6,14,20 ; /*FILL*/ while(_) for(i=1 ; i=10 ; i+) ai-1=ai-1/2+ai/2 ; a10=a10/2+a0 ; for(i=1 ; i=10 ; i+) /*FILL*/ if(_) ai+ ; for(i=1 ; i10 ; i+) /*FILL*/ if(ai!=ai+1) _; if(i=10) break ; else a0=0 ; count+ ; printf(count=%d number=%dn,count,a1) ;答案:位置 1:1位置 2:ai%2=1位置 3:break题号:11576/*-【程序填空】-功能:有五个学生,每个学生有3门课的成绩,从键盘输入以下数 据(包括学生号,姓名,三门课成绩),计算出平均成绩, 设原有的数据和计算出的平均分数存放在磁盘文件stud 中。-*/#include stdio.hstruct student char num6; char name8; int score3; float avr; stu5;main() int i,j,sum; FILE *fp; /*input*/ for(i=0;i5;i+) printf(n please input No. %d score:n,i); printf(stuNo:); scanf(%s,stui.num); printf(name:); scanf(%s,); sum=0; /*FILL*/ for(j=0;_;j+) printf(score %d.,j+1); scanf(%d,&stui.scorej); /*FILL*/ sum+=stui._; stui.avr=sum/3.0; fp=fopen(stud,w); /*FILL*/ for(i=0;i5;_) /*FILL*/ if(fwrite(&stui,sizeof(_),1,fp)!=1) printf(file write errorn); fclose(fp);答案:位置 1:jj位置 2:scorej位置 3:i+ 【或】 +i 【或】 i=i+1位置 4:struct student题号:11324/*-【程序填空】-功能:删除字符串中的数字字符。例如:输入字符串:48CTYP9E6,则输出:CTYPE。-*/#include stdio.h/*FILL*/void fun (_) char *p=s; while(*p) if(*p=0)&(*p=9) p+; /*FILL*/ else *s+=_; /*FILL*/ _; main( ) char item100 ; printf(nEnter a string: ); gets(item); fun(item); printf(nThe string:%sn,item);答案:位置 1:char *s 【或】 char s位置 2:*p+位置 3:*s=0 【或】 *s=0题号:11325/

温馨提示

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

评论

0/150

提交评论