文档库 最新最全的文档下载
当前位置:文档库 › 《C#程序设计》练习题

《C#程序设计》练习题

《C#程序设计》练习题
《C#程序设计》练习题

C#考试题库

一、简单题

1.把输入的字符串str1中的内容逆置,并保存到字符串str2中,输出str2的内容。例如:str1=“abc”,str2则为"cba"。

2.已知三角形三条边长a,b,c,三边由用户输入,计算三角形面积公式为:

s=0.5*(a+b+c)

area=错误!未找到引用源。

求三角形的面积area。

3.输入一个字符串str1,删除str1中其中所有的小写字符a,输出处理后的字符串。

4.输入7个数,计算平均值,并把低于平均值的数据输出。

5.输入7个数,计算平均值,并把高于平均值的数据输出。

6.输入10个数,找出其中最大数和次最大数。

7.输入10个数,找出其中最小数和次最小数。

8.输入若干(不超过10个)有序的正整数,对于相同的数据只保留一个,输出保留的数据。例如,输入数据是: 2,2,2,3,3,4,5,5,6,6,9,9,9,10,10,10 最终的输出结果是: 2,3,4,5,6,9,10。

9.输入由数字字符组成的字符串,将其转换成为一个整数。例如若输入字符串"3425",得到结果为整数值3425。

10.输入20个正整数,把其中的奇数和偶数分别保存并输出。

11.从终端输入3个数a、b、c,按从大到小的顺序输出。

12.从键盘读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。

13.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。例如若n为1000时,函数值应为:s=153.909064。

14.输入1~10之间的一个数字,输出它对应的英文单词。例如输入1 输出one。

15.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,统计个数,并输出这些数。

16.输入一个字符串,用foreach语句计算输入的字符串的长度,并显示长度。

17.输入10个数,分别统计其中正数、负数、零的个数。

18.计算:1/2-2/3+3/4-4/5……前100项。

19.斐氏数列是公元13世纪数学家斐波拉契发明的。即:1,2,3,5,8,13,21,34,55,89,……,输出其前15项。

20.从终端输入3个数a、b、c,按从小到大的顺序输出

21.接收用户输入的一个正整数N,计算并输出它的阶乘(N!=1*2*3…*N).

22.接收用户输入的一个正整数N,求1+2+3+…+N的值并输出。

23.接收用户输入的一个正整数N,计算1到N的平方和。

24.接收用户输入的两个数,判断两个数是否能整除。

二、方法题(注意这些方法要在主函数里面调用测试是否正确)

1.写一个方法,判断一个字符串str1,是否是回文,例如字符串str1,判断其是否为回文,是回文返回true,否则返回false。回文是指顺读和倒读都一样的字符串。例如字符串LEVEL 是回文,而字符串12312就不是回文。

2.写一个方法,统计一个字符串中单词的个数,返回值为单词个数。规定所有单词由小写字母组成,单词之间由若干个空格隔开。例如若输入字符串" it is a book ",得到结果为 4。

3.写一个方法,判断的一个正整数是否是素数,返回值为boolean类型。

4.输入一个字符串str1,统计str1中英文字母、数字字符、空格和其他它符号的个数并输出。

5.写一个方法,对正整数m求和,其中求和公式为s= 1/(1*2)+1/(2*3)+…+1/(m*(m+1)),方法返回s的值。

6.写一个方法,将一个字符串中所有数字字符前加一个$字符,并返回处理后的字符串。例如输入:A1B23CD45,则方法返回值为:A$1B$2$3CD$4$5

7.写一个方法,将字符中所有的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变。方法返回转变后的字符串。str="AbC" 转变为串为="aBc"

8.写一个方法,对一个字符串,按如下规则加密:如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。返回值为返回加密字符串。

9.写一个方法,对两个整数m和 n 求其最大公约数,并作为返回值返回。

10.写一个方法,对两个整数m和 n 求其最小公倍数,并作为返回值返回。

11.写一个方法,求s=a+aa+aaa+aaaa+aa...a的值,其中a是用户定义的数字。例如2+22+222+2222+22222(此时共有5个数相加),返回值为和s。

12.写一个方法,判断一个数是否是完数,返回值为boolean类型。一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。

13.写一个方法,求分数序列:2/1,3/2,5/3,8/5,13/8,21/13...的前20项之和,并返回。

14.写一个方法,求1+2!+3!+...+n!的和,并将和作为返回值返回

15.写一个方法,对4位整数进行加密,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,该方法返回加密后的数字。

16.在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个方法实现。

17.写一个方法,在一个的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词,并将最长单词作为方法返回值返回。

18.写一个方法,对于给定一个日期,返回该日为星期几。例如2002-3-28返回星期四。

方法总结1d2m4y

//计算当前日期的星期

string weekstr = DateTime.Now.DayOfWeek.ToString();

switch (weekstr)

{

case "Monday": weekstr = "星期一"; break;

case "Tuesday": weekstr = "星期二"; break;

case "Wednesday": weekstr = "星期三"; break;

case "Thursday": weekstr = "星期四"; break;

case "Friday": weekstr = "星期五"; break;

case "Saturday": weekstr = "星期六"; break;

case "Sunday": weekstr = "星期日"; break;

}

基姆拉尔森计算公式

19.写一个方法,随机产生20个[10,50]的正整数存放到数组中,并输出数组中的所有元素最大值、最小值、平均值及各元素之和。 Random ran = new Random();

n = ran.Next(10, 50);

20.已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和,写一个方法,求计算并返回该数列前n项的平方根之和sum。例如,当n=10时,方法的返回结果应为:23.197745。

21.编写一个方法,判断一个数是否能被3整除但不能被5整除,编写控制台应用程序,输出1-1000以内的所有能被3整除但不能被5整除的数。

22.编写一个方法,计算:1-2+3-4+5….N,要求编写控制台应用程序,来检验方法的正确性。

23.编写一个方法,判断一个三位数是否等于其每位数字的立方和,例如153=13+53+33,要求编写控制台应用程序,来检验方法的正确性。

24.编写一个方法,判断一个数是否既能被3整除又能被7整除,要求编写控制台应用程序,来检验方法的正确性。

三、类设计

1.设计雇员类(Employee)及其子类经理类(Manager),雇员类包含私有成员字段name,salary;并包含其属性Name,Salary;经理类还有自己的私有成员字段bonus,及其对应属性Bonus;雇员类、经理类都要有自己的无参、有参构造方法;

在main中创建一个经理对象并设置其奖金金额,另建立员工数组(经理作为其一个元素),要求打印输出该员工数组的姓名和薪水信息。

2.设计学生类(Student)及其子类研究生类(Graduate),学生类包含私有成员字段name,credit(学分);并包含其属性Name,Credit;研究生类包含自己的私有变量postcredit;并并包含其属性Postcredit,学生类(Student)及其子类研究生类(Graduate)要有自己的无参、有参构造方法;

现需创建一个研究生对象并设置其postcredit,另建立学生数组(研究生作为其一个元素),要求打印输出该学生数组的姓名和学分信息。

3.定义一个名为Vehicles交通工具的基类:

该类中包含私有的string类型的成员字段brand商标和color颜色,并设置其相应的公有属性;

类中包含成员方法Run来模拟交通工具开动,该方法在控制台显示“我已经开动了”信息;类中包含成员方法和ShowInfo来显示信息,该方法在控制台显示商标和颜色;

完成父类的无参有参构造方法,

编写Car小汽车类继承于Vehicles类,对于此类:

增加int型成员字段seats座位,并设置其相应的公有属性;

增加成员方法ShowCar,在控制台显示小汽车的信息并编写构造方法。

覆盖父类的Run方法,在控制台显示“汽车开动了的信息”;

完成小汽车类的无参有参构造方法;

在main方法中测试以上各类。

4.定义一个名为Vehicles交通工具的基类:

该类中包含私有的string类型的成员字段brand商标和color颜色,并设置其相应的公有属性;

类中包含成员方法run来模拟交通工具开动,该方法在控制台显示“我已经开动了”信息;类中包含成员方法ShowInfo来显示信息,该方法在控制台显示商标和颜色

完成父类的无参有参构造方法;

编写Truck卡车类继承于Vehicles类对于此类:

增加float型成员字段load载重,并设置其相应的公有属性;

应增加成员方法showTruck在控制台显示卡车的信息;

完成卡车类的无参有参构造方法;

覆盖父类的run方法,在控制台显示“开车开动了的信息”;

并编写构造方法。

在main方法中测试以上各类。

5.创建一个名称为Vehicle的接口:

在接口中添加两个无参的方法Start()和Stop()描述车辆的启动和停止。

创建Bike自行车类:

该类包含私有的int类型的成员字段wheel车轮个数,并设置其相应的公有属性;

完成该类的无参有参构造方法;

实现Vehicle接口的两个方法;

创建Bus公共汽车类:

该类包含私有的int类型的成员字段seat座位个数,并设置其相应的公有属性;

完成该类的无参有参构造方法;

实现Vehicle接口的两个方法;

在main方法中定义Vehicle数组,并存放Bike和Bus对象,来测试以上各类。

6.定义一个宠物类(Pet):

该类包括两个方法:叫Cry(),吃东西Eat();

该类中定义私有的成员字段name姓名和age年龄,并设置其相应的公有属性;

完成该类的无参有参构造方法;

定义宠物的子类狗(Dog):

覆盖父类的Cry(),Eat()方法;增加方法看门GuardEntrance()

完成该类的无参有参构造方法;

定义宠物的子类猫(Cat):

覆盖父类的Cry(),Eat()方法;

增加猫自己独有的方法捉老鼠HuntMice();

完成该类的无参有参构造方法;

在main中定义两个Pet变量,pet1,pet2,采用引用转型实例化Dog,Cat,分别调用Pet的Cry(),Eat();将Pet强制转换为具体的Dog,Cat,在调Dog的GuardEntrance(),Cat的HuntMice()。

7.创建一个名称为Shape的接口:

在接口中添加两个求面积方法Area()和求体积方法Volumn()。

定义一个立方体的类Prog:

字段包括长、宽、高;并定义相应属性;

方法包括:构造方法(初始化立方体的长宽高);

实现接口Shape;

在main中创建一个立方体对象,计算并显示其面积和体积。

8.创建一个名称为Shape的接口:

在接口中添加两个求面积方法Area()和求体积方法Volumn()。

定义一个球的类Ball:

字段包括半径;并定义相应属性;

方法包括:构造方法(初始化球的半径);

实现接口Shape;

在main中创建一个球对象,计算并显示其面积和体积。

9.创建一个名称为Square的类:

该类中定义私有的成员字段edge,并设置其相应的公有属性;

完成该类的无参有参构造方法;

该类包含方法Circumference(周长)和面积(Area);

定义子类正方体Cube类:

完成该类的无参有参构造方法;

实现该类的面积(Area)和体积(Volumn)方法。

在main中创建正方形对象,计算并显示其周长和面积;创建正方体对象,计算并显示其面积和体积。

10. 创建一个名称为Circle的类:

该类中定义私有的成员字段radius,并设置其相应的公有属性;

完成该类的无参有参构造方法;

该类包含方法Circumference(周长)和面积(Area);

定义子类圆柱体Cylinder类:

字段包括高;并定义相应属性;

完成该类的无参有参构造方法;

实现该类的面积(Area)和体积(Volumn)方法。

在main中创建圆类对象,计算并显示其周长和面积;创建圆柱体对象,计算并显示其面积和体积。

四、windows程序设计题

1.在数据库Test中,包括教师信息表Teachers,其表结构如表所示

表Teacher(教师信息表)

请完成数据库的建立,并利用NET环境创建Window程序TeacherManage,在该系统中实现对教师信息的添加和查询,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:添加、查询、退出。并单击添加菜单栏,进入添加窗体,单击查询菜单栏进入查询窗体,单击退出菜单退出系统。

2)添加窗体,实现添加教师信息功能,在该窗体,设置相应的控件,录入教师信息,单击“添加”按钮实现将录入信息添加到数据库的表中;

3)查询窗体要求根据教工号进行查询,将查询到的详细信息显示到对应的控件中;

4)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

2.在数据库Test中,包括好友信息表AddressLists,其表结构如表所示

表AddressLists(好友信息表)

请完成数据库的建立,并利用NET环境创建Window程序MyAddressList,在该系统中实现对好友信息的添加和查询,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:添加、查询、退出。并单击添加菜单栏,进入添

加窗体,单击查询菜单进入查询窗体,单击退出菜单退出系统。

2)添加窗体实现添加好友信息功能,在该窗体,设置相应的控件,录入好友信息,单击“添加”按钮实现将录入信息添加到数据库的表中;

3)查询要求根据好友姓名进行查询,将查询到的详细信息显示到对应的控件中;

4)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

3.在数据库Test中,包括图书信息表Books,其表结构如表所示

表Books(图书信息)表

请完成数据库的建立,并利用NET环境创建Window程序BookManage,在该系统中实现对图书信息的查询和修改,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:查询、退出。并单击查询菜单栏进入查询窗体,单击退出菜单退出系统。

2)设计查询窗体,在该窗体,输入图书的ISBN,单击“查询”按钮,将查询到的信息显示到对应的控件中,并可以对查询到的信息进行修改,修改后,单击“修改”按钮实现将修改信息到数据库中;

3)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

4.在数据库Test中,包括商品信息表Goods,其表结构如表所示

表Goods(商品信息)表

请完成数据库的建立,并利用NET环境创建Window程序GoodSales,在该系统中实现对商品信息的查询和销售,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:销售、退出。并单击销售菜单进入销售窗体,单击退出菜单退出系统。

2)设计销售窗体,在该窗体,输入商品名称,单击“查询”按钮,将查询到的信息显示到对应的控件中,输入要卖出的数量,单击“销售”按钮实现将商品卖出(即表中的商品数量将减少售出的数量,注意需要数量是否满足销售的要求的判断);

3)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

5.在数据库Test中,包括工资信息表Salarys,其表结构如表所示

表Salarys(工资信息)表

请完成数据库的建立,并利用NET环境创建Window程序SalaryManage,在该系统中实现对工资信息的查询和修改,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:查询、退出。并单击查询菜单栏进入查询窗体,单击退出菜单退出系统。

2)设计查询窗体,在该窗体,输入教师姓名,单击“查询”按钮,将查询到的工资信息显示到对应的控件中,并可以对查询到的信息进行修改,修改后单击“修改”按钮将信息修改到数据库中;

3)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

6.在数据库Test中,包括课程信息表Courses,其表结构如表所示

表Courses(课程信息表)

请完成数据库的建立,并利用NET环境创建Window程序Elect,在该系统中实现对课程信息的添加和查询,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:添加、查询、退出。并单击添加菜单栏,进入添加窗体,单击查询菜单进入查询窗体,单击退出菜单退出系统。

2)添加窗体实现添加课程信息功能,在该窗体,设置相应的控件,录入课程信息,单击“添加”按钮实现将录入信息添加到数据库的表中;

3)查询窗体要求根据课程名进行查询,将查询到的详细信息显示到对应的控件中;

4)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

7.在数据库Test中,包括客户信息表Clients,其表结构如表所示

表Clients(客户信息表)

请完成数据库的建立,并利用NET环境创建Window程序ClientManage,在该系统中实现对客户信息的添加和查询,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:添加、查询、退出。并单击添加菜单栏,进入添加窗体,单击查询菜单进入查询窗体,单击退出菜单退出系统。

2)添加窗体实现添加客户信息功能,在该窗体,设置相应的控件,录入客户信息,单击“添加”按钮实现将录入信息添加到数据库的表中;

3)查询窗体要求根据客户姓名进行查询,将查询到的详细信息显示到对应的控件中;

4)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

8.在数据库Test中,包括汽车信息表Cars,其表结构如表所示

表Cars(汽车信息)表

请完成数据库的建立,并利用NET环境创建Window程序CarSale,在该系统中实现对汽车信息的查询和销售,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:销售、退出。并单击销售菜单栏进入销售窗体,单击退出菜单退出系统。

2)设计销售窗体,在该窗体,输入汽车型号,单击“查询”按钮,将查询到的信息显示到对应的控件中,输入要卖出的数量,单击“销售”按钮实现将商品卖出(即表中的商品数量将减少售出的数量,注意需要数量是否满足销售的要求的判断);

3)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

9.在数据库Test中,包括用户信息表Users,其表结构如表所示

表Users(用户信息)表

请完成数据库的建立,并利用NET环境创建Window程序UserManage,在该系统中实现对用户信息的查询和修改权限,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:权限修改、退出。单击权限修改菜单进入权限修改窗体,单击退出菜单退出系统。

2)设计权限修改窗体,在该窗体,输入普通用户的用户名,单击“查询”按钮,将查询到的用户信息显示到对应的控件中,然后修改用户信息,将该用户的权限由原来的“普通用户”改为“管理员”并更新到数据库中。

3)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

10.在数据库Test中,包括药品信息表Medicines,其表结构如表所示

表Medicines(药品信息)表

请完成数据库的建立,并利用NET环境创建Window程序MedicineManage,在该系统中实现对药品信息的查询和销售,具体要求如下:

1)在主窗体添加菜单栏,并设置菜单项:销售、退出。并单击销售菜单进入销售窗体,单击退出菜单退出系统。

2)设计销售窗体,在该窗体,输入药品名称,单击“查询”按钮,将查询到的信息显示到对应的控件中,输入要卖出的数量,单击“销售”按钮实现将商品卖出(即表中的商品数量将减少售出的数量,注意需要数量是否满足销售的要求的判断);

3)窗体要求设计整洁,控件使用合理,各功能的实现尽量全面、完整。

最新C语言程序设计100个经典例子

C语言程序设计100个经典例子

经典C语言程序设计100例 1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数 37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出 41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法

45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 & 52.学习使用按位或 | 53.学习使用按位异或 ^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题 69.圆圈报数问题70.计算一个字符串长度71.编写输入/输出函数72.创建链表 73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求 1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序 80.海滩猴子分桃 81.已知公式条件求数字82.八进制转换为十进制83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数 85.判断一个素数能被几个9整除86.两个字符串连接程序87.结构体变量传递88.读取数字的整数值并打印出该值个数的* 89.数据加密90.专升本一题91.时间函数举例1 92.时间函数举例2

《C程序设计》作业内容

实验一C语言的运行环境的使用 一、目的与要求 1. 了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。 2. 熟练掌握编辑、编译、连接和运行C程序的方法。 3. 通过运行简单的C程序,初步了解C源程序的特点。 4. 初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运 行结果的基本输出方法。 二、实验例题 在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. (1)输入如下程序: #include int main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); return 0; } (2)将输入的程序以文件名example.c存盘。 (3)编译:通过“组建”(Build) 下拉菜单中的“编译”(compile)命令,编译example.c,若出现编译错误,则修改程序,重新编译,直至编译成功,系统自动生成目标文件example.obj。 (4)连接:通过“组建”(Build)下拉菜单中的“组建”(Build)命令,生成以.exe为扩展名的可执行文件example.exe。 (5)运行:通过“组建”菜单下的“执行”(Excute)命令运行程序并观察运行结果。 【例2】编写程序,将两个整数相加,并输出结果。 #include int main() { int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); return 0;}

C程序设计题库

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

C语言程序设计作业参考答案

《C语言程序设计》作业参考答案 作业一 C语言概述 一、选择题: 1-5 ACDCB 二、编程题: main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法 一、填空题: 1.确定性有效性有零个或多个输入有一个或多个输出 2.顺序结构选择结构循环结构 3.函数 作业三数据类型、运算符与表达式 一、选择题: 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构 一、选择题: 1-5 BCDDD 6-10 BDADD 二、填空题: 1.【31.415920,3.14159e+01】 2.【c=k】 3.【a=1,b=空格,c=2】 4.【a=12,b=345】 5.【c=A】 作业五选择结构 一、选择题:1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题: 1.【-1】 2.【3】 3.【4】 4.【11】 5.【97或'a'】 作业六循环结构 一、选择题: 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB

作业七数组 一、选择题: 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题: 1. LBLMNP 2. SW* 3. mo 4. a=2,b=1 作业八函数 一、选择题: 1-5 AAACA 二、填空题: 1.【编程中的main( )函数】 2.【函数说明部分】和【函数体】 3.【–125= –5*5*5】 4.【void add (float a, float b)】【float add (float a, float b)】 5.【i=7; j=6; x=7 i=2; j=7; x=5】 6.【111】 三、编程题: 1.参考代码 main() { int score,temp,log; char grade; log=1; while (log) { printf(“enter score:”); scanf(“%d”,&score); if ((score>100)||(score<0)) printf(“\n error,try again! \n”); else log=0; } if (score==100)temp=9; else temp=(score-score%10)/10; switch(temp) { case 0:case 1:case2: case 3:case 4:case 5:grade=’E’;break; case 6:grade=’D’;break; case 7:grade=’C’;break; case 8:grade=’B’;break; case 9:grade=’A’; } printf(“score=%d,grade=%c\n”,score,grade); } 2.解:设计以高度n为参数的函数trangle(int n),打印等边三角形。参考程序如下: #include

C语言程序设计

一、单选题 1. (4分)若调用fputc函数输出字符成功,则其返回值是( )。? A. EOF ? B. 1 ? C. 0 ? D. 输出的字符 得分:0知识点:C语言程序设计作业题收起解析 答案D 解析 2. (4分)若以下程序段: struct dent { int n; int*m; }; int a=1, b=2,c=3; struct dent s[3]={{101<&a},{102<&b},{103,&c}; main() { struct dent *p;

p=s; ….. } 则以下表达中值为2的是()。 ? A. (p++)->m ? B. *(P++)->m ? C. (*p).m ? D. *(++p)->m 得分:0知识点:C语言程序设计作业题收起解析 答案D 解析 3. (4分)在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ). ? A. extern ? B. register ? C. auto ? D. static 得分:0知识点:C语言程序设计作业题收起解析 答案D 解析

4. (4分)若二维数组a有m列,则在a[i][j]前面的元素个数为()。? A. j*m+i ? B. i*m+j ? C. i*m+j-1 ? D. i*m+j+1 得分:0知识点:C语言程序设计作业题收起解析 答案B 解析 5. (4分)下面程序的运行结果是(). main() { struct cmplx {int x; int y; } cnum[2]={1,3,2,7}; printf(“%d ”,cnum[0].y/cnum[0].x*cnum[1].x); } ? A. 0 ? B. 1 ? C. 3

《C程序设计》试题

《C程序设计》试题 一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() 3. 不是C语言实型常量的是:() .字符串“xyzw”在内存中占用的字节数是:() 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:() (a的ASCII码值为97) ,2 ,3 ,2 ,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是: =,b=3 = b=3 3 表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>yx:mc4)后,s,t的值为:() ,2 ,1 ,1 ,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf 最多可执行次数为:() 13. 对于for(s=2;;s++)可以理解为:() A. for(s=2;0 ;s++) B. for(s=2;1 ;s++) C. for(s=2;s<2 ;s++) D. for(s=2;s>2;s++)

C程序设计作业样本

第一章作业 答案:一,59,14.4,28.e 二1小题,59 2,15 一、将数89、20.25、40.875用十六进制表达 二、填空 1.在C语言中,数值常量0x3b十进制值是。 2.字母f ASCII码为十进制数___________。 第三章作业 一、选取题: 1、下列变量名中, B 是非法。 A) Tom B) 3n C) little_boy D) c10 2、若有如下类型阐明 char a; int b; float c; double d;则表达式a*b+d-c成果类型是(A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25成果及x值分别是(C )对的答案是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)值是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2值为 C 。 A) 12 B) 11 C)不拟定值D) 10

6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标记符字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均是合法整型常量是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char 10.若a是int型变量,则表达式(a=4*5,a*2),a+4值为( C ) A. 20 B.22 C. 24 D. 44 第四章作业 一、选取题 1、若x为int型变量,则执行如下语句后x= C 。 x=5; x-=x-=x+x; A. -10 B. -5 C.0 D.10 2、在printf()函数格式阐明符中,字符型数输出格式阐明符是 D 。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个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、345 8、若有以下定义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,9 10、巳知字母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,89 11、下列运算符中优先级最高的是( ) 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"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言编程实例100题

C语言程序实例100个(一) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++) for(k=1;k<5;k++) { if(i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k); } } ==================================================== ========== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000)

c程序设计作业

1、分析下面程序: # include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n"c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出什么信息?为什么? (3)如果将程序第3行改为 int c1,c2; 运行时会输出什么信息?为什么? 答:(1)程序运行不了,因为程序存在错误。正确的程序为:#include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出: (3)如果将程序第3行改为 int c1,c2; 运行时会输出:

因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出 c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。 问在键盘上如何输入? #include int main() { int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&a,&y); scanf("%c%c",&c1,&c2); return 0; } 答:输入如图: 输出如图: (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容, 供参考,感谢您的配合和支持)

c语言程序设计文档格式

封面 此页统一购买注意本页以下两项的填写 指导老师:李筠虞闯 完成日期:2016-6-5

成绩评定表

课程设计任务书

目录 1、内容及要求 ................................................ 错误!未定义书签。 2、功能分析 .................................................... 错误!未定义书签。 3、设计 ............................................................ 错误!未定义书签。 4、运行与测试 ................................................ 错误!未定义书签。 5、总结 ............................................................ 错误!未定义书签。参考文献 .......................................................... 错误!未定义书签。

1、内容及要求 1.1内容: 人事档案管理:建立数据文件(职工、部门、职称)完成:①数据录入②查询③插入、删除、修改④排序等功能。 1.2要求: 1.程序代码完成,编译运行成功。 2.数据输入首选采用文件的方式,其次键盘输入。 3.分析采用哪种合适的存储结构来储存数据 4.设计一定的用户界面,简洁。 2、功能分析 2.1. 程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。在人事管理过程中,由于预计记录对于一个单位的人事数来说太大,操作除了能够增加、删除、修改、保存等外,更多的情况是查询,且能够实现快速查询。特别是当需要动态变化时利用指针,例如插入和删除数据等操作时,为方便插入和删除人事记录,通过数据的自动的移动数据,实现动态管理。 2.2本系统涉及的模块主要有:开始、系统管理、人事管理、信息查询等四大模块。 (1)开始界面主要包括: 各个功能的选择。 (1)人事管理主要包括: (编号、姓名等)基本内容的录入,增加等。 (2) 系统管理主要包括:员工信息的修改,排序等。 (3) 信息查询主要包括:员工信息的查找、删除等。 2.3功能模块图

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

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语言程序设计个经典 例子 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

经典C语言程序设计100例1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题 23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色 33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数 37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序 40.将一个数组逆序输出

41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法 45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 & 52.学习使用按位或 | 53.学习使用按位异或 ^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形 59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题 69.圆圈报数问题70.计算一个字符串长度 71.编写输入/输出函数72.创建链表 73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序 80.海滩猴子分桃 81.已知公式条件求数字 82.八进制转换为十进制 83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

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

一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.wendangku.net/doc/b61468383.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发

C多线程编程实例实战

C多线程编程实例实战Prepared on 21 November 2021

C#多线程编程实例实战 问题的提出 所谓单个写入程序/多个阅读程序的线程同步问题,是指任意数量的线程访问共享资源时,写入程序(线程)需要修改共享资源,而阅读程序(线程)需要读取数据。在这个同步问题中,很容易得到下面二个要求: 1)当一个线程正在写入数据时,其他线程不能写,也不能读。 2)当一个线程正在读入数据时,其他线程不能写,但能够读。 在数据库应用程序环境中经常遇到这样的问题。比如说,有n个最终用户,他们都要同时访问同一个数据库。其中有m个用户要将数据存入数据库,n-m个用户要读取数据库中的记录。 很显然,在这个环境中,我们不能让两个或两个以上的用户同时更新同一条记录,如果两个或两个以上的用户都试图同时修改同一记录,那么该记录中的信息就会被破坏。 我们也不让一个用户更新数据库记录的同时,让另一用户读取记录的内容。因为读取的记录很有可能同时包含了更新和没有更新的信息,也就是说这条记录是无效的记录。 实现分析 规定任一线程要对资源进行写或读操作前必须申请锁。根据操作的不同,分为阅读锁和写入锁,操作完成之后应释放相应的锁。将单个写入程序/多个阅读程序的要求改变一下,可以得到如下的形式: 一个线程申请阅读锁的成功条件是:当前没有活动的写入线程。 一个线程申请写入锁的成功条件是:当前没有任何活动(对锁而言)的线程。 因此,为了标志是否有活动的线程,以及是写入还是阅读线程,引入一个变量m_nActive,如果m_nActive > 0,则表示当前活动阅读线程的数目,如果m_nActive=0,则表示没有任何活动线程,m_nActive <0,表示当前有写入线程在活动,注意m_nActive<0,时只能取-1的值,因为只允许有一个写入线程活动。 为了判断当前活动线程拥有的锁的类型,我们采用了线程局部存储技术(请参阅其它参考书籍),将线程与特殊标志位关联起来。 申请阅读锁的函数原型为:public void AcquireReaderLock( int millisecondsTimeout ),其中的参数为线程等待调度的时间。函数定义如下:public void AcquireReaderLock( int millisecondsTimeout ) { et FrameSDK中的一个例子,只是稍做修改。测试程序如下, using System; using ; using MyThreading; class Resource { myReaderWriterLock rwl = new myReaderWriterLock(); public void Read(Int32 threadNum) { ; try {

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