您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 《C语言开发入门教程》―习题答案
博学谷——让IT教学更简单,让IT学习更有效《C语言开发入门教程》习题答案第1章初识C语言一、填空题1、汇编语言、高级语言2、.c3、Stadio.h4、return5、编译、链接二、判断题1、×2、√3、×4、√5、√三、选择题1、A2、B3、C、D4、D5、B四、简答题1、printf(),该函数用于输出一行信息,可以简单理解为向控制台输出文字或符号等。printf()括号中的内容称为函数的参数,括号内可以看到输出的字符串“Hello,world\n”,其中“\n”表示换行操作,它不会输出到控制台。2、注释是对程序的某个功能或者某行代码的解释说明,它只在C语言源文件中有效,在编译时会被编译器忽略。五、编程题1、参考答案#includestdio.hvoidmain(){printf(我喜欢C语言!);getchar();//等待输入一个字符,起到让运行结果界面暂停}第2章数据类型与运算符一、填空题1、0、0x/0X2、下划线3、原码、反码、补码4、构造类型、空类型5、获取数据字节数二、判断题博学谷——让IT教学更简单,让IT学习更有效1、×2、×3、√4、×5、√三、选择题1、A、B、D2、B3、B4、C5、D四、简答题1、在C语言中根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和三目运算符,其区别与示例如下表:名称运算所需变量个数范例单目运算符1个++、--、!、sizeof、~、…双目运算符2个+、-、*、/、%、、==、…三目运算符3个?:2、在进行自增(++)和自减(--)的运算时,如果运算符(++或--)放在操作数的前面则是先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面则是先进行其他运算再进行自增或自减运算。五、编程题1、参考答案#includestdio.hvoidmain(){floata=1.5,b=2.6,h=5;floats;s=(a+b)*h;printf(梯形的面积为:%.2f\n,s);//%.2f输出小数点后2位数字getchar();}2、参考答案#includestdio.hvoidmain(){inta=3,b=4;a=a^b;b=b^a;a=a^b;printf(a=%d,b=%d\n,a,b);getchar();}第3章流程控制一、填空题1、break2、顺序3、循环博学谷——让IT教学更简单,让IT学习更有效4、if、if…else、if…elseif…else5、3二、判断题1、×2、×3、√4、×5、√三、选择题1、C2、A、C3、B、C、D4、D5、A四、简答题1、跳转语句break当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出当前循环语句,执行后面的代码continue在循环语句中,立即终止本次循环,并执行下一次循环。goto语句可以跳出外层循环,需要对外层循环添加标记,然后使用goto语句可以跳转到标记的语句处。2、for与while的相同之处都是完成一定次数的循环;其不同之处是:whie一般用于未知次数的循环;for一般用于次数已知的循环;两者声明变量的作用域不同,如果定义一个变量i,在while循环后i的值会存在,但for循环后,i的值不存在了;五、编程题1、参考答案#includestdio.hvoidmain(){intx=5;if(x%2==0)printf(%d为偶数\n,x);elseprintf(%d为奇数\n,x);getchar();}2、参考答案#includestdio.hvoidmain(){inti,sum=0;for(i=0;i100;i++)//控制i在1-100之间{if(i%2!=0)//如果是奇数sum+=i;//就加起来}printf(sum=%d\n,sum);getchar();}博学谷——让IT教学更简单,让IT学习更有效第4章函数一、填空题1、return2、有参、无参3、scanf()4、递归5、全局、局部二、判断题1、√2、×3、×4、√5、√三、选择题1、B2、D3、A、B、C4、B、C5、A、B、C四、简答题1、局部变量局部变量就是在函数内部声明的变量,它只在本函数内有效,也就是说,只能在本函数内使用它。此外,局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量就会失去作用。全局变量全局变量(包括main()函数),它不属于哪一个函数,而是属于源程序。因此全局变量可以为程序中的所有函数所共用。它的有效范围从定义处开始到源程序结束。2、外部函数可以被其他源文件调用的函数称为外部函数,在调用外部函数之前,需要在当前源文件中定义外部函数。定义外部函数的方式是在函数的返回值类型前面添加extern关键字。内部函数函数只在它的定义文件中有效,该类函数称为内部函数。在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。它不可以被别的源文件调用,只在当前源文件中有效。五、编程题1、参考答案#includestdio.hint_sum(inti){if(i==1)return1;if(i1)returni+_sum(i-1);//函数自身调用自身}voidmain(){intsum;博学谷——让IT教学更简单,让IT学习更有效sum=_sum(10);printf(sum=%d\n,sum);getchar();}2、参考答案#define_CRT_SECURE_NO_WARNINGS//scanf()函数是不安全的,调用它要关闭安全检查#includestdio.h#includestdlib.hintsum(inta,intb){returna+b;}voidmain(){inta,b,he;scanf(%d%d,&a,&b);//用户从键盘输入数据he=sum(a,b);printf(he=%d\n,he);system(pause);//包含在stdlib.h头文件中,也可以让运行结果界面暂停}第5章数组一、填空题1、集合2、首3、变量4、下标5、9二、判断题1、√2、×3、×4、×5、√三、选择题1、D2、A3、C4、A、C5、A、B、C、D四、简答题1、一维数组指的是只有一个下标的数组,其定义方式如下所示:类型说明符数组名[常量表达式];其初始化有三种方法:直接对数组中的所有元素赋值;如inti[5]={1,2,3,4,5};只对数组中的一部分元素赋值;如inti[5]={1,2,3};博学谷——让IT教学更简单,让IT学习更有效对数组全部元素赋值,但不指定长度;如inti[]={1,2,3,4};2、一维数组和二维数组区别如下一维数组只有一个下标,二维数组有两个下标;二维数组有行与列之分,一维数组则没有;赋值时一维数组下标可以略,二维数组可以省略第一个下标,第二个下标不能省略。五、编程题1、参考答案#includestdio.h#includestdlib.hint_max(inta[5])//数组作为函数参数{inti;intmax=a[0];;for(i=1;i5;i++){if(maxa[i])max=a[i];}returnmax;}voidmain(){inta[5]={3,4,6,9,13};printf(max=%d\n,_max(a));system(pause);}2、参考答案#includestdio.h#includestdlib.hvoid_sort(inta[],intn){inti,j,temp;for(i=0;in-1;i++){for(j=0;jn-i-1;j++){if(a[j]a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}博学谷——让IT教学更简单,让IT学习更有效}}}voidmain(){inti;intb[]={25,24,12,76,101,96,28};printf(排序前:);for(i=0;i7;i++)printf(%d,b[i]);_sort(b,7);//数组名作为函数参数printf(\n排序后:);for(i=0;i7;i++)printf(%d,b[i]);system(pause);}第6章指针一、填空题1、指针2、字符数3、&4、函数指针5、二级指针二、判断题1、√2、√3、×4、√5、×三、选择题1、C2、A3、B4、C5、A四、简答题1、在程序运行过程中,数据都是保存在内存中的,内存是以字节为单位的连续存储空间,每个字节都有一个编号,这个编号称为地址。变量也是有地址的,专门用于存放其他变量的地址,这种变量称为指针变量,通常简称指针。通过指针可以操作它指向的内存中的变量。取内存的地址或取内存中的值进行运算。如chararr[10],*p;p=arr;arr是大小为10的指针数组,p是指向这个数组的指针。2、数组指针是指向数组的指针,数组中存储的是统一的其他数据类型的变量;指针指向这一块内存的首地址。可以通过指针的移动来依次访问数组中的元素。指针数组是指数组中存储的是指针,数组中指针的数据类型必须一致,指针数组的定义方式与普通数组类似,只需在类型前面加上“*”,如int*arr[10];存储了10个int类型的指针。博学谷——让IT教学更简单,让IT学习更有效五、编程题1、参考答案#define_CRT_SECURE_NO_WARNINGS//scanf()函数是不安全的,调用它要关闭安全检查#includestdio.h#includestdlib.hvoidswap(int*a,int*b){inttemp;temp=*a;*a=*b;*b=temp;}voidmain(){inta,b;printf(请输入两个数:\n);scanf(%d%d,&a,&b);swap(&a,&b);printf(交换后:\n%d%d\n,a,b);system(pause);}2、参考答案#includestdio.h#includestdlib.hvoidcopystr(char*form1,char*form2){while(*form1){*form2=*form1;form2++;form1++;}*form2='\0';}voidmain(){charstr1[20]=HelloWorld;charstr2[20]=IamChinese;printf(复制前:\nstr1:%s\nstr2:%s\n,str1,str2);copystr(str1,str2);printf(复制后:\nstr1:%s\nstr2:%s\n,str1,str2);system(pause);}博学谷——让IT教学更简单,让IT学习更有效第7章字符串一、填空题1、strlen()2、换行3、b4、strcmp()5、字符串二、判断题1、×2、×3、√4、√5、×三、选择题1、A2、C3、A、C、D4、C、D5、A四、简答题1、字符串比同等字符数组多占一个字符的内存空间。2、Puts()函数接收的参数是一个字符串指针,该指针指向要输出的字符串,并且会自动在字符串末尾追加换行符‘\n’,调用成功时返回int类型的数,否则返回EOF。strcat()函数在使用前,第一个参数对应的字符数组必须要有足够的空间来容纳连接后的字符串,否则会造成缓冲区溢出。五、编程题1、参考答案#define_CRT_SECURE_NO_WARNINGS//gets()也要关闭安全检查#includestdio.h#includestdlib.h#includestring.hvoidmain(){chars1[100],s2[100];inti;printf(请输入两个字符串:\n);gets(s1);gets(s2);i=strcmp(s1,s2);if(i
本文标题:《C语言开发入门教程》―习题答案
链接地址:https://www.777doc.com/doc-3772184 .html