文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计代码

C语言课程设计代码

C语言课程设计代码
C语言课程设计代码

课程设计

课程名称 C语言程序设计课程设计题目名称学生信息管理系统

学生学院经济管理学院

专业班级 08信管1班

学号3108006217

学生姓名李嘉宁

指导教师黄跃梅

2009年6 月15 日

目录一、课程简介

二、系统功能分析

三、系统设计

四、系统实现

五、总结

一、课程简介

1、课程设计的内容

学生信息包括:学号、姓名、年龄、性别、出生年月、地址、邮编、电话、E-mail等。设计一学生信息管理系统,使之能提供以下功能:学生信息录入功能(录入时可考虑对录入信息是否正确进行判断,学生信息用文件保存),学生信息浏览功能,查询(按学号、姓名查询),排序功能(按学号、姓名),学生信息的删除与修改。要求系统界面友好,使用方便。

2、课程设计的要求与数据

1.开发环境要求:Turbo C 3.0。

2.提交课程设计报告一份,包括以下内容:

(1)系统分析:包括设计题目、设计内容以及系统功能需求分析;

(2)系统设计:包括总体设计(主要功能模块的划分)及详细设计(各功能模块的算法设计以及对应的流程图);

(3)系统实现:包括使用的所有变量、自定义函数、结构体的说明,以及完整源程序清单,关键代码应加注释。

(4)系统运行:包括系统操作使用的简单说明,使用测试数据运行的结果。

(5)总结。包括课程设计过程中的学习体会与收获,出现的问题和解决的方法,没有完成的部分及原因,对C语言和本次课程设计的认识以及自己的建议等内容。

3.提交光盘(每班统一制作1张光盘,每人一个文件夹,文件夹名为“学号姓名”)。每人的光盘文件夹内含:

(1)任务书;

(2)源程序文件和可执行程序文件;

(3)测试用例和编译运行结果;

(4)课程设计报告电子文档。

3、课程设计应完成的工作

1.进行需求分析,将系统划分为多个模块;

2.为每个模块设计算法及流程;

3.编写代码实现各模块功能;

4.运行调试程序;

5.撰写课程设计报告。

4、应收集的资料及主要参考文献

[1] 谭浩强,《C程序设计(第三版)》, 清华大学出版社, 2005

[2] 谭浩强,《C程序设计题解与上机指导(第三版)》, 清华大学出版社, 2005

教材第11章“结构体”部分及有关习题。

二、系统功能分析

1.设计题目:学生信息管理系统

2.设计内容:

3.系统功能需求分析:

系统所具备功能:

1.建立学生信息文件,并可进行:

(1)学生学号、姓名、年龄、性别、出生年月、地址、邮编、电话、E-mail等信息的输入。

(2)对指定学生信息进行修改,删除。

(3)对指定(按学号或姓名)学生进行信息查询。

(4)按学号顺序显示所有学生信息。

(5)保存信息。

三、系统设计

1.总体设计

主要功能模块:

(1)开始界面选择,初始菜单,二级菜单。(选择结构)

(2)数据文件的打开与关闭。(fopen,fclose,save等)

(3)学生信息输入。(结构体,结构体数组指针,信息校正,数据保存)

(3)信息修改、删除。(数据的读写,fread,fwrite,链表等)

(4)学生信息查询。(结构体,循环结构,选择结构)

(5)保存信息。

2.详细设计

(1)界面

初始菜单界面

********* 欢迎使用学生信息管理系统 ********

请选择:

1.学生信息添加

2.修改或删除学生信息

3.学生信息查询

4.退出

********* 欢迎使用学生信息管理系统 ********

二级菜单

********学生信息的更改*******

1.学生信息的删除

2.学生信息的修改

0.返回主菜单

请选择(0-2)

********学生信息删除********

1.按编号删除

2.按姓名删除

0.返回主菜单

请选择(0-2)

********学生信息查询********

1.按学号进行信息查询

2.按姓名进行信息查询

0.返回主菜单

请选择(0-2)

三级菜单

********修改学生信息********

1.修改学号

2.修改年龄

3.修改性别

4.修改出生年月

5.修改地址

6.修改电话

7.修改email

8.修改邮编

0. 返回上级菜单

(2)数据结构设计

struct student

{

int num;

char name[20];

int age;

char sex[5];

char birthday[10];

char adr[20];

char mailbox[10];

char tel[10];

char email[20];

} student[N],student2[N];

(3)函数模块设计

Save函数

int save(int sum)

{

FILE *fp;

int i;

if((fp=fopen("student.txt","wt"))==NULL)

{

printf("读文件错误!\n");

return 0;

}

for(i=0;i

if(fwrite(&student[i],sizeof(struct student),1,fp)!=1)

printf("写文件错误!\n");

fclose(fp);

return i;

}

用于学生信息的存储。

函数输入――int input()

列出所需输入的数据类型,并且调用Save函数,生成新的信息文件。

文件读取――int load_file()

在程序开头时即调用,检查是否已经存在信息文件,并告知用户文件内信息。

按照编号查询信息――int search_by_num()

在二级菜单中发挥作用,以学号为标准进行信息查询。

for(i=0;i

{

if(num==student[i].num&&student[i].num!=0)

{

PRINT;

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

}

按姓名进行查询――int search_by_name()

for(i=0;i

{

if(strcmp(student[i].name,name)==0&&student[i].num!=0)

{

printf("学生%s的信息",student[i].name);

PRINT;

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

}

以姓名和学号为标准,进行学生信息排列

for(i=0;i

{

if(strcmp(student[i].name,name)==0&&student[i].num!=0)

{

printf("学生%s的信息",student[i].name);

PRINT;

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

学生信息按学号删除

int delete_by_num()

{

int delete_num=0,i,f=0;

printf("\n\n 请输入您要删除学生的学号:");

scanf("%d",delete_num);

for(i=0;i

{

if(student[i].num==delete_num)

{

student[i].num=0;

printf(" 该学生信息已删除!");

学生信息按姓名删除

int delete_by_name()

{

char delete_name[20],i,f=0;

printf("\n\n 请输入要删除学生的姓名:");

scanf("%s",&delete_name);

for(i=0;i

{

if(strcmp(student[i].name,delete_name)==0)

{tudent[i].num=0;

printf(" %s的信息已删除!",student[i].name);

学生信息修改,通过switch语句对需要指定的信息进行修改。

四、系统实现

打开程序检测是否已存在学生信息文件:

初始菜单:

学生信息添加菜单:

二级菜单:

源代码:

/*学生信息管理系统*/

#include

#include

#include

#define N 100

#define PRINT printf(" 姓名学号年龄出生年月地址邮编电话E-mail \n");

int sum=0;

struct student

{

int num;

char name[20];

int age;

char sex[5];

char birthday[10];

char adr[20];

char mailbox[10];

char tel[10];

char email[20];

} student[N],student2[N];

/*保存信息*/

int save(int sum)

{

FILE *fp;

int i;

if((fp=fopen("student.txt","wt"))==NULL)

{

printf("读文件错误!\n");

return 0;

}

for(i=0;i

if(fwrite(&student[i],sizeof(struct student),1,fp)!=1)

printf("写文件错误!\n");

fclose(fp);

return i;

}

void clear()

{

getchar();

system("cls");

}

int input()

{

int i,j,flag=1;

clear();

printf("添加学生信息,当输入学号为0时,将结束操作。\n"); printf("输入例子:\n");

printf("学号:1\n");

printf("姓名:ZhangFei\n");

printf("年龄:18\n");

printf("性别:M\n");

printf("出生年月:19891007\n");

printf("地址:Tianhe\n");

printf("邮编:510000\n");

printf("电话:12345678\n");

printf("E-mail:\n");

for(i=1;i

{

printf("第%d个学生",i);

printf("学号:");

scanf("%d",&student[i].num);

if(student[i].num==0) break;

for(j=0;j

{

if(student[j].num==student[i].num)

{

printf("学号重复,请重新输入学号:\n");

flag=0;

break;

}

} ;

if(flag==0)break;

printf("姓名:");

scanf("%s",student[i].name);

printf("年龄:");

scanf("%d",&student[i].age);

printf("性别:");

scanf("%s",student[i].sex);

printf("出生年月:");

scanf("%s",student[i].birthday);

printf("地址:");

scanf("%s",student[i].adr);

printf("邮编:");

scanf("%s",student[i].mailbox);

printf("电话:");

scanf("%s",student[i].tel);

printf("E-mail:");

scanf("%s",student[i].email);

flag=1;

}

if(flag==1)

{

printf("你所输入的学生信息已添加成功!\n"); printf("按回车键返回主菜单!\n");

}

getchar();

sum=i;

save(sum);

return i;}

/*读取信息*/

int load_file()

{

FILE *fp;

int i=0;

if((fp=fopen("student.txt","rt"))==NULL)

{

printf("尚未发现已经保存的学生信息!");

return 0;

}

while(feof(fp)!=1)

{

fread(&student[i],sizeof(struct student),1,fp);

if(student[i].num==0)

break;

else

{

i++;

sum++;

}

}

printf("已有学生信息\n");

PRINT;

for(i=0;i

{

if(student[i].num!=0)

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

}

printf(" 按回车键返回主菜单!");

fclose(fp);

return(i);

}

/*输出信息*/

int output_message()

{

int i=0;

clear();

printf("\n\n ----------------------------学生信息表--------------------------\n");

PRINT;

for(i=0;i

{

if(student[i].num!=0)

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

}

printf("按回车键返回主菜单!");

return 0;

}

/*按编号查询*/

int search_by_num()

{

int i,j=0;

int num;

clear();

printf("请输入要查询学生的编号:");

scanf("%s",&num);

for(i=0;i

{

if(num==student[i].num&&student[i].num!=0)

{

printf(" 编号为%d的学生信息",student[i].num);

PRINT;

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

}

else j++;

}

if(j==sum)

printf("编号为%d的学生不存在! ",num);

printf("\n 该生信息不存在!");

getchar();

return 0;

}

/*按姓名查询*/

int search_by_name()

{

int i,j=0;

char name[20];

clear();

printf("请输入要查询学生的姓名:");

scanf("%s",name);

for(i=0;i

{

if(strcmp(student[i].name,name)==0&&student[i].num!=0)

{

printf("学生%s的信息",student[i].name);

PRINT;

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

}

else j++;

}

if(j==sum)

printf("该学生不存在! ");

printf("按回车键返回上级菜单!");

getchar();

return 0;

}

/*学生信息查询模块*/

inquire_message()

{

int choice;

do

{

clear();

printf("\n\n\n *****学生信息查询*****\n\n");

printf(" 1.按学号查询;\n\n\n");

printf(" 2.按姓名查询;\n\n\n");

printf(" 0.返回主菜单;\n\n\n");

printf(" 请选择(0-2):");

scanf("%d",&choice);

switch(choice)

{

case 1: search_by_num();break;

case 2: search_by_name();break;

case 0: break;

}

}while(choice!=0);

return 1;

}

/*两种排序方式*/

/*按编号排序*/

sort_by_num()

{int i;

PRINT;

for(i=0;i

{

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);}

printf("按回车键返回上级菜单!");

getchar();

return 0;

}

sort_by_name()

{

int i,j=0;

char name[20];

clear();

printf("请输入要查询学生的姓名:");

scanf("%s",name);

for(i=0;i

{

if(strcmp(student[i].name,name)==0&&student[i].num!=0)

{

printf("学生%s的信息",student[i].name);

PRINT;

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

}

else j++;

}

if(j==sum)

printf("该学生不存在! ");

printf("按回车键返回上级菜单!");

getchar();

return 0;

}

/*排序模块*/

sort_message()

{

int choice;

do

{

clear();

printf("\n\n\n *****学生信息排序*****\n\n");

printf(" 1.按学号进行信息查询\n\n");

printf(" 2.按姓名进行信息查询\n\n");

printf(" 0.返回主菜单\n\n");

printf(" 请选择(0-2):");

scanf("%d",&choice);

switch(choice)

{

case 1: sort_by_num();break;

case 2: sort_by_name();break;

case 0: break;

}

}while(choice!=0);

return 1;

}

void range()

{

int i,j=0,k=0;

for(i=0;i

{

if(student[i].num!=0)

{

student2[j]=student[i];

j++;

}

else k++;

}

sum-=k;

if(k!=0)

{

for(i=0;i

{

student[i]=student2[i];

}

}

}

/*按编号删除*/

int delete_by_num()

{

int delete_num=0,i,f=0;

printf("\n\n 请输入您要删除学生的学号:");

scanf("%d",delete_num);

for(i=0;i

{

if(student[i].num==delete_num)

{

student[i].num=0;

printf(" 该学生信息已删除!");

f=1;

range();

break;

}

}

if(f==0)

printf("\n\n ******经查并无该学生信息!******\n\n"); printf("\n 按回车键返回上级菜单!");

getchar();

return 1;

}

/*按姓名删除*/

int delete_by_name()

{

char delete_name[20],i,f=0;

printf("\n\n 请输入要删除学生的姓名:");

scanf("%s",&delete_name);

for(i=0;i

{

if(strcmp(student[i].name,delete_name)==0)

{

student[i].num=0;

printf(" %s的信息已删除!",student[i].name);

f=1;

range();

break;

}

}

if(f==0)

printf("\n\n ******经查并无该学生信息!******\n\n");

printf("\n 按回车键返回上级菜单!");

getchar();

return 0;

}

/*学生信息删除模块*/

int delete_message()

{

int choice;

do

{

clear();

printf(" *****学生信息删除*****\n\n");

printf(" 1.按编号删除:\n\n");

printf(" 2.按姓名删除:\n\n");

printf(" 0.返回主菜单.\n\n");

printf(" 请选择(0-2):\n\n");

scanf("%d",&choice);

switch(choice)

{

case 1: delete_by_num();break;

case 2: delete_by_name();break;

case 0: break;

}

}while(choice!=0);

save(sum);

return 1;

}

/*学生信息的修改*/

int change(int i,int l)

{

int choice,j;

if(l==1)

{

for(j=0;j

{

if(student[j].num==i)

{

i=j;

}

}

}

do

{

clear();

printf("\n\n");

printf("%s %d %d %s %s %s %s %s %s",student[i].name,student[i].num,student[i].age,student[i].birth day,student[i].adr,student[i].mailbox,student[i].tel,student[i].email);

printf(" ********修改学生信息******** \n");

printf(" 1.修改学号:\n\n");

printf(" 2.修改年龄:\n\n");

printf(" 3.修改性别:\n\n");

printf(" 4.修改出生年月:\n\n");

printf(" 5.修改地址:\n\n");

printf(" 6.修改电话:\n\n");

printf(" 7.修改email:\n\n");

printf(" 8.修改邮编:\n\n");

printf(" 0. 返回上级菜单.\n\n");

printf(" 请选择(0-8)\n\n");

scanf("%d",&choice);

switch(choice)

{

case 1:{

printf(" 请输入学号:");

scanf("%d",student[i].num);

printf("%s的班级修改完毕!",student[i].name);

getchar();

break;

}

case 2:{

printf("请输入年龄");

scanf("%d",&student[i].age);

printf("%s的年龄修改完毕!",student[i].name);

getchar();

break;

}

case 3:{

printf("请输入性别:");

scanf("%s",student[i].sex);

printf("%s的性别修改完毕!",student[i].name);

getchar();

break;

}

case 4:{

printf("请输入出生年月:");

scanf("%s",&student[i].birthday);

printf("%s的出生年月修改完毕!",student[i].name);

getchar();

break;

}

case 5:{

printf("请输入地址:");

scanf("%s",&student[i].adr);

printf("%s的地址修改完毕!",student[i].name);

getchar();

break;

}

case 6:{

printf("请输入电话:");

scanf("%s",&student[i].tel);

printf("%s的电话修改完毕!",student[i].name);

getchar();

break;

}

case 7:{

printf("请输入email:");

scanf("%s",&student[i].email);

printf("%s的电话修改完毕!",student[i].name);

getchar();

break;

}

case 8:{

printf("请输入邮编:");

scanf("%s",&student[i].mailbox);

printf("%s的邮编修改完毕!",student[i].name);

getchar();

break;}

case 0: break;

}

}

while(choice!=0);

return 0;

}

/*按学号修改*/

int change_by_num()

{

int i,j=0;

printf(" 请输入学生编号:");

scanf("%d",&j);

if(j==0)

{

printf(" 所查学生不存在!");

printf("\n 按回车键返回上级菜单!");

getchar();

return 0;

}

for(i=0;i

{

if(student[i].num==j)

change(j,1);

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

c语言课程设计机房机位预定系统绝对正确,附源代码

1 设计目的 机房机位预定系统 2 任务概述 20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求: (1)系统以菜单方式工作 (2)查询,根据输入时间,输出机位信息。 (3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。 (4)退出预定,根据输入的时间,机器号撤销该事件的预定! (5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。 ......... 3 模块划分 4 主要函数说明及其N-S图 1.主函数: int main() { Menu(); /*当前状态函数*/ } void Menu() /*主界面*/ { int n,w; do { puts("\t\t****************机房机位预约系统*******************\n"); puts("\t\t*************************菜单

***************************\n"); puts("\t\t\t 1.查询某时间段机位状态"); /*查询某时间段机位状态*/ puts("\t\t\t 2.预定空机位"); /*预定空机位*/ puts("\t\t\t 3.取消预订"); /*取消预订*/ puts("\t\t\t 4.查询等待信息"); /*查询等待信息*/ puts("\t\t\t 5.退出"); /*退出*/ puts("\t\t********************************************************\n"); printf("选择菜单号(1-5):"); scanf("%d",&n); if(n<1||n>5) {w=1;getchar();} else w=0; }while(w==1); switch(n) { case 1:Situation();break; case 2:Book();break; case 3:Cancel();break; case 4:SearchWaiting();break; case 5:exit(0);break; } getch(); } 2.机位查询: void Situation() { int time; printf("输在 (8-20)范围内的时间:"); scanf("%d",&time); if(time<8||time>20) {printf("\t时间输入错误!\n"); printf("输入在 (8-20)范围内的时间:"); scanf("%d",&time); } detail(time); /*函数调用*/ getchar(); Menu();} 3.机位预定:

C语言程序设计试题1

C语言程序设计试题1 一、单项选择题 1.C语言规定,在一个源程序中main函数的位置______d___ 。 A.必须在最开始B.必须在最后 C.必须在预处理命令的后面D.可以在其他函数之前或之后 2.以下选项中,_________d__ 是C语言关键字 A.printf B.include C.fun D.default 3.已知有声明"int a=3,b=4,c;",则执行语句"c=1/2*(a+b);"后,c的值为____a_ 。 A.0 B.3 C.3.5 D.4 4.设指针变量占4个字节的内存空间,若有声明"char *p="123";int c;",则执行语句 "c=sizeof(p);"后,c的值为__d__ A.1 B.2 C.3 D.4 5.已知有声明"int a=3,b=4;",下列表达式中合法的是_d___。 A.a+b=7 B.a=|b| C.a=b=0 D.(a++)++ 6.已知有声明"char s[20]="Hello";",在程序运行过程中,若要想使数组s中的内容修改为"Good",则以下语句中能够实现此功能的是___d_。 A.s="Good"; B.s[20l="Good"; C.strcat(s,"Good"); D.strcpy(s,"Good"); 7.已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};",若需要引用值为12的数组元素,则下列选项中错误的是_a___ 。 A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3] 8.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为_b___ 。 A.3 B.3.0 C.3.89 D.4.0 9.已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c的值分别为 __b__。 A.3,1 B.15,12 C.15,1 D.3,12 10.下面的函数定义正确的是_____d________ A)float fun (float x ; float y) {return x*y;} B)float fun (float x,y) {return x*y;} C)float fun (x,y) {int x,y;return x*y;} D)int fun (int x, int y) {return x*y;} 11.某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是_d___。 A.#define P 3.14; B.#define P(3.14) C.#define P=3.14; D.#define P 3.14 12.下列四个选项中,属于C语言关键字的是__c__ 。 A.Float B.single C.double D.real 13.已知某编译系统中signed int类型数据的长度是16位,该类型数据的最大值是_D___。 A.32767 B.32768 C.127 D.65535

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计课程设计题目

1一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n 是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进

行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

c语言程序设计试题答案

习题7 7.1选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = "FORTRAN"; B) char str[] = "FORTRAN"; C) char *str = "FORTRAN"; D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = "ABCDE" ; char *p = NULL; for (p=a; p main() { static char a[5]; a = "abcde" ; printf("%s\n", a); }

B) #include <> main() { static char a[7]= "goodbye!"; printf("%s\n", a) ; } C) #include <> main() { char a[5] = "abcde"; printf("%s\n", a) ; } D) #include <> main() { static char a[]="abcde"; printf("%s\n", a) ; } (4)阅读下列函数,函数功能为___A_____。 void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; } A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

C语言课程设计报告——贪吃蛇源程序

C 语言课程设计(小游戏贪吃蛇的程序设计报告) 设计人: 班级: 201 年月号

目录一:概述 1:研究背景及意义 2:设计的任务与需要知识点3:具体完成设计内容 二:需求分析 1:功能需求 2:操作方法 三:总体设计 1:模块划分 2:数据结构设计 四:详细设计 1:主空摸块设计 2:绘制游戏界面 3:游戏的具体过程 4:游戏的结束处理 5:显示排行榜信息模块 五:程序的调试与测试1:动画与音乐同步 2:蛇的运行 3:终止程序 六:结论 七::结束语 八:程序清单 九:参考文献

一. 概述 本课程设计以软件工程方法为指导,采用了结构化,模块化的程序设计方法,以C语言技术为基础,使用Turbo C++3、0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统的实现与测试。 1、1 研究的背景及意义 随着社会的发展,人们生活的节奏日益加快,越来越多的人加入了全球化的世界。人们不再拘泥与一小块天地,加班,出差成了现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成为了人们的需要。此次课程设计完成的贪吃蛇小游戏,正就是为了满足上述需求而设计出来的。贪吃蛇游戏虽小,却设计诸多的知识点。通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程的与那个发,技术与工具开发软件的过程,进一步掌握结构化,模块化的程序设计方法与步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构的使用方法,掌握图形,声音,随机数等多种库函数的使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程的学习与将来实际软件开发打下坚实的基础。 1、2 设计的任务与需要的知识点 1、2、1 课程设计主要完成的任务 1)、通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计的思想,培养解决实际问题的能力。 2) 有同步播放动画,声音效果。 3) 设计好数组元素与蛇,食物的对应关系。 4) 随机产生食物。 5) 有分数统计,排行榜,分数存储等功能。 通过此次课程设计,希望使读者能更深入的理解与掌握课程教学中的基本概念,培养读者应用基本技术解决实际问题的能力,从而进一步提高分析问题与解决问题的能力。 1、2、2需要掌握与运用的知识点 1、2、3本次课程设计需要掌握与运用如下的知识点: 1) 数组的应用。 2) 全局变量的使用。 3) 按键处理。 4)结构体的应用。 5)图形,音乐与动画的有关知识。 6)随即函数的使用。 7)文件的基本出操作。 8) 结构化,模块化的设计方法。

c语言程序设计期末试题B(含答案)

c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include main( ) { int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); } A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是() A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句 D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误 4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是() A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa); 5.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是() A) 0 B) 0.5 C) 1 D) 2 6. D 7. D 8. A 9. C 10. D 6.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是() A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0 7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是() main( ) { int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b,&c,&d); … } A)1 2 3 4 B)1 2 3,4 C) 1,2,3,4 D) 1,2,3 4

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

C语言程序设计课程设计

《C语言程序设计》课程设计 1课程设计目的 C语言课程设计是在“C语言程序设计”课程后集中安排的1周相关的实践技能训练环节。它的目的是通过实践环节的训练,培养学生查阅资料的能力、分析与解决问题的能力、应用C语言开发与设计程序的能力。 2课程设计选题 2.1 题目1 必做题目,其余题目任选一题完成 题目1:年历显示。 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。 (2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2:小学生测验 面向小学1-2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1-2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0-50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN” 题目3:学生学籍管理系统(可以2人合作完成) 用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。 功能要求: (1)系统以菜单方式工作。 (2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息; (3)删除已知学号的学生信息; (4)查找已知学号的学生信息; (5)按学号,专业输出学生籍贯表。 (6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。 题目4:通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:(1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能

C语言程序设计期末考试试题及答案知识分享

C语言程序设计试题 (2008 /2009 学年第二学期) 一.选择题(满分30分,每题2分) 1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C语言中函数返回值的类型由 D 决定的。 A. return语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

C语言课程设计俄罗斯方块源代码

1、新建“.h”头文件,将“头文件” 代码粘贴至其中, 2、新建“.c”源文件,将“源代码” 代码粘贴到其中。 3、新建空白工程,将头文件和源代码 添加进去,调试使用。 //头文件 //1.自定义枚举类型,定义7种形态的游戏方块 typedef enum tetris_shape { ZShape=0, SShape, LineShape, TShape, SquareShape, LShape, MirroredLShape }shape; //2.函数声明 //(1)操作方块函数 int maxX();//取得当前方块的最大x坐标 int minX();//取得当前方块的最小x坐标 void turn_left();//当前方块逆时针旋转90度 void turn_right(); int out_of_table(); void transform(); int leftable(); int rightable(); int downable(); void move_left(); void move_right(); //(2)操作游戏桌面的函数 int add_to_table();

void remove_full(); //(3)控制游戏函数 void new_game(); void run_game(); void next_shape(); int random(int seed); //(4)绘图函数 void paint(); void draw_table(); //(5)其他功能函数 void key_down(WPARAM wParam); void resize(); void initialize(); void finalize(); //(6)回调函数,用来处理Windows消息 LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM); //源代码 //1.文件包含 #include #include #include #include"tetris.h" //2.常量定义 #define APP_NAME "TETRIS" #define APP_TITLE "Tetris Game" #define GAMEOVER "GAME OVER" #define SHAPE_COUNT 7 #define BLOCK_COUNT 4 #define MAX_SPEED 5 #define COLUMS 10 #define ROWS 20 #define RED RGB(255,0,0)

C语言程序设计期末考试试卷

一、单项选择题(本大题共20题,每题2分,共40分) 1、以下不是C语言的特点的是 A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是 A、ABC B、abc C、a_bc D、ab.c3、一个C语言程序是由。 A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是 A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为

A、int B、float C、double D、不确定6、在C语言中,char型数据在内存中的存储形式是。 A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、3458、若有以下定义int a,b; float x,则正确的赋值语句 是。 A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是。 #include { int i=10,j=10;

printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果 是。 #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,8911、下列运算符中优先级最高的是。 A、< B、十 C、% D、!=12、设x、y和z是int型变量,且x=3,y=4,z =5,则下面表达式中值为0的是。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z||1) 13、判断char型变量cl是否为小写字母的正确表达式 为。 A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1)(‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为。

C语言程序课程设计猜数字游戏

C语言程序设计课程设计 : 自 动 化 级 : 名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do)。在确定解决方案框架过程中(How to do),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 流程图 子函数流程图如图1所示:

相关文档
相关文档 最新文档