您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言程序设计习题集(2)
数组一单项选择题(每题2分,共40分)1以下对一维整型数组a的正确定义(说明)的是___。Ainta(10);B)intn=10,a[n];Cintn;D#defineSIZE10scanf(%d,&n);inta[SIZE];inta[n];2若有定义(说明)inta[10];,则对数组a的元素正确引用的是___。Aa[10]Ba[3.5]Ca(5)Da[10-10]3执行下面程序段后,变量k的值是___。intk=3,s[2];s[0]=k;k=s[1]*10;A不定值B33C30D104以下程序的输出结果是___。main(){inti,k,a[10],p[3];k=5;for(i=0;i10;i++)a[i]=i;for(i=0;i3;i++)p[i]=a[i*(i+1)];for(i=0;i3;i++)k+=p[i]*2;printf(%d\n,k);}A20B21C22D235以下对一维整型数组a初始化的语句中正确的是___。Ainta[10]=(0,0,0,0,0);Binta[10]=();Cintx=2,a[10]={10*x};Dinta[10]={0};6若有以下说明,则数值为4的表达式是___。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;Aa[g-c]Ba[4]Ca['d'-'c']Da['d'-c]7下列程序运行后的输出结果是___。#defineMAX10voidmain(){inti,sum,a[]={1,2,3,4,5,6,7,8,9,10};sum=1;for(i=0;iMAX;i++)sum-=a[i];printf(sum=%d\n,sum);}Asum=55Bsum=-54Csum=-55Dsum=548以下程序的输出结果是___。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y=1);for(j=i-1;j0;j--)printf(%d,a[j]);}A1000B1001C1010D110019以下对二维数组a的正确定义(说明)的是___。Ainta[3][];Bfloata(3,4);Cdoublea[1][4];Dfloata(3)(4);10若有定义(说明)inta[3][4];,则对数组a的元素的引用非法的是___。Aa[2][2*1]Ba[1][3]Ca[4-2][0]Da[0][4]11以下不能对二维数组a进行正确初始化的语句是___。Ainta[2][3]={0};Binta[][3]={{1,2},{0}};Cinta[2][3]={{1,2},{3,4},{5,6}};Dinta[][3]={1,2,3,4,5,6};12下列数组定义语句中,正确的是___。Achara[][]={'a','b','c','d','e','f'};Bchara[2][3]='a','b';Cchara[][3]={'a','b','c','d','e','f'};Dchara[][]={{'a','b','c','d','e','f'}};13下列程序运行后的输出结果是___。main(){inta[4][4],i,j,k;for(i=0;i4;i++)for(j=0;j4;j++)a[i][j]=i-j;for(i=1;i4;i++)for(j=i+1;j4;j++){k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}for(i=0;i4;i++){printf(\n);for(j=0;j4;j++)printf(%4d,a[i][j]);}}A0-1-2-3B012310-1-2-1012210-1-2-1013210-3-2-10C0-1-2-3D01231012-10-1-22-101-210-23-2-10-321014以下程序的输出结果是___。main(){inti,a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(%d%d%d%d\n,a[0][3],a[1][2],a[2][1],a[3][0]);}A0650B1470C5430D输出值不定15有以下程序:main(){intx[3][2]={0},i;for(i=0;i3;i++)scanf(%d,x[i]);printf(%3d%3d%3d\n,x[0][0],x[0][1],x[1][0]);}若运行时输入:246回车,则输出结果是___。A200B204C240D24616下列描述不正确的是___。2A字符型数组中可以存放字符串B可以对字符型数组进行整体输入和输出C可以对整型数组进行整体输入和输出D不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值17对于以下定义,叙述正确的是___。charx[]=abcdef;charx[]={'a','b''c','d','e','f'};A数组x和数组y等价B数组x和数组y的长度相等C数组x的长度大于数组y的长度D数组x的长度小于数组y的长度18以下选项中,不能正确赋值的是___。Achars1[10];s1=Ctest;Bchars2[]={'C','t','e','s','t'};Cchars3[20]=Ctest;Dchars4[30];strcpy(s4,Ctest);19若有定义和语句:chars=[10];s=abcd;printf(%s\n,s);,则输出结果是___。(以下□表示空格)AabcdBaCabcd□□□□□D编译不通过20当执行下面程序时,如果输入ABC,则输出结果是___。#includestdio.h#includestring.hmain(){charss[10]=12345;gets(ss);strcat(ss,6789);printf(%s\n,ss);}AABC6789BABC67C12345ABC6DABC45678二填空题(每空3分,共24分)1若int类型变量占两个字节,定义intx[10]={0,2,4};,则数组x在内存中所占的字节数是___。2若有定义chara[]=\\141\141abc\t;,则数组a在内存中所占的字节数是___。3下列程序的输出结果是___。main(){inti,a[10];for(i=9;i=0;i--)a[i]=10-i;printf(%d%d%d\n,a[2],a[5],a[8]);}4下列程序运行的结果是___。main(){charch[7]=65ab21;inti,s=0;for(i=0;ch[i]='0'&&ch[i]='9';i+=2)s=10*s+ch[i]-'0';printf(%d\n,s);}5有定义语句:chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现字符串复制。(注意:不得使用逗号表达式)while(s[i])3{d[j]=___;j++;}d[j]=0;6下面程序运行的结果是___。main(){chars[]=abcdef;s[3]='\0';printf(%s\n,s);}7以下程序的输出结果是___。main(){charch[3][5]={AAAA,BBB,CC};printf(\%s\\n,ch[1]);}8以下程序的输出结果是___。main(){charch[]=abc,x[3][4];inti;for(i=0;i3;i++)strcpy(x[i],ch);for(i=0;i3;i++)printf(%s,&x[i][i]);printf(\n);}三程序填空题(每空3分,共36分)1以下程序的功能是:从键盘上输入若干个学生的成绩(用输入负数结束输入),统计出平均成绩,并输出低于平均分的学生成绩。请填空。#includestdio.hmain(){intn=0,i;floatx[1000],sum=0.0,ave,a;printf(Entermark:\n);scanf(%f,&a);while(a=0.0&&n1000){sum+=【1】;x[n]=【2】;n++;scanf(%f,&a);}ave=【3】;print(Output:\n);printf(ave=%f\n,ave);for(i=0;in;i++)if(【4】)printf(%f\n,x[i]);}2以下程序的功能是求出矩阵x的上三角元素之积。其中矩阵x的行列数和元素的值均由键盘输入。请填空。#defineM10main(){intx[M][M];intn,i,j;longs=1;printf(Enterainteger(=10):\n);scanf(%d,&n);4printf(Enter%ddataoneachlineforthearrayx\n,n);for(【1】)for(j=0;jn;j++)scanf(%d,&x[i][j]);for(i=0;in;i++)for(【2】)【3】;printf(%ld,s);}3以下程序,数组a中存放一个递增数列。输入一个整数,并将它插入到数组a中,使之仍为一个递增数列。请填空。main(){inta[【1】]={1,10,20,30,40,50,60,70,80,90},x,i,p;scanf(%d,&x);for(i=0,p=10;i10;i++)if(xa[i]){p=i;【2】;}for(i=9;i=p;i--)a[i+1]=a[i];【3】;for(i=0;i=10;i++)printf(%5d\n,a[i]);printf(\n);}4以下程序的功能是:将t数组的内容连接到s数组内容的后面,使s数组保存连接后的新字符串。main(){staticchars[30]=abcdefg,t[]=abcd;inti=0,j=0;while(s[i]!='\0')【1】;while(t[j]!='\0'){s[i+j]=t[j];j++;}【2】;printf(%s\n,s);}函数一单项选择题(每题2分,共40分)1以下正确的函数定义是___。Adoublefun(intx,inty)Bdoublefun(intx,y){z=x+y;returnz;}{intz;returnz;}Cfun(x,y)Ddoublefun(intx,inty){intx,y;doublez;{doublez;z=x+y;returnz;}returnz;}2以下正确的说法是___。A实参和与其对应的形参各占用独立的存储单元B实参和与其对应的形参共占用一个存储单元C有当实参和与其对应的形参同名时才共占用相同的存储单元D形参是虚拟的,不占用存储单元3若调用一个函数,且此函数中没有return语句,则正确的说法是___。5A该函数没有返回值B该函数返回若干个系统默认值C能返回一个用户所希望的函数值D返回一个不确定的值4以下正确的描述是___。A函数的定义可以嵌套,但函数的调用不可以嵌套B函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和函数的调用均不可以嵌套D函数的定义和函数的调用均可以嵌套5若用数组名作为函数调用的实参,传递给形参的是___。A数组的首地址B数组中第一个元素的值C数组中的全部元素的值D数组元素的个数6以下不正确的说法是___。A在不同函数中可以使用相同名字的变量B形式参数是局部变量C在函数内定义的变量只在本函数范围内有定义D在函数内的复合语句中定义的变量在本函数范围内有定义7已知一个函数的定义如下:doublefun(intx,doubley){……}则该函数正确的函数原型声明为___。Adoublefun(intx,doubley)Bfun(intx,doubley)Cdoublefun(int,double);Dfun(x,y);8关于函数声明,以下不正确的说法是___。A如果函数定义出现在函数调用之前,可以不必加函数原
本文标题:C语言程序设计习题集(2)
链接地址:https://www.777doc.com/doc-3969026 .html