关于c语言中数的表示以下叙述正确的是
1,B
2,A
3,D
4,D
5,B
6,A
7,A
8,C
9,B
10,C
11,A
12,D
13,A
14,D
15,C
16,A
c语言课程设计 学生成绩管理系统
楼主笑纳
#include stdio.h
#include stdlib.h
#define SIZE 10 /*定义常量SIZE便于以后的修改*/
struct student /*定义一个结构体数组存放学生的信息*/
{
int number; /*学号*/
char name[20];/*名字*/
float score[3];/*分数*/
float average;/*平均分*/
}stu[SIZE];
void menu();/*调用菜单函数*/
void write();/*读入信息*/
void save();/*保存stud.dat文件函数*/
void open();/*检查是否正确保存*/
void inturn (struct student c[]);/*用于对学生的信息按平均分排序的函数*/
void save2();/*将排序后的信息存入studsort.dat文件中*/
void read();/*读取studsort.dat文件文件中第2 4 6 8 10个学生的信息*/
void main()
{
int choice;/*用户选择变量*/
printf(“*******************************************************************************\n”);
printf(“* *\n”);
printf(“* Hwadee 学生成绩文件管理 Hwadee *\n”);
printf(“* *\n”);
printf(“*******************************************************************************\n\n\n”);
printf(“******************************●●欢迎使用●●*********************************”);
system(“pause”);
while (1)
{
menu();/*调用菜单函数形成操作界面*/
printf(“请选择:\t”);
scanf(“%d”, choice);
if ( choice == 0 )
{
system(“cls”);
printf(“\n\n\t\t\t\t谢谢使用!!!);
break;
}
switch(choice) /*多重选择实现功能不同的功能*/
{
case 1:
write();
break;
case 2:
system(“cls”);
save();
break;
case 3:
system(“pause”);
system(“cls”);
open();
break;
case 4:
system(“cls”);
printf(“排序前的学生信息:\n”);
open();
inturn(stu);
save2();
break;
case 5:
system(“cls”);
read();
break;
default:
printf(“\n无此项功能!\n请重新输入\n”);
}
}
}
void menu()
{
printf(“\n1*****输入学生信息\t\t2*****将信息存入文件stud.dat中\n”);
printf(“3*****检查文件数据\t\t4*****将学生信息排序并存入文件studsort.dat中\n”);
printf(“5*****读取文件studsort.dat中的第 2 4 6 8 10个学生的信息\n”);
printf(“0*****退出系统\n\n\n”);
}
/**********************************************************************\
函数名称:
write
功能描述:
完成将学生信息写入
函数参数:
i stu
返回值:
无
模块历史:
\*********************************************************************/
void write()
{
int i;/*计数变量*/
stu[i].average = 0;/*初始化结构体成员 average*/
printf(“请你输入学生的信息\n”);
printf(“学号\t姓名\t语文\t数学\t英语\t\n”);
for (i=0; iSIZE;i++)
{
scanf(“%d\t”,stu[i].number);
if (stu[i].number == 0)/*不需输入信息时输入0即可*/
break;
scanf(“%s\t%f\t%f\t%f”,stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2]);
stu[i].average = (stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/*计算平均成绩*/
}
}
/**********************************************************************\
函数名称:
save
功能描述:
将写入的信息读入文件中
函数参数:
FILE *fp i
返回值:
无
模块历史:
\*********************************************************************/
void save()
{
FILE *fp;/*定义文件指针用于向文件读入数据*/
int i;
if ((fp=fopen(“stud.dat”,”wb”)) == NULL)
{
printf(“cannot open file\n”);
return;
}
for (i=0;iSIZE;i++)
if (fwrite(stu[i],sizeof(struct student),1,fp) != 1)
printf(“file write error\n”);
fclose(fp);
printf(“\n信息保存成功!恭喜!!\n\n”);
}
/**********************************************************************\
函数名称:
open
功能描述:
用于检查读入文件的数据是否正确
函数参数:
FILE *cp i
返回值:
无
模块历史:
\*********************************************************************/
void open()
{
int i;
FILE *cp;
cp = fopen (“stud.dat”,”rb”);
printf(“保存在stud.dat文件中的信息:\n\n”);
printf(“学号\t姓名\t数学\t语文\t英语\t平均分\n\n”);
for (i=0;iSIZE;i++)
{
fread(stu[i],sizeof(struct student),1,cp);
printf(“%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n\n\n”,stu[i].number, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average );
}
fclose (cp);
}
/**********************************************************************\
函数名称:
inturn
功能描述:
用于对结构体数组中的元素排序
函数参数:
into i,j,k
struct student temp
返回值:
无
模块历史:
\*********************************************************************/
void inturn(struct student m[])
{
int i,j,k;/*计数变量*/
struct student temp;/*中间变量 类型为结构体*/
for(i=0; iSIZE-1; i++) /*运用冒泡排序对结构体数组进行排序*/
for (j=i+1; jSIZE; j++)
{
if( m[i].average m[j].average )
{
temp = m[i];
m[i] = m[j];
m[j] = temp;
}
}
printf(“\n排序后的学生信息:\n\n”);
printf(” 学号\t姓名\t数学\t语文\t英语\t平均分\n”);
for (i=0; iSIZE; i++)
{
printf(“第%d名 %d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n\n\n”,i+1, stu[i].number, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average );
}/*输出排序后的学生信息*/
}
/**********************************************************************\
函数名称:
save2
功能描述:
将排序后的学生信息读入到另外的文件中
函数参数:
FILE *mp
i
返回值:
无
模块历史:
\*********************************************************************/
void save2()
{
FILE *mp;
int i;
if ((mp=fopen(“studsort.dat”,”wb”))==NULL)
{
printf(“cannot open file\n”);
return;
}
for (i=0;iSIZE;i++)
if (fwrite(stu[i], sizeof(struct student), 1, mp) != 1)
printf(“file write error\n”);
fclose(mp);/*读取完毕关闭文件*/
}
/**********************************************************************\
函数名称:
read
功能描述:
读出另外文件中的信息
函数参数:
FILE *tp
i
返回值:
无
模块历史:
\*********************************************************************/
void read()
{
int i=1;
FILE *tp;
tp = fopen (“studsort.dat”, “rb” );
printf(“studsort.dat文件中偶数号码学生的信息如下:\n\n”);
printf(“学号\t姓名\t数学\t语文\t英语\t平均分\n\n”);
for (i = 1;iSIZE;i += 2)
{
fseek(tp,i*sizeof(struct student),0);/*fseek函数可以根据用户所需对文件开头的偏移量来读取文件的数据。
k*sizeof(struct student)是指将位置指针移到当前位置k个字节处*/
fread(stu[i],sizeof(struct student),1,tp);
/*注意:必须使用fseek函数定位后才能根据自己所需读出数据,但是只用fseek函数不用fread,
只是把数据打印到屏幕上而并没有从文件中读取。这是一个常见性问题*/
printf(“%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n”, stu[i].number, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average );
}
fclose (tp);/*读取完毕关闭文件*/
}
★C语言 关于基础知识的一个问题
A 正确
关键字必须是完整的,不能把一个变量名或关键字用注释拆开
B、变量在使用前必须定义,但位置要注意,比如一个函数中要使用的变量不能定义在他之前的其他函数内部。
C、C语言支持一些类型的自动转换,如字符型可以自动转成整型运算,整形也可自动以转为double型运算。
D、数值中间的空格会有问题。
C语言常变量
其实,要分细了有四类:全局变量、静态全局变量、静态局部变量和局部变量。
存储类别:
全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域;
局部变量存放在内存的栈区。
作用域与生存期:
全局变量在整个工程文件内都有效,生存期与整个程序相同;
静态全局变量只在定义它的文件内有效,生存期与整个程序相同;
静态局部变量只在定义它的函数内有效,但函数返回后,该变量不会销毁,生存期与整个程序相同;
局部变量在定义它的函数内有效,函数返回后销毁。
C语言中说的字符常量中的普通常量有什么用,用在哪里?为什么会有普通常量这种东西?
字符常量:在C语言中一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。大小写字母代表不同的字常量;单引号中的空格也是;字符常量只能包含一个字符;字符常量只能用但括号括起来。比如是常用字符的ACII
‘a’ 97
‘A’ 65
常量一般指随时拿过来就可以用的,并且是不会变的.在程序中,比如char c = ‘Y’;
c是字符型变量,‘Y’是字符常量.可以赋值。