第一题
1. 在使用标准C库时,下面哪个选项使用只读模式打开文件?
A:fopen("foo.txt", "r")
B:fopen("foo.txt", "r+")
C:fopen("foo.txt", "w")
D:fopen("foo.txt", "w+")
E:fopen("foo.txt", "a")
答案及解析 A
第二题
2. 有以下程序
#include <stdio.h>
int main()
{ char a[7] = "a0\0a0\0";int i, j;i = sizeof(a); j = strlen(a);printf("%d %d\n", i, j);
}
A:2 2
B:7 6
C:7 2
D:6 2
答案及解析 C
本题考查的是strlen函数和sizeof运算符
sizeof算的是括号里面变量的数据类型所占的大小,所以a的数据类型是char [7],是一个有7个元素的字符数组,大小就是7;
strlen函数计算的是字符串的长度,遇到\0停止,返回\0之前的字符个数,所以是2
相关博客:
全网最详细的sizeof运算和strlen函数讲解(通过多种数据类型举例)-CSDN博客
第三题
3. C语言程序中的整数不能是()
A:二进制整数
B:八进制整数
C:十六进制整数
D:十进制整数
答案及解析 A
C语言的程序不可以是二进制整数,我们可以输入和输出十进制、八进制、十六进制的数
C语言程序的二进制数,是在汇编阶段将汇编代码翻译为二进制指令。
第四题
4. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( )
A:char s[10] = "abcdefg";
B:char t[] = "abcdefg",*s = t;
C:char s[10];s = "abcdefg";
D:char s[10];strcpy(s,"abcdefg");
答案及解析 C
ABD都是正确的赋值
C:s是数组名,是首元素的地址,首元素的地址不可以改变,是一个const pointer。
第五题
5. 下列程序的输出结果是()
#include <stdio.h>
void f(int *p)
{*p = 5;
}int main()
{int a, *p;a = 10;p = &a;f(p);printf("%d", (*p)++);return 0;
}
A:5
B:6
C:10
D:11
答案及解析 A
首先是定义了一个int类型的a = 10,p指针指向的是a;
所以在函数f这里是将a的地址传入,这样可以完成改变a值的操作,a = 5;
打印(*p)++ = a++ = 5;(后置++返回的是++之前的值)