C语言程序设计试题及答案(十)_第1页
C语言程序设计试题及答案(十)_第2页
C语言程序设计试题及答案(十)_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计试题及答案(十)一、选择题:以下不是C语言的特点的是( )A.C语言简洁、紧凑 B.能够编制出功能复杂的程序C.C语言可以直接对硬件进行操作 D.C语言移植性好以下不正确的C语言标识符是( )。A.ABC B.abc C.a_bc 3.一个c程序的执行是从( ).A.main( )函数开始,直到main( )函数结B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结以下不正确的语句(设有intp,q)是( )。A.P*=3;B.p/=q; C.p十=3;下列四组选项中,均不是C语言关键字的选项是( ).A.defineiftypeB.getccharprintfC.includesanfcaseD.whilegopow6.下面四个选项中,均是合法整形常量的选项是( ).A.160 B.-0xcdf C.-01D.-0x48a-0xffff 01a 986,0122e5011 0xe 06680x7.下面四个选项中,均是不合法浮点数的选项是( ).A.160. B.123 C.-.18D.-e30.12 2e4.2 123e40.234e3 .e5 0.01e33ae/bc,CA.a/b/c*e*3 B.3*a*e/b/cC.3*a*e/b*c D.a*e/c/b*3后sum的值为().A.7 B.8 C.9 D.1010.若有定义:inta=7;floatx=205,y=4.7;x+a%3*(int)(x+y)%2/4的值是()。A.2.500000 B.2.750000 C.3.500000 D.0.00000011.sizeof(float)是()。一个双精度型表达式 B.一个整型表达式C.一种函数调用12.设intn=3;则n十十的结果是()。D.一个不合法的表达式A.2 B.3 C.4D.5设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值数据类型为( )。float B.char D.double.x,yint,zdoublescanfA.scanf(“%d%d1x,%1e”,&x,&y,&z);B.scanf(“%2d*%d%1f”,&x,&y,&z);C.scanf(“%x%*d%o”,&x,&Y);D.scanf(“%x%o%6.2f”,&x,&y,&z);以下说法正确的是().scanf(“%f”,3.5);scanf(“a=%d,b=%d”);scanf(“%4.2f”,&f);scanf(“%f”,&f);以下程序的执行结果是( )#include<stdio.h>main(){intsum=pad=5;pad=sum++;pad++;++pad;printf("%d\n",pad);}A.7 B.6 C.5 D.4AASCII65,#include<stdio.h>main(){charc1='A',C2='Y';printf("%d,%d\n",c1,c2);A.A,Y B.65,65 C.65,90 D.65,89为了避免嵌套的if-else语句的二义性语言规定else总是与( )组配对关系。ififD.ifA.0100只能是整型或字符型数据可以是任何类型的数据x、yzintx=3,y=4,z=50的是( ).A.’x’&&’y’B.x<=yC.x||y+z&&y-zD.!((x<y)&&!z||1)A的值为“假”。则以下不能满足要求的表达式是().A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2ifA.if(x>y&&x!=y);B.if(x==y)x=y;C.if(x!=y)scanf(“%d”,&x)e1sescanf(”%d,&y);D.if(x<y){x十十;y十十;}ifA.if(x>0)printf(“%f“,x)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.if(x>0){x=x+y;printf(“%f“,x);}elseprintf(“%f”,-x)elseprintf(“%f”,-x);阅读以下程序main(){inta=5,b=0,c=0;if(a=b+c)printf(“***\n”);else printf(“$$$\n”);}以上程序( ).语法有错不能通过编译 B.可以通过编译但不能通连接C.输出*** D.输出$$$main(){inta=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if(y!=10)If(!ok1)a=1;elseif(ok2) a=10;a=-1;printf(“%d\n”,a);}B.0 c.-1 D.不确定a,b,cintx=10,y=9;a=(--x==y++)?–x:++y;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=10w,x,y,z,mintmw=1; x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;A.1B.2C.3 D.4语句while(!e);中的条件!e等价于( )。27.28.A.e==0 B.e!=1 C.e!=0 D.~e下面有关for循环的正确描述是( )forforforbreakforCwhiledo-whileA.do-whilewhiledo-whiledo-while以下程序段().x=-1;do{x=x*x;}while(!x);是死循环 B.循环执行二次C.循环执行二次 D.有语法错误#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf(“%d\n”,y--);}A.-1 B.1 C.8 D.0以下正确的描述是().continueswitchbreakbreakcontinueD.gotoc语言中( )。do-whiledo-whilebreakdo—whiLewhile环do—whilewhileC()整型常量 B.整型表达式C.整型常量或整型表达式D.任何类型的表达式C()。B.C.D.量]a()。A.inta[2][3]={0};B.inta[][3]={{1,2},{0}};C.inta[2][3]={{1,2},{3,4},{5,6}};D.inta[][3]={1,2,3,4,5,6};若有说明:inta[][4]={0,0};则下面正确的叙述是()。a0a1aa1a0][0]a[0][1]0039.inta[][3]={1,2,3,4,5,6,7};a()B.3 C.4 D.无确定值下面程序的运行结果是()。charc[5]={‘a’,’b’,’\0’,’c’c,’\0’};printf(“%s”,c);}A.‘a’’b’B.abC.abcD.aba、b,则以下正确的输入语句是()。gets(a,b);scanf(“%s%s”,a,b);scanf(“%s%s”,&a,&b);gets(“a”),gets(“b”);A.s[j+=]=s[i] B.s[++j]=s[i]C.s[j]=s[i];j++ D.s[j]=s[i]A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.D.实参数组名与形参数组名必须一致以下正确的说法是().句中有效在该函数中有效D.非法变量凡是函数中未指定存储类别的局部变量,其隐含的存储类别为().(auto)B.(extern)D.(register)以下程序的运行结果是()。#defineMIN(x,y) main(){inti=10,j+15,k;k+10*MIN(i,j);printf(“%d\n”,k);}A.10 B.15 C.100 D.150C()。B.C.CD.请读程序#include<stdio.h>#defineMUL(x,y)(x)*ymain(){inta=3,b=4,c;c=MUL(a++,b++);printf("%d\n",c);}上面程序的输出结果是()。A.12 B.15 C.20 D.16以下程序的输出结果为()。#definePT 5.5#defineS(x) main(){inta=1,b=2;printf("%4.1\n",S(a+b));}A.12.0 B.9.5 C.12.5 D.33.5在“文件包含”预处理语句的使用形式中,当#include括起时,寻找被包含文件的方式是()。仅仅搜索当前目录仅仅搜索源程序所在目录直接按系统设定的标准方式搜索目录先在源程序所在目录搜索,再按系统设定的标准方式搜索以下正确的描述是()。A.CBCC.凡是C源程序中行首以“#”标识的控制行都是预处理指令D.C语言的编译预处理就是对源程序进行初步的语法检查p1p2确执行的赋值语句是()。A.c=*p1+p2; B.p2=c C.p1=p2 D.c=*p1*(*p2);设有下面的程序段:chats[]=”china”;char*p;p=s;则下列叙述正确的是()。A.spB.数组s中的内容和指针变量p中的内容相等C.spD.*ps[0]相等下面程序的运行结果是()#include<stdio.h>#include<string.h>main(){char*p1,*p2,str[50]=”abc”;p1=”abc”;p2=”abc”;strcpy(str+1,strcat(p1,p2));printf(“%s\n”,str);}abcabcabc B.bcabcabcC.aabcabc D.cabcabca[2][3];则对数组aij(假设明并赋值)元数值的正确引用为()。A.*(*(i+j)+j)B.(a+i)[j] C.*(a+i+j) D.*(a+i)+j若有定义:int(*p)[4];p()。B.是一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.定义不合法bij(i,j说明并赋值)元素地址的非法引用为()。intb[2][3]={0},(*p)[3];p=b;A.*(*(p+i)+j) B.*(p[i]+j)C.(p+i)+j D.(*(p+i))[j]当说明一个结构体变量时系统分配给它的内存是(A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量C(A.所有成员一直驻留在内存中B.C.部分成员驻留在内存中D.没有成员驻留在内存中以下对C语言中共用体类型数据的叙述正确的是( )。可以对共用体变量名直接赋值一个共用体变量中可以同时存放其所有成员CDC语言共用体型变量在程序运行期间() 。B.C.部分成员驻留在内存中D.没有成员驻留在内存中请读程序片段:intx=20;printf(“%d\n”,~x);上面程序片段的输出结果是( ).A.02B.–20C.-21D.-11在位运算中,操作数每左移一位,其结果相当于( A.操作数乘以2244系统的标准输入文件是指()。键盘 B.显示器 C.软盘 D.硬盘当顺利执行了文件关闭操作时,fclose函数的返回值是()A.-1 B.TURE C.0 D.1已知函数的调用形式其中buffer代表是 ()。A.一个整形变量,代表要读入的数据项总数B.一个文件指针,指向要读的文件C.一个指针,指向要读入数据的存放地址D.一个存储区,存放要读的数据项二、填空题:C程序的基本单位。表达式10%3的结果是 。假设所有变量均为整型则表达式(a=2,b=5,a++,b++,a+b)的值为 。在C语言中(以16位PC机为例),一个float型数据在内存中所占用的节数为 ;5.C语言所提供的基本数据类型包括: 。表达式pow(2.8,sqrt(double(x)))值的数据类型。以下程序的执行结果是 #include<stdio.h>main(){floatf=3.5;printf("%f,%g",f,f)}以下程序的执行结果是 。#include<stdio.h>main(){floatf=31.41592;printf("%f,%e",f,f)}以下程序的执行结果是 。#include<stdio.h>main(){inta,b,c;a=2;b=3;c=1;if(a>c)printf("%d\n",a);elseprintf("%d\n",b);printf("end\n");}在C语言中,表示逻辑“真”值用 .有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x︱︱z)的为 。填空。intn=0,c;c=getchar();while( ){if(c>=‘0’&&c<=‘9’)n++;c=getchar();}执行下面程序段后,k值k=1;n=263;do{k*=n%10;n/=10}while(n);下面程序段中循环体的执行次数是 a=10;b=0;do{b+=2;a-+2+b;}while(a>=0);forfor(表达式1;表达式2;表达式3) 循环体语句则执行语句for(i=0;i<3;i++)printf(“*”);时,表达式3行 次。以下程序的输出结果是 。main(){ints[10]={1,2,3,4,5,6,7,8,9,10},*p=s;printf("%d\n",*(p+4));}若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公: 。(假设a[0][0]位于数组的第一个位置上。)在C语言中,二维数组元素的内存中的存放顺序是 。在C语言中,一个函数一般由两个部分组成,它是 。以下程序的运行结果是 。#include<stdio.h>f(inta[]){inti=0;while(a[i]<=10){printf(“%d”,a[i]);i++;}}main(){inta[]={1,5,10,9,11,7};f(a+1);}设有以下宏定义:#defineWIDTH80#defineLENGTH(WIDTH+40)则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的是 。下面的运行结果是 。#defineMUL(z) main(){printf(“%d\n”,MUL(1+2)+3);}下面程序的运行结果是 。#defineEXCH(a,b){intt;t=a;a=b;main(){intx=5,Y=9;EXCH(x,y);printf(“x=%d,y=%d\n”,x,y);}下面程序段的运行结果是 chars[80],*sp=”HELLO!”;sp=strcpy(s,sp);s[0]=’h’;puts(sp);下面程序段的运行结果是 chars1=”AbcdEf”,s2=”aB”;s1++;t=(strcmp(s1,s2)>0);print(“%d\n”,t)下面程序段的运行结果是 char*p=”PDP1-0”;intI,d;for(I=0;I<7;I++){d=isdigit(*(p+ii));if(d!=0)printf(“%c}book<CR>book<CR>(<CR>表示回车,表示空格),则下面程序段运行的结果是 。chara1[80],a2[80],*s1=a1,*s2=a2;gets(s1);gets(s2);if(!strcmp(s1,s2))printf(“*”):elseprintf(“#”);printf(“%d”,strlen(strcat(s1,s2)));structnum{inta;intb;floatf;}n={1,3,5.0};structnum*pn=&n;则表达式(*pn).a+pn->f的值。在C语言中,&运算符作为双目运算符时表示的是 运算.在C语言中文件的存取是以字符为单位的这种文件被称件。三、编程题:将一个字符串的内容颠倒过来。求整形数组的最大值。求字符串的长度(strlen)。编写程序,将字符串str中的所有字符’k’删除。5.6.a2*4max_valuemaxmax=max_value(a);max_value设计函数,实现字符串连接操作(strcat)。enf1f2f1f220人数。设计函数,在二维数组中产生如下形式的扬辉三角形。111121133114641······符串是否为回文,注意处理字符串中有中文也有西文的情况。121,2,3,···,nnmmmm1部出列为止。设计程序求出出列顺序。参考答案一、选择题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.A45.B46.D47.A48.B49.C50.C51.B52.D53.C54.A55.C56.C57.A58.A59.C60.B61.C62.A63.A64.C65.C二、填空题1.函数 2.13.9 4.4 单精度型、双精度型、整型、字符型和枚举型6.双精度型(或:doubLe型)7.3.500000,3.5 8.31.415920,3.14159e+019.end10.非0的数字11.112.c!='\n'13.3614.315.316.5 17.i*m+j+i18.按行主顺序存放19.函数说明部分和函数体20.510921.240022.1223.x=8,y=524.hELLO!25.126.1*0*27.#928.6.029.按位与30.流式三、编程题解:注意交换位置的控制方法,参考程序如下:#include<stdio.h>#include<string.h>voidchange(char{intlen,i,j;charc;len=strlen(str);for(i=0,j=len-1;i<len/2;i++,j--){c=str[i];str[i]=str[j];str[j]=c;}}main(){charstr[80];printf("Enterstring:");gets(str);change(str);printf("\nresultis:%s\n",str);}解:参考程序如下:#include<stdio.h>intmax(inta[],intn){inti,mx;mx=a[0];for(i=1;i<n;i++)if(a[i]>mx)mx=a[i];returnmx;}main(){inta[8]={23,4,6,12,33,55,2,45};printf("maxis%d\n",max(a,8));}解:参考程序如下:#include<stdio.h>intstrlen(charstr[]){inti;for(i=0;str[i]!='\0';i++);returni;}main(){charstr[80];printf("Enterstring:");gets(str);printf("\nstringlengthis:%d\n",strlen(str));}解:将从字符串中删除所有字符’k’的功能定义为函数。参考程序如下:#include<stdio.h>voiddelchar(charstr[],charc){inti,j;for(i=0,j=0;str[i]!='\0';i++)if(str[i]!=c)str[j++]=str[i];str[j]='\0';}main(){charstr[80];inti,j;gets(str);delchar(str,'k');puts(str);}解:依鞍点定义,对数组每行元素循环,找到当前行上最大元素,记下所在义为函数,如果没有鞍点,函数返回-1。参考程序如下:#include<stdio.h>#defineN10#defineM10intandian(inta[][M],intn,intm){inti,j,k,max,maxcol;intflag1,flag2=0;/*flag1flag2矩阵是否有鞍点*/for(i=0;i<n;i++){max=a[i][0];for(j=1;j<m;j++)if(a[i][j]>max){max=a[i][j];maxcol=j;}for(k=0,flag1=1;k<n&&flag1;k++)if(a[k][maxcol]<max)flag1=0;if(flag1==1){printf("\n%3d%3d%5d\n",i,maxcol,max);flag2=1;}}if(flag2==0)return-1;}main(){inti,j,n,m,a[N][M];printf("Enterrow&&col:");scanf("%d%d",&n,&m);printf("Enterarrayelement:");for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%d",&a[i][j]);printf("\n");for(i=0;i<n;i++){for(j=0;j<m;j++)printf("%d",a[i][j]);printf("\n");}if(andian(a,n,m)==-1)printf("\nnoandian\n");}max_value(intarr[][4]){ }max(intarr[][4]){intI,j,max;max=arr[0][0];for(i=0;i<2;i++)for(j=0;j<4;j++)if(arr[i][j]>max)max=arr[i][j];return(max);}下:#include<stdio.h>voidscat(chars1[],chars2[]){inti,j;for(i=0;s1[i]!='\0';i++);for(j=0;s2[j]!='\0';j++)s1[i++]=s2[j];s1[i]='\0';}main(){chars1[80]="Good";chars2[10]="morning";scat(s1,s2);printf("%s\n",s1);}8.ex=1=x=x2\2!+x3\3!„(20floatf2(intn){ }floatf1(intx,intn){ }main(){floatexp=1.0;intn,x;printf(“Inputanumber:”)’scanf(“%d”,&x);printf(“%d\n”,x);exp=exp+x;for(n=2;n<=19;n++)exp=exp+f1(x,n)/f2(n);printf(“\nTheisexp(%d)=%8.4f\n”,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;}#include<stdio.h>main(){floatscore[200],ave,sum,x;inti,n,count;printf("Enterscore:");scanf("%f",&x);n=0;sum=0.0;while(x>0&&n<200){sum+=x;score[n++]=x;scanf("%f",&x);}ave=sum/n;printf("average=%f\n",ave);for(count=0,i=0;i<n;i++)if(score[i]<60){printf("%f\n",score[i]);count++;}printf("%dnotpass\n",count);}解:扬辉三角形各行数据规律:1从第3行起,(3) 除第一和最后一个数外,(4) 其的数

温馨提示

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

评论

0/150

提交评论