概述
第一次单元测验
1.单选(3分)下面程序段的输出结果是?
下面程序段的输出结果是?
int k;
while(k!=0) k=k-1;
printf(“%d”, k);
1.单选(3分)以下哪个选项是判断ch是否为大写字母的正确形式?
2.单选(3分)以下表达式 x&&1
用在 if 的条件中时,和哪个是等价的:
【分析:】 当x 非0时 x&&1 为真=1 ;当x为0 时,x&&1 为假=0, 对于 x !=
0 :当x 非0时成立是结果为真=1 当x为0时,x !=
0 不成立 为假 结果=0
2单选(3分)以下代码片段的输出是:
#include <stdio.h>
int main(){
int j=4;
for ( int i=4; i<=8; i++ ) {
switch ( i/4 ) {
case 0:
case 1: printf("*"); break;
case 2: printf("#");
}
}
return 0;
}
i=4 j=4
4/4=1
5/4=1
6/4=1
7/4=1
8/4=2
3.单选(3分)以下哪个不是C语言的关键字?
【分析:】“include”不是C语言关键字,是预处理命令。
【拓展:】include是一个计算机专业术语,表示包含C/C++标准输入输出头文件的预处理命令,用于将指定头文件嵌入源文件中。不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c、.hpp、.cpp、.hxx、.cxx等,甚至.txt、.abc等等都可以。
4.单选(3分) 对于以下代码:
5.单选(3分)在代码:while ( !e )
中,!e等价于:
【分析:】这题感觉出的不是很严谨啊,都不知道e是什么 ,只能靠假设法:或者理解为要让 !e 的值为1的值就是和条件等价的值。
对于选项A. 假设 e 不等于 1 , 只要e不等于0, !e 的值就是0,与假设矛盾。
对于选项B. 若e 等于1,则 !e 的值就是0 ,与假设矛盾。
对于选项C. 若 e 不等于0 ,则 !e 的值还是0 ,与假设矛盾。
对于选项D. 若e 等于0 ,则 !e 的值就是1 ,此时while ( !e )
的条件值为 真=1。
5单选(3分)对于以下代码:unsigned short sht = 0;sht --;
执行后,sht的值是?
6.单选(3分)下列可用于C语言程序标识符的一组是(名字间以逗号分隔):
6单选(3分)以下哪个直接量是十进制的124?
7.单选(3分)对for(表达式1;;表达式3)
可理解为
8.单选(3分)对于以下代码:int i,j=6;
以下哪句话是对的?
9.单选(3分)对于以下代码:char ch = -1;printf("%dn", ch);
输出结果是?
10.单选(3分).对于以下代码: 哪句话是对的?
int i=6;
do {
printf("%d", i--);
} while (0);
11.填空(3分)表达式ch =‘B’+‘8’-‘3’表示的字符是:
12填空(3分)以下代码的输出是 _____.
int x=0, y=0, z=0;
z = (x==1) && (y=2);
printf("%d ", y);
13.填空(3分)以下代码段的结果是:
对应测试代码:sizeof是运算符,但不会对表达式进行计算。。。很多公司面试题中出现过
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
i = 10;
printf("i : %dn",i);
printf("sizeof(i++) is: %dn",sizeof(++i));
printf("i : %dn",i);
return 0;
}
————————————————
===============================
结果:
i : 10
sizeof(i++) is: 4
i : 10
版权声明:本文为CSDN博主「i丹明扬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Bill_Ming/article/details/8011006
aaaaaa
14填空(3分)表达式(double)(10/4*4)
的结果是_____
15填空(3分)以下代码的输出是 :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);
测试程序:
#include <stdio.h>
int main(){
int i,x,y;
i=x=y=0;
do {
++i;
printf("++i中的i的值为:%dn",i);
if ( i%2 ) {
x+=i,i++; //此处x+ = i后面是逗号。
printf("x += i中的x的值为:%dn",x);
printf("i++中的i的值为:%dn",i);
}
y +=i++;
printf("y += i++中的y的值为:%d ;i的值为:%dn",y,i);
} while ( i<=7 );
printf("%d %d %d", i, x, y);
return 0;
}
========================================
$ ./main
++i中的i的值为:1
x += i中的x的值为:1
i++中的i的值为:2
y += i++中的y的值为:2 ;i的值为:3
++i中的i的值为:4
y += i++中的y的值为:6 ;i的值为:5
++i中的i的值为:6
y += i++中的y的值为:12 ;i的值为:7
++i中的i的值为:8
y += i++中的y的值为:20 ;i的值为:9
9 1 20Program exited with status 0
容易理解错的一种是:
#include <stdio.h>
int main(){
int i,x,y;
i=x=y=0;
do {
++i;
printf("++i中的i的值为:%dn",i);
if ( i%2 ) {
x+=i;//此处是分号
printf("x += i中的x的值为:%dn",x);
}
i++;
printf("i++中的i的值为:%dn",i);
y +=i++;
printf("y += i++中的y的值为:%d ;i的值为:%dn",y,i);
} while ( i<=7 );
printf("%d %d %d", i, x, y);
return 0;
}
===============================================
$ ./main
++i中的i的值为:1
x += i中的x的值为:1
i++中的i的值为:2
y += i++中的y的值为:2 ;i的值为:3
++i中的i的值为:4
i++中的i的值为:5
y += i++中的y的值为:7 ;i的值为:6
++i中的i的值为:7
x += i中的x的值为:8
i++中的i的值为:8
y += i++中的y的值为:15 ;i的值为:9
9 8 15Program exited with status 0
总结与收获:
逗号表达式最应用场景在变量定义的时候,其实 对于逻辑层次在一起的语句
可以直接用逗号分隔,而不需要用分号 加 大括号的方式。 这样写有利于减少语句间的括号夹杂太多。
总结:逗号表达式最应用场景在变量定义的时候,其实 对于逻辑层次在一起的语句
可以直接用逗号分隔,而不需要用分号 加 大括号的方式。 这样写有利于减少语句间的括号夹杂太多。
实际例子:
00000000000000000000000000000000
temp = a[index];
a[index] = a [i] ;
a[i] = temp ;
等价于
temp = a[index] , a[index] = a [i] , a[i] = temp ; //表示同一层级语句
最后
以上就是安静翅膀为你收集整理的第一次单元测验参考答案详解 mooc程序设计入门——翁凯的全部内容,希望文章能够帮你解决第一次单元测验参考答案详解 mooc程序设计入门——翁凯所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复