C语言拓展训练编程题

合集下载

C语言程序设计(第2版)李学刚 拓展训练 (1)[2页]

C语言程序设计(第2版)李学刚  拓展训练 (1)[2页]

单元3 拓展训练一、单项选择题1.表达式各运算量不能自动转换数据类型的下列选项是()。

A.char转换为intB.short转换为intC.unsigned char转换为unsigned intD.unsigned char转换为unsigned short2.定义int i;float a;double k;则下列表达式类型为double是().A.i*10+a+'k' B.i*10+a+(int)kC.i*10.0+a D.i*10+a+(float)k3.若x=2,y=3,则x&y的结果是()。

A.1 B.2 C.3 D.04.表达式0x13&0x17的值是是()。

A.0x17 B.1C.0x13 D.0x1f5.设有char x=3,y=6,z;z=x^y<<2;则z的二进制值是()。

A.00010100 B.00011000C.00011100 D.000110116.在位运算中,操作数每左移一位,其结果相当于是()。

A.操作数乘以2 B.操作数除以2C.操作数乘以4 D.操作数乘以47.设有定义语句:char c1=92,c2=92;则以下表达式中值为零的是()。

A.c1^c2 B.c1&c2C.~c2 D.c1|c28.设int b=2;表达式(b>>2)/(b>>1)的值是()。

A.4 B.2 C.0 D.89.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是()。

A.x || y B.x | y C.x & y D.x ^ y 10.设有int x=5;char z='a';则printf("%d\n",(x&1)&&(z<'z'));输出的结果是()。

A.0 B.1 C.2 D.311.在VC++6.0系统中,函数调用时实参的求值顺序是()。

04《C语言程序设计》课程内容目录结构及说明

04《C语言程序设计》课程内容目录结构及说明
单元4选择结构测验试卷
考试
考试说明:单元测验用于检查学生本单元的学习情况,进行成绩评定。试卷由客观题试卷和主观题试卷组成,客观题试卷请在指定时间内(40分钟)完成并提交,否则将无法获得成绩,客观题试卷由系统自动评阅,主观题试卷由教师评阅。
试卷说明:由客观题和主观题试卷组成,客观题型包括单项选择题、程序填空题和程序阅读题;主观题型包括程序设计题。客观题试卷需在指定时间(40分钟)内完成,主观题试卷需在指定日期内完成。
视频
教学课件4-9if…else if语句
文档
动画演示4-3判断输入字符类型
富文本
拓展知识4-2 if语句的嵌套
文档
常见问题4-1 if(表达式)后多加了分号
文档
常见问题4-2 if语句条件判断表达式中将等号书写成赋值号
文档
常见问题4-3 if语句后需执行的多条语句未构成复合语句
文档
4.4switch选择结构
主观卷说明:主观题型包括程序设计题。主观题试卷需在指定日期内完成。主观试卷由学生按评分标准进行互评,互评也是学习和提高的过程,请在规定日期内提交试卷、按评分标准完成互评。
单元4选择结构拓展训练
考试
考试说明:拓展训练强化学生综合运用本单元知识的能力,利于进一步深化本单元所学知识,试卷由客观题试卷和主观题试卷组成,客观题试卷请在指定时间内(40分钟)完成并提交,否则将无法获得成绩,客观题试卷由系统自动评阅,主观题试卷由学生按评分标准互评。
视频
教学课件4-3关系表达式
文档
教学视频4-4逻辑表达式
视频
教学课件4-4逻辑表达式
文档
教学视频4-5用C语言表达实际问题
视频
教学课件4-5用C语言表达实际问题

C语言程序设计教案第2章4 -6

C语言程序设计教案第2章4 -6
(2)表达式的名称和运算结果是由优先级最低的运算符决定的。
(3)关系或逻辑表达式的值只有两个:真(非零)和假(零)。
(4)分析复杂表达式时,应先找优先级别最高的运算符,同时,注意”()”的优先级别很高,它往往可以改变表达式的运算次序。通过分析复杂表达的运算逻辑,推导出短路原则。
(5)编写一个输出复杂表达式的值及每个参与变量的值的程序。预估程序结果,然后与实验结果对比,从而深入理解短路原则及表达式的运算规律。
【问题】ppt中的程序有哪些错误
【实践】基于强制类型范围缩放数据处理技术的成绩分档程序的设计与实现
授课阶段总结
本节内容以实践为主,以当前所学的知识点,学生可以组织起一个逻辑上相对完整的程序,所以本小节以程序设计思维的训练为重点内容。首先,引导学生设计一个可以进行人机交互的界面—编写一个计算器的菜单,通过选择进行计算,把第一章的计算语句copy到适当的位置(增量开发)。然后,运用本章的知识点,设计具有一定的容错能力和设计技巧(强制类型转换与归一化处理)的学生成绩分档程序。两个例子都用到了本章所介绍的if和switch嵌套句型。
2.4 应用实例(1学时)
教学内容
(1)计算器程序设计。
(2)强制类型转换。首先讲解数据类型之间的转换规则,然后讲解转换的方法及用途。
(3)学生成绩档案管理—成绩等级划分。
讲解思路
(1)本小节主讲设计思想,所以每一个例题都必须有流程图来表达设计思想,通过讲解流程图帮学生梳理思路。然后,把对编程实现时用到技巧及难点进行讲解。
(2)掌握switch多路选择语句,在解决问题时,能够正确选择switch和if语句。
(3)掌握选择语句的流程图的算法描述方法
重点:if选择结构和switch选择结构。

C语言程序设计思政版教案

C语言程序设计思政版教案
总结词
深入探讨函数的参数和返回值,包括如何传递参数、默认参数、可变参数以及如何使用返回值。
详细描述
熟悉函数的调用和作用域规则
讲解函数的调用方式,包括函数调用的语法和参数传递的过程。同时,介绍函数的作用域规则,包括局部变量和全局变量的作用域。
详细描述
总结词
04
通过介绍C语言的起源和发展,强调我国在计算机领域的创新和贡献,培养学生的民族自豪感。
总结词
深入理解数据结构
总结词
培养问题解决能力
总结词
提升编程实践能力
01
02
03
04
05
06
总结词
掌握算法设计基础
详细描述
利用C语言解决算法设计问题,培养学生的逻辑思维和创造力,提高学生的思维能力和解决问题的能力。
详细描述
通过C语言实现常见算法(如分治算法、动态规划、贪心算法等),帮助学生掌握算法设计的基础知识、原理和应用。
培养团队协作和沟通能力
在项目实施过程中,培养学生的团队协作和沟通能力,提高学生的职业素养和综合能力。
拓展知识面和技能领域
通过实际项目应用,拓展学生的知识面和技能领域,帮助学生更好地适应未来的职业发展需求。
C语言思政版教案总结与展望
思政元素与C语言知识的融合:在教案中,我们成功地将思政元素与C语言知识相结合,使学生在学习编程技能的同时,也接受了思想道德教育。例如,通过介绍我国著名科学家的事迹,激励学生为国家和民族的繁荣发展而努力学习。
详细描述
循环结构用于重复执行某段代码,直到满足特定条件为止。
总结词
循环结构通过使用while、do-while和for等关键字,使程序能够重复执行某段代码。循环结构在处理重复任务时非常有用,可以大大简化代码和提高程序的效率。

chap-1

chap-1
例1-2 编写程序,分别求和与乘积 虚拟的计算机指令系统(7条指令 )
指令1:Input X 将当前输入数据存储到内存的X单元 指令2:Output X 将内存X单元的数据输出。 指令3:Add X Y Z 将内存X单元的数据与Y单元的数据
相加并将结果存储到Z单元。 指令4:Sub X Y Z 将内存X单元的数据与Y单元的数据 相减并将结果存储到Z单元。 指令5:BranchEq X Y P 比较X与Y,若相等则程序跳 转到P处执行,否则继续执行下一条指令。 指令6:Jump P 程序跳转到P处执行。 指令7:Set X Y 将内存Y单元的值设为X。
例如:整数类型
包含的数据:{…,-2,-1,0,1,2,…} 作用在整数上的运算:+ 、 - 、 * 、 /等

北京交通大学计算机学院
数据表达

C语言提供的数据类型
基本数据类型:程序设计语言事先定义好,供
程序员直接使用,如整型、实型(浮点型)、 字符型等。 构造类型:由程序员构造,如数组、结构、文 件、指针等。

北京交通大学计算机学院
1.1
一个C语言程序
输入 4
例1-1求阶乘问题。输入一个正整数n,输出n!。 输出 24
#include <stdio.h> /* 编译预处理命令 */ int main(void) /* 主函数 */ { int n; /* 变量定义 */ int factorial(int n); /* 函数声明 */ scanf("%d", &n); /* 输入一个整数 */ printf(“%d\n”, factorial(n)); /* 调用函数计算阶乘 */ return 0; } • C程序由函数组成 int factorial(int n) /* 定义计算 n! 的函数 */ { • 有且只有一个主函数main int i, fact = 1; for(i = 1; i <= n; i++) /* 循环 */ fact = fact * i; return fact; }

实验一熟悉C语言的开发环境和C程序的上机步骤

实验一熟悉C语言的开发环境和C程序的上机步骤

实验⼀熟悉C语⾔的开发环境和C程序的上机步骤实验⼀熟悉C语⾔的开发环境和C程序的上机步骤⼀、实验⽬的和要求:1. 了解C程序设计的编译系统,熟悉各菜单的功能,掌握在该系统上编辑、编译、连接和运⾏⼀个C程序的⽅法。

2. 通过调试、运⾏简单的C程序,初步了解C语⾔源程序的特点⼆、实验内容:1. 编写C程序,运⾏时输出:Hello world!。

#include <stdio.h> //这是编译预处理指令int main() //定义主函数{ //主函数体开始printf("Hello world\n"); //输出return 0; //返回函数值为0}2. 编写C程序,运⾏时输出以下图形:********************#include <stdio.h>int main(){printf("*****\n");printf(" *****\n");printf(" *****\n");printf(" *****\n");return 0;}3. 编写C程序实现:输⼊两个整数a、b,输出它们的和。

#include<stdio.h>int main(){int a,b;printf("请输⼊两个整数:a,b\n");scanf("%d%d", &a,&b);printf("%d\n",a+b);return 0;}4. 编写C程序实现:输⼊两个整数a、b,输出它们中的最⼤者。

#include<stdio.h>int main(){int a,b;printf("请输⼊两个整数:a,b\n");scanf("%d%d", &a,&b);printf("%d\n",a>b?a:b);return 0;}5. 编写C程序实现:求三个数中的最⼤者。

C语言程序设计(第2版)李学刚 课堂实践答案 (8)[8页]

C语言程序设计(第2版)李学刚  课堂实践答案 (8)[8页]

单元8 拓展训练答案一、单项选择题1.下面有关结构体的叙述中,不正确的是(C )。

A.结构体中的每个成员均须作类型说明B.成员的类型可以是基本类型C.成员的类型不能是其它的结构体D.成员的类型可以是数组、指针2.下面有关typedef的叙述中,正确的是(D )。

A.typedef用于定义新类型B.typedef用于给已定义变量取别名C.typedef用于定义新变量D.typedef用于给已定义类型取别名3.若有如下定义,则下列叙述中正确的是(C )。

typedef struct stu { int a, b; } student ;A.stu 是结构体变量B.student 是结构体变量C.student 是结构体类型D.a和b是结构体变量4.若有以下说明和定义typedef int *INTEGER;INTEGER p,*q;以下叙述正确的是(A )。

A.p是基类型为int的指针变量B.可用INTEGER代替intC.q是基类型为int的指针变量D.P是int型变量5.设有以下说明语句struct ex{ int x;float y;char z;}example;则下面的叙述中不正确的是( B )。

A.struct是结构体类型的关键字B.example是结构体类型C.x,y,z都是结构体成员名D.struct ex是结构体类型名6.以下叙述中正确的是(C )。

A.结构体中的成员不能是结构体类型B.结构体的类型不能是指针类型C.结构体中成员的名字可以和结构体外其他变量的名称相同D.在定义结构体类型时就给结构体分配存储空间7.设有以下定义,正确的赋值语句是(A )。

struct student{int num;char name[10];}stu,*p;A.p=&stu.num; B.p=stu;C.p=&stu; D.p=(struct student*)stu.num; 8.若有如下定义,则下列输入语句中正确的是(B )。

数据结构(C语言描述)单元3 拓展训练参考答案

数据结构(C语言描述)单元3 拓展训练参考答案
Queue Q; InitQueue(&Q); while(!StackEmpty(S))
EnQueue(&Q,Pop(&S)); while(!QueueEmpty(Q))
Push(&S,DeQueue(&Q)); } 参考答案: (1)S={5,2,6,8,3} (2)利用队列 Q 将栈 S 逆置 3.假设两个队列共享一个循环向量空间如下:
10.使用一个 10 个元素的数组存储循环队列,如果采取少用一个元素空间
的方法来区别循环队列的队空和队满,约定队头指针 front 等于队尾指针 rear 时
表示队空。若为 front=8,rear=7,则队列中的元素个数为(C)。
A.0
B.1
C.99
D.100
11.设循环队列 Q 的容量为 M,如果采取少用一个元素空间的方法来区别循
puts("栈空"); return 0; } if(!i)
*x=S->data[S->top1]; else
*x=S->data[S->top2];
return 1; } 2.采用少用一个元素空间的方法来区别循环队列的队空和队满,循环队列 的描述如下: #define QueueSize 100 typedefchar DataType; typedefstruct cirqueue {
front[1]
x x
xx
x length[1]
length[0] x xx xx
front[0]
typedef struct {
DataType data[MaxSize]; int front[2],length[2]; } Queue2; 对于 i=0 或 1,front[i]和 length[i]分别为第 i 个队列的头指针和长度域。请在空 缺处填入合适的内容,实现第 i 个循环队列的入队操作。 int EnQueue(Queue2*Q,int i,DataType x) {//若第 i 个队列不满,则元素 x 入队列,并返回 1,否则返回 0 if(i<0||i>1)return 0; if( (1) )
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(1) 编程判断输入整数x的正负性和奇偶性。

(2) 银行整存整取存款不同期限的月息利率分别为:0.63% 期限一年0.66% 期限=年月息利率= 0.69% 期限三年0.75% 期限五年0.84% 期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

(3) 通过键盘输入字符,将输入的字符分为控制、数字、大写字母、小写字母和其他字符等五类。

(4) 简单计算器。

请编写一个程序计算表达式:datal op data2的值。

其中op为运算符+、—、*、/。

(5) 输入年份year和月month,求该月有多少天。

判断是否为闰年,可用如下C语言表达式:year%4==0 && year%100!=0 || year%400==0。

假设表达式成立(即表达式值为1),那么year为闰年;否那么,表达式不成立(即值为0),year为平年。

(6) 对输入的行、单词和字符进展计数。

我们将单词的定义进展化简,认为单词是不包含空格、制表符(\t)及换行符的字符序列。

例如:“a+b+c〞,认为是1个单词,它由5个字符组成。

又如:“xy abc〞,为2个单词,6个字符。

(7) 从键盘输入任意的字符,按以下规那么进展分类计数。

第-类'0','1','2','3','4','5','6','7','8','9'第=类'+','-','*','/','%','='第三类其它字符当输入字符'\'时先计数,然后停顿接收输入,打印计数的结果。

(8) 输入10个整数,求其中正数的个数及平均值,准确到小数点后两位。

(9) 一个首项大于0的等差数列的前四项和为26,前四项的积为880,求此数列。

(10) 输入a、b、c、d四个整数,求最小值min和最大值max。

(11) 编写程序,输入三角型的三条边长,求其面积。

注意:对于不合理的边长输入要输出数据错误的提示信息。

(1) 从键盘输入十个整数,求这十个整数之和。

(2) 从键盘中读入一系列字符,直到输入字母“a〞时才停顿。

(3) 对输入的行和字符进展计数一行是以一个回车符(’\n’)作为行完毕标记的,这样在程序中可以通过搜索’\n’对行进展计数。

当输入[CTRL+D]时表示文件输入完毕,停顿计数。

(4) 输出如以下图所示的下三角形乘法九九表。

1 2 3 4 5 6 7 8 9- - - - - - - - - - - - - - - - - - - - - -12 43 6 94 8 12 165 10 15 20 256 12 18 24 30 367 14 21 28 35 42 498 16 24 32 40 48 56 649 18 27 36 45 54 63 72 81(5) 求1到10的阶乘的和。

(6) 输入一个正整数,要求以相反的顺序输出该数。

例如输入12345,输出位54321。

(7) 求555555的约数中最大的三位数是多少?(8) 输入10个整数,求其中正数的个数及平均值,准确到小数点后两位。

(9) 输入n值,打印以下高为n的等腰三角形。

************************************ 当n=6时(10) 输入n值,请编程输出如以下图形(例n=3时)。

* ** *** ** *(11) 编程打印数字金字塔。

l1 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1(12) 编程输出以下高度为n 的图形。

1 3 6 10 15 212 5 9 14 204 8 13 197 12 1811 1716当n=6时(13) 请输入n 值,编写程序输出以下图形(例如n=5)。

1 2 3 4 51 123 41 1 12 31 1 1 1 21 1 1 1 1(14) 求以下算式的值:SUM=1+ 1/2+ 1/3+ 1/4+...+ 1/999+ 1/1000(15) 求下式的值:(16) 编写-个程序,读入一个整数N;假设N 为非负数,那么计算N 到2*N 之间的整数和;假设N 为一个负数,那么求2*N 到N 之间的整数和。

利用for 和while 写出两个程序。

(17) 100匹马驮100担货,大马一匹驮 3担,中马一匹驮 2担,小马两匹驮 1担。

试编写程序计算大、中、小马的数目。

〔18〕求解爱因斯坦数学题。

有一条长阶梯,假设每步跨2阶,那么最后剩余1阶,假设每步跨3阶,那么最后剩2阶,假设每步跨5阶,那么最后剩4阶,假设每步跨6阶那么最后剩5阶,假设每步跨7阶,最后才正好一阶不剩。

请问,这条阶梯共有多少阶?数组(1) 反向输出有5个元素的int 数组中各元素的值。

(2) 在一个二维数组中形成并输出如下矩阵:1 1 1 1 12 1 1 l 1A= 3 2 1 l l∑∑∑===++1015011001)*(k k k k k k k4 3 2 1 15 4 3 2 1(3) 求矩阵A(2 ×3)的转置矩阵B(3×2)。

1 2 3 1 4A= B= 2 54 5 6 3 6(4) 某班期终考试科目为高等数学(MT)、英语(EN)和物理(PH),有30人参加考试。

为评定奖学金,要求统计并输出一个表格,表格内容包括学号、各科分数、总分和平均分,并标出三1]课均在90分以上者(该栏标志输出为“Y〞,否那么为“N〞),表格形式如下:N0 HT EN PH SUM V >90------------------------------------1 97 87 92 276 92 N2 92 91 90 273 91 Y3 90 81 82 253 84 N可以将学生的学号和各科成绩放在数组a[30][4]中,然后进展统计处理。

(5) 有一个3 ×4的矩阵,求其中的最大元素的值。

(6) 编写程序实现将字符串str2拷贝到字符串strl。

(7) 输入英文的星期几,查找星期表后输出对应的数字。

具体的算法是:假设发现与表中某项一样,那么输出该字符串在表中的位置(序号):假设查到表尾仍不一样,那么输出错误信息。

设星期表的内容如以下图所示。

(8) 给定某年某月某日,将其转换成这一年的第几天并输出。

(9) 如果一个正整数等于其各个数字的立方和,那么该数称为阿姆斯特朗数(亦称为自恋性数)。

如407=43+03+73就是一个阿姆斯特朗数。

试编程求1000以内的所有阿姆斯特朗数。

(10) 写出下面给出的数组说明中所定义的数组的数组名、类型、维数、数组体积,并给出各数组元素在计算机中占用存储单元的情况。

int x[4]={1,2,3,4};float y[3][4]={1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8};int z[2][2][3]={1,2,3,4,5,6,7,8,9,10,11,12};int i[2][3]={{ },{4,5,6}},j[2][2][2]={{ },{3,4},{ },{7,8}};char c1[10]={〞Happy.〞},c2[ ][3]={{〞*〞},{〞**〞},{〞*〞}};(11) 设某班50人,写一程序统计某一单科成绩各分数段的分布人数,每人的成绩随机输入,并要求按下面格式输出统计结果(〞*〞表示实际分布人数)。

0 一一39 *40 一一49 **50 一一59 *****............90 一一100 ****(12) 输入=维数组a[3][5],打印其中最小值和最大值及其对应的行列位置。

(13) 输入5×5的数组,编写程序实现:(a)求出对角线上各元素的和;(b)求出对角线上行、列下标均为偶数的各元素的积;(c)找出对角线上其值最大的元素和它在数组中的位置。

(14) 简单的密码加密程序。

其加密过程是先定义一张字母加密对照表。

输入输出输入输出a d i ab w k bc k ; cd :w ee I将需要加密的一行文字输入加密程序,程序根据加密表中的对应关系,可以很简单地将输入的文字加密输出,对于表中未出现的字符那么不加密。

(15) 使用二维数组输入〞BASIC〞,〞ADA〞,〞Pascal〞,〞C〞,〞Fortran〞,将它们按从小到大的顺序排列后输出。

(16) 某运动会上女子百米运发动决赛成绩。

要求编写程序,按成绩排序并按名次输出排序结果,包括名次、运发动号、成绩三项内容。

(17) 将矩阵A[2][3]的六个元素送入矩阵A[3][2]中,使其顺时针旋转90度。

例:1 2 3 4 1a= b= 5 24 5 6 6 3(18) 输入10个人的序号和成绩,对成绩从小到大进展排序,输出排序后的序号和成绩(19) 对数组A中的N(0<N<100)个整数从小到大进展连续编号,要求不能改变数组A中元素的顺序,且一样的整数要具有一样的编号。

例如:A=(5,3,4,7,3,5,6) 那么输出为:(3,1,2,5,1,3,4)(20) 现将不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩〞上的素数与“左肩〞上的素数之差。

请编程求出:第二行数中是否存在这样的假设干个连续的整数,它们的和恰好是1898?假设存在的话,又有几种这样的情况?第一行:2 3 5 7 11 13 17 .....1979 1987 1993第二行:1 2 2 4 2 4 .....8 6(21) 下面是5×5的螺旋方阵。

请编程生成n×n(n<10)阶方阵。

1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9函数(1) 将一个数的数码倒过来所得到的新数叫原数的反序数。

如果一个数等于它的反序数,那么称它为对称数。

求不超过1993的最大的二进制的对称数。

(2) 将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不许有重复数字,也不许同其它组的三个数字重复,要求将每组中的三位数组成一个完全平方数。

(3) 对数组A中的N(0<N<100)个整数从小到大进展连续编号,要求不能改变数组A中元素的顺序,且一样的整数要具有一样的编号。

例如:A=(5,3,4,7,3,5,6) 那么输出为:(3,1,2,5,1,3,4)(4) 编写函数insert(s1,s2,f),实现在字符串s1中的指定位置f处插入字符串s2。

相关文档
最新文档