C语言试卷合集.doc_第1页
C语言试卷合集.doc_第2页
C语言试卷合集.doc_第3页
C语言试卷合集.doc_第4页
C语言试卷合集.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

一、 是非判断题(每小题2分,共14分)( )1 在C语言中,函数可以递归调用或递归定义。 ( )2 C程序的执行总是从程序第一句开始。 ( )3 静态外部变量只限于本文件中使用。 ( )4 一个数组的各个数组元素可属于不同的数据类型。 ( )5break语句可用于程序的任何地方,以终止程序的执行。 ( )6语句“if(ab) max=a;else max=b;”与“max=(ab)?a:b;” 的作用相同。 ( )7若有一个多维数组a,则*(a+i)与ai等价。 二、 填空题(每小空1分,共10分)1C语言程序的三种基本结构是 、 、 。2C语言中没有逻辑型数据,在给出逻辑运算结果时,以 代表“真”, 以 代表“假”。3在C语言的运算符中,优先级别最低的是 。4C语言中可以用来实现循环的四种语句是 、 、 、 。三、单项选择题(每小题2分,共28分)1 _是C语言合法的常量。(A).45 (B)078 (C)25.6e3.4 (D)xy2 设x=3,y=2,则表达式x*=y+8的值为_。(A)3 (B)2 (C)30 (D)103 设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为_。(A)2.5 (B)7 (C)4.7 (D)2.754下列变量说明语句中,正确的是 。(A)char:a b c;(B)char a;b;c;(C)int x;z;(D)int x,z;5 执行下面两个语句后,输出的结果为_。char c1=97,c2=98; printf(“%d %c”,c1,c2); (A)97 98 (B)97 b (C)a 98 (D)a b6执行下面语句后的结果为_。y=10;x=y+;(A) x=10,y=10 (B)x=11,y=11 (C)x=10,y=11 (D)x=11,y=107 以下程序运行后,输出的结果为_。main( ) char a=15;printf(“%d,%o,%x”,a,a,a);(A)15,f,17 (B)15,15,f (C)17,f,15 (D)15,17,f 8两个指针变量不可以_。 (A)相减 (B)比较 (C)相加 (D)指向同一地址 9用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是 。(A)123,4 (B)123 4 (C)123;4 (D)123:4 10下列程序段中,功能与其它程序段不同的是 。 (A)for(i=1,p=1;i=5;i+) p*=i; (B)for(i=1;i=5;) p=1;p*=i;i+; (C)i=1;p=1;while(i=5) p*=i;i+; (D)i=1;p=1;do p*=i;i+; while(i=5); 11以下程序的运行结果为_。 main() int n; for( n1;n10;n+) if( n%3=0) continue; printf(“%d”,n); (A)12457810 (B)369 (C)12 (D)12345678910 12设x和y均为int型变量,则语句x+=y;y=xy;x=y;的功能是 。(A)把x和y按从大到小排列 (B)把x和y按从小到大排列(C)无确定结果 (D)交换x和y中的值 13设有以下语句,则变量a 。 char a=72; (A)包含3个字符 (B)包含1个字符 (C)包含2个字符 (D)说明不合法语法 14以下函数调用语句中含有 个实参。 func(e1,e2),(e3,e4,e5); (A)2 (B)3 (C)5 (D)语法错误四、阅读填空(每小空2分,共24分) 1 #define _ 30 main() _ ; num10;total=num*PRICE; printf(“total=%d,num=%dn”,_); 2以下函数的功能是:把两个整数指针所指的存储单元的内容进行交换。 exchange(int *x,int *y) int t; t=*y;*y=_;*x=_; 3对数组中的元素值进行从小到大的排序。 main() int a =2,4,15,3,17,5,8,23,9,7,11,13,i,j,k; for(k=0;k12;k+) for(i=k+1;i12;i+) if( ai_ak ) j=ai; ai=_; _; for(i=0;i12;i+) printf(“%4d”,ai); printf(“n”); 4下列程序计算1到100的奇数的累加和。main() int i,_; for(_) sum+=i; printf(“sum=%dn”,sum); 5以下程序计算数的阶乘 main( ) int i,n; long np; scanf(“%d”,&n); np=_; for(i=2;i=85.”); case B:printf(“=60.”); case C:printf(“60.”); default: printf(“error.”); 若从键盘输入B,程序的运行结果为: 3 #define A 4 #define B(a) (A+1)*a) main( ) int x;x=3*(A+B(7); printf(“x=%dn”,x); 运行结果: 4main() int a,b,c,max; scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(maxb) max=b; if(maxc) max=c; printf(“max is:%d”,max); 当输入19,2,21时,运行结果: 5main( ) static char a =“ABCDEFGH”,b =“abCDefGH”; char *p1; char *p2; int k; p1=a;p2=b; for(k=0;k5)?0:1;(a= ) a= (a=i+1,a+2,a+3);(a= )2执行下列语句后,*(p+2)的值是 。 char s3=“ab”,*p;p=s;3 下列程序的功能是将字符串“Turbo C”纵向显示在屏幕上,请填空。main( ) char *p=“Turbo C”; for(;*p!=0; ) printf(“%cn”, );4 下列程序计算1到100的整数的累加和。main() int i,_; for(_) sum+=i; printf(“sum=%dn”,sum);5 下列程序中maxmin()的作用是求整型数组a的最大元素和最小元素。 main() static x33=1,2,3,9,5,6,-1,0,3; int m1,m2; maxmin( );printf(“max=%d,min=%dn”,m1,m2);maxmin(int n,int a3,int *max,int *min) int i,j; *max=*min=a00; for(i=0;in;i+)for(j=0;jn;j+) if( ) *max=aij; else if( ) *min=aij;三、 单项选择题(每小题2分,共36分)1 下列形式的常数中,C程序不允许出现的是_。A) 123 B) .45 C) 25.6e-2 D) 4e32下列运算符中,不属于关系运算符的是 。 A) =3以下对C语言函数的有关描述中,正确的是 。 A) 函数必须有返回值,否则不能使用函数B) C函数既可以嵌套定义又可以递归调用C) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参D) C程序中有调用关系的所有函数必须放在同一个源程序文件中4以下叙述中不正确的是 。 A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效 5给出以下定义: char x =“abcdefg”; char y =a,b,c,d,e,f,g; 则正确的叙述为 。A) 数组x和数组y的长度相同 B) 数组x的长度大于数组y的长度 C) 数组x和数组y等价 D) 数组x的长度小于数组y的长度 6两个指针变量不可以_。 A)相减 B)比较 C)相加 D)指向同一地址7设有如下定义: int (*ptr)( ); 则以下叙述中正确的是 。A) ptr是指向一维数组的指针变量 B) ptr是指向int型数据的指针变量 C) ptr是一个函数名,该函数的返回值是指向int型数据的指针 D) ptr是指向函数的指针,该函数返回一个int型数据 8为了提高程序的运行速度,对于整型或指针可以使用 型的变量。 A) register B) auto C)static D)extern 9具有相同类型的指针变量p与数组array,不能进行的操作是 。A) p=array B) *p=array0 C) p=&array D) p=&array 0 10C语言中while与dowhile语句的主要区别是 。A) while的循环条件比dowhile的循环控制条件体严格B) dowhile允许从外部转到循环体内C) dowhile 的循环体不能是复合语句D) dowhile的循环体至少无条件执行一次11以下函数调用语句中含有 个实参。 func(e1,e2),(e3,e4,e5);A)2 B)3 C)5 D)语法错误12下列程序段中,功能与其它程序段不同的是 。A) for(i=1,p=1;i=5;i+) p*=i;B) for(i=1;i=5;) p=1;p*=i;i+;C) i=1;p=1;while(i=5) p*=i;i+;D) i=1;p=1;do p*=i;i+; while(i=5); 13设x和y均为int型变量,则语句x+=y;y=xy;x=y;的功能是 。A)把x和y按从大到小排列 B) 把x和y按从小到大排列C) 无确定结果 D) 交换x和y中的值 14以下程序的运行结果为_。 main() int n; for( n1;n10;n+) ; printf(“%d”,n); A) 10 B) 123456789 C) 0123456789 D) 015设有以下语句,则变量a 。 char a=72;A)包含3个字符 B) 包含1个字符 C) 包含2个字符 D)说明不合法语法16以下程序执行后,a= ,b= 。 main() int a=10,b=20; int *pa=&a,*pb=&b; *pa=*(pb-1)+5; *(pa+1)=*pa-5; for( n1;n=85.”);case B:printf(“=60.”);case C:printf(“=85. B) =60. =60. D) error.18以下程序的运行结果为_。 main() int a=1,b=2,c=3,d=4,e=5; printf(“%d”,func(a+b,b+c,c+a),(d,e); int func(int x,int y) return x+y;A) 15 B)5 C)9 D) 函数调用出错 四、 写出下列程序的运行结果(每小题3分,共18分) 1 #define GZ 30main() int num,total,gz;gz40;num10;totalnum*GZ;printf(“total=%dn”,total); 运行结果:2 #include main() static char s150=“some string*”; static char s2 =“test*”;printf(“s2 length=%dn”,strlen(s2);strcat(s1,s2);printf(“%sn”,s1); 运行结果:3 #define A 3 #define B(a) (A+1)*a) main() int x;x=3*(A+B(7); printf(“x=%dn”,x); 运行结果:4 f1(int a) int b=0;static c=3; b+=1;c+; return(a+b+c);main() int a=1,i;for(i=0;i3;i+)printf(“%d,”,f1(a); 运行结果: 5 main() int a,b,d=241; a=d/100%9; b=(-1)&(-1);printf(“%d,%dn”,a,b); 运行结果:6 #define TRUE 1#define FALSE 0#include int chang(char *c,int s);main() int flag=TRUE; char ch;do ch=getchar();flag=chang(&ch,flag);putchar(ch); while(ch!=.);int chang(char *c,int s) if(*c= ) return TRUE; else if(s&*ca) *c+=A-a; return FALSE; 若从键盘输入this is a test program. 则运行结果为: 一、 填空题(每空分,共分). 语言程序的三种基本结构是_,_,_。. 若有定义:,;则初始化后,_,_。. 设,均为型变量,语言描述“或中有一个小于”的表达式是_. 若循环用以下形式表示:(表达式;表达式;表达式)循环体语句则执行语句(;(“”);时,表达式执行_次,表达式执行_次。在语言中,十进制数的八进制表示形式是_,十六进制表示形式是_。二、 阅读填空(每空分,共分). 以下函数求x的y次方double fun(double x,int y)int i;double z=1.0;for(i=1;i_;i+)z=_;return(z);. 下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。 int n=0;char c;c=getchar();while(_)if(_) n+;c=getchar();. 下面程序可求出矩阵的两条对角线上的元素和。 #includestdio.hmain()int a33=1,3,6,7,9,11,14,15,17,sum1=0,sum2=0,i,j;for(i=o;i3;i+)for(j=0;j=3;j+)if(i=j) sum1=sum1+aij;for(i=0;iy); (B) if(x=y) (x!=0)x+=y; (C) if (x!=y);else scanf(“%d”,y) ;(D) if(xy)x+;y+18. 为了避免嵌套的条件语句中产生二义性,语言规定:字句总是与配对_。(A)缩排位置相同的if (B)同一行上的if(C)其之后最近的if D)起之前最近的if19. 下面程序段的运行结果是_int a=1,b=2,c=2,t;while(ab=0&ai=7;k+)if(*(p1+k)=*(p2+k) printf(%c,*(p1+k);(A) gae (B)ga (C) Language (D)有语法错误32. 以下程序的运行结果为_main()int a=2,b=-1,c=2;if(ab)if(ab) c=0;else c+=1;printf(%dn,c);(A) 0 (B) 1 (C) 2 (D)333. 以下程序的运行结果为_main()int w=4,x=3,y=2,z=1;printf(%dn,(wx?w:zy?z:x); (A) 1 (B) 2 (C) 3 (D)434以下程序的运行结果为_#includestdio.hint func(int a,int b)static int m=0,i=2;i+=m+1;m=i+a+b;return(m);main()int k=4,m=1,p;p=func(k,m);printf(%d,p);p=func(k,m);printf(%dn,p);(A) 8,17 (B) 8,16 (C) 8,20 (D)8,835以下程序的运行结果为_#includestdio.hmain()int n=0;while(n8)switch(n%3)case 2: putchar(2);case 1: purchar(i);break;case 0: putchar(H);n+;(A) Hi2Hi2Hi (B) Hi2 (C) Hi2iHi2i (D)Hi2iHi2iHi36以下程序的运行结果_void sub(int x,int y,int*z)*z=y-xmain()int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(%d,%d,%dn,a,b,c);(A)5,2,3 (B) -5,-12,-7 (C) -5,-12,-17 (D)5,-2,-737以下程序的运行结果为_main()int i;for(i=1;i=5;i+)if(i%2)printf(*);else continue;printf(#);printf($n);(A)*#*#*#$ (B)#*#*#*$ (C) *#*#$ (D)#*#*$38以下程序的运行结果为_main()int a=2,4,6,8,10,y=1,x,*p; p=&a1;for(x=o;xb?(ac?a:c):(b)8若定义 :int a=511,*b=&a;,则printf(%dn”,*b);的输出结果为( ) (A)无确定值 (B)a的地址 ( c)512 (D)5119有以下程序 main() int p7=11,13,14,16,17,18,i=0,k=0; while(i7&pi%2)k=k+pi;i+; printf(“%dn”,k); 执行后输出结果是:( ) (A)58 (B)56 (C)45 (D)24 10.有以下程序 mian() int i=1,j=2,k=4;If(j+|k+)&i+)printf(“%d,%d,%dn”,I,j,k);执行后输出结果是 ( )(A)1,1,2 (B)2,2,1 (C)2,2,3 (D)2,3,411定义如下边俩功能和数组:int i; int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是 for(i=0;i3;i+)printf(“%d”,xi2-i);(A)159 (B)147 (C)357 (D)36912.有以下程序main() int I;for(i=0;i3;i+) switch(i) case 1: printf(“%d”,i); case 2: printf(“%d”,i); default: printf(“%d”,i);执行后输出结果是( )(A)011122 (B)012 (C)012020 (D)12013以下程序的运行结果是( )#define MIN(x,y) (x)(y)?(x)Ly)main() int i=10,j=15,k;k=10*MIN(i,j);printf(“%dn”,k);(A)10 (B)15 (C)100 (D)15014若有说明:int n=2,*p=&n,*q=p;,ze则以下非法的 赋值语句是 ( )。(A)p=q; (B)*p=*q; (C)n=*q; (D)p=n;15己知大写知母A的ASCII码值是十进制65,小 写知母 a的ASCII码是十进制97,则 用八进制表示的字符常量101是 :( )(A)字符 A(B)字符a (C)1 (D)150

温馨提示

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

评论

0/150

提交评论