资源描述
试卷编号: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=0 xffffff; int b; char c;A:0ffffff 和0 x61B:-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:0 xFFB: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:0 x16B:16C:-16D:0 xaaaa答案: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 scores:n); for(i=0;i5;i+) /*SPACE*/ scanf(%f,【?】); /*SPACE*/ av=aver(【?】); printf(average score is %5.2fn,av);答案: 1). a 2). av 或 (av) 3). &scoi 或 sco+i 4). sco第5题 (1.0分)/*-【程序填空】-功能:从键盘上输入一个字符串, 将该字符串升序排列后输出到 文件test.txt中,然后从该文件读出字符串并显示出来。-*/#include#include#includemain() FILE *fp; char t,str100,str1100; int n,i,j; if(fp=fopen(test.txt,w)=NULL) printf(cant open this file.n); exit(0); printf(input a string:n); gets(str); /*SPACE*/ 【?】; /*SPACE*/ for(i=0; 【?】 ;i+) for(j=0;jn-i-1;j+) /*SPACE*/ if(【?】) t=strj; strj=strj+1; strj+1=t; /*SPACE*/ 【?】; fclose(fp); fp=fopen(test.txt,r); fgets(str1,100,fp); printf(%sn,str1); fclose(fp); 答案: 1). n=strlen(str) 或 for(n=0;strn!=0;n+) 或 for(n=0;strn;n+) 或 for(n=0;strn!=0;n+) 2). ii 或 i-1+n 或 ii 或 -1+ni 或 i=i 或 -1+n=i 3). strjstr j + 1 或 str j + 1 strj 或 strj+1strj 或 strj+1=strj 4). fputs(str,fp) 或 fprintf(fp,%sn,str) 或 fprintf(fp,%s,str)第6题 (1.0分)/*-【程序填空】-功能:用函数调用方式,实现字符串的复制。-*/#include void string_copy(char *str_from, char *str_to) int i=0; /*SPACE*/ for(; (*(【?】)=*(str_from+i)!=0; i+) ;main() static char array_str120=i am a teacher.; char array_str220; /*SPACE*/ 【?】(array_str1, array_str2); /*SPACE*/ 【?】(array_str2=%sn,array_str2);答案: 1). str_to+i 或 i+str_to 2). string_copy 3). printf第7题 (1.0分)/*-【程序填空】-
展开阅读全文