第一题
struct Student
{
int num;
double score;
};
struct Student stu[3] = {{1001,80}, {1002,75}, {1003,91}}
struct Student *p = stu;
D:(*p).num
答案及解析 B
本题考查的是对结构体变量如何引用,如果是结构体定义的对象,用 ‘ -> ‘;如果是结构体的指针,就用 ‘ . ‘ ;
A:p是一个结构体指针,指向的是一个结构体数组的首元素,所以p->num,拿到的是首元素的num = 1001;
第二题
#include <stdio.h>
#define X 5
#define Y X+1
#define Z Y*X/2
int main()
{
int a = Y;
printf("%d,%d", Z, --a);
return 0;
}
A:7,6
B:12,6
C:12,5
D:7,5
答案及解析 A
—a = –Y = –X + 1 = 4 + 1 = 5;
Z = Y * X / 2 = X + 1 * X / 2 = 5 + 1 * 5 / 2 = 7;
所以
—a = 5;
Z = 7;
第三题
A:char b[10] = {‘H’,’E’,’L’,’L’,’O’,’!’,”};
C:char b[10]; strcpy(b,”HELLO!”);
D:char b[10] = “HELLO!”;
答案及解析 B
A CD都是正确的赋值;但是我们要知道b是数组名,数组名是首元素的地址,是一个常指针,不可以被改变,所以错误;b的数据类型为char * const ,可以改变数组的内容,但是不能改变数组的地址
第四题
unsigned fun(unsigned num)
{
unsigned k = 1;
do
{
k *= num % 10;
num /= 10;
} while (num);
return(k);
}
int main()
{
unsigned num = 26;
printf("%d", fun(num));
return 0;
}
A:12
C:1
D:26
答案及解析 A
k = 6 num = 2
k = 12 num = 0;
第五题
int main()
{
int n = 10;
int const *p = &n;
p++;
printf("%d", *p);
return 0;
}
A:10
B:11
C:随机值
D:编译错误
答案及解析 C
int const *p = &n; const是在*的左侧,修饰的是p指向的内容不能被修改,所以p++之后,p指向的是n下面的地址处,这里存储的值是未知的,所以是随机值。
原文地址:https://blog.csdn.net/2302_76941579/article/details/134819143
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_48112.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!