大一上学期的C语言课程就要结束了,即将迎来期末考试,要从哪几方面复习呢?过来人帮帮忙!!

问答 0 36

大一上学期的C语言课程就要结束了,即将迎来期末考试,要从哪几方面复习呢?过来人帮帮忙!!,第1张

大一上学期的C语言课程就要结束了,即将迎来期末考试,要从哪几方面复习呢?过来人帮帮忙!!
导读:复习的形式是很多的,如课堂复习、单元复习、期末复习等课堂复习有三种:讲新课前,复习与之有关的旧知识,这叫做准备复习;老师讲完课后,往往要趁热打铁做点练习,这是以消化为目的的准备性复习;一节课将结束时,将本节所学内容进行梳理、归纳、小结,这是

复习的形式是很多的,如课堂复习、单元复习、期末复习等

课堂复习有三种:讲新课前,复习与之有关的旧知识,这叫做准备复习;老师讲完课后,往往要趁热打铁做点练习,这是以消化为目的的准备性复习;一节课将结束时,将本节所学内容进行梳理、归纳、小结,这是以吸收为目的的梳理性复习。

课后复习以消除遗忘、强化记忆为目标,不管老师是否留作业,都应当对照课堂笔记与教材进行比较性复习,然后再做作业。

单元复习是指完成了一章或一组内容后的复习,主要采取比较异同,寻找内在联系,筛选累积的方式进行。

期末复习主要是将平时分散学习的知识分门别类地进行分析综合,系统归类的过程。

在我们的学习生活中,最宝贵的时间是课后复习,因为防止遗忘的最有效办法就是及时复习。心理学的研究表明,记忆是有规律可循的,学过的知识如果不加以复习就会忘记,过一天会忘记一半以上,经过两天就会忘记2/3左右,以后遗忘的数量会逐渐减少。因此,学习后若不及时复习,就会大大增加复习的困难,降低学习的效率。

为了提高复习的效率,我们要在复习时采取一定的方法,从不同角度做出合理的安排。在时间安排上,课后复习至少安排两次。第一次利用课间休息时间,用脑子复习一下这节课的要点,第二次复习应安排在晚上,读一下课堂笔记,对照教科书进行。

在对复习方式的运用上,可根据自己的实际情况灵活使用。

常用的复习方法有:

(1)尝试回忆法。即在复习时,先把老师讲过的内容在头脑中回忆一遍,然后再打开书或笔记本进行对照,对回忆模糊不清或根本回忆不起来的知识再有针对性地进行复习,这样做不仅可以强化记忆,而且能够逐步养成积极思考的习惯;

(2)要点法。即在复习过程中,寻求知识中的要点,抓住要点也就抓住了问题的主干。如复习课文时,就可以把重点词、每段的关键句、承上启下的过渡句等用醒目的颜色标上记号,使这些词句作为记忆的支撑点,抓住几个关键词句,也就抓住了整篇课文的内容;

(3)比较法。即找出各科知识间的特点和共同点,通过同中求异或异中求同来强化复习效果; '

2 B

因为double型下的 12e05 ,e后面不能带有小数,只能是整数。

5 D

float y=00,a[]={20,40,60,80,100},p;

int i;

p=&a[1]; /将a[1]的地址赋给P/

for(i=0;i<3;i++) y+=(p+i); /从p开始将p,p+1,p+2地址的值

加起来/

printf("%f\n",y); /输出总合/

理解了上述的程序段,那么可以知道

在循环中,i=0时,p=40 ,y=40

i=1时,p=60 ,y=100

i=2时,p=80 ,y=180

因为是浮点形式输出,所以最终的结果是D

14A

fopen的原型是:FILE fopen(const char filename,const char

mode)

fclose的原型是:fclose(FILE fp)

fprintf的原型是:int fprintf(FILEstream, const

charformat[,argument]…); ]

fread的原型是:int fread(void buf,int size,int count,FILE

stream);

参照上述函数原型,就可以得到A是对的。其他错的。

18 C

因为在循环条件中,首先定义i=1,但是在循环体中并没有对i进行操

作,那么i就一直保持不变=1,而只要i<3那么就进入循环,所以进入

循环的条件一直都是为真,所以就一直循环,变成死循环,无法进入p

rintf那条语句了。

20 B

int p,a=10,b=1;

p=&a;a=p+b;

首先p是一个指针,p=&a这个是让p指向a,也就是说p里面存的是a的

值10;a=p+b;这句就是进行加法运算,10+1=11赋给a,所以a的最终

结果就是11

21 D

这个函数的大意就是说,假设p存放的是最小的那个数的下标,从第0

个数开始跟后面的数进行比较,如果这个数比后面的数大,那么就把

后面的那个数的下标作为最小值的下标赋给p,然后继续进行比较,直

到全部比较结束。

25 A

int k=0;

while(k=1) k++

k=1实际上就是1,也就是命题为真,所以不管怎么样进入循环体的条

件永远都成立,所以每次都可以进入循环,所以是死循环。

28D

st(char s)

{char q=s; /将字符串s的首地址赋给指针q/

while(q!='\0') q++; /如果q地址的内容不是字符串结束符的话,

那就取下一个/

return (q-s); /返回q-s的值,这个是一个int类型,实际上就是

取这个字符串的长度/

}

30B

程序跑的

31A

main()

{int i=0;

while(1)

{ printf(""); /打印一个 /

i++; /此时i=1/

if(i<3) break; /因为i=1满足if条件,所以跳出循环体/

}

printf("\n");

}

所以最终只打印了一个

32 D

#include <stdioh>

main(int argc,char argv[])

{

while(--argc) /只要参数的总数自减不为0,那么进入循环体/

printf("%s",argv[argc]); /打印出第argc个参数/

printf("\n");

}

因为argc=4,所以会进入循环体4次,--argc是先做判断再自减

33 A

^按位异或

<<左移

优先级,左移〉按位异或

按照这个规则去算就可以了

所以选择A

34 B

getchar()不能带参数。

#include<stdioh> /引用库函数/

#include<stdlibh>

#include<ctypeh>

#include<stringh>

typedef struct /定义结构体数组/

{

char num[10]; /学号/

char name[20]; /姓名/

int score; /成绩/

}Student;

Student stu[80]; /结构体数组变量/

int menu_select() /菜单函数/

{

char c;

do{

system("cls"); /运行前清屏/

printf("\t\tStudents' Grade Management System\n"); /菜单选择/

printf("\t\t | 1 Input Records |\n");

printf("\t\t | 2 Display All Records |\n");

printf("\t\t | 3 Sort |\n");

printf("\t\t | 4 Insert a Record |\n");

printf("\t\t | 5 Delete a Record |\n");

printf("\t\t | 6 Query |\n");

printf("\t\t | 7 Statistic |\n");

printf("\t\t | 8 Add Records from a Text File|\n");

printf("\t\t | 9 Write to a Text file |\n");

printf("\t\t | 0 Quit |\n");

printf("\t\t\n");

printf("\t\t\tGive your Choice(0-9):");

c=getchar(); /读入选择/

}while(c<'0'||c>'9');

return(c-'0'); /返回选择/

}

int Input(Student stud[],int n) /输入若干条记录/

{int i=0;

char sign,x[10]; /x[10]为清除多余的数据所用/

while(sign!='n'&&sign!='N') /判断/

{ printf("\t\t\tstudent's num:"); /交互输入/

scanf("\t\t\t%s",stud[n+i]num);

printf("\t\t\tstudent's name:");

scanf("\t\t\t%s",stud[n+i]name);

printf("\t\t\tstudent's score:");

scanf("\t\t\t%d",&stud[n+i]score);

gets(x); /清除多余的输入/

printf("\t\t\tany more records(Y/N)");

scanf("\t\t\t%c",&sign); /输入判断/

i++;

}

return(n+i);

}

void Display(Student stud[],int n) /显示所有记录/

{

int i;

printf("\t\t\t-----------------------------------\n"); /格式头/

printf("\t\t\tnumber name score\n");

printf("\t\t\t-----------------------------------\n");

for(i=1;i<n+1;i++) /循环输入/

{

printf("\t\t\t%-16s%-15s%d\n",stud[i-1]num,stud[i-1]name,stud[i-1]score);

if(i>1&&i%10==0) /每十个暂停/

{printf("\t\t\t-----------------------------------\n"); /格式/

printf("\t\t\t");

system("pause");

printf("\t\t\t-----------------------------------\n");

}

}

printf("\t\t\t");

system("pause");

}

void Sort_by_num(Student stud[],int n) /按学号排序/

{ int i,j,p,q,s;

char t[10];

for(i=0;i<n-1;i++) /冒泡法排序/

for(j=0;j<n-1-i;j++)

if(strcmp(stud[j]num,stud[j+1]num)>0)

{strcpy(t,stud[j+1]num);

strcpy(stud[j+1]num,stud[j]num);

strcpy(stud[j]num,t);

strcpy(t,stud[j+1]name);

strcpy(stud[j+1]name,stud[j]name);

strcpy(stud[j]name,t);

p=&stud[j+1]score;

q=&stud[j]score;

s=p;

p=q;

q=s;

}

}

int Insert_a_record(Student stud[],int n) /插入一条记录/

{char x[10]; /清除多余输入所用/

printf("\t\t\tstudent's num:"); /交互式输入/

scanf("\t\t\t%s",stud[n]num);

printf("\t\t\tstudent's name:");

scanf("\t\t\t%s",stud[n]name);

printf("\t\t\tstudent's score:");

scanf("\t\t\t%d",&stud[n]score);

gets(x);

n++;

Sort_by_num(stud,n); /调用排序函数/

printf("\t\t\tInsert Successed!\n"); /返回成功信息/

return(n);

}

int Delete_a_record(Student stud[],int n) /按姓名查找,删除一条记录/

{ char s[20];

int i=0,j;

printf("\t\t\ttell me his(her) name:"); /交互式问寻/

scanf("%s",s);

while(strcmp(stud[i]name,s)!=0&&i<n) i++; /查找判断/

if(i==n)

{ printf("\t\t\tnot find!\n"); /返回失败信息/

return(n);

}

for(j=i;j<n-1;j++) /删除操作/

{

strcpy(stud[j]num,stud[j+1]num);

strcpy(stud[j]name,stud[j+1]name);

stud[j]score=stud[j+1]score;

}

printf("\t\t\tDelete Successed!\n"); /返回成功信息/

return(n-1);

}

void Query_a_record(Student stud[],int n) /查找并显示一个记录/

{ char s[20];

int i=0;

printf("\t\t\tinput his(her) name:"); /交互式输入/

scanf("\t\t\t%s",s);

while(strcmp(stud[i]name,s)!=0&&i<n) i++; /查找判断/

if(i==n)

{ printf("\t\t\tnot find!\n"); /输入失败信息/

return;

}

printf("\t\t\this(her) number:%s\n",stud[i]num); /输出该学生信息/

printf("\t\t\this(her) score:%d\n",stud[i]score);

}

void Statistic(Student stud[],int n) /新增功能,输出统计信息/

{ int i,j=0,k=0,sum=0;

float aver; /成绩平均值/

for(i=0;i<n;i++) /循环输入判断/

{

sum+=stud[i]score;

if(stud[j]score>stud[i]score) j=i;

if(stud[k]score<stud[i]score) k=i;

}

aver=10sum/n;

printf("\t\t\tthere are %d records\n",n); /总共记录数/

printf("\t\t\tthe hignest score:\n"); /最高分/

printf("\t\t\tnumber:%s name:%s score:%d\n",stud[j]num,stud[j]name,stud[j]score);

printf("\t\t\tthe lowest score:\n"); /最低分/

printf("\t\t\tnumber:%s name:%s score:%d\n",stud[k]num,stud[k]name,stud[k]score);

printf("\t\t\tthe average score is %52f\n",aver); /平均分/

}

int AddfromText(Student stud[],int n) /从文件中读入数据/

{ int i=0,num;

FILE fp; /定义文件指针/

char filename[20]; /定义文件名/

printf("\t\t\tInput the filename:");

scanf("\t\t\t%s",filename); /输入文件名/

if((fp=fopen(filename,"rb"))==NULL) /打开文件/

{ printf("\t\t\tcann't open the file\n"); /打开失败信息/

printf("\t\t\t");

system("pause");

return(n);

}

fscanf(fp,"%d",&num); /读入总记录量/

while(i<num) /循环读入数据/

{

fscanf(fp,"%s%s%d",stud[n+i]num,stud[n+i]name,&stud[n+i]score);

i++;

}

n+=num;

fclose(fp); /关闭文件/

printf("\t\t\tSuccessed!\n");

printf("\t\t\t");

system("pause");

return(n);

}

void WritetoText(Student stud[],int n) /将所有记录写入文件/

{

int i=0;

FILE fp; /定义文件指针/

char filename[20]; /定义文件名/

printf("\t\t\tWrite Records to a Text File\n"); /输入文件名/

printf("\t\t\tInput the filename:");

scanf("\t\t\t%s",filename);

if((fp=fopen(filename,"w"))==NULL) /打开文件/

{

printf("\t\t\tcann't open the file\n");

system("pause");

return;

}

fprintf(fp,"%d\n",n); /循环写入数据/

while(i<n)

{

fprintf(fp,"%-16s%-15s%d\n",stud[i]num,stud[i]name,stud[i]score);

i++;

}

fclose(fp); /关闭文件/

printf("Successed!\n"); /返回成功信息/

}

void main() /主函数/

{

int n=0;

for(;;)

{

switch(menu_select()) /选择判断/

{

case 1:

printf("\t\t\tInput Records\n"); /输入若干条记录/

n=Input(stu,n);

break;

case 2:

printf("\t\t\tDisplay All Records\n"); /显示所有记录/

Display(stu,n);

break;

case 3:

printf("\t\t\tSort\n");

Sort_by_num(stu,n); /按学号排序/

printf("\t\t\tSort Suceessed!\n");

printf("\t\t\t");

system("pause");

break;

case 4:

printf("\t\t\tInsert a Record\n");

n=Insert_a_record(stu,n); /插入一条记录/

printf("\t\t\t");

system("pause");

break;

case 5:

printf("\t\t\tDelete a Record\n");

n=Delete_a_record(stu,n); /按姓名查找,删除一条记录/

printf("\t\t\t");

system("pause");

break;

case 6:

printf("\t\t\tQuery\n");

Query_a_record(stu,n); /查找并显示一个记录/

printf("\t\t\t");

system("pause");

break;

case 7:

printf("\t\t\tStatistic\n");

Statistic(stu,n); /新增功能,输出统计信息/

printf("\t\t\t");

system("pause");

break;

case 8:

printf("\t\t\tAdd Records from a Text File\n");

n=AddfromText(stu,n); /新增功能,输出统计信息/

break;

case 9:

printf("\t\t\tWrite to a Text file\n");

WritetoText(stu,n); /循环写入数据/

printf("\t\t\t");

system("pause");

break;

case 0:

printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /结束程序/

printf("\t\t\t");

system("pause");

exit(0);

}

}

}

#include <stdioh>

#define STU 30#define COURSE 3

void Input(long num[],int score[][COURSE],int n);

void GetSumAver(int score[][COURSE],int n,int sum[],float aver[]);

void Sort(long num[],int score[][COURSE],int n,int sum[],float aver[]);

void Print(long num[],int score[][COURSE],int n,int sum[],float aver[]);

int Search(long num[], int n, long x);

main()

{

int n, score[STU][COURSE], sum[STU], pos;

long num[STU], x;

float aver[STU];

printf("Please enter the total number of the students(n<=30):"); scanf("%d", &n); /输入参加考试的学生人数/

printf("Enter No and score as: MT EN PH\n"); Input(num, score, n); /输入学生成绩/

GetSumAver(score, n, sum, aver); /计算总分和平均分/

printf("Before sort:\n");

Print(num, score, n, sum, aver);

Sort(num, score, n, sum, aver); /排名次/

printf("After sort:\n");

Print(num, score, n, sum, aver);

printf("Please enter searching number:");

scanf("%ld", &x); /以长整型格式输入待查找学生的学号/

pos = Search(num, n, x); /名次查询/

if (pos != -1)

{

printf("position:\t NO \t MT \t EN \t PH \t SUM \t AVER\n");

printf("%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%50f\n",

pos+1,num[pos], score[pos][0],score[pos][1],

score[pos][2], sum[pos],aver[pos]);

}

else

{

printf("Not found!\n");

}

}

/ 函数功能:输入某班学生期末考试三门课程成绩

函数参数:长整型数组num,存放学生学号

整型数组score,存放学生成绩

整型变量n,存放学生人数

函数返回值:无

/

void Input(long num[], int score[][COURSE], int n)

{

int i, j;

for (i=0; i<n; i++)

{

scanf("%ld", &num[i]);

for (j=0; j<COURSE; j++)

{

scanf("%d", &score[i][j]);

}

}

}

/ 函数功能:计算每个学生的总分和平均分

函数参数: 整型数组score,存放学生成绩

整型变量n,存放学生人数

整型数组sum,计算得到的每个学生的总分

实型数组aver,计算得到的每个学生的平均分

函数返回值:无

/

void GetSumAver(int score[][COURSE], int n, int sum[], float aver[])

{

int i, j;

for (i=0; i<n; i++)

{

sum[i] = 0;

for (j=0; j<COURSE; j++)

{

sum[i] = sum[i] + score[i][j];

}

aver[i] = (float)sum[i] / COURSE;

}

}

/ 函数功能:按总分成绩由高到低排出成绩的名次

函数参数:长整型数组num,存放学生学号

整型数组score,存放学生成绩

整型变量n,存放学生人数

整型数组sum,存放每个学生的总分

实型数组aver,存放每个学生的平均分

函数返回值:无

/

void Sort(long num[],int score[][COURSE], int n, int sum[], float aver[])

{

int i, j, k, m;

int temp1;

long temp2;

float temp3;

for (i=0; i<n-1; i++)

{

k = i;

for (j=i+1; j<n; j++)

{

if (sum[j] > sum[k]) k = j;

}

if (k != i)

{

temp1 = sum[k]; sum[k] = sum[i]; sum[i] = temp1;

temp2 = num[k]; num[k] = num[i]; num[i] = temp2;

temp3 = aver[k]; aver[k] = aver[i]; aver[i] = temp3;

for (m=0; m<COURSE; m++)

{

temp1 = score[k][m];

score[k][m] = score[i][m];

score[i][m] = temp1;

}

}

}

}

/ 函数功能: 打印名次表,表格内包括学生编号、各科分数、总分和平均分

函数参数: 长整型数组num,存放学生学号

整型数组score,存放学生成绩

整型变量n,存放学生人数

整型数组sum,存放每个学生的总分

实型数组aver,存放每个学生的平均分

函数返回值:无

/

void Print(long num[], int score[][COURSE], int n,

int sum[], float aver[])

{

int i, j;

printf(" NO \t| MT \t EN \t PH \t SUM \t AVER\n");

printf("----------------------------------------------------\n");

for (i=0; i<n; i++)

{

printf("%ld\t| ", num[i]);

for (j=0; j<COURSE; j++)

{

printf("%4d\t", score[i][j]);

}

printf("%5d\t%50f\n", sum[i], aver[i]);

}

}

/ 函数功能:在学号数组中顺序查找学生的学号

函数参数:长整型数组num,存放学生学号

整型变量n,存放学生人数

长整型变量x,存放待查找学生的学号

函数返回值:找到时,返回学生学号在学号数组中的下标位置,否则返回值-1

/

int Search(long num[], int n, long x)

{

int i;

for (i=0; i<n; i++)

{

if (num[i] == x) return(i);

}

return (-1);

}