- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(7)若有以下说明,则数值为 4 的表达式是 D 。
int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;
A. a[g-c] B. a[4]
C. a['d'-'c'] D. a['d'-c]
(8)设有定义:char s[12] = "string" ; 则 printf( "%d\n",strlen(s)); 的
A. int a[7];
B. #define N 5 long b[N];
C. char c[5];
D. int n=5,d[n];
(4)对字符数组进行初始化, B 形式是错误。
A. char c1[ ]={'1', '2', '3'};
B. char c2[ ]=123;
C. char c3[ ]={ '1', '2', '3', '\0'}; D. char c4[ ]="123";
C. char a= "string " ;
D. char a[ ]={0,1,2,3,4,5}
(11)合法的数组定义是 B 。
A. int a[3][ ]={0,1,2,3,4,5}; B. int a[ ][3] ={0,1,2,3,4};
C. int a[2][3]={0,1,2,3,4,5,6}; D. char a[2][3]={0,1,2,3,4,5,};
C.int n;
D.#define SIZE 10
scanf(“%d”,&n);
int a[SIZE];
int a[n];
(18)若有说明:int a[10];则对 a 数组元素的正确引用是_ D _。
A.a[10]
B.a[3.5]
C.a(5)
D.a[10-10]
(19)在 C 语言中,一维数组的定义方式为:类型说明符 数组名_ A _。
#include <stdio.h>
int main()
{
char a[]=“morning”,t;
int i,j=0;
for(i=1;i<7;i++)
if(a[j]<a[i])
j=i;
t=a[j]; a[j]=a[7];
a[7]=t; puts(a);
return 0;
}
A.mogninr B.mo C.morning
输出是 A 。
A. 6 B. 7 C. 11 D. 12
(9)设有定义:char s[12] = "string"; 则 printf("%d\n ", sizeof(s)); 的
输出是 D 。
A. 6 B. 7 C. 11 D. 12
(10)合法的数组定义是 A 。
A. char a[ ]= "string " ; B. int a[5] ={0,1,2,3,4,5};
B. int x[2][2]={1,2,3,4};
C. float x[2][ ]={1,2,4,6,8,10};
D. int m[][3]={1,2,3,4,5,6};
(15)数组定义为 int a[3][2]={1,2,3,4,5,6},值为 6 的数组元素是 B 。
A. a[3][2]
B. a[2][1]
第 6 章 数组
1. 单项选择题
(1)int a[4]={5,3,8,9};其中 a[3]的值为 D 。
A. 5
B. 3
C. 8
D. 9
(2)以下 4 个字符串函数中, A 所在的头文件与其他 3 个不同。
A. gets
B. strcpy
C. strlen
D. strcmp
(3)以下 4 个数组定义中, D 是错误的。
A.puts(a,b);
B.printf(“%s %s”,a[],b[]);
C.putchar(a,b);
D.puts(a),puts(b);
(32)下面程序段的运行结果是 D _。
char a[7]=“abcdef”;
char b[4]=“ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
(21)以下对二维数组 a 的正确说明是_ C _。
A.int a[3][];
B.float a(3,4);
C.double a[1][4];
D.float a(3)(4);
(22)若有说明:int a[3][4];则对 a 数组元素的非法引是_ D _。
A.a[0][2*1] B.a[1][3] C.a[4-2][0]
B.字符个数多的字符串比字符个数少的字符串大
C.字符串“STOP ”与“stop”相等
D.字符串“That”小于字符串“The”
(38)下面程序的功能是将字符串 s 中所有的字符 c 删除。请选择填空。
#include <stdio.h>
int main()
{
char s[80];
int i,j;
gets(s);
(5)在数组中,数组名表示 A 。
A.数组第 1 个元素的首地址
B.数组第 2 个元素的首地址
C.数组所有元素的首地址
D.数组最后 1 个元素的首地址
(6)若有以下数组说明,则数值最小的和最大的元素下标分别是 B 。
int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};
A. 1,12 B. 0,11 C. 1,11 D. 0,12
A.a[2][4]
B.a[1,3]
C.a[1+1][0]
D.a(2)(1)
(25)对以下说明语句的正确理解是 B 。
int a[10]={6,7,8,9,10};
A.将 5 个初值依次赋给 a[1]至 a[5]
B.将 5 个初值依次赋给 a[0]至 a[4]
C.将 5 个初值依次赋给 a[6]至 a[10]
1
(12)下列语句中,正确的是 D 。
A. char a[3][ ]={'abc', '1'}; B. char a[ ][3] ={'abc', '1'};
C. char a[3][ ]={'a', "1"};
D. char a[ ][3] ={ "a", "1"};
(13)下列定义的字符数组中,printf("%s\n", str[2]);的输出是 C 。
static str[3][20] ={ "basic", "foxpro", "windows"};
A. basic B. foxpro C. windows D. 输出语句出错
(14)下列各语句定义了数组,其中哪一个是不正确的 C 。
A. char a[3][10]={"China","American","Asia"};
A.空格
B.\0
C.e
D.f
(33)有下面的程序段
char a[3],b[]=“China”;
a=b;
printf(“%s”,a);则 D _。
A.运行后将输出 China
B.运行后将输出 Ch
C.运行后将输出 Chi
D.编译出错
(34)判断字符串 a 和 b 是否相等,应当使用 D _。
A.if(a==b) B.if(a=b) C.if(strcpy(a,b)) D.if(strcmp(a,b))
for(i=j=0;s[i]!=‘\0’;i++)
if(s[i]!=‘c’) A _;
s[j]=‘\0’;
puts(s);
return 0;
}
A.s[j++]=s[i]
B.s[++j]=s[i]
C.s[j]=s[i]; j++
D.s[j]=s[i]
(39)下面程序的运行结果是 D _。
#include &ran”;
4
int i=0;
while(x[i]!=‘\0’&&y[i]!= ‘\0’)
{if(x[i]==y[i]) printf(“%c”, A _);
else i++;}
A.x[i++] B.y[++i]
C.x[i]
D.y[i]
(37)下面描述正确的是 D _。
A.两个字符串所包含的字符个数相同时,才能比较字符串
C. a[1][2]
D. a[2][3]
(16)在 C 语言中,引用数组元素时,其数组下标的数据类型允许是_ C _。
A.整型常量
B.整型表达式
C.整型常量或整型表达式 D.任何类型的表达式
(17)以下对一维整型数组 a 的正确说明是_ D _。
A.int a(10);
B.int n=10,a[n];
D.a 数组比 b 数组长度长
(30)有两个字符数组 a、b,则以下正确的输入格式是 B _。
A.gets(a,b);
B.scanf(“%s %s”,a,b);
C.scanf(“%s %s”,&a,&b); D.gets(“a”),get(“b”);