考题解答09年福建专升本C和数据结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

09年专升本C考题解答(共100分)

一、单项选择题(30小题,每小题2分,共60分)

1、下列选项中,合法的C语言标识符是()。

A. my_name

B. $234

C. my name

D. 23b

标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。标识符不能使用C语言的关键字(见教材后清单)

2、已知:int x=5; 执行完printf(“%d”, ++x);后。输出的结果是()。

A. 4

B. 5

C. 6

D. 不确定

注意++x和x++的区别

3、已知:int x=5,y=3; 则逻辑表达式(x-y)&&(y-3)的值为()。

A. 7

B. 2

C. 1

D. 0

(x-y)&&(y-3)=(5-3) && (3-3) =2 && 0 =0

4、已知:int a=3,b=6,c=8; 则执行完语句:a=a>b?a: (b

()。

A. 3

B. 6

C. 8

D. 17

a=a>b?a: (b6?a: (6<8?b:c) = 6

5、如下程序执行后的结果是()。

main()

{ int a=11, b=3;

printf(“%d, %d”, a/b, a%b);

}

A. 3,2

B. 11,2

C. 3,3

D. 3.3,2

a/b=11/3=3(整除), a%b=11%3=2

6、如下程序运行时输入“B回车”,输出结果是()。

mian()

{ char c;

scanf (“%c”, &c);

switch (c)

{ case …A‟: printf(“5”);

case …B‟: printf(“4”);

case …C‟: printf(“3”);

case …D‟: printf(“2”);

default: printf(“1”);

}

}

A. 4

B. 43

C. 432

D. 4321

注意没有break语句

7、已知字符‟a‟的ASCII码为97,‟A‟的ASCII码为65,则如下程序的运行结

果是()。

main()

{ char c=‟d‟;

int i=c-32;

printf(“%c, %d”, i, i);

}

A. d,68

B. D,68

C. d,100

D. D,100

…a‟=97,‟d‟=100,‟d‟-32=100-32=68,

…A‟=65,‟D‟=68,

%c打印字符, %d打印数字

8、如下程序段的执行结果是()。

main()

{ int x=1, y=100;

while (y>0)

{ x*=2; y/=3;}

printf(“%d, %d”, x, y);

}

A. 8,0

B. 16,0

C. 32,0

D. 64,0

y=100, x=2, y/=3= 33

y=33, x=4, y/=3=11

y=11, x=8, y/=3=3

y=3, x=16, y=3/3=1

y=1 x=32 y=0

9、如下选项中正确的数组定义是()。

A. #define m 10;static int a[m]={3,4,5,6};

B. static int a[2]={3,4,5};

C. static int a[10]={3,4,5};

D. int m=4; static int a[m]={3,4,5,6};

10、执行程序段:char str[12]; scanf(“%s”, str);如果输入如下字符串

What‟s□your□name? 则str的值是()。

A. What‟s

B. What‟s□

C. What‟s□your

D. What‟s□your□name?

str只有12个元素,而输入超过12个字符,你可能会选择What‟s□your□name?的前11个字符作为str的值(考虑‟\0‟),但是正确答案是A,因为scanf用空格作为字符串输入的结束。在TurboC2中,如果输入的字符串长度超过数组长度,则会出错。

如果要输入带空格的字符串,用gets(str)。

11、如下程序段的运行结果是()。

main()

{ int i=5, sum=100;

do { sum = sum+ (--i); } while( i>=0);

printf (“%d”, sum);

}

A. 100

B. 109

C. 105

D. 110

int i=5, sum=100;

sum = sum+ (--i)=100+4=104 i=4

sum = sum+ (--i)=104+3=107 i=3

sum = sum+ (--i)=107+2=109 i=2

sum = sum+ (--i)=104+1=110 i=1

sum = sum+ (--i)=110+0=110 i=0

sum = sum+ (--i)=110+(-1)=109 i=-1

printf (“%d”, sum); 打印109

12、如下程序段的运行结果是()。

main()

{ int i;

for (i=0; i<=10; i++)

{ if (i%3==0)continue;

printf (“%d”, i);

}

}

A. 1,2,4,5,7,8,10,

B. 1,2,3,4,5,6,7,8,9,10,

C. 3,6,9,

D. 1,2,4,5,6,7,8,9,10,

跳过了3的倍数不打印,其它都打印出来

13、如有说明:int a[5][6]; 则数组的正确引用是()。

A. a[5][4] 下标越界

相关文档
最新文档