安徽大学软件工程专业大一2020-2021第二学期C语言程序设计包含指针考试
安徽大学软件工程专业大一安徽大学软件工程专业大一 2020-20212020-2021 第二学期第二学期 C C 语言程序语言程序 设计(包含指针)考试设计(包含指针)考试 1. int *p = 那么*p 的值是()? [单选题] * p 的值 p 的地址 n 的值(正确答案) n 的地址 2. 有如下定义语句:int arr[][3] = {{1,2}, {3,4,5}, {6,7,8}, {9}}; 那么 arr[1][3]的值为 ()? [单选题] * 0 5 6(正确答案) 7 3. 定义 int **arr[3][4]; 则变量占用的内存空间为()? [单选题] * 4 8 24 48(正确答案) 4. 下面代码编译或者运行时会发生错误的有()? * char buf[4] = “hell“; printf(“%s“, buf);(正确答案) char buf[4]; strcpy(buf, “hell“); printf(“%s“, buf);(正确答案) char buf[4] = {0}; memcpy(buf, “hell“, strlen(“hel“)); printf(“%s“, buf); char buf[] = “hell“; printf(“%s“, buf); 5. int main() { int a; int b[2] = {0,1}; printf(“0 x%x, 0 x%x, 0 x%x\n“, } [单选题] * 0 x3ffff7a0 0 x3ffff798 0 x3ffff79c(正确答案) 0 x3ffff7a0 0 x3ffff79c 0 x3ffff798 0 x3ffff798 0 x3ffff79c 0 x3ffff7a0 0 x3ffff79c 0 x3ffff798 0 x3ffff7a0 6. 有如下代码 #include char *myString() { char buffer[6] = {0}; char *s = “Hello World!“; for(int i=0; iy)? a : b int main() { unsigned int a = 10; char b = 1; unsigned char c = -1; printf(”%c, %c\n“, FUNC(a,b), FUNC(a, c)); return 0; } [单选题] * a,a a,b(正确答案) b,a b,b 11. 下面程序运行结果是()? #define MAX(x) (10 x2) ? (x+2) :(x+4) int main() { int a = 10; int b = 0; b = MAX(a); printf(“%d,“, b); a = 5; b = MAX(a) + 4; printf(“%d\n“, b); return 0; } [单选题] * 14,7 14,13(正确答案) 14,11 7,11 12. 下面程序的运行结果是()? int main() { int a[] = {23, 5, 87, 11, 5}; int *p = a; printf(“%d,“, p[2]); p = (int *)( printf(“%d\n“, p[-2]); return 0 } [单选题] * 程序崩溃 87,随机值 87,87 87,11(正确答案) 13. 下面程序运行的结果是()? int main() { int a[4] = {2,3,2,3}; int *ptr1 = (int *) int *ptr2 = (int *)((int)a + 1); printf(“%x, %x\n“, *(ptr1-1), *ptr2); return 0; } [单选题] * 2,3000000(正确答案) 2,3 3,2 3,3 14. 下面程序运行的结果是: () typedef int (*FUNC1)(int ); typedef int (*FUNC2)(int *,int *,int *); int Inc(int a) { return (++a); } int Multi(int *a,int *b,int *c) { return (*c= *a**b); } void Show(FUNC2 fun,int arg1 ,int *arg2) { FUNC1 p = Inc; int tmp = p(arg1); fun( printf(“ %dIn“,*arg2); } int main() { int a; Show(Multi,10, return 0; } [单选题] * 100 110(正确答案) 121 编译错误 15. void main() { unsigned char *p1 = (unsigned char*)0 x801000; unsigned long *p2 = (unsigned long*)0 x810000; printf(“%x, %x\n“, p1+5, p2+5); } [单选题] * 801005, 810020 801020, 810020 801005, 810014(正确答案) 801014, 810020 16. 定义一个 int 类型的指针数组,数组元素个数为 10 个,以下定义方式中,正确 的是()? [单选题] * int a[10]; int (*a)[10]; int *a[10];(正确答案) int (*a[10])(int); 17. 在某 32 位系统下,程序如下: char str[] = “http://www.tulun1 “;//图论科技官网 char*p= str; sizeof(str)= ? //1 sizeof(p)= ? //2 void foo(char str[100]) { sizeof(str) = ?//3 } void *p = malloc(100); sizeof(p) = ?//4 则,1,2,3,4 处的值分别是为() ? [单选题] * 25,4,100,100 25,4,100,4 4,4,4,4 25,4,4,4(正确答案) 18. 32位机器上定义如下结构体: struct xx { long long _x1; char _x2; int _x3; char _x4[2]; //static int _x5; } 请问 sizeof(xx)的大小是()? [单选题] * 19 20 15 24(正确答案) 19. 有如下代码: int foo(int n) { if(n = 1) return 1; return n*foo(n-1); } 以上代码的时间复杂度为()? O(log2 n) O(n)(正确答案) O(nlog2 n) O(1) 20. 程序如下: int fun(int n) { static int a = 2; a++; return a*n; } int main() { int k=5; int i=2; k += fun(i++); k *= fun(i-1); [单选题] * pr