第二章 基本数据类型和表达式
项目实训
[实训 2-1]定义有关学生个人信息的变量名,如姓名、性别、家庭地址等; [实训 2-2]定义有关科目相关信息的变量名,如英语教师、数学用书等;
[实训 2-3]定义有关成绩的变量名,如英语期末成绩、高等数学最高分、班级平均分等;
习题
1. C语言的数据类型有四大类,分别是 、 、 、 。 2. 在C语言中,程序运行期间,其值不能被改变的量叫 。
3. 在C语言中,常量有不同的类型,包括 、 、 和 等。 4. 符号常量是指 。
5. 整型常量和实型常量也称为 ,它们有正负之分。 6. C语言在定义变量的同时说明变量的 ,系统在编译时就能根据变量定义及其
为它分配相应数量的存储空间。
7. 在C语言中,标识符只能由 、 和 三种字符组成,且第一个字符必须 或 。 8. 9. 10. 11.
可以用来表示C的整常数的进制是 、 、 。
整型变量可分为 、 、 、 四种,分别用 。 在一个整常量后面加一个字母 和 ,则认为是long int 型常量。 在C语言中,实数有两种表现形式,是 和 。
12. C的字符常量是用 括起来的一个字符。
13. 在一个变量定义语句中可以同时定义多个变量,变量之间用 隔开。
14. 在ASCⅡ代码表中可以看到每一个小写字母比相应的大写字母的ASCⅡ代码大 。
15. 在C 语言中,系统在每一个字符串的结尾自动加一个“字符串结束标志符”即 ,以便系统据此数据判断字符串是否结束。 16. 表达式10+'a'+1.5-0.5*'b'的结果 。
17. 表达式10+'a'+1.5-567.345/'b'的结果是 型数据。
18. 如果int i=3,则printf(\执行后输出是 ,i的结果是 。 19. 表达式x=(a=3,6*3)和表达式x=a=3,6*a分别是 表达式和 表达式,两个表达式执行完的结果是 和 .执行后X的值分别是 , . 20. 在C语言中的运算符优先级最小的是 运算符.
21. 若有声明“int a=30, b=7;”,则表达式“!a+a%b”的值是 。
第三章 输入/输出函数
项目实训
[实训 3-1]编写按格式输入学生序号、姓名、性别、班级四项信息的函数,并在屏幕上显示。 [实训 3-2]编写输入学生英语、高等数学、概率和统计、C语言四科成绩的函数,并在屏幕上显示。
[实训 3-3]编写校对学生编号是否有重复的函数。
[实训 3-4]编写统计学生总人数、男女生数量、某科不及格人数的函数各一个。
习题
1. 从键盘上输入10个整数,求它们的几何平均数和算术平均数。
2. 将字母表加密,规则:所有字符的ASCII码循环向后移动6位,即a→f,b→g?以此类
推。由用户输入一串字符串,然后在屏幕上显示密文。
3. 从键盘输入一个字符串,统计其中大写字母、小写字母、数字、空格和其他字符的数量,
分别显示。 4. [提高题]从键盘输入三角形的三边长,求三角形的面积,要求能实现判定是否为三角形,
以及输入边长是否不为负数和0。
第四章 控制语句
项目实训
[实训 4-1]编写遍历某班学生指定信息(属性)并按格式输出的函数。
[实训 4-2]编写按指定科目成绩按降序排列的函数,建议使用冒泡排序法。 [实训 4-3]编写求指定科目成绩平均成绩的函数。 [实训 4-4]编写求指定学生总学分的函数。
习题
1. 输出1~1000之间所有的素数。 2. 用循环语句分别输出以下图形:
* ***** * ***** ** **** ** **** *** *** *** ***
**** ** **** ** ***** * ***** *
(1) (2) (3) (4)
3. 用C语言计算二元一次方程aX+bX+c=0的两个根。要求:系数a、b、c由用户
随机输入,且对复根与无根情况有判定和处理机制。 4. 由用户随机输入一个整数,对此整数进行质因数分解。要求:首先能判定输入的
是否为整数且合数,输出格式为S=s1*s2*…sn,其中S为待分解整数。
5. 由用户随机输入两个整数,求其最大公约数和最小公倍数。 6. [提高题] 设黑箱中有n个黑球和m个白球,形状体积相同。取3次球,每次2个。
求最后6个球中黑球多于白球的概率是多少?要求:n和m由用户随机输入,且应考虑n和m的取值区间对结果的影响,并有相应判定处理机制。
2
第六章 编译预处理指令
项目实训
[实训 6-1]用宏定义计算某个学生的各科成绩方差;
[实训 6-2]用宏定义将学生成绩按四舍五入精确到个位;
[实训 6-3]定义一个宏,使其能将输入的学生英文名转换为全大写字母组成;
习题
1. 用宏实现将输入的一行字符依次全部转化为大写字母,字符串由用户输入。 2. 用宏实现将输入的一行字符依次全部转化为其ASCII码值,字符串由用户输入。 3. 用两个宏来计算S?
x?y,其中,x和y的值由用户指定,要求有错误检验机制。
第十章 文件操作
项目实训
[实训 10-1]编写函数,从stu_score.txt文件中读出所有指定科目不及格的学生的全部信息,然后写入文件stu_fail_XX.txt中。其中,文件名中的XX为指定科目名,由用户选择。(如一共有English、Math、Painting三科,用户指定输出英语不及格的学生信息,则生成文件名为stu_fail_English.txt)。
[实训 10-2]编写函数,从键盘输入学生的基本信息,然后写入到文件stu_info.txt中。 [实训 10-3]编写函数,从stu_info.txt中读取用户指定属性(如性别、序号等)为关键字的学生信息。
习题
1. 将文件A中的字符串中的字母选出来,写到文件B中,其余字符写到文件C中。 2. 将数学成绩按升序排列方法,将stu_score.txt中的学生信息重新排列。
3. [提高题]自查资料,试用C语言实现对DBF文件的读写,然后使用DBF文件将学生信息
等重新记录。
2011 模拟 c语言 高职
注意:
本套模拟题主要模拟命题形式与考核范围。真实竞赛题的数量、难度可能与此套模拟题有差异。
说明:
本试卷包含两种题型:“代码填空”与“程序设计”。
填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不多于一条语句(即不能出现分号)。 编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。
1. 代码填空(满2分)
形如:“abccba”,“abcba”的串称为回文串,下列代码判断一个串是否为回文串。请补充空白的部分。
char buf[] = \ int x = 1;
for(int i=0; i if(___________________) { } x = 0; break; printf(\是\否\ 2. 代码填空(满分3分) 下列代码把一个二进制的串转换为整数。请填写缺少的语句; char* p = \ int n = 0; for(int i=0;i } n = __________________; printf(\ 3. 代码填空(满分3分) 假设a,b,c是3个互不相等的整数。下列代码取出它们中居中的数值,记录在m中。其中的swap()函数可以交换两个变量的值。请完善代码。 if(a>b) swap(&a, &b); if(b>c) swap(&b, &c); ______________________; int m = b; 4. 代码填空(满分6分) 下面函数的目的是求出某个日期是该年度的第几天。试完善之。 如果传入:year=1980,month=1, day=1 则返回 1 如果传入:year=1980,month=2, day=1 则返回 32 int getDayOfYear(int year, int month, int day) { } int days _____________________; int flag =(year%4==0 && year0!=0) || year@0 == 0 ? 1 : 0; int sum = day ; for(int i=0;i sum += days[flag][i]; { return sum; 5. 代码填空(满分7分) 计算3个A,2个B可以组成多少种排列的问题(如:AAABB, AABBA)是《组合数学》的研究领域。但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。请完善它。 int f(int m, int n) { } if(m==0 || n==0) return 1; return _______________________; 6. 代码填空(满分10分)