📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
文章目录
- 📝选择题
- 第1题
- 第2题
- 第3题
- 📝编程题
- 第1题
- 第2题
- 第3题
📝选择题
第1题
为表示关系x≥y≥z,应使用C语言表达式为()
A. (x>=y)&(y>=z)
B. (x>=y)AND(y>=z)
C. (x>=y>=z)
D.(x>=y)&&(y>=z)
🏆答案:D
🙉知识点:运算符,包括算数、判断、逻辑和位运算符
🔎思路: &&是逻辑与,符合题意。注意区分位运算的运算符,容易搞混。
第2题
设有如下的定义:
int *(*ptr)( ):
A. ptr是指向一维数组的指针变量
B. ptr是指向int型数据的指针变量
C. ptr是指向函数的指针,该函数返回一个int型数据
D. ptr是指向函数的指针,该函数的返回值是指向int型数据的指针
🏆答案:D
🙉知识点:函数指针与指针函数
🔎思路:
int ( ptr )( )是很常见的函数指针,其形参为空,返回值是int,ptr 是指向函数的指针。
int * ( * ptr )( )这个就是将返回值类型变成了一个int,实际上就是返回了这个整型数据的地址。
第3题
在C语言中,运行下面代码表示一次性地给数组a的10元素赋值。
int a[10];
scanf("%d",a);
A.正确 B.错误
🏆答案:B
🙉知识点:数组名表示的地址
🔎思路:数组名表示该数组的首地址,等同于首元素的地址&a[0]。而scanf 是 C 语言中的一个函数,用于从标准输入(通常为键盘)读取输入数据。它是标准库 <stdio.h> 中的一个函数。因此scanf(“%d”,a)的结果是将数组a的首地址作为输入数据,而并不表示一次性地给数组a的10元素赋值。
补充:scanf
函数的基本语法
scanf(format, variable1, variable2, ...);
其中,format
是一个字符串,用于指定输入的格式;variable1
、variable2
等是变量,用于存储输入的值。
例如,如果要读取一个整数并存储到变量 num
中,可以使用以下 scanf
语句:
int num;
scanf("%d", &num);
请注意,%d
是格式控制符,用于指定输入为整数。
要读取多个值,可以在 format
字符串中使用相应的格式控制符,并在变量参数前加上取址符 &
。
📝编程题
第1题
下面程序执行后的输出值是()
#include<stdio.h>
#define SUM(x) 3*x*x+1
int main()
{
int i = 5, j = 8;
printf("%d\n", SUM(i + j));
return 0;
}
A.64 B.508 C.420 D.其他几项都不对
🏆答案:A
🙉知识点:宏定义函数的运算
🔎思路:将i+j不加括号带入函数SUM(x)中,因为自变量x无括号
第2题
有如下C语言的程序段
short si = -32767;
unsigned short usi = si;
执行上述两条语句后,usi的值为()
A.-32767 B.32767 C.32768 D.32769
🏆答案:D
🙉知识点:无符号整型的转化
🔎思路:先把-32767表示成原码形式是(因为补码不是一步可以得到的,先原码再补码)
-32767原码=1111 1111 1111 1111
-32767补码 =1000 0000 0000 0001
再把这个补码赋给usi,usi会把最高位符号位1也当做数值位
usi=1000 0000 0000 0001=32769
第3题
以下代码的输出结果是?
char* p = “abc”;
char* q = “abc123”;
while (*p == *q)
{
printf(“%c%c”, *p, *q);
p++;
q++;
}
A.aabbcc B.aabbcc123 C.abcabc123 D.代码段错误
🏆答案:A
🙉知识点:字符串常量
🔎思路:字符串常量保存在一个只读常量区的内存段中,其中的内容可读但是不可写。