文档库 最新最全的文档下载
当前位置:文档库 › C语言程序设计—结构体—实验报告

C语言程序设计—结构体—实验报告

C语言程序设计—结构体—实验报告
C语言程序设计—结构体—实验报告

实验报告

专业软件工程班级X 班学号_ XXXXXXXXX_ 姓名

实验日期:201X年X月X日报告退发(订正、重做)

课程C程序设计实验实验名称结构体

一、实验目的

二、实验环境(描述实验的软件、硬件环境)

①软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器;

②硬件环境:PC机一台

三、实验内容、步骤和结果分析

题目一:

#include

#include

struct Stu

{

int num;

char name[20];

char sex;

int age;

float score[3];

};

void fun(struct Stu *stu, int i)

{

float sum = stu->score[0] + stu->score[1] + stu->score[2], aeg = sum / 3.0;

printf("\n第%d位学生的基本信息如下:\n\n", i);

printf("学号:(%d)\t姓名:(%s)\t性别:(%c)\t年龄:(%d)\n\n", stu->num, stu->name, stu->sex, stu->age);

printf("三科成绩:(%.2f,%.2f,%.2f)\n\n", stu->score[0], stu->score[1], stu->score[2]);

printf("总成绩:(%.2f) 平均成绩:(%.2f)\n", sum, aeg);

printf("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"); }

int main()

{

int i, n;

printf("The number of students is:");

scanf("%d", &n);

struct Stu *stu = (struct Stu *)calloc(n, sizeof(struct Stu));

for (i = 0; i

{

printf("请输入第%d位学生的基本信息:\n", i + 1);

printf("学号:");

scanf("%d", &(stu + i)->num);

printf("姓名:");

scanf("%s", (stu + i)->name);

printf("性别:");

scanf(" %c", &(stu + i)->sex);

printf("年龄:");

scanf("%d", &(stu + i)->age);

printf("三科成绩:");

scanf("%f%f%f", &(stu + i)->score[0], &(stu + i)->score[1], &(stu + i)->score[2]);

putchar('\n');

}

printf("===================================================================\n");

for (i = 0; i

{

fun(stu + i, i + 1);

}

return 0;

}

题目二:计算每一个结构体的两个变量所表示的长度之和(单位:厘米)

(1)分别定义公制METRIC(成员包括:米、厘米)和英制BRITISH(成员包括:英尺、英寸)两个结构体;

(2)为每一个结构定义两个变量。

#include

int main()

{

struct METRIC {

float m;

float cm;

} m1, m2;

struct BRITISH{

float foot;

float inches;

} b1, b2;

printf("Enter the info of m1(米,厘米):");

scanf("%f%f", &m1.m, &m1.cm);

printf("Enter the info of m2(米,厘米):");

scanf("%f%f", &m2.m, &m2.cm);

printf("\nEnter the info of m2(英尺,英寸):");

scanf("%f%f", &b1.foot, &b1.inches);

printf("Enter the info of m2(英尺,英寸):");

scanf("%f%f", &b2.foot, &b2.inches);

printf("\nSum of m1 and m2 is:%.2f(厘米)\n", (m1.m + m2.m) * 100 + m1.cm + m2.cm);

printf("Sum of b1 and b2 is:%.2f(厘米)\n\n", (b1.inches + b2.inches)*30.48 + (b1.foot + b2.foot)*2.54);

return 0;

}

题目三:编写一个函数用于计算某个日期是相应年份的第几天

声明一个描述日期(年、月、日)的结构体类型。

#include

struct time {

int year;

int month;

int day;

};

void fun(struct time time)

{

int a,b,sum=0;

for(a=1;a

{

if(a==4||a==6||a==9||a==11)

sum+=30;

else if(a==2)

{

if((time.year%4==0)&&(time.year%100!=0||time.year%400==0))

sum+=29;

else

sum+=28;

} else

sum+=31;

}

sum+=time.day;

printf("%d-%d-%d 是该年的第%d 天!\n\n",time.year,time.month,time.day,sum); }

int main()

{

struct time time;

printf("Enter the date(Example:xxxx xx xx)(End with 0000 00 00):\n\n");

while(scanf("%d%d%d",&time.year,&time.month,&time.day)!=EOF)

{

if(time.year==0&&time.month==0&&time.day==0)

break;

fun(time);

}

return 0;

}

题目四:定义两个函数分别用于输入和输出N个STUDENT结构体变量的信息

要求:

定义两个结构体STUDENT和BIRTHDAY。

其中结构体STUDENT包含成员有:姓名(char name[20]),学号(int number),出生日期(BIRTHDAY birth);结构体BIRTHDAY包含的成员有:年份(int year),月份(int month)和日期(int day)。

#include

#include

struct BIRTHDAY {

int year;

int month;

int day;

};

struct STUDENT {

char name[20];

int number;

struct BIRTHDAY birth;

};

void input(struct STUDENT *stu,int n)

{

int i;

putchar('\n');

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

{

printf("第%d 位学生的信息:\n姓名:", i + 1);

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

printf("学号:");

scanf("%d", &stu[i].number);

printf("生日:");

scanf("%d-%d-%d", &stu[i].birth.year, &stu[i].birth.month, &stu[i].birth.day);

if (i != n - 1)

putchar('\n');

else

printf("输入完毕!\n");

}

}

void output(struct STUDENT *stu, int n)

{

int i;

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

{

printf("\n第%d 位学生的信息如下:\n", i + 1);

printf("姓名:(%s)\t学号:(%d)\t生日:(%d-%d-%d)\n", stu[i].name, stu[i].number, stu[i].birth.year, stu[i].birth.month, stu[i].birth.day);

if (i != n - 1)

putchar('\n');

else

printf("输出完毕!\n");

}

}

int main()

{

int n;

printf("请输入待输入资料的学生的数目N:");

scanf("%d", &n);

struct STUDENT *stu = (struct STUDENT *)calloc(n, sizeof(struct STUDENT));

input(stu, n);

printf("====================================================================\n");

output(stu, n);

printf("====================================================================\n");

return 0;

}

题目五:函数sortInfo(……)是按照总成绩从高到低的顺序进行排序的。如果两位学生的总成绩相等,

则按照学号从小到大排序。

要求:

①声明一个STUDENT结构体,成员有:姓名(char name[20]),学号(int number),总成绩(float totalScore)

②在main函数中定义一个长度为N的结构体数组arr[],调用函数sortInfo(struct STUDENT *arr, int n)对N位学生的信息进行排序

#include

#include

struct STUDENT {

char name[20];

int number;

float totalScore;

};

void input(struct STUDENT *stu,int n)

{

int i;

putchar('\n');

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

{

printf("第%d 位学生的基本信息:\n姓名:", i + 1);

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

printf("学号:");

scanf("%d", &stu[i].number);

printf("总成绩:");

scanf("%f", &stu[i].totalScore);

putchar('\n');

}

}

void sortInfo(struct STUDENT *stu, int n)

{

int i,j;

struct STUDENT temp;

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

{

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

{

if ((stu[i].totalScore < stu[i + j].totalScore) || (stu[i].totalScore == stu[i + j].totalScore && (stu[i].number)>(stu[i + j].number)))

{

temp = stu[i];

stu[i] = stu[i + j];

stu[i + j] = temp;

}

}

}

}

void output(struct STUDENT *stu, int n)

{

int i;

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

{

printf("姓名:(%s)\t学号:(%d)\t总成绩:(%.2f)\n", stu[i].name, stu[i].number, stu[i].totalScore);

}

}

int main()

{

int n;

printf("请输入待输入资料的学生的数目N:");

scanf("%d", &n);

struct STUDENT *stu = (struct STUDENT *)calloc(n, sizeof(struct STUDENT));

input(stu, n);

printf("====================================================================\n");

printf("排序之前的初始状态:\n");

output(stu, n);

printf("====================================================================\n");

sortInfo(stu, n);

printf("排序之后的最终状态:\n");

output(stu, n);

printf("====================================================================\n");

return 0;

}

题目六:编程模拟一个时钟(时间实时更新)

要求:

①声明一个时间结构体TIME,包含成员:时(int hour),分(int minute),秒(int second)。定义函数updata(……)用于更新时间。

②假设当前时刻为23:59:59,则调用函数updata将得到的下一刻时间为00:00:00

假设当前时刻为23:45:56,则调用函数updata将得到的下一刻时间为23:45:57

#include

#include

struct TIME {

int hour;

int minute;

int second;

};

updata(struct TIME *t)

{

if (t->second == 59)

{

t->second = 0;

if (t->minute == 59)

{

t->minute = 0;

if (t->hour == 23)

{

t->hour = 0;

}else

(t->hour)++;

}else

(t->minute)++;

}else

(t->second)++;

}

int main()

{

struct TIME t;

printf("请设定此刻时钟的时间(XX:XX:XX):");

scanf("%d:%d:%d",&t.hour,&t.minute,&t.second);

putchar('\n');

while (1)

{

printf("%02d:%02d:%02d\r", t.hour, t.minute, t.second);

updata(&t);

Sleep(1000);

}

return 0;

}

四、讨论

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

C语言程序设计实验报告(实验大纲+过程)之欧阳家百创编

《C程序设计》实验教学大纲 欧阳家百(2021.03.07) 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分: 4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 五、实验项目与学时分配

注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。 2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每

数组指针结构体实验报告

验证性实验:数组指针结构体实验报告 1.实验目的 (1)复习c++语言数组的用法。 (2)复习c++语言指针的用法。 (3)复习c++语言结构体的用法。 (4)理解算法时间复杂度分析的基本方法。 (5)通过实验程序,分析它们的时间复杂度。 2.实验内容 (1)将1~10存入数组a[10],并将其逆序输出。 (2)用指针方式编写程序:从键盘输入10个整数数据,并存入数组,要求将10个数中最大的数与第1个输入的输交换:将10个数中最小的数和最后一个输入的数交换。(3)有5个学生,每个学生的数据包括学号、姓名3门课的成绩、平均分。 要求:从键盘依次输入5个学生的学号、姓名3门课的成绩,自动计算3门课的平均分,将5个学生的数据在屏幕上输出。 3.实验结果 (1)#include void main() { int i,a[10]; for (i=0;i<=9;i++) a[i]=i+1; for (i=9;i>=0;i--) printf("%3d",a[i]); printf("\n"); } (2)#include void main() { int a[10],*p,*max,*min,k; for (p=a;p*p) min=p;

} p=a; if(*max==*(p+9)&&*min==*p) { k=*p; *p=*(p+9); *(p+9)=k; } else if(*max==*(p+9)) { k=*max;*max=*p;*p=k;k=*min;*min=*(p+9);*(9+p)=k; } else { k=*min;*min=*(p+9);*(p+9)=k;k=*max;*max=*p;*p=k; } for(p=a;p struct STUDENT { char id[10]; char name[8]; int score[3]; double ave; }stu[5]; void main() { int num=5,i,j; for(i=0;i

智慧树知道网课《C语言程序设计(青岛职业技术学院)》满分章节测试答案

第一章测试 提示:选择题选项顺序为随机排列,若要核对答案,请以选项内容为准1 【单选题】 (20分) C语言是一种( ) A. 低级语言 B. 高级语言 C. 汇编语言 D. 机器语言 2 【单选题】 (20分) 下列各项中,不是C语言的特点是()。 A. 数据类型丰富,可移植性好 B. 语言简洁、紧凑,使用方便 C. 有较强的网络操作功能 D. 能实现汇编语言的大部分功能

3 【单选题】 (20分) 下列叙述的是()。 A. C程序中的每条命令都用一个分号作为结束符 B. C程序中的每条语句都用一个分号作为结束符 C. C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 D. C程序中的变量必须先定义,后使用 4 【单选题】 (20分) 一个C程序的执行是从()。 A. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 B. 本程序文件的第一个函数开始,到本程序main函数结束 C. 本程序的main函数开始,到本程序文件的最后一个函数结束 D. 本程序的main函数开始,到main函数结束 5 【单选题】 (20分)

以下叙述不正确的是()。 A. 在C程序中,注释说明只能位于一条语句的后面 B. 一个C源程序必须包含一个main函数 C. C程序的基本组成单位是函数 D. 一个C源程序可由一个或多个函数组成 第二章测试 1 【单选题】 (10分) 已知定义整形变量a,b,c的值分别是2、3、4,运算表达式a*=16+(b++) - (++c)以后,a值为( ) A. 28 B. 30 C. 29 D. 31 2 【单选题】 (10分)

C语言结构体实验报告

《高级语言程序设计》实验报告实验序号:8 实验项目名称:结构体

附源程序清单: 1. #include struct student { int num; char name[20]; char classname[20]; float score[3]; float aver_score; }stu[5]; void input() { int i; for(i=1;i<6;i++) { printf("第%d个同学",i); printf("请输入学号名字班级三门课程成绩:\n"); scanf("%d %s %s %f %f %f",&stu[i].num,stu[i].name,stu[i].classname,&stu[i].score[1],&stu [i].score[2],&stu[i].score[3]); } }; void averagescore() {

for(i=1;i<=5;i++) stu[i].aver_score=((stu[i].score[1]+stu[i].score[2]+stu[i].score[3])/3); printf("平均成绩:"); for(i=1;i<6;i++) printf("第%d个同学的平均成绩%f:\n",i,stu[i].aver_score); printf("\n"); }; void max() { int i,k=0; float temp=stu[1].aver_score; for(i=2;i<=5;i++) if(stu[i].aver_score>temp) {temp=stu[i] .aver_score;k=i;}; printf("成绩最好的同学:\n"); printf("%d %s %s %4.2f %4.2f %4.2f %4.2f\n", stu[k].num,stu[k].name,stu[k].classname,stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].aver _score); }; void main() { input(); averagescore(); max(); } 2.#include struct worker { char name[20]; int workyear; float salary; }work[5]; void input() { int i; for(i=1;i<=5;i++) { printf("第%d个工人:",i); printf("请输入名字工作年限工资总额:\n"); scanf("%s %d %f",&work[i].name,&work[i].workyear,&work[i].salary);

结构体实验报告

实 验 报 告 题目:结构体实验报告:XXXXX 学号:XXXXXXXXXXXX 班级:XXXXXXXXXXXXXXXX 专业:XXXXXXXXX 成绩:

一、实验目的 掌握结构类型的定义和使用,学会使用结构数组编程解决问题。 二、实验容、要求与安排方式 1、实验容: 编程解决如下问题:谁的年龄最小、奖学金统计、猴子选大王、选票统计(二)、数星星(二),任选四道题,其中选票统计(二)、数星星(二)必选。 2、要求:能够上机编辑、调试程序并通过OJ测试。 3、实验安排方式:每组1人,独立完成上机实验; 4、注意事项:结构的嵌套定义和引用方法、用指针访问结构。 三、代码及调试结果 1.数星星代码: #include #include #include typedef struct shiquan { int x; int y; } S; //定义结构体 int main() { S s[216]; int n,i,j; int sum=0; scanf("%d",&n); for(i=0; i

图1 数星星调试结果 2.奖学金代码: #include #include typedef struct student { char name[20]; int Last_Score; int Class_Score; char Stu_leader; char w_stu; int article; int sum; } STU; int main() { int n; STU p[11]; int flag=0; int sum=0; int max=0; scanf("%d",&n); int i; for(i=0; i

C语言实验八结构体上机报告

《标准C语言程序设计》上机报告实验八结构体程序设计 专业:电子信息工程 班级:电信1301 学号:U201313480 姓名:秦行 完成日期:2014/6/9

一、实验目的: 1、掌握结构体类型的说明和结构体变量的定义; 2、掌握结构体变量成员的引用和对结构体变量的初始化; 3、掌握结构体数组及结构体指针变量的定义及使用。 4、理解并掌握结构体在函数间的传递; 5、进一步掌握复杂程序编译、连接和调试的技巧。 二、实验内容及要求(鼓励一题多解) ——以下均要求不得使用全局变量: 1 (1)、正确定义该表格内容要求的数据类型; (2)、分别输入各成员项数据,并打印输出(为简便起见,假设只有3名考生)。#include #include #define N 3 struct date { int year; int month; int day; }; struct student { unsigned int num; char name[20]; char sex; struct date birth; }; void main()

{ struct student tester[N]; int i; for(i=0;i #include #include #define N 10 struct worker { char name[20]; int salary; };

数据结构实验报告七查找、

云南大学软件学院数据结构实验报告 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 学期:2010秋季学期 任课教师: 实验题目: 查找算法设计与实现 姓名: 王辉 学号: 20091120154 电子邮件: 完成提交时间: 2010 年 12 月 27 日

云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色: 综合得分:(满分100分) 指导教师:年月日(注:此表在难度为C时使用,每个成员一份。)

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) 1 哈希表查找。根据全年级学生的姓名,构造一个哈希表,选择适当的哈希函数和解决冲突的方法,设计并实现插入、删除和查找算法。 熟悉各种查找算法的思想。 2、掌握查找的实现过程。 3、学会在不同情况下运用不同结构和算法求解问题。 4 把每个学生的信息放在结构体中: typedef struct //记录 { NA name; NA tel; NA add; }Record; 5 void getin(Record* a)函数依次输入学生信息 6 人名折叠处理,先将用户名进行折叠处理折叠处理后的数,用除留余数法构造哈希函数,并返回模值。并采用二次探测再散列法解决冲突。 7姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。将初始班级的通讯录信息存入文件。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1抽象数据类型的功能规格说明和结构体: #include

2020年智慧树知道网课《C语言程序设计(山东联盟-山东英才学院)》课后章节测试满分答案

第一章测试 1 【单选题】(20分) C语言程序扩展名为.exe,它属于【】 A. 可执行文件 B. 库文件 C. 源程序文件 D. 目标文件 2 【单选题】(20分) 在绘制程序流程图时,表示“输入输出框”的符号是【】 A. B. C. D.

3 【单选题】(20分) 在绘制程序流程图时,下面哪个表示“选择结构”【】 A. B. C. D.

4 【单选题】(20分) 在绘制程序N-S图时,下面哪个表示“直到型循环结构”【】 A. B. C. D. 5 【单选题】(20分) 下列关于C语言特点的描述,不正确的是【】 A. C语言既可用来编写应用软件,又可用来编写系统软件

B. C语言的可移植性差 C. C语言兼有高级语言和低级语言的双重特点,执行效率高 D. C语言是一种结构化程序设计语言 第二章测试 1 【单选题】(20分) 十六进制数0X11对应的十进制数是【】 A. 17 B. 11 C. 其它答案都不正确 D. 2 2 【单选题】(20分) 下列C语言书写形式中属于合法的十进制整型常量的是【】 A.

045L B. 0X7F4 C. 82u D. 0x81p 3 【单选题】(20分) 字符'3'的ASCII码值是【】 A. 其它答案都不正确 B. 3 C. 51 D. 48 4 【单选题】(20分) 下列合法的C语言标识符是【】 A. float

B. a&b C. _xyz D. 2x 5 【单选题】(20分) 下面哪个是合法的C语言字符型变量定义【】 A. char_a1,_a2; B. CHARa1,a2,a3; C. Chara; D. floata1,a2; 第三章测试 1 【单选题】(20分) 若有定义floata;,执行表达式a=1/2后,a的值是【】 A.

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

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

C语言程序设计习题参考答案 习题1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F 2.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. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题

c语言实验报告1

C语言程序设计报告 日

程序主要内容 任务1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=?然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。 程序如下: #include #include #include int Magic(int x); int Answer(); main() { int guess,answer,counter=1; do{ printf("%d*%d=",Magic(1),Magic(2)); answer=Magic(1)*Magic(2); if(Answer()==answer) { printf("Right\n"); break; } else printf("Wrong!,please try again\n"); }while(counter>=1); } int Magic(int m)

int x,int y; srand(time(NULL)); x=rand()%10+1; y=rand()%10+1; if(m==1) return x; if(m==2) return y; } int Answer() { int n; scanf("%d",&n); return n; } 任务2:在(1)的基础上,当学生回答错误时,最多给三次重做的机会。 :程序如下: #include #include #include int Magic(int x); int Answer(); int Exam(); main() { int n; n=Exam(); if(n==0) printf("Right\n"); else if(n==1) printf("Wrong!You have tried

C语言实验报告

实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。

五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制 的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n");

} else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c;

C语言结构体习题及答案

第9章结构体 1.定义以下结构体类型 struct s { int a; char b; float f; }; 则语句printf("%d",sizeof(struct s))的输出结果为【】。 A) 3 B) 7 C) 6 D) 4 2.当定义一个结构体变量时,系统为它分配的内存空间是【】 A)结构中一个成员所需的内存容量 B)结构中第一个成员所需的内存容量 C)结构体中占内存容量最大者所需的容量 D)结构中各成员所需内存容量之和 3.定义以下结构体类型 struct s { int x; float f; }a[3]; 语句printf("%d",sizeof(a))的输出结果为【】 A) 4 B) 12 C) 18 D) 6 4.定义以下结构体数组 struct c { int x; int y; }s[2]={1,3,2,7}; 语句printf("%d",s[0].x*s[1].x)的输出结果为【】 A) 14 B) 6 C) 2 D) 21 5.运行下列程序段,输出结果是【】 struct country { int num; char name[10]; }x[5]={1,"China",2,"USA",3,"France",4, "England",5, "Spanish"}; struct country *p; p=x+2; printf("%d,%c",p->num,(*p).name[2]); A) 3,a B) 4,g C) 2,U D) 5,S

6.下面程序的运行结果是【】。 struct KeyWord { char Key[20]; int ID; }kw[]={"void",1,"char",2,"int",3,"float",4,"double",5}; main() { printf("%c,%d\n",kw[3].Key[0], kw[3].ID); } A) i,3 B) n,3 C) f,4 D) l,4 7.定义以下结构体类型 struct student { char name[10]; int score[50]; float average; }stud1; 则stud1占用内存的字节数是【】。 A) 64 B) 114 C) 228 D) 7 8.如果有下面的定义和赋值,则使用【】不可以输出n中data的值。struct SNode { unsigned id; int data; }n,*p; p=&n; A) p.data B) n.data C) p->data D) (*p).data 9.根据下面的定义,能输出Mary的语句是【】。 struct person { char name[9]; int age; }; struct person class[5]={"John",17,"Paul",19,"Mary",18,"Adam",16}; A) printf("%s\n",class[1].name); B) printf("%s\n",class[2].name); C) printf("%s\n",class[3].name);

C语言结构体和共用体实验报告

实验九参考程序 实验 9- 1 /**************************************************************** * 实验 9.1 * * ( 1 )为某商店的商品设计合适的结构体 (PRODUCT) 。每一种商品包含编号 (number) 、 * 名称 (name) 、价格 (price) 、折扣 (discount)4 项信息,根据表 9-1 ,为这些信 息选择合适的数据类型。 * (2)建立 2个函数,以实现对商品的操作。 input 函数实现商品的输入; * display 函数显示商品信息。要求这 2个函数都以商品的结构体 (PRODUCT) 指针为 参数。 * (3 )在主函数中为商品键盘定义一个结构体变量 (keyboard) ,利用 input 函数实现键 盘信息的输入; * 定义一个结构体数组 (elec_device[3]) ,利用 input 函数实现冰箱、 空调、电视 信息的输入; * 最后利用 display 函数显示 4 种商品的信息。 * * 表 9-1 #include typedef struct _PRODUCT int iNumber; char strName[32]; float fPrice; float fDiscount; * 编号 名称 价格 折扣 *1010 键盘 89.50 0.85 *1021 冰箱 1024.00 0.95 *1022 空调 2058.50 0.90 *1023 电视 3001.88 0.95 *************************************************************** */

智慧树知到程序设计基础(C语言)测试第四章单元测试参考答案

智慧树知到程序设计基础(C语言)测试第四章单元测试参考答案 ?总题数: 10 1 【单选题】 (10分) 有下列程序,已知字母A的ASCII码为65,程序运行后的输出结果是()。 #include int main() { char c1,c2; c1=’A’+’8’-’4’; c2=’A’+’8’-’5’; printf("%c,%d\n",c1,c2); return 0; } A.E,68 B.E,D C.D,69 D.输出无定值 正确 本题总得分10分 2 【单选题】 (10分) 有下列程序,程序运行后的输出结果是()。 #include int main() { int a=14,b=12; a=a+b; b=a-b; a=a-b; printf("a=%d,b=%d",a,b); return 0;

} A.a=14,b=12 B.a=12,b=14 C.a=26,b=26 D.a=14,b=14 正确 本题总得分10分 3 【单选题】 (10分) 若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是()。 A.scanf("%d%d%d",a,b,c); B.read(a,b,c) C.scanf("%D%D%D",&a,&b,&c); D.scanf("%d%d%d",&a,&b,&c); 正确 本题总得分10分 4 【判断题】 (10分) 编写程序,输入3个整数a、b、c,输出时:a的值是b,b的值是c,c的值是a。下面程序可以正确实现题目要求: #include int main() { int a,b,c,t scanf("%d%d%d",&a,&b,&c); t=a;a=b;b=c;c=t; // 顺序交换a、b、c printf("a=%d,b=%d,c=%d",a,b,c); return 0; }

实验09结构体实验报告

1.学会结构体类型变量的定义和使用方法。 2.能够运用结构体数组编写程序。 3.学会结构体指针的定义使用方法。 4.能够运用结构体指针作函数参数编写程序。 二、实验环境 (调试程序所使用的软硬件环境) 软件环境:VC++6.0 硬件环境:宏基Intel 奔4 主频2.8GHz,内存256MB 三、实验内容、结果及分析 1、题目1.建立一个有n(3 #include #include using namespace std; const int N=10; struct rem { String num; string name; double mark[3]; double all; }; int main () { int n,i,m; double max; rem loq[N]; cout<<"请输入人数"<>n; for(i=0;i

cout<<"请输入第"<>loq[i].num>>loq[i].name >>loq[i].mark[0] >>loq[i].mark[1] >>loq[i].mark[2]; } for(i=0;imax) { max=loq[i].all; m=i; } } cout<<"总分最高的学生为"<

2019知到C语言程序设计单元测试答案最新完整版

C语言是一种( ?) 下列各项中,不是C语言的特点是()。 下列叙述错误的是( ?)。 一个C程序的执行是从( ?)。 以下叙述不正确的是( ?)。 可在妙状元.com查看完整版 已知定义整形变量a,b,c的值分别是2、3、4,运算表达式a*=16+(b++) - (++c)以后,a值为( ?) 在C语言中,要求参加运算的数必须是整数的运算符是( ?)。 合法的c标识符是( ?)。 可在妙状元.com查看完整版 执行下列程序后,显示的结果是( ) ? ?? 执行下列程序中的输出语句后,x的值是()。 判断:表达式1/4+2.75的值是3。 下列转义字符不正确的是()。 以下选项中不是C语句的是( ?) 以下语句的输出结果是( ? ) ?printf("%d ",strlen(" "65xff ")); 若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是( ? ) 调用getchar和putchar函数时,必须包含的头文件是( ? )。 使用scanf("a=%d,b=%d",&a,&b)为变量a,b赋值。要使a,b均为50,正确的输入是( ? ) “putchar(70); ”这一C语句输出的结果为() 若要求在if后的圆括号中表示a不等于0的关系,能正确表示这一关系的表达式是()。

以下程序段,运行后的输出结果是() 设a=1,b=2,c=3,d=4,则表达式a

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