电大本科C语言程序设计A期末考试试题及答案_第1页
电大本科C语言程序设计A期末考试试题及答案_第2页
电大本科C语言程序设计A期末考试试题及答案_第3页
电大本科C语言程序设计A期末考试试题及答案_第4页
电大本科C语言程序设计A期末考试试题及答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE中央广播电视大学计算机科学与技术专业C语言程序设计A课程考核说明一、考核说明《C语言程序设计》课程是全国电大系统计算机科学与技术专业(本科)的一门基础必修课程。本课程是学习数据结构、操作系统、计算机网络、数据库、软件工程等课程的先修课,在整个专业教学体系中占有非常重要的作用。本课程主要介绍C语言的基本语法规则和程序设计方法,包括C语言程序结构和上机运行程序的基本过程,各种数据类型的常量和变量的定义与表示,各种运算符和表达式的表示与应用,各种流程控制语句的定义与作用,各种常用函数的定义格式与调用方法,用户函数的定义与调用,数组、指针、结构、文件等数据类型的定义与使用,结构化和模块化的程序设计方法等内容。学习《C语言程序设计》需要理论与实践相结合,只注重书本知识是空洞的,只注重上机实践是迷茫的,必须两者结合循序渐进,通过书本知识指导实践,通过实践加深理解和吸收知识,以及运用知识解决问题的能力。现将该课程考核的有关问题说明如下:1.考核对象全国电大系统开放教育计算机科学与技术专业(本科)的学生。2.教学媒体文字主教材《C语言程序设计》任爱华主编中央广播电视大学出版社出版。录象教材20讲任爱华等主讲中央广播电视大学音像出版社出版,时间待定。IP网络课件16讲徐孝凯主讲电大在线的该课程网站点播,2008年9月。复习资料《C语言程序设计期末复习指导》中央电大教育杂志社出版发行。平时考核《C语言程序设计形成性考核册》中央电大教育杂志社出版发行。网上辅导在电大在线《C语言程序设计》课程教学网页上发表。3.命题依据本考核说明以中央电大计算机科学与技术专业《C语言程序设计》课程的教学大纲为依据编制。本考核说明是考试命题的依据。4.考核要求本课程是以掌握C语言知识并解决实际程序设计问题为目的。主要考核学生对C语言知识的掌握程度和对解决一般问题的程序设计能力。对C语言知识要在理解和应用的基础上加强记忆和掌握,不能死记硬背。本课程教学内容包括了解、理解和应用三个层次,并且逐步递进,具体含义如下:(1)了解层次:记忆C语言中的基本概念和语法规则;(2)理解层次:掌握C语言中的每个语法成分和语句的定义格式、含义及作用;(3)应用层次:利用C语言,结合实际解决问题的需要,能够分析和编写程序。5.命题原则(1)在教学大纲和考核说明所规定的知识范围内命题。在教学知识范围之内,需要灵活运用才能够解决问题的试题不属于超纲。(2)试题的取材要求覆盖面广、区分度高。(3)试题兼顾各个能力层次,了解和理解约占40%,应用约占60%。(4)试题的难易程度和题量适当,按难易程度分为四个层次:容易占20%,较易占40%,较难占30%,难占10%。题量安排以平时能够独立完成作业者,能在规定的考试时间内做完并有一定时间检查为原则。6.试题题型选择:根据题意,从四种可选择的答案中选择合适的一种答案。填空:根据题意,在画有横线或空白括号内填写合适内容。写出程序运行结果:根据所给的C语言程序,写出运行后的输出结果。指出程序或函数功能:根据所给的C语言程序或函数,指出运行程序或进行函数调用时所能实现的功能。编写程序或函数:根据所给出的题目要求,编写出相应的程序或函数模块。7.考核形式:本课程考核采用终结性考试与形成性考核相结合的方式。形成性考核分为两种,一种视形成性考核册作业完成情况和所规定的上机实验完成情况而定,占总成绩的20%;另一种为省级电大统一命题和组织的期末上机考核,占总成绩的10%,要求完成一个带有多个程序文件的程序项目的编写(或修改)并上机运行通过,上机考核时限为60分钟。形成性考核成绩由省级电大考核和确认。终结性考试采用书面和闭卷方式,考试成绩占总成绩的70%,由中央电大统一命题和考试时间,答卷时限为90分钟。总成绩满分为100分,合成成绩达到60及以上分数者可获得该课程规定的4学分,否则不获得该课程学分。第二部分考核内容及要求第一章C语言概述考核内容(知识点):1.程序、程序文件和函数的概念及其相互之间的关系。2.函数的定义格式和作用,主函数的特殊地位和作用。3.C语言简单语句和复合语句的语法格式。4.#include预处理命令的格式与作用。5.头文件的文件名格式、在程序中的使用方法和作用。6.程序中两种注释标记的写法和作用。7.标准输出函数printf()和标准输入函数scanf()的定义格式和具体应用。8.C语言程序文件名、编译后生成的目标文件名和连接后生成的可执行文件名的命名规则,以及上机输入、编辑、编译、连接和运行程序的过程。考核要求:要求了解和理解以上内容。第二章数据类型和表达式重点考核的内容(知识点):1.C语言中的数据类型的分类。2.各种整数类型的关键字表示,存储空间的大小和值域范围。3.整型变量的定义和初始化,十进制整型常量的表示。4.字符类型的关键字表示,存储空间的大小和值域范围;字符型常量的表示,回车、换行、单引号、双引号、反斜线、空字符等特殊字符的表示。5.字符型变量的定义和初始化,字符型与整型的关系。6.枚举的概念,枚举类型的定义,枚举变量的定义和初始化,枚举常量与整型常量的对应关系。7.各种实数类型的关键字表示,存储空间的大小和有效位数。8.单精度和双精度实数的定点表示和浮点(科学)表示,实型变量的定义和初始化。9.加、减、乘、除、取余、赋值、增1、减1、取数据存储长度等算术运算符的表示、含义、运算对象个数和运算优先级。10.关系运算符的定义和关系表达式的计算,逻辑运算符的定义与逻辑表达式的计算,根据任意表达式的值判断其逻辑值的方法。一般考核的内容(知识点):1.整型常量的八进制和十六进制表示。2.符号常量的两种定义方法,它们之间的区别。3.位操作符、复合赋值操作符的含义与使用。4.求关系或逻辑表达式的相反表达式的方法。考核要求:理解和掌握以上重点考核的内容,了解和理解以上一般考核内容。第三章流程控制语句考核内容(知识点):1.C语言程序中的顺序、分支和循环这三种基本结构,每种结构的执行过程。2.简单if语句、带else子句的if语句、多分支结构的if语句的定义格式、执行过程和在处理问题中的具体应用。3.switch语句的定义格式、执行过程和在处理问题中的具体应用。4.if语句与switch语句之间的功能比较,if语句与switch语句之间的转换。5.for循环、while循环和do-while循环的定义格式、执行过程和在处理问题中的具体应用。6.三种循环结构不同特点。7.Break语句在switch语句和各种循环语句中的作用,continue语句在各种循环语句中的作用。8.goto语句和return语句的定义格式和功能。考核要求:理解和掌握本章的所有内容,并能够灵活应用。第四章数组和字符串考核内容(知识点):1.一维数组的含义、定义格式及初始化格式。2.数组长度、数组元素、元素下标的含义,访问数组元素的语法格式,下标运算符的操作对象和操作结果。3.数组元素的下标变化范围,数组元素所占存储空间大小和整个数组所占存储空间大小的计算,各元素对应存储空间的排列情况,每个元素的存储地址的计算。4.利用一维数组存储数据,按元素值的升序或降序排列数据,按给定条件或功能对数组元素依次进行访问和处理。5.二维数组的含义、定义格式及初始化格式。6.二维数组的行数和列数的概念,数组长度(即所含元素个数)的计算。7.访问二维数组元素的语法格式,每个下标运算符的操作对象和操作结果。8.二维数组中的所有元素在存储空间中的排列情况,每个元素的存储地址的计算。9.利用二维数组存储矩阵数据,按给定条件或功能对数组元素依次进行访问和处理。10.字符串常量的定义格式,字符串的存储格式,字符串长度的概念。11.一维字符数组、二维字符数组与字符串之间的关系,一维字符数组与二维字符数组的初始化。12.strlen、strcpy、strcmp、strcat等字符串函数的声明格式及功能。13.利用typedef语句定义数据类型的方法。考核要求:了解和理解一维数组、二维数组和字符串的概念的使用方法,会利用它们存储和处理数据。第五章指针考核内容(知识点):1.指针的概念,指针变量的定义和初始化。2.指针赋值(=)、取对象(变量)地址(&)、访问指针所指对象(*)、指针比较(==、!=、>、<等)、指针算术运算(+、-、+=等)、指针增1或减1(++、--)等各种运算的含义和使用。3.数组名的指针含义。4.一维数组元素的下标访问方式与指针访问方式及其之间的转换。5.二维数组元素的下标访问方式与指针访问方式及其之间的转换。6.动态存储分配函数malloc()和calloc()以及动态存储空间释放函数free()的定义格式与调用方法。考核要求:理解指针的概念,掌握利用指针访问简单数据和数组元素的方法,掌握进行动态存储分配与释放的方法。第六章函数考核内容(知识点):1.函数的定义格式。2.函数调用表达式的语法格式及执行过程。3.函数定义中形参变量的作用及实虚参数结合的过程。5.函数声明(原型)语句的定义格式及作用。6.形参为一维数组或二维数组时的说明格式,调用时数组参数传递的过程。7.变量的作用域的概念和含义;系统对全局变量、static变量、局部变量的建立和初始化过程。8.函数的递归调用的概念和递归函数的具体执行过程。9.头文件在程序文件中的位置和作用。考核要求:掌握用户自定义函数的定义、声明与调用方法,掌握函数调用中一般参数、指针参数、数组参数的传递,以及函数体执行和返回的过程。第七章结构与联合考核内容(知识点):1.结构的概念,结构类型的定义格式,结构类型的声明(即不完整定义)格式。2.结构对象(变量)的各种定义格式和初始化,结构大小的计算,结构对象和结构数组对象的动态分配和初始化。3.结构赋值,结构成员的直接访问和间接访问,利用结构数组保存和处理数据。4.结构和结构指针作为函数参数和返回值类型的具体应用。5.链表的概念,链表中结点的结构,链表的建立和遍历的方法和算法。6.联合的概念,联合类型的定义格式,联合对象的定义和初始化,联合的存储结构及大小的计算,匿名联合的特点。考核要求:理解和掌握结构和联合类型的特点以及数据成员的访问方法,了解和理解链表中结点的结构和建立与访问链表的方法,以及结构与联合嵌套定义的概念。第八章文件考核内容(知识点):1.数据文件的概念。2.文件的打开和关闭方法。3.文件的各种访问方式的表示。4.对字符文件进行的输入和输出数据的方法。5.对字节文件进行的输入和输出数据的方法。考核要求:了解和理解文件的有关概念和访问方式,会利用字符或字节文件保存和处理数据。第三部分模拟考核试题及解答一、选择题1.由C语言源程序文件编译而成的目标文件的缺省扩展名为(C)。A.cppB.exeC.objD.C2.C语言程序的基本模块为(D)。A.表达式B.标识符C.语句D.函数3.设x和y均为逻辑值,则x||y为假的条件是(C)。A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假4.x>0||y==5的相反表达式为(B)。A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==55.枚举类型中的每个枚举常量的值都是一个(A)。A.整数B.浮点数C.字符D.逻辑值6.循环体至少被执行一次的语句为(C)循环语句。A.forB.whileC.do-whileD.任一种7.循环语句“for(inti=0;i<n;i++)S;”中循环体S被执行的次数为(C)。A.1B.n-1C.nD.n+18.在下面的while循环语句中,其循环体被执行的次数为(C)。inti=0,s=0;while(s<20){i++;s+=i;}A.4B.5C.6D.79.在下面的字符数组定义中,(D)语句有语法错误。A.chara[20]=“abcdefg”;B.chara[]=“x+y=55.”;C.chara[15]={‘1’,‘2’};D.chara[10]=’10.若定义了函数double*function(),则返回值类型为(B)。A.实数型B.实数指针型C.函数指针型D.数组型11.若用数组名作为函数调用的实参,传递给形参的是(A)。A.数组的首地址B.数组中第一个元素的值C.数组中全部元素的值D.数组元素的个数12.预处理命令在程序中都是以(B)符号开头的。A.*B.#C.&D.@13.假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大(C)个字节。A.4B.8C.16D.3214.下列给字符数组赋初值时,正确的是(A)。A.chars1[]="abcdef";B.chars2[4]="abcd";C.chars3[2][3]={"abc","xyz"};D.chars4[4][]={'a','x','s','t'};15.变量s已定义为"char*s="Heollworld!";",要使变量p指向s所指向的同一个字符串,则应定义为(A)。A.char*p=s;B.char*p=&s;C.char*p;p=*s;D.char*p;p=&s;16.要使p指向二维整型数组a[10][20],p应定义为(D)。A.int*p=a;B.int**p=a;C.int*p[20]=a;D.int(*p)[20]=a;17.标准输入设备的文件流标识符是(A)。A.stdinB.stdoutC.stderrD.stdio18.若要以读/写操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为(C)。A."r+"B."ab+"C."rb+"D."wb+"二、填空题1.单行或多行注释的开始标记符为/*。2.C语言程序中所有预处理命令均以#字符开头。3.使用#include命令可以包含一个头文件,也可以包含一个程序文件。4.用于从键盘上变为变量输入值得标准输入函数是sanf()。5.执行“printf("%s%s%d","wei","rong",18);”语句后得到的输出结果为weirong18。6.十进制数25表示成符合C语言规则的八进制数为031。7.执行“printf("%c",'A'+2);”语句后得到的输出结果为C。8.假定一个枚举类型的定义为“enumRA{ab,ac,ad,ae};”,则ac值为1。9.short类型的大小为2个字节。10.double类型的大小为8个字节。11.十进制数3.26f的类型为float12.执行“int=45,y=13;printf(“%d”,x/y);”语句序列后得到的输出结果为3。13.假定y=10,则表达式++y*3的值为33。14.表达式x=x+y表示成复合赋值表达式为x+y=y。15.关系表达式(x==0)的等价表达式为(!x)。16.假定不允许使用逻辑非操作符,则逻辑表达式x>3&&x<10的相反表达式为x<=3||x>=10。17.若x=5,y=10,则x!=y的逻辑值为1。18.假定x=5,则执行“inta=(!X?10:20);”语句后a的值为20。19.在if语句中,每个else关键字与它前面同层次并且最接近的if关键字相配套。20.若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行11次后正常结束。21.当在程序中执行到contioue语句时,将结束所在循环语句中循环体的一次执行。22.假定二维数组的定义为“chara[3][5];”,则该数组所含元素的个数为15。23.假定二维数组的定义为“chara[M][N];”,则该数组所占存储空间的字节数为M*N。24.执行“typedefintABC[10];”语句把ABC定义为具有10个整形元素的数组类型。25.存储字符串“a”需要占用存储器的2个字节空间。26.字符串“\’a\’xy=4\n”的长度为8。27.strlen函数用于计算一个字符串的长度。28.strcat函数用于把一个字符串连接到另一个字符串之后的存储空间中。29.函数中的形参变量的初值由调用该函数时对应的实参值决定。30.对于无返回值函数,定义函数时要用保留字void修饰函数类型。31.程序的编译是以程序文件为单位进行的。32.假定p所指向对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所指向对象的值为26。33.假定a是一个一维数组,则a[i]的指针访问方式为*(a+i)。34.假定p是一个指向整数对象的指针,则用*p表示该整数对象。35.执行int*p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为*p。36.假定一个结构类型的定义为“structC{double*a[4];intn;};”,则该类型的大小为20个字节。37.假定要动态分配一个类型为structWorker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句表达式为structWorker*r=malloc(n*sizeof(structWorker))。38.与结构成员访问表达式p->name等价的表达式是(*p).name。三、写出下列每个程序运行后的输出结果1.#include<stdio.h>voidmain(){inti,s=0;for(i=1;;i++){if(s>50)break;if(i%2==0)s+=i;}printf("i,s=%d,%d\n",i,s);//s=2+4+6+8+10+12+14=56i=15}2.#include<stdio.h>结果*****结果***************charch='*';inti,n=5;while(1){for(i=0;i<n;i++)printf("%c",ch);printf("\n");if(--n==0)break;}}3.#include<stdio.h>constintN=5;voidmain()结果111结果11122236942433 inti,p=1,s=0; for(i=1;i<N;i++){ p=p*i; s=s+p; printf("%5d%5d",i,p); printf("%5d\n",s); }}4.#include<stdio.h>voidmain(){intx=24,y=88;inti=2,p=1;do{while(x%i==0&&y%i==0){p*=i;x/=i;y/=i;}i++;}while(x>=i&&y>=i);printf("%d\n",p*x*y);}/*i=2p=2x=12y=44P=4x=6y=22P=8x=3y=11i=3i=4循环条件不成立因此循环体不执行p*x*y=8*3*11=264*/5.#include<stdio.h>voidmain(){inta[9]={36,25,48,24,55,40,18,66,20};inti,b1,b2;a[0]<=a[1]?(b1=a[0],b2=a[1]):(b1=a[1],b2=a[0]);//b1=25,b2=36for(i=2;i<9;i++)//i取2到8if(a[i]<b1){b2=b1;b1=a[i];}//注意循环体elseif(a[i]<b2)b2=a[i];printf("%d%d\n",b1,b2);}分析i=2a[2]=48b1=25b2=36i=3a[3]=24b2=25b1=24i=4a[4]=55b2=25b1=24i=5a[5]=44b1=25b1=24i=6a[6]=18b2=24b1=18i=7a[7]=66b2=24b1=18i=8a[8]=20b2=20b1=18结果18206.#include<stdio.h>voidmain(){inta[12]={76,63,54,62,40,75,80,92,77,84,44,73}; intb[4]={60,70,90,101}; intc[4]={0}; inti,j; for(i=0;i<12;i++){ j=0; while(a[i]>=b[j])j++; c[j]++;结果3261结果3261 for(i=0;i<4;i++) printf("%d",c[i]); printf("\n");}7.#include<stdio.h>voidmain(){inta=10,b=20;printf("%d%d\n",a,b);{intb=a+25;//注意局部变量b的作用域a*=4;printf("%d%d\n",a,b);}printf("%d%d\n",a,b);}结果1020403540208.#include<stdio.h>voidSelectSort(inta[],intn){inti,j,k,x;for(i=1;i<n;i++){//进行n-1次选择和交换k=i-1;for(j=i;j<n;j++)if(a[j]<a[k])k=j;x=a[i-1];a[i-1]=a[k];a[k]=x;}}voidmain(){inti;inta[6]={20,15,32,47,36,28};SelectSort(a,6);for(i=0;i<6;i++)printf("%d",a[i]);printf("\n");}结果:1520283236479.#include<stdio.h>voidmain(){inta[8]={4,8,12,16,20,24,28,32}; int*p=a; do{ printf("%d",*p); p+=2; }while(p<a+8); printf("\n"); }结果:412202810.#include<stdio.h>voidLE(int*a,int*b){intx=*a;*a=*b;*b=x;结果:结果:15262615voidmain(){intx=15,y=26;printf("%d%d\n",x,y);LE(&x,&y);printf("%d%d\n",x,y);}11.#include<stdio.h>#include<string.h>structWorker{charname[15];//姓名intage;//年龄floatpay;//工资};intEqual(structWorker*r1,structWorker*r2){if(strcmp(r1->name,r2->name)==0)return1;elsereturn0;}voidmain(){structWorkera[4]={{"abc",25,420},{"defa",58,638},{"ghin",49,560},{"jklt",36,375}};structWorkerx={"defa"};inti;for(i=0;i<4;i++)if(Equal(a+i,&x))break;if(i>=4)printf("没有查找所需要的记录!\n");elseprintf("%s%d%6.2f\n",a[i].name,a[i].age,a[i].pay);}结果:defa58638.00四、写出下列每个函数的功能1.intSE(intn){//n为大于等于1的整数intx,s=0;printf("输入%d个整数:",n);scanf("%d",&x);if(n==1)returnx;s=x;while(--n){scanf("%d",&x);s+=x;}returns;}函数功能:求出键盘上输入的n个整数之和并返回。2.floatFH(){ floatx,y=0,n=0; scanf("%f",%x); while(x!=-1.0){ n++;y+=x; scanf("%f",%x); } if(n--0)returny;elsereturny/n;}函数功能:求出从键盘上输出的一批常数的平均值,以-1.0作为结束输入的标志。3.#include<stdio.h>voidWA(inta[],intn){inti,k,j,x;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(a[j]>a[k])k=j;x=a[i];a[i]=a[k];a[k]=x;}}函数功能:采用选择排序的方法对数组a中的n个整数按照从大到小的次序重新排列。4.#include<stdio.h>int*LJ(inta[],intn){inti,k=0;for(i=1;i<n;i++)if(a[i]>a[k])k=i;return&a[k];}函数功能:求出数组a中n个元素的最大值元素,返回该元素的地址。5.voidQC(structStrNode*f){ while(f){ printf("%s\n",f->name); f=f->next; }}假定结构类型StrNode的定义如下:stuctStrNode{ charname[15];//字符串域 structStrNode*next;//指针域};函数功能:遍历f单链表,即从头结点开始依次输出f单链表中每个结点的值。6.intOutput(structIntNode*f){intsum=0;if(!f)return-9999;//用返回特定值-9999表示空表while(f){sum+=f->data;f=f->next;}returnsum;}假定structIntNode的类型定义为:structIntNode{intdata;//结点值域structIntNode*next;//结点指针域};函数功能:对于以表头指针为f的链表,求出并返回所有结点中data域的值之和。7.intwr4(FILE*fptr){charch;intc=0;fseek(fptr,0,SEEK_SET);while(1){ch=fgetc(fptr);if(ch!=EOF)c++;elsebreak;}returnc;}函数功能:求出一个以fptr为文件流的所对应文件的长度,即所存字符的个数。五、根据下列每个题目要求编写程序1.编写一个函数fun(),首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上元素之和,最后返回求和结果。#include<stdio.h>doublefun(){doublea[4][4];doubles=0;inti,j;printf("输入一个4*4的数值矩阵:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%lf",&a[i][j]);for(i=0;i<4;i++)s+=a[i][i];returns;}voidmain(){printf("主对角线上元素之和是%lf\n",fun());}2.编写一个主函数,计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。#include<stdio.h>voidmain(){inti;//用i作为循环变量intp=1;//用p作为累乘变量ints=1;//用s作为累加循环变量for(i=1;i<=10;i++){p*=3;s+=p;}printf("%d\n",s);}3.编写一个主函数,已知6≤a≤40,15≤b≤30,求出满足不定方程2a+5b=120的全部整数组解。如(13,20)就是其中的一组解。#include<stdio.h>voidmain(){inta,b;for(a=6;a<=40;a++)for(b=15;b<=30;b++)if(2*a+5*b==126)printf("(%d,%d)\n",a,b);}参考解答:一、选择题1.C2.D3.C4.B5.A6.C7.C8.C9.D10.B11.A12.B13.C14.A15.A16.D17.A18.C二、填空题1./*2.#3.程序4.scanf()5.weirong186.0317.C8.19.210.811.float12.313.3314.x+=y15.(!x)16.x<=3||x>=017.118.2019.if20.1121.continue22.1523.M*N24.数组25.226.827.长度28.连接29.实参30.void31.程序文件32.2633.*(a+i)34.*p35.*p36.2037.structWorker*r38.(*p).name三、写出下列每个程序运行后的输出结果1.i,s=15,562.***************3.111223369424334.2645.18206.32617.1020403540208.1520283236479.412202810.1526261511.defa58638.00四、写出下列每个函数的功能1.求出从键盘上输入的n个整数之和并返回。2.求出从键盘上输出的一批常数的平均值,以-1.0作为结束输入的标志。3.采用选择排序的方法对数组a中的n个整数按照从大到小的次序重新排列。4.求出数组a中n个元素的最大值元素,返回该元素的地址。5.遍历f单链表,即从头结点开始依次输出f单链表中每个结点的值。6.对于以表头指针为f的链表,求出并返回所有结点中data域的值之和。7.求出一个以fptr为文件流的所对应文件的长度,即所存字符的个数。五、根据下列每个题目要求编写程序1.doublefun(){doublea[4][4];doubles=0;inti,j;printf("输入一个4*4的数值矩阵:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%lf",&a[i][j]);for(i=0;i<4;i++)s+=a[i][i];returns;}voidmain(){printf("主对角线上元素之和是%lf\n",fun());}2.#include<stdio.h>voidmain(){inti;//用i作为循环变量intp=1;//用p作为累乘变量ints=1;//用s作为累加循环变量for(i=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论