C语言考试练习题有答案.doc_第1页
C语言考试练习题有答案.doc_第2页
C语言考试练习题有答案.doc_第3页
C语言考试练习题有答案.doc_第4页
C语言考试练习题有答案.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

试卷编号:9405所属语言:C语言试卷方案:C语言练习试卷总分:115分共有题型:3种一、单项选择 共100题 (共计100分)第1题 (1.0分)有以下程序main() int p7=11,13,14,15,16,17,18,i=0,k=0;while(i7&pi%2)k=k+pi; i+;printf(%dn,k);执行后输出的结果是A:58B:56C:45D:24答案:D第2题 (1.0分)以下正确的描述是:在C语言程序中()。A:函数的定义可以嵌套,但函数的调用不可以嵌套B:函数的定义不可以嵌套,但函数的调用可以嵌套C:函数的定义和函数的调用均不可以嵌套D:函数的定义和函数的调用均可以嵌套答案:B第3题 (1.0分)有如下程序 main( ) int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(a=%d,b=%dn,a,b); 该程序的输出结果是A:a=2,b=1B:a=1,b=1C:a=1,b=0D:a=2,b=2答案:A第4题 (1.0分)下述标识符中,()是合法的用户标识符.A:A#CB:getchC:voidD:ab*答案:B第5题 (1.0分)若有以下程序:main() int k=2,i=2,m; m=(k+=i*=k); printf(%d,%dn,m,i);执行后的输出结果是_。A:8,6B:8,3C:6,4D:7,4答案:C第6题 (1.0分)有以下程序 main() char a=a,b; print(%c,+a); printf(%cn,b=a+); 程序运行后的输出结果是A:b,bB:b,cC:a,bD:a,c答案:A第7题 (1.0分)以下不正确的叙述是()。A:在C程序中所用的变量必须先定义后使用B:程序中,APH和aph是两个不同的变量C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值答案:D第8题 (1.0分)在下列选项中,不正确的赋值语句是( )A:+t;B:n1=(n2=(n3=0);C:k=i=j;D:a=b+c=1;答案:D第9题 (1.0分)若有int x=4,y=5;, 则执行完表达式x*=y-1后,x值为( ).A:16B:0C:1D:19答案:A第10题 (1.0分)下列选项中,合法的C语言关键字是()。A:VARB:cherC:integerD:default答案:D第11题 (1.0分)下列数组说明中,正确的是()。A:int array4;B:int array;C:int array5;D:int array3;答案:A第12题 (1.0分)若变量a是int类型,并执行了语句:a=A+1.6;,则正确的叙述是A:a的值是字符CB:a的值是浮点型C:不允许字符型和浮点型相加D:a的值是字符A的ASCII值加上1.答案:D第13题 (1.0分)用下列语句定义a,b,c,然后执行b=a、c=b+b,则b,c的值是()。 long a=0xffffff; int b; char c;A:0ffffff 和0x61B:-1和98C:-1和97D:指向同一地址答案:C第14题 (1.0分)设以下变量均为int类型,则值不等于7的表达式是()。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)答案:C第15题 (1.0分)若k是int型变量,且有下面的程序片段:int k = -2; if (kbc)a=b;else a=c;则a的值为()。A:3B:2C:1D:0答案:C第17题 (1.0分)t为int类型,进人下面的循环之前,t的值为0 while( t=l ) 则以下叙述中正确的是A:循环控制表达式的值为0B:循环控制表达式的值为1C:循环控制表达式不合法D:以上说法都不对答案:B第18题 (1.0分)以下叙述不正确的是()。A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main函数C:C程序的基本组成单位是函数D:在C程序中,注释说明只能位于一条语句的后面答案:D第19题 (1.0分)已定义ch为字符型变量,以下赋值语句中错误的是()。A:ch=;B:ch=62+3;C:ch=NULL;D:ch=xaa;答案:A第20题 (1.0分)以下程序的输出结果是 main() int i, a10; for(i=9;i=0;i-) ai=10-i; printf(%d%d%d,a2,a5,a8); A:258B:741C:852D:369答案:C第21题 (1.0分)在C语言中,执行语句:for (j=1; j6) n-;printf(%d,n); 该程序段的输出结果是A:987B:876C:8765D:9876答案:B第23题 (1.0分)以下不正确的说法是:C语言规定()。A:实参可以是常量,变量或表达式B:形参可以是常量,变量或表达式C:实参可以为任何类型D:形参应与其对应的实参类型一致答案:B第24题 (1.0分)下列条件语句中,功能与其他语句不同的是A:if(a) printf(%dn,x); else printf(%dn,y)B:if(a=0) printf(%dn,y); else printf(%dn,x)C:if (a!=0) printf(%dn,x); else printf(%dn,y)D:if(a=0) printf(%dn,x); else printf(%dn,y)答案:D第25题 (1.0分)若变量c为char类型,能正确判断出c为小写字母的表达式是A:a=c= a)|(c= z)C:(a=c)D:(c= a)&(c=y&chB&!y)的值是()。A:0B:语法错C:1D:假答案:C第33题 (1.0分)执行下面程序片段的结果是( ) int x=23; do printf(%2d,x-); while(!x);A:打印出321B:打印出23C:不打印任何内容D:陷入死循环答案:B第34题 (1.0分)下列数组说明中,正确的是()。A:static char str=China;B:static char str; str=China;C:static char str15,str2=China; str1=str2;D:static char str1,str2;str2=China; strcpy(str1,str2);答案:A第35题 (1.0分)以下对C语言函数的描述中,正确的是()。A:C程序必须由一个或一个以上的函数组成B:C函数既可以嵌套定义又可以递归调用C:函数必须有返回值,否则不能使用函数D:C程序中有调用关系的所有函数必须放在同一个程序文件中答案:A第36题 (1.0分)若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。A:1B:2C:2.0D:2.5答案:C第37题 (1.0分)下面程序段执行后的输出结果为( ).int a,b;a=7;b=a+;printf(a=%d,b=%d,a,b);A:7 7B:8 7C:a=7,b=8D:a=8,b=7答案:D第38题 (1.0分)以下关于运算符优先顺序的描述中正确的是()。A:关系运算符算术运算符赋值运算符逻辑运算符B:逻辑运算符关系运算符算术运算符赋值运算符C:赋值运算符逻辑运算符关系运算符算术运算符D:算术运算符关系运算符赋值运算符逻辑运算符答案:C第39题 (1.0分)以下运算符中,优先级最高的运算符是()。A:|B:%C:!D:=答案:C第40题 (1.0分)一个C语言程序是由()。A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B第41题 (1.0分)有以下程序 main() int a,b,d=25; a=d/10%9;b=a&(-1); printf(%d,%dn,a,b); 程序运行后的输出结果是A:6,1B:2,1C:6,0D:2,0答案: 第42题 (1.0分)以下不符合C语言语法的赋值语句是()。A:a=1,b=2B:+j;C:a=b=5;D:y=(a=3,6*5);答案:A第43题 (1.0分)下列运算符中优先级最高的是()。A:B:+C:&D:!=答案:B第44题 (1.0分)表达式18/4*sqrt(4.0)/8值的数据类型为()。A:intB:floatC:double D:不确定double首先计算18/4得到的int型的。然后结果和sqrt(4.0)计算,sqrt返回double型的数。然后/8.由于C语言算数计算向上兼容,所以结果为double型的。但结果是1.000000是不是?答案:C第45题 (1.0分)The result of the following program is()。main() int n; for(n=1;n=10;n+) if(n%3=0) continue; printf(%d,n); A:12457810B:369C:12D:1234567890答案:A第46题 (1.0分)在C语言中,有以下定义:char b10=h,n,s,p,k,s;,则语句printf(%cn,b1);的结果为( )A:hB:nC:sD:p答案:B第47题 (1.0分)以下程序的输出结果是 main() char c=z; printf(%c,c-25); A:aB:ZC:z-25D:y答案:A第48题 (1.0分)以下所列的C语言常量中,错误的是A:0xFFB:1.2e0.5C:2LD:72答案:B第49题 (1.0分)在C语言中,_是不合法的变量说明.A:int a1,a2=061B:char C=A,BC:long a,bD:int m=n=20答案:D第50题 (1.0分)Which one is a right assignment statement()。A:a=1,b=2B:j+1C:a=b=5;D:y=int(x)答案:C第51题 (1.0分)设变量说明为int a=2,b=3,c=7,d=10; 则表达式 d=a=b?+b:+C 的值是_.A:10B:4C:8D:6答案:C第52题 (1.0分)有以下语句:int b;char c10;,则正确的输入语句是A:scanf(%d%s,&b,&c)B:scanf(%d%s,&b,c); b是int型 输入要加&,而c是char型字符串,输入是不用加&C:scanf(%d%s,b,c)D:scanf(%d%s,b,&c)答案:B第53题 (1.0分)在C语言中,执行语句:for (i=1; i4; i+);后,变量i的值是( )A:3B:4C:5D:不定答案:c第54题 (1.0分)int a10;给数组a的所有元素分别赋值为1、2、3、的语句是()。A:for(i=1;i11;i+)ai=i;B:for(i=1;i11;i+)ai-1=i;C:for(i=1;i11;i+)ai+1=i;D:for(i=1;ib)&(n=cd)运算后,n的值为_。A:0B:1C:2D:3答案:C第56题 (1.0分)如果int a=2,b=3,c=0,下列描述正确的是A:ab!=c和a(b!=c)的执行顺序是一样的B:!a!=(b!=c)表达式的值为1C:a|(b=c)执行后b的值为0D:a&bc的结果为假答案:B第57题 (1.0分)若有以下定义: int a12=1,2,3,4,5,6,7,8,9,10,11,12; char c=a,d,g; 则数值为4的表达式是( )A:ag-cB:a4C:ad-cD:ad-c答案:D第58题 (1.0分)有如下程序 main( ) int n=9; while(n6) n-;printf(%d,n); 该程序段的输出结果是A:987B:876C:8765D:9876答案:B第59题 (1.0分)有以下程序main() int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(%d,%dn,k,m);程序运行后的输出结果是A:0,0B:0,1C:1,0D:1,1答案:C第60题 (1.0分)有以下程序 main() int i=1,j=2,k=3; if(i+=1&(+j=3|k+=3) printf(%d %d %dn,i,j,k); 程序运行后的输出结果是A:1 2 3B:2 3 4C:2 2 3D:2 3 3答案:D第61题 (1.0分)求平方根函数的函数名为()。A:cosB:absC:powD:sqrt答案:D第62题 (1.0分)下面程序段执行后的输出结果为( ).int a,b;a=10;b=a+;printf(a=%d,b=%d,a,b);A:a=10,b=11B:a=11,b=10C:10 10D:11 10答案:B第63题 (1.0分)以下for循环的执行次数是 for(x=0,y=0;(y=123)&(x4);x+);()。A:是无限循环B:循环次数不定C:4次D:3次答案:C第64题 (1.0分)执行下列语句后,a和b的值分别为()。int a,b; a=1+a; b=2+7%-4-A;A:-63,-64B:98,-60C:1,-60D:79,78答案:B第65题 (1.0分)在C语言中,下列不正确的转义字符是( )A:B:tC:074D:0答案:C第66题 (1.0分)在C语言中,合法的字符常量是( )A:084B:x43 C:abD:0答案:B第67题 (1.0分)下列各m的值中,能使m%3=2&m%5=3&m%7=2为真的是()。A:8B:23C:17D:6答案:B第68题 (1.0分)有以下程序 A main() int m=12,n=34; printf(%d%d,m+,+n); printf(%d%dn,n+,+m); 程序运行后的输出结果是 A:12353514B:12353513C:12343514D:12343513答案:A第69题 (1.0分)有如下程序 main( ) int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2); 运行该程序的输出结果是A:3 4B:4 2C:4 3D:3 3答案:D第70题 (1.0分)C 语言中以下几种运算符的优先次序()的排列是正确的。A:由高到低为:!,&,|,算术运算符,赋值运算符B:由高到低为:!,算术运算符,关系运算符,&,|,赋值运算符C:由高到低为:算术运算符,关系运算符,赋值运算符,!,&,|D:由高到低为:算术运算符,关系运算符,!,&,|,赋值运算符答案:B第71题 (1.0分)下列叙述中正确的是()。A:C语言编译时不检查语法B:C语言的子程序有过程和函数两种C:C语言的函数可以嵌套定义D:C语言所有函数都是外部函数答案:D第72题 (1.0分)设k为整型变量,则下面while循环共执行( )次k=2;while(k!=0)printf(%d,k),k-;printf(n);A:无限多B:0C:1D:2答案:D第73题 (1.0分)以下标识符中,不能作为合法的C用户定义标识符的是()。A:a3_b3B:voidC:_123D:IF答案:B第74题 (1.0分)设 int x=1, y=1; 表达式(!x|y-)的值是A:0B:1C:2D:-1答案:B第75题 (1.0分)若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()。A:A%2=1B:!(A%2=0)C:!(A%2)D:A%2答案:C第76题 (1.0分)下列变量说明语句中,正确的是()。A:char:a b c;B:char a;b;c;C:int x;z;D:int x,z;答案:D第77题 (1.0分)以下选项中,与k=n+完全等价的表达式是()。A:k=n,n=n+1B:n=n+1,k=nC:k=+nD:k+=n+1答案:A第78题 (1.0分)下面四个选项中,均是不合法的用户标识符的选项是()。A:A P_0 doB:float la0 _AC:b-a goto intD:_123 temp int答案:C第79题 (1.0分)有以下程序main() int s=0,a=1,n;scanf(%d,&n);do s+=1; a=a-2; while(a!=n);printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是A:-1B:-3C:-5D:0答案:B第80题 (1.0分)有以下程序 main() int a,b,d=25; a=d/10%9;b=a&(-1); printf(%d,%dn,a,b); 程序运行后的输出结果是A:6,1B:2,1C:6,0D:2,0答案: 第81题 (1.0分)以下程序的输出结果是( ) main( ) int a=12,b=12; printf(%d%dn,-a,+b);A:10 10B:12 12C:11 10D:11 13答案:D第82题 (1.0分)以下程序的输出结果是 main() int i, k, a10, p3; k=5; for (i=0;i10;i+) ai =i; for (i=0;i3;i+) pi =ai *(i+1); for (i=0;i3;i+) k+=pi *2; printf(%dn,k); A:20B:21C:22D:23答案:B第83题 (1.0分)若x=0,y=1,则语句while(x=y)x+; break;循环体执行次数是().A:3B:2C:1D:0答案:D第84题 (1.0分)设j和k都是int类型,则下面的for循环语句()。 for(j=0,k=0;j=9&k!=876;j+) scanf(%d,&k);A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行答案:A第85题 (1.0分)下列程序执行后的输出结果是(小数点后只写一位) main() double d; float f; long l; int i; i=f=1=d=20/3; printf(%d %ld %f %f n, i,l,f,d); A:6 6 6.0 6.0B:6 6 6.7 6.7C:6 6 6.0 6.7D:6 6 6.7 6.0答案:A第86题 (1.0分)若有int x=4,y=5;, 则执行完表达式x*=y-1后,x值为( ).A:16B:0C:1D:19答案:A第87题 (1.0分)在C语言中,当do-while语句中的条件为( )时,结束该循环.A:0B:1C:trueD:非0答案:A第88题 (1.0分)下列说法不正确的是()。A:主函数main中定义的变量在整个文件或程序中有效B:不同函数中,可以使用相同名字的变量C:形式参数是局部变量D:在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效答案:A第89题 (1.0分)C语言中要求对变量作强制定义的主要理由是()。A:便于移植B:便于写文件C:便于编辑预处理程序的处理D:便于确定类型和分配空间答案:D第90题 (1.0分)t为int类型,进人下面的循环之前,t的值为0while( t=1 ) 则以下叙述中正确的是_。A:循环控制表达式的值为0B:循环控制表达式的值为1C:循环控制表达式不合法D:以上说法都不对答案:B第91题 (1.0分)以下数值中,不正确的八进制数或十六进制数是()。A:0x16B:16C:-16D:0xaaaa答案:C第92题 (1.0分)C语言中用于结构化程序设计的三种基本结构是()。A:顺序结构、选择结构、循环结构B:if、switch、breakC:for、while、do-whileD:if、for、continue答案:A第93题 (1.0分)C语言中不可以嵌套的是()。A:函数调用B:函数定义C:循环语句D:选择语句答案:B第94题 (1.0分)下列程序段的输出结果为()。float x=213.82631;printf(%3d,(int)x);A:213.82B:213.83C:213D:3.8答案:C第95题 (1.0分)对 for(表达式1; ;表达式3) 可理解为()。A:for(表达式1;0;表达式3)B:for(表达式1;1;表达式3)C:for(表达式1;表达式1;表达式3)D:for(表达式1;表达式3;表达式3)答案:B第96题 (1.0分)有如下程序 main( ) int i,sum; for(i=1;i=3;sum+) sum+=i; printf(%dn,sum); 该程序的执行结果是A:6B:3C:死循环D:0答案:C第97题 (1.0分)The result of the following program is()。main() int j; j=3;printf(%d,+j); printf(%d,j+);A:3,3B:3,4C:4,3D:4,4答案:D第98题 (1.0分)为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定:else子句总是与()配对。A:缩排位置相同的ifB:其之前最近的ifC:其之后最近的ifD:同一行上的if答案:B第99题 (1.0分)double x;scanf(%lf,&x);不可以赋值给x变量的常量是()。A:123B:100000C:AD:abc答案:D第100题 (1.0分)下面不正确的字符串常量是()。A:abcB:1212C:0D: 答案:A二、程序填空 共10题 (共计10分)第1题 (1.0分)/*-【程序填空】-功能: 统计子字符串substr在字符串str中出现的次数。例如:若字符串为aaas lkaaas,子字符串为as,则应输出2。 若字符串为asasasa,子字符串为asa,则应输出3-*/#include fun (char *substr,char *str) int i,j,k,num=0; for(i=0; stri; i+) for(j=i,k=0;substrk=strj;k+,j+) /*SPACE*/ if(substr【?】k+1=0) num+; /*SPACE*/ 【?】break; return num;main() char str80,substr80; printf(input a string:) ; gets(str); printf(input a substring:) ; gets(substr); /*SPACE*/ printf(%dn,fun(substr,str)【?】); 答案: 1). k + 1 2). break 3). fun(substr,str)第2题 (1.0分)/*-【程序填空】-功能:从两个数组中分别提取任意元素xi,yj,问|xi-yj| 的最小值是多少 ?-*/#include #include /*SPACE*/#define min(x, y) (【?】) int min_distance(int x, int y, int m, int n) int minimum = INT_MAX; int index_x = 0, index_y = 0; while (index_x m & index_y n) /*SPACE*/ if (【?】) minimum = min(minimum, xindex_x-yindex_y); index_y+; else minimum = min(minimum, yindex_y-xindex_x); /*SPACE*/ 【?】; return minimum;#include void main(void) int x = 1, 3, 7, 11, 18; int m = sizeof(x)/sizeof(int); int y = 4, 5, 8, 13, 22; int n = sizeof(y)/sizeof(int); int i, min_distance(int , int , int, int); printf(nCompute Minimum Distance Between Two Sorted Arrays); printf(n=); printf(nnGiven Array #1 :); for (i = 0; i m; i+) printf(%5d, xi); printf(nnGiven Array #2 :); for (i = 0; i n; i+) printf(%5d, yi); printf(nnMinimum Distance = %d, min_distance(x, y, m, n);答案: 1). xx?x:y 2). xindex_x = yindex_y 或 yindex_y=xindex_x 3). index_x+ 或 index_x=index_x+1 或 +index_x第3题 (1.0分)/*-【程序填空】-功能:输入数组,最大的与第一个元素交换,最小的与最后一个 元素交换,输出数组。-*/#include input(number)int number10; int i; /*SPACE*/ for(i=0;i9;【?】) scanf(%d,&numberi); scanf(%d,&number9);/*SPACE*/max_min(【?】)int array10; int *max,*min,k,l; int *p,*arr_end; /*SPACE*/ arr_end=【?】; max=min=array; for(p=array+1;p*max) max=p; /*SPACE*/ else if(【?】) min=p; k=*max; l=*min; *p=array0;array0=l;l=*p; *p=array9;array9=k;k=*p;output(array)int array10; int *p; for(p=array;parray+9;p+) printf(%d,*p); printf(%dn,array9);main() int number10; input(number); max_min(number); output(number);答案: 1). i+ 或 i=i+1 或 +i 2). array 3). array+10 或 10+array 4). *p*p第4题 (1.0分)/*-【程序填空】-功能:数组名作为函数参数,求平均成绩。-*/#include float aver(float a ) /*定义求平均值函数,形参为一浮点型数组名*/ int i; float av,s=a0; for(i=1;i5;i+) /*SPACE*/ s+=【?】i; av=s/5; /*SPACE*/ return 【?】;void main() float sco5,av; int i; printf(ninput 5 scor

温馨提示

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

评论

0/150

提交评论