纸质周任务总结

月考核纸质任务

资料

优先级:按位取反是位运算符中优先级最高的,然后是算术运算符,其次是<<、>>,然后是关系运算符,最后是&、^、|

题目一

已知 int x = 5, y = 5, z = 5; 执行语句x %= y + z后, x 的值为多少?

#include <stdio.h>
int main(){
	int x = 5;
	int y = 5;
	int z = 5;
	printf("%d\n", x%=y+z);
	return 0;
} 

运算优先级应先算加法,故本题可简化为计算 5 % 10 = 5
故输出结果 x = 5 。

题目二

下面程序的运行结果是?

#include <stdio.h>
int main(){
	int a = 3, b = 3, c = 1;
	c = 5 ? a++: b--;
	
	printf("%d\n", c);
	return 0;
} 

此题重点在于条件运算符,意为先判断问好前的条件是否成立,若成立则执行第一种情况,若不成立则执行第二种情况。 本题的判断条件为5,即为默认成立,执行 c = a++; 此等式可分解为 c = a; a++; 故 c = 3,最后输出结果为3 。

题目三

下面程序的运行结果是?

#include <stdio.h>
int main(){
	int a = 1,b = 10;
	do{
		b -= a;
		a++;
	}while(b-- < 0);
	
	printf("a = %d,b = %d\n",a,b);
} 

if(b-- < 0) 可以理解为 先判断b是否小于0,在将b自减。 本题为while(b-- < 0);while循环后有一个分号,故直接跳出循环,再将b自减 于是可求出 a = 2 , b = 8 。

题目四

下面程序段运行的结果是?

#include <stdio.h>
int main(){
	int x,y;
	for(y = 1; y < 10;){
		y=((x = 3 * y, x + 1), x - 1);
	}
	printf("x=%d, y=%d\n",x,y);
	
	return 0;
}

逗号运算符的优先级最低,故先计算括号中的部分,算完后取括号中最后一项的值,若y 的值不大于或等于10就继续循环,直到y满足条件后输出。易得,x = 15 , y = 14 。

题目五

以下程序的输出结果是?

#include <stdio.h>
int main(){
	int x = 10,y = 10,i;
	for(i = 0; x > 8; y = ++i)
		printf("%d,%d",x--,y);
		
	return 0;
}

y = i++ 可转化为 y = i ; i++ ;
同理 printf("%d",x–); 可转化为 printf("%d",x); x–;
故本题易得 会进行两次循环
即输出两组结果 10,10 9,1 。

题目六

#include <stdio.h>
int main(){
	int i,sum;
	for(i = 1;i < 5; i++){
		sum += i;
	}
	printf("%d\n",sum);
	
	return 0;
}

因为本题没有给sum初始值,故随着电脑的不同,sum所给的随机初始值也会不同,故此题无法确定sum的值。

题目七

已知 char a[] = “Beijing”; 则数组a所占的存储空间是几个字节?
一个字母占一个字符,在数组的末尾还有一个’\0‘占一个字节,故共计8个字节。

题目八

当执行下面程序时,如果输入abc,则输出结果是?

#include <stdio.h>
#include <string.h>
int main(){
	char str[10] = "12345";
	gets(str);
	strcat(str,"def");
	printf("%s\n",str);
	
	return 0;
}

gets获取的str数组为abc,故字符串数组被重置为abc,再与def通过 strcat 函数相连得 abcdef 。

题目九

已知A的ASCII码值是65,并有如下定义:

#include <stdio.h>
struct person{
	char name[10];
	int age;
}classes[10] = {{"LiMing",29},{"HongGang",21},{"WangFang",22}};

下列表达式中,值为72的是_B_
A、 classes[0]->age + classes[1]->age + classes[2]->age
B、 classes[1].name[0]
C、 classes[1].name[5]
D、 classes -> name[5]

-> 叫做指向结构体成员运算符,用于指向结构体中的某个成员,用于结构体指针。故A、D错。
B项中,classes[1].name[0]项为H,H的ASCII码为72,故B正确。
C项中,所对应的字母为G,ASCII码不为72,故C错误。
所以答案选B 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值