如题目或答案有误,请通过BUG反馈告知我们修正,谢谢!

1、下面哪一项是不正确的字符串赋值或赋初值的方式

char *str; str="string";

char str[7]={'s','t','r','i','n','g'};

char str1[10];str1="string";

char str1[]="string",str2[]="12345678";

2、用数组名作为函数调用时的实参,实际上传送给形参的是

数组首地址

数组的第一个元素值

数组中全部元素的值

数组元素的个数

3、若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:

10<回车>22<回车>33<回车>

10.0,22.0,33.0<回车>

10.0<回车>22.0 33.0<回车>

10 22<回车>33<回车>

4、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是

-3

9

-12

6

5、若有以下说明和语句,则输出结果是哪一项?
(strlen(s)为求字符串s的长度的函数)
char s[12]="a book!";
printf("%d",strlen(s));

12

8

7

11

6、若变量c为char类型,能正确判断出c为小写字母的表达式是

'a'<=c<= 'z'

(c>= 'a')||(c<= 'z')

('a'<=c)and ('z'>=c)

(c>= 'a')&&(c<= 'z')

7、若有以下说明和语句,则输出结果是?
char str[]="\"c:\\abc.dat\"";
printf("%s",str);

字符串中有非法字符

\"c:\\abc.dat\"

"c:\abc.dat"

"c:\\abc.dat"

8、若x=4,则x*=x+2的值为:

36

24

18

20

9、若执行完成下列语句:
int a=3,b=6,c;
c=a∧b<<2;
则变量c的二进制值为:

00011100

00010100

0001000

00011011

10、若有定义:int a[3][4];不能表示数组元素a[1][1]的是

*(a[1]+1)

*(&a[1][1])

(*(a+1))[1]

*(a+5)