字符数组选择题
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一、单项选择题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语言(数组)一、选择题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字符数组练习题及解答
字符数组第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(数组)
第四部分数组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语言(数组)习题与答案
一、单选题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};则下面正确的叙述是__。
第3章 数组(习题答案及解析)
习题3 参考答案一、选择题3.1 C 分析:本题考查程序和数组的基本概念。
3.2 A 分析:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。
因为字符串在表达式中相当于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。
C选项不正确。
C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为1,因此A选项是正确。
3.3 A 分析:如果第一维的长度没有指定,则定义的同时需要完成初始化,否则不知道分配多大的内存空间给它,所以选项B、C错误;二维数组a[2][3]中只有两个元素,都是一维数组,一维下标最大只能是a[1],所以选项D错误;若完成初始化的二维数组,第一维的长度没有指定,则第一维的大小按如下规则确定:若初值个数能被第二维大小整除,所得的商就是第一维的大小,若不能整除,则所得的商加1作为第一维的大小,所以选项A相当于:double a[1][3] = {6};其中a[0][0]=6,其他元素赋值0,选项A正确,答案为A。
3.4 D 分析:本题考察的知识点是:字符串常量。
在C语言中,字符串常量是以双引号括起来的字符序列。
因此B选项和C选项不正确。
字符序列中可包含一些转义字符,转义字符都是以"\"开头的。
A选项中包含了三个"\",前两个(\\)代表了一个"\"字符,后面一个和"""一起(\")被看作一个""",所以该字符串缺少一个结束的""",因此不正确。
D选项的两个"""之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此D选项正确。
字符数组选择题
(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]);
(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) 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) 对于字符型数组,可以在赋值语句中运用运算符“=”进行整体赋值
(B) 对于字符型数组,可以用来存放字符串
(C) 对于实型数组,不可以直接用数组名对数组进行整体的输入或输出
字符数组习题(1)
字符数组习题(1)字符数组习题1.s12和s2已正确定义并分别指向两个字符串。
若要求:当s1所指串⼤于s2所指串时,执⾏语句S;则以下选项中正确的是_____A)if(s1>s2)S; B)if(strcmp(s1,s2))S;C)if(strcmp(s2,s1)>0)S; D)if(strcmp(s1,s2)>0)S;2.以下定义语句中,错误的是________。
A) int a[]={1,2}; B) char a[]={"test"};C) char s[10]={"test"}; D) int n=5,a[n];3、当接受⽤户输⼊的含有空格的字符串时,应使⽤______函数。
A) gets( ) B) getchar( ) C) scanf( ) D) printf( )4、设有数组定义:char array[]="China";则strlen(array)的值为______ 。
A) 4 B) 5 C) 6 D) 75、设有数组定义:char array[]="China";则数组array所占的存储空间为________。
A) 4个字节B) 5个字节C) 6个字节D) 7个字节6、设有数组定义:char array[10]= "China";则数组array所占的存储空间为__ _____。
A) 4个字节B) 5个字节C) 6个字节D) 10个字节7.有如下程序main(){ char ch[80];int j;long s=0;printf("Enter a numeral string\n"); gets(ch);for(j=0;ch[j]>'\0';j++)s=10*s+ch[j]-'0';printf("%ld\n",s);}如果运⾏时,从键盘上输⼊由数字组成的字符串,该程序的功能是______。
二级C语言100道经典选择题与答案
【1.1】以下不正确的C语言标识符是____。
A) intB) a_1_2C) ab1exeD) _x【1.2】以下是正确的C语言标识符是____。
A) #defineB) _123C) %dD) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。
A) print B) i\am C) Pxq D) str_l_3d one_half My->book Cpp••• oodbs tart$it line#pow••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。
A) auto,enum,includeB) switch,typedef,continueC) signed,union,scanfD) if,struct,type【1.5】下列不属于C语言关键字的是。
A) defaultB) registerC) enumD) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。
A) 32768B) 0C) 037D) 0xAF【1.9】执行语句 printf("%x",-1);屏幕显示____。
A) -1B) 1C) -ffffD) ffff【1.10】已知 long i=32768;执行语句printf("%d",i);屏幕显示____。
A) -1B) -32768C) 1D) 32768【1.11】已知 long i=65539;执行语句printf("%d",i);屏幕显示____。
《C++数组》习题.doc
《C++数组》习题学号姓名一、选择题1、下列对字符数组进行初始化的语句正确的是A.char a[]= "Hello";B.char a[][]= {'H','e','l','l','o'};C.char a[5]="Hello";D.char a[2][5]= {"Hello","World"};2、以下一维数组 a 的正确定义是A. int a(10) ; B. int n=10 ,a[n];C. int n; D. #define size 10cin>>n; int a[size] ;int a[n];3、以下对二维数组 a 进行不正确初始化的是A. int a[2][3]={0} ;B. int a[][3]={{1 ,2} , {0}} ;C. int a[2][3]={{1 ,2} ,{3 ,4} ,{5 ,6}};D. int a[][3]={1 ,2,3,4,5,6);4、执行以下程序后, s 的值为int a[]={5,3,7,2,1,5,4,lO);int s=0 ,k;for(k=0;k<8;k+=2)s+=*(a+k);A.17 B.27C.13D.无定值5、为了判断两个字符串sl 和 s2 是否相等,应当使用A. if (s1==s2)B. if (s1=s2)C. if(strcpy(S1 , s2))D. if(strcmp(s1 , s2)==O)6、有定义 int a[2][5];,若a[0][1]的地址为x,则 a[0][O] 、a[1][3] 地址分别为 ( 假设一个整型数据占用两个字节的内存空间) :A. x-2 ,x+14B.x-1 ,x+7C. x+1,x+7 D.x-1 ,x+147、若有定义个字节,则float a[m][n];,且a[il[j]的地址为a[1][1] 的地址为x,每个float 元素占用 4A. x+4*(i-1)*n+4*(j-1) B.x+(i-1)*n+(j-1) C. x+4*(i-1)*j+(j-1) D.x+4*i*j+4*j二、填空题1、char st[20] = "SEU\0\t\\";stcout<<sizeof(st)<<strlen(st)<<endl;数组定义中的 20 去掉,则输出的内容是则输出的内容是。
数组习题及答案
构造数据对象——数组一、填空题1.数组是一组相同的集合。
2.数组名代表数组的。
3.数组元素在数组中的位置序号称为它是从开始整数。
4.有int a[ ]={4,6,2,12,435,-9,76,0,0};该数组元素值最大的下标为。
5.定义数组tw,其能存储23个长整形数的语句为。
6.有说明语句int a[10]={1,2,3,4,5,6};则元素a[9]的值为。
7.数组char c[ ]=”abcd”中有个元素,最后一个元素是。
8.”a”在内存中占个存储单元。
9.定义一个能存放下字符串Vocation的字符数组enm的语句为。
10.定义一个可保存100个整型数的数组pn,并把每个元素初值设为0的语句是。
11.与puts(ss)等价的printf函数调用是。
二、选择题1.下面关于数组的说法,不正确的是()A.数组总为一个整体,可以参加算术运算B.数组中的数组元素相当于一个简单变量C.数组可以用来保存字符串D.数组是一组连续的,类型相同的数据集合2.下列说法不是数组特性的是()A.数组元素类型相同B.数组长度固定C.数组占用连续的内存空间D.数组可作为一个整体参与运算3.定义一个具有8个元素的整形数组,应使用语句()A.int a[8]; B.int a[2,4];C.int a[ ]; D.int *a[8];4. 以下能正确定义一维数组的选项是()A.int num[ ];B.#define N 100 int num[N];C.int num[0..100];D.int N=100;5.下面对s的初始化,不正确的是()A.char s[5]={“abcd”};B.char s[5]={‘a’,’b’,’c’};C.char s[5]=””;D.char s[5]=”abcd”;6.对以下说明语句正确的理解是()int a[10]={6,7,8,9,10,12};A.将6个初值依次赋值给a[1]至a[5];B.将6个初值依次赋值给a[0]至a[5];C.将6个初值依次赋值给a[5]至a[10];D.因数组长度和初值的个数不同,所以此语句不正确7.用scanf语句为数组a中的第二个数组元素输入数据,格式正确的是()A.scanf(“%d”,a[2]);B.scanf(“%d”,&a[2]);C.scanf(“%d”,&a[1]);D.scanf(“%d”,a(1));三、判断题1.数组在内存中占用的空间是不连续的。
C语言学习知识数组选择题
A)数组a的每个元素中存放的是每个学生的总成绩
B)数组t的每个元素中存放的是每个学生的平均成绩
C)从键盘上输入成绩的顺序是按课程输入
D)从键盘上输入成绩的顺序是按学生输入
D
35、下面程序的功能是________。
每个学生的总成绩、每个学生的平均成绩、12个学生的总成绩。
正确的说法是________。
main( )
{ int stu[3][4],i,j,t[3];
float sum=0,a[3];
for(i=0;i<3;i++)
for(j=0;j<4;j++) scanf("%d",&stu[i][j]);
for(i=0;i<3;i++)
{t[i]=0;
for(j=0;j<4;j++)
{sum+=stu[i][j];
t[i]+=stu[i][j];
printf("%-6d",stu[i][j]); }
a[i]=t[i]/4;
printf("%-6.2f\n",a[i]);
}
printf("average = %.2f\n",sum/12.0);
i=n/5; j=n-i*5-1;
printf("NO. %d: %d,%d is %d\n",n,i,j,a[i][j]); }
A)第n个元素所在的行和列及其该元素的值
B)第n行的最大元素所在的行和列及其最大值
C)第i行的最大元素所在的行和列及其最大值
D)以上都不对
A
34、下面程序统计3个学生,每个学生4门课程的考试成绩,要求输出
C语言习题六(数组部分)习题及答案
C语言习题六(数组部分)习题及答案习题六一.选择题1.在C语言中,引用数组元素时,其数组下标的数据类型允许是c 。
A)整型常量B)整型表达式C)整型常量或整型表达式C)任何类型的表达式2.以下对一维整型数组a的正确说明是DA)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.若有定义:int a[10],则对数组a元素的正确引用是 D 。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]4.以下不能对一维数组a进行正确初始化的语句是B 。
A)int a[10]={0,0,0,0,0}; B)int a[10]={} ;C)int a[ ] = {0} ; D)int a[10]={10*1} ;5.若有定义:int a[3][4],则对数组a元素的正确引用是。
AA)a[2][3] B)a[1,3] C)a(5) D)a[10-10]6.以下能对二维数组a进行正确初始化的语句是B。
A)int a[2][]={{1,0,1},{5,2,3}} ;B)int a[][3]={{1,2,3},{4,5,6}} ;C)int a[2][4]={{1,2,3},{4,5},{6}} ;D)int a[][3]={{1,0,1},{},{1,1}} ;7.以下不能对二维数组a进行正确初始化的语句是。
CA)int a[2][3]={0} ;B)int a[][3]={{1,2},{0}} ;C)int a[2][3]={{1,2},{3,4},{5,6}} ;D)int a[][3]={1,2,3,4,5,6} ;8.若有说明:int a[3][4]={0};则下面正确的叙述是D。
A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值09.若有说明:int a[][4]={0,0};则下面不正确的叙述是D。
数组选择题
100、C语言中数组元素下标的数据类型是(B)A. 实型常量B. 整型常量或整型表达式C. 任何类型的表达式D. 字符型常量101、下列数组定义中,正确的是(A)A. int a[10];B. int n=10,a[n];C. int N=10;int a[N];D. int n;scanf(“%d”,&n);int a[n];102、若已定义:int a[13];则不能正确引用a数组的元素的是(C)A. a[0]B. a[10]C. a[10+3]D. a[13-5]103、若有定义:int a[3]={0,1,2};则a[1]的值为(B)A. 0B. 1C. 2D. 3104、若有定义:int a[5]={1,2,3,4,5};则语句a[1]=a[2]+a[2+2]-a[3-1];运行后a[1]的值为(B)A. 6B. 5C. 1D. 2105、以下合法的数组定义是(C)A. int a[]=“string”;B. int a[5]={0,1,2,3,4,5};C. char a[]={0,1,2,3,4,5};D. char s={“string”};106、若有如下程序段:char s[10];s=“abcd”;printf(“%s\n”,s);则(D)。
A. 执行时输出:abcdB. 执行时输出:aC. 执行时输出:abD. 编译不通过107、下面程序段的运行结果是(C)int i=0,a[]={7,5,7,3,8,3};do{a[i]+=2;}while(a[++i]>5);for(i=0;i<6;i++)printf("%d",a[i]);A. 9 7 9 5 10 5B. 9 5 9 3 10 3C. 9 5 7 3 8 3D. 7 5 7 3 8 3 108、下面程序段的运行结果是(A)int i=0,a[]={1,2,3,4,5};do{a[i]+=10;}while(a[++i]>2);for(i=0;i<5;i++)printf("%d",a[i]);A. 11 2 3 4 5B. 1 2 3 4 5C. 11 12 13 14 15D. 11 12 3 4 5 109、下面关于数组的叙述中,正确的是(A)A. 数组必须先定义,然后使用B. 定义数组时,可不加类型说明符C. 定义数组后,可通过赋值运算符“=”对该数组名直接赋值D. 在数据类型中,数组属于基本类型110、一下程序段的运行结果是(C)int i=0,a[]={6,5,3,7};do{a[i]++;}while(a[i]<4);for(i=0;i<4;i++) printf("%d",a[i]);A. 6537B. 7563C. 7537D. 5673111、有如下程序段:int t[][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf("%d\n",t[2][1]);则执行该程序段后输出结果是(A)A. 8B. 7C. 4D. 2112、以下程序段运行后s的值是(B)int a[3][3]={1,2,3,1,2,3,1,2,3};int i,j,s=1;for(i=0;i<3;i++)for(j=i;j<3;j++)s*=a[i][j];A. 18B. 108C. 2D. 12113、以下不能对二维数组arr进行正确初始化的语句是(C)A. int arr[2][3]={0};B. int arr[][3]={1,2,3,4,5};C. int arr[2][3]={{1,2},{3,4},{5,6}};D. int arr[2][3]={{1},{3,4,5}};114、若有定义:int a[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为(A)A. 0B. {1,2}C. 1D. 3115、若有定义:int a[3][3];则表达式&a[2][1]-a的值为(A)A. 7B. 8C. 6D. 9116、若有定义:int i=0,x=0;int a[3][3]={1,2,3,4,5,6,7,8,9};则以下程序段运行后x的值为(C)for(;i<3;i++) x+=a[i][2-i];A. 0B. 12C. 15D. 18117、若有定义int a[2][3];则对数组元素的非法引用的是(D)A. a[0][1/2]B. a[1][1]C. a[4-4][0]D. a[0][3]118、以下数组定义中,正确的是(C)A. int a[2][]={1,2,3,4,5};B. int a[][2]={{0},{}};C. int a[2][2]={{1,2},{3}};D. int a[][]={1,2,3,4};119、若有定义int a[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0])的值为(A)A. 3B. 4C. 5D. 9120、以下程序段运行后s的值是(A)int a[3][3]={1,2,3,4,5,1,2,3,4};int i,j,s=1;for(i=0;i<3;i++)for(j=i+1;j<3;j++)s*=a[i][j];A. 6B. 120C. 24D. 480121、设已定义:int a[][4]={0,0};则下列描述错误的是(D)A. 数组a的每个元素都可得到初值0B. 二维数组a的第一维大小为1C. 数组a的行数为1D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0122、设已定义:char str1[10],str2[10]=”Fujian”;则能将字符串”Fujian”赋给数组str1的正确语句是(B)A. str1=”Fujian”B. strcpy(str1,str2);C. strcpy(str2,str1);D. str1=str2; 123、有如下定义:char str[3][2]={ 'a','b','c','\0','e','f'};则语句:printf("%s",str[0]);的输出结果是(D)A. abB. abcefC. abc\0D. abc124、设有如下数组定义:char str[8]={ "Fujian"};则分配给数组str的存储空间是(C)字节A. 6 B. 7 C. 8 D. 9125、若有定义:char a[]="abcdef";char b[]="xyz";则以下程序段运行后屏幕输出为(B)strcpy(a,b);printf("%c",a[2]);A. cB. zC. \0D. d126、以下程序段运行后屏幕输出为(C)char a[]="abc\0mis";printf("%d",strlen(a));A. 5B. 8C. 3D. 4127、若有定义:int a=2;则语句a=strcmp("miss","miss");运行后a的值为(B)A. 1B. 0C. -1D. 2128、以下对C语言字符数组描述中,正确的是(C)A. 可以用length函数计算字符数组中字符串的长度B. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值C. 存放在字符数组中的字符串,以’\0’作为该字符串结束标志D. 字符数组只能存放字符串,不能存放字符129、以下程序段运行后屏幕输出为(A)char str[80];strcpy(str, "hello");printf("%d",strlen(str));A. 5B. 6C. 7D. 80130、若有定义:char str1[6]= "abcdm",*ps,*str2="abcdef";则(B)是正确的A. strcpy(str1,str2);B. 表达式strcmp(str1,str2)的值大于0C. str1=str2;D. 表达式strlen(str1)的值为6131、已有定义:char str1[15]={“university”},str2[15];则以下语句中正确的是(C)A. str2=str1;B. str2=”college”;C. scanf(“%s”,&str2);D. printf(“%s”,str1); 132、设已定义:char s1[20]=”You are”,s2[9]=”welcome!”;若要形成字符串”You are welcome!”,正确的语句是(B)A. strcat(s1,s2);B. strcpy(s1,s2);C. s1+s2;D. s1&s2。
第6章-数组和字符串-练习题
第6章-数组和字符串-练习题一、选择题1.下面正确的初始化语句是___A. char str[]="hello";B. char str[100]="hello";C. char str[]={'h','e','l','l','o'};D. char str[]={'hello'};2.定义了一维int型数组a[10]后,下面错误的引用是___A. a[0]=1;B. a[10]=2;C. a[0]=5*2;D. a[1]=a[2]*a[0];3.下面的二维数组初始化语句中,正确的是____A. float b[2][2]={0.1,0.2,0.3,0.4};B. int a[][]={{1,2},{3,4}};C. int a[2][]= {{1,2},{3,4}};D. float a[2][2]={0};4.引用数组元素时,数组下标可以是____A. 整型常量B. 整型变量C. 整型表达式D. 以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A. 24B. 25C. 18D. 176.下列初始化字符数组的语句中,正确的是____A. char str[5]="hello";B. char str[]={'h','e','l','l','o','\0'};C. char str[5]={"hi"};D. char str[100]="";7.给出下列代码,则数组初始化中哪项是不正确的?byte[]array1,array2[];byte array3[][];byte [][]array4;A.array2 = array1 B.array2=array3C.array2=array4 D.array3=array48.下面程序的运行结果是____main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 509.下面不是创建数组的正确语句A.float f[][]=new float[6][6];B.float f[]=new float[6];C.float f[][]=new float[][6];D.float[][]f=new float[6][];10.下列关于Java语言的数组描述中,错误的是()。
c语言字符数组试题
(1).已知一个字符数组str1,要求从键盘输入一个字符串(字符串最多包含30个字符)存放到字符数组str1中,用户从键盘输入一个字符,判断该字符是否在字符串中,如果是,输出该字符在字符串中的位置,否则输出相应的提示信息。
(2)从键盘输入一行字符,存放在字符数组中,然后逆序输出(3)从键盘上输入一个字符串,假定该字符串的长度不超过30,试统计出该串中所有大写字母、小写字母、数字的个数,并分别输出。
#include <stdio.h>#include <string.h>main(){char a[30];int len,i,j,k,l;j=k=l=0;gets(a);len=strlen(a);for(i=0;i<len;i++){if(a[i]>='A'&&a[i]<='Z')j++;if(a[i]>='a'&&a[i]<='z')k++;if(a[i]>='0'&&a[i]<='9')l++;}printf("大写字母有:%d个\n",j);printf("小写字母有:%d个\n",k);printf("数字有:%d个\n",l);}(4).编写一个程序,定义一个数组,输入一串字符判断是否是"回文字符"。
如果是,则在屏幕上输出YES,不是输出NO。
例如字符串"abcba"就是回文字符。
#include <stdio.h>#include <string.h>main(){char a[100];int i,len,j,k;gets(a);k=1;len=strlen(a);for(i=0,j=len-1;i<=j;i++,j--){if(a[i]!=a[j])k=0;break;}if(k==0)printf("NO\n");if(k==1)printf("YES\n");}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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]);