C语言上级资料答案(解析)
第一套1、本题的考核点是结构体类型变量的定义和引用以及文件函数的应用。fopen函数的作用是打开一个文件,在fun函数中为输入打开一个二进制文件,所以第一个空填:"rb"或与此语句功能相同的语句;利用嵌套循环语句按学号从小到大排序,所以第二个空填:>s[j].sno或与此语句功能相同的语句;再用二进制方式把排序后的数据输出到指定文件中,fwrite函数的作用是往文件的当前位置写入指定字节的数据块,所以第三个空填:fwrite。2、首先,我们必须先读懂题中程序的大致意思,这是发现并改正程序中错误的重要前提。程序中的重要思想如下:1、函数fun()的功能是根据一个整型形参计算题目中的数学公式;2、由于公式中运用了除法,所以公式的最终值必须使用double型,以保持最终值的精确性。题中的第一个错误出现在函数fun()中的语句"for(i=2;i
m){m=x1+x2;x1=x2;x2=m;}returnm;}第二套1、本题的考核点是C语言中的基本算法和简单语句的使用。fun函数是用来对整数进行判断是否符合题目中规定的条件。首先对变量赋初值,n返回的是符合条件的整数的个数,因此第一个空填:0;while语句用于求出100至x(x≤999)之间的符合条件的整数个数,故第二个空填:x;由while循环语句可知第三个空是设置循环变量的步长,根据题义可知循环步长是1,因此第三个空填:t++或与此语句相同功能的语句。2、本题的考核点是C语言的一些基本常识和循环语句的使用。n从本题的要求看,如果某一个元音字母没有在字符串中出现时,程序应返回0。主函数中num[5]代表一块C编译器随机分配的内存地址,在没有对这块内存地址初始化之前,这块内存中存放着随机的数据,也有可能是1,2...等数字,因此在fun函数开始应对num数组进行初始化。fun函数的第一个for循环中,k才是循环变量,而i只是一个常量,因此"num[i]=0;"应改为"num[k]=0;"或相同作用的语句。另外,s代表的只是一个字符串的指针,把它直接当一个数据看待是没有意义的,应该把"switch(s)"语句改为"switch(*s)"语句。本评析仅供参考。3、本题的考核点是数组、循环语句。解题思路:使用循环语句将数组下标为奇数的元素与2取余,如果余数不为零则将其值存入另外一个数组中。本评析仅供参考。voidfun(char*s,chart[]){inti,slenth,n=0;slenth=strlen(s);/*统计字符串s中字符的个数*//*将字符串s中所有下标和ASCII值同时为奇数的字符复制到数组t中*/for(i=1;i