为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > c语言数组典型试题设计含答案

c语言数组典型试题设计含答案

2023-03-16 7页 pdf 474KB 6阅读

用户头像 个人认证

is_495183

暂无简介

举报
c语言数组典型试题设计含答案一.选择题(2*20)【题1】在C语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式【题2】以下对一维整型数组a的正确说明是。A)inta(10);B)intn=10,a[n];C)intn;D)#defineSIZE10scanf(“%d”,&n);inta[SIZE];inta[n];【题3】若有说明:inta[10];则对a数组元素的正确引用是。A)a[10]B)a[3.5]C)a(5)D)a[10-10]【题4】在C语言中,一维数组的定义方式为:类...
c语言数组典型试题设计含答案
一.选择题(2*20)【题1】在C语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式【题2】以下对一维整型数组a的正确说明是。A)inta(10);B)intn=10,a[n];C)intn;D)#defineSIZE10scanf(“%d”,&n);inta[SIZE];inta[n];【题3】若有说明:inta[10];则对a数组元素的正确引用是。A)a[10]B)a[3.5]C)a(5)D)a[10-10]【题4】在C语言中,一维数组的定义方式为:类型说明符数组名;A)[整型常量表达式]B)[整型表达式]C)[整型常量]或[整型表达式]D)[常量]【题5】以下能对一维数组a进行正确初始化的语句是。A)inta[10]=(0,0,0,0,0);B)inta[10]={};C)inta[]={0};D)inta[10]=”10*1”;【题6】以下对二维数组a的正确说明是。A)inta[3][];B)floata(3,4);C)doublea[1][4];D)floata(3)(4);【题7】若有说明:inta[3][4];则对a数组元素的正确引用是。A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1)【题8】若有说明:inta[3][4];则对a数组元素的非法引用是。A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]【题9】以下能对二维数组a进行正确初始化的语句是。A)inta[2][]={{1,0,1},{5,2,3}};B)inta[][3]={{1,2,3},{4,5,6}};C)inta[2][4]={{1,2,3},{4,5},{6}};D)inta[][3]={{1,0,1},{},{1,1}};【题10】以下不能对二维数组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};【题11】若有说明:inta[3][4]={0};则下面正确的叙述是。A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值0【题12】若有说明:inta[][4]={0,0};则下面不正确的叙述是。A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1C)因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0【题13】若有说明:inta[3][4];则全局数组a中各元素。A)可在程序的运行阶段得到初值0B)可在程序的编译阶段得到初值0C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值0【题14】以下各组选项中,均能正确定义二维实型数组a的选项是。A)floata[3][4];B)floata(3,4);floata[][4];floata[3][4];floata[3][]={{1},{0}};floata[][]={{0};{0}};C)floata[3][4];D)floata[3][4];staticfloata[][4]={{0},{0}};floata[3][];autofloata[][4]={{0},{0},{0}};floata[][4];【题15】下面程序如果只有一个错误,那么是(每行程序前面的数字表示行号)。1main()2{3floata[3]={3*0};4inti;5for(i=0;i<3;i++)scanf(“%d”,&a[i]);6for(i=1;i<3;i++)a[0]=a[0]+a[i];7printf(“%d\n”,a[0]);8}A)第3行有错误B)第7行有错误C)第5行有错误D)没有错误【题16】下面程序(每行程序前面的数字表示行号)。1main()2{3floata[10]={0.0};4inti;5for(i=0;i<3;i++)scanf(“%d”,&a[i]);6for(i=1;i<10;i++)a[0]=a[0]+a[i];7printf(“%f\n”,a[0]);8}A)没有错误B)第3行有错误C)第5行有错误D)第7行有错误【题17】下面程序中有错误的行是(每行程序前面的数字表示行号)。1main()2{3floata[3]={1};4inti;5scanf(“%d”,&a);6for(i=1;i<3;i++)a[0]=a[0]+a[i];7printf(“a[0]=%d\n”,a[0]);8}A)3B)6C)7D)5【题18】下面程序(每行程序前面的数字表示行号)。1main()2{3floata[3]={0};4inti;5for(i=0;i<3;i++)scanf(“%f”,&a[i]);6for(i=1;i<4;i++)a[0]=a[0]+a[i];7printf(“%f\n”,a[0]);8}A)没有错误B)第3行有错误C)第5行有错误D)第6行有错误【题19】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为。(假设a[0][0]位于数组的第一个位置上。)A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1【题20】对以下说明语句的正确理解是。inta[10]={6,7,8,9,10};A)将5个初值依次赋给a[1]至a[5]B)将5个初值依次赋给a[0]至a[4]C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确参考答案:1~5CDDAC6~10CCDBC11~15DDBCA16~20CDDDB二.程序分析(10*2)1.下面程序的输出结果是________。structstu{intx,*y;}*p;intd[4]={10,20,30,40};structstua[4]={50,&d[0],60,&d[1],70,&d[2],80,&d[3]};main(){p=a;printf("%d,",++p->x);printf("%d,",(++p)->x);printf("%d\n",++(*p->y));}2.以下程序的运行结果是________。unionun{inta;intb;};unionuns[4];unionun*p;main(){intn=1,i;for(i=0;i<4;i++){s[i].a=n;s[i].b=s[i].a+1;n=n+2;}p=&s[0];printf("%d,",p->a);printf("%d",++p->a);}1.51,60,212.2,3四.程序设计(10*4)1、将二维数组(5行5列)的右上半部分置零。即:1234510000678910670001112131415变11121300成161718192016171819021222324252122232425#includemain(){inta[5][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};for(inti=0;i<5;i++){for(intj=0;j<5;j++){if(imain(){inta[3][3]={{10,12,13},{14,15,16},{17,18,19}},sum=0;for(inti=0;i<3;i++){for(intj=0;j<3;j++){if(i==j){sum=sum+a[i][j];}}}printf("%d",sum);}3、求二维数组(5行5列)中最大元素值及其行列号#includemain(){inta[5][5],i,j;for(i=0;i<5;i++){for(j=0;j<5;j++){scanf("%d",&a[i][j]);}}intsum=a[0][0],x,y;for(i=0;i<5;i++){for(j=0;j<5;j++){if(summain(){inta[3][3],i,j;for(i=0;i<3;i++){for(j=0;j<3;j++){scanf("%d",&a[i][j]);}}for(i=0;i<3;i++){for(j=0;j<3;j++){if(i==0||j==0){printf("%d",a[i][j]);}}printf("\n");}}一、选择题1.以下对一维整型数组a的正确说明是。A.inta(10);B.intn=0,a[n];C.intn;D.#defineSIZE10scanf(“%d”,&n);inta[SIZE]inta[n];2.若有说明:inta[10];,则对a数组元素的正确引用是。A.a[10]B.a[3.5]C.a(5)D.a[10-10]3.以下能对一维数组a进行正确初始化的语句形式是。A.inta[10]=(0,0,0,0,0);B.inta[10]={};C.doublea[][4];D.inta[10]={10*1};4.以下对二维数组a的正确说明是。A.inta[3][];B.floata(3,4);C.doublea[][4];D.floata(3)(4);5.若有说明:inta[3][4];则对a数组元素的正确引用是。A.a[3][4]B.a[1,3]C.a[1+1][0]D.a(2)(1)6.以下能对二维数组a进行正确初始化的语句是。A.inta[2][]={{1,0,1},{5,2,3}};B.inta[][3]={{1,2,3},{4,5,6}};C.inta[2][4]={{1,2,3},{4,5},{6}};D.inta[][3]={{1,0,1,0},{},{1,1}};7.下面程序段(每行代码前面的数字表示行号)。1inta[3]={3*0};2inti3for(i=0;i<3;i++)scanf(“%d”,&a[i]);4for(i=1;i<3;i++)a[0]=a[0]+a[i];5printf(“%d\n”,a[0]);A.第1行有错误B.第5行有错误C.第3行有错误D.没有错误8.若有定义floatx[4]={1.3,2.4,5.6},y=6;则错误的语句是。A.y=x[3];B.y=x+1;C.y=x[2]+1D.x[0]=y;9.定义如下变量和数组:intk;inta[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是。for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);A.357B.369C.159D.14710.下面程序的运行结果是。#includeintmain(){inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf("%2d",a[i][j]);printf("\n");}return0;}A.11111B.00001C.10000D.100011111100010010000101011111001000010000100111110100000010010101111110000000011000111.下面是对数组s的初始化,其中错误的语句是。A.chars[5]={“abc”};B.chars[5]={‘a’,‘b’,‘c’};C.chars[5]=“”;D.chars[5]=“abcde”;12.下面程序段的运行结果是。(□表示1个空格)charc[5]={'a','b','\0','c','\0'};printf("%s",c);A.'a''b'B.abC.ab□cD.ab□13.有两个字符数组a、b,则以下正确的输入格式是。A.gets(a,b);B.scanf(“%s%s”,a,b);C.scanf(“%s%s”,&a,&b);D.gets(“a”),gets(“b”);14.有字符数组a[80]和b[80],则正确的输出形式是。A.puts(a,b);B.printf(“%s%s”,a[],b[]);C.putchar(a,b);D.puts(a),puts(b);15.有下面的程序段,则。chara[3],b[]="China";a=b;printf("%s",a);A.运行后将输出ChinaB.运行后将输出ChC.运行后将输出ChiD.编译出错16.下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空。charx[]="programming";chary[]="Fortran";inti=0;while(x[i]!='\0'&&y[i]!='\0')if(x[i]==y[i])printf("%c",);elsei++;A.x[i++]B.y[++i]C.x[i]D.y[i]17.下面程序的功能是将字符串s中所有的字符c删除。请选择填空。#includeintmain(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!='\0';i++)if(s[i]!='c');s[j]='\0';puts(s);return0;}A.s[j++]=s[i]B.s[++j]=s[i]C.s[j]=s[i];j++D.s[j]=s[i]18.下面程序的运行结果是。#includeintmain(){charch[7]={"12ab56"};inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);return0;}A.1B.1256C.12ab56D.1519.当运行以下程序时,从键盘输入:ab<回车>c<回车>def<回车>,则下面程序的运行结果是。#include#defineN6intmain(){charc[N];inti=0;for(;iintmain(){chara[]="morning",t;inti,j=0;for(i=1;i<7;i++)if(a[j]#defineN20intmain(){inta[N],i;for(i=0;iintmain(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf("arraya:\n");for(i=0;i<=1;i++){for(j=0;;j++){printf("%5d",a[i][j]);;}printf("\n");}printf("arrayb:\n");for(i=0;;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}return0;}7.下面程序段的运行结果是。intx[5],i;x[0]=1;x[1]=2;for(i=2;i<5;i++)x[i]=x[i-1]+x[i-2];for(i=2;i<5;i++)printf("%d",x[i]);8.下面程序的运行结果是。#includeintmain(){inta[5][5],i,j,n=1;for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=n++;printf("Theresultis:\n");for(i=0;i<5;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}return0;}9.以下程序的功能是求1000以内的水仙花数。(提示:所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。例如:407=4×4×4+0×0×0+7×7×7,故407是一个水仙花数。)请填空。#includeintmain(){intx,y,z,a[8],m,i=0;printf("Thespecialnumbersare:\n");for(;m++){x=m/100;y=;z=m%10;if(m==x*x*x+y*y*y+z*z*z){;i++;}}for(x=0;xintmain(){inta[10]={7,3,5,2,9,1,0,6,8,4},i=0,j=9,t;while(iintmain(){inta[5],max,min,i,j=0,k=0,t;for(i=0;i<5;i++)scanf("%d",&a[i]);min=a[0];for(i=1;i<5;i++)if(a[i]max){max=a[i];;}printf("\nThepositionofminis:%3d\n",k);printf("Thepositionofmaxis:%3d\n",j);for(i=0;i<5;i++)printf("%5d",a[i]);printf("\n");return0;}12.下面程序的功能是检查一个二维数组是否对称(即对所有i、j都有a[i][j]=a[j][i])。请填空。#includeintmain(){inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};inti,j,found=0;for(j=0;j<4;j++)for(;i<4;i++)if(a[j][i]!=a[i][j]){;break;}if(found==1)printf("No\n");elseprintf("Yes\n");return0;}13.设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。#includeintmain(){inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;for(k=s=i=0;i<10;i++){if(a[i]%2!=0);s+=;k++;}if(k!=0){ave=s/k;printf("%d,%f\n",k,ave);}return0;}14.以下程序是将矩阵a、b的和存入矩阵c中并按矩阵形式输出。请填空。#includeintmain(){inta[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};inti,j,c[3][4];for(i=0;i<3;i++){for(j=0;j<4;j++){c[i][j]=;printf("%3d",c[i][j]);};}return0;}15.以下程序段的功能是求数组num中小于零的数据之和。请填空。intnum[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20};intsum=0,i;for(i=0;i<=19;i++)if()sum=;printf("sum=%6d",sum);16.以下程序段的功能是,运行后输出结果是。intnum[10]={103,1,-20,-203,-21,2,-2,-2,13,-21};intsum=0,i;for(i=0;i<10;i++)if(num[i]>0&&num[i]%10==3)sum=sum+num[i];printf("sum=%d\n",sum);17.下面程序用“快速顺序查找法”判断数组a中是否存在某一数。请填空。#includeintmain(){inta[9]={25,57,48,37,12,92,86,33},i,x;scanf("%d",&x);i=0;;while(a[i]!=x)i++;if()printf("Found!Theindexis:%d\n",i);elseprintf("Can'tfound!\n");return0;}18.下面程序是用“插入法”对数组a进行降序排序。请填空。#includeintmain(){inta[5]={4,7,2,5,1},i,j,m;for(i=1;i<5;i++){m=a[i];j=;while(j>=0&&m>a[j]){;j--;}=m;}for(i=0;i<5;i++)printf("%3d",a[i]);printf("\n");return0;}19.下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。请填空。#includeintmain(){inta[3]={5,9,10};intb[5]={12,24,26,37,48};intc[10],i=0,j=0,k=0;while(i<3&&j<5)if(){c[k]=b[j];k++;j++;}else{c[k]=a[i];k++;i++;}while(){c[k]=a[i];i++;k++;}while(){c[k]=b[j];j++;k++;}for(i=0;iintmain(){chara[3],c;inti;c=getchar();a[1]=c;if(c=='Z'){a[2]='A';;}elseif(c=='A'){a[0]='Z';;}else{a[0]=c-1;a[2]=c+1;}for(i=0;i<=2;i++)putchar(a[i]);return0;}23.下面程序段的功能是将字符数组a[6]={'a','b','c','d','e','f'}变为a[6]={'f','a','b','c','d','e'}。请填空。#includeintmain(){chart,a[6]={'a','b','c','d','e','f'};inti;;for(i=4;i>=0;i--);a[0]=t;for(i=0;i<=5;i++)putchar(a[i]);return0;}24.下面程序的功能是在任意的字符串a中,将与字符c相等的所有元素的下标值分别存放在整型数组b中。请填空。#includeintmain(){chara[80];inti,b[80],k=0;gets(a);for(i=0;a[i]!='\0';i++)if(){b[k]=i;;}for(i=0;iintmain(){chars[10][20],a[10];inti,j;for(i=0;i<10;i++)gets(s[i]);for(i=0;i<10;i++){;for(j=1;s[i][j]!='\0';j++)if(a[i]
/
本文档为【c语言数组典型试题设计含答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索