C语言-基本选择题及参考答案 下载本文

内容发布更新时间 : 2024/4/28 9:58:45星期一 下面是文章的全部内容请认真阅读。

3.字符串 “ABCD”在内存占用的字节数是( D )。 A.4 B.6 C.1 D.5 4. 下面不正确的字符串常量是:( A )

A. ‘PROGRAM’ B “12’12” C “0” D “ ” 5.设有数组定义: char array [ ]=\则数组array所占的空间

为 B

A) 4

个字节 B) 5个字节 C) 6个字节 D) 7个字

*6.下述对C语言中字符数组的描述错误的是 C 。

A)字符数组可以存放字符串

B)字符数组中的字符串可以整体输入和输出

C)可在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)可在对字符数组定义时通过赋值运算符“=”对字符数组整

体初始化

7.已知char x[]=\则关于两

个数组长度的正确描述是 B .

A)相同 B)x大于y C)x小于y D)以上答案都不对

8.给出以下定义: char x[ ]=\

char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为 C

A) 数组x和数组y等价 B) 数组x和数组y的长度相同

C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度

9、若有以下语句,则正确的描述是( D )。

17 / 26

static char x[ ]=”12345” ; static 5’,’\\0’} ;

A、x数组长度大于y数组长度 B、x数组和y数组不相同 C、x数组长度小于y数组长度 D、x数组等价于y数组 10、已知:char s[20]= ”programming”, *ps=s; 则不能引用字母o

的表达式是( C )。

char y[ ]={‘1’,‘2’,‘3’,‘4’,

A、ps[2] B、s[2] C、ps+2 D、ps+=2, *ps

*11.判断两字符串s1,s2是否相等,应使用( D ). A)if(s1==s2) B)if(s1=s2)

C)if(strcpy(s1,s2)) D)if(strcmp(s1,s2)==0)

*12.以下printf语句的输出结果为: A

printf(“%d\\n”,strlen(“school”)); A) 7 B) 6 C)存在语法错误 D)不定值 13. 对字符数组s赋值,不合法的一个是( C )

A. char s[]=\; B. char s[20]={\; C. char s[20];s=\;

D. char s[20]={'B','e','i','j','i','n','g'};

14. 对字符数组str赋初值,str不能作为字符串使用的一个是( D )

A. char str[]=\; B. char str[]={\;

C. char str[9]={'s','h','a','n','g','h','a','i',’\\0’}; D. char str[8]={ 's','h','a','n','g','h','a','i'}; 15. 合法的数组定义是 C

A)int

a[]={“string”};

B)

int

a[5]={0,1,2,3,4,5};

18 / 26

C)char a[]= “string”; D) char

a[5]={0,1,2,3,4,5};

16. 对字符数组s赋值,不合法的是: ( C )

A) char s[]=\; B) char s[20]={\;

C) char s[20];s=\; D) char s[20]={'c','h','i','n','a'};

17. 下面初始化与此初始化charc[ ]=“I am happy”;等价的是( A )

A) ’};

B) char c[ ]={‘I’,’am’,’happy’}; C)

D)char c[ ]={‘I’,’am’,’happy’,’\\0’}; 18.下面各语句中,能正确进行赋字符串操作的语句是( C )。 A. char s[5]={“ABCDE”};

B. char s[5]={‘A’,‘B’,‘C’,‘D’,‘E’,’\\0’}; C. char *s;s=“ABCDE”; D. char *s;scanf(“%s”,&s);

19.下列字符串赋值方式不正确的是( A )

A).char str[20]; B). char *str ; str=”I am a boy!”; str=”I am a boy!”; C). char *str=”I am a boy!”; D). char str[20]=” I am a boy!”;

七.指针

1. 语句int *p;说明了 C 。

19 / 26

char

c[ ]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’\\0

char

c[ ]={‘I’, ’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’};

A)p是指向一维数组的指针

B)p是指向函数的指针,该函数返回一int型数据 C)p是指向int型数据的指针

D)p是函数名,该函数返回一指向int型数据的指针 2. 变量的指针,其含义是指该变量的:( B )

A. 值 B. 地址 C. 名 D.一个标志 3.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表

达式是( A )

A) pb=&x B) pb=x C) *pb=&x D) *pb=*x 4、已知:int a, *p=&a; 则下列函数调用中错误的是( D )。 A、scanf(“%d”,&a); B、scanf(“%d”,p); C、printf(“%d”,a); D、printf(“%d”,p); 5.对于同类型的指针变量,不可能进行的运算是( C )。 A.- B.= C.+ D.== 6. 对于基类型相同的两个指针变量之间,不能进行的运算是 C A) < B) = C) + D) - 7.下列不正确的定义是( A )。

A. int *p=&i,i; B.int *p,i; C.int i,*p=&i; D.int i,*p;

8. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: ( D )

A)p=q B)*p=*q C)n=*q D)p=n 9. int *p,a=10,b=1; p=&a; a=*p+b;

执行该程序段后,a的值为 C

A) 编译出错 B) 10 C) 11 D) 12 10.下列函数的功能是 A 。

20 / 26