考题解答09年福建专升本C和数据结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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: (b 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] 下标越界