版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计试题及答案(九)C语言程序设计试题及答案(十)、选择题:1.以下不是C语言的特点的是(页脚内容1A.C语言简洁、紧凑B.能够编制出功能复杂的程序C.C语言可以直接对硬件进行操作D C语言移植性好2 .以下不正确的C语言标识符是(A. ABCB. abcC abcD. ab.c3 . 一个c程序的执行是从().A. main()函数开始,直到main()函数结束8 .第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束4.以下不正确的语句(设有intp,q)是(A.P*=3; B.p/=q; C.p 十=3;D.
2、 p&=q5.卜列四组选项中,均不是C语言关键字的选项是().A.defineB.getcC.includeD.whileifcharsanfgotypeprintfcasepow6.下面四个选项中,均是合法整形常量的选项是).A.160B.-0xcdfC.-01D.-0X48-0xffff01a986,0122e50x0110xe06687.下面四个选项中,均是不合法浮点数的选项是).C语言程序设计试题及答案(九)C语言程序设计试题及答案(九) A.160.B.123C.-.18D.-e3 0.122e4.2123e40.234e3.e50.01e3 8.若有代数式3ae/bc ,则不正确的
3、C语言表达式是() A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*39 .若以下变量均是整形,且 num=sum=7贝U计算表达式sUM=num +sUM+ +nurni/f sum的值 为().A.7B.810.若有定义:inta=7;floatx=205,y=4.7;A.2.500000D.0.00000011.sizeof(float) 是()。A. 一个双精度型表达式C. 一种函数调用 法的表达式12.设intn =3;则n十十的结果是()。A.2B.3C.9D.10则表达式 x+a%3*(int)(x+y)%2/4 的值是()。B.2.7500
4、00C.3.500000B. 一个整型表达式D. 一个不合C.4D.513 .设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()。A.floatB.charC.intD.double.14 .若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是().A.scanf( d%d1x,%1e ,&x,&y,&z);15 scanf( 2d*%d%行,&x,&y,&z);C.scanf( x%*d% o,&x,&Y);D.scanf( x%o%6.2f ,&x,&y,&z);15 .以下说法正确的是().A.输入项可
5、以为一个实型常量,如 scanf( f,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如 scanf( a=%d,b=%d );C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 scanf( “4.2f,&f);D.当输入数据时,必须指明变量的地址,如 scanf( f,&f);16 .以下程序的执行结果是()。#includemain()intsum,pad;sum=pad=5;pad=sum+;pad+;+pad;printf(%dn,pad);A.7B.6C.5D.417 .巳知字母A的ASCII码是65,以下程序的执行结果是()。#includemain()c
6、harc1=A,C2=Y;printf(%d,%dn”,c1,c2);A.A,YB.65,65C.65,90D.65,8918 .为了避免嵌套的if-else语句的二义性,c语言规定else总是与()组成配对关系。A.缩排位置相同的ifB.在其之前末配对的ifC.在其之前未配对的最近的ifD.同一行上的if19.逻辑运算符两侧运算对象的数据类型().A.能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据20 .设x、y和z是int型变量,且x = 3, y = 4, z = 5,则下面表达式中值为0的是().A. x & vB.x = yC.x | | y+z&
7、y-zD.!(x y) &!z | | 1)21 .若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假” y&x!=y);22.1 (x = = v)x 十=y;C.if(x! =y)scanf( %d” , &x)e1sescanf( % d,&y);D.if(x 0)printf( %f ”,x)页脚内容5C语言程序设计试题及答案(九) elseprintf( “f” , -x);B.if(x 0) x =x+y;printf(f ,x);elseprintf(f,-x)C.if(x 0) x =x+y;printf(f ,x);elseprintf(f,-x)D
8、.if(x 0) x =x+y;printf(f ,x);elseprintf(f,-x)elseprintf(f,-x);24 .阅读以下程序 main()inta=5,b=0,c=0;if(a=b+c)pr intf( * n” ); elseprintf( $ n );以上程序().B.可以通过编译但D.A.语法有错不能通过编译 不能通过连接C.输出* 输出$25 .以下程序运行结果是().main() inta=100,x=10,y=20,ok1=5,ok2=0;if(xy)if(y!=10)页脚内容#C语言程序设计试题及答案(九)If(!ok1)a=1;elseif(ok2) a=1
9、0;a=-1;printf( “d n” ,a);A.1B.0c.-1D.不确定26 .执行以下程序段后,变量a,b,c得值分别是().intx=10,y=9;inta,b,c;a=(-x=y+)? - x:+y;b=x+;c=y;A.a=9,b=9,c=9B.a=8,b=8,c=10C.a=9,b=10,c=9D.a=1,b=11,c=1027 .若w,x,y,z,m 均为int型变量,则执行下面语句后的 m值是().w=1;x=2;y=3;z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;A.1B.2C.3D.428 .语句while(!e);中的条件!e等价于()
10、。A.e = = 0B.e! =1C.e!=D.e29.下面有关for循环的正确描述是()A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D.for循环体语句中,可以包含多条语句,但要用花括号括起来30.C语言中while和do-while循环的主要区别是().A.do-while的循环体至少无条件执行一次B.while的循环控制条件比的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句31.以下程序段().x=-1; dox=x*x; while(!x
11、);A.是死循环C.循环执行二次32 .下面程序的运行结果是().#includemain()inty=10;doy-;while(-y);printf(dn”,y-);A.-1B.133 .以下正确的描述是().B.循环执行二次D.有语法错误C.8D.0A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用 goto语句34.c语言中()。A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退
12、出C.do-whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D.do-while语句构成的循环,当 while语句中的表达式值为零时结束循环35 .在C语言中,引用数组元素时,其数组下标的数据类型允许是()A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式36 .在C语言中,一位数组的定义方式为:类型说明符数组名()。A.常量表达B.整型表达式C.整型常量或整型表达式D.整型常量37 .以下不能对二维整形数组a进行正确初始化的语句是()。A.inta23=0;B.inta口3=1,2,0;C.inta23=1,2,3,4,5,6;D.inta口3=1,
13、2,3,4,5,6;38 .若有说明:inta口4=0, 0;则下面正确的叙述是()。A.数组a中每个元素均可得到初值 0B.二维数组a的第一维大小为1C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1D.只有元素a00和a01可得到初值0,其余元素均得不到初值 039.若有说明:inta3=1,2,3,4,5,6,7; 则a数组第一维的大小是()。A.2B.3C.4D.无确定值40.下面程序的运行结果是()。charc5= a , b , 0 , c c, 0 ;printf( ,c);A. a bB.ab页脚内容9C语言程序设计试题及答案(九)C.abcD.ab41
14、 .有两个字符数组a、b,则以下正确的输入语句是()。gets(a,b);scanf( s%s ,a,b);scanf( s%s ,&a,&b);gets( a),gets(b” );A.sj+=siB.s+j=siC.sj=si;j+D.sj=si42 .若使用一维数组名作函数实参,则以下正确的说法是().A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.在被调函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致43 .以下正确的说法是().A.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效B.在该函数中有效C.在本程序范
15、围内均有效D.非法变量44 .凡是函数中未指定存储类别的局部变量,其隐含的存储类别为().A.自动(auto) B.静态(static ) C.外部(extern ) D. 寄存器(register )45 .以下程序的运行结果是()。#defineMIN(x,y) (x)(y)?(x):(y)main()inti=10,j+15,k;k+10*MIN(i,j);printf( d n”,k);A.10B.15C.100D.15046 .C语言的编译系统对宏命令的处理是()。A.在程序运行时进行的B.在程序连接时进行的C.和C程序中的其它语句同时进行编译的D.在对源程序中的其它语句同时进行编译
16、的47 .请读程序#include#defineMUL(x,y)(x)*ymain()inta=3,b=4,c;c=MUL(a+,b+);printf(%dn,c);上面程序的输出结果是()。A.12B.15C.20D.1648 .以下程序的输出结果为()。#definePT5.5#defineS(x)PT*x*xmain()inta=1,b=2;printf(%4.1n,S(a+b);页脚内容11C语言程序设计试题及答案(九)A.12.0B.9.5C.12.5D.33.549 .在“文件包含”预处理语句的使用形式中,当 #include后面的文件名用。括起时,寻找被 包含文件的方式是()oA
17、.仅仅搜索当前目录B.仅仅搜索源程序所在目录C.直接按系统设定的标准方式搜索目录D.先在源程序所在目录搜索,再按系统设定的标准方式搜索50.以下正确的描述是()。A.C语言的预处理功能是指定完成宏替换和包含文件的调用B.预处理指令只能位于C源程序文件的首部C.凡是C源程序中行首以“ #标识的控制行都是预处理指令D.C语言的编译预处理就是对源程序进行初步的语法检查51.设pl和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语 句是()。A.c=*p1+p2;B.p2=cC.p1=p2D.c=*p1*(*p2);52 .设有下面的程序段:chats = china ;ch
18、ar*p;p=s;则下列叙述正确的是()。A.s和p完全相同B.数组s中的内容和指针变量p中的内容相等C.s数组长度和p所指向的字符串长度相等D.*p与s0相等53 .下面程序的运行结果是()。#include#include main()char*p1,*p2,str50= abc” ;p1= abc ;p2= abc” ;strcpy(str+1,strcat(p1,p2);printf( s n”,str);A.abcabcabc B.bcabcabc C.aabcabc D.cabcabc54 .若有定义:inta23;则对数组a的第i行第j歹1(假设i , j已正确说明并赋值)元数
19、值的正确引用为(A.*(*(i+j)+j)B.(a+i)jC*(a+i+j)D*(a+i)+j55 .若有定义:int(*p) 4;则标识符p()。A.是一个指向整型变量的指针B.是一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.定义不合法56.若有以下定义和赋值语句,则对b数组的第i行第j列(假设i , j已正确说明并赋值)元素地址的非法引用为()。intb23=0, (*p) 3;p=b;A.* (* (p+i) +j)B.* (pi+j )C. (p+i) +jD. (* (p+i) ) j57.当说明一个结构体变量时系统分配给它的内存是().A.各成员所需内存量的
20、总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量58.C语言结构体类型变量在程序执行期间().A.所有成员一直驻留在内存中B.只有一个成员驻留在内存中C.部分成员驻留在内存中D.没有成员驻留在内存中59 .以下对C语言中共用体类型数据的叙述正确的是()A.可以对共用体变量名直接赋值B. 一个共用体变量中可以同时存放其所有成员C. 一个共用体变量中不可能同时存放其所有成员D.共用体类型定义中不能出现结构体类型的成员60 .C语言共用体型变量在程序运行期间()。A.所有成员一直驻留在内存中B.只有一个成员驻留在内存中C.部分成员驻留在内存中D.没
21、有成员驻留在内存中61.请读程序片段:intx=20;printf(d n,x);上面程序片段的输出结果是().A.02B. - 20C.-21D.-1162.在位运算中,操作数每左移一位,其结果相当于().A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以463 .系统的标准输入文件是指()A.键盘B.显示器C.软盘D.硬盘64 .当顺利执行了文件关闭操作时,fclose函数的返回值是()。A.-1B.TUREC.0D.165 .已知函数的调用形式:fread(buffer,size,count,fp) ;其中buffer代表的 是()。A. 一个整形变量,代表要读入的数据项总数
22、B.一个文件指针,指向要读的文件C.一个指针,指向要读入数据的存放地址D.一个存储区,存放要读的数据项二、填空题:1 .C程序的基本单位是 。2 .表达式10%3的结果是。3 .假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为。4 .在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为 ;5 . C语言所提供的基本数据类型包括:06 .表达式 pow(2.8,sqrt(double(x)值的数据类型为 。7 .以下程序的执行结果是。#includemain()floatf=3.5;printf(%f,%g”,f,f)页脚内容15C语言程序设计
23、试题及答案(九)8 .以下程序的执行结果是。#includemain()floatf=31.41592;printf(%f,%e”,f,f)9 .以下程序的执行结果是#includemain()inta,b,c;a=2;b=3;c=1;if(ac)printf(%dn,a);elseprintf(%dn,b);printf(endn);10 .在C语言中,表示逻辑“真”信用 .11 .有 intx,y,z; 且 x=3,y=-4,z=5,则表达式(x&y)=(x | | z)的值为。12 .下面程序从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。intn=0,c;c=getch
24、ar();while( )if(c=0 &c=0);15 .若for循环用以下形式表示:for (表达式1;表达式2;表达式3) 循环体语句则执行语句for(i=0;i3;i+) printf( “*”);时,表达式 3执 行 次。16 .以下程序的输出结果是 。main()ints10=1,2,3,4,5,6,7,8,9,10,*p=s;printf(%dn,*(p+4);17 .若二维数组a有m列,则计算任一元素aij 在数组中位置的公式 为:。(假设a00位于数组的第一个位置上。)18 .在C语言中,二维数组元素的内存中的存放顺序是 19 .在C语言中,一个函数一般由两个部分组成,它们
25、是。20 .以下程序的运行结果是。#includef(inta口)inti=0;while(ai0);print( d n”,t)26 .下面程序段的运行结果是。char*p= PDP10” ;intI,d;for(I=0;I7;I+)d=isdigit(*(p+ii);if(d!=0) printf( c*(p+I);27 .当运行以下程序时,从键盘输入 bookbook (f 的值是。29 .在C语言中心运算符作为双目运算符时表示的是 运算.30 .在C语言中,文件的存取是以字符为单位的,这种文件被称作 文件。三、编程题:1 .将一个字符串的内容颠倒过来。2 .求整形数组的最大值。3 .求
26、字符串的长度(不用strlen )。4 .编写程序,将字符串str中的所有字符k删除。5 .找出二维数组的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。二维数组 也可能没有鞍点。6 .a是一个2*4的整型数组,且各元素均已赋值.函数max_value可求出其中的最大元素值 max, 并将此值返回主调函数.今有函数调用语句 max=max_value(a);请编写max_value函数.7 .设计函数,实现字符串连接操作(不使用 strcat )。8 .以下程序的功能是应用下面的近似公式计算e的n次方.函数f1用来计算每项分子的值,函数f2用来计算每项分母的值.请编写f1和f2函数.
27、3!(前20项的和)9 .从键盘上输入若干个学生的成绩,计算出平均成绩,并输出不及格的成绩和人数。10 .设计函数,在二维数组中产生如下形式的扬辉三角形。112113311464111 .回文是从前向后和从后向前读起来都一样的句子。写一个函数,判断一个字符串是否为回文,注意处理字符串中有中文也有西文的情况。12 .约瑟夫环问题:编号为1,2,3, ,n的n个人按顺时针方向围坐一圈,每人持有一个 正整数密码。一开始任选一个正整数 m作为报数上限值,从第一个人开始按顺时针报数,报到 m时停 止,报m的人出列,将他的密码作为新的 m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人
28、全部出列为止。设计程序求出出列顺序。一、选择题1.B2.D3.A4.D5.A6.A7.B8.C9.A10.A11.B12.B13.D14.D15.D16.A17.D18.C19.D20.D21.C22.C23 .B24.D25.C26.B27.A28.A29.D30.A31.C32.B33.B34.D35.C36.D37.C38.D39.B40.B41.B42.A43.A44.A4 5.B46.D47.A48.B49.C50.C51.B52.D53.C54.A55.C56.C57.A58.A59.C60.B61.C62.A63.A64.C65.C二、填空题_ 4.4 5.单精度
29、型、双精度型、整型、字符型和枚举型 6.双精度型(或:doubLe型)7.3.500000,3.58. 31.415920,3.14159e+019.end10.非 0 的数字11.112.c!=n13.36 _ 14.315.316.517.i*m+j+i18. 按行主顺序存放19.函数说明部分和函数体 20.5 10 9 21.2400 22.12 23.x=8,y=524.hELLO!25.126.1*0*27.#928.6.029.按位与 30.三、编程题1 .解:注意交换位置的控制方法,参考程序如下:#include#includevoidchange(charstr口)intlen
30、,i,j;charc;len=strlen(str);页脚内容21C语言程序设计试题及答案(九)for(i=0,j=len-1;ilen/2;i+,j-) c=stri;stri=strj;strj=c;main()charstr80;printf(Enterstring:);gets(str);change(str);printf(nresultis:%sn,str);2 .解:参考程序如下:#includeintmax(inta口,intn)inti,mx;mx=a0;for(i=1;imx)mx=ai;returnmx;main()inta8=23,4,6,12,33,55,2,45;p
31、rintf(maxis%dn,max(a,8);3 .解:参考程序如下:#includeintstrlen(charstr)inti;for(i=0;stri!=0;i+);returni;main()charstr80;printf(Enterstring:);gets(str);printf(nstringlengthis:%dn”,strlen(str);4 .解:将从字符串中删除所有字符k的功能定义为函数。参考程序如下:#includevoiddelchar(charstr口,charc)inti,j;for(i=0,j=0;stri!=0;i+)if(stri!=c)strj+=st
32、ri;strj=0;main()charstr80;inti,j;gets(str);delchar(str,k);puts(str);5 .解:依鞍点定义,对数组每行元素循环,找到当前行上最大元素,记下所在的列号,再判断 此元素是否为对应列的最小元素。将寻找打印数组鞍点的操作定义为函数,如果没有鞍点,函数返回 -1。参考程序如下:#include#defineN10#defineM10intandian(intaM,intn,intm)inti,j,k,max,maxcol;intflag1,flag2=0;/*flag1标记每一行的最大值是否鞍点,flag2标记矩阵是否有鞍点*/for(i
33、=0;in;i+)max=ai0;for(j=1;jmax)max=aij;maxcol=j;for(k=0,flag1=1;kn&flag1;k+)if(akmaxcolmax)flag1=0;if(flag1=1)printf(n%3d%3d%5dn,i,maxcol,max);flag2=1;if(flag2=0)return-1;页脚内容23C语言程序设计试题及答案(九)main()inti,j,n,m,aNM;printf(Enterrow&col:);scanf(%d%d,&n,&m);printf(Enterarrayelement:);for(i=0;in;i+)for(j=0
34、;jm;j+)scanf(%d”,&aij);printf(n);for(i=0;in;i+)for(j=0;jm;j+)printf(%d,aij);printf(n);if(andian(a,n,m)=-1)printf(nnoandiann);6. max_value(intarr4)max(intarr4)intI,j,max;max=arr00;for(i=0;i2;i+)for(j=0;jmax)max=arrij;return(max);7.解:注意结束字符的判断和处理,目标字符串的长度应足够长。参考程序如下:#includevoidscat(chars1口,chars2口)in
35、ti,j;for(i=0;s1i!=0;i+);for(j=0;s2j!=0;j+)s1i+=s2j;s1i=0;main()chars180=Good;chars210=morning;scat(s1,s2);printf(%sn,s1);3!(前20项的和)floatf2(intn)floatf1(intx,intn)main()floatexp=1.0;intn,x;printf( Inputanumber: )scanf( d ,&x); printf(dn”,x);exp=exp+x;for(n=2;n=19;n+) exp=exp+f1(x,n)/f2(n);printf( n”,
36、x,exp),运行结果:Inputanumber:3Theisexp(3)=20.0855floatf2(intn)if(n=1)return1;elsereturn(f2(n-1)*n);floatf1(intx,intn)intI;floatj=1;for(I=1;I=n;I+)j=j*x;returnj;9.解:用输入负数表示输入结束。参考程序如下:#includemain()floatscore200,ave,sum,x;inti,n,count;printf(Enterscore:);scanf(%f,&x);n=0;sum=0.0;while(x0&n200)sum+=x;scoren+=x;scanf(%f,&x);ave=sum/n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技驱动农产品电商
- 科技农业投资视角
- 专业房产经纪服务协议2024版范本版
- 二零二四宇通客车零部件销售代理及市场拓展合作协议3篇
- 2025年度电商新零售线下体验店合作合同3篇
- 专业销售服务协议书2024年3篇
- 2025年度跨境电商物流中心场地承包经营合同4篇
- 2025年度航空航天复合材料加工技术合同4篇
- 2025年度茶楼装修工程合同标准样本8篇
- 2025年度教育机构场地租赁保证金合同8篇
- 2024版塑料购销合同范本买卖
- 【高一上】【期末话收获 家校话未来】期末家长会
- JJF 2184-2025电子计价秤型式评价大纲(试行)
- GB/T 44890-2024行政许可工作规范
- 有毒有害气体岗位操作规程(3篇)
- 二年级下册加减混合竖式练习360题附答案
- 吞咽解剖和生理研究
- TSG11-2020 锅炉安全技术规程
- 汽轮机盘车课件
- 异地就医备案个人承诺书
- 苏教版五年级数学下册解方程五种类型50题
评论
0/150
提交评论