MOOC《程序设计入门——C语言》错题集

第二周

1变量-小测验

1.以下哪些是有效的变量名?

A.main   B.4ever   C.monkey-king   D.__int

正确答案:A、D   错选为C、D
解析:

  1. 变量名的开头必须是字母或下划线,不能是数字。实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的;
  2. 变量名中的字母是区分大小写的;
  3. 变量名绝对不可以是C语言关键字;
  4. 变量名是字母、数字、下划线的组合。

2.给定:

int a,b;
scanf(“%d %d”, &a, &b);

则以下哪些输入方式是正确的?
A.1 2   B.1,2   C.1(回车)2   D.1、2

正确答案:A、C   错选为A

第三周

1判断-小测试

1.以下语句是否可以通过编译:

if ( 1<=n<=10 );

A.√   B.×
正确答案:A 错选为B

第六周

第一次单元测验

1.下列程序段输出结果为:

int x=1, y=012;
printf(“%d”, y*x++);

A.24   B.20   C.10   D.12

正确答案:C   错选为D
解析:
012是8进制数,而x++的结果是加1以前的值

2.对于以下代码:

unsigned short sht = 0;
sht --;

执行后,sht的值是?
A.32767   B.65535   C.-1   D.65536

正确答案:B   错选为A
解析:
A、short类型在各种平台都是16位,2的16次方为65536,所以unsigned short能表达的最大的数是65535
B、short类型在各种平台都是16位,2的16次方为65536,所以unsigned short能表达的最大的数是65535
C、unsigned 不能表达负数
D、short类型在各种平台都是16位,2的16次方为65536,所以unsigned short能表达的最大的数是65535

Note:
1.char类型 1个字节-8位
2.short类型(短整型)2个字节-16位,同上述题解
3.int类型(有符号类型)4个字节-32位;
32位的机器下,int的范围是 - 2 ^ 31 ~2 ^ 31 - 1; 也就是:[-2147483648, 2147483647];(21亿)
16位的机器下,int的范围为 -2 ^ 15 ~ 2 ^ 15-1。也就是 :[-32768,32767]
整型变量int的范围与计算机的字长有关,int 的长度是一个计算机字长。
4.long类型 (LLP64模型)4个字节-32位

3.以下哪个直接量是十进制的124?

A.0124   B.0x124   C.124d   D.0x7C

正确答案:D   错选为C
解析:
A、这是8进制,相当于10进制的84
B、这是16进制,相当于10进制的292
C、C语言没有这种后缀
D、16进制

4.下列可用于C语言程序标识符的一组是(名字间以逗号分隔):

A. 2_a, xyz, b1_s
B.void,_2a, 2a
C.void, d, WORD
D._if, _123, file

正确答案:D   错选为A
解析:
A、不能以数字开头
B、不能以数字开头
C、void是保留字
D、下划线开头后面没有字母也是可以的

5.对于以下代码:

int i;
scanf(“%d”, &i);
i %= 4;

执行后,i会有几种可能性?
A.0   B.1   C.7   D.不好说

正确答案:C   错选为D
解析:
C、0,1,2,3,-1,-2,-3

6.以下代码段的结果是:

int i=10;
long long t = sizeof(i++);
printf(“%d”, i);

正确答案:10
解析:
sizeof()是静态运算符,即编译器只关注括号内数值的类型,而不会对括号里面的参数进行计算。

7.以下代码的输出是 :

int i,x,y;
i=x=y=0;
do {
++i;
if ( i%2 )
x+=i,
i++;
y +=i++;
} while ( i<=7 );
printf(“%d %d %d”, i, x, y);

正确答案:9 1 20
解析:
注意x+=i,是以逗号结尾的。

8.对于以下代码:

int i=6;
if ( i<= 6 )
printf(“hello\n”);;
else
printf(“bye-bye\n”);;

哪句话是对的?
A.打印出"bye-bye"
B.打印出"hello bye-bye"
C.打印出"hello"
D.无法编译
正确答案:D   错选为C

9.对于以下代码:

int i=6;
do {
printf(“%d”, i–);
} while (0);

哪句话是对的?
A.打印出5
B.打印不出东西
C.因为while(0),无法编译
D.打印出6
正确答案:D
解析:
A、i–的结果是i减以前的值
B、do循环至少会执行一次
C、while(0)是合乎语法的
D、do循环至少会执行一次

10.以下代码的输出是 _____.

int x=0, y=0, z=0;
z = (x==1) && (y=2);
printf("%d ", y);

正确答案:0
解析:&&运算符当计算出前一个值(此处为“x==1”)为0时即不再做后续运算,则“y=2”无法赋值运算。

11.以下代码片段的输出是:

int j=4;‍
‌for ( int i=j; i<=2*j; i++ ) {
‌ switch ( i/j ) {
‌ case 0:
‌ case 1: printf(“ * ”); break;
‌ case 2: printf(“ # ”);
‌ }
‌}

A. ****
B. *#
C. ****#
D. ***#
正确答案:C
Note:关于for循环表达式执行顺序
for(表达式1;表达式2;表达式3){
表达式4
}
初次进入for循环:表达式1 —>表达式2 —?—>表达式4 —>表达式3
后续进入for循环:表达式2—?—>表达式4 —>表达式3
退出for循环:表达式2×—>退出循环

第八周

1.指针 - 小测验

1.对于:

int a[] = {5, 15, 34, 54, 14, 2, 52, 72};
int *p = &a[5];
则:
p[-2]的值是?

A.编译出错,因为数组下标越界了
B.运行出错,因为数组下标越界了
C.54
D.2
正确答案:C 错选为B

2.如果:

int a[] = {0};
int *p = a;
则以下哪些表达式的结果为真?

A. p == a[0]
B. p == &a[0]
C. *p == a[0]
D. p[0] == a[0]
正确答案:B、C、D

3.以下变量定义:

int* p,q;

中,p和q都是指针。

A. √
B. ×
正确答案:B

南京邮电大学mooc高级程序语言设计(c语言)是一门涵盖C语言高级编程技术的课程,旨在帮助学生深入了解C语言的高级特性和编程技巧,提高其编程能力和实践能力。该课程内容涵盖C语言的指针、结构体、文件操作、动态内存分配等高级特性,同时还包括C语言程序设计的实践案例和项目实战,帮助学生掌握C语言的实际应用能力。通过学习该课程,学生可以更好地理解C语言的高级编程技术,提高自己的编程水平和实践能力,为今后的编程工作打下坚实的基础。 ### 回答2: 南京邮电大学MOOC高级程序语言设计(C语言)是一门针对程序员进阶的课程。该课程涵盖了广泛的主题,包括指针,数组,函数,结构体,位运算,文件操作,数据结构和算法等。通过学习这门课程,学生将能够深入了解C语言的各个方面,并且掌握在实际项目中设计高效和可维护代码的技能。 该课程教学构成清晰,系统性强。课程内容一共划为十周,每周都有不同的主题和课程内容。每周的课程内包含了学习视频,动画辅助,需要编程的作业题目以及参考答案。通过这些作业,学生能够得回反馈和指导,从而更快地理解和运用所学内容。 评估方式合理。这门课程的成绩评估以学生提交的作业为主。具体来说,每周都有一个作业,每个作业的满分均为100分。课程作业的类型有选择题,填空题,代码编写题和综合性的考察,能够全方位地考察学生对所学知识的掌握程度。 课程内容充实,涉及的主题深入。这门课程不只涵盖了C语言的基础知识,还对指针、数组、结构体、位运算、文件操作、数据结构和算法等内容进行了深入讲授。通过学习课程,学生可以更好地掌握和应用这些知识,为以后的编程工作打好基础。 总之,南京邮电大学MOOC高级程序语言设计(C语言)是一门高质量的在线编程课程,这门课程内容广泛,涵盖了很多重要的C语言编程技术,将帮助学生全面掌握C语言的基本概念,让他们能够在编写高效、可维护代码方面更加熟练。如果你是一个正在寻找进阶在线编程课程的程序员,我强烈推荐你学习这门课程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值