C程序设计训练题目

C程序设计训练题目
C程序设计训练题目

C程序设计训练题目

1、日历问题

问题描述

在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和2100 不是闰年,而1600, 2000 和2400是闰年。给定从公元2000年1月1日开始逝去的天数,你的任务是给出这一天是哪年哪月哪日星期几。

输入数据

输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。输入最后一行是?1, 不必处理。可以假设结果的年份不会超过9999。

输出要求

对每个测试样例,输出一行,该行包含对应的日期和星期几。格式为“YYYY-MM-DD DayOfWeek”, 其中“DayOfWeek” 必须是下面中的一个:"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" and "Saturday“。

输入样例

1730

1740

1750

1751

-1

输出样例

2004-09-26 Sunday

2004-10-06 Wednesday

2004-10-16 Saturday

2004-10-17 Sunday

2、生理周期

问题描述

人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23 天、28 天和33 天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高峰出现的时间)。你的任务是给定一个从当年第一天开始数的天数,输出从给定时间开始(不包括给定时间)下一次三个高峰落在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现三个高峰同天的时间是12,则输出2(注意这里不是3)。

输入数据

输入四个整数:p, e, i 和d。p, e, i 分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d 是给定的时间,可能小于p, e, 或i。所有给定时间是非负的并且小于365, 所求的时间小于等于21252。

输出要求

从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)。

输入样例

0 0 0 0

0 0 0 100

5 20 34 325

4 5 6 7

283 102 23 320

203 301 203 40

-1 -1 -1 -1

输出样例

Case 1: the next triple peak occurs in 21252 days.

Case 2: the next triple peak occurs in 21152 days.

Case 3: the next triple peak occurs in 19575 days.

Case 4: the next triple peak occurs in 16994 days.

Case 5: the next triple peak occurs in 8910 days.

Case 6: the next triple peak occurs in 10789 days.

3、约瑟夫问题

问题描述

约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,再从出圈的下一个开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。

输入数据

每行是用空格分开的两个整数,第一个是n, 第二个是m ( 0 < m, n < 300)。最后一行是:

0 0

输出要求

对于每行输入数据(最后一行除外),输出数据也是一行,即最后猴王的编号

输入样例:

6 2

12 4

8 3

0 0

输出样例:

5

1

7

4、恺撒Caesar密码

题目描述

Julius Caesar 生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F),其他字符不变,并且消息原文的所有字母都是大写的。

密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

输入数据

最多不超过100个数据集组成。每个数据集由3部分组成:

起始行:START

密码消息:由1到200个字符组成一行,表示Caesar发出的一条消息

结束行:END

在最后一个数据集之后,是另一行:ENDOFINPUT

输出要求

每个数据集对应一行,是Caesar 的原始消息。

输入样例

START

NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX

END

START

N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ

END

START

IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ

END

ENDOFINPUT

输出样例

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES

I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME

DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE

5、身份证校验

题目描述

我国国标〖GB 11643-1999〗中规定:公民身份号码是18位特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。其校验码(最后一位)计算方法和步骤为:

(1)十七位数字本体码加权求和公式

S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和

其中Ai:表示第i位置上的身份证号码数字值

Wi:表示第i位置上的加权因子,前17位加权因子从左到右分别为

Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

(2)计算模

Y = mod(S, 11)

(3)通过模Y

得到和为:167;则模为y=167%11=2

查(3)得校验码为x

请按上面所述步骤编程,输入一个二代身份证号,检查该身份证是否正确。

6.学生成绩管理

学生信息包括:学号、姓名、年龄、性别、出生年月。主要功能:

(1)能按学期、按班级完成对学生成绩的录入、修改。

(2能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序。(3)能查询学生成绩。

(4)能按班级输出学生的成绩单。

7、学生成绩的文件管理

(1)先用记事本编辑文件stu1.dat存储一个班学习成绩。然后在C环境下,建立一个学生信息的结构体,用r方式打开上述文件,再用fscanf读入、用printf在屏幕上显示文件内容。

(2)利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。接着用冒泡法利用平均分的高低排出名次。最后用fprintf将每个学生的信息写入到stu2.dat

文件。

8、校园卡消费记录

学生信息包括:学号或工号、学院、姓名、消费地点、日期、时间、金额。主要功能:

(1)能按消费地点完成对消费的录入、修改。

(2能按学号或工号统计消费,求消费者的本月的总消费及日均消费余额,并能根据学生的月消费进行排序。

(3)能查询消费记录清单。

(4)能按工号或学号排序以后输出消费清单。

前5道题任抽一道,后3道任抽一道,

测试时,断开网络,断开优盘口,不准看手机,不准看资料,抽签其中一道题,默写出来,请机房将D盘清空,C盘写保护等。

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

经典练习C语言编程的题目及答案整理

1.逆序输出正三位数 #include int main() { int input,output= 0; scanf("%d",&input); while(input != 0) { output = output*10 + input%10; input /= 10; } printf("%d\n",output); return 0; } 2.百元找零函数 #include int main() { int amount=100; int price=0; printf("请输入金额(元)"); scanf("%d",&price); printf("请输入票面"); scanf("%d",&amount); int change=amount-price; printf("找您%d元。\n",change); return 0; } 3.求平均数 #include int main() { int a,b; scanf("%d %d",&a,&b);

double c=(a+b)/2.0; /* scanf("%d",&amount); 这是注释,我随便放的,没意义 int change=amount-price;*/ printf("%d和%d的平均值是%f\n",a,b,c); return 0; } 4.写出程序的输出: int i=1; switch ( i/3 ) { case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); } 正确答案是:zeroonetwo。 5.水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 13 + 53+33。本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3<=N<=7)。 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。 输入样例: 3 输出样例: 153 370 371 407

编程基础练习题

第二章基本数据类型和运算 因为题目略有删减,可能编号不连续,请见谅 一、单项选择题 1.下列数据中属于“字符串常量”的是(A )。 A. "a"B.{ABC} C.?abc\0?D.?a? 4.字符串"ABC"在内存占用的字节数是( B )。 A.3 B.4C.6 D.8 5.字符串" \?ABCD\? "内存占用的字节数是( C )。 A.4 B.6 C.7D.8 6.在C语言中,合法的长整型常数是( A )。 A.0L B.4962710 C.0.054838743 D.2.1869e10 7. 在C语言中,合法的短整型常数是( D )。 A.0L B.0821 C.40000 D.0x2a 8.下列数据中不属于“字符常量”的是( C )。 A.…\xff?B.…\160?C.?070?D.070 9.char型常量的内存中存放的是( A )。 A.ASCII代码值B.BCD代码值C.内码值D.十进制代码值 11.常数的书写格式决定了常数的类型和值,03322是( B )。 A、16进制int类型常数 B、8进制int类型常数 C、10进制int类型常数 D、10进制long int类型常数 12.“e2”是( D ) 。 A、实型常数100 B、值为100的整型常数 C、非法标识符 D、合法标识符 13. 要为字符型变量a赋初值,下列语句中哪一个是正确的( A )。 A、char a=?3?; B、char a=”3”; C、char a=%; D、char a=*; 14. 要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的(C )。 A、float x,y,z=3.14; B、float x,y,z=3*3.14; C、float x=3.14,y=3.14,z=3.14; D、float x=y=z=3.14; 15. 语句float pi=3.1415926535; 将( D )。 A、导致编译错误 B、说明pi为初值3.1415926535的单精度实型常数 C、导致运行时的溢出错误 D、说明pi为初值3.141593的单精度实型常数 16. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B)。 A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算 C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算 17. 关系运算符中优先级最低的运算符是( C )。 A、“>=”和“<=” B、“>”和“<” C、“==”和“!=” D、“<=”和“<” 18. 逻辑运算符中,运算优先级按从高到低依次为( D )。 A、&&,!,|| B、||,&&,! C、&&,||,! D、!,&&,|| 19. 对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的( A )。 A、0为假非0为真 B、只有1为真 C、-1为假1为真 D、0为真非0为假 20. 表达式x&&1等效于( C )

程序设计练习题

第六章程序设计 1、下列程序运行时,若从键盘上输入20,则屏幕上的输出是多少?Input “请输入一个数:” to x If x<=10 Y=2*x-5 Else Y=2*x+5 Endif ? Y 2、执行下列程序后,变量A的值为多少?B的值为多少? A=100 B=200 IF A-B<0 T=A A=B B=T ENDIF ? A,B 3、下列程序运行时,若从键盘上输入25时,屏幕上显示的结果是多少?INPUT “X=” TO X DO CASE CASE X>10 ? “A1” CASE X>20 ? “A2” OTHERWISE ? “A3” ENDCASE RETURN

4、执行下列程序,变量T中的值是多少? T=1 FOR I=1 TO 5 T=T*I ENDFOR ? “T=”,T 5、执行下列程序,屏幕上输出的是多少? D=”” SS=”ABCDE” FOR I=1 TO 5 D=D+SUBSTR(SS,6-I,1) ENDFOR ? D 6、执行下面程序,屏幕上输出的Y是多少? STORE 0 TO X,Y DO WHILE .T. X=X+1 DO CASE CASE INT(X/2)=X/2 LOOP CASE X>=10 EXIT OTHERWISE Y=Y+X ENDCASE ENDDO ? Y 7、下列程序运行时,若从键盘上输入5,则屏幕上输出的是_______。Input "请输入一个数:" to x Do case

Case x>10 ?"A1" Case x>20 ?"A2" otherwise ?"A3" Endcase Return 8、执行下列程序片段后,变量T中的值是_______。 T=1 FOR I=1 TO 5 T=T*I ENDFOR ? "T=",T 9、如下程序显示的结果是。 s=1 i=0 do while i<8 s=s+i i=i+2 Enddo ?s 10、如下程序的输出结果是。 i=1 DO WHILE i<10 i=i+2 ENDDO ?i 11、执行下列程序后,变量A的值为_______,变量B的值为_______。

汇编语言程序设计练习题及答案

一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。) 1.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是(D) A.DB 41,42,43,44,45,46 B.DW 4142H,4344H,4546H C.DW ‘AB’,‘CD’,‘EF’D.DW ‘BA’,‘DC’,‘FE’ 2.DA2 DB‘AB’,‘CD’ ┇ MOV AX,WORD PTR DA2+1 上述语句执行后AX中的值是(D) A.‘AD’B.‘BC’ C.‘DA’D.‘CB’ 3.下列数据定义语句中可实现留空20H个字节存储单元的是(D) A.DB 20 DUP(?) B.DW 20H DUP(?) C.DB 10H DUP(4 DUP(?)) D.DD 08H DUP(?) 4.如某存储器分段时,表示偏移地址是17位二进制代码,那么一个段最多的存储单元数是(D) A.32K字节B.32K字 C.64K字节D.64K字 5.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是(B)A.BX B.BP C.SI D.DI 6.下列指令中有语法错误的是(C) A.PUSH AX B.PUSH [20H+SI+BX] C.POP CS D.PUSH CS 7.执行PUSH BP指令时,目的操作数的物理地址表达式是(D) A.16*SS+BP B.16*DS+BP C.16*CS+IP D.16*SS+SP 8.把BL中的数据输出到端口8CH中正确指令是(C) A.OUT 8CH,BL B.IN 8CH,BL C.MOV AL,BL D.MOV AL,BL OUT 8CH,AL IN 8CH,AL 9.结果为零的条件转移指令,其测试条件是(A) A.ZF=1 B.ZF=0 C.SF=l D.SF=0 10.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是 MOV CH,0 MOV CH,0FFH ZERO:MOV DH,CH(C) A.JNZ ZERO B.JS ZERO

经典练习C语言编程的题目及标准答案整理

1.逆序输出正三位数 #include intmain() { intinput,output=0; scanf("%d",&input); while(input != 0) { output = output*10 + input%10;input/= 10; } printf("%d\n",output); return 0; } 2.百元找零函数 #include int main() { intamount=100; int price=0; printf("请输入金额(元)"); scanf("%d",&price); ?printf("请输入票面"); scanf("%d",&amount); int change=amount-price; printf("找您%d元。\n",change); ? return0; } 3.求平均数 #include int main() { int a,b; scanf("%d%d",&a,&b);

double c=(a+b)/2.0; /*scanf("%d",&amount); 这是注释,我随便放的,没意义 int change=amount-price;*/ printf("%d和%d的平均值是%f\n",a,b,c); return0; } 4.写出程序的输出: int i=1; switch(i/3){ case0:printf("zero"); case1:printf("one"); case2:printf("two"); } 正确答案是:zeroonetwo。 5.水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 13 + 53+33。本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3<=N<=7)。 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。 输入样例: 3 输出样例: 153 370 371 407

程序设计语言 习题与答案

第六章习题 P159-161 一、复习题 1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。 自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。用机器指令形式编写的程序称为机器语言,用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。这些使用助记符语言的语言后来就被称之为汇编语言。(P144- P146) 2、试述计算机语言的类型,它们各有什么特点? 1.机器语言,是最低级的语言,由二进制码组成,最早期的程序员通过在纸带上打点来写程序 2.汇编语言,用助记符和地址符代替了二进制码,更易于编写。 3.高级语言,相对于汇编语言又上升了一步,更接近于自然语言,如C语言、Pascal、Java、C#等都是高级语言。(P145-147) 3、列举程序设计语言的几种范型。 程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。(P147-149) 4、简述语言虚拟机。 提示:语言虚拟机是某种语言的解释器。语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。这样使得硬件系统能够支持这种语言编写的程序的有效执行。目前最流行的语言虚拟机是Java虚拟机。(P156) 5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么? 提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。 编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。编译方式是一次编译,然后执行程序可以反复多次执行。 解释是另一种将高级语言转换为可执行程序的方式。与编译不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。 近来随着网络的发展,为了实现跨平台但同时又保证一定的效率,出现了编译、解释混合的方式,先用伪编译形成效率较高中间代码,再用语言虚拟机进行解释执行,以屏蔽掉硬件的差异。 (P154-157) 6、请画出编译程序的总框图。如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题? 作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义;其次,

程序设计训练报告

程序设计训练 报告 目录 一、设计题目 二、开发平台 三、需求分析 四、信息描述 五、总体分析 (一)、定义结构体体变量 (二)、功能模块 (三)、流程图 六、运行界面设计 七、设计心得 八、附录 源程序代码

一、设计题目: 职员管理系统 二、开发平台 开发平台:vc++6.0 企业版, 使用系统,winXP以上 三、需求分析 1、该程序可用于对企业员工工资情况基本信息的保存、查询等操作,以实现对企业员工工资的管理。 2、其中更新功能包括:添加工资信息、删除工资信息、修改工资信息、可根据需要添加一个或多个员工工资信息,也可对个别员工信息进行适当的删除或修改。以便随时更新员工工资信息。 3、程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据两种不同的方法查询:按工作证号查询和按查询。以满足不同的需要。 四、信息描述 职工信息包括职工号、、基本工资、奖金、扣款、税款,实发工资。 五、总体方案 (一)定义结构体体变量 typedef struct employee { char num[10]; //保存职工编号 char name[15]; //保存职工 float jbgz; //保存职工基本工资

float jj; //保存职工奖金 float kk; //保存职工扣款 float yfgz; //保存职工应发工资 double sk; //保存职工税款 double sfgz; //保存职工实发工资 }ZGGZ; (二)功能模块 菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。 (1)输入模块 按照编号,,基本工资,奖金,扣款的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。通

语言程序设计期末复习综合练习题答案

Java语言程序设计期末复习综合练习题 一、选择题。 2. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的() A、public static void main() B、public static void main( String args[] ) C、public static int main(String [] arg ) D、public void main(String arg[] ) 答:B 4.下列哪个是合法的Java标识符() A、Tree&Glasses B、FirstJavaApplet C、_$theLastOne D、 答:B 、 C 5.Java Application源程序的主类是指包含有()方法的类。 A、main方法 B、toString方法 C、init方法 D、actionPerfromed方法 答:A 6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。 A、8 B、16 C、32 D、64 答:B 7.设 a = 8,则表达式 a >>> 2 的值是( )。 A、1 B、2 C、3 D、4 答:B 8.若a的值为3时,下列程序段被执行后,c的值是多少() c = 1; if ( a>0 ) if ( a>3 ) c = 2; else c = 3; else c = 4; A、1 B、2 C、3 D、4 答:C 9.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。 A、import .* ; B、import ; C、import .* ; D、import ; 答:C 10.对于构造函数,下列叙述正确的是()。 A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 B、构造函数的返回类型只能是void型。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 答:A C D 11.下面的是关于类及其修饰符的一些描述,正确的是:()。 A、abstract类只能用来派生子类,不能用来创建abstract类的对象。 B、final类不但可以用来派生子类,也可以用来创建final类的对象。

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.360docs.net/doc/b211533970.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

《程序设计基础》练习题

《程序设计基础》综合练习题1009 姓名:学号: 一.选择题(以熟悉概念为主) 1.在C++的结构化程序设计框架中,程序的基本组成单元是___。 A.函数B.类 C.关系D.数据结构 2.下列特性中, C 与C++ 共有的是_____。 A. 继承 B. 封装 C. 多态性 D. 函数定义不能嵌套 3.面向对象程序设计思想的主要特征中,不包含____。 A.继承性B.封装性和信息隐藏性 C.功能分解、逐步求精D.多态性 4.在C++中所有的函数名称后面都紧跟着一对____,其中既可以没有内容,也可以包含函有选举权的参数。 A.( ) B.< > C.[ ] D.{ } 5.在C++的面向对象程序设计中,类与类之间通过____来实现独立性。 A.友元B.继承C.派生D.封装 6.下列哪个是C++语言的有效标识符?____。 A._No1 B.No.1 C.12345 D.int 7.在C++语言中,所有函数说明都必须指明返回值类型,没有返回值的函数应说明为____类型的函数。 A.int B.char C.float D.void 8.下列字符常量的写法中,错误的是____。 A.?\105?B.?*?C.????D.?\a? 9.下列变量的存储分配方式中,系统不为其分配内存空间的是____。 A.auto变量B.register变量C.static变量D.extern变量 10.如int型变量x的初始值为1,变量y和t皆为int型,且表达式y=(t=x,x+=t, t),则变量y的值为____。 A.0 B.1 C.2 D.不确定 11.下列关于C++运算符结合性的说法中,正确的是____。 A.赋值运算符是左结合的B.复合赋值运算符是左结合的 C.单目运算符是左结合的D.双目算术符是左结合的 12.表达式18/5*sqrt(4.0)/5值的数据类型是____。 A.int B.double C.float D.不确定 13.下列代码的输出结果是____。 int j=int( ); double d=double( ); cout<

模块化程序设计练习题及答案

第四章模块化程序设计练习题及参考答案 一、填空题 1、以下程序的运行结果是(111),把x定义为静态变量运行结果是(123)。void increment(void) { int x=0; x+=1; printf("%d",x);} main() { increment(); increment(); increment(); } 2、若输入的值是-125,以下程序的运行结果是(-125=-5*5*5) #include "" main() { int n; void f(int n); scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=fabs(n); fun(n); } void fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf("%d",k); n=n/k; if(n>1)printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 3、设有以下宏定义: #define WIDTH 80 #define LENGTH WIDTH+40 则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880) 4、设有以下宏定义: #define WIDTH 80 #define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400) 5、下面程序的运行结果是(5) #define DOUBLE(r) r*r main() { int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);} 6、下面程序的运行结果是(36) #define MUL(z) (z)*(z) main() { printf("%d\n",MUL(1+2)+3); } 7、下面程序的运行结果是(212) #define POWER(x) ((x)*(x)) main() { int i=1; while(i<=4) printf("%d,",POWER(i++)); } 8、下面程序的运行结果是(9) #define MAX(a,b) (a>ba:b)+1 main() { int i=6,j=8,k; printf("%d\n",MAX(i,j)); } 二、选择题 1、以下正确的说法是(D)建立自定义函数的目的之一是: A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 2、以下正确的说法是(B) A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。 C)系统根本不允许用户重新定义标准库函数。 D)用户若需调用标准函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。 3、以下正确的函数定义形式是(C) A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y) 4、以下正确的说法是(D)。在C语言中: A)实参与其对应的形参各占用独立的存储单元。 B)实参和与其对应的形参共占用一个存储单元。 C)只用当实参和与其对应的形参同名时才共占用存储单元。

C.语言程序设计试题试题与答案

C 语言程序设计试卷,C++语言程序设计试题及答案 一、单项选择题(每题1分,共20分) 1. C 语言规定:在一个源程序中, main 函数的位置(C). A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 2. 下面四个选项中,均是合法浮点数的选项是 A. +1e+15e-9.403e2 B. -.6012e-4-8e5 C. 123e1.2e-.4+2e-1 D. -e3.8e-45.e-0 3.若a=-14,b=3,则条件表达式 avb?a:b+1的值为(A)。 A. -14 B.-13 C.3 D.4 4. 已知:intn,i=1,j=2; A.1,2B.1,3C.2,2D.2,3 5. 为了判断两个字符串s1和s2是否相等,应当使用(D) A.if(s1==s2) B.if(s 仁s2) C. if(strcm p( s1,s2)) D. if(strcm p( s1,s2)==0) 6. 以下正确的描述是(B) o (B)。 执行语句n=ivj?i++:j++; 则i 和j 的值是(c).

A. 函数的定义可以嵌套,但函数的调用不可以嵌套。 B. 函数的定义不可以嵌套,但函数的调用可以嵌套。 C. 函数的定义和函数的调用均不可以嵌套。 D. 函数的定义和函数的调用均可以嵌套。 7. 在C 语言中,下面对函数不正确的描述是 A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。 B. 允许函数递归调用。 C. 函数形参的作用范围只是局限于所定义的函数内。 D. 子函数必须位于主函数之前。 8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是 A. 该变量只在该复合语句中有效 B. 该变量在该函数中有效 C. 该变量在本程序范围内均有效 D. 该变量为非法变量 9. 以下正确的函数形式是(D)。 A. doublefun(intx,inty){z=x+y;retum z;} B. fun(intx,y){int z; return z;} C. fun(x,y){intx,y;doublez;z=x+y;returnz;} D. doublefun(intx,inty){doublez;z=x+y;returnz;} 10. 以下程序的输出结果是(B)。 #includevstdio.h> (D)。 (A) o

C语言程序设计综合练习题

《C语言程序设计》综合练习题 一、单选题 1. C语言中基本数据类型有。C A)整型、实型、逻辑型B)整型、字符型、逻辑型 C)整型、实型、字符型D)整型、实型、字符型、逻辑型 2. 在C语言中,数字O29是一个。A A)八进制数 B)十进制数 C)十六进制数 D)非法数 3. 在以下关于C语言的不严格的叙述中,错误的说法是。A A)在标识符中,大写字母和小些字母的意义相同 B)有些不同类型的变量可以在一个表达式中运算 C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型 D)同一个运算符号在不同的场合可以有不同的含义 4.下列关于C语言用户标识符的叙述中正确的是。B A)用户标识符中可以出现下划线和中划线(减号) B)用户标识符中不可以出现中划线,但可以出现下划线 C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。 5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是。D A) 顺序结构B) 选择结构C) 循环结构 D) 数组结构 6. C语言提供的合法关键字是。D A) swicth B) cha C) Case D) default 7.以下非法的赋值语句是C A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0; 【解析】对表达式不能进行自加自减运算。 8.在以下一组运算符中,优先级最高的运算符是。 A) <= B) = C) % D) &&

《计算机程序设计基础》课后练习题参考答案

《计算机程序设计基础》课后练习题1 一.判断题 (1)(错)事件过程由某个用户事件或系统事件触发执行,但不能被其他过程调用。 (2)(错)若X=2, Y=5,则表达式 Y-2>X AND X+2>Y 的结果为:True。 (3)(错)常量是指在程序运行过程中其值可以改变的那些量。 (4)(错,timer没有)VB工具箱中的所有控件都具有宽度(Width)和高度(Height)属 性。 (5)(错)定义变量:Dim max,min as Single , 则max 和 min 的数据类型均为Single。 (6)(对)如果创建的菜单项的标题是一个减号“-”,则该菜单项显示为一条分隔线。 (7)(错)标准模块文件的扩展名是“*.VBP”。 (8)(错,都不能)定时器控件可以响应Click事件,但不能响应DbClick事件。 (9)(错)在默认情况下,数组下标下界的缺省值为1。 (10)(对)在使用字体对话框时,需要对其Flags属性先进行相应设置。 二.单选题 (11)在Visual Basic中,表示鼠标单击事件的是 C 。 A)Activate B)DoubleClick C)Click D)MouseDown (12)用于设置计时器时间间隔的属性是 A 。 A)Interval B)Name C)Left D)Top (13)函数Int(10*Rnd)是在 D 范围内的整数。 A)[1,10] B)[1,10] C) [0,9) D)[0,9] (14)Select case语句结构的结尾应使用 D 。 A)End B) End Case C) End Sub D) End Select (15)改变了容器的坐标系后,该容器的 A 属性值不会改变。 A)left B)scaleleft C)scaletop D)scalewidth (16)执行下列语句后,列表框中各表项顺序为 D List1.Clear For i=1 to 4 : List1.AddItem i-1,0 :Next i A)B)C)D) (17)输入对话框InputBox的返回值的类型是 A 。

程序设计综合设计题目详解

程序设计综合设计题目详解 1. 大整数加法 计算两个整数m 、n 的和,0<=m,n<=1050。输入输出格式:本题只有1组输入数据,每组数据只有1行,每组数据包含两个0到1050之间的大整数,两个整数中间用1个空格分隔。 对于每组数据,输出一行,表示两个大整数的和。 样例输入:input.txt 12345678909876543211234111222 98765432101234567891234111222 样例输出:output.txt 111111111011111111102468222444 2. 舞伴问题: 假设在周末舞会上,男士们(m 人)和女士们(n 人)进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴配对问题。并m 和n 存在什么条件时,第x 个(1<=x<=m )男生才有可能和他心仪的第y 个(1<=x<=n )女生跳舞,在第几首曲子时? 3. 一元多项式加法: 有两个一元多项式P(x)和Q(x)需要相加,一类情况是项数很多,次数比较连续的情况,另一类是项数不多,但次数不连续的情况,试分别设计合理的数据结构对其进行求解。 测试数据: (1)P(x)=20 1(1)i i i x =+∑ Q(x)=2011 (23)i i i x -=+ ∑ (2)P(x)=1005611100282345x x x x +-+ Q(x)=10056122558335x x x x --+ 4 约瑟夫环问题: 已知n 个人(以编号1,2,3...n 分别表示)围坐在一张圆桌周围。从编号为k 的人开始报数,数到m 的那个人出列;他的下一个人又从1开始报数,数到m 的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。请给出出列人的编号序列。 5. 不浪费空间的矩阵乘法 一直两个矩阵X m n ? 和Y n p ? 要相乘,但不允许事先分配一个很大空间的二维数组 来存储矩阵,而是要动态分配实际数据需要占有的空间进行矩阵乘法。 测试数据:自行设计 m 、n 、 p>3

C++程序设计练习题与答案(1)

C++程序设计练习题 一、填空题 1.对象的三大基本特性分别为多态性、( )、封装性。 2.赋值运算符应重载为( )函数。 3.用( )声明的基类称为虚基类。 4.用( )声明的函数称为虚函数。 5.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的( )。 6.静态成员是对象的成员,( )函数不是类的成员。 7.在函数体之前加( )关键字可以防止覆盖函数改变数据成员的值。 8.一个const对象只能访问( )成员函数。 9.使用友元函数是为了提高程序效率,且节约了( )开销。 10.类名为“ClassName”的类,其拷贝构造函数的原型说明是( )。 11.由关键字private、public和protected限定成员的访问权限分别是( )、( )和( )。缺省关键字时成员的访问权限为( )。 12.如果想要公共基类在派生类中只有一个拷贝,就要将公共的基类说明为( );如果虚基类没有默认构造函数,就必须在每一个派生类的构造函数中都要调用虚基类的( )函数。 13.静态成员函数是使用关键字( )说明的成员函数。 14.一个函数的原型声明为“void FunName(int=0, double=0, char='x');”,则调用FunName函数的方法共有( )种。 15.编译时多态性是通过( )实现的;运行时多态性是通过( )实现的。 16.C++通过( )实现编译时多态性,通过( )实现运行时多态性。 17.在C++中,声明类的关键字是( )。 18.声明C++模板的关键字是( )。 19.调用函数原型声明为“void FunName(short, int=0, float=1.0);”的方法有( )种。 20.处理C++异常的方法:采用( )结构。 21.用关键字( )、( )和( )限定的成员,其访问权限分别为:公有的、私有的和保护的。缺省关键字时,成员的访问权限为( )。 22.在C++中,处理( )的方法是采用try-catch结构。 23.在C++中,用关键字( )说明内置函数。 24.在C++中,声明友元函数的关键字是( )。 25.将公共基类说明为( )时,多重派生过程中公共基类在派生类中就只有一个拷贝了。 26.在C++中,如果函数调用在前、定义在后,就必须先对函数进行( )。 27.在成员函数头之后、函数体之前加( )修饰的成员函数称为类的常成员函数。 28.包含纯虚函数的类称为抽象类,这种类只能用作( )来派生新类。由于抽象类的特殊性,我们可以说明抽象类的( ),但不能说明抽象类的( )。 29.说明函数类型为“double”、函数名为“virfun”且无参数的纯虚函数的表达形式为( )。 30.说明静态成员要使用关键字( )。

C语言程序设计练习题含程序及参考答案.doc

2010-2011 C语言程序试题及答案 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape);

} 2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); } 3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。 例如,输入的数为:55 12 34, 输出结果应当是:a=55.0,b=34.0,c=12.0。 #include void fun(float *p,float *q,float *s) { 2

相关文档
最新文档