程序题
50道经典编程题目
【程序1】题目:古典问题:有-对兔子,从出生后第3个月起每个月都生-对兔子,小兔子长到第三个月后每个月又生-对兔子,假如兔子都不死,问每个月地兔子总数为多少//这是-个菲波拉契数列问题}}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数.程序分析:判断素数地方法:用-个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数.}}【程序3】题目:打印出所有地 "水仙花数 ",所谓 "水仙花数 "是指-个三位数,其各位数字立方和等于该数本身.例如:153是-个 "水仙花数 ",因为153=1地三次方+5地三次方+3地三次方.}}【程序4】题目:将-个正整数分解质因数.例如:输入90,打印出90=2*3*3*5.程序分析:对n进行分解质因数,应先找到-个最小地质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数地过程已经结束,打印出即可.(2)如果n <> k,但n能被k整除,则应打印出k地值,并用n除以k地商,作为新地正整数你n,重复执行第-步.(3)如果n不能被k整除,则用k+1作为k地值,重复执行第-步.【程序5】题目:利用条件运算符地嵌套来完成此题:学习成绩> =90分地同学用A表示,60-89分之间地用B表示,60分以下地用C表示.【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数./**在循环中,只要除数不等于0,用较大数除以较小地数,将小地-个数作为下-轮循环地大数,取得地余数作为下-轮循环地较小地数,如此循环直到较小地数地值为0,返回较大地数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数.* /}【程序7】题目:输入-行字符,分别统计出其中英文字母、空格、数字和其它字符地个数.}【程序8】题目:求s=a+aa+aaa+aaaa+aa...a地值,其中a是-个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制.}【程序9】题目:-个数如果恰好等于它地因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程找出1000以内地所有完数.}【程序10】题目:-球从100米高度自由落下,每次落地后反跳回原高度地-半;再落下,求它在第10次落地时,共经过多少米第10次反弹多高【程序11】题目:有1、2、3、4四个数字,能组成多少个互不相同且无重复数字地三位数都是多少【程序12】题目:企业发放地奖金根据利润提成.利润(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%提成,从键盘输入当月利润,求应发放奖金总数}【程序13】题目:-个整数,它加上100后是-个完全平方数,再加上168又是-个完全平方数,请问该数是多少/*按题意循环应该从-100开始(整数包括正整数、负整数、零),这样会多-个满足条件地数-99.但是我看到大部分人解这道题目时都把题中地"整数"理解成正整数,我也就随大流了.*/ 【程序14】题目:输入某年某月某日,判断这-天是这-年地第几天【程序15】题目:输入三个整数x,y,z,请把这三个数由小到大输出.}【程序16】题目:输出9*9口诀.【程序17】题目:猴子吃桃问题:猴子第-天摘下若干个桃子,当即吃了-半,还不瘾,又多吃了-个第二天早上又将剩下地桃子吃掉-半,又多吃了-个.以后每天早上都吃了前-天剩下地-半零-个.到第10天早上想再吃时,见只剩下-个桃子了.求第-天共摘了多少.【程序18】题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛地名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手地名单.【程序19】题目:打印出如下图案(菱形)【程序20】题目:有-分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列地前20项之和.【程序21】题目:求1+2!+3!+...+20!地和【程序22】题目:利用递归方法求5!.【程序23】题目:有5个人坐在-起,问第五个人多少岁他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第-个人大两岁.最后问第-个人,他说是10岁.请问第五个人多大【程序24】题目:给-个不多于5位地正整数,要求:-、求它是几位数,二、逆序打印出各位数字. //使用了长整型最多输入18位【程序25】题目:-个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同.【程序26】题目:请输入星期几地第-个字母来判断-下是星期几,如果第-个字母-样,则继续判断第二个字母.【程序27】题目:求100之内地素数【程序28】题目:对10个数进行排序【程序29】题目:求-个3*3矩阵对角线元素之和【程序30】题目:有-个已经排好序地数组.现输入-个数,要求按原来地规律将它插入数组中.//此程序不好,没有使用折半查找插入【程序31】题目:将-个数组逆序输出.【程序32】题目:取-个整数a从右端开始地4~7位.【程序33】题目:打印出杨辉三角形(要求打印出10行如下图)1111211 3 3 11 4 6 4 11 5 10 10 5 1............【程序34】题目:输入3个数a,b,c,按大小顺序输出.【程序35】题目:输入数组,最大地与第-个元素交换,最小地与最后-个元素交换,输出数组.}【程序36】题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面地m个数【程序37】题目:有n个人围成-圈,顺序排号.从第-个人开始报数(从1到3报数),凡报到3地人退出圈子,问最后留下地是原来第几号地那位.【程序38】题目:写-个函数,求-个字符串地长度,在main函数中输入字符串,并输出其长度.【程序39】题目:编写-个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)//没有利用指针函数【程序40】题目:字符串排序.【程序41】题目:海滩上有-堆桃子,五只猴子来分.第-只猴子把这堆桃子凭据分为五份,多了-个,这只猴子把多地-个扔入海中,拿走了-份.第二只猴子把剩下地桃子又平均分成五份,又多了-个,它同样把多地-个扔入海中,拿走了-份,第三、第四、第五只猴子都是这样做地,问海滩上原来最少有多少个桃子【程序42】题目:809* =800* +9* +1其中代表地两位数,8* 地结果为两位数,9* 地结果为3位数.求代表地两位数,及809* 后地结果.//题目错了!809x=800x+9x+1这样地方程无解.去掉那个1就有解了.【程序43】题目:求0-7所能组成地奇数个数.//组成1位数是4个.//组成2位数是7*4个.//组成3位数是7*8*4个.//组成4位数是7*8*8*4个.//......【程序44】题目:-个偶数总能表示为两个素数之和.//由于用除sqrt(n)地方法求出地素数不包括2和3,//因此在判断是否是素数程序中人为添加了-个3.【程序45】题目:判断-个素数能被几个9整除//题目错了吧能被9整除地就不是素数了!所以改成整数了.【程序46】题目:两个字符串连接程序【程序47】题目:读取7个数(1-50)地整数值,每读取-个值,程序打印出该值个数地*.【程序48】题目:某个公司采用公用电话传递数据,数据是四位地整数,在传递过程中是加密地,加密规则如下:每位数字都加上5,然后用和除以10地余数代替该数字,再将第-位和第四位交换,第二位和第三位交换【程序49】题目:计算字符串中子串出现地次数【程序50】题目:有五个学生,每个学生有3门课地成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有地数据和计算出地平均分数存放在磁盘文件 "stud "中。
七年级程序题
当然,这里有一些关于七年级学生可能接触的简单程序题:
1. **数字序列**:给定一个数字序列,编写一个程序,使得从第一个数字开始,每隔一个数字打印一次。
例如,如果给定的序列是 1 2 3 4 5,则程序应该输出 1 3 5。
2. **年龄问题**:假设有一些不同年龄的学生,年龄分别为 A、B、C、D,它们各自代表一个正整数。
如果 A 是 B 的两倍,C 是 D 的三倍,编写一个程序找出这些年龄中最小的那个。
3. **数学表达式**:给定一个数学表达式,例如 "2 + 3 * 4",编写一个程序来计算这个表达式的值。
4. **排序数字**:给定一个数字列表,编写一个程序来对这些数字进行排序。
5. **找规律**:给定一个数列,例如 1, 3, 7, 13, 21, ...,找出这个数列的下一个数字。
6. **判断闰年**:编写一个程序来判断一个给定的年份是否是闰年。
闰年的条件是:能被4整除但不能被100整除,或者能被400整除。
这些题目涵盖了基础的数据结构和算法概念,例如数组(列表)的使用、条件判断、循环、数学运算等。
对于七年级的学生来说,这些题目可以帮助他们理解编程的基本概念和原理。
C语言经典程序100题(完整版)
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
#include "stdio.h"#include "conio.h"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);}getch();}==============================================================【程序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,求应发放奖金总数?程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
#include "stdio.h"#include "conio.h"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)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);getch();}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
程序试题及答案
程序试题及答案一、选择题(每题2分,共10分)1. 下列哪个选项是Python语言的标识符?A. 2variableB. variable2C. variable_2D. variable!答案:C2. 在HTML中,用于定义最重要的标题的标签是什么?A. <h1>B. <h6>C. <title>D. <header>答案:A3. 在JavaScript中,以下哪个方法用于将字符串转换为小写?A. toUpperCase()B. toLowerCase()C. split()D. slice()答案:B4. 在CSS中,以下哪个属性用于设置元素的背景颜色?A. background-colorB. colorC. font-colorD. background答案:A5. 在SQL中,用于从数据库表中选择数据的命令是什么?A. SELECTB. INSERTC. UPDATED. DELETE答案:A二、填空题(每题2分,共10分)1. 在Python中,用于定义函数的关键字是________。
答案:def2. 在HTML中,用于插入换行的标签是________。
答案:<br>3. 在JavaScript中,用于获取数组长度的属性是________。
答案:length4. 在CSS中,用于设置文本对齐方式的属性是________。
答案:text-align5. 在SQL中,用于创建新表的命令是________。
答案:CREATE TABLE三、简答题(每题5分,共15分)1. 描述在Python中如何实现循环遍历列表。
答案:在Python中,可以使用for循环来遍历列表。
例如,可以使用以下代码遍历列表:```pythonmy_list = [1, 2, 3, 4, 5]for item in my_list:print(item)```2. 解释HTML中的DOCTYPE标签的作用。
(完整版)C语言程序设计练习题(含程序及参考答案)
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint 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。
#includevoid 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中。
程序试题及答案
程序试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义一个类?A. classB. interfaceC. structD. enum答案:A2. 下列哪个选项是Python的内置数据类型?A. ListB. MapC. ArrayD. Tuple答案:D3. 在C++中,以下哪个操作符用于引用传递?A. &B. *C. %D. ++答案:A4. 以下哪个是JavaScript的全局对象?A. ObjectB. ArrayC. MathD. String答案:C5. 在SQL中,用于查询数据的关键字是:A. SELECTB. INSERTC. UPDATED. DELETE答案:A二、简答题1. 请简述面向对象编程中的三大特性。
答案:面向对象编程的三大特性包括封装、继承和多态。
封装是指将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。
继承允许新创建的类(子类)继承现有类(父类)的属性和方法。
多态指的是允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
2. 请解释什么是递归,并给出一个简单的递归函数例子。
答案:递归是一种编程技术,其中一个函数直接或间接地调用自身。
递归通常用于解决可以被分解为相似子问题的问题。
以下是一个计算阶乘的递归函数示例(使用Python):```pythondef factorial(n):if n == 1:return 1else:return n * factorial(n - 1)```3. 请解释什么是数据库事务,并简述其ACID属性。
答案:数据库事务是一系列操作,这些操作作为一个整体被执行,以确保数据的完整性。
事务具有以下ACID属性:- 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个点。
- 一致性(Consistency):事务必须保证数据库从一个一致的状态转移到另一个一致的状态。
程序题库
下面程序中,函数fun的功能是:计算并输出k以内的最大的10个能被13或17整除的自然数之和。请改正程序中的错误,并运行正确的程序。当从键盘输入500时,给出程序运行的正确结果
1
#include #include int fun(int k) { int m=0, mc=0, j; while((k>=2) || mc
14365
下列程序的功能是:求出以下分数序列的前30项之和,2/1,3/2,5/3,8/5,13/8,21/13,……请改正程序中的错误,并运行修改后程序,给出程序结果(按四舍五入保留6位小数)。程序:
1
#include #include main(){ long a,b,c,k; double s; clrscr(); s=0.0; a=2; b=1; for(k=1;k<=30;k++) s=s+a/b; c=a; a=a+b; b=c; printf("\n结果: %lf\n", s); }
14510
下面的程序是求500以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。程序:
1
#include #include #include int prime(int n) { int yes, i; if(n<=1) {return 1;} yes=1; for(i=2; i<=sqrt(n); i++) if(n%i==0){ yes=0; break;} return 1; } main() { int sum=0, i; clrscr(); for(i=2;i<=500; i++) if(prime(i)) sum+=i; printf("%d\n", sum); }
经典20道程序题
1、编制程序求1至100累加和的程序set talk offclearS=0N=1do while N<=100S=S+NN=N+1ENDDO? "S=1+2+3+...+100=",Sset talk onretu结果:50502、编制求1×2×3×...×10累乘的程序set talk offclears=1for i=1 to 10s=s*iendfor?"1×2×3×...×10=",str(s,7)retu结果:3628800(注意:结果有可能越界)3、编制求1!+2!+...+10!的和的程序set talk offclears=0for i=1 to 10p=1for j=1 to ip=p*jendfors=s+pendfor?"1!+2!+3!+...+10!",str(s,10)结果:40379134、编制程序计算1到1000之间的偶数之和set talk offx=0s=0do while .T.do casecase x>1000exitcase mod(x,2)<>0loopotherwises=s+xendcaseenddo?"1到1000之间的偶数和为:",s结果:250200解法二:Set talk offS=0For i=0 to 1000 step 2S=s+iEndfor?"1到1000之间的偶数和为:",sSet talk onRetu解法三:Set talk offS=0I=1Do while i<=1000If mod(I,2)=0S=s+iEndifI=i+1Enddo?"1到1000之间的偶数和为:",sSet talk onRetu5、下面程序求5000以内能同时被3和7整除的数的个数。
c语言程序考试试题
c语言程序考试试题一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义一个结构体的关键字是()。
A. varB. typeC. structD. def2. 下列哪个选项不是C语言标准输入输出库函数()。
A. printf()B. scanf()C. getchar()D. readline()3. 在C语言中,一个整型变量在内存中占用的字节数是()。
A. 1B. 2C. 4D. 84. C语言中,用于计算两个浮点数的差的运算符是()。
A. +B. -C. *D. /5. 下列哪个选项是正确的C语言数组初始化方式()。
A. int arr = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[3] = {1, 2, 3};D. int arr[3] = 1, 2, 3;6. C语言中,用于执行条件判断的语句是()。
A. ifB. switchC. caseD. for7. 在C语言中,表示“逻辑与”的运算符是()。
A. &&B. ||C. !D. ++8. 下列哪个选项不是C语言中预定义的库函数()。
A. pow()B. sqrt()C. sin()D. max()9. 在C语言中,用于表示字符的字面量是()。
A. ''B. ""C. <>D. []10. C语言中,用于实现无限循环的语句是()。
A. whileB. do-whileC. forD. switch二、填空题(每空3分,共30分)11. 在C语言中,一个浮点型变量定义为 `float x;`,其默认的初始值是________。
12. 函数 `void func(int a, int b)` 中的参数 `a` 和 `b` 被称为________参数。
13. C语言中,字符串常量存储在内存的________区域。
14. 表达式 `(int)2.99` 的值是________。
C++程序题目
一,单项选择题1,一个函数功能不太复杂,但要求被频繁调用,选用()A.递归函数B,重载函数C,内联函数D,嵌套函数2,在每个C++程序中都必须包含有这样一个函数,该函数函数名为()A,function B,MAIN C,name D,main3,()是给对象取一个别名,它引入了对象的同义词。
A,引用B,指针C,枚举D,结构4,假定AB为一个类,则执行ABx,语句时将自动调用该类的()A,有参构造函数B,无参构造函数C,拷贝构造函数D,赋值构造函数5,下列的各类函数中,()不是类的成员函数A,构造函数B,析构函数C,友元函数D,拷贝初始化构造函数6,在成员函数中进行双目运算符重载时,其参数表中应带有()个参数A.0B.1C.2D.37,c++中的类有两种用法,一种是类的实例化,即生成类的对象,并参与系统的运行,另一种是通过()派生出新的类A,复用B继承C单继承 D 多继承8,派生类的构造函数的成员的初始化列表中,不能包含()A 基类的构造函数B 派生类中子对象的初始化C 基类的子对象的初始化D派生类中一般数据成员的初始化9,实现运行时的多态要使用()A重载函数B构造函数C析构函数D虚函数10,在C++中,打开一个文件就是将这个文件与一个()建立关联,关闭一个文件就是取消这种关联。
A 类B 流C 对象D 结构11.设X和Y均为bool量,则X&&y为真的条件是()A,他们均为真 B 其中一个为真 C 他们均为假D其中一个为假12.下列保留字中用来说明类的友元的是()A privateB friendC protectedD public13.对于任意一个类,析构函数的个数最多为()A 0B 1C 2D 314,通常,拷贝构造函数的参数是()A,某个对象名 B 某个对象的成员名 C 某个对象的引用名D,某个对象的指针名15.在C++中吧不返回任何类型的函数应该说明为()A intB charC voidD double二,填空题1,对象的三大基本特征是()()()2,C++语言的函数参数传递方式有()和()3.所有模板都是以()关键字和一个形参表开头的。
程序设计经典100题
程序设计经典100题题目一:斐波那契数列斐波那契数列是指这样一个数列:0、1、1、2、3、5、8、13、21... 即前两个数之和等于第三个数。
现在要求输入一个正整数n,请你编写一个函数,输出斐波那契数列的第n个数。
解法一:递归法递归法是最简单直观的解法,原理是将问题分解为规模更小的子问题。
代码如下:```def fibonacci(n):if n <= 0:return 0if n == 1:return 1return fibonacci(n-1) + fibonacci(n-2)```解法二:迭代法递归法虽然直观易懂,但其时间复杂度较高。
使用迭代法可以将时间复杂度降低到O(n),代码如下:```def fibonacci(n):if n <= 0:return 0if n == 1:return 1a, b = 0, 1for i in range(2, n+1):a, b = b, a + breturn b```题目二:最大公约数给定两个正整数,求它们的最大公约数。
请你编写一个函数,输出最大公约数。
解法一:辗转相除法辗转相除法是一种求解最大公约数的常用方法。
它的原理是利用两个数的差值不断缩小问题的规模。
```def gcd(a, b):if b == 0:return areturn gcd(b, a % b)```解法二:欧几里得算法欧几里得算法也是一种求解最大公约数的常用方法。
它的原理是利用两个数的余数不断缩小问题的规模。
```def gcd(a, b):while b != 0:a, b = b, a % breturn a```题目三:翻转字符串给定一个字符串,将其翻转输出。
请你编写一个函数,输出翻转后的字符串。
解法一:使用切片可以使用字符串的切片功能来实现字符串的翻转。
```def reverse_string(s):return s[::-1]```解法二:使用列表逆序可以将字符串转换为列表,然后使用列表的逆序方法实现字符串的翻转。
C语言程序金典例题20题
# include <stdio.h> int main() {
int i; for(i=100;i<200;i++) {
if(i%5 != 0) printf("i=%d\n",i);}
}
16.试编程判断输入的正整数是否既是 5 又是 7 的整倍数.若是则输出 YES;否则 输出 NO.
while(day>0) { x1=(x2+1)*2; /* x2 为剩下的 */
x2=x1; day- -; } printf(“Total=%d\n”,x1); }
22. 给一个不多于 5 位的正整数,要求: ① 求它是几位数;② 分别打印 出每一位数字;③按逆序打印出各位数字。如:321,输出:123。
scanf("%d",&score);
x=score/10;
switch (x)
{
case 10: case 9: printf("成绩为 A");break;
case 8: printf("成绩为 B");break; case 7: printf("成绩为 C");break; case 6: printf("成绩为 D");break; default:printf("成绩为 E"); } }
21. 猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前
一天剩下的一半零一个。到第 10 天早上想再吃时,就只剩下一个桃子了。求 第一天共摘多少桃子?
基础的c语言程序试题及答案
基础的c语言程序试题及答案基础的C语言程序试题及答案1. 题目:编写一个C语言程序,计算并输出1到100之间所有奇数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {sum += i;}}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```2. 题目:编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除运算。
答案:```c#include <stdio.h>int main() {double num1, num2;char operator;double result;printf("请输入第一个数字:");scanf("%lf", &num1);printf("请输入运算符(+,-,*,/):"); scanf(" %c", &operator);printf("请输入第二个数字:");scanf("%lf", &num2);switch (operator) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 != 0) {result = num1 / num2;} else {printf("除数不能为0\n");return 1;}break;default:printf("无效的运算符\n");return 1;}printf("%.2lf %c %.2lf = %.2lf\n", num1, operator, num2, result);return 0;}```3. 题目:编写一个C语言程序,实现字符串的反转。
《C语言程序》测试题及答案
c++程序设计本科一、判断题错误的在后面写“F”,正确的写“T”,每题1分1. 程序是描述算法的编程工具;T2. 将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例化 ; T3. C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行一些清理任务的特殊成员函数称为析构函数; T4. 逐条翻译并执行的翻译程序称为编译程序; F5. 把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个共同的相关类,这种结构被称为类树;类群是由一些彼此密切相关的类和类族组成的;F6. 如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承;T7. 不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性;F8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形参; F9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更多的函数就可以共用同一个名字;这种在同一作用域中允许多个函数使用同一函数名的措施被称为重载; T8.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏的名字;这是由作用域分辨操作符实现的,这一过程叫做作用域分辨;T11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了;T12.所有的表达式都有值;F13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量;T14.类的静态数据成员需要在定义每个类的对象时进行初始化;F15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问;F16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员;T17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址;F18.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性;T19.字符串’hello,world”在内存中存放时,占用11个字节的空间;F20. 用new动态申请的内存空间,必须用delete来释放 ;T21、变量必须先定义或说明,后使用;T23、常量不能作为左值使用;T23、头文件中一般存放着变量和常量的定义、函数的原型以及类的定义;F24、类的友元函数可以直接访问该类的所有成员;T25、派生类的成员函数可以直接访问基类的所有成员;F26、一个类可以作为另一个类的友元类;T27、函数的参数和返回值类型可以是简单数据类型,也可以是指什、引用、数组和类;F28、在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征;F29、下面两个语句是等价的: Fchar str ="hello,world";char str11="hello,world";30、用new动态申请的内存是在堆中分配的,而不是在栈中分配的; T31.静态联编所支持的多态性称为编译时的多态性; T32.如果一个类中至少有一个实函数,则称这个类为抽象类 ; F33.用于在对象消失时执行一些清理任务的函数叫虚函数; F34. C++源程序文件的缺省扩展名为cpp T35. 由C++源程序文件编译而成的目标文件的缺省扩展名为lik F36. 由C++目标文件连接而成的可执行文件的缺省扩展名为obj F37. 编写C++程序一般需经过的几个步骤依次是编辑、编译、连接、调试 T38. 标识符default then while全是保留字 F39. 能作为C++程序的基本单位是语句 T40. 程序中主函数的名字为任意标识符 F二、填空题每题3分1. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为_____4_____和___11_______;2. C++常数0x145对应的十进制值为____325______;3. C++常数0345对应的十进制值为____229______;4. 十进制常数245对应的十六进制的C++表示为____0xF5 F大小写均可_____5. 十进制常数245对应的八进制的C++表示为___0365 F大小写均可_______;6. signed char类型的值域范围是_-128_______至_____+127_____之间的整数;7. int和float类型的数据分别占用___4______和______4____个字节;8. float和double类型的数据分别占用_____4____和__ 8______个字节;9. bool和char类型的数据分别占用____1_____和_____1___个字节;10. unsigned short int和int类型的长度分别为___2______和____4____;11. 字符串“This\’s a book.\n”的长度为___15_______;12. 字符串“\nThis\’s a pen\n\n”的长度为_____15_____;13. 在C++中存储字符串“abcdef”至少需要___7_____个字节;14. 在C++中存储字符串“a+b=c”至少需要__6______个字节;14.假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为_____1_____和______3____;15.若while循环的“头”为”whilei++<=10”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__11____次后正常结束;17. 若do循环的“尾”为”while++i<10”,并且i的初值为0,同时在循环体中不会修改i 的值,则循环体将被重复执行____10__次后正常结束;18. 当在程序中执行到__break______语句时,将结束本层循环类语句或switch语句的执行;19. 当在程序中执行到____continue____语句时,将结束所在循环语句中循环体的一次执行;20. 在程序中执行到____ return ____语句时,将结束所在函数的执行过程,返回到调用该函数的位置;21.在程序执行完__ 主或main_____函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口;22. 元素类型为int的数组a10共占用___40_____字节的存储空间;23. 元素类型为double的二维数组a46共占用___192_____字节的存储空间;24. 元素类型为char的二维数组a1030共占用___300_____字节的存储空间;25. 存储字符’a’和字符串”a”分别需要占用____1____和_____2___个字节;26. 空串的长度为___0_____,存储它需要占用___1_____个字节;27. 字符串”\’a\’xy=4\n”的长度为__7______;28. 字符串”a:\\xxk\\数据”的长度为__11__;29. 用于存储一个长度为n的字符串的字符数组的长度至少为___ n+1_____;30. 若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为_ cin>>a___;31. C++是将源程序_一次翻译成目标程序_____,然后再执行,这种翻译程序称为编译程序;32. 联合的若干数据成员使用地址___同一___,占据的内存是联合中占内存最大的数据成员所占用的内存;33. 作用域分辨操作符的一般形式为类名::类标识符 ,作用域分辨不仅可用于类中,而且可以用在____函数调用__ 时;34. 将关键词const写在 ___函数头___ 之后, __函数体____, 之前,说明该函数是一个const成员函数;35. C++是在 ___标准C语言___ 的基础上,引入面向对象概念而扩充形成的混合型面向对象语言;36. 在动态联编中,直到 _程序运行_____ 时才能确定调用哪个函数;静态联编是在程序编译时进行的;37. 类型转换函数 ___不能___ 带有参数,当被派生类继承并被说明为 ___虚函数___ 时,可以定义多个转换函数;38. 继承是 ___对象___ 的一个特点,继承支持 ___层次___ 类概念39. C++的 __作用域____ 规则能保证编译器调用正确的成员函数;40. 在C++中,声明构造函数和析构函数时, _不能_____使用const或volatile关键词;41. 只能用类运算符来重载的运算符是:_=_____,______,______,___->___;42. 应该养成将所有extern说明放到__头文件____ 中去的习惯,对于自己编写的函数,必须自己给出 __函数类型____ 说明;43. 结构是 ___类___, 的一种特例,其中成员在缺省情况下是_公有的_____ ;44. 当使用delete删除一个对象时,delete隐含着对 __析构函数____ 函数的一次调用,如果这个函数为虚函数,则这个调用采用___动态___联编;45. const放在函数前面使常量成员返回 __常量对象____ ;如果定义一个const对象,则只能访问该对象的const 成员函数;46.在面向对象的程序设计中,一切都是围绕着___类___ 展开的;47.析构造函数是和___类___同名的函数;48.指向基类的对象的指针变量也可以指向___派生类______的对象;49.若多继承时,多个基类中拥有一个同名的成员,则__不能_______用调整访问权限确定对该成员的访问50.多继承情况下,派生类的构造函数的执行顺序取决于__继承_______派生类时所指定的各基类的顺序;51.构造函数___不能__被继承,析构函数______不能______被继承;52.___多___继承情况下,派生类中对基类成员的访问会出现二义性;解决二义性的方法是______成员名限定法______、___支配规则__和__虚基类___53.垂直访问时,保护成员的访问控制权限与______公有___成员相同;54.派生类可以调用其____基类_____中不具备的数据和操作;55.利用继承能够实现___软件复用______;这种实现缩短了程序的开发时间,促使开发人员复用已经测试和调试好的高质量软件;56.当撤消一个含有基类和子对象成员的派生类对象时,将首先完成___派生类___的析构函数定义体的执行,接着完成______子对象成员______的析构函数定义体的执行,最后完成___基类___的析构函数定义体的执行;57.如果类Alpha继承了类Beta,则类Alpha称为___派生___类,类Beta称为__基___类58.对基类数据成员的初始化必须在派生类构造函数中的____成员初始化列表_____处执行;59.在派生类中使用基类的成员,可以显示地使用__成员名限定符_______来使用基类成员60.当将基类指针转换为派生类指针时,由于编译器认为这种操作是危险的,所以必须要使用____强制类型转换_____;61.多继承可以视为是___单继承___的扩展,派生类及其基类可用一个___有向无环图DAG___表示;62. 继承是___对象___的一个特点,继承支持___层次___类概念;63.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字const .64.逻辑表达式x>3&&x<10 的相反表达式为x<=3||x>=10 .65.逻辑表达式a>b ||b = =5的相反表达式为a<=b&&b=5 .66.假定一个二维数组的定义为”char a56;”,则该数组所含元素的个数为30 ,所占存储空间的字节数为30 .67.变量分为全局和局部两种, 全局变量没有赋初值时,将由系统自动置为0.68.假定a是一个一维数组,则ai对应的存储地址以字节为单位为a+isizeof ai69.假定一个结构类型的定义为”struct A{int a,b;Ac;};”, 则该类型的大小为12字节.70.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b .三、单选题每题2分,在下列各题的备选答案中,选出一个正确答案,并将其号码填写在题目后面的括号内;A 1. C++源程序文件的缺省扩展名为 ;A. cppB. exeC. objD. likC 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为 ;A. cppB. exeC. objD. likB 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为 ;A. cppB. exeC. objD. likB 4. 编写C++程序一般需经过的几个步骤依次是 ;A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接B 5. 以下标识符中不全是保留字的是 ;A. case for intB. default then whileC. bool class longD. goto return charC 6. 能作为C++程序的基本单位是 ;A. 字符B. 语句C. 函数D. 源程序文件A 7. 程序中主函数的名字为 ;A. mainB. MAINC. MainD. 任意标识符D 8. C++程序的基本模块为 ;A. 表达式B. 标识符C. 语句D. 函数B 9. 可用作C++语言用户标识符的一组标识符是 ;A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeofD 10. 存储以下数据,占用存储字节最多的是 ;A. 0B. ‘0’C. “0”D.D 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 符号作为分隔符;A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车C 12. 设”int a=12;”,则执行完语句”a+=aa;”后,a 的值是 ;A. 12B. 144C. 156D. 288D 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是 ; A. abc B. 1/abc C. 1/a/b/floatc D. a/b/cD 14. 设”int a=15,b=26;”,则”cout<<a,b;”的输出结果是 ;A. 15B. 26,15C. 15,26D. 26C 15. 设x 是一个bool 型的逻辑量,y 的值为10,则表达式 x && y 的值为 ;A. 1B. 0C. 与x 值相同D. 与x 值相反A 16. x>0 && x<=10的相反表达式为 ;A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>10B 17. x>0 || y==5的相反表达式为 ;A. x<=0 || y=5B. x<=0 && y=5C. x>0 || y=5D. x>0 && y==5 A 18.设x和y均为bool量,则x && y为真的条件是 ;A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假C 19.设x和y均为bool量,则x || y为假的条件是 ;A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假B 20. 字符串”a+b=12\n”的长度为 ;A. 6B. 7C. 8D. 9B 21. 假定下列x和y均为int型变量,则不正确的赋值为 ;A. x+=y++B. x++=y++C. x=++yD. ++x=++yC 22. 下列的符号常量定义中,错误的定义是 ;A. const M=10;B. const int M=20;C. const char ch;D. const bool mark=true;C23. 循环语句“forint i=0; i<n; i++ cout<<ii<<’ ’;”中循环体执行的次数为 ;A. 1B. n-1C. nD. n+1B 24. 在下面循环语句中循环体执行的次数为 ;forint i=0; i<n; i++ifi>n/2 break;A. n/2B. n/2+1C. n/2-1D. n-1D 25. 在下面循环语句中内层循环体S语句的执行总次数为 ;forint i=0; i<n; i++forint j=i; j<n; j++ S;A. n2B. n+1/2C. nn-1/2D. nn+1/2C 26. 在下面循环语句中循环体执行的次数为 ;int i=0,s=0; whiles<20 {i++; s+=i;}A. 4B. 5C. 6D. 7A 27. 在下面循环语句中循环体执行的次数为 ;int i=0; do i++; whileii<10;A. 4B. 3C. 5D. 2A 28. 当处理特定问题时的循环次数已知时,通常采用来解决;A. for循环B. while循环C. do循环D. switch语句C 29. 循环体至少被执行一次的语句为 ;A. for循环B. while循环C. do循环D. 任一种循环B 30. switch语句能够改写为语句;A. forB. ifC. doD. whileD 31. do语句能够改写为语句;A. 复合B. ifC. switchD. whileC 32. 在下面的一维数组定义中,哪一个有语法错误;A. int a={1,2,3};B. int a10={0};C. int a;D. int a5;D 33. 在下面的字符数组定义中,哪一个有语法错误; ;A. char a20=”abcdefg”;B. char a=”x+y=55.”;C. char a15;D. char a10=’5’;C 34. 在下面的二维数组定义中,正确的是 ;A. int a5;B. int a5;C. int a3={{1,3,5},{2}};D. int a10;C 35. 假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a12的值为 ;A. 2B. 4C. 6D. 8A 36. 假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a21的值为 ;A. 0B. 4C. 8D. 6B 37. 若定义了函数 double function, 则函数function的返回值为 ;A. 实数型B.实数的地址C.指向函数的指针D.函数的地址B 38. 以下说法中正确的是 ;A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中C 39. 以下叙述中不正确的是 ;A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量A 40. 函数重载是指 ;A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同C 41. 以下关于函数模板叙述正确的是 ;A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型C 42. 下列的调用方式是引用调用;A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值A 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择 ;A. 内联函数B.重载函数C.递归函数D.函数模板B 44. 函数原型语句正确的是 ;A. int Functionvoid a; Function int;C. int Functiona; intdouble a;B 45. C++中函数返回值的类型是由决定的;A. return语句中表达式的类型B.该函数定义时的类型C.调用函数时的调用语句D.系统根据结果A 46. 以下函数的返回结果是 ;int functionchar x {char p=x; whilep++; returnp-x-1;}A. 求字符串的长度B.将字符串x连接到字符串p后面C. 将字符串x复制到字符串p中D.将字符串x反向存放B 47. 函数调用funcexp1,exp2,exp3,exp4,exp5中所含实参的个数为个;C. 4D. 5B 48. 设有如下函数定义int fchar s {char p=s;whilep=’\0’ p++;returnp-s;}在主函数中用cout<<f“good”调用上述函数, 则输出结果为 ;A. 3B. 4C. 5D. 6C 49. 以下正确的函数原型语句是 ;A. double funint x,int yB. double funint x;int yC. double funint,int;D. double funint x,y;B 50. 以下正确的说法是 ;A. 用户调用标准库函数前,必须重新定义B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义C. 系统不允许用户重新定义标准库函数D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中D 51. 函数调用不可以 ;A. 出现在一个表达式中B. 出现在执行语句中C. 作为一个函数的实参D. 作为一个函数的形参B 52. 以下正确的描述是 ;A. 函数的定义可以嵌套,函数的调用不可以嵌套B. 函数的定义不可以嵌套,函数的调用可以嵌套C. 函数的定义和函数的调用均可以嵌套D. 函数的定义和函数的调用均不可以嵌套A 53. 若用数组名作为函数调用的实参,传递给形参的是 ;A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数D 54. 以下错误的描述是 ;A. 被调用函数中可以不用return语句B. 被调用函数中可以用多个return语句C. 被调用函数中,如果有返回值,就一定要有return语句D. 被调用函数中,一个return语句可返回多个值给调用函数C 55. 以下正确的描述是 ;A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置参数的默认值时,应该设置右边的参数D. 设置参数的默认值时,应该全部参数都设置D 56. 采用重载函数的目的是 ;A. 实现共享B. 减少空间C. 提高速度D. 使用方便,提高可读性C 57. 将两个字符串连接起来组成一个字符串时,选用函数;A. strlenB. strcapC. strcatD. strcmpB 58. 以下叙述中正确的是 ;A. 使用define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内联函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值C 59. 下面的标识符中, 是文件级作用域;A. 函数形参B.语句标号C.外部静态类标识符D.自动类标识符D 60. 以下叙述不正确的是 ;A. 宏替换不占用运行时间B. 宏名无类型C. 宏替换只是字符替D. 宏名必须用大写字母表示D 61. C++语言的编译系统对宏命令的处理是 ;A. 在程序运行时进行B. 在程序连接时进行C. 和C++程序的其它语句同时进行编译D. 在对源程序中其它成分正式编译之前进行B 62. 当include后面的文件名用双引号括起来时,寻找被包含文件的方式是 ;A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录A 63. 当include后面的文件名用尖括号括起来时,寻找被包含文件的方式是 ;A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录C 64. 在下面存储类中, 对象的可见性与生存期不一致;A. 外部类B. 自动类C. 内部静态类D. 寄存器类A 65. 在下面存储类中, 的对象不是局部变量;A. 外部静态类B. 自动类C. 函数形参D. 寄存器类C 66. 关于局部变量,下面说法正确的是 ;A. 定义该变量的程序文件中的函数都可以访问B. 定义该变量的函数中的定义处以下的任何语句都可以访问C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问D. 定义该变量的函数中的定义处以上的任何语句都可以访问C 67. 文件包含命令中被包含的文件的扩展名 ;A. 必须是.hB. 不能是.hC. 可以是.h或.cppD. 必须是.cppB 68. 预处理命令在程序中都是以符号开头的;A. B. C. & D.B 69. 设array为一个数组,则表达式sizeofarray/sizeofarray0的结果为 ;A. array数组首地址B. array数组中元素个数C. array数组中每个元素所占的字节D. array数组占的总字节数C 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是 ;A. int p=new a10;B. int p=new float10;C. int p=new int10;D. int p=new int10={1,2,3,4,5}A 71. 下列给字符数组赋初值时,正确的是 ;A. char s1=”abcdef”;B. char s24=”abcd”;C. char s323={“abc”,”xyz”};D. char s44={‘a’,’x’,’s’,’t’};D 72. 设有定义“static int data56;”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data23的地址为 ;A. 115B 73. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为 ;A. int p=&m;B. int p=&m;C. int &p=m;D. int p=m;D 74. 假定k是一个double类型的变量,则关于变量p的正确定义语句为 ;A. double p=&k;B. int p=&k;C. double &p=k;D. char p=”Thank you”;A 75. 变量s的定义为“char s=”Hello world”;”,要使变量p指向s所指向的同一个字符串,则应选取 ;A. char p=s;B. char p=&s;C. char p;p=s;D. char p; p=&s;C 76. 关于void 指针,下列说法正确的是 ;A. void 指针就是未指向任何数据的指针B. void 指针就是已定义而未初始化的指针C. 指向任何类型数据的指针可直接赋值给一个void 指针D. void 指针值可直接赋给一个非void 指针D 77. 假定一条定义语句为“int a10, x, pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为 ;A. x=pa3;B. x=a+3;C. x=a3;D. x=pa+3;D 78. 假定有定义“int b10; int pb;”,则不正确的赋值语句为 ;A. pb=b;B. pb=&b0;C. pb=new int;D. pb=b5;C79. 假定p是具有double类型的指针变量,则表达式++p使p的值以字节为单位增加 ;A. 1B. 4C. sizeofdoubleD. sizeofpC 80. 假定p指向的字符串为”string”,则cout<<p+3的输出结果为 ;A. stringB. ringC. ingD. i四、问答题每题10分1.为什么称C++语言是混合型面向对象的语言答:一般真正的向对象语言具有抽象、封装、继承和多态性等特征,完全由一组抽象的对象组成,因此没有全局函数;而C++是在标准C语言的基础上引入“面向对象”概念而扩充形成的,严格地讲,它不是完全由一组抽象的对象类组成;因为C++程序中还有像main这样的全局函数,因此称它为混合型面向对象语言;2. 下面是一个联合的定义:Class CU {union {int ivalue;float fvalue;}下面是类C的定义:class C : public A, private B{private:int c;public:void setCint x, int y {c=x; setBy;}void showC {showB ; cout << c << endl;}};讨论类C属于何种方式的继承及其派生方法对访问基类成员的影响;答:类C是多重继承,它从类A 公有派生,因此,类A的公有保护的成员在类C中仍是公有的保护的;类C从类B私有派生,类B的所有成员在类C中是私有的;6. C++ 的流库预定义了哪几个流与这几个流所联结的具体设备是什么答:它们是cin、cout、cerr和clog,与C++的流类库预定义的四个流所联结的具体设备为:cin 与标准输入设备相关联cout 与标准输出设备相关联cerr 与标准错误输出设备相关联非缓冲方式clog 与标准错误输出设备相关联缓冲方式7. 在使用C++时,是否应仍然保持C语言的习惯及思维方式为什么答:不行;做为C语言的超集,C++在技术上是和C完全兼容的, 但它在概念上是和C语言完全不同的,因此,使用者应该学会按C++自己的方式来使用它,掌握C++的思维方式、设计方法和习惯;8.C++中有哪些机制可以实现命名常量答:第一个方法是定义const数据类型,它不但说明了数据,而且声明它是常量,即它的值不能改变;另外一个办法就是利用枚举;9. 简述模板类的动态特征;答:从类系的动态性能角度来看,模板类具有更多的动态特征;一旦完成一个继承类系的设计,它能处理的数据和处理数据的方法就确定了,除非新继承一个类来完成新的功能;模板类在设计完成之后,可以处理的数据类型却可以不断增加,并且模板类的实例可在编译时刻初始化,从而具有更好的灵活性;10 .简述静态成员的特性,然后就作用域与全局变量进行比较答:作为类的静态成员,它的特征是不管类创建了多少个对象,其静态成员都只有一个副本,这个副本为类的所有对象共享;类的静态成员不同于全局变量,全局变量的作用于为整个程序,静态成员只能在类的对象中有效;11.用指针或引用调用虚函数与通过对象访问虚函数的区别是答:使用一个基类型的指针或引用调用一个虚函数时候,c++使用动态联编,而通过对象访问时候,则使用静态联编;12. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤:答:1: 任何虚拟基类的构造函数按照它们被继承的顺序构造;2: 任何非虚拟基类的构造函数按照它们被继承的顺序构造;3: 任何成员对象的构造函数按照它们声明的顺序构造;4: 类自己的构造函数;13. 在C++中,应该使用什么语句来动态分配和释放内存答:. new,delete14. 下面的程序的正确的输出结果是什么include <>include <>class base{。
C语言第4章程序题
c语言程序设计练习题第三章顺序结构一、选择题1、下面程序的输出是______main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=13B) k=11,k=13,k=13C) k=11,k=013,k=oXbD) k=11,k=13,k=b2、以下合法的C语言赋值语句是A)a=b=58; B)k=int(a+b) ; C)a=58,b=58; D)-- i;3、以下程序的输出结果是A)0 B)1 C)3 D)不确定main(){ int x=10,y=3;printf(“%d\n”,y=x/y);}4、若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是A)read (a,b,c); B)scanf(“%d%d%d”,a,b,c);C)scanf(“%D%D%D”,%a,%b,%c); D)scanf(“%d%d%d”,&a,&b,&b);5、执行下面程序段后,c3中的值是_____A)0B)1/2 C)0.5 D)1int c1=1 , c2=2 , c3;c3=c1/c2;6、若执行以下程序段,其输出结果是______A)3,0,-10 B)0,0,5C)-10,3,-10 D)3,0,5int a=0 , b=0 , c=0;c=(a-=a-5) , (a=b,b+3) ;printf(“%d , %d , %d\n” , a,b,c);7、以下程序段的输出是_______A)*0000057.66* B)* 57.66*C)*0000057.67*D)* 57.67*float a=57.666;printf(“*%010.2f*\n”, a);8、若有以下定义和语句:int a=5a++;此处表达式a++的值是____A) 7 B) 6C) 5 D) 49、若有以下定义和语句:char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A")则输出结果是_______A) 2,M B) 3,EC) 2,e D) 输出结果不确定10、以下程序的输出结果是______main(){ int x=10,y=10;printf("%d%d\n",x--,--y);}A) 10 10 B) 9 9C) 9 10 D) 10 911、★在C语言中,如果下面的变量都是int类型,则输出结果是______ sum=pad=5;pad=sum++,pad++,++pad;printf("%d\n",pad);A) 7 B) 6C) 5 D) 412、★以下程序的输出结果_____#include<stdio.h>main(){int i=010,j=10;printf("%d,%d\n",++i,j--);}A) 11,10 B) 9,10C) 010,9 D) 10,913、请读程序int i =65536printf("%d\n",i);上面程序的输出结果是_____A) 65535 B) 0C) 有语法错误,无输出结果 D) 114、已知字符A的ASCII码为十进制的65,下面程序的输出是_____main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,CC) C,D D) 不确定的值15、★若有定义和语句:char s[10]; s="abcd"; printf("%d\n",s);则结果是_____A) 输出 abcd B) 输出 aC) 输出 adcb D) 编译不能通过16、★若有定义:int x,y; char a,b,c; 并有以下输入数据(此处<CR>代表换行,代表空格):1 2 <CR>A B C<CR>则能给X赋整数1,给Y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是_______A) scanf("x=%d y=%d",&x,&y); a=getchar(); c=getchar();B) scanf("%d%d",&x,&y); a=getchar(); b=getchar(); c=getchar();C) scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);D) scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);17、★两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是____ main(){int x;scanf("%d",&x);if (x++>5) printf("%d",x)else printf("%d\n",x--);}A) 7和5 B) 6和3C) 7和4 D) 6和418、★若执行下面的程序从键盘输入3和4,则输出是_______main(){ int a,b,s;scanf("%d%d",&a,&b);s=a;if (a<b) s=b;s=s*s;printf("%d\n",s);}A) 14 B) 16C) 18 D) 2019、★设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A)100<空格>765.12<回车> B)i=100,f=765.12<回车>C)100<回车>765.12<回车> D)x=100<回车>,y=765.12<回车>20、★以下程序的输出结果是____#include<stdio.h>main(){printf("%d\n",NULL);}A) 不确定B) 0C) –1 D) 1二、填空题1、复合语句在语法上被认为是___分程序_____,空语句的形式是___;___。
c语言程序设计题目及答案
一、程序设计共113题第1题题号:319#include ""void wwjt();int fun(int m){int i,k=1;if(m<=1) k=0;for(i=2;i<m;i++)if(m%i==0) k=0;return k;}第2题题号:351-----------功能:请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp 所指一维数组中。
二维数组中的数已在主函数中赋予。
#include<>#include<>#define M 3#define N 4void wwjt();void fun(int tt[M][N],intpp[N]){int i,j;for(j=0;j<N;j++){pp[j]=tt[0][j];for(i=1;i<M;i++)if(tt[i][j]>pp[j])pp[j]=tt[i][j];}第3题题号:375功能:从键盘上输入任意实数,求出其所对应的函数值。
z=e的x次幂(x>10)z=log(x+3) (x>-3)z=sin(x)/((cos(x)+4)#include <>#include<>void wwjt();double y(float x){double z;if(x>10) z=exp(x);else if(x>-3) z=log(x+3);else z=sin(x)/(cos(x)+4);return(z);}第4题题号:334功能:求给定正整数n以内的素数之积。
(n<28)#include <>#include""void wwjt();long fun(int n){long i,k;long s=1;for(i=2;i<=n;i++){for(k=2;k<i;k++)if(i%k==0)break; if(k==i)s=s*i;}return s;}第5题题号:333功能:计算并输出给定整数的所有因子之积(包括自身)。
程序选择题111道(含答案)
7、(函数易)以下程序的正确运行结果是
#include <stdio.h>
void num()
{
extern int x,y;
int a=15,b=10;
x=a-b;
y=a+b;
}
int x,y;
main()
{
int a=7,b=5;
x=a+b;
y=a-b;
num();
printf(“%d,%d\n”,x,y);
石家庄学院2020-2021学年一学期
课程考试试卷答案(A卷)
课程名称:C语言考试时间:120分钟年级:xxx级
专业:xxx
题目部分,(卷面共有506题,506分,各大题标有题量和总分)
一、单项选择题(506小题,共506分)
1、(函数易)以下程序的输出结果是
func(int x, int y)
{int z;
答案:B
34、(预处理命令易)设有以下宏定义:
#define N 3
#defineY(n)((N+1)*n)
则执行语句:z=2*(N+Y(5+1));后,z的值为
A、出错B、42C、48D、54
答案:C
35、(预处理命令易)有如下程序:
#define N 2
#define M N+1
#define NUM 2*M+1
{ z=x+y; return z; }
B、fun(int x,y)
{ int z; return z; }
C、fun(x,y)
{ int x,y; double z; z=x+y; return z; }
c语言程序基础练习题500道(附答案)
1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
22
勾股弦数是满足公式: A^2+B^2=C^2 (假定A<B<C)的一组正整数(A,B,C),例 如,(3,4,5)是勾股弦数,因为:3^2+4^2=5^2。求A,B均小于25且A+B+C<=100 的勾股弦数的个数。 回文数是指正读和反读都一样的正整数。例如3773是回文数。求出[1000,9999]以内的 所有回文数的个数。 利用格里高利公式:α/4=1-1/3+1/5-1/7+1/9-1/11+…-1/99,求α的值。要求:按四舍五 入的方式精确到小数点后第二位。 马克思曾经做过这样一道趣味数学题:有30个人在一家小饭店里用餐,其中有男人、女 人和小孩,每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,共花去50先 令。如果要求男人、女人和小孩都有人参与,试求有多少种方案分配男人、女人和小孩 的人数。 某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子的 两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分子跟原分 子相等。例如,63/84=(6+3)/(8+4)。试求所有具有这种特点的真分子(非约简真分 数)的分子与分母之和的和。 求[1,50]之间的所有整数能构成直角三角形的三边的组数。例如:3*3+4*4=5*5,它们 构成直角三角形,所以{3,4,5}作为一组,但{4,3,5}视为跟{3,4,5}相同的一组。 求[1,999]之间能被3整除,且至少有一位数字是5的所有正整数的个数。 求[200,300]之间有奇数个不同因子的最大的整数(在计算因子个数时,包括该数本身)。 求[5,500]中相差为10的素数对(注:要求素数对的两个素数均在该范围内)的个数 (即: 有多少个这样的素数对)。 求1/(1*2)+1/(2*3)+1/(3*4)+....+1/(N*(N+1))的值,N=20, 要求:按四舍五入的方式精确到 小数点后第二位。 求500以内(含500)能被5或9整除的所有自然数的倒数之和。按四舍五入的方式精确到 小数点后第二位。 求S=1/2+2/3+3/5+5/8+……的前30项的和(注:该级数从第二项开始,其分子是前一项 的分母,其分母是前一项的分子与分母的和)。要求:按四舍五入的方式精确到小数点 后第二位。 求方程8x-5y=3,在|x|<=150, |y|<=200内的整数解。试问这样的整数解有多少组? 求方程8x-5y=3,在|x|<=150, |y|<=200内的整数解。试问这样的整数解中|x|*|y|的最大值是 多少? 求符合下列条件的四位完全平方数(某个正整数A是另一个正整数B的平方,则称A为完全 平方数),它的千位数字与十位数字之和等于百位数字与个位数字之积,例如, 3136=56^2, 且3+3=1*6 故3136是所求的四位完全平方数. 求其中最大的一个数。 求数学式1-1/2+1/3-1/4+1/5-1/6+…+1/99-1/100的值。 (按四舍五入方式精确到小数点 后4位) 求在[10,1000]之间的所有完数之和。各真因子之和(不包括自身)等于其本身的正整 数称为完数。例如:6=1+2+3,6是完数。 若(x,y,z)满足方程:x^2+y^2+z^2=55^2(注:要求 x > y > z),则(x,y,z)称为方程的一 个解。试求方程的所有整数解中,|x|+|y|+|z|的最大值。 若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数, 例:2*3-1=5,因此2与3是友数对,5是友素数,求[40,119]之间友素数对的数目。 若某整数平方等于某两个正整数平方之和的正整数称为弦数。例如:由于 3^2+4^2=5^2,则5为弦数,求[100,200]之间弦数的个数。 若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位 正整数是“四位双平方数”。例如: 由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“ 四位双平方数”。求所有“四位双平方数”之和。 设S(n)=1-1/3+1/5-1/7+…1/(2n-1),求S(100)的值,要求S(100)按四舍五入方式精确 到小数点后4位。 设S=1+1/2+1/3+…1/n,n为正整数,求使S不超过10(S≤10)的最大的n。 设某四位数的各位数字的平方和等于100,问共有多少个这种四位数? 设某四位数的千位数字平方与十位数字的平方之和等于百位数字的立方与个位数字的立 方之和,例如,对于四位数:3201, 3^2+0^2=2^3+1^3,试问所有这样的四位数之和是 多少? 设某四位数的千位数字与十位数字的和等于百位数字与个位数字的积,例如,对于四位 数:9512,9+1=5*2,试问所有这样的四位数之和是多少? 设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或 1),求满足上述条件的所有四位数abcd的和。 设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或 1),求满足上述条件的最大四位数abcd的值。 一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。例如, 6的真因子为1, 2,3,而6=1+2+3,因此,6是“完数”。求[1,1000]之间的最大完数。 一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。例如,6的真因子为 1,2,3,而6=1+2+3,因此,6是“完数”。求[1,1000]之间的第二大完数。
43 44 45 46 47
1078289 3665 1999 496 28
48 50 51
52
53
54
55 56 57 58
59 61
63 64 65
一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。例如,6的真因子为 1,2,3,而6=1+2+3,因此,6是“完数”。求1000以内的所有完数之和。 已知 f(0)=1,f(1)=2,f(2)=3;f(n)=f(n-1)+2f(n-2)-5f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+… f(30)。 已知 f(0)=f(1)=1 f(2)=0 f(n)=f(n-1)-2*f(n-2)+f(n-3) (n>2) 求f(0)到f(50)中的最大值 已知:非等腰三角形最长边是60,其它两边的长度都是正整数,且三边之和能被3整 除,试编程求取这类三角形的个数(注意:两边的长度交换构成的三角形算作同一个三 角形,如:其它两边的长度为30和40的三角形与长度为40和30的三角形视为同一个三角 形)。 已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述: F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 试求F(2)+F(4)+F(6)+……+F(50)值。 提示: 最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。 已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述: F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 试求F(50)值。 提示: 最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。 已知X,Y,Z为三个正整数,且X^2+Y^2+Z^2=25^2,求X+Y+Z的最大值。 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各 位数字的立方和。试求所有这样的三位数中最大的一个是多少? 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各 位数字的立方和。试求这种三位数共有多少个? 自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差17-8=9都 是平方数,则称8和17是自然数对(8,17)。假定(A,B)与(B,A)是同一个自然 数对且假定A>=B,求所有小于或等于100(即:A<=100,B<=100,A<>B,A和B均不为 0)的自然数对中B之和。 (x,y,z)满足方程:x^2+y^2+z^2=55^2(注:要求 x > y > z),则(x,y,z)称为方程的一个 解。试求方程的整数解(包括负整数解)的个数。 50元的整币兑换成5元、2元和1元币值(要求三种币值均有)的方法有多少种。 爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果 每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每 次走七阶,刚好走完.求满足上述条件的最小台阶数是多少? 编写程序,求共有几组i,j,k符合算式ijk+kji=1534,其中i,j,k是[0,9]之间的一个整数且i<k。 当n=50时,求下列级数和:S=1/(1*2)+1/(2*3)+…+1/(n*(n+1))要求:按四舍五入的 方式精确到小数点后第四位。 倒勾股数是满足公式: 1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如, (156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。假定A>B>C,求A, B,C均小于或等于100的倒勾股数有多少组? 斐波那契数列的前二项是1,1,其后每一项都是前面两项之和,求:10000000以内最大 的斐波那契数? 勾股弦数是满足公式: A^2+B^2=C^2 (假定A<B<C)的一组正整数(A,B,C),例如, (3,4,5)是勾股弦数,因为:3^2+4^2=5^2。求A,B,C均小于或等于100的勾股弦 数中A+B+C的最大值。 猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一 个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃 尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。 问小猴子第一天共摘下了多少个桃子。 某一正整数,进行递减,每次将该数减半后再减一,当对该数进行第10次减半时发现该 数只剩下1不能再减了,求该数。 计算Y=X/1!-X^3/3!+X^5/5!-X^7/7!+……前20项的值(已知:X=2)。要求:按四舍五入的 方式精确到小数点后第二位。 求[2,400]中相差为10的相邻素数对的对数。 求[200,300]之间第二大有奇数个不同因子的整数(在计算因子个数时,包括该数本身)。 求Y=1-1/2+1/3-1/4+1/5… 前30项之和。要求:按四舍五入的方式精确到小数点后第二位 。 求方程9X-19Y=1,在|X|≤100,|Y|≤50内共有多少组整数解?