程序设计典型例题
程序设计习题及答案
![程序设计习题及答案](https://img.taocdn.com/s3/m/03ea7a1f814d2b160b4e767f5acfa1c7ab008252.png)
程序设计习题及答案程序设计是一门需要不断练习和实践的技能。
通过解决各种习题,可以帮助我们提升编程能力,加深对编程语言和算法的理解。
本文将介绍一些常见的程序设计习题,以及它们的解题思路和答案。
一、习题一:计算1到100的和题目描述:编写一个程序,计算从1到100的所有整数的和。
解题思路:我们可以使用循环来实现这个求和操作。
从1开始,每次循环将当前数值累加到总和上,然后将当前数值加一。
循环直到达到100为止。
代码示例:```pythonsum = 0for num in range(1, 101):sum += numprint("1到100的和为:", sum)```二、习题二:查找列表中的最大值题目描述:给定一个整数列表,编写一个程序来查找列表中的最大值。
解题思路:我们可以使用一个变量来存储当前的最大值,然后遍历整个列表,比较每个元素与最大值的大小。
如果找到比当前最大值更大的元素,就更新最大值。
代码示例:```pythonnumbers = [5, 8, 3, 12, 1, 9]max_num = numbers[0]for num in numbers:if num > max_num:max_num = numprint("列表中的最大值为:", max_num)```三、习题三:判断一个数是否为素数题目描述:给定一个正整数,编写一个程序来判断该数是否为素数。
解题思路:素数是指只能被1和自身整除的整数。
我们可以使用一个循环来判断该数是否有除了1和自身以外的因子。
遍历2到该数的平方根,如果找到任何一个能整除该数的因子,就说明该数不是素数。
代码示例:```pythonimport mathdef is_prime(num):if num < 2:return Falsefor i in range(2, int(math.sqrt(num)) + 1):if num % i == 0:return Falsereturn Truenum = 17if is_prime(num):print(num, "是素数")else:print(num, "不是素数")```四、习题四:反转字符串题目描述:给定一个字符串,编写一个程序来将它反转。
经典C语言程序设计例题集锦
![经典C语言程序设计例题集锦](https://img.taocdn.com/s3/m/590d98e881c758f5f61f67de.png)
经典 C 语言程序设计 100 例 1-10
-------------------------------------------------------
【程序 1】
} } -------------------------------------------------------【程序 9】 题目:要求输出国际象棋棋盘。 1.程序分析:用 i 控制行,j 来控制列,根据 i+j 的和的变化来控制输出黑方格,还是白 方格。 2.程序源代码: #include "stdio.h" main() { int i,j; for(i=0;i<8;i++)
题目:有 1、2、3、4 个数字,能组成多少
个互不相同且无重复数字的三位数?都是
多少?
1.程序分析:可填在百位、十位、个位的数
字都是 1、2、3、4。组成所有的排列后再去
掉不满足条件的排列。
2.程序源代码:
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)
/*以下为三重循
【程序 2】
题目:企业发放的奖金根据利润提成。利润
(I)低于或等于 10 万元时,奖金可提 10%;
利润高
于 10 万元,低于 20 万元时,低于
10 万元的部分按 10%提成,高于 10 万元的
部分,可可提
成 7.5%;20 万到 40 万之间时,高
于 20 万元的部分,可提成 5%;40 万到 60
Autolisp 程序设计例题
![Autolisp 程序设计例题](https://img.taocdn.com/s3/m/3a1d4c38eefdc8d376ee3240.png)
• • • • • • • • • • • • • • • • • • •
定义AutoCAD命令绘制带键槽的轴的剖面图 (defun c:shafkey ( / d l t1 p0 ang p1 p2 ) (setq d ( / ( getdist “\n d=” ) 2.0 ) I ( getdist “\n l=” ) t1 ( / (getdist “\n t1=” ) 2.0 ) p0 ( getpoint “\n center point:” ) ang (atan ( / t1 ( sqrt ( - ( * d d )) ( * t1 t1 ))))) ( command “pline” ( setq p1 ( polar p0 ( - ang ) d )) ( setq p2 ( list ( + ( car p0 ) ( - l d )) ( xadr p1 ))) ( polar p2 ( /pi 2.0 ) ( * 2 t1 )) ( polar p0 ang d ) ( “a” “ce” p0 p1 “ ” ) ( setq s1 ( entlast ) ) ( command “hatch” “u” 45 2 “s1” “ “ )) ) 调用方法是: command :shafkey
ห้องสมุดไป่ตู้
例题5.绘制参数化的楼梯图。 ( defun stair ( pb l h n/ d b po p1 p2 ) (setq pc (polar pb 0 l )) ( setq pt (polar pc ( / pi 2.0) h )) ( command “line” pb pc pt “ “ ) ( setq a ( / l n ) b ( / h n )) ( setq I 1 p0 pb ) ( while ( <= I n ) ( setq p1 ( polar p0 ( / pi 2.0 )b )) ( setq p2 (polar p1 0 a )) (command “line” p0 p1 p2 “ “ ) ( setq p0 p2 i (1+ i )) ) ; while ) ; defun
c语言程序设计试题及答案解析
![c语言程序设计试题及答案解析](https://img.taocdn.com/s3/m/f4d9c0576d85ec3a87c24028915f804d2a168712.png)
c语言程序设计试题及答案解析C语言程序设计试题及答案解析一、选择题1. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C2. C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是______。
答案:int2. 若有以下C语言代码段:```cint a = 5, b = 10;printf("%d", a + b);```执行后输出的结果是______。
答案:15三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的多个元素。
数组的定义方式为:类型名数组名[数组大小];初始化方式可以是静态初始化,即在定义时直接赋值,如:int arr[5] = {1, 2, 3, 4, 5}; 或者动态初始化,即在定义后使用循环或赋值语句逐一赋值。
四、编程题1. 编写一个C语言程序,实现求一个整数的阶乘。
```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num));return 0;}```五、分析题1. 请分析以下C语言代码段的运行结果,并解释原因。
```c#include <stdio.h>int main() {int x = 10;printf("%d", x++);return 0;}```答案:代码段的运行结果是10。
C语言程序设计经典100题
![C语言程序设计经典100题](https://img.taocdn.com/s3/m/7da269c1c9d376eeaeaad1f34693daef5ef71382.png)
C语言程序设计经典100题C语言是一种通用的、过程化的编程语言,广泛应用于软件开发、嵌入式系统和高性能计算等领域。
掌握C语言程序设计的基本知识对于初学者来说至关重要。
本文将为你介绍C语言程序设计中的经典100个题目,帮助你加深对C语言的理解和应用。
1. 编写一个程序,要求用户输入两个整数,并输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 编写一个程序,要求用户输入一个整数,并判断它是否为偶数。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:\n");scanf("%d", &num);if (num % 2 == 0) {printf("该数是偶数。
\n");} else {printf("该数是奇数。
\n");}return 0;}```3. 编写一个程序,实现1至100之间所有奇数的累加和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i += 2) {sum += i;}printf("1至100之间所有奇数的累加和为:%d\n", sum);return 0;}```4. 编写一个程序,实现输入一个数n,计算并输出1到n的阶乘。
程序设计经典100题
![程序设计经典100题](https://img.taocdn.com/s3/m/a3ee1d51f08583d049649b6648d7c1c709a10b4b.png)
程序设计经典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]```解法二:使用列表逆序可以将字符串转换为列表,然后使用列表的逆序方法实现字符串的翻转。
python程序设计经典例题
![python程序设计经典例题](https://img.taocdn.com/s3/m/4572d95ffe00bed5b9f3f90f76c66137ee064fbf.png)
Python程序设计经典例题一、介绍Python作为一种高级的通用编程语言,被广泛应用于各个领域,包括网络编程、数据分析、人工智能等。
在学习Python编程过程中,经典的例题是非常重要的,它可以帮助我们了解编程的基本逻辑和语法,提高我们的编程实战能力。
本文将介绍一些经典的Python程序设计例题,希望能够对大家的学习和工作有所帮助。
二、经典例题一:斐波那契数列斐波那契数列是数学中一个经典的问题,定义如下:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n >= 2)要求编写一个Python程序,输入一个正整数n,输出斐波那契数列的第n个数。
解题思路:可以使用递归或者循环的方式来解决这个问题。
递归的方法比较简单,但是效率不高,可能会导致栈溢出。
循环的方法需要用到一个列表来保存中间结果,效率较高。
代码示例(循环方式):```def fibonacci(n):fib = [0, 1]for i in range(2, n+1):fib.append(fib[i-1] + fib[i-2])return fib[n]```代码示例(递归方式):```def fibonacci(n):if n <= 1:return nelse:return fibonacci(n-1) + fibonacci(n-2)```三、经典例题二:查找素数素数是指除了1和它本身外没有其他因数的整数。
要求编写一个Python程序,输入一个正整数n,输出小于等于n的所有素数。
解题思路:素数的判断可以使用试除法,即对于每个数字,判断它是否能被2到sqrt(n)之间的所有整数整除。
如果都不能整除,则该数字是素数。
代码示例:```import mathdef is_prime(num):if num < 2:return Falsefor i in range(2, int(math.sqrt(num))+1):if num i == 0:return Falsereturn Truedef find_prime(n):primes = []for i in range(2, n+1):if is_prime(i):primes.append(i)return primes```四、经典例题三:矩阵转置给定一个二维的矩阵,要求编写一个Python程序,实现矩阵的转置。
Visual Basic程序设计语言常用算法例题源代码30题
![Visual Basic程序设计语言常用算法例题源代码30题](https://img.taocdn.com/s3/m/b57c21a9daef5ef7ba0d3ccc.png)
Visual Basic程序设计语言常用算法源代码30例题1、统计随机产生的十个两位正整数中偶数与奇数的个数,并求出偶数与奇数各自的总和Option ExplicitPrivate Sub Form_Click()Dim x As Integer, s1 As Integer, s2 As IntegerDim n1 As Integer, n2 As Integer, i As IntegerRandomizeFor i = 1 To 10_x=int(90*rnd)+10__Print x;If _ x mod 2=0 Thenn2 = n2 + 1s2 = s2 + xElse___n1=n1+1_s1 = s1 + xEnd IfNext iPrintPrint "奇数个数="; n1; "偶数个数="; n2;End Sub2.从字符串中分离数字和字母Private Sub Command1_Click()Dim s As String, i As IntegerConst ch As String = “0123456789.”s = "2L0A09U.0SI3V.24"For i = 1 To Len(s)If InStr(ch, Mid(s, i, 1)) = 0 Thenst1 = Mid(s, i, 1) & st1Elsest2 = st2 & Mid(s, i, 1)End IfNext iPrint st1: Print st2End Sub3. 统计字符串中“O”的个数Private Sub Command1_Click()a = "THERE IS A BOOK ON THE DESK"m = len(a)For i = 1 To mb =mid(a,i,1)If b = "O" Then num=num+1Next iPrint numEnd Sub4.从给定的字符串中只分离出数字Private Sub Command1_Click()Dim s As String, t As StringDim i As Integers = Text1.TextFor i = 1 To Len(s)If Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= 9 Thent = t & Mid(s, i, 1)End IfNext iText2.Text = tEnd Sub5.(一)将正整数转化成二进制数Private Sub Command1_Click()Dim n As Long, t As Stringn = Val(Text1.Text)Dot = n Mod 2 & tn = n \ 2Loop Until n = 0Text2.Text = tEnd Sub5、(二)将正整数转化成16进制Private Sub Command1_Click()Dim n As Long, t As String, g As Stringn = Val(Text1.Text)Dog = n Mod 16If Val(g) > 9 Theng = Chr(55 + Val(g))End Ift = g & tn = n \ 16Loop Until n = 0Text2.Text = tEnd Sub5、(三)将正整数转化成8进制Private Sub Command1_Click()Dim n As Long, t As Stringn = Val(Text1.Text)Dot = n Mod 8 & tn = n \ 8Loop Until n = 0Text2.Text = tEnd Sub6.找出100以内的所有勾股数(不包括100)Private Sub Form_Click()Dim a As Integer, b As Integer, c As Integer, n As IntegerFor a = 1 To 99For b = 1 To 99For c = 1 To 99If a ^ 2 + b ^ 2 = c ^ 2 And a <> b Thenn = n + 1Print a; b; c; “; “;If n Mod 5 = 0 ThenPrintEnd IfEnd IfNext cNext bNext aPrint nEnd Sub7.找出三位数字中的所有升序数(各位数字>十位数字>百位数字)Private Sub Form_Click()Dim a As Integer, b As Integer, c As Integer, n As IntegerFor a = 1 To 9For b = 1 To 9For c = 1 To 9If a < b And b < c Thenn = n + 1Print a * 100 + b * 10 + c;If n Mod 10 = 0 Then '控制每行打印10个PrintEnd IfEnd IfNext cNext bNext aPrint nEnd Sub或Dim n As Integer, a1 As Integer, a2 As Integer, a3 As Integer, js As Integer For n = 100 To 999a1 = n \ 100 ‘取出百位数字a2 = n \ 10 Mod 10 ‘取出十位数字a3 = n Mod 10 ‘取出个位数字If a1 < a2 And a2 < a3 Thenjs = js + 1Print n;If js Mod 10 = 0 ThenPrintEnd IfEnd IfNext nPrint jsEnd Sub利用过程调用思想求升序数例找出a-b范围内的所有升序数,a>=100,b<=30000Private sub command1_click()Dim a as integer,b as integer,i as integera=text1:b=text2For i=a to bIf sx(i) thenList1.additem iEnd ifNext iEnd subPrivate sub function sx(byval n as integer) as booleanDim a() as integer,k as integer,i as integerDoK=k+1Redim preserve a(k)a(k)=n mod 10n=n\10loop until n<=0for i=1 to ubound(a)-1if a(i+1)>=a(i) then exit function (应该去判断a(1)>a(2)……a(k)但是不好判断,遇难则反,只要有一个a(i+1)>=a(i)这不是升序数)next isx=trueend function8.最小公倍数Private Sub Form_Click()Dim m%, n%, tem%m = Val(Text1.Text)n = Val(Text2.Text)tem = mDo While tem Mod n <> 0tem = tem + mLoopPrint m; "和"; n; "的最小公倍数是:"; temEnd Sub9.求一维数组a(n)各元素的和:Dim s as integer , I as intgers=0for i=1 to ns=s+a(i)next i10.求二维数组a(n,m)各元素的和Dim s as integer, i as integer, j as integers=0For i=1 to nfor j=1 to ms=s+a(i,j)next jNext i11. 求二维数组a(m,n)周边元素的和Dim s as integer, i as integerS=0For i=1 to ns=s+a(1,i)+a(m,i) (求第一行与最后一行的和)Next ifor i=2 to m-1s=s+a(i,1)+a(i,n) (求第二行到倒数第二行第一列与最后一列的和)Next i12、求二维数组a(n,n)主对角线元素的和(理解主对角线)Dim s as integer,i as integerS=0For i=1 to ns=s+ a (i,i)Next i13、求二维数组a(n,n)次对角线元素的Dim a as integer, i as integerS=0For i=1 to ns=s+a(i,n+1-i)Next i14、三种排序法(1)选择排序法是逐个比较,逆序交换;冒泡法是两两比较,逆序交换.(2)直接排序法(以降序为例)特点:比较后不立即互换元素,而是记下较大值的位置,并在每一轮比较完毕后和S(i)互换选择排序法(比较排序法)基本过程(以降序为例):将第一个元素顺序与其后面的元素比较,比第一个大则进行交换,第一轮完毕后,最大的元素被挪到了第一个位置,第二轮从第二个元素开始重复上面的过程,结束后得到第二个最大的元素,如此下去经过N-1 轮的比较,可将N 个数排好(3)冒泡法排序(以升序为例),则方法为:将相邻两个数比较,把小数对调到前边,如此进行一轮后,就会把最大的数互换到最后,再进行一次,则会把第二大数排在倒数第二的位置上,进行N-1次后,整个数列即可排好.在这种排序过程中,小数如同气泡一样逐层上浮,而大数逐个下沉,因此,被形象的喻为“冒泡”.选择法对数组经行降序排列Option explicitOption base 1Private sub command1_click()Dim sort(10) as integer, temp as integer , i as integer, j as integerFor i=1 to 10Sort(i)=int(rnd*99)+1Text1=text1 & str(sort(i))Next iFor i= 1 to 9For j=i+1 to 10If sort(i)<sort(j) thenTemp=a(i)a(i)=a(j)a(j)=tempend ifnext jtext2=text2 & str(sort(i))next itext2=text2 & str(sort(i))end sub直接排序法的精髓(降序)For i=1 to N-1pointer=I‘初始化pointer,在每轮比较开始处for j=I+1 to Nif Sort(pointer)< Sort(j) then pointer= j next jif I<> pointer thentemp=Sort(i) ‘交换Sort(i)=Sort(pointer)Sort(pointer)=tempend ifNext I冒泡排序法的精髓(升序)For i=1 to N-1for j=1 to N-i ‘比较次数逐次减少if S(j) > S(j+1) thent=S(j)S(j)=S(j+1)S(j+1)=t ‘立即互换end ifnext jnext i15、求三个数的和!Private Sub ifnum(str1 As String, n As Integer)Dim k As IntegerFor k = 1 To Len(str1) ‘逐个字符判断是否为数字If Asc(Mid(str1, k, 1)) < 48 Or Asc(Mid(str1, k, 1)) > 57 Thenn = 0: Exit SubEnd IfNext kn = 1End SubPrivate Sub Command1_Click()Dim a As String, b As String, c As StringDim y1 As Integer, y2 As Integer, y3 As Integera = Text1.Text ‘a,b,c用来取得三个文本框的字符串b = Text2.Textc = Text3.TextCall ifnum(a, y1) '用来判断a,b,c是否为数字串,为数字串时y1,y2,y3都为1 Call ifnum(b, y2)Call ifnum(c, y3)If y1 = 1 And y2 = 1 And y3 = 1 ThenText4.Text = Val(a) + Val(b) + Val(c)ElseText4.Text = "三个文本框内有非数字串"End IfEnd Sub16.求三个数的最小公倍数Option ExplicitPrivate Sub Command1_Click()Dim A As Integer, B As IntegerDim L As Long, C As IntegerA = Text1B = Text2C = Text3L = LCM(LCM(A, B), C)Text4 = LEnd SubPrivate Function LCM(ByVal X As Integer, ByVal Y As Integer)Dim M As Long, Flg As BooleanFlg = FalseDo Until FlgM = M + XIf M Mod Y = 0 ThenFlg = TrueEnd IfLoopLCM = MEnd Function17.打印九九乘法表Private sub form_clickDim I as integer, j as integerFor i=1 to 9For j=1 to iPrint j;”*”I;”=”i*j;Next jprintNext iEnd sub18判断完数(一个数如果恰好等于他所有因子之和,这个数就是完数。
c语言顺序结构程序设计练习题10道
![c语言顺序结构程序设计练习题10道](https://img.taocdn.com/s3/m/682783c73186bceb19e8bbf6.png)
c语言顺序结构程序设计练习题1、编写程序:输入一矩形的长和宽,计算该矩形的面积。
2、编程:输入求的半径R,计算并输出球的体积。
3、编程:输入三个数,求出这三个数的和以及平均值,并在屏幕上输出。
4、编程:输入一个三位整数x(999=>x>=100),将其分解出百位、十位、各位,并求出各位之和以及各位之积5、编程:已知三角形的三边a=3,b=4,c=5,求其面积s。
(提示:假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:S=sqrt(p(p-a)(p-b)(p-c)),而公式里的p 为半周长:p=(a+b+c)/2。
6、编写一个C程序,输出以下信息:**************************Very Good!**************************7、编写一个程序,输入a、b、c三个值,输出其中最大值.8、写出程序运行的结果:main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}9、写出程序运行的结果:main(){char a ,b, c1,c2;float x ,y;a = 3;b =7;x = 8.5;y = 71.82;c1 = ' A' ;c2 = 'a ';printf("a= %d b = %d/n",a,b);printf("x = %f y = %f",x,y);printf("c1= %c,c2 =%c",c1,c2);}10、求ax2+bx+c=0方程的根,a,b,c由键盘输入,假设b2-4ac>0。
程序设计例题
![程序设计例题](https://img.taocdn.com/s3/m/d879c92283c4bb4cf7ecd1ed.png)
程序运行
源程序
12. 试编写一个汇编语言程序,求级数 12+22+32+……的前N项的和刚好大于1000的项 数N,并显示在屏幕上。
13.大家考虑一下,如何通过键盘输入负数
14. 键盘输入一个整数,判断该数是否是素数,并 显示 ***** is(not) a prime !
输入字符: 0123456789
密码字符: )(*&^%/#@!
程序运行 源程序
DOS
7. 编写一个发声的小程序,通过程序使PC 喇叭发出声音
FS
程序运行
源程序
8. 编写一个唱歌的小程序,通过程序使PC 喇叭发出声音演奏歌曲
GQ
程序运行
源程序
9. 编写一个通过键盘输入你的名字,然后在 屏幕上显示,“hello, 你的名字!”的程序。
37
程序运行
源程序
4. 编写一个小程序,任意从键盘输入一个字 符,用二进制数显示该字符的ASCII。
例如:如果输入的是“A”,则显示 01000001
若输入的是“7”,则显示00110111
38
程序运行
源程序
5. 编写一个数组排序(从小到大)的小程序, 数组在程序中定义,程序先将原数组显示一 遍,然后排序,再将排好序的数组显示一遍。
1. 编写一个程序,从键盘输入任意十进制正 数,然后将这个数按16进制形式显示在屏幕 上。
10T16
程序运行
源程序
2. 编写一个程序,从键盘输入任意一串字符, 然后将这个字符串中的所有小写字母替换成 大写字母(其他字母不做修改),并显示在 屏幕上。源自36程序运行源程序
3. 编写一个小程序,测试给定的一个8位数, 从最低位开始,那一位为“1”,显示该位的 位号。例如:如果给定数据为78H,则显示 3,若给定数据为80H,则显示7。
C语言程序设计实例分析30道(含答案)
![C语言程序设计实例分析30道(含答案)](https://img.taocdn.com/s3/m/0420da084431b90d6c85c751.png)
int main()
{
int i,x,y,z;
for(i=100;i<1000;i++)
{
x=i%10;
y=i/10%10;
z=i/100%10;
if(i==(x*x*x+y*y*y+z*z*z))
printf("%d\n",i);
}
return 0;
}
【题目12】:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
【程序分析】:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外打印出即可。
(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?
【程序分析】:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
【程序源代码】:
#include<stdio.h>
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
{
int score;
char grade;
printf("请输入分数:");
scanf("%d",&score);
grade=(score>=90)?'A':((score>=60)?'B':'C');
程序设计题
![程序设计题](https://img.taocdn.com/s3/m/d87c5edbdc88d0d233d4b14e852458fb770b38b7.png)
程序设计题1. 题目描述设计一个程序用于计算两个整数的乘积。
2. 输入程序需要接受两个整数作为输入,分别表示乘法运算的两个操作数。
3. 输出程序应该输出两个操作数的乘积。
4. 算法设计程序可以使用常规的乘法算法来计算两个整数的乘积。
以下是一个简单的算法描述:1.读取两个整数作为输入。
2.将第一个整数赋值给变量num1,将第二个整数赋值给变量num2。
3.定义变量product并初始化为 0。
4.对于整数i从 1 到num2:–将product增加num1。
5.输出product。
下面是算法的Python实现:num1 = int(input('Enter the first number: '))num2 = int(input('Enter the second number: '))product =0for i in range(1, num2 +1):product += num1print('The product of', num1, 'and', num2, 'is', product)5. 示例输入Enter the first number: 5Enter the second number: 3输出The product of 5 and 3 is 156. 总结这个程序通过从输入中获取两个整数,并使用常规的乘法算法计算它们的乘积。
输出结果是两个整数的乘积。
这个程序可以用来解决简单的乘法问题,并且可以在其他程序中作为子程序使用。
c语言程序设计编程题库及详解答案
![c语言程序设计编程题库及详解答案](https://img.taocdn.com/s3/m/5d83784d0a4e767f5acfa1c7aa00b52acec79c7b.png)
c语言程序设计编程题库及详解答案C语言是一种通用的编程语言,广泛用于系统软件、应用程序和嵌入式系统开发。
C语言以其高效性和灵活性而著称,是许多编程语言的基础。
下面,我将提供一些C语言程序设计编程题库的题目及其详解答案。
题目一:计算圆的面积问题描述:编写一个C程序,输入圆的半径,计算并输出圆的面积。
代码实现:```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```题目二:求最大公约数问题描述:编写一个C程序,输入两个整数,计算并输出这两个整数的最大公约数。
代码实现:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2));return 0;}```题目三:字符串反转问题描述:编写一个C程序,输入一个字符串,然后输出该字符串的反转。
代码实现:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");fgets(str, 100, stdin); // 使用fgets以包含空格str[strcspn(str, "\n")] = 0; // 去除换行符reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```题目四:计算阶乘问题描述:编写一个C程序,输入一个非负整数,计算并输出该整数的阶乘。
程序设计练习(例题)
![程序设计练习(例题)](https://img.taocdn.com/s3/m/244d7a7f5acfa1c7aa00cc06.png)
结构化程序的基本结构一、顺序结构按语句排列的先后顺序逐条执行语句二、选择结构选择结构只有一个入口和一个出口,但在结构内部根据条件有两条或者多条路径可供选择。
1、二分支选择结构(IF—ENDIF语句)格式:IF<条件><语句序列1>[ELSE<语句序列2>ENDIF功能:若条件为真,则执行语句序列1,然后执行ENDIF的后继语句;若条件为假,则执行语句序列2,然后执行ENDIF的后继语句。
2、多分支选择结构格式(DO CASE—ENDCASE语句)格式:DO CASECASE<条件1><语句序列1>CASE<条件2><语句序列2 >......CASE<条件n><语句序列n>[OTHERWISE<语句序列>]ENDCASE功能:逐个检查条件,若条件为真则执行相应的语句序列;否则检查下一个条件;若条件都不满足,则执行OTHERWISE的语句序列,然后执行ENDCASE的后继语句。
3、循环结构在结构的内部,重复执行某些语句序列。
(1) 当型循环(DO WHILE—ENDDO语句)格式:DO WHILE <条件><语句序列1>[LOOP]<语句序列2>[EXIT]<语句序列3>ENDDO功能:先判断循环条件,若为.T.,则执行一遍循环语句,遇到循环终端句ENDDO时,转向循环起始句DO WHILE,重新判断循环条件,如此往复,直至循环条件为.F.,结束循环,执行ENDDO的后继语句。
说明:在循环体中,若遇到跳出循环语句EXIT,则无条件结束循环,执行ENDDO的后继语句。
若遇到短路语句LOOP,则不执行本次循环余下语句,而返回循环起始语句DO WHILE,重新判断下一次循环的条件。
(2)计数循环(FOR—ENDFOR语句)格式:FOR <循环变量>=<初值> TO <终值> [STEP <步长>]<循环体>ENDFOR|NEXT功能:执行时先将初值赋给循环变量,判断其是否超过终值,若是,则退出循环,否则,执行一遍循环体,遇到循环终端语句ENDFOR时,循环变量增加一个步长,然后返回循环起始FOR语句,重新判断循环变量是否超过终值,如此反复,直至循环变量超过终值,则结束循环,执行ENDFOR的后继语句。
C语言程序设计例题
![C语言程序设计例题](https://img.taocdn.com/s3/m/d8303eca7d1cfad6195f312b3169a4517623e544.png)
C语言程序设计例题C语言程序设计是计算机科学与技术领域中最为重要的编程语言之一。
通过例题的练习,我们可以对C语言的各种语法和概念进行巩固和加深理解。
本文将给出三个C语言程序设计的例题,并分析解题思路和具体实现。
例题一:计算圆的面积题目描述:编写一个程序,给定半径,计算圆的面积。
解题思路:1. 首先,我们需要获取用户输入的圆的半径。
2. 接着,通过给定的公式,计算圆的面积。
公式为:Area = π * r * r,其中π为圆周率,r为半径。
3. 最后,将计算得到的面积输出给用户。
具体实现:```#include <stdio.h>#define PI 3.14159int main() {float radius, area;printf("请输入圆的半径: ");scanf("%f", &radius);area = PI * radius * radius;printf("圆的面积为: %f\n", area);return 0;}```例题二:判断一个数是否为素数题目描述:编写一个程序,判断一个给定的正整数是否为素数。
解题思路:1. 首先,我们需要获取用户输入的正整数。
2. 接着,使用循环结构从2开始逐个判断该数是否能被2到它的平方根之间的数整除。
3. 如果能被其中一个数整除,则该数不是素数;否则,该数是素数。
4. 最后,根据判断结果输出相应的提示信息给用户。
具体实现:```#include <stdio.h>#include <math.h>int main() {int number, i, isPrime = 1;printf("请输入一个正整数: ");scanf("%d", &number);for (i = 2; i <= sqrt(number); i++) {if (number % i == 0) {isPrime = 0;break;}}if (isPrime) {printf("%d是素数。
程序设计题汇总
![程序设计题汇总](https://img.taocdn.com/s3/m/afef74cfcd22bcd126fff705cc17552707225e14.png)
程序设计题汇总程序设计是计算机科学中重要的一部分,它涉及到解决问题、设计和构建计算机程序的过程。
本文将汇总一些常见的程序设计题,通过这些题目的训练和实践,可以提高程序设计的能力和技巧。
1. 题目一:计算两个整数之和编写一个程序,输入两个整数,然后计算并输出它们的和。
解题思路:- 首先,需要从用户那里获取两个整数,并将它们存储在变量中。
- 接下来,将这两个整数相加,并将结果存储在一个新的变量中。
- 最后,将结果输出给用户。
示例代码:```#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```2. 题目二:计算三个数的平均值编写一个程序,输入三个整数,然后计算并输出它们的平均值。
解题思路:- 首先,需要从用户那里获取三个整数,并将它们存储在变量中。
- 接下来,将这三个整数相加,并将结果存储在一个新的变量中。
- 然后,将这个新的变量的值除以3,得到平均值。
- 最后,将平均值输出给用户。
示例代码:```#include <stdio.h>int main() {int num1, num2, num3;float average;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);average = (num1 + num2 + num3) / 3.0;printf("三个整数的平均值为:%.2f\n", average);return 0;}```3. 题目三:计算正方形的面积编写一个程序,输入正方形的边长,计算并输出正方形的面积。
程序设计例题
![程序设计例题](https://img.taocdn.com/s3/m/23b539db112de2bd960590c69ec3d5bbfd0adae6.png)
RAPTOR程序设计一、顺序结构编程1.输入任意一个华氏温度值,然后将其转换成摄氏温度输出。
算法:c = 5 / 9 (f - 32)2.输入任意三角形的三边之长存入变量a、b、c中,然后计算并输出该三角形的面积。
海伦公式:p = (a + b + c)/2 S = sqrt (p * (p - a) * ( p – b ) * ( p – c ))二、选择结构编程3.输入任意一个年份,判断该年是否为润年。
若是则打印“Yes!”,否则打印”No!”。
4.输入任意三个数存入变量a、b、c中,然后计算并输出其中的最大值。
5.输入任意三个数存入变量a、b、c中,然后按从小到大的顺序打印输出。
6.输入任意一个学生的考试成绩,然后按其所属分数段打印对应等级:90-100分为A 等,80-89分为B等,70-79为C等,60-69为D等,60分以下为E等。
三、循环结构编程7.计算并输出sum = 1 + 2 + 3 + … + 10的和。
改进程序计算sum = 1 + 2 + 3 + … + n的和。
8.输入任意自然数n,然后计算并输出n!值。
9. 计算并输出sum = 1! + 2! + 3! + … + n!10. 输入任意整数存入变量n中,若n≤0则输出“Error!”;否则组织循环结构流程计算sum = 1 / 2 + 2 / 3 + 3 / 4 + … + n / ( n + 1 )的值,然后分别输出变量n和sum的值。
11.设计循环结构程序输入任意10个整数,分别统计其中的奇数个数、偶数个数、所有数的累加和,然后显示结果。
12.设计校园歌手大赛计分程序,假设有10评委按10分制打分,计算每位选手扣除一个最高分、最低分后的平均分,显示计分结果。
13. 输入任意两个自然数存入变量a和b,然后求a和b的最大公约数和最小公倍数。
14. 判断输入的任意自然数n是否为素数?(素数也叫质数是指除1和它自身以外不能被任何数整除的数)15. “猴子吃桃”问题。
程序设计基础习题
![程序设计基础习题](https://img.taocdn.com/s3/m/eec8c1b90342a8956bec0975f46527d3250ca677.png)
程序设计基础习题程序设计是计算机科学中的重要基础,通过解决习题可以培养学生的编程能力和逻辑思维能力。
下面将介绍一些常见的程序设计基础习题,以供学习和练习。
1. 逆序输出数字题目描述:输入一个正整数,将其逆序输出。
示例输入:12345示例输出:54321解题思路:可以将输入的数字转化为字符串,然后逆序遍历字符串并输出每个字符。
2. 求两个数的最大公约数题目描述:输入两个正整数,求它们的最大公约数。
示例输入:24, 36示例输出:12解题思路:可以使用辗转相除法来求解两个数的最大公约数。
3. 判断素数题目描述:输入一个正整数,判断它是否为素数。
示例输入:13示例输出:Yes解题思路:从2开始到该数的平方根之间遍历,判断是否能被整除,若不能被整除则为素数。
4. 查找字符串中的重复字符题目描述:输入一个字符串,找出其中重复出现的字符并输出。
示例输入:abcaadef示例输出:a解题思路:使用一个集合来存储已经出现过的字符,当出现重复字符时输出。
5. 银行账户管理题目描述:实现一个简单的银行账户管理程序,包括创建账户、存款、取款和查询余额等功能。
示例输入:1. 创建账户;2. 存款;3. 取款;4. 查询余额;示例输出:请输入选项:2解题思路:使用面向对象的思想,创建一个银行账户类,并根据输入的选项执行相应的操作。
总结:通过解决这些程序设计基础习题,可以提高编程能力和逻辑思维能力。
希望大家能够认真对待这些习题,多加练习,提升自己的编程水平。
程序设计是一个需要不断学习和实践的领域,相信通过不断努力,大家一定能够取得进步。
程序设计基本算法例题
![程序设计基本算法例题](https://img.taocdn.com/s3/m/171e3a8ff12d2af90342e667.png)
程序设计基本算法例题例1:完数(一个数等于它的因子之和)#include <stdio.h>int wanshu(int x){int i,sum=0;for(i=1;i<x;i++)if(x%i==0)sum+=i;if(sum==x)return 1;return 0;}int main(){int i;for(i=0;i<1000;i++)if(wanshu(i))printf("%5d",i);return 0;}例2:素数#include <stdio.h>int prime(int x){int i;for(i=2;i<x;i++)if(x%i==0)return 0;return 1;}int main(){int i;for(i=2;i<1000;i++)if(prime(i)==1)printf("%6d",i);return 0;}例3:大整数加法#include <stdio.h>#include <string.h>void main(){char a[202],b[202],c[202];int i,j,c1=0,n1,n2,k,k1;scanf("%s",a); //输入两个大整数scanf("%s",b);n1=strlen(a); //求出串长n2=strlen(b);if(n1>n2)k1=n1; //k1存放的是较大串的串长elsek1=n2;k=k1-1; //最后一位的下标for(i=n1-1,j=n2-1;i>=0||j>=0;i--,j--,k--) {n1=a[i]-'0'; //将每一位转换成整数n2=b[j]-'0';if(i<0) //如果a串处理完n1=0;if(j<0) //若b串处理完n2=0;c[k]=n1+n2+c1; //对应位相加c1=c[k]/10; //求出进位c[k]=c[k]%10; //求出个位数c[k]=c[k]+'0'; //转换为字符}if(c1!=0)printf("%d",c1);for(k=0;k<k1;k++)printf("%c",c[k]);printf("\n");}例4:字符串循环左移P199#include<stdio.h>int main(){char a[81];int j,x,i=0;scanf("%c",&a[i]);while(a[i]!='\n'){i++;scanf("%c",&a[i]);}scanf("%d",&x);for(j=x;j<i;j++)printf("%c",a[j]);for(j=0;j<x;j++)printf("%c",a[j]);return 0;}例5:字符串的查找与替换#include<stdio.h>int cmp(char s[],char t[]);int main(){char s[100],t[20];int index;printf("请输入主串:");gets(s);printf("请输入子串:");gets(t);index=cmp(s,t);if(index==0)printf("匹配不成功!\n");elseprintf("匹配成功!%s在%s中的序号是:%d\n",t,s,index);return 0;}int cmp(char s[],char t[]){int i=0,j=0,start=0;while(s[i]!='\0'&&t[j]!='\0'){if(s[i]==t[j])//准备比较下一对字符{i++;j++;}else{start++;i=start;j=0;}//一趟匹配失败,不再比较余下字符}if(t[j]=='\0')return start + 1;elsereturn 0;}例6:求两个随机数的最大公约数和最小公倍数#include <stdio.h>#include <stdlib.h>#include <time.h>void CommonDivMul(int m, int n);int p=0,q=0;int main(){int m,n;srand(time(NULL));m=1+rand()%100;n=1+rand()%100;printf("随机数为%d %d",m,n);CommonDivMul(m,n);printf("公约数:%d\n公倍数: %d\n",p,q);return 0;}void CommonDivMul(int m, int n){int mt=m,nt=n,r;r=m%n;while(r!=0){m=n;n=r;r=m%n;}p=n;q=mt*nt/p;return;}。
VB程序设计例题12例
![VB程序设计例题12例](https://img.taocdn.com/s3/m/601e126c48d7c1c708a14581.png)
索引一、在窗体上画一个文本框,其名称为Text1,Text属性为空白。
再画一个命令按钮,其名称为C1,Visible属性为False。
编写适当的事件过程。
程序运行后,如果在文本框中输入字符,则命令按钮出现。
二、计算圆的周长和面积:在窗体中添加一个文本框(Text1)和一个对应的标签(Label1),再添加两个命令按钮(Command1和Command2)和一个图片框(Picture1)。
程序运行时,当单击Command1按钮后,计算圆的周长;当单击Command2按钮后,计算圆的面积;计算结果输出在图片框中。
(要求在未输入半径前两个按钮呈灰色不可用。
)三、在窗体上添加三个文本框和对应的三个标签,标签的标题分别是“个位”、“十位”、“百位”。
程序运行时,当单击窗体后,随机产生一个【100,999】区间内的整数,将它的个位、十位、百位数字分别显示在对应的文本框中。
四、设计一个计算程序:在窗体上添加四个文本框和四个对应的标签,标签的标题分别是“语文”、“数学”、“外语”、“平均成绩”,三个命令按钮,标题分别为“清除”、“计算”、“退出”。
程序运行后,用户按“清除”按钮,则清除文本框中显示的内容,按“计算”按钮,则计算三科平均成绩,将计算结果显示在第四个文本框中(计算结果保留小数点后一位)。
单击退出按钮则程序退出。
五、某税务部门征收所得税,规定如下:(1)收入200元以内,免征。
(2)收入在200~400元,超过200元的部分纳税3%。
(3)收入超过400元的部分,纳税4%。
(4)当收入达5000元或超过时,将4%税金改为5%。
编程序实现上述操作。
六、给定三角形的三条边的边长,计算三角形的面积。
编写程序,首选判断给出的三条边能否构成三角形,如可以构成,则计算并输出该三角形的面积,否则要求重新输入。
当输入-1时结束程序。
七、编程求100以内的全部素数。
八、编程打印钻石图案。
九、输出杨辉三角形。
十、有一个数组,包含了10个不同的随机整数(20~90),要求计算出它们的平均值,并输出这个数组中最接近于平均值的数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我先给你一些VF的例题看看吧!Vfp--程序设计典型例题Vfp题库:程序设计基础典型例题[例1] 在()窗口中可以控制列表框内显示的变量种类。
A.跟踪窗口B.监视窗口C.局部窗口D.调动堆栈窗口分析:局部窗口用于显示模板程序中的内存变量,并显示它们的名称.当前取值的类型。
它可以控制在列表内显示的变量类型。
答案c例2下面选项中关于ACCEPT命令说法错误的是()A.ACCEPT命令格式是:ACCEPT[<字符表达式>] TO<内存变量>B.该命令只接收字符串,但是用户在输入字符串时,必须要加上定界符C如果不输入任何内容直接按回车键,系统就会把空串赋给指定的内存变量D如果选用<字符表达式>,那么系统就会首先显该表达式的值,作为提示信息分析:该命令只接收字符串,但用户在输入时不需要加定界符;否则,系统会把定界符当作字符串的一部分输出.答案:B例3下列关于过程的说法中不正确的是A.过程文件可以放在任何程序文件代码的后面,也可以保存在称为过程文件的单独文件里B.过程文件只包含过程,这些过程只能被过程文件调用C.如果需要打开多个过程文件,可以在调用过程语句中加ADDITVE,那么在打开过程文件时, 并不关闭原先已打开的过程文件D.关闭个别过程文件的命令格式是:RELESE PROCEDURE<过程文件>分析:过程文件只包含过程,这些过程可以被任何其它程序调用.命令格式SETPOCEDURE TO[<过程文件>][ADDITIVE]就可以打开多个过程文件.当使用不带任何文件名的SET PROCEDURE TO命令时,将会关闭所有的过程文件,使用命令RELEASE PROCEDURE<过程文件>时,将关闭指定的过程文件.答案:B例4 在一个程序定义了的一些变量,选出局部变量( )1.PRGPUBLIC aILOCAL a2,a3SCORE'B'TO a4LOCATE a5A.a1B.a2,a3C.a4D.a5分析:A是公共变量,C是私有变量,D的命令和LOCA TE相似,但不存在这样定义变量的命令.只有B才是定义了两个局部变量.答案:B例5 不需要先建立就可以使用的变量是( )A.局部变量B.公共变量C.私有变量D.数组分析:私有变量是指在程序中直接使用,由系统自动隐含建立的变量.即没有通过PUBLIC 或LOCAL定义的变量.它的作用域是建立它的模块及其下属的各层模块.私有变量随着建立它的模块运行结束自动清除,不需要先建立就可以使用.答案:C「例6」可以设置表达式类型的断点窗口是()A.跟踪窗口B.监视窗口C.局部窗口D.调用堆栈窗口分析:监视窗口主要就是用来指定表达式在程序调试执行过程中的变化。
要设置一个监视表达式,只需单击窗口中的“监视”文本框,然后输入表达式的内容,按回车键后表达式便添入文本框下方的列表框中。
答案:B「例7」下列命令语句正确的是()A.INPUT〃请输入账号〃TO zhB.INPUT〔2001-03-01〕TO rqC.INPUT〃T〃TO saD.INPUT〃∧2001-03-01〃TO zh分析:B的正确写法是:INPUT〔∧2001-03-01〕TO rq;C的正确写法是:INPUT.T.TO sa。
答案:A「例8」阅读下列程序,该程序的运行结果是()SET TALK OFFINPUT〃请输入A,B:〃TO A,BIF A〈BT = AA = BB = TENDIFDO WHILE B〈〉0T = MOD(A,B)A = BB = TENDDO?ASET TALK ONRETURN运行时输入:12,8A.2B.4C.12D.8分析:本程序的功能是求两个数的最大公约数。
方法是用两个数中较小的去除较大的,然后将除数作为一次除的被除数,余数作为下一次除的除数,反复进行这样的操作,直到余数为零时为止。
则最后一次除的除数,即为所给两个数的最大公约数。
答案:B「例9」用于说明程序中所有内存变量都是局部变量的命令是()A.PRIV ATE ALLB.PUBLIC ALLC.ALL=PRIV ATED.STORE PRIV A TE TO ALL分析:定义局部变量的语句有PRIV A TE<内存变量名表>和PRIVATE ALL(LIKE/EXCEPT<通配符>)。
在使用PRIV ATE ALL本程序中所有内存变量都说明为局部变量。
答案:A(例10)在Visual FoxPro中,用于建立过程文件PROGI的命令是( )A. CREATE PORGIB. MODIFY COMMAND PROGIC. MODIFY PROGID. EDIT PROGI分析:在Visual FoxPro中,建立程序的命令是MODIFY COMMAND答案:B例11:一个过程文件最多可以包含128个过程,其文件扩展名是( )A. PRGB. FOXC. DBTD. TXT分析:过程文件也是一种命令文件,扩展名为.PRG答案:A例12:有Visual FoxPro程序如下:SET TALK OFFUSE CJM - >ZF=0DO WHILE.NOT.EOF()M - >ZF=M - >ZF+ZFSKIPENDDO?M - >ZFRETURN其中数据库文件CJ.DBF中有2条记录,内容如下:XM ZF1 李四500.002 张三600.00运行该程序的结果应当是A.1100B.1000C.1600D.1200分析:分析该程序的结果时,只要理解“M - >ZF”的含义,程序就没有社么难度了。
答案:A例13:在命令文件中,调用另一个命令文件。
应使用命令分析:在FoxPro系统中,LOAD命令用于将一个二进制文件调人内存,CALL命令执行一个已调人内存的二进制文件。
PROCEDURE仅在程序中说明过程名,每个过程以PROCEDURE<过程名>开始,用PETURN结束,不是调用程序。
要在命令文件中调用另一个命令文件应该使用命令DO<命令文件名>.答案:DO〈命令文件名〉[例14]有下列程序:PARAMETER A,B,C,DD=B* B-4*A*CDO CASECASE D=OCASE D〈OD=OCASE D〉OD=2CASE D=OD=1在主程序中执行如下命令:STORE 2 TO A,CDO SUB WITH A,B,C,D?DD的值为—————分析:执行主程序DO SUB WITH A,B,C,D时,把实参1,2,1,2传递给形参A,B,C,D。
在执行过程SUB中语句D=B*B-4*A*C后的D值为O,然后执行DO CASE/ENDCASE语句,条件CASE D=O成立,重新赋值D=1,最后返回主程序时,把形参A,B,C,D的值1,2,1,1传给对应实参A,B,C,D此时D的值为1。
答案:1[例15]有如下程序:STORE O TO N,SDO WHILE.T.N=N+1S=S+NIF N>=1OEXITENDIFENDDO?”S=“+STR(S,2)本程序的运行结果是—————分析:本程序是无限次循环程序,有N的值来决定何时停止循环。
程序的功能是求1到1O 之间的所有整数之和。
可得程序运行的结果为S=55答案:S=55[例16]有如下程序:*主程序:MAIN。
PRGSET TALK OFFCLEARS=0DO SUB WITH 10,S?SRETU*子程序SUB。
PRGPARAMETERS D1,D2D1=D1+D1D2=D1*2RETURN执行主程序后S的值是__________。
分析:DO...WITH语句中的实在参数除了可以是变量外,还可以是任意有数或表达式。
当直接把值传给对应的形参;当为表达式时,先求其值后把其值传给形参。
主程序中变量S 的初值为0,S调用子程序SUB,将数值10和0对应传给子程序中的参数D1和D2,执行D1=D1+D1后,D1=20,再执行D2=D1*2,D2=40,返回到主程序时D2将值回传给S。
因此,在主程序执行?S时,屏幕显示40。
答案:40[例17]设成绩库CJK.DBF中“数学”(数值型字段)这门课程的学分为4,其学分计算的方法如下:数学>=90,学分值为480<=数学<90,学分值为370<=数学<80,学分值为260<=数学<70,学分值为1数学<60,学分值为0计算任一学生数学这门课程的学分值的程序如下:SET TALK OFFUSE CJKACCEPT "输入学号:" TO XHXF=0LOCATE FOR学号=XHDO CASECASE______XH=40CASE______XH=3CASE__________XF=2CASE__________XF=1OTHERWISEXF=0ENDCASE?"学号:",XH?"数学的学分值:",XFUSERETURN分析:本程序的考核要点是DO CASE分支语句答案:数学>=90 数学>=80 数学>=70 数学>=60【例18】参数的两种传递方法是_______和_______。
分析:调用程序模块时,如果实参是常量或一般形式的表达式,系统会计算出实参的值,并把它们赋值给相应的形参变量。
这种情形称为按值传递。
如果实参是变量,那么传递的将不是变量的值,的地址。
这时形参和实参实际上是同一个变量,在模块程序中对形参变量值的改变,同样是对实参变量值的改变,这种情形称为引用传递。
答案:TO V ALUE(按值传递),REFERENCE(按引用传递)【例19】填空完成下列程序,要求该程序能够三次从右向左显示变量S内容的字幕程序。
CLEARS=SPACE(80)+"关系数据库语言VFP计算机2级教程。
关系数据库."+SPACE(60)N=0______I=1DO WHILE I<160@20,0SAY SUBSTR(S,I,80)H=INKEY(0.1,"h")I=I+2__________ENDDO分析:表达式(1)是给出循环的条件,表达试(3)给出循环体的递增形式。
答案:(1)DO WHILE N<3,(2)ENDDO,(3)N=N+1【例20】用两种循环步长值来求1+2+3+...50的值,请将程序填写完整。
程序一:S=0FOR__(1)___S=S+NENDFOR? SRETURN程序二:S=0FOR__(2)___S=S+NENDFOR?SRETURN分析:这是一个计数循环的例子,由以上两种方法可以看出,初值和终值的设定是随步长值不同而变化的,在程序一中,由于步长为1,所以省略了。