将十进制正整数m转换成k(≤k≤)进制数,并按位输出。(DOC)
- 格式:pdf
- 大小:32.13 KB
- 文档页数:1
计算机二级C语言上机(南开大学)100题程序填空题1 补充fun函数,fun函数的功能是求10的阶乘。
n>1 n-1 n==12 在函数fun的横线上填写若干表达式,使从键盘上输入一个整数n,输出数列是一种整数数列,其中每数等于前面两数之和n==o n==1 fun(n-1)+fun(n-2)3 补充函数fun(char*s),该函数的功能是把字符串中的内容逆置s+i<s+n-1-i*(s+i)=(s+n-1-i) *(s+n-1-i)=t4 补充函数fun,他的功能是计算并输出n(包括n)以内能被3或7整除的所有自然数的倒数之和i<=ni%3==0||i%7==0 1.0/i5 功能是求1/2的圆面积,函数通过形参得到圆的半径,函数返回1/2的圆面积r r*r &x6 功能是计算并输出下列级数的前N项合Sn,直到Sn大于q为止,q 的值通过形参传入<= n++return s7 函数fun的功能是统计长整数n的各个位上出现数字1.2.3的次数,并通过外部(全局)变量c1.c2.c3返回主函数n%10 break break8 补充main函数,功能是从键盘输入一组整数,使用条件表达式找出最大的整数,当输入的整数为0时结束&num[i]max<num[i]? num[i]!=09 给定程序的功能是分别统计字符串中大写字母和小写字母的个数(*a)++ (*b)++ upper,lower10 补充main函数,功能是从键盘输入3个整数,然后找出最大的数并输出。
max=a max=b max=c11 函数fun的功能是把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动1 s[k] c12 补充fun函数,功能是字符串tt中的大写字母都改为对应的小写字母,其他的字符不变。
tt[i]<='Z'tt[i]+=32 tt13 补充fun函数,功能是判断一个数是否为素数。
数制转换的原理与方法数制转换是指将一个数值从一种数制表示转换为另一种数制表示的过程。
常见的数制包括十进制、二进制、八进制和十六进制等。
数制转换的原理和方法可以根据不同的数制进行具体的讨论。
首先,我们来看十进制到其他数制的转换。
十进制是我们最常用的数制,它使用0到9这10个数字来表示数值。
要将一个十进制数转换为其他数制,可以使用除法法则。
具体步骤如下:1. 将十进制数不断除以目标数制的基数,将得到的余数记录下来。
2. 将商继续除以基数,再次记录余数。
3. 重复上述步骤,直到商为0为止。
4. 将记录的余数按照逆序排列,即可得到转换后的数值。
例如,将十进制数27转换为二进制数。
二进制的基数是2,按照上述步骤进行转换:27 ÷2 = 13 余113 ÷2 = 6 余16 ÷2 = 3 余03 ÷2 = 1 余11 ÷2 = 0 余1将记录的余数逆序排列,得到二进制数11011,即27的二进制表示。
类似地,将其他数制转换为十进制也可以使用类似的方法。
将每一位上的数值乘以对应的权重,然后将它们相加即可得到十进制表示。
除了十进制和二进制之间的转换,其他数制之间的转换也可以使用类似的原理和方法。
例如,将二进制转换为八进制,可以将二进制数按照每3位一组进行分组,然后将每组转换为对应的八进制数。
将八进制转换为十六进制,可以先将八进制数转换为二进制数,然后将二进制数按照每4位一组进行分组,再将每组转换为对应的十六进制数。
总之,数制转换的原理和方法可以根据不同的数制进行具体的讨论,但基本思想是通过除法法则或乘法法则将数值在不同数制之间进行转换。
B试卷1、以下程序的功能是:输入任意整数n〔0<n<10〕,输出n行由大写字母A开始构成的三角形字符阵列图形,例如,输入整数6时,程序运行结果如下:请填空完成该程序。
#include <stdio.h>main(){int i,j,n;char (1) ;printf("Please input n:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1; (2) ;j++){ printf("%2c",ch);(3) ;}(4) ;}}2. 以下程序的功能是:从一个字符串中截取前面给定长度的子字符串。
其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。
例如,str1="ABCDEF",n=4,截取后的字符数组str2="ABCD"。
请填空完成该程序。
#include <stdio.h>#include <conio.h>#define LEN 80main(){char str1[LEN],str2[LEN];int n,i;printf("输入字符串:\n");gets(str1);printf("输入子字符串的长度:");scanf( "%d", (1) );for(i=0;i<n;i++)(2) ;str2[i]= (3) ;printf("子字符串是:%s\n", (4) );}〔一〕程序调试题〔3小题,第1、2小题各3处错,第3小题4处错,每改正1处得3分,共30分〕1. 程序调试题1调试要求:以下程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/***/字样的注释),使其运行能得到正确的结果。
课堂作业模块1 Java编程逻辑【第1课】【作业1】编写一个Java程序,在控制台上输出如下两行信息:Hello,World!Hello,Java!考核点1:了解一个Java程序的启动位置(即程序入口)。
考核点2:掌握基本输出语句:System.out.println(字符串)【第2课】【作业1】从键盘输入3个整数a、b、c,计算a+b*c的结果后输出,验证计算结果是否遵循运算符的优先级顺序。
考核点1:使用Scanner类获取键盘输入。
考核点2:基本运算符及其优先级顺序。
【作业2】从键盘输入1个实数r,计算以r为半径的圆的面积并输出结果,要求将π定义为符号常量。
考核点:符号常量的基本用法。
【第3课】【作业1】从键盘输入3个整数,比较大小后输出最大者。
考核点:if-else语句的运用。
【作业2】从键盘输入一个3位数,判断其是否为水仙花数。
所谓“水仙花数”是指一个三位整数,其各位数字立方和等于该数本身。
例如:153=13+53+33,所以153是一个水仙花数。
考核点:基本数学运算符和逻辑运算符的用法。
【第4课】【作业1】从键盘输入3个整数,比较大小后按由小到大的顺序输出。
考核点:if-else语句嵌套运用。
【作业2】从键盘输入一个年份和一个月份,输出此月份有多少天(考虑闰二月的情况)。
考核点:使用switch-case多分支语句。
【第5课】【作业1】从键盘输入一个正整数,判断其是否为素数。
素数指只有1和它本身两个因子的整数。
考核点:基本循环语句的用法。
【作业2】输出100-999之间的全部水仙花数。
考核点:基本循环语句的用法。
【作业3】从键盘输入一个正整数,判断并输出该正整数是几位数。
考核点1:基本循环语句的用法。
考核点2:分离一个整数各个位数字的方法。
【第6课】【作业1】编写一个Java程序,输出如下图案,图案的行数由键盘输入。
(1)观察图案中行、列及星星个数之间的关系。
(2)扩展练习,输出如下图案,图案的行数由键盘输入。
第一套改错:fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
1、m=0; 改为m=i;2、if(a[k]>a[m]) k=m;改为if(a[k]>a[m]) m=k;第二套改错:fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。
1、void fun(char str, char ch ) 改为void fun(char *str, char ch ) 2、if ( *str == ch )改为if ( *str! = ch )3、str[1] = '0';改为str[1] = 0;第四套改错:fun函数的功能是:将p所指字符串中的每个单词的最后一个字母改成大写。
(这里的“单词”是指由空格隔开的字符串)。
1、if( p == ' ' )改为if( *p == ' ' )2、* (p-1) = toupper( *( p - 1 ) ) 改为* (p-1) = toupper( *( p - 1 ) );第六套改错:fun函数的功能是:tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变。
1、if(( ‘a’ <= tt[i] )||( tt[i] <= ‘z’ ) )改为if(( ‘a’ <= tt[i] )&&( tt[i] <= ‘z’ ) )2、tt[i] + = 32;改为tt[i] - = 32;第三套改错:fun的功能是:计算整数n的阶乘。
1、result*=--n; 改为result*=n--;2、return _____;改为returnresult;第五套改错:fun函数的功能是:根据形参m,计算如下公式的值。
t=1+1/2+1/3+1/4+……+1/m1、t + = 1.0/k; 改为t + =1.0/i;2、________改为return t;第七套改错:fun函数的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
第一章1。
什么是模拟信号?什么是数字信号?试举出实例。
模拟信号—----指在时间上和数值上均作连续变化的信号。
例如,温度、压力、交流电压等信号.数字信号--—--指信号的变化在时间上和数值上都是断续的,阶跃式的,或者说是离散的,这类信号有时又称为离散信号。
例如,在数字系统中的脉冲信号、开关状态等。
2. 数字逻辑电路具有哪些主要特点?数字逻辑电路具有如下主要特点:●电路的基本工作信号是二值信号。
●电路中的半导体器件一般都工作在开、关状态.●电路结构简单、功耗低、便于集成制造和系列化生产。
产品价格低廉、使用方便、通用性好。
●由数字逻辑电路构成的数字系统工作速度快、精度高、功能强、可靠性好。
3。
数字逻辑电路按功能可分为哪两种类型?主要区别是什么?根据数字逻辑电路有无记忆功能,可分为组合逻辑电路和时序逻辑电路两类。
组合逻辑电路:电路在任意时刻产生的稳定输出值仅取决于该时刻电路输入值的组合,而与电路过去的输入值无关。
组合逻辑电路又可根据输出端个数的多少进一步分为单输出和多输出组合逻辑电路。
时序逻辑电路:电路在任意时刻产生的稳定输出值不仅与该时刻电路的输入值有关,而且与电路过去的输入值有关。
时序逻辑电路又可根据电路中有无统一的定时信号进一步分为同步时序逻辑电路和异步时序逻辑电路。
4. 最简电路是否一定最佳?为什么?一个最简的方案并不等于一个最佳的方案。
最佳方案应满足全面的性能指标和实际应用调整。
5。
把下列不同进制数写成按权展开形式。
(1) (4517.239)10(3) (325.744)8(2)(10110.0101)2(4) (785.4AF)16解答(1)(4517。
239)10 = 4×103+5×102+1×101+7×100+2×10—1+3×10—2+9×10—3(2)(10110.0101)2= 1×24+1×22+1×21+1×2-2+1×2-4(3)(325.744)8 = 3×82+2×81+5×80+7×8-1+4×8-2+4×8—3(4) (785。
进位计数制及其转换方法过程详解IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】进位计数制及其转换方法过程详解数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。
按进位的原则进行计数的方法,称为进位计数制。
比如,在十进位计数制中,是按照“逢十进一”的原则进行计数的。
常用进位计数制:1、十进制(Decimal notation),有10个基数:0 ~~ 9 ,逢十进一;2、二进制(Binary notation),有2 个基数:0 ~~ 1 ,逢二进一;3、八进制(Octal notation),有8个基数:0 ~~ 7 ,逢八进一;4、十六进制数(Hexdecimal notation),有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一。
二、进位计数制的基数与位权"基数"和"位权"是进位计数制的两个要素。
1、基数:所谓基数,就是进位计数制的每位数上可能有的数码的个数。
例如,十进制数每位上的数码,有"0"、"1"、"3",…,"9"十个数码,所以基数为10。
2、位权:所谓位权,是指一个数值的每一位上的数字的权值的大小。
例如十进制数4567从低位到高位的位权分别为100、101、102、103。
因为:4567=4x103+5x 102+6x 101 +7x100?3、数的位权表示:任何一种数制的数都可以表示成按位权展开的多项式之和。
比如:十进制数的435.05可表示为:435.05=4x102+3x 101+5x100+0x10-1 +5x 10-2位权表示法的特点是:每一项=某位上的数字X基数的若干幂次;而幂次的大小由该数字所在的位置决定。
VB 进制转换练习题(2)1.下列VB 程序的功能是将二进制数转换为十进制数。
采用位权展开的方法:10012342(29)2120212121(11101)=⨯+⨯+⨯+⨯+⨯= 。
程序运行时,在文本框Text1中输入一个二进制数,单击计算按钮(Command1)后,文本框Text2中显示对应的十进制数。
程序的运行界面如图所示。
请在划线上填入合适的代码。
Function fq(n As Integer, x As Integer) As Long '函数返回位权值Dim i As IntegerIf x = 1 Thenfq = 1For i = 1 To nfq = fq * 2Next iElsefq = 0End IfEnd FunctionPrivate Sub Command1_Click()Dim s1 As String, length As Integer,ch As String, x As IntegerDim sum As Long, i As Integers1 = Text1.Text sum = 0 For i = 1 To lengthch = Mid(s1, i, 1)x = Val(ch)Next iText2.Text = Str(sum)End Sub2.编写VB 程序,实现如下功能:在文本框Text1中输入十六进制数,单击“转换”按钮Command1,在列表框List1中输出对应的十进制数,运行界面如图所示,程序代码如下。
(1)要调整Label1中的字体大小,可选择在属性面板中设置Label1的________属性值。
(单选,填字母:A.Caption/B.Font/ C.Height)(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()Dim s As String, c As String, t As StringDim i As Integer, b As Integer, ans As LongDim flag As Booleans=_______①_______ b =Len(s)flag =Trueans =0For i =1 To bc =Mid(s, i, 1)If c >=“0” And c <=“9” Thenans = ans*16+Asc(c)-Asc(“0”)ElseIf c >=“A ” And c <=“F ” Thenans =ans*16+_______________②_________________Else_________③__________′输入情况有误Exit ForEnd IfNext iIf flag Then t = Str(ans)Else t =“输入有误!”List1.AddItem s + “-->” + tEnd Sub(3)由上述算法可知,运行时在Text1框中输入“d8”,列表框List1中添加的条目为________。
则函数值为NULL。
t1和t2所指字符串的长度相同。
数值返回。
为函数值返回。
11.求k!(k<13),所求阶乘的值作为函数值返回。
方根之和sum。
n的值通过形参传入。
为7,若给num1和num2分别输入27和81,则输出的最大公约数为27。
返回3,若能构成等腰三角形函数返回2,若能构成三角形函数返回1,若不能构成三角形函数返回0。
29.找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
1.将n1.根据形参m,计算如下公式的值。
2.根据整型形参m,计算如下公式的值。
3.根据整型形参m的值,计算如下公式的值。
4.根据整型形参m,计算如下公式的值。
5.传入一个整数m,计算如下公式的值。
8.根据整型形参n,计算如下公式的值。
9.求s的值。
11.应用递归算法求某数a的平方根。
求平方根的迭代公式如下:(x+1)/(x-2) x>0f(x)= 0 x=0或x=2(x-1)/(x-2) x<010 (n=1)fun(n)=fun(n-1)+2 (n>1)16.求出以下分数序列的前n项之和,和值通过函数值返回main函数。
17.求出以下分数序列的前n项之和,和值通过函数值返回main()函数。
所指的数组中。
若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
为函数值返回。
规定,函数中a1放个位数,a2放十位数。
区中,此存储区的首地址作为函数值返回。
1.给—维数组a输入任意4个整数,并按如下的规律输出。
例如输入1,2,3,4,程序运行后将输出以下方阵:2.根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
1.并用随机函数为各结点赋值。
将单向链表结点(不包括头结点,并且作为函数值返回。
并且作为函数值返回。
数制间的转化⽅法
前话:通常使⽤⼗进制数,但由于计算机中使⽤的是⼆进制数,所以,必须将输⼊的⼗进制数转换为计算机能够接受的⼆进制数,运算结束后再转换为⼈们所习惯的⼗进制数,是由计算机系统⾃动完成。
引⼊⼋进制和⼗六进制的⽬的是为了书写和表⽰上的⽅便。
⼀,⼗进制数转换为⾮⼗进制数
1,⼗进制整数转换为⾮⼗进制整数
除基取余法:即将⼗进制整数逐次除以需要转换为的数制的基数,直到商为0为⽌,然后将所得的余数⾃下⽽上排列即可。
简⾔之:除基取余,先余为低(位),后余为⾼(位);
2,⼗进制⼩数转换为⾮⼗进制⼩数
乘基取整法:即将⼗进制⼩数逐次乘以需转换为的数制的基数,直到⼩数部分的当前值等于零为⽌,然后将所得到的整数⾃上⽽下排列。
简⾔之:乘基取整,先整为⾼(位),后整为低(位);
如果⼀个⼗进制数既有整数部分,⼜有⼩数部分,则应将两者分别进⾏转换,然后把两者相加便得到结果。
⼆,⾮⼗进制数转换为⼗进制数
⾮⼗进制数转换为⼗进制数采⽤位权法,即把各⾮⼗进制按权展开,然后求和即可。
三,⼆进制和其他进制之间的转换
1,⼆进制与⼋进制之间的转换由于3位⼆进制数恰好是1位⼋进制数,所以若把⼆进制数转换为⼋进制数,只要以⼩数点为界,将整数部分⾃右向左和⼩数部分⾃左向右分别按每三位为⼀组,(不⾜三位⽤零补齐),然后将各个3位⼆进制数转换为对应的1位⼋进制数,即得到结果。
反之,若把⼋进制数转换为⼆进制数,只要把每⼀位⼋进制数转换为对应的3位⼆进制数即可。
2,⼆进制与⼗六进制之间的转换
同上,每四位为⼀组进⾏对应转换即可。