
导读:C语言国二和期末考试区别不过是出题方式不同。所考知识点都差不多,只是出题方式不同。一、C语言程序的结构 1、程序的构成,main 函数和其他函数。 2、头文件,数据说明,函数的开始和结束标志以及程序中的注释。 3、源程序的书写格式。
C语言国二和期末考试区别不过是出题方式不同。所考知识点都差不多,只是出题方式不同。
一、C语言程序的结构
1、程序的构成,main 函数和其他函数。
2、头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3、源程序的书写格式。
4、C语言的风格。
二、数据类型及其运算
1、C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2、C运算符的种类、运算优先级和结合性。
3、不同类型数据间的转换与运算。
4、C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句
1、表达式语句,空语句,复合语句。
2、输入输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计
1、 用if语句实现选择结构。
2、用switch语句实现多分支选择结构。
3、选择结构的嵌套。
五、循环结构程序设计
1、for循环结构。
2、while和 -while 循环结构。
3、continue 语句和 break 语句。
4、循环的嵌套。
六、数组的定义和引用
1、 一维数组和二维数组的定义、初始化和数组元素的引用。
2、字符串与字符数组。
七、函数
1、库函数的正确调用。
2、函数的定义方法。
3、函数的类型和返回值。
4、形式参数与实际参数,参数值的传递。
5、函数的正确调用,嵌套调用,递归调用。
6、局部变量和全局变量。
7、变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
八、编译预处理
1、宏定义和调用(不带参数的宏,带参数的宏)。
2、“文件包含”处理。
九、指针
1、地址与指针变量的概念,地址运算符与间址运算符。
2、一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。
3、用指针作函数参数。
4、返回地址值的函数。
5、指针数组,指向指针的指针。
十、结构体(即“结构”)与共同体(即“联合”)
1、用 typedef 说明一个新类型。
2、结构体和共用体类型数据的定义和成员的引用。
3、通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。
十一、位运算
1、位运算符的含义和使用。
2、简单的位运算。
#include<stdioh>
int main()
{ int n,i,s=0,x;
printf("考了几门功课?\n");
scanf("%d",&n);
printf("请输入%d门功课的成绩: \n");
for(i=0; i<n; i++)
{ scanf("%d",&x);
s+=x;
}
printf("总分是:%d\n",s);
return 0;
}
C语言期末考试可能会考查一些以下内容:
1、C语言的基本语法和程序结构,包括变量、运算符、循环、分支语句等。
2、数据类型和表达式的使用,包括整数、浮点数、字符和字符串等。
3、函数的定义和调用,包括函数的参数传递和返回值。
4、数组、指针和结构体的使用。
5、文件输入输出、命令行参数的使用。
6、C标准库函数的使用,包括字符串处理、数学函数、时间和日期等。
7、递归算法的使用。
8、内存管理和动态内存分配。
9、C语言的编译和链接流程。
C语言期末考试需要加强对基础知识的掌握,紧扣考试重点和难度,注重实践操作,并合理安排时间和注意答题规范,做到认真对待每一道题目,这样才能在考试中取得好成绩。
c语言期末考试的方法:
1、首先把这门科目系统的复习一遍,这一阶段是看书、看PPT。
确保把所有的知识点都能复习一遍,一定要尽量理解专业课中知识的原理。一般是一个结论是怎么推出来的尽量搞清楚,因为我发现如果搞清楚了,那么相应的知识点就掌握的比较牢固。
2、针对历年的期末考试题、课后习题、老师布置的作业题进行复习。
把所有的题目都过一遍。个人感觉如果把所有的题目过一遍你就会掌握到这门科目习题的窍门。因为期末题出的都是比较基础的,或者说是模板题,你把模板看的滚瓜烂熟,那考场上就能游刃有余。
3、刷题,背题。
对于c语言学科更加简单直接,直接背题,背重点概念和内容。大学很多考试会出原题的,做好前期的抱大腿工作其实就是背答案的事。
#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);
}
}
}
11都是错的。因为定义的函数是fun,而调用时却是f,通不过编译,提示未定义错误。若不计此,C是错误的,因为a[4]不是指针,而fun的形参是数组即指针;B也是错误的,因为b是二维数组而不是一维数组,类型不配。若是多选题则B、C是答案,若是单选题则是题错了。
18因为for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)中控制变量是i+=2,所以只操作了1,下一次就操作a了,可是a不在ch[i]>='0'&&ch[i]<='9'之内,循环就跳出了。
1A不对啊!指数的写法是15e2或15E+2之类,而不是1e5-2;C中是'10'不对,你见过这种写法吗?但D为什么不对呢?是多选题吗?
8D错误的。当x=0时直接报错,中止执行!































.jpg)






