printf(\ 将这个数据输出,我们知道数据域是data,所以这个地方要填写的是t->data.
s->next=NULL; /**********found**********/
free(t);} —> s t
由于这个地方要求把最后一个节点给释放掉,所以这个地方是把t给释放掉。画个图,题目就很简单了。
****************************第七题目******************************* 代码: 分析:
void fun(char *s) { int i, j, n;
for(i=0; s[i]!='\\0'; i++)
/**********found**********/
if(s[i]>='0' && s[i]<='9') 判断一个字符是否为数字要用到逻辑与&&,这个是我上课时候强调的重点。这里我们要记住用这个方法判断字符是否为数字,请大家记住。 { n=0;
/**********found**********/
while(s[i+1+n]!= ?\\0?) n++; 这个地方要注意:这里是要填写到后面的字符不是为0的化,我们就将n进行自加,也就是说,到s[i]后面的某个位置当他不是为空,我们要把他往后挪。这里的n是得到要挪位的个数。 for(j=i+n+1; j>i; j--) /**********found**********/
s[j+1]= s[j]; 把前一位的s[j]往后挪一位,因为增加了一位字符*,所以要往后面挪一个位置。使得空出的位置我们写上字符*。 s[j+1]='*';
i=i+1; 跳过*这个字符的位置。 } }
****************************第八题目******************************* 代码: 分析:
#include
/**********found**********/
void fun(int (*)t[N] , int n) 从主函数可知道,传递的实参是一个二维的数组名,所以我们应该在接收的时候用树上规定的三种格式即可,这个地方一定要注意N是在前面已经预定义为了4,所以要用到我们这里的方法。其它写法见树上说的。要记住二维数组名是一个行指针,不是列指针! { int i,s;
/**********found**********/
for(i=0;i /**********found**********/ t[i][n-1-i]=s; 这个地方的填空,很简单,上课的时候我要求大家一定把两个数字进行互换给背下来,在这地方根据这个方法就可以知道填写的一定是s。(技巧解题目) }} ****************************第九题目******************************* 代码: 分析: #define N 9 int fun(int a[], int n) 函数的行参是一个数组,可以看成一个指针 { int i,j; j = 0; for (i=0; i /**********found**********/ if (a[i]%2== 0) { 判断一个数字是否为偶数,上课我们强调了是考试的重点,这里要求判断数组每个数,所以根据循环我们知道填写的应该为a[i]%2。请大家记住:判断一个数字是偶数,是a[i]%2 ==0。对2整除等于0的数字一定是偶数。 /**********found**********/ aj] = a[i]; j++; 要求当这个数组是偶数的时候,我们就要保存好,所以在这个地方,我们要填上的是a[j].注意到这个地方,我们的j是从0开始的,每次填写一个后,我们的j++一次,这样是便于存放下一个偶数。 } /**********found**********/ return j; 这里返回的是偶数的个数,所以我们填写的是j,这个地方不是j+1或者是j-1,我们可以通过代入法进行验算。由于上面每次存放一个偶数都要进行一次j++,所以,即使后面没有偶数了,我们也进行了j++,所以就直接就是填写j。(上机常考题目)如果是只有一个偶数,那么我们就知道也要执行一次j+,j从0变成了1,正好是返回一个。 } ****************************第十题目***************************** 代码: 分析: #define N 9 int fun(int a[], int n) { int i,j; j = 0; for (i=0; i /**********found**********/ if (a[i]%2== 1) 这个题目非常的简单,和前面一个题目很类似。首先判断一个数字是否为奇数,那么很快我们就知道判断一个数字是否为奇数是,a[i]%2==1就是奇数了。 { /**********found**********/ a[j] = a[i]; j++; 如果是奇数就要把他给存放起来,这个地方j是初始化为0,每次存放一个奇数,我们就要将j进行一次自加,便于存放下一个奇数。 } /**********found**********/ return j; j就是我们要返回的奇数的个数,由于,每次存放一个奇数后,我们都会进行j++,所以在返回的时候就不用返回j+1了。 } ****************************第十一题目**************************** 代码: 分析: #include /**********found**********/ for(i=0; s[i] !=NULL; i++) 循环的时候,第二个是判断的条件,这个地方要判断字符是否已经到字符串的末尾了,所以我们可以看到这个地方我们函数的第一个行参是 char *s,这个地方指针可以当作数组使用,所以这个地方可以填写的是s[i]活着是*(s+i) /**********found**********/ if(s[i]>='0'&&s[i]<= '9' ) n++; 判断一个字符是否为数字,是要求大家一定牢牢记住的,这个地方不再多讲。 /**********found**********/ return *t = n; 这个return后面填写的语句是比较有特色的,是一个赋值语句,题目要求把字符窜中数字的个数放到指针参数t中,所以应该填写这个答案,由于调用函数第二个传递的是地址,所以我们接收的时候采用的是指针t。 } ****************************第十二题目**************************** 代码: 分析: #include int year,month,day ; }STU; /**********found**********/ STU fun(STU *std, char *num) 返回的类型应该是结构体类型,这个地方是常考的题型,类似于返回int类型等,只是把结构体类型看成一个类型! { int i; STU a={\ for (i=0; i /**********found**********/ if( strcmp(std[i].num,num)==0 ) 要判断每个结构体元素的的num是否与我们指定的num相同。要注意我们传递过来的是结构体的数字,所以每个元素都要判断。 /**********found**********/ return (std[i]); 由于该函数要返回的是一个结构体变量,所以要把这个符合要求的结构体元素返回,所以这个地方要返回的是结构体名称。 return a; } ****************************第十三题目**************************** 代码: 分析:(文件的考察) /**********found**********/ void WriteText(FILE *fw) 这个地方是填写的是文件指针,这个填空题目很单一话,只要求大家认真的记住这个文件指针。 { char str[81]; printf(\ gets(str); while(strcmp(str,\/**********found**********/ fputs(str,fw); fputs(\把输入的内容写道了文件当中。这个也是要求大家记住的。看网上课堂详细讲了这几个文件的函数处理的方法。 gets(str); } } void ReadText(FILE *fr) { char str[81]; printf(\ fgets(str,81,fr); while( !feof(fr) ) { /**********found**********/ printf(\这个是文件的读出处理,这个也是要求大家自己背的,在网上课堂中,文件中动的内容已经讲的很清楚了。 fgets(str,81,fr); } ****************************第十四题目**************************** 代码: 分析: #include void fun(int (*t)[N], int m) { int i, j; /**********found**********/ for(i=0; i t[i][j+m ]=t[i][j]; 可以通过代入法进行解题目,实际的意义是把前面的元素放到后面来进行保存,前面的元素后面会将其覆盖为0,后面的元素则是被前面的元素覆盖了。 /**********found**********/ for(j=0; j ****************************第十五题目**************************** 代码: 分析: #include double fun(double x, int n) { double f, t; int i; /**********found**********/ f = 1; 初始化是我们考试的时候的重点,我们这个题目可以看到第一个地方是初始化为1的。由于要相加的第一项是1,所以填写的是1。如果要加的第一项目是2则要填写2。注意看清楚题目。 t = -1; for (i=1; i /**********found**********/ t *= (-1)*x/i; 每次要循环加上一个数值,这个地方要注意,题目是要求一正一负,所以在这个地方是填写-1,那么累积相加的时候,一项为正,一项为负。 /**********found**********/ f += t; 每次循环的时候,要把当前项目给加进来,这个地方的t表示的是当前项。用f来保存每次累加的和。 } return f; } ****************************第十六题目**************************** 代码: 分析: #include void fun(int a[], int n) { int i, t, p; /**********found**********/ p = (n%2==0)?n/2:n/2+1; 这个是条件语句。首先大家一定要弄懂这个语 是真前假后。为真是取表达式2的数值,假取表达式3的数值。这个地方 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言最重要的知识点复习资料(3)在线全文阅读。
相关推荐: