c语言练习题3.docx
- 文档编号:6658420
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:18
- 大小:23.30KB
c语言练习题3.docx
《c语言练习题3.docx》由会员分享,可在线阅读,更多相关《c语言练习题3.docx(18页珍藏版)》请在冰豆网上搜索。
c语言练习题3
一、选择题
1、假设int型变量占两个字节的储存单元,若有定义:
intx[10]={0,2,4};则数组x在内存中所占字节数为()
A、3B、6C、10D、20
2、下列合法的数组定义是()
A、inta[]=”string”;B、inta[5]={0,1,2,3,4,5};
C、chara=”string”;D、chara[]={0,1,2,3,4,5};
3、若给出一下定义:
charx[]=”abcdefg”;chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};则正确的叙述为()
A、数组x和数组y等价
B、数组x和数组y的长度相同
C、数组x的长度大于数组y的长度
D、数组x的长度小于数组y的长度
4、程序:
main()
{
intn[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for(i=0;i for(j=0;j<3;j++) n[j]=n[i]+1; printf("%d\n",n[1]); } 运行结果是() A、2B、1C、0D、3 5、一下程序的输出结果是() main() { inti,k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf("%d\n",k); } A、20B、21C、22D、23 6、一下程序运行后,输出结果是() A、10000B、10010C、00110D、10100 main() { inty=18,i=0,j,a[8]; do { a[i]=y%2; i++; y=y/2; } while(y>=1); for(j=i-1;j>=0;j--) printf("%d",a[j]); printf("\n"); } 7、一下程序的输出结果是() A、ABCDB、ABCDC、EFGD、EFGH FGHEFGJKIJKL KLIJO M main() { charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k; for(k=1;k<3;k++) printf("%s\n",w[k]); } 8、当执行下面的程序时,如果输入ABC,则输出结果是() A、ABC6789B、ABC67 C、12345ABC6D、ABC456789 #include"stdio.h" #include"string.h" main() { charss[10]="12345"; gets(ss); strcat(ss,"6789"); printf("%s\n",ss); } 9、不能把字符串“Hello! ”赋给数组b的语句是() A、charb[10]={‘H’,’e’,’l’,’l’,’o’,’! ’}; B、charb[10];b=”Hello! ”; C、charb[10];strcpy(b,”Hello! ”); D、charb[10]=”Hello! ”; 10、若有定义和语句: chars[10];s=”abcd”;printf(“%s\n”,s);则运行结果是() A、输出abcdB、输出a C、输出abcdD、编译不通过 11、若有一下程序段: charstr[]=”ab\n\012\\\””; printf(“%d”,strlen(str)); 该程序段的输出结果是() A、3B、4C、6D、12 12、下列程序的输出结果是() A、12ba56B、6521C、6D、62 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); } 13、下面程序的输出是() main() { chars[]="12134211"; intv1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default: v4++; case'1': v1++; case'3': v3++; case'2': v2++; } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); } A、v1=4,v2=2,v3=1,v4=1B、v1=4,v2=9,v3=3,v4=1 C、v1=5,v2=8,v3=6,v4=1D、v1=8,v2=8,v3=8,v4=8 14、有以下程序 #include main() { charstr[][20]={"Hello","Beijing"},*p=str; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是() A、0B、5C、7D、20 15、以下程序运行后的输出是() main() { intx[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } A、75310246B、01234567 C、76310462D、13570246 16、以下程序的输出结果是() main() { intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); } A、3B、4C、1D、9 二、填空题 1、若想通过以下输入语句使a中存放字符串“1234”,b中存放字符“5”,则输入数据的形式应该是________ ...... chara[10],b; scanf("a=%s\nb=%c",a,&b); ...... 2、以下程序的功能是: 从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。 请填空。 main() { floatx[1000],sum=0.0,ave,a; intn=0,i; printf("Entermark: \n"); scanf("%f",&a); while(a>=0.0&&n<1000) { sum+=___ (1)___; x[n]=___ (2)___; n++; scanf("%f",&a); } ave=____(3)_____; printf("Output: \n"); for(i=0;i if(____(4)_____) { printf("%f\n",x[i]); } } 3、以下程序用来对从键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。 例如,输入的两个字符串分别为abcdefg和abcdef,则输出为-1.请填空。 #include main() { charstr1[100],str2[100],c; inti,s; printf("\nInputstring1: \n");gets(str1); printf("\nInputstring2: \n");gets(str2); i=0; while((str1[i]==str2[i])&&str1[i]! =_____ (1)____) { i++; s=___ (2)___; } printf("%d\n",s); } 4、下面程序的功能是: 将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。 请填空。 #include #include main() { chara[]="clanguage",t; inti,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j (1)__) if(___ (2)____) { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf("\n"); } 5、若有定义语句: chars[100],d[100];intj=0,i=0;,且s中已赋字符串,请填空以实现字符串的拷贝。 (注意: 不得适用逗号表达式。 ) while(s[i]) { d[j]=______; j++; } d[j]=0; 6、下列程序段的输出结果是_______。 main() { charb[]="Hello,you"; b[5]=0; printf("%s\n",b); } 7、若有以下程序 main() { inta[4][4]={{1,2,-3,-4},{0,-12,-13,-14},{-21,23,0,-24},{-31,32,-33,0}}; inti.j.s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a{i][j]; } } printf("%d\n",s); } 8、以下程序的功能是计算下列级数之和: 请给程序中的各变量正确赋值。 main() { inti,n; doublea,b,s,x; ____________; scanf("%d%lf",&n,&x); for(i=1;i<=n;i++) { a=a*x; b=b*i; s=s+a/b; } printf("%lf\n",s); } 9、以下程序的功能是把杨辉三角形的数据赋给二维数组的下半三角,输出形式如下: 1 11 121 1331 14641 …… 其构成规律是: (1)第0列元素和对主对角线元素均为1; (2)其余元素为其左上方和正上方元素之和; (3)数据的个数每行递增1。 请将程序填完整。 #defineN6 main() { inti,j,x[M][N]={0}; x[0][0]=1; printf("%4d\n",x[0][0]); for(i=1;i { x[i][0]=_____; printf("%4d",x[i][0]); for(j=1;j { x[i][j]=______; printf(x[i][j]! =0? "%4d": "",x[i][j]); } printf("\n"); } } 10、以下程序的功能是删除字符串s中的所有数字字符,例如输入字符串为abcd1234fg56h7,则输出为abcdefgh。 请将程序填完整。 #include main() { intn=0,i; chars[80]; gets(s); for(i=0;s[i];i++) if(_____) s[n++]=s[i]; s[n]=____; puts(s); } 11、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请将程序填完整。 main() { inti,a[20],sum,count; sum=count=0; for(i=0;i<20;i++) scanf("%d",____); for(i=0;i<20;i++) { if(a[i]>0) { count++; sum+=_____; } } printf("sum=%d,count=%d\n",sum,count); } 练习题 选择题 1.下面程序的运行结果是() main() {inta[10]={1,2,3,4,5,6,7,8,9,10}; Printf(“%d\n”,a[3]);} A)4B)3C)5D)6 2.下面程序的运行结果是_______。 main() {intn[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i for(j=0;j n[j]=n[i]+1; printf(“%d\n”,n[1]);} A)2B)1C)0D)3 3.一下程序的输出结果是_____。 main() {inti,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf(“%d%d%d”,a[2],a[5],a[8]); } A)258B)741C)852D)369 4.以下数组定义中不正确的是______。 A)inta[2][3]; B)intb[][3]={0,1,2,3}; C)intc[100][100]={0}; D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}}; 5.以下程序的输出结果是_____。 main() {inta[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]}; } A)0650B)1470C)5430D)输出值不确定 6.以下程序的输出结果是_____。 #include main() {charst[20]=”hello\0\t\’\\”; printf(“%d%d\n”,strlen(st),sizeof(st)); } A)99B)520C)1320D)2020 7.下面程序的运行结果是_____。 main() {inta[]={2,4,6,8,10}; inty=1,x; for(x=0;x<3;x++) y+=a[x+1]; printf(“%d\n”,y);} A)17B)18C)19D)20 8.定义如下变量和数组: inti; intx[3][3]={1,2,3,4,5,6,7,8,9}; 下面语句的输出结果是_____。 for(i=0;i<3;i++)printf(“%d”,x[i][2-i]); A)159B)147C)357D)369 9.又如下程序 main() {intn[5]={0,0,0},i,k=2; for(i=0;i printf(“%d\n”;n[k]); } 该程序的输出结果是_____。 A)不确定的值B)2C)1D)0 10.有如下程序 main() {inta[3][3]={{1,2}{3,4}{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=o;j<=i;j++)s+=a[i][j]; printf(“%d\n”,s); { 该程序的输出结果是_____。 A)18B)19C)20D)21 11.设已定义chars[]=”\”Name\\Address\”\n”;则字符串S所占的字节数是______。 A)19B)18C)15D)14 12.设已定义charc[8]=”Tianjin”和inti,则下面的输出函数调用中错误的是_____。 A)printf(“%s”,c);B)for(i=0;i<8;i++)printf(“%c”,c[i]); C)puts(c);D)for(i=0;i<8;i++)puts(c[i]); 13.设已定义charc[10]和inti,则下面的输入函数调用中错误的是_____。 A)scanf(“%s”,a);B)for(i=0;i<9;i++)scanf(“%c”,a[i]); C)gets(a);D)for(i=0;i<9;i++)scanf(“%c”,&a[i]); 14.设已定义charx[8]和inti,为了给该数组赋值,下面的语句中正确的是_____。 A)8]=”TurboC”;B)”TurboC”; C)x[]=”TurboC”;D)for(i=0;i<7;i++)x[i]=getchar(); 15.下面程序的运行结果是__________。 #include Main() {charstr[12]={‘s’,’t’,’r’,’i’,’n’,’g’,’\0’}; printf(“%d”,strlen(str)) } A)6B)7C)12D)11 16.下面程序的输出结果是__________。 #include Main() {charpl[7]=”abc”,p2[]=”ABC”,str[50]=”xyz” Strcpy(str.strcat(p1,p2)); Printf(“%s”,str); } A)xyzabcABCB)abcABCC)xyzabcD)xyzABC 17执行下列程序时输入123<空格>456<空格>789<回车>,输出结果是____________。 A)123,456,789B)1,456,789 C)1,23,456,789D)1,23,456 Main() {chars[100]; intc,i; scanf(“%c”,&c);scanf(“%d”,&i);scanf(“%s”,s); printf(“%c,%d,%s\n”,c,i,s); } 填空题 1、下面程序的运行结果是_______。 #defineN10 main() { inti,j,m[N]; for(i=0;i m[i]=0; for(i=0;i for(j=0;j m[j]=m[i]+1; printf("%d",m[N-1]); } 2、下面程序 #include #defineN6 main() { charc[N]; inti=0; for(;i c[i]=getchar(); for(i=0;i } 运行时,从键盘上输入三行,每行都从第一列开始输入,并以回车键结束: a b cdef 程序的输出结果是________。 3、有一个已排好序的数组,现输入一个数,要求按原来的顺序规律将它插入到数组中。 算法是: 假设排列顺序数从小到大,对输入的数,检查它在数组中哪一个数之后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。 请在程序中的空白处填上一条语句或一个表达式。 #defineN100 main() { floata[N+1],x; inti,p; for(i=0;i scanf("%f",&a[i]); scanf("%f",&x);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题