C _题集(CC 试题和部分答案)
- 格式:doc
- 大小:48.50 KB
- 文档页数:13
历年c语言考研试题及答案试题:一、单项选择题(每题2分,共10分)1. 下列哪个选项是C语言中的合法标识符?A. 2classB. class#2C. _class2D. class@22. C语言中,一个整型变量的值超过了整型变量的存储范围,该变量的值将如何变化?A. 变成一个随机值B. 变成一个负数C. 变成一个正数D. 变成一个不确定的值3. 在C语言中,以下哪个函数用于将浮点数转换为整数?A. int()B. float()C. double()D. long()4. 下列关于C语言数组的描述中,哪个是错误的?A. 数组的元素在内存中是连续存储的B. 数组的大小在运行时可以改变C. 数组的下标从0开始D. 数组一旦定义,其类型、大小和长度都不能改变5. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. type二、简答题(每题5分,共10分)1. 请简述C语言中指针和数组的区别。
2. 请解释C语言中函数原型的作用。
三、编程题(每题15分,共30分)1. 编写一个C语言函数,实现两个整数的交换。
2. 编写一个C语言程序,输出前100个素数。
答案:一、单项选择题1. C. _class22. D. 变成一个不确定的值3. A. int()4. B. 数组的大小在运行时可以改变5. A. struct二、简答题1. 指针和数组在C语言中都可以用来访问内存中的元素,但它们之间存在一些区别:- 数组名是一个常量指针,它指向数组的第一个元素,而指针是一个变量,可以在程序执行过程中改变其指向的地址。
- 数组的大小是固定的,一旦定义,不能改变;指针则没有这个限制。
- 通过数组名访问数组元素时,使用的是下标索引;而通过指针访问元素时,使用的是指针运算。
2. 函数原型在C语言中的作用包括:- 它提供了函数的名称和参数类型,帮助编译器检查函数调用时的类型匹配。
目录目录 (1)第一章C语言基础知识 (2)一、判断题(正确的填A,错误的填B) (2)二、单项选择题 (3)三、程序填空题 (7)第二章C语言程序结构 (8)一、判断题(正确的填A,错误的填B) (8)二、单项选择题 (9)三、程序填空题 (16)第三章数组(正确的填A,错误的填B) (21)一、判断题 (21)二、单项选择题 (22)三、程序填空题 (28)第四章函数 (33)一、判断题(正确的填A,错误的填B) (33)二、单项选择题 (34)三、程序填空题 (40)第五章指针 (45)一、判断题(正确的填A,错误的填B) (45)二、单项选择题 (46)三、程序填空题 (54)第六章预编译、结构体与共用体 (58)一、判断题(正确的填A,错误的填B) (58)二、单项选择题 (60)三、程序填空题 (68)第七章文件 (73)一、判断题(正确的填A,错误的填B) (73)二、单项选择题 (74)三、程序填空题 (77)第一章C语言基础知识(C语言概述、算法、数据类型运算符表达式、位运算)一、判断题(正确的填A,错误的填B)R1.在C语言中,逗号运算符的优先级最低。
(A)2.在C语言可执行程序的开始执行点是程序中第一个函数。
(B)3.“5ch”是合法的变量名。
(B)R4.C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
(A)5.当输入数据时,必须指明变量的地址,如scanf("%f",&f) (A)N6.表达式i++与++i在任何场合功能完全相同。
(B)7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。
(A)R8.C语言程序中,语句以逗号结尾。
( B )9.在C 程序中,APH 和aph 代表不同的变量。
( A )10. a-=7等价于a=a-7。
( A )N11. printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。
青少年软件编程(C语言)等级考试试卷(一级)分数:100 题数:51.指定顺序输出依次输入3个整数a、b、c,将他们以c、a、b的顺序输出。
时间限制:1000内存限制:65536输入一行3个整数a、b、c,以空格分隔。
0 < a,b,c < 108输出一行3个整数c、a、b,整数之间以一个空格分隔。
样例输入样例输出2. 成绩判定给定一门课的考试分数,如果分数大于等于60,则该门课成绩合格,记为"P", 否者成绩不合格,记为"F"。
时间限制:1000内存限制:65536输入一个整数s,表示这门课的分数.(0 ≤ s ≤ 100)输出如果成绩合格,输出字母P,否者输出字母F。
样例输入样例输出3. 简单排序依次输入3个整数a、b、c,将他们从小到大的顺序输出。
时间限制:1000内存限制:65536输入一行3个整数a、b、c,以空格分隔。
0 < a,b,c < 108输出一行3个整数,即将a、b、c从小到大排序的3个整数,整数之间以一个空格分隔。
样例输入样例输出4.数字求和给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?时间限制:3000内存限制:65536输入输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。
输出输出一行,给出一个正整数,是5个数中小于a的数的和。
样例输入样例输出5. 数1的个数给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。
例如当n=2时,写下1,2。
这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。
这样出现了5个“1”。
时间限制:1000内存限制:65536输入正整数n。
1 <= n <= 10000。
输出一个正整数,即“1”的个数。
样例输入样例输出参考程序1. 指定顺序输出答案:#include<stdio.h>int main(){int a = 0;int b = 0;int c = 0;scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);printf("%d %d %d",c,a,b);return 0;}2. 成绩判定#include<stdio.h>int main(){int s = 0;scanf("%d",&s);if(s>=60){printf("P");}else{printf("F");}return 0;}3. 简单排序#include<stdio.h>int main(){int a = 0;int b = 0;int c = 0;scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);int i = 0;if(c<b){i=c;c=b;b=i;}if(b<a){i=a;a=b;b=i;}if(c<b){i=c;c=b;b=i;}printf("%d %d %d",a,b,c); return 0;}4. 数字求和#include<stdio.h>int main(){int a = 0;int sum = 0;int b = 0;scanf("%d",&a);for(int i=1;i<=5;i++){scanf("%d",&b);if(b<a){sum+=b;}}printf("%d",sum);return 0;}5. 数1的个数#include<stdio.h>int main(){int n = 0;int sum = 0;scanf("%d",&n);for(int i=1;i<=n;i++){if(i==10000){sum+=1;}if((i%10000)/1000==1){ sum+=1;}if((i%1000)/100==1){ sum+=1;}if((i%100)/10==1){ sum+=1;}if((i%10)/1==1){sum+=1;}}printf("%d",sum);return 0;}。
C语言选择题1、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将()。
——[单选题]A 生成可执行目标文件B 生成目标文件C 输出运行结果D 自动保存源文件正确答案:B2、一个C语言程序是由()——[单选题]A 一个主程序和若干子程序组成B 函数组成C 若干过程组成D 若干子程序组成正确答案:B3、C 程序的执行过程在下列说法中,▁▁▁▁▁ 是正确的。
——[单选题]A C 程序从第一个函数开始执行,直到最后一个函数结束B C 程序从第一个函数开始执行,直到主函数结束C C 程序从主函数开始执行,直到最后一个函数结束D C 程序从主函数开始执行,直到主函数结束正确答案:D4、结构化程序由三种基本结构组成,三种基本结构组成的算法——[单选题]A 可以完成任何复杂的任务B 只能完成部分复杂的任务C 只能完成符合结构化的任务D 只能完成一些简单的任务正确答案:A5、以下叙述中错误的是()——[单选题]A c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C 用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中D c语言源程序经编译后生成后缀为.obj的目标程序正确答案:A6、以下叙述中,正确的是。
——[单选题]A C语言程序总是从第一个函数开始执行B 在C语言程序中,要调用的函数必须在main()函数中定义C C语言程序总是从main()函数开始执行D C 语言程序中的main()函数必须放在程序的开始部分正确答案:C7、C 风格的注释 C 风格的注释,也称块注释或多行注释,以▁▁▁ 开始,以▁▁▁ 结束。
——[单选题]A /* 和 */B { 和 }C [ 和 ]D ( 和 )正确答案:A8、空语句仅有一个▁▁▁▁▁ 的语句称为空语句。
——[单选题]A 逗号( , )B 句号( . )C 分号( ; )D 冒号( : )正确答案:C9、c语言规定,在一个源程序中,main函数的位置()。
第5章判断题1-1C语言函数返回类型的默认定义类型是void。
(1分)T F1-2函数形参的存储单元是动态分配的。
(1分)T F1-3如果函数定义出现在函数调用之前,可以不必加函数原型声明。
(1分)T F1-4C 语言程序中可以有多个函数, 但只能有一个主函数。
(1分)T F1-5局部变量如果没有指定初值,则其初值不确定。
(1分)T F1-6C语言中,通过函数调用只能获得一个返回值。
(1分)T F1-7函数的实参和形参都可以是变量、常量和表达式。
(1分)T F1-8按照C语言的规定,在参数传递过程中,既可以将实参的值传递给形参,也可以将形参的值传递给实参,这种参数传递是双向的。
(1分)T F1-9按照C语言的规定,实参和形参的命名不得重复。
(1分)T F1-10一个函数定义中可以完整地包含另一个函数的定义。
(1分)T F1-11函数调用得到的值,可以作为另一次函数调用时的参数。
(1分)1-12c语言每个函数的返回值都是int型的。
(1分)T F1-13C语言在函数调用时,若形参实参都是普通变量,实参和形参可以共用存储单元。
(1分)T F1-14函数的形参都属于全局变量。
(1分)T F1-15实参向形参进行数值传递时,数值传递的方向是单向的,即形参变量值的改变不影响实参变量的值。
(1分)T F1-16全局变量只能定义在程序的最前面,即第一个函数的前面。
(1分)T F1-17全局变量与局部变量的作用范围相同,不允许它们同名。
(1分)T F1-18为了便于计算机存储管理,C语言把保存所有变量的数据区,分成动态存储区和静态存储区,静态局部变量被存放在动态存储区。
(1分)T F1-19自动变量如果没有赋值,其值被自动赋为0。
(1分)T F1-20静态局部变量如果没有赋值,其存储单元中将是随机值。
(1分)T F单选题2-1C语言中函数返回值的类型是由()决定的。
(1分)A.B.调用该函数的主调函数的类型C.调用函数时临时决定D.定义函数时所指定的函数类型2-2在一个被调用函数中,关于return 语句使用的描述,错误的是()。
知识点编号题型题干选项A 1-1单选____是中央处理器的简称CPU1-1单选"Intel® Core™ i7-3537U Processor (4M Cache, up to3.10 GHz)"中"i7-3537U"是指____CPU的型号1-1单选Intel® Core™ i7-3537U Processor (4M Cache, up to3.10 GHz)中"3.10 GHz"是指____CPU的型号1-1单选在微型计算机中,微处理器的主要功能是进行____逻辑运算1-1单选计算机硬件系统主要包括存储器、输入设备、输出设备和____中央处理器1-1单选多核CPU各内核之间通过____共享数据内存1-1单选运算器虽由许多部件组成,但核心部分是____.数据总线1-1单选CPU主要包括____.控制器1-1单选“冯•诺依曼计算机”的体系结构主要分为____五大组成外部存储器、内部存储器、CPU、显示、打印1-2单选下列____属于应用软件。
操作系统1-2单选计算机中的指令执行过程分为取出指令、____和执行指令三个阶段。
显示指令1-2单选一条计算机指令中规定其执行功能的部分称为____。
源地址码1-2单选下列描述中正确的是程序就是软件1-3单选计算机的应用领域可大致分为6个方面,下列选项中属于这几项的是____。
计算机辅助教学、专家系统、人工智能1-3单选CAI是____的缩写。
计算机辅助设计1-3单选CAM是____的缩写。
计算机辅助设计1-3单选在信息时代,计算机的应用非常广泛,主要有如下几大领域:科学计算、信息处理、过程控制、计算机辅助工程、家庭生活和军事应用1-3单选当前气象预报已广泛采用数值预报方法,这种预报方法会涉及计算机应用中的____。
科学计算和信息处理1-3单选计算机的应用原则上分为____两大类。
C#试题库(这个题太多,只是为了方便看前半部分的课后题及解答,貌似有几个答案和老师讲的不一样,仅供参考)计算机高级语言部分一选择题(1)以下不属于.NET编程语言的是。
(A)A.Java B.C# C.VC.NET D.VB.NET(2)C#语言经编译后得到的是。
(D)A.扩编指令B.机器指令C.本机指令D.Microsoft中间语言指令(3)C#程序的执行过程是。
(D)A.从程序的第一个方法开始,到最后个方法结束B.从程序的Main方法开始,到最后一个方法结束C.从程序的第一个方法开始,到Main方法结束D.从程序的Main方法开始,到Main方法结束(4)Console标准的输入和输出设备分别是和。
(A C)A.键盘B鼠标C.屏幕D.打印机(5)以下属于c#简单值数据类型的有。
(AC)A.int类型B.int[]类型C.char类型D.枚举类型(6)要使用变量age来存储人的年龄,则将其声明为类型最为适合。
(B) A,sbyte B.byte C.int D.float(7)以下数组声明语句中,不正确的有。
(BC)A.int [] a;B.int a [] = new int[2]C.int [] a == {1,3};D.int [] a = int [] {1,3};(8)以下多维数组声明语句中,不正确的有。
(C)A.int[,]a = new int[2,3];B.int[,] a = {{1,2,3}};C.int[2,3] a = new int[2,3];D.int[,] a = {{1,2,3},{2,3}};(9)若多维数组a有4行3列,那么数组中第10个元素的写法为。
(C) A.a[10] B.a[2,1] C.a[3,0] D.a[4,1](10)以下赋值语句中,正确的有。
(B)A.short X = 50000;B.ushort Y= 50000;C.long X =1000;int Y=x;D.double x=20;decimal Y=x;(11)以下拆箱转换语句中,正确的有。
一、类和对象1.类数据成员的访问属性有公有、私有和保护三种,其中,私有数据成员只能由该类的成员函数来访问。
2.类中成员的访问权限有public、private protected三种。
3.与普通成员函数相比,构造函数主要有这么几个特点:① 构造函数名必须与类名相同;② 构造函数没有返回值,任何类型;③ 构造函数可以有多个,它们之间可以通过参数的类型,个数来区分,这被称为构造函数的重载。
4.在建立每个对象的过程中,系统将自动调用该类的构造函数使其初始化。
5.当对象被创立后,它的每个成员函数中都含有一个由系统自动生成的隐含的指针,即t his指针。
6.面向对象程序设计有四大特征,它们是抽象,封装,继承,多态性。
7. 在类的对象被撤销的时候,系统会自动调用的函数是析构函数。
二、继承与派生1.基类的私有数据不能被派生类的成员访问,基类的公有成员在派生类中的性质和继承的性质一样,而基类的保护成员在私有继承时,在派生类中称为私有成员,而在公有和保护继承时,在派生类中仍为保护成员。
2.当一个派生类以public方式继承自一个基类时,基类的public成员为派生类的public成员,protected成员成为派生类的protected 成员,对private成员那么不可访问。
3.在继承机制下,派生类,基类和派生类对象成员都存在时,当对象创立时,编译系统先执行基类的构造函数,然后才执行派生类对象的构造函数,最后执行派生类的构造函数。
4.在继承机制下,当对象消亡时,编译系统先执行派生类的析构函数,然后才执行派生类对象的析构函数,最后执行基类的析构函数。
5.一个派生类只有一个直接基类时称为但继承,有多个直接基类时称为多重继承。
三、多态、虚函数与运算符重载1.分别写出类A的单目运算符〞++〞的前缀方式和后缀方式的友元函数重载一般形式:fri end operator++(), friend operator++(int)。
c 考试试题及答案c 考试试题及答案近年来,c 考试已经成为许多学生备考的焦点。
这一考试对于学生的能力和知识广度有着较高的要求,因此备考过程中,对于试题和答案的准备显得尤为重要。
本文将就 c 考试试题及答案这一主题进行探讨。
首先,我们来了解一下 c 考试的试题类型。
c 考试主要包括选择题、填空题、简答题和论述题。
选择题是考察学生对知识点的掌握程度,要求学生从给出的选项中选择正确答案。
填空题则要求学生根据题目提供的提示词汇填写正确的答案。
简答题和论述题则要求学生对所学的知识进行较为深入的思考和阐述。
接下来,我们来看一些常见的 c 考试试题及答案。
一、选择题1. 下列哪个选项是正确的?A. AB. BC. CD. D答案:D2. 下列哪个选项是错误的?A. AB. BC. CD. D答案:B二、填空题1. 中国的首都是_______。
答案:北京2. 世界上最高的山峰是_______。
答案:珠穆朗玛峰三、简答题1. 请简述人类的进化过程。
答案:人类的进化经历了从直立行走到使用工具的过程,逐渐形成了现代人类的特征。
2. 请简要介绍中国的四大发明。
答案:中国的四大发明分别是造纸术、印刷术、火药和指南针,对人类文明的发展起到了重要的推动作用。
四、论述题请论述科技对人类社会的影响。
答案:科技的发展对人类社会产生了深远的影响。
它改变了人们的生活方式,提高了生产效率,促进了经济的发展。
同时,科技也带来了一些问题,如信息安全、环境污染等,需要我们加以解决。
通过以上试题及答案的例子,我们可以看到,备考 c 考试需要学生对各个学科的知识点进行全面的掌握和理解。
在备考过程中,学生应该注重对知识点的积累和理解,同时也要注重对试题类型的熟悉和练习。
在备考过程中,学生还可以通过参加模拟考试来提高自己的应试能力。
模拟考试可以帮助学生熟悉考试的时间限制和试题类型,同时也可以帮助学生发现自己的薄弱环节,有针对性地进行复习和提高。
总之,备考 c 考试需要学生全面掌握各个学科的知识点,熟悉各种试题类型,并进行有针对性的练习和复习。
C++_题集(CC++试题和部分答案).txt人永远不知道谁哪次不经意的跟你说了再见之后就真的再也不见了。
一分钟有多长?这要看你是蹲在厕所里面,还是等在厕所外面……CC++ 题集(CC++试题和部分答案)1. 以下三条输出语句分别输出什么?[C易]char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char* str5 = "abc";const char* str6 = "abc";cout << boolalpha << ( str1==str2 ) << endl; // 输出什么?cout << boolalpha << ( str3==str4 ) << endl; // 输出什么?cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?2. 非C++内建型别 A 和 B,在哪几种情况下B能隐式转化为A?[C++中等]答:a. class B : public A { ……} // B公有继承自A,可以是间接继承的b. class B { operator A( ); } // B实现了隐式转化为A的转化c. class A { A( const B& ); } // A实现了non-explicit的参数为B(可以有其他带默认值的参数)构造函数d. A& operator= ( const A& ); // 赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一个3. 以下代码中的两个sizeof用法有问题吗?[C易]void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母{for( size_t i=0; i if( 'a'<=str[i] && str[i]<='z' )str[i] -= ('a'-'A' );}char str[] = "aBcDe";cout << "str字符长度为: " << sizeof(str)/sizeof(str[0]) << endl;UpperCase( str );cout << str << endl;4. 以下代码有什么问题?[C难]void char2Hex( char c ) // 将字符以16进制表示{char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1);char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1);cout << ch << cl << ' ';}char str[] = "I love 中国";for( size_t i=0; i char2Hex( str[i] );cout << endl;5. 以下代码有什么问题?[C++易]struct Test{Test( int ) {}Test() {}void fun() {}};void main( void ){Test a(1);a.fun();Test b();b.fun();}6. 以下代码有什么问题?[C++易]cout << (true?1:"1") << endl;7. 以下代码能够编译通过吗,为什么?[C++易] unsigned int const size1 = 2;char str1[ size1 ];unsigned int temp = 0;cin >> temp;unsigned int const size2 = temp;char str2[ size2 ];8. 以下代码中的输出语句输出0吗,为什么?[C++易] struct CLS{int m_i;CLS( int I ) : m_i(i) {}CLS(){CLS(0);}};CLS obj;cout << obj.m_i << endl;9. C++中的空类,默认产生哪些类成员函数?[C++易] 答:class Empty{public:Empty(); // 缺省构造函数Empty( const Empty& ); // 拷贝构造函数~Empty(); // 析构函数Empty& operator=( const Empty& ); // 赋值运算符Empty* operator&(); // 取址运算符const Empty* operator&() const; // 取址运算符 const};10. 以下两条输出语句分别输出什么?[C++难]float a = 1.0f;cout << (int)a << endl;cout << (int&)a << endl;cout << boolalpha << ( (int)a == (int&)a ) << endl; // 输出什么?Float b = 0.0f;cout << (int)b << endl;cout << (int&)b << endl;cout << boolalpha << ( (int)b == (int&)b ) << endl; // 输出什么?11. 以下反向遍历array数组的方法有什么错误?[STL易]vector array;array.push_back( 1 );array.push_back( 2 );array.push_back( 3 );for( vector::size_type i=array.size()-1; i>=0; --I ) // 反向遍历array数组{cout << array[i] << endl;}12. 以下代码有什么问题?[STL易]typedef vector IntArray;IntArray array;array.push_back( 1 );array.push_back( 2 );array.push_back( 2 );array.push_back( 3 );// 删除array数组中所有的2for( IntArray::iterator itor=array.begin(); itor!=array.end(); ++itor ) {if( 2 == *itor ) array.erase( itor );}13. 写一个函数,完成内存之间的拷贝。
[考虑问题是否全面]答:void* mymemcpy( void *dest, const void *src, size_t count ){char* pdest = static_cast( dest );const char* psrc = static_cast( src );if( pdest>psrc && pdest {for( size_t i=count-1; i!=-1; --I )pdest[i] = psrc[i];}else{for( size_t i=0; i pdest[i] = psrc[i];}return dest;}int main( void ){char str[] = "0123456789";mymemcpy( str+1, str+0, 9 );cout << str << endl;system( "Pause" );return 0;}本试题仅用于考查C++/C程序员的基本编程技能。
内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。
考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。
笔试时间90分钟。
请考生认真答题,切勿轻视。
一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。
(10分)提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。
例如 int 变量 n 与“零值”比较的 if 语句为:if ( n == 0 )if ( n != 0 )以此类推。
请写出 BOOL flag 与“零值”比较的 if 语句:请写出 float x 与“零值”比较的 if 语句:请写出 char *p 与“零值”比较的 if 语句:二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)char str[] = “Hello” ;char *p = str ;int n = 10;请计算sizeof (str ) =sizeof ( p ) =sizeof ( n ) =void Func ( char str[100]){请计算sizeof( str ) =}void *p = malloc( 100 );请计算sizeof ( p ) =三、简答题(25分)1、头文件中的 ifndef/define/endif 干什么用?2、#include 和 #include “filename.h”有什么区别?3、const 有什么用途?(请至少说明两种)4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?5、请简述以下两个for循环的优缺点// 第一个for (i=0; i++;){if (condition)DoSomething();elseDoOtherthing();}// 第二个if (condition){for (i=0; i++;)DoSomething();}else{for (i=0; i++;)DoOtherthing();}优点:缺点:优点:缺点:四、有关内存的思考题(20分)void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}请问运行Test函数会有什么样的结果?答:char *GetMemory(void){char p[] = "hello world";return p;}void Test(void){char *str = NULL;str = GetMemory();printf(str);}请问运行Test函数会有什么样的结果?答:Void GetMemory2(char **p, int num){*p = (char *)malloc(num);}void Test(void){char *str = NULL;GetMemory(&str, 100);strcpy(str, "hello");printf(str);}请问运行Test函数会有什么样的结果?答:void Test(void){char *str = (char *) malloc(100);strcpy(str, “hello”);free(str);if(str != NULL){strcpy(str, “world”);printf(str);}}请问运行Test函数会有什么样的结果?答:五、编写strcpy函数(10分)已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。