C语言实训习题

合集下载

C语言实训习题

C语言实训习题

五、源程序清单、测试数据、结果。(注释供阅读、理解程序,上机时不必输入)1、写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。(要求文件名:2_1.c) main(){int x=010,y=10,z=0x10; /* 整型数据表示 */char c1='M',c2='\x4d',c3='\115',c4=77,c; /* 字符型数据表示 *//* 整型数据的输出 */printf("x=%o,y=%d,z=%x\n",x,y,z); /* 数据以原进制输出,注意是否有前导0或0x */printf("x=%d,y=%d,z=%d\n",x,y,z); /* 数据以10进制输出,换算到10进制,结果对吗? *//* 字符型数据的输出 */printf("c1=%c,c2=%x,c3=%o,c4=%d\n",c1,c2,c3,c4); /* 数据以原进制输出,注意是否有前导0或0x */printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4); /* 结果都是什么字符?,也就是说字符可以自由的表示成几种形式? */printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4); /* 看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符 *//* 字符型数据参与算术运算 */c=c1+32; /* 字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数/* 参与数学运算;结果还是一个整数-另外一个字符的ASCII码 */printf("c=%c,c=%d\n",c,c); /* 看看这个字符是什么?哇,'M'+32='m'了,看看ASCII码表,原来如此! */}参考结果:x=10,y=10,z=10x=8,y=10,z=16c1=M,c2=4d,c3=115,c4=77c1=M,c2=M,c3=M,c4=Mc1=77,c2=77,c3=77,c4=77c=m,c=109常见预定义的转义字符对输出的控制作用。(要求文件名:2_2.c) main(){int a,b,c;a=5,b=6,c=7;printf("12345678123456781234567812345678\n"); /* 打印一个标尺以便检查输出结果 */printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c); /* 打印1个字符串 */printf("c:\\a.txt"); /* 打印一个文件名 */printf("\n");}参考结果:1234567812345678123456781234567856 75 67c:\a.txt整型数据的溢出错误。(要求文件名:2-3.c) 整型(int型)数据的表达范围是-32768~32767,如果最大允许值32767+1,最小允许值-32768-1,会出现什么情况?main(){int a,b;a=32767;b=a+1;printf("a=%d,a+1=%d\n",a,b);a=-32768;b=a-1;printf("a=%d,a-1=%d\n",a,b);getch(); //获得键盘击键,起到暂停程序运行作用,目的是保留用户屏幕,便于查看结果。}参考结果:a=32767,a+1=-32768a=-32768,a-1=32767实型数据的舍入误差。(要求文件名:2_4.c) 实型变量只能保证7位有效数字,后面的数字无意义main(){float a,b;a=123456.789e5;b=a+20;printf("a=%f,b=%f\n",a,b);printf("a=%e,b=%e\n",a,b); }参考结果: a=12345678848.000000,b=12345678848.000000a=1.23457e+10,b=1.23457e+10

实训五 函数程序设计和答案

实训五 函数程序设计和答案

实训五函数程序设计

(附:答案在后面)

班级:姓名:学号:

一、实训目标

熟练掌握函数的定义、调用和调试方法。

1、学会函数的接口设计,能够快速构建函数框架。

2、掌握函数的定义和调用方法。

3、掌握函数的调试方法(step into)。

4、理解函数的形参、实参、返回值的概念。

二、语法基础

1、函数是一个完成特定工作的独立程序模块,包括和两种。

2、对于用户自定义函数,用户需要完成函数的定义、函数的声明及函数的调用三部分内容;而对于

库函数用户只需要完成及头文件的包括。

3、以下说法中正确的是。

A)C语言程序总是从第一个定义的函数开始执行

B)在C语言程序中,要调用的函数必须在main( )函数中定义

C)C语言程序总是从main( )函数开始执行

D)C语言程序中的main( )函数必须放在程序的开始部分

4、程序填空。下列两个函数模块,请完成函数体部分内容。

1) 函数功能:求两个数的较大值。

/*函数功能:求两个数的最大值

函数入口参数:双精度浮点型 x 表被比较的第一个数

双精度浮点型 y 表被比较的第二个数

函数返回值:较大的数 (类型为double)

*/

double max(double x, double y)

{

2) 函数功能:输入一个整数n 的值,从屏幕显示n 个星号(‘*’)。

5、函数调用时的实参和函数定义时的形参可以是相同的变量名吗? ;如果两者变量名

完全相同,那么它们代表的同一内存空间吗? ;写出下面程序的输出结果。

/*函数功能:输入一个数n ,输出n 个星号

函数入口参数:整型 n 表星号的个数 函数返回值:无 */

(完整word版)单片机C语言程序设计实训100例

(完整word版)单片机C语言程序设计实训100例

《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例

第 01 篇基础程序设计

01 闪烁的LED

/*名称:闪烁的LED

说明:LED按设定的时间间隔闪烁

*/

#include

#define uchar unsigned char

#define uint unsigned int

sbit LED=P1^0;

//延时

void DelayMS(uint x)

uchar i;

while(x-—)

{

for(i=0;i〈120;i++);

}

}

//主程序

void main()

{

while(1)

{

LED=~LED;

DelayMS(150);

}

02 从左到右的流水灯

/* 名称:从左到右的流水灯

说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果

*/

#include〈reg51。h〉

#include

#define uchar unsigned char #define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i;

while(x—-)

for(i=0;i〈120;i++);

}

}

//主程序

void main()

{

P0=0xfe;

while(1)

P0=_crol_(P0,1); //P0的值向左循环移动

DelayMS(150);

}

03 8只LED左右来回点亮

/*名称:8只LED左右来回点亮

说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果

*/

#include

#include〈intrins.h>

#define uchar unsigned char #define uint unsigned int

C语言实训题及参考答案

C语言实训题及参考答案
modify() {struct people p; FILE *fp; int i,n,k,w0=1,w1,w2=0; n=load(); do { k=-1; printf_face(); for(i=0;i<n;i++) {if((i!=0)&&(i%10==0)) {printf("\n\nRemember NO.which needed modify.pass any key to contiune ..."); getch(); puts("\n\n"); } printf_one(i); } do {printf("\n\nEnter NO.that you want to modify! NO.:"); scanf("%s",p.num); for(i=0;i<n;i++) if(strcmp(p.num,people[i].num)==0)
main() { system("cls"); menu(); }
#define N 100 struct people { char num[100]; char name[15]; char sex[20]; char age[20]; char xueli[20]; char gongzhi[20]; char address[20]; char telephone[20]; }people[N];

课后题答案-C语言程序设计(第2版)

课后题答案-C语言程序设计(第2版)

《C语言程序设计能力教程(第二版)》课后作业及实训题

参考答案

第1章进入C语言程序世界

二、

1. I love China!

printf("we are students.\n")

2. 6

项目实训题参考答案

1.编写一个C程序,输出以下信息:

* * * * * * * * * * * * * * * * * * * *

I am a student!

* * * * * * * * * * * * * * * * * * * *

main()

{ printf("********************\n");

printf(" I am a student!\n ");

printf("********************\n");

}

2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:

main()

{

int a,b,c,v;

a=10;

b=20;

c=15;

v=a*b*c;

printf("v=%d",v);

}

本程序运行结果为:

v=3000

第2章编制C程序的基础知识

一选择题

C B A B A C C

二操作题

,2,-8,2

3.000000,2.500000,-8.000000

2. ABC DE

FGH

why is 21+35 equal 52

3.

3 1

4 3

2 3

1 2

4. aa bb cc abc

A N

项目实训题

1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。

#define M 5

main()

{ int n,c;

n=2; c=M*n;

printf("%d\n",c); }

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)

1.1上机实训项目

实验1实验步骤

1、进入VC环境

从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1 VC集成环境的主菜单窗口

2、VC环境下C程序的编辑、连接和运行

(1)新建一个源程序

①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。如图1-2所示

图1-2 选择新建

② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。要事先准备好保存文件的目录,例d:\lx 目录。在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。

图1-3 新建对话框的设置

③ 在图1-4的工作区中,输入源程序

2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名

1.单击该处

3.设置存放目录

图1-4 输入、编辑源程序

④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5 保存源程序

⑤源程序的编译

如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。在单击“编译”后,屏幕上会

C语言实训练习题

C语言实训练习题

C语言实训练习题

项目1:输入三角形边长,求面积。

设三角形的三个边分别为a、b、c,周长一半为s,面积为area,则s=1/2*(a+b+c), area=sqrt(s*(s-a)*(s-b)*(s-c))。

项目2:从键盘输入大写字母,用小写字母输出

项目3:输入一个三位整数,依次输出该数的正(负)号和百位、十位、个位数字。

项目4:输入两个整数a、b,将它们交换,例如a为3,b为5,交换后a为5,b为3。

项目5:输入一个华氏温度,输出对应的摄氏温度。输出取1位小数。转换公式为

c=5/9*(f-32)

项目6:鸡兔同笼问题。

已知鸡兔总头数为H,总脚数为F,求鸡兔各有多少只?分析:依题意设鸡有x只,

兔有y只。

项目1:根据圆柱体的半径和高,计算圆周长、圆面积、圆柱体表面积、圆柱体体积。

项目2:从键盘输入两个整数a和b,如果a大于b则交换两数,否则不交换,最后

输出两个数。

项目3:将任意三个整数按从大到小的顺序输出。

项目4:给一个不多于4位的正整数,求出它是几位数,逆序打印出各位数字。

项目5:求分段函数的值,如果x≥0, y=2x+1,否则, y=0 。

项目6:模拟自动饮料机。按屏幕所示功能,输入所选择的合法数字,输出可获得的

相应饮料名称。运行效果:

=============自动饮料机============== 1.可口可乐 2.雪碧 3.芬达 4.百事可乐

5.非常可乐

请按1-5按钮选择饮料:3 你获得一听芬达

项目7:当企业利润P等于或低于0.5万元时,奖金为利润的1%;当0.5<P≤1万元时,超过0.5万元部分的奖金为利润的1.5%,0.5万元以下仍按1%计算;当1<P≤2万元时,1万元以下部分仍按前面的方法计算,超过1万元的部分其奖金按利润的2%计算;当2<P≤5万元时,2万元以下部分仍按前面的方法计算,超过2万元部分的奖金按利润的2.5%计算;当5<P≤10万元时,5万元以下部分仍按前面的方法计算,超过5万元部分的奖金按

C实训学期测试题

C实训学期测试题

#define Ml N*3
程序如下:
#include"typel.h"
36
#define M2 N*2 main()
{ int i;
i=M1+M2;
printf("%d\n",i);
}
程序编译后运行的输出结果是
________。
根据定义和数据的输入方式,输
入语句的正确形式为
37 ___________已有定义:float
printf("%d, %d\n", i, j); return; } 运行后的输出结果是( )
以下程序段以下代码中使用不正 确的是:( ) typedef int (*FuncType)(int, int);
int Func1(int a, int b) { 48 return a + b; };
设x,y 都是int型变量,则执行 下面语句后
int x = 1; int y = 3;
if ( x || ++y )
{
56
y++;
}
else
{
y--;
}
y的数值为(
)
阅读以下程序: #define BIT3 (0x01<<3) static int a = 0;
a |= BIT3;

C语言程序设计综合实训题目

C语言程序设计综合实训题目

一、参考题目及选题

(1)学生信息管理系统设计

问题描述:

学生信息包括:学号,姓名,年龄,性别,出生年月,政治面貌,籍贯,家庭住址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:

(1)系统以菜单方式工作

(2)学生信息录入功能(学生信息用文件保存)

(3)学生信息浏览功能

(4)学生信息排序、查询功能

对信息进行排序,可以按学号,按姓名,按性别,按出生年月日,按籍贯进行查询(5)信息统计

a) 可以按性别,按出生年,按籍贯统计学生人数

b) 可以按班级统计学生人数

c) 可以按政治面貌统计学生人数

按班级统计学生党员人数,团员人数,以及所占比例,设计并输出统计报表。

(6)学生信息的删除与修改

设计要求:

●界面比较美观;

●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重

新输入;

●最好用链表的方式实现。

算法分析:

首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。

对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。

(2)、学生综合测评系统

C语言实训题目

C语言实训题目

实训题目1:商店商品管理系统

某商店每天有进货、售货、统计销售额、计算毛利率、查看商品剩余量等业务,所以人工管理是一件非常繁琐的事情,为了快速有效地管理,该商店提出要编制一个计算机管理软件。

功能要求:循环显示如图1所示的主菜单。

选择1:创建商品档案。每一个商品信息包括编号、品名、进价、售价、进货量、销售量、销售额、剩余数、毛利;

选择2:编辑商品信息。例如,向商品档案添加新商品、删除原有商品、处理原有商品的新进货量、新销售量、报废量;

选择3:统计销售情况。在此项中统计每种商品的销售额、剩余数、毛利(毛利=销售额-进价×销售量);

选择4:查询商品信息。如:根据品名、剩余数(小于5或大于20)进行查询; 选择5:显示商品信息。显示方式有3种,即按原来商品顺序显示、按销售额高到底的顺序显示、按毛利高到底的顺序显示,由于商品较多,所以要求分屏显示。

选择0:退出系统。 菜单要求:

(1)设计如图1_1所示的主菜单;

(2)选择2时显示如图1_2所示的子菜单; (3)选择4时显示如图1_3所示的子菜单; (4)选择5时显示如图1_4所示的子菜单;

主菜单和子菜单能够循环出现,每一项菜单执行之后,询问用户是否继续进行。从子菜单可以返回到主菜单。

图1_1 某商场商品管理主菜单 |------------------------------ | | 请输入选项编号(0—5): | |------------------------------| | 1——创建商品档案 | | 2——编辑商品信息 | | 3——统计销售情况 | | 4——查询商品信息 | | 5——显示商品信息 | | 0——退出系统 | |------------------------------ | 图1_2. 编辑商品信息子菜单 |******************************| | 请输入选项编号(0—4): | |******************************| | 1——添加新商品 | | 2——删除原有商品 | | 3——修改原有商品信息 | | 4——返回 | | 0——退出 | |******************************| 图1_3 查询商品信息子菜单

C语言程序设计实训题目

C语言程序设计实训题目

C语言程序课程设计题目

题目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 运动会比赛计分系统

要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数

各项目名次取法有如下几种:

取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;

功能要求:

(1)系统以菜单方式工作

(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩

《C语言程序的设计》大作业

《C语言程序的设计》大作业

南昌大学软件学院

C语言程序设计工程实训

班级:09软件技术(2)班

学号:8001509107

姓名:吴承增

指导老师:危建国

2010年12月10日

系统说明书

1.问题描述:

该程序包内容包括以下的模块,均用子函数完成:

(1)主菜单

(2)输入若干条记录并保存文件(指学生的信息)

(3)学生信息录入、修改、删除、查询、存储。

(4)学生信息的浏览及排序(冒泡排序算法)。

(5)学生成绩的录入、修改。

(6)统计及格和优秀人数

(7)退出系统

2.程序设计和程序流程图:

解决方案:

主函数流程图:

各部分功能的流程图:录入学生成绩流程图:

统计功能流程图如图3所示:

图3 统计模块流程图冒泡排序流程图:

排序学生信息流程图:

删除学生成绩信息流程图:

3.系统的基本功能(主要数据和函数功能描述):

char xh[15]; //以字符串数组形式存储学生学号

char name[25]// 以字符串数组形式存储学生姓名

char sex[5]; //性别float sxcj; //数学成绩

float yycj; //英语成绩float Cyycj; //C语言成绩

float ave; //平均成绩float sum; //总成绩

#define N 4 //宏定义学生#define MAX 60 //学生最大个数

int nCOUNT=0; //记录当前学生个数struct student //定义结构体学生int ScoreNew() //录入学生成绩int average() //求平均数

int xsxscj() //显示输入学生信息、将学生打印到屏幕上

C语言实训指导习题(全)

C语言实训指导习题(全)

C语言实训指导习题(全)

第1章习题

1. C语言程序的基本结构是【】。

A) 函数B) 语句C) 字符D) 程序行

2. 下列四个叙述中,正确的是【】

A)在C程序中,主函数必须位于其他函数的最前面

B)在C程序中,一行只能写一条语句

C)C程序的基本结构是程序行

D)C语句是完成程序功能的最小单位

3. C语言规定,在一个C程序中,main()函数的位置是【】

A)必须在开始B) 必须在最后

C) 可以任意D) 必须在系统调用的库函数之后

4. 以下叙述中,正确的是【】。

A) C语言程序总是从第一个定义的函数开始执行 .

B) C语言程序中,要调用的函数必须在main()函数中定义

C) C语言程序总是从main()函数开始执行

D) C语言程序中的main()函数必须放在程序的开始部分

5. 在C语言提供的合法的关键字是【】

A)switch B)cher C)Case D)FLOAT

6. 以下用户标识符,其中合法的是【】

A) For B) 4d C) f2.G3 D) _f#

第2章习题

C语言所提供的五种基本数据类型包括:字符型、整型、双精度型、浮点型和【D】。

A) 指针型B)结构型C)数组型D)无值类型

2. 列四组数据类型中,C语言允许的一组是【B 】

A) 整型、实型、逻辑型,双精度型

B) 整型、实型、字符型,无值类型

C) 整型、双精度型、布尔型,无值类型

D) 整型、实型、复型、字符型

3. 下面均是合法整型常量的是【A 】。

A) 160 B) -0xcdf C) -01 D) -0x48a

-0xffff 01a 986.12 2e5

C语言课程实训题目

C语言课程实训题目

1.学生学籍管理 (2)

2.通讯录管理 (2)

3.酒店房间登记管理 (2)

4.职工信息管理 (3)

5.销售管理 (3)

6.银行账户信息管理 (3)

7.商品销售管理 (4)

8.设备管理 (4)

9.飞机订票 (5)

10.仓库管理 (5)

11.学校运动会管理 (5)

12.教师工作量管理 (6)

13.学生证管理程序 (6)

14.学分管理程序 (6)

15.图书登记管理程序 (7)

16.学生作业完成情况管理程序 (7)

17.宿舍管理系统 (7)

18.图书租借管理系统 (8)

19.车票管理系统 (8)

20.学校职工工资管理系统 (8)

1.学生学籍管理

问题描述:

已知程序要求管理的学生信息包括:学号,姓名,系别、班级,年龄,性别,入学时间。设计一程序,完成以下功能:

1)能从键盘输入学生的信息

2)能从指定的文件中读入学生的信息

3)能学号查询学生的基本信息

4)能删除指定学号的学生信息

5)能修改指定学号的学生信息

6)能将学生信息保存在指定的文件中

2.通讯录管理

问题描述:

已知程序要求通讯录的信息为:姓名、性别、电话号码、类别、电子邮件,设计一程序,完成以下功能:

1)能从键盘输入通讯录的信息

2)能从指定的文件中读入通讯录的信息

3)能按姓名查询通讯录的信息

4)能按分类查询通讯录的信息

5)能删除指定姓名的通讯录的信息

6)能修改指定姓名的通讯录信息

7)能将通讯录信息保存在指定的文件中

3.酒店房间登记管理

问题描述:

已知在酒店中有10个房间,设计一程序,完成以下功能:

1)能从文件导入旅客入住信息

2)能从键盘输入客户的入住信息(包括:客户姓名,身份证号,开始入住时间、退房时间、

C语言程序设计综合实训题目

C语言程序设计综合实训题目

一、参考题目及选题

(1)学生信息管理系统设计

问题描述:

学生信息包括:学号,姓名,年龄,性别,出生年月,政治面貌,籍贯,家庭住址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:

(1)系统以菜单方式工作

(2)学生信息录入功能(学生信息用文件保存)

(3)学生信息浏览功能

(4)学生信息排序、查询功能

对信息进行排序,可以按学号,按姓名,按性别,按出生年月日,按籍贯进行查询(5)信息统计

a)可以按性别,按出生年,按籍贯统计学生人数

b)可以按班级统计学生人数

c)可以按政治面貌统计学生人数

按班级统计学生党员人数,团员人数,以及所占比例,设计并输出统计报表。

(6)学生信息的删除与修改

设计要求:

●界面比较美观;

●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重

新输入;

●最好用链表的方式实现。

算法分析:

首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。

对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。

(2)、学生综合测评系统

单片机C语言程序设计实训100例--基于

单片机C语言程序设计实训100例--基于
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,
0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff
};
uchar code Pattern_P2[]=
{
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,
0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,
0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
uchar i;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、程序填空 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,
改动程序的结构。 1.以下程序中函数 fun 的功能是:统计 person 所指结构体数组中所有性别(sex)为 M
的记录的个数,存入变量 n 中,并作为函数值返回。请填空。
#include <stdio.h>
#define N 3
C. printf("%c",st[2].name[1]);
D. printf("%c",st[2].name[0]);
3. 需要以写模式打开当前目录下一个名为 myfile.txt 的文本文件,下列打开文件正确的
选项是:

A. fopen("myfile.txt","r");
B. fopen("myfile.txt","w");
}
程序的运行结果是 (
)
A)Qian,f,95,92
B)Qian,m,85,90
C)Zhao,f,95,92
D)Zhao,m,85,90
二、阅读并调试程序 1. 以下程序的输出结果是 ( ) 。 main() { char s[]="ABCD", *p;
for(p=s+1; p<s+4; p++)printf ("%s\n",p);}
实验
一 单选题
1. 设有下列函数原型和变量定义语句,则合法的函数调用语句是:

int func( int a[], int n );
int a[10], n, x;
A. func( a, n ) = x;
B. x = func( a, n );
C. x = func( a[], n );
D. x = func( a[10], n );
for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]=s[j];s[j]=t;} } main()
fun(ss,5); }
printf("%s,%s\n",ss[0],ss[4]);
程序的运行结果是 (
C. fopen("myfile.txt","rb");
D. fopen("myfile.txt","wb");
4. 假定建立了以下链表结构:struct node{ char id ; struct node *next; } *head,*p;
如下图所示:指针p指向一个新结点,将新结点插入到链表成为头结点的两条C语言语句是 。
A)tupedef struct
{int n; char c;}REC;
REC t1,t2;
B)tupedef struct
{int n; char c;};
REC t1,t2;
C)tupedef struct REC;
{int n=0; char c='A';}t1,t2;
D)struct
{int n; char c;}REC;
2. 若有以下定义,输出字母 M 的语句是:

struct person
{
char name[9];
int age;
};
struct person st[10] =
{{"john",17},{"paul",19},{"Mary",18}};
A. printf("%c",st[2].name);
B. printf("%c",st[3].name[1]);
{ int num; float score;
} stu[2]={101,91.5,102,92.5},*p=stu; 则表达式 p->score 的结果是:_______ 。 A. 101 B. 91.5 C. 102 D. 92.5
10. 设有定义 FILE *fp;将整数 n 以文本方式写到 fp 文件的语句:______。 A. fp = fopen( "file.txt", "w" ); B. fprintf( fp, "%d", n ); C. fwrite( &n, sizeof(int), 1, fp ); D. fclose(fp);
程序的运行结果是( A)12 12 B)11 7
) C)11 11
D)12 7
18 下面程序段中,输出*的个数是 (
)
char *s="\ta\018bc";
for(;*s!='\0';s++)printf("*");
A)9 B)5 C)6 D)7
19 以下结构体类型说明和变量定义中正确的是 (
)
6.假定建立了下图所示的链表结构,指针p指向如图所示的结点,已定义q是与p相同类型的
指针变量,则将p所指结点的下一个结点从链表中删除的语句是 _______。
A. q=p->next; p->next=q->next; free(q); B. q=p->next; free(q); p->next=p->next->next; C. p->next=p->next->next; q=p->next; free(q); D. p->next=q->next; q=p->next; free(q);
A. head=p->next; p=head; B. p->data=head; head=p; C. head=p->data; p=head; D. p->next=head; head=p;
5. 若建立了以下链表结构,如图所示。指针p指向如图所示的结点,t为与data同类型的数 据变量,则交换p所指向的结点的数据和该结点的下一个结点的数据的语句为:t=p->data; __________。
A)6 B)7 C)8 D)9
16 阅读下列程序,则执行后的结果为 (
)
#include "stdio.h"
main()
{ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};
printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
A. p->next->data = p->data; p->data =t; B. p->data = p->next->data; p->next->data =t; C. p->data = t; p->next->data = p->data; D. p->next->data = t; p->data = p->next->data;
void swap( int *p, int *q ); int x, y; 则合法的函数调用语句是:_______ 。 A. swap( x, y ); B. swap( *x, *y );
C. swap( &x, &y ); D. swap( p, q );
9. 若有结构体定义及初始化语句: struct node
int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
main()
{STU c={"Qian",'f',95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA D)Abcddfefdbd
13.有如下程序
main()
{ char ch[2][5]={"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
REC t1,t2;
20 有以下程序
#include <stdio.h>
#include <string.h>
typedef struct
{char name[9];
char sex;
float score[2];
}STU;
void f(STU a)
{STU b={"Zhao",'m',85.0,90.0};
2. 以下程序的输出结果是什么? #include<stdio.h> void fun(float *p1,float *p2, float *s) {s=(float *)calloc(1, sizeof(float)); *s=*p1+*(p2++); } main() {float a[2]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a; fun (a, b, s); printf(“%f\n”, *s); }
for(j=0;p[i][j]>′\0′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);}
该程序的输出结果是 (
)
A)69825 B)63825 C)6385 D)693825
14.有以下程序 #include <stdio.h> #include <string.h>
11.假定建立了如下图所示的链表结构,指针p指向如图所示的结点,则将r所指结点直接插 入p所指结点后的语句是:_______。
A. r->data=p->data; p->data=r; B. p->data=r; r->next=p->next; C. r->next= p->next; p->next=r; D. p->next=r; r->next=p->next;
A)3e,6
B)62,5
C)56,5 D)3E,6
17 有以下程序 #include <stdio.h> #define N 5 #define M N+1 #define f(x) (x*M) main() { int i1,i2;
i1=f(2); i2=f(1+1); printf("%d %d\n",i1,i2); }
typedef struct
{ int num; char nam[10]; char sex;}SS;
int fun(SS person[])
{ int I,n=0;
for(I=0;I<N;I++)
if( (
) ==′M′)n++;
return n;
}
main()
{SS W[N]={{1,"AA",′F′},{2,"BB",′M′},{3,"CC",′M′}}; int n;
)
A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc
D)aabcc,bcc
15 下列程序执行后的输出结果是 (
)
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5];
a=0; b[0]=3;
func(&a,b); printf("%d\n",b[0]);}
wk.baidu.com
n=fun(W); printf("n=%d\n",n);
}
2.以下程序的功能是:建立并输出 100 个同学的通讯录,每个通讯录包括同学 的姓名、地址、邮政编码。
#include<stdio.h>
#define N 100
12.有以下程序 void ss(char *s,char t) { while(*s) { if(*s==t)*s=t-′a′+′A′; s++; } } main()
{ char str1[100]="abcddfefdbd",c=′d′;
ss(str1,c); printf("%s\n",str1);} 程序运行后的输出结果是 ( )
3.以下程序的输出结果是什么? #include<stdio.h> struct stu {int num; char name[10]; int age; }; void fun(struct stu *p) {printf(“%s\n”, (*p).name);} main() {struct stu students[3]={{9801, “Zhang”, 20}, {9802, “Wang”, 19}, {9803, “Zhao”, 18}}; fun (students+2); }
7. 设有变量定义:char st[]="computer"; int i=0; char *s=st;
当执行完语句:while(*s++!= 'u') i++; 之后,则_______。 A. i 的值为 5,*s 的值为't' B. i 的值为 5,*s 的值为'u' C. i 的值为 4,*s 的值为't' D. i 的值为 4,*s 的值为'u' 8. 若有函数原型和变量定义语句:
相关文档
最新文档