




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言综合练习题一、填空题1、设有int x=2,y=3,z=4; 则表达式x+y&z的值为 1 。2、已知有声明“int x=1,y=2; ”,则执行表达式“(xy) & (-x0) ”后x的值为 1 。3、静态变量和外部变量的初始化是在 编译 阶段完成的,而自动变量的赋值是在 函数调用 时进行的.4、若有定义:int a=2,b=3,c=4; 则执行完语句:a*=16+(b+)-(+c); 后,a的值是 28 。5、设有int a=1,b=2,c=3; 执行语句a=b=c;后a的值是 3 。6、若有声明“int a=30,b=7;”,则表达式“!a+ab”的值是 2 。7、下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0。请填空。main() int i, x, y=1;scanf(%d, &x);for(i=2;i= x-1或x/2 ; i+)if ( x%i=0 ) y=0; break; printf(%dn, y);8、以下程序运行后的输出结果 10 11 。 #include void main() int m=011, n=11; printf(d dn,+m,n+);9、执行下列语句的结果是 4,4 。int a=3; printf(%d,+a); printf(%d,a+);10、下面程序的运行结果是 135 。#includevoid main() char ch6=12345,*p1;int j,s=0;p1=&ch0;for(j=0;*(p1+j)=0&*(p1+j)=9;j+=2) s=10*s+(*(p1+j)-0);printf(%dn,s);11、下面程序的运行结果是 -3,-7,-4 。#includevoid sub(int x,int y,int *z) *z=y-x; void main() int a,b,c;sub(6,3,&a);sub(4,a,&b);sub(a,b,&c);printf(%4d,%4d,%4dn,a,b,c);12、表示“xyz”的C表达式是 x=y&y=z 。13、int x=2,z; z=-x+1; 则z的值为 -1 。14、表达式 strlen(ABbCDEFrGHn) 的结果是 11 。15、预处理命令行都必须以 # 号开始。16、以下程序的执行结果是 37 。#includevoid main() int i;for(i=3;i13;i+)if(i%4=0) i+=2;else if(i/10) break; else printf(%d,i);17、若a,b和c均是int型变量,则计算表达式 a=(b=4)+(c=2) 后,a值为 6 ,b值为 4 ,c值为 2 。18、以下程序的输出结果是 54321 。#include void main( ) int n=12345, d; while(n!=0) d=n%10; printf(%d,d) ; n/=10; 19、已知 i=5,写出语句 i*=i+1; 执行后整型变量 i 的值是 30 。20、以下程序运行时输出结果是 120 1 0 。#includevoid main()int i,j,row=0,col=0,m; int arr32=100,110,120,28,91,35; m=arr00; for(i=0;i3;i+) for(j=0;jm) m=arrij; row=i; col=j; printf(%d %d %dn,m,row,col);二、单选题1、下面程序的输出结果是( C )。main() int x=10,y=10,i;for(i=0;x8;y=+i)printf(%d %d ,x-,y);A、10 1 9 2 B、9 8 7 6C、10 10 9 1 D、10 9 9 02、下列叙述中正确的是( D )。A、每个C程序文件中都必须要有一个main()函数B、在C程序中main()函数的位置是固定的C、C程序中所有函数之间都可以相互调用,与函数所在位置无关D、在C程序的函数中不能定义另一个函数3、若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+):(y+) 中的条件表达式(x-y)等价的是( C )。A、(x-y0) B、(x-y0) C、(x-y0) D、(x-y= =0)4、在位运算中,操作数每右移一位,其结果相当于( B )。A、操作数乘以2 B、操作数除以2C、操作数乘以16 D、操作数除以165、设有定义:int a; float b; 执行scanf(2df,&a,&b);语句时,若从键盘输入876 543.0,a和b的值分别是( B )。A、876和543.000000 B、87和6.000000C、87和543.000000 D、76和543.0000006、已知变量x和变量y均为int型,则顺序执行下列语句后的结果是( D )。x=x+y; y=x-y; x=x-y;A、把x和y按从小到大排列 B、把x和y按从大到小排列C、结果不确定 D、交换变量x和y的值7、在嵌套使用if语句时,C语言规定else总是( C )。A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对8、若变量已正确定义并赋值,下面符合C语言语法的表达式是( B )。A、a、=b+1 B、a=b=c+2C、int 18.5%3 D、a=a+7=c+b9、以下叙述中正确的是( C )。A、break语句只能用于switch语句体中B、continue语句的作用是使程序的执行流程跳出包含它的所有循环C、break语句只能用在循环体内和switch语句体内D、在循环体内使用break语句和continue语句的作用相同10、执行语句 for(i=1;i+4;); 后变量 i 的值是( C )。A、3 B、4 C、5 D、不定11、有以下程序:#include void main() int k=5; while(-k) printf(d, k-=3); printf(n);执行后的输出结果是( A )。A、1 B、2 C、4 D、死循环12、下列语句的结果是( D )。main() int j; j=3;printf(%d,+j); printf(%d,j+);A、3,3 B、3,4 C、4,3 D、4,413、以下选项中,值为1的表达式是( B )。A、1-0 B、1-0 C、1-0 D、0-014、以下正确的描述是:在C语言程序中( B )。A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用均不可以嵌套D、函数的定义和函数的调用均可以嵌套15、设有如下定义:char a80= ABC, b80= PLAY;则正确的输出语句是( D )。A、puts(a,b); B、printf(%s,%s,a ,b );C、putchar(a,b); D、puts(a); puts(b);16、以下不正确的叙述是( D )。A、在C程序中所用的变量必须先定义后使用B、程序中,APH和aph是两个不同的变量C、若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变D、当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值17、设有以下变量均为int类型,则值不等于7的表达式是( C )。A、(x=y=6,x+y,x+1) B、(x=y=6,x+y,y+1)C、(x=6,x+1,y=6,x+y) D、(y=6,y+1,x=y,x+1)18、在C语言中,char型数据在内存中的存储形式是( D )。A、补码 B、反码 C、原码 D、ASCII码19、设C语言中,一个short int型数据在内存中占2个字节,则unsigned short int型数据的取值范围为( C )。A、0255 B、0-32767C、065535 D、0-214748364720、设x和y为浮点型变量,则以下( C )语句是正确的。A、x=y%2; B、x*x=y; C、x=x+10*y; D、*x=y+2;21、static struct int a1;float a2;char a3;a10=1,3.5,A;说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是( C )。A、a1 B、a-1 C、a0 D、a1022、以下叙述错误的是( C )。A、C语言是一种结构化程序设计语言B、结构化程序设计由顺序,选择,循环三种基础结构组成C、使用三种基础结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法23、C语言中,double类型数据占( D )。A、1个字节 B、2个字节C、4个字节 D、8个字节24、对于一正常运行的C语言程序,以下叙述正确的是( A )。A、程序的执行总是从main函数开始,到main函数最后一个语句结束B、对于函数执行总是从程序的第一个函数开始的,到main函数结束C、程序的执行总是从main函数开始,在程序的最后一个函数中结束D、对于函数执行总是从程序的第一个函数开始的,在程序的最后一个函数中结束25、若int类型数据占两个字节,则下列语句的输出为( D )。short int k=-1; printf(%d,%un,k,k);A、-1,-1 B、-1,32767C、-1,32768 D、-1,6553526、以下选项中,当x为大于1的奇数时,值为0的表达式是( D )。A、x%2= =1 B、x/2 C、x%2!=0 D、x%2= =027、执行下列语句y=10;x=y+;后,变量x和y的值是( C )。A、x=10,y=10 B、x=11,y=11C、x=10,y=11 D、x=11,y=1028、有以下程序:#include void main() int k=5,n=0;do switch(k) case 1: case 3: n+=1;k- -;break; default : n=0;k- -; case 2: case 4: n+=2; k- -; break; printf(“%d”,n);while(k0&nx)&(b=yz);A、6 B、0 C、1 D、438、有以下程序:#include void main() int y=9; for( ; y0; y-) if(y%3=0) printf(%d,-y); 程序的运行结果是( C )。A、741 B、963 C、852 D、87542139、以下程序的输出结果是( C )。 main() int a=100,x =10,y=20,okl=5,ok2=0; if (xy) if(y ! =10) if(!okl) a=1; else if(ok2) a=10; a=-1; printf(%dn,a ); A、1 B、0 C、-1 D、值不确定40、有以下程序:#include void main() int i,j,m=55; for(i=1;i=3;i+)for(j=3;j=i;j+) m=m%j; printf(%dn,m);程序运行结果是( B )。A、0 B、1 C、2 D、341、设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是( D )。A、y&y B、x =yC、x|y+z&y-z D、!(xy);B、if (x= y) &(x! = 0) x+= y;C、if(x!= y)scanf(%d,&x); else scanf(%d,&y);D、if(xb)&(n=cd)后n的值为( B )。A、1 B、2 C、3 D、446、以下关于语句的说法中正确的是( A )。A、do-while语句的循环体至少会被执行1次B、while语句的循环体至少会被执行1次C、for语句的循环体至少会被执行1次D、在C语言中只能用do、do-while或for语句实现循环结构47、请阅读以下程序:#includemain() float a,b,x=2; scanf(%f,&a); if (a10.0) b=1.0/x; else if(a0.5)&(a!=2.0) b= 1.0/(a十2.0); else if(ay);B、if (x= y) &(x! = 0) x+= y;C、if(x!= y)scanf(%d,&x); else scanf(%d,&y);D、if(x y)x+ ;y十十;50、已知字符A的机内编码为65,则执行下列函数调用语句时,不能输出字符B的是( B )。A、putchar(B); B、putchar(B);C、putchar(66); D、putchar(x42);51、请阅读以下程序:main() int a=5,b=0,c=0; if(a=b+c) printf(*n); e1se printf($n);以上程序( D )。A、有语法错不能通过编译B、可以通过编译但不能通过连接C、输出*D、输出$52、以下语句中不包含关键字的是( A )。A、x=sqrt(2) ; B、while(x!=0) x- ;C、if(x0) x = -x ; D、return x ;53、下面程序段( C )。x=3;doy=x-; if(!y) printf(x); continue; printf(#);while(1=x=2);A、将输出# B、将输出#*C、是死循环 D、含有不合法的控制表达式54、下列程序段运行后x的值是( B )。int a, b, c, x;a=b=c=0; x=35;if(!a) x-;else if(b) x+;if(c) x=3;else x=4;A、3B、4C、34D、3555、以下程序段( C )。x= -1;do x=x*x; while(!x);A、是死循环 B、循环执行二次C、循环执行一次 D、有语法错误56、若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2) 表示的数组元素是( C )。A、t20 B、t22 C、t12 D、t21int t33,*pt3,k;for(k=0;k3;k+) ptk=&tk0;57、下面程序的运行结果是( D )。#include main() int i,b,k=0; for(i=1;i=0) k+; printf(%d,%d,k,b);A、3,-1 B、8,-1 C、3,0 D、8,-258、以下程序的输出结果是( C )。A、5 2 B、5 1 C、5 3 D、9 7void main() int i,x33=9,8,7,6,5,4,3,2,1,*p=&x11;for(i=0;i4;i+=2) printf(%d ,pi);59、下面程序的功能是计算 1至10之间的奇数之和及偶数之和.请选择填空。#include main() int a,b,c,i; a=c=0; for(i=0;i=10;i+=2) a+=i; ( B ) ; c+=b; printf(偶数之和=%dn,a); printf(奇数之和=%dn,c-11),A、b=i- B、b=i+1 C、b=i+ D、b=i-160、以下程序的输出结果是( B )。A、6 B、6789 C、6 D、789void main() char a10= 1, 2, 3, 4, 5, 6, 7, 8, 9,0,*p;int i;i=8;p=a+i;printf(%sn,p-3);61、下面程序段的运行结果是( C )。for(y= 1;y10;) y=(x=3* y,x+1),x-1);printf(x=%d,y=%d,x,y);A、x=27,y=27 B、x=12,y=13C、x=15,y=14 D、x=y=2762、以下程序的运行结果是( A )。A、运行后报错 B、6 6C、6 12 D、5 5#includevoid main() int a=1,2,3,4,5,6,7,8,9,10,11,12;int *p=a+5, *q=NULL;*q=*(p+5);printf(%d %dn, *p, *q);63、对for(表达式1;表达式3)可理解为( B )。A、for(表达式1; 0;表达式3)B、for(表达式1;1;表达式3)C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3)64、下面程序把数组元素中的最大值放入a0中,则在if语句中的条件表达式应该是( B )。A、pa B、*pa0C、*p*a0 D、*p0*a0void main() int a10=6,7,2,9,1,10,5,8,4,3,*p=a,i;for(i=0;i0) fun(k-1);printf(%d ,k);void main() int w=5;fun(w);printf(n);67、有以下程序段:int x=0,s=0;while(!x!= 0) s+=+x;printf(%d,s);则( B )。A、运行程序段后输出0B、运行程序段后输出1C、程序段中的控制表达式是非法的D、程序段执行无限次68、以下程序的输出结果是( C )。A、6 9 9 B、6 6 9C、6 15 15 D、6 6 15int d=1;fun(int p) static int d=5;d+=pprintf(%d ,d);return (d);void main() int a=3;printf(%dn, fun(a+fun(d);69、假定short int类型变量占用两个字节,其有定义:short int x10=0,2,4;,则数组x在内存中所占字节数是( D )。A、3 B、6 C、10 D、2070、以下程序的输出结果是( C )。A、9 B、6 C、36 D、18#define f(x) x*xvoid main() int a=6,b=2,c;c=f(a)/f(b);printf(%dn,c);71、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( C )。A、char s10=abcdefg;B、char t=abcdefg,*s=t;C、char s10;s=abcdefg;D、char s10;strcpy(s,abcdefg);72、若已定义char str23; 则下列表达式不表示str10的地址的是( D )。A、*(str+1) B、&str00+3C、str0+3 D、str+373、int i,j,a23;按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数组的是( D )。A、for(i=0;i2;i+)for(j=0;j3;j+) aij=i*3+j+1;B、for(i=0;i3;i+) for(j=0;j2;j+) aji=j*3+i+1;C、for(i=0;i6;i+) ai/3i%3=i+1;D、for(i=1;iy?x:y); int min(int x,int y) return (xy?x:y); int add(int (*x1)(), int (*x2)() int i,j,a,b;scanf(%d,%d,%d,%d, &i,&j,&a,&b);return (*x1)(i,j)+(*x2)(a,b);void main() printf(%dn, add(max, min); 执行时输入为:1,2,8,10,则输出为( B )。A、9 B、10 C、11 D、1277、以下能对二维数组a进行正确初始化的语句是( B )。A、int a2=1,0,1,5,2,3;B、int a3=1,2,3,4,5,6;C、int a24=1,2,3,4,5,6;D、int a3=1,0,1,1,1;78、已知有下列宏定义:#define PI 3.1415#define s(r) PI*r*r则对s(a+b)进行宏展开的结果是( D )。A、PI*(a+b)*(a+b) B、PI*a+b*a+bC、3.1415*(a+b)*(a+b) D、3.1415*a+b*a+b79、int a10;合法的数组元素的最小下标值为( D )。A、10 B、9 C、1 D、080、若有以下程序:void main() char *name=C Language,Programming;char *p;p=name+1;printf(%sn,*p);程序输出结果是( B )。A、C Language B、ProgrammingC、C D、P81、下列定义数组的语句中正确的是( A )。A、#define size 10char str1size,str2size+2;B、char str;C、int num10;D、int n=5; int ann+2;82、若有定义:int a8; 则以下表达式中不能代表数组元素a1的地址的是( C )。A、&a0+1 B、&a1 C、&a0+ D、a+183、以下定义语句中,错误的是( D )。A、int a=1,2; B、char *a3;C、char s10=test; D、int n=5,an;84、用数组名作为函数调用时的参数,实际上传送给形参的是( A )。A、数组首地址 B、数组的第一个元素值C、数组中全部元素的值 D、数组元素的个数85、C语言程序中,当调用函数时( A )。A、实参和虚参各占一个独立的存储单元B、实参和虚参可以共用存储单元C、可以由用户指定是否共用存储单元D、计算机系统自动确定是否共用存储单元86、设有如下函数定义:int f(char *s) char *p=s;while(*p!= 0) p+;return (p-s);如果在主程序中用下面的语句调用上述函数,则输出结果是( C )。printf(%dn,f(goodbye!);A、3 B、6 C、8 D、987、在C语言中,形参的缺省存储类是( A )。A、auto B、register C、static D、extern88、下列程序的运行结果是( B )。#includeint fun(int a3) int i,j,sum=0;for(i=0;i3;i+) for(j=0;j3;j+) aij=i+j; if(i=j) sum=sum+aij; return (sum);void main() int a33=1,3,5,7,9,11,13,15,17,sum;sum=fun(a);printf(sum=%dn,sum);A、sum=4 B、sum=6 C、sum=8 D、sum=1089、若需要明确表示函数“不带回返回值”,则( B )。A、在函数定义时,函数名前不加类型说明符B、在函数定义时,函数名前加“void”类型说明符C、函数中无return语句D、在函数的return语句中表示90、关于return语句,下列正确的说法是( C )。A、不能在主函数中出现且在其他函数中均可出现B、必须在每个函数中出现C、可以在同一个函数中出现多次D、只能在除主函数之外的函数中出现一次91、下列程序的运行结果为( B )。#includechange(int x,int y) int t=x;x=y;y=t; return; void main() int x=2,y=3;change(x,y);printf(x=%d,y=%dn,x,y);A、x=3,y=2 B、x=2,y=3C、x=2,y=2 D、x=3,y=392、若使用一维数组名作函数实参,则以下正确的说法是( A )。A、必须在主调函数中说明此数组的大小B、实参数组类型与形参数组类型可以不匹配C、在被调用函数中,不需要考虑形参数组的大小D、实参数组名与形参数组名必须一致93、int x,*pb; 则以下正确的赋值表达式是( A )。A、pb=&x B、pb=x C、*pb=&x D、*pb=*x94、以下函数调用语句中实参的个数是( A )。exce(v1,v2),(v3,v4,v5),v6);A、3 B、4 C、5 D、695、若有以下定义和语句:int s45,(*ps)5; ps=s; 则对s数组元素的正确引用形式是( C )。A、ps+1 B、*(ps+3) C、ps02 D、*(ps+1)+396、下列选项中正确的语句组是( D )。A、char s8; s=Beijing;B、char *s; s=Beijing;C、char s8; s=Beijing;D、char *s; s=Beijing;97、以下程序的输出结果是( A )。#includevoid main() int a3=1,3,5;int *p1=a,*p2=&a1;*p1=*(p2-1)+2;*(p1+1)=*p1-2;printf(%dn,a1);A、1 B、3 C、5 D、798、下列关于指针定义的描述,( B )是错误的。A、指针是一种变量,该变量用来存放某个变量的地址值的B、指针是一种变量,该变量用来存放某个变量的值C、指针变量的类型与它所指向的变量类型一致D、指针变量的命名规则与标识符相同99、执行以下程序段后,m的值是( D )。static int a=7,4,6,3,10;int m,k,*ptr;m=10; ptr=&a0;for(k=0;k5;k+) m=(*(ptr+k)m)?*(ptr+k):m;A、10 B、7 C、4 D、3100、函数的形式参数隐含的存储类型说明是( D )。A、extern B、static C、register
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025)JAVA基础考试题及参考答案
- 2025年安全工程师《案例分析》备考试题及答案
- 2025年高校辅导员考试题库及答案
- 2024年手术室医护人员关键基础知识考试题库与答案
- 摇表使用培训课件
- 摄影基础知识培训课件申请
- 生物生产技术试题及答案
- 纺织服装加工厂房项目可行性研究报告模板-备案拿地
- 外科护理学考试题.与答案试题库完整
- 2025商业办公房租赁合同模板
- GB/T 27043-2025合格评定能力验证提供者能力的通用要求
- 新能源企业盈利能力分析-以比亚迪股份有限公司为例
- 厂内专用垃圾转运方案(3篇)
- 2025年地质勘探与资源矿产管理技术考试试题及答案
- 2025年儿科急救大赛试题库及答案
- 2025年新版药品管理法培训试卷附答案(专业版)
- 蔬菜大棚种植技术课件
- 驾考题库及答案大全
- 医疗废物与污水处理培训
- 保安证的考试试题及答案
- 2020-2025年中国胡椒行业市场调研分析及投资战略咨询报告
评论
0/150
提交评论