字符数组选择题

合集下载

C语言数组选择题(部分做了注释)

C语言数组选择题(部分做了注释)

1、以下定义语句中,错误的是________。

A) int a[]={1,2}; B) char a[]={"test"};C) char s[10]={"test"}; D) int n=5,a[n];D一维数组的定义方式:类型说明符数组名[常量表达式]常量表达式中可以包括常量和符号常量,但不能包含变量。

2、以下对一维数组a进行正确初始化的是__________。

A) int a[10]=(0,0,0,0,0); B) int a[10]={ };C) int a[ ]={0}; D) int a[10]={ 10*2};C1.在定义数组时对数组元素赋以初值。

2. 可以只给一部分元素赋值。

3. 如果想使一个数组中全部元素值为0,可以写成:int a[10]={0,0,0,0,0,0,0,0,0,0};或int a[10]={0};4.在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度,系统根据后面花括号里的数据决定数组的长度。

3、以下对二维数组a进行正确初始化的是__________。

A) int a[2][3]={ {1,2},{3,4},{5,6} };B) int a[ ][3]={1,2,3,4,5,6 };C) int a[2][ ]={1,2,3,4,5,6};D) int a[2][ ]={ { 1,2},{3,4}};B4.如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

可以用下面4种方法对二维数组初始化:1.分行给二维数组赋初值。

2.可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。

3.可以对部分元素赋初值。

4、在定义int a[5][4]; 之后,对a的引用正确的是________。

A) a[2][4] B) a[1,3]C) a[4][3] D) a[5][0]C在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。

字符数组练习题

字符数组练习题

1、下列数组定义语句中,正确的是A、char x[1]='a';B、char x[1]={0};C、char c[1]=”x”;D、char c[];2、定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是A、char s[]={‘1','2','3','\0 '};B、char s[]={"123"};C、char s[]={"123\n"};D、char s[4]={'1','2','3'};3、设有下列数据定义语句,则数组元素x[i]的值是__________________。

int i=3,x[4]={ 1,2,3};4、设有下列数据定义语句,则cout<<s[0][0]的输出结果是__________;cout<<s[1]输出结果是_____________。

char s[4][5]={{'2','\0'},{"23"},"345","4\0"};5、设有下列数据定义语句:char a[4][10]={"11","22","33","44"};则cout<<strcat(a[1],a[3])的输出结果是________________;cout<<strcpy(a[0],a[2])的输出结果是________________。

6、设有下列数据定义语句:char str[2][10]={"abc","ABC"};cout<<strcmp(str[1],str[0])的输出结果是__________;7、下列程序的功能是读取10个实数,然后依次输出前1个实数和、前2个实数和……前9个实数和、前10个实数和。

数组练习题及答案

数组练习题及答案

第五章数组练习题及答案一、选择题1、判断字符串a和b是否相等,应当使用()A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))2、以下正确的定义语句是()A、int a[1][4]={1,2,3,4,5};B、float x[3][]={{1},{2},{3}};C、long b[2][3]={{1},{1,2},{1,2,3}};D、double y[][3]={0};3、以下各组选项中,均能正确定义二维实型数组a的选项是()A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}};B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}};C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}};D、float a[3][4]; float a[3][ ]; float a[ ][4];4、下面程序的运行结果是()1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB#include "stdio.h"main(){ char str[]="SSSWLIA",c;int k;for(k=2;(c=str[k]!='\0');k++){ switch(c){case 'I':++k;break;case 'L':continue;default:putchar(c);continue;}putchar('*');}}A、SSW*B、SW*C、SW*AD、SW5、下面程序段是输出两个字符串中对应相等的字符。

第4章_数组c++_习题答案解析

第4章_数组c++_习题答案解析

习题4一、单项选择题1.若有说明inta[3][4];则a数组元素的非法引用是【】A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]【答案】D【解析】数组下标从0开始,a[0][4]的列下标越界。

2.在C++语言中,引用数组元素时,其数组下标的数据类型允许是【】A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式【答案】C3.以下不正确的定义语句是【】A.doublex[5]={2.0,4.0,6.0,8.0,10.0};B.inty[5]={0,1,3,5,7,9};C.charc1[]={′1′,′2′,′3′,′4′,′5′};D.charc2[]={x1′0′x,a′′x,8′′};【答案】B【解析】初始值的个数大于数组的大小,系统会出现编译错误。

4.对以下说明语句的正确理解是【】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.因为数组长度与初值的个数不相同,所以此语句不正确【答案】B5.若有说明:inta[][4]={0,0};则下面不正确的叙述是【】A.数组a的每个元素都可得到初值0B.二维数组a的第一维大小为1C.当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D.只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值【答案】D【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。

元素a[0][0]和a[0][1]赋初值为0,其余元素初值系统默认为0。

6.以下能对二维数组c进行正确的初始化的语句是【】A.intc[3][]={{3},{3},{4}};B.intc[][3]={{3},{3},{4}};C.intc[3][2]={{3},{3},{4},{5}};D.intc[][3]={{3},{},{3}};【答案】B【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A答案错误。

C语言练习3(数组)=参考解答

C语言练习3(数组)=参考解答

C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。

C字符数组练习题及解答

C字符数组练习题及解答

字符数组第1题:编写程序,比较两个字符串的大小,不允许使用strcmp函数。

输入分2行,每一行均为字符串(不包含空格)。

如果第一个字符串大于第二个字符串,则输出1;如果两个字符串大小相等,则输出0;如果第一个字符串小于第二个字符串,则输出-1。

样例输入:ChinaChina样例输出:0#include<iostream.h> int main(){char a[100],b[100];int t=0,i;cin>>a;cin>>b;for(i=0;a[i]!=0||b[i]!=0;i++){if(a[i]>b[i]){t=1;break;}if(a[i]<b[i]){t=-1;break;}}cout<<t;return 0;}第2题:编写程序,将一个字符串首尾互换,并与原字符串连接后输出。

输入字符串(不包含空格),输出处理后的结果。

样例输入:china样例输出:chinaanihc#include<iostream.h> #include<string.h> int main(){char str1[100],i;int n; cin>>str1;n=strlen(str1);for(i=0;i<n;i++){str1[n+i]=str1[n-i-1];}for(i=0;i<n*2;i++)cout<<str1[i];return 0;}第3题:编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符对应的数字中奇数和偶数的个数。

样例输入:7843028503样例输出:4 6#include <string.h>#include <iostream.h> int main(){int a[100],i,n,o,j;char str[100];o=0;j=0;cin>>str;n=strlen(str);for(i=0;i<n;i++){a[i]=str[i];}for(i=0;i<n;i++){a[i]=a[i]-48;if(a[i]%2==0){o=o+1;}else{j=j+1;}}cout<<j<<" "<<o;return 0;字符数组}第4题:编写程序,输入字符串(不包含空格),删除字符串中ASCII码值能被3整除的字符,将剩余字符按从小到大排序后输出。

C语言习题集合4(数组)

C语言习题集合4(数组)

第四部分数组4.1 选择题1。

以下关于数组的描述正确的是( ).A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C。

数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( )。

A.int a(10);B. int n=10,a[n];C。

int n; D。

#define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3。

在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。

A。

整型常量B. 整型表达式C. 整型常量或整型表达式D。

任何类型的表达式4。

以下对一维数组m进行正确初始化的是( )。

A. int m[10]=(0,0,0,0);B. int m[10]={ };C。

int m[ ]={0}; D。

int m[10]={10*2};5。

若有定义:int bb[ 8];。

则以下表达式中不能代表数组元bb[1]的地址的是( )。

A. &bb[0]+1 B。

&bb[1] C. &bb[0]++ D. bb+16。

假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( ).A。

3 B。

6 C。

10 D. 207. 若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a’,d,g;则数值为4的表达式是( )A。

a[g—c] B。

a[4] C。

a['d'—’c'] D. a['d'-c]8。

以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。

#include〈stdio。

h〉main(){int a[10],i=0;while(i〈10) scanf(”%d",________ );┇}A。

C语言(数组)习题与答案

C语言(数组)习题与答案

一、单选题1、下列描述中不正确的是()A.字符串的结束符是'\0'。

B.可以对字符型数组进行整体输入、输出。

C.字符型数组中能存放字符串。

D.字符串函数声明在ctype.h中。

正确答案:D2、下面是有关C语言字符数组的描述,其中错误的是()A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组只能存放字符串D.字符数组中的内容不一定是字符串正确答案:C3、下面是对数组s的初始化操作,其中不正确的是()A.char s[5]= " ";B.char s[5]={'a'};C.char s[5]={"a"};D.char s[5]= "abcdef";正确答案:D4、下面叙述正确的是()A.字符串"123 "与"123"相等。

B.字符串"123"小于字符串"2"。

C.两个字符串所包含的字符个数不相同时,才能进行大小比较。

D.字符个数多的字符串比字符个数少的字符串大。

正确答案:B5、下面程序段的输出结果是()char a[7]=“123456”;char b[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A.\0B.C.5D.6正确答案:D6、以下对二维数组a的正确说明是__。

A.double a[1][4];B.float a(3)(4);C. floatf a(3,4);D. int a[3][];正确答案:A7、以下能对二维数组a进行正确初始化的语句是__。

A. int a[][3]={{1,2,3},{4,5,6}};B.int a[2][]={{1,0,1},{5,2,3}};C.int a [2][4]={{1,2,3},{4,5},{6}};D. int a[][3={{1,0,1},{},{1,1}};正确答案:A8、若有说明: int a[3][4]={0};则下面正确的叙述是__。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《字符数组选择题》
1、 字符串"ABC"在内存占用的字节数是
(A) 3
() 4
(C) 6
(D) 8
2、如果有语句:int x; char y[6];,则下面正确的输入语句是
(A) scanf("%d%s", x, y);
(B) scanf("%d%s", &x, y);
(C) scanf("%d%s", x, &y);
(A) 19
(B) 14
(C) 16
(D) 15
11、以下程序段的运行后结果是
char str[] = "ab\n\012\\\"";
printf("%d", strlen(str));
(A) 4
(B) 12
(C) 6
(D) 3
12、对于定义char c[8] = "Tianjin"和int j,下面的输出函数调用中错误的是
(A) "CC"
(B) "BBBCC"
(C) "AAAA"
(D) "BBB"
9、以下程序段的运行结果是:
char s[10], s="abcd";
printf("%s", s);
(A) abcd
(B) ab cd
(C) a
(D) 编译不通过
10、对于定义char s[] = "\"Name\\Address\"\n";,字符串s所占字节数是
的功能是a把字符串str1连接到字符串str2中再把字符串str2复制到字符串str3之后b把字符串str2连接到字符串str1之后再把字符串str3复制到字符串str1中c把字符串str1复制到字符串str2中再把字符串str2连接到字符串str3之后d把字符串str2复制到字符串str1中再把字符串str3连接到字符串str1之后6下面叙述中错误的是a对于字符型数组可以在赋值语句中运用运算符进行整体赋值b对于字符型数组可以用来存放字符串c对于实型数组不可以直接用数组名对数组进行整体的输入或输出d对于字符型数组可以直接用数组名对数组进行整体输入或输出7以下程序段运行后的输出结果是charaabcdefgb10abcdefg
6、下面叙述中错误的是
(A) 对于字符型数组,可以在赋值语句中运用运算符“=”进行整体赋值
(B) 对于字符型数组,可以用来存放字符串
(C) 对于实型数组,不可以直接用数组名对数组进行整体的输入或输出
(D) 对于字符型数组,可以直接用数组名对数组进行整体输入或输出
7、以下程序段运行后的输出结果是
char a[]="abcdefg", b[10]="abcdefg";
(A) 把字符串str1连接到字符串str2中再把字符串str2复制到字符串str3之后
(B) 把字符串str2连接到字符串str1之后再把字符串str3复制到字符串str1中
(C) 把字符串str1复制到字符串str2中再把字符串str2连接到字符串str3之后
(D) 把字符串str2复制到字符串str1中再把字符串str3连接到字符串str1之后
(A) for (j=0; j<9; j++)
{
scanf("%c", &a[j]);
}
(B) for (j=0; j<9; j++)
{
scanf("%c", a[j]);
}
(C) scanf("%s", a);
(D) gets(a);
(A) printf("%s", c);
(B) for (j=0; j<8; j++)
{
printf("%c", c[j]);
}
(C) puts(c);
(D) for (j=0; j<8; j++)
{
puts(c[j]);
}
13、对于定义char a[10] = {0};和int j;,下面输入函数调用中错误的是
4、如果有语句:char a[] = "string", b[] = {'s', 't', 'r', 'i', 'n', 'g'};,则下面叙述中正确的是
(A) 数组a的长度大于数组b的长度
(B) 数组a的长度小于数组b的长度
(C) 数组a的长度等于数组b的长度
(D) 数组a和数组b二者等价
5、若定义str1、str2、str3为字符串,则语句strcat(strcpy(str1, str2), str3);的功能是
(D) scanf("%d%s", &x, &y);
3、下面能正确定义一维数组的选项是
(A) char a4[] = {1, 2, 3, 4, 5, 6};
(B) char a3 = {"string"};
(C) int a1[] = "string";
(D) int a2[5] = {1, 2, 3, 4, 5, 6};
printf("%d %d\n", sizeof(a), sizeof(b));
(A) 10 10
(B) 8 8
(C) 7 7
(D) 8 10
8、以下程序段运行后的输出结果是
char ch[3][5] = {"AAAA", "BBB", "CC"};
printf("\"%s\"\n", ch[1]);
相关文档
最新文档