【程序填空】
1、'题目:本程序执行后,最终在窗体上打印数字7。''请去掉_____,并填入正确的内容。Private Sub Command1_Click()
Dim a As String
'**********FILL**********
Open App.Path & "\abc.bat" For _____ As #1
n = 8
For I = 1 To n
Print #1, I + 1
Next I
Close #1
'**********FILL**********
Open App.Path & "\abc.bat" For _____ As #1
For I = 1 To n
Input #1, a
If I Mod 5 = 0 Then
'**********FILL**********
Print CInt(a) + _____
End If
Next I
Close #1
End Sub
Private Sub Form_Load()
End Sub
2、本程序段将一个十进制整数m转换成r (2-16)进制字符串'方法:将m不断除r 取余数,直到商为零,以反序得到结果。
Function TranDec$(ByVal m%, ByVal r%)
Dim StrDtoR$
Dim iB%, mr%
StrDtoR = ""
Do While m <> 0
'**********FILL**********
mr = _____
m = m \ r
If mr >= 10 Then
'**********FILL**********
StrDtoR = Chr(mr - 10 + _____) & StrDtoR
Else
StrDtoR = mr & StrDtoR
End If
Loop
TranDec = StrDtoR
End Function
Private Sub Command1_click()
Dim m0%, r0%, i%
m0 = Val(Text1.Text)
r0 = Val(Text2.Text)
If r0 < 2 Or r0 > 16 Then
i = MsgBox("输入的R进制数超出范围", vbRetryCancel)
If i = vbRetry Then
Text2.Text = ""
Text2.SetFocus
Else
End
End If
End If
Label3.Caption = "转换成" & r0 & "进制数"
'**********FILL**********
Text3.Text = TranDec(m0, _____)
End Sub
Private Sub Form_Load()
End Sub
3、'题目:在窗体上设计两个文本框和两个标签,标签上显示"摄氏温度"和"华氏温度",文本框一个用于输入摄氏温度数,一个用于输出对应的华氏温度?摄氏温度与华氏温度的转换公式为: c = (5 / 9) * (f - 32) 要求:对输入的摄氏温度数有检查功能,以拒绝接收非数字字符?运行界面如图所示请在_____处填入正确的内容
Private Sub Command1_Click()
Text1 = ""
Text2 = ""
Text1.Enabled = True
Text2.Enabled = True
Text1.SetFocus
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Text1 = ""
Text2 = ""
Text1.Enabled = False
Text2.Enabled = False
End Sub
Private Sub Text1_Change()
'**********FILL**********
_____ = 5 * (Val(Text1.Text) - 32) / 9
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
'**********FILL**********
If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > _____ Then
'**********FILL**********
KeyAscii = _____
End If
End If
End Sub
4、题目:本程序执行功能为,命令按钮单击一次后,窗体上输出结果为:'36' 25' 16 '9 ''请去掉_____,并填入正确的内容。
Private Sub Command1_Click()
Dim xx(6) As Integer
Dim k%
Open App.Path & "\al.dat" For Output As #1
For I = 1 To 6
'**********FILL**********
j = _____
Print #1, j
Next I
Close #1
Open App.Path & "\a1.dat" For Input As #2
k = 0
Do While Not EOF(2)
'**********FILL**********
k = _____
Input #2, xx(k)
Loop
Close #2
'**********FILL**********
For I = k To k / 2 Step_____
Form1.Print xx(I)
Next I
End Sub
Private Sub Form_Load()
End Sub
5、题目:输入n个数,n由用户输入。程序的功能是将输入的n个数反向输出?
'请在_____处填入正确的内容
Private Sub Form_Load()
Dim n As Integer
Dim k As Integer
Dim m As Integer
Dim h As Integer
Dim t As Integer
Show
Dim a(100) As Single
n = Val(InputBox("输入个数n"))
Print "处理前数据:"
'**********FILL**********
For k = 1 To _____
a(k) = Val(InputBox("请输入第" & k & "个数"))
Print a(k);
Next k
'**********FILL**********
m = Int(_____)
For k = 1 To m
h = n - k + 1
'**********FILL**********
t = a(h): _____: a(k) = t
Next k
Print "处理的结果:"
For k = 1 To n
Print a(k);
Next k
End Sub
6、要求输入若干学生的成绩,计算平均分和高于平均分的人数,并将这两个数据放入数组的最后。
Private Sub Form_Click()
Dim mark() As Integer, i%, n%, aver
n = InputBox("输入学生的人数")
ReDim mark(1 To n)
aver = 0
For i = 1 To n
mark(i) = Int(Rnd * 101)
aver = aver + mark(i)
Next i
'**********FILL**********
ReDim _____ mark(1 To n + 2) '增加两个元素,存放平均分和高于平均分的人数,原来的学生成绩仍保留
mark(n + 1) = aver / n
mark(n + 2) = 0
For i = 1 To n
'**********FILL**********
If mark(i) > mark( ____ ) Then mark(n + 2) = mark(n + 2) + 1
Next i
For i = 1 To n
Print "mark("; i; ")="; mark(i)
Next i
Print "平均分="; mark(n + 1), "高于平均分人数="; mark(n + 2)
End Sub
7、要求在Text1中输入一段字符,选中“大写转为小写小写转为大写”,
'单击转换按钮后,Text2显示大小写相反的字符串;选中“全部小写”,
'单击转换按钮后,Text2显示全部小写的字符串;
'选中“全部大写”,单击转换按钮后,Text2显示全部大写的字符串。
'-------------------------------------------------------
Private Sub Command1_Click()
Dim n As Integer, k As Integer, ch As String, a As String
'**********FILL**********
n = Len(_____)
ch = ""
For k = 1 To n
'**********FILL**********
a = Mid(Text1.Text, _____,1)
If Option1.Value = True Then
If a >= "a" And a <= "z" Then
ch = ch + UCase(a)
ElseIf a >= "A" And a <= "Z" Then
ch = ch + LCase(a)
Else
ch = ch + a
End If
End If
If Option2.Value = True Then
ch = UCase(Text1)
End If
If Option3.Value = True Then
ch = LCase(Text1)
End If
Text2 = ch
'**********FILL**********
_____
End Sub
Private Sub Form_Load()
End Sub
8、下面的程序段用于实现以下功能: 利用冒泡法将一组整数从小到大排序? '
Private Sub Form_Click()
Const n = 15
Dim a(1 To n) As Integer, work As Boolean
Dim i As Integer, j As Integer, x As Integer
Randomize
For i = 1 To n
a(i) = Int(90 * Rnd) + 10
Next i
For i = 1 To n
Print a(i);
Next i
'**********FILL**********
For i = n To 2 _____
work = True
For j = 1 To i - 1
If a(j) > a(j + 1) Then
x = a(j): a(j) = a(j + 1): a(j + 1) = x
'**********FILL**********
_____
End If
Next j
'**********FILL**********
If work Then _____
Next i
For i = 1 To n
Print a(i);
Next i
End Sub
9、下面的程序段用于建立文件并输出文件,文件内容如下:'
'*****
' *****
' *****
' *****
' *****
'
Private Sub Form_Click()
'**********FILL**********
Open "c:\1.txt" For _____ As #1
For i = 1 To 5
Print #1, Spc(i); "*****"
Next i
'**********FILL**********
_____
'**********FILL**********
Open "c:\1.txt" For _____ As #1
For i = 1 To 5
Line Input #1, x
Print x
Next i
Close #1
End Sub
10、题目:编程序求表达式s=x/2!+x^3/4!+...+x^(2n-1)/(2n)!的值,'并在窗体上输出。
'(1)变量x与n的值在窗体单击事件中用InputBox()函数输入,通过调用函数过程s实现题目要求。
'(2).求表达式的值用函数过程Function s(n%,x!) As Single完成。
''请去掉_____,并填入正确的内容。
'
'-------------------------------------------------------
Private Sub Form_Click()
Dim x As Single
Dim n As Integer
Dim sum As Single
x = Val(InputBox("Please input x Value:"))
n = Val(InputBox("Please input a integer:"))
'**********FILL**********
sum = _____
Print "s="; sum
End Sub
Function s(n As Integer, x As Single) As Single
Dim i As Single, t As Long
s = 0
For i = 1 To n
t = 1
For j = 1 To 2 * i
'**********FILL**********
_____
Next j
'**********FILL**********
s = s + x ^ (_____) / t
Next i
End Function
【程序填空】
11、''题目:本程序求3~100之间的所有素数学(质数)并统计个数;' 同时将这些素数从小到大依次写入顺序文件dataout.txt;
' 素数的个数显示在窗体Form1上?
'请在_____处填入正确的内容
Private Sub Command1_Click()
Dim count As Integer, flag As Boolean
Dim t1 As Integer, t2 As Integer
'**********FILL**********
Open App.Path & "\dataout.txt" For Output As _____
count = 0
For t1 = 3 To 100
'**********FILL**********
flag = _____
For t2 = 2 To Int(Sqr(t1))
If t1 Mod t2 = 0 Then flag = False
Next t2
If flag Then
'**********FILL**********
count = _____
Write #1, t1
End If
Next t1
Form1.Print "素数个数"; count
Close #1
End Sub
Private Sub Form_Load()
End Sub
12.. '方法:将m不断除r 取余数,直到商为零,以反序得到结果。Function TranDec$(ByVal m%, ByVal r%)
Dim StrDtoR$
Dim iB%, mr%
StrDtoR = ""
Do While m <> 0
'**********FILL**********
mr = _____
m = m \ r
If mr >= 10 Then
'**********FILL**********
StrDtoR = Chr(mr - 10 + _____) & StrDtoR
Else
StrDtoR = mr & StrDtoR
End If
Loop
TranDec = StrDtoR
End Function
Private Sub Command1_click()
Dim m0%, r0%, i%
m0 = Val(Text1.Text)
r0 = Val(Text2.Text)
If r0 < 2 Or r0 > 16 Then
i = MsgBox("输入的R进制数超出范围", vbRetryCancel)
If i = vbRetry Then
Text2.Text = ""
Text2.SetFocus
Else
End
End If
End If
Label3.Caption = "转换成" & r0 & "进制数"
'**********FILL**********
Text3.Text = TranDec(m0, _____)
End Sub
Private Sub Form_Load()
End Sub
13、'以下程序段用于输出杨辉三角:结果样式如图1
'
Private Sub Form_Click()
Const n = 10
Dim arr(n, n) As Integer
For I = 1 To n
arr(I, I) = 1
'**********FILL**********
_____
Next I
For I = 3 To n
For j = 2 To I - 1
'**********FILL**********
arr(i, j) = _____
Next j
Next I
For I = 1 To n
For j = 1 To I
'**********FILL**********
? _____& " ";
Next j
Next I
End Sub
14、下面的程序段用于求矩阵相乘C=A×B,设A、B、C分别为m×p、p×n、m×n的矩阵。
'
Private Sub Form_Click()
Const m = 4, p = 3, n = 2
Dim a(1 To m, 1 To p) As Integer
Dim b(1 To p, 1 To n) As Integer
Dim c(1 To m, 1 To n) As Integer
Dim i As Integer, j As Integer, k As Integer, sum As Integer
For i = 1 To m
For k = 1 To p
a(i, k) = i
Next k
Next i
For i = 1 To p
For k = 1 To n
b(i, k) = i
Next k
Next i
For i = 1 To m
For j = 1 To n
'**********FILL**********
_____
For k = 1 To p
'**********FILL**********
sum = sum +_____
Next k
'**********FILL**********
c(i, j) =_____
Next j, i
Print "输出矩阵"
15、'下面的程序段,用于实现在一个nXm的矩阵中,找出值最大的元素
'所在的行和列,并输出其值及行号和列号。
'
Private Sub Form_Click()
Dim mat() As Integer
Dim n As Integer, m As Integer
n = Val(InputBox("请输入矩阵的行数"))
m = Val(InputBox("请输入矩阵的列数"))
'**********FILL**********
_____
For i = 1 To n
For j = 1 To m
mat(i, j) = InputBox("请输入数组元素值")
mat(i, j) = Val(mat(i, j))
Next j
Next i
Print "所建立的矩阵为"
For i = 1 To n
For j = 1 To m
Print mat(i, j);
Next j
Next i
Max = mat(1, 1)
For i = 1 To n
For j = 1 To m
'**********FILL**********
If _____ Then
Max = mat(i, j)
col = j
'**********FILL**********
_____
End If
Next j
Next i
Print "矩阵最大的元素的值为:"; mat(row, col)
Print "它所在的行号为:"; row; "列号为:"; col
End Sub
16、同时在文本框Text2中显示文本框Text1框中字符串的个数?
' 设在一个窗体中已经设置了二个文本框Text1和Text2,
' 以及一个命令按钮,且设计有下列程序,请指出程序的功能。
'请在_____处填入正确的内容
'-------------------------------------------------------
'
Private Sub Command1_Click()
If Text1.Text = "" Then
Exit Sub
Text2.Text = 0
Else
'**********FILL**********
Text1.Text = MyFun_____
End If
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = 0
End Sub
Private Function MyFun(s1 As String) As String
Dim Pos As Integer
Dim Str1 As String
Dim intC As Integer
Const Sp As String = ""
'**********FILL**********
Pos = Len(_____)
For intC = Pos To 1 Step -1
Str1 = Str1 & Mid(s1, intC, 1)
Next intC
'**********FILL**********
MyFun = _____
Text2.Text = Pos
End Function
17、'下面的程序实现:从键盘输入一个数字,将其插入一个有序数组中,插入后的数组仍保持有序。
Private Sub Form_Click()
Dim a(10) As Integer, x As Integer
For i = 1 To 8
a(i) = 2 * i - 1
Print a(i);
Next i
x = InputBox("请输入要插入的整数")
'**********FILL**********
_____
i = 8
Do While a(i) > x
'**********FILL**********
_____
i = i - 1
Loop
'**********FILL**********
If i > 0 Then _____
For i = 1 To 9
Print a(i);
Next i
End Sub
18
'题目:用户界面如图所示,用实现左右两个组合框中数据的左移和右移功能。
' 程序开始运行时,在左边组合框中生成10个由小到大排列的随机三位
' 正整数(假设在设计阶段该组合框的Sorted属性值已设置为True), 现要求完成: ' (1)单击">>"钮,左边组合框中的10个数全部移动到右边组合框,并由大到' 小排列,同时使"<<"钮能响应,">>"钮不能响应。
' (2)单击"<<"钮,右边组合框中的10个数全部移到左边的组合框,并由小到' 大排列,同时使">>"钮能响应,"<<"钮不能响应;
' (3)单击"结束"按钮,结束程序运行。
'请在_____处填入正确的内容
'-------------------------------------------------------
'
Private Sub cmdLeft_Click()
Dim i As Integer
For i = 0 To comboRight.ListCount - 1
comboLeft.AddItem comboRight.List(i)
Next i
comboRight.Clear
'**********FILL**********
_____= False
'**********FILL**********
_____ = True
End Sub
Private Sub cmdRight_Click()
Dim i As Integer
'**********FILL**********
For i = 0 To _____ - 1
comboRight.AddItem comboLeft.List(i)
Next i
'**********FILL**********
_____.Clear
cmdRight.Enabled = False
cmdLeft.Enabled = True
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
Dim i As Integer
Label1.Caption = "组合框1"
Label2.Caption = "组合框2"
cmdRight.Caption = ">>"
cmdRight.Enabled = True
cmdLeft.Caption = "<<"
cmdLeft.Enabled = False
cmdExit.Caption = "结束"
comboLeft.Text = ""
For i = 1 To 10
comboLeft.AddItem Int(Rnd * 900) + 100
Next i
comboRight.Text = ""
End Sub
19'题目:由输入对话框输入n(n必须为大于零且小于30的自然数),' 计算下列表达式的值,并在标签框Label1上显示。
' sum=1/2+1/6+ ... +1/(k*(k+1)) (k<=n)
''请去掉_____,并填入正确的内容。
'
'-------------------------------------------------------
'
Private Sub Form_Click()
Dim n As Integer, sum As Double, k As Integer
n = Val(InputBox("n=", "请输入自然数n(n>0 且n<30)"))
'**********FILL**********
Do While n <= 0 _____ n >= 30
n = Val(InputBox("n=", "请重输入"))
Loop
sum = 0
k = 0
Do
'**********FILL**********
k =_____
sum = sum + 1 / (k * (k + 1))
'**********FILL**********
Loop Until _____
Label1.Caption = "Sum=" + Str(sum)
End Sub
1.下列程序由键盘输入一个文件名,然后把从键盘输入的字符依次存放到磁盘文件中,直到输入一个"#"为止。 #include "" main( ) { FILE *fp; char ch,filename[10]; scanf("%s",filename); /*用户输入存在磁盘上的文件名*/ if((fp= ⑦ (filename,"w"))==NULL) { printf("cannot open file\n"); exit(0); } while((ch=getchar())!='#') ⑧ ; fclose(fp); } 2.下列程序的功能是输出一个整数x的绝对值。将程序补充完整,填在空内。 #include <> main() { int x, ① ; scanf("%d",&x); y= ② ; printf("%d\n",y); } 3.下列程序的功能是输出1~100之间能被7整除的所有整数。将程序补充完整,填在空内。 main() { int i;
for(i=1; ③ ;i++) { if(i%7) ④ ; printf("%d ",i); } } 4.以下程序用以删除字符串中所有的空格,请填空。 main() { char s[100]={"Our teacher teach C language!"}; int i,j; for(i=j=0;s[i]!= '\0';i++) if(s[i]!= ' ') { ⑤ ;j++;} s[j]= ⑥ ; printf("%s\n",s); } 5.结构体数组中存有三个人的姓名和年龄,以下函数fun的功能是输出三人中最年长者的姓名和年龄。 struct man { char name[20];int age;}person[]={{"Mary",16},{"Tom",21},{"Jim",18}}; void fun( ⑦ person[ ] ) { int i,old=0; for(i=0;i<2;i ++) if(person[old].age 三、程序填空题 导读:在程斥填空题中,已经给出了程序的主干,读者首先要理解程序的思路, 再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步堂握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上己经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而白己编写程序乂不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 ttinclude for(i=0; i<10; i++) scanf &a[i]); findmin(a, 10, k); printf ("%d, %d\n", *k, a L*kJ); } 【3.4】下面程序的功能是计算1-3+5-7+……-99+101的值。 main() { int i, s=0: for(i=l; i<=101: i+=2) {①; s二s+t: ②; } printf ("%d\n", s); } [3.5]有以下程序段: s=l. 0; for(k=1: k<=n: k++) s=s+l. 0/(k*(k+1)); printf ("%f\n", s); 填空完成下述程斥,使之与上述程序的功能完全相同。 s=0. 0: ①; k=0; do { s二s+d; ②; d=1.0/(k*(k+l)); }while(③); printf ("%f\n", s); [3.6]下而程用的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main () ;、float x, amax, amin; scanf &x); amax=x: amin=x; 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include C语言常见复习题及参考答案 一、选择题 1.下述标识符中,()是合法的用户标识符。 A.A#C B.getch C.void D.ab* 2.在C语言中,字符型数据在内存中是以()形式存放的。 A.原码 B.BCD码 C.反码 D.ASCII码 3.以下选项中不合法的用户标识符是()。 A.abc.c B.file C.Main D.PRONTF 4.以下选项中不合法的用户标识符是()。 A.123 B.printf C.Anbsp; D.Dim 5.可以在C语言程序中用做用户标识符的一组标识符是()。 A.void B.as-b3 C.for D.2c define -123 -abc Do WORD If cas SIG 6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 (1)A.001 B.table_1 C.0_t D.k% Int t*.1 W10 point (2)A.Fast_ B.void C.pbl D. Fast+Big abs fabs beep (3)A.xy_ B.longdouble C.*p D.CHAR 变量1 signed history Float 7.()是构成C语言的基本单位。 A.函数 B.过程 C.子程序 D.子例程 8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。 (1).A.包含3个字符 B.包含2个字符 C.包含1个字符 D.无定值,说明不合法 (2).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 (3).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 9.若x为int型变量,则执行以下语句后,x的值为 x=6; x+=x-=x*x A.36 B.-60 C.60 D.-24 10.在C语言中,char 型数据在内存中是以()形式存储的。 A.原码 B.补码 C.ASCII码 D.反码 11.以下运算符中优先级最低的算符为(),优先级最高的为()。 A.&& B.& C.|= D.|| E.?: F.!= 12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为 A.*= << > % sizeof B.<< *= > % sizeof C.*= > << sizeof % D.*= > << % sizeof 13.若有以下类型说明语句 char w; int x; float y; double z; 则表达式w*x+z-y 的结果是()类型。 A.float B.char C.int D.double 14.若w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。 w=5; x=4; y=w++*w++*w++; z=--x*=--x*--x; 导出题库试题(1~100) 共计104道试题 一、程序填空答案(104题) 【程序填空】 1功能:求两个非负整数的最大公约数和最小公倍数。 【1】r != 0 或r 【2】r=m%n 或r=m-m/n*n 【3】n 【4】gcd,lcm 或n,lcm 2功能:下面的程序是求1!+3!+5!+……+n!的和。 【1】s=0 【2】i+=2 或i=i+2 或i++,i++ 【3】j<=i 或i>=j 或jj 【4】f= f * j 3功能:将一个字符串中下标为m的字符开始的全部字符复制成为另 一个字符串。 【1】p1= str1 + m 【2】*p2++=*p1++ 或*(p2++)=*(p1++) 或*p2=*p1,p2++,p1++ 或*p2=*p1++,p2++ 或*p2++=*p1,p1++ 【3】*p2='\0' 或*p2=0 或*p2=NULL【4】strcopy(str1,str2,m) 4功能:以下程序是用选择法对10个整数按升序排序。 【1】#define N 10 【2】k=I 【3】j 二、填空题 1.根据下图写出InputBox函数中的参数。 InputBox((1), (2), (3)) 2.执行下面的程序,在窗体上 显示的输出结果的第一行是 (4),第二行是(5)。 Option explicit Private sub form_click() Dim I as integer, j as integer J=10 For I=1 to j I = I+1 J = j - i Next I Print I Print j End Sub 3.执行下面的程序,在窗体上显示的输出结果的第一行是(6),第三行是(7)。 Private sub form_click() Dim a as integer Dim I as integer A=2 For I=1 to 9 Call sub1(I, a) Print I,a Next I End Sub Private Sub Sub1(x as integer, y as integer) Static n as integer Dim I as integer For I=3 to 1 step –1 N=n+x X=x+1 Next I Y=y+n End sub 4.执行下面的程序后,A(1,3)值是(8),A(2,2)值是(9),A(3,1)值是(10)。 Option explicit Private sub form_click() Dim A(3,3) As integer, I as integer Dim j as integer, k as integer, n as integer For k=1 to 5 If k<=3 then 程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p 二、填空题 1、C语言中对文件读写之前必须先打开文件,文件的打开是通过调用________函数来实现。 答案: 1:fopen#fopen()#fopen() 知识点:知识点/基本理论/C11文件/C11_2文件函数 2、C语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用__________函数来实现。 答案: 1:fclose#fclose()#fclose() 知识点:知识点/基本理论/C11文件/C11_2文件函数 3、字符串函数________用于从指定的磁盘文件中读出一个字符串。 答案: 1:fgets#fgets() 知识点:知识点/基本理论/C11文件/C11_2文件函数 4、字符串函数___________用于把一个字符串写入指定的磁盘文件中。 答案: 1:fputs#fputs() 知识点:知识点/基本理论/C11文件/C11_2文件函数 5、字符读写函数____________是用于从磁盘文件中读出一个字符。 答案: 1:fgetc#fgetc()#getc#getc() 知识点:知识点/基本理论/C11文件/C11_2文件函数 6、字符读写函数____________是用于把一个字符写入磁盘文件。 答案: 1:fputc#fputc()#putc#putc() 知识点:知识点/基本理论/C11文件/C11_2文件函数 7、共用体类型变量的定义关键字是________。 答案: 1:union 知识点:知识点/基本理论/C10共用体与枚举类型 8、定义枚举类型时采用的关键字是__________。 答案: 1:enum 知识点:知识点/基本理论/C10共用体与枚举类型 9、在C语言中,从参数的形式看,函数可以分为两类:无参函数和____________函数。 答案: 1:有参 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 10、在C语言中,函数的返回值是由___________语句传递的。 答案: 1:return#return() 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 11、在C语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数 __________。 答案: 1:参数 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 12、在C语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。 答案: 1:直接 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 13、在C语言中,若确实不要求返回函数值,则应将函数定义为___________类型。 答案: 1:void 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 14、在C语言中,假使X为基本整型变量,如果我们采用printf("格式控制",X)格式输出X,那么"格式控制"具体表示为"__"。 三、程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include 程序填空题1、 #include _____2_____; n=n/10 } printf("%d\n",k); } 3、 #include C语言程序填空题及答 案 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289- 程序填空题 1、 #include } 3、 #include 1、在考生目录下,给定程序FILL1、C的功能就是: 计算正整数num的各位上的数字之积。 例如,若输入:252,则输出应该就是:20。 若输入:202,则输出应该就是:0。 程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include 第四章模块化程序设计练习题及参考答案 一、填空题 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)只用当实参和与其对应的形参同名时才共占用存储单元。 1. 一条简单语句是以________字符作为结束符的,一条复合语句是分别以 ________字符和________字符作为开始符和结束符的。 2. 任何一个C++程序至少且只能包含一个________函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由________和________两部分组成。 3. C++头文件和源程序文件的扩展名分别为________和________。 4. cout与操作符_______配合使用才能显示输出,cin与操作符_____配合使用才能实现输入。 5. 数据类型int,char,bool,float,double, int * 等的类型长度分别为________、________、________、________、________和________。 6. 数值常量46、0173和0x62对应的十进制值分别为________、________和________。 7. 字符串”It\’s\40a\40C++programe!”中包含有__________个字符。 8. 若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为________和 ________。 9. 若x=25,则计算y=x--表达式后,x和y的值分别为________和________。 10. 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为________和________。 11. 假定x=64,y=88,则x<<2和y>>2的值分别为________和________。 12. 假定x是一个逻辑量,则x&&true的值与________的值相同,x||false的值也与________的值相同。 13. 假定x是一个逻辑量,则x&&!x和x||!x的值分别为________和________。 14. 假定x=10,则表达式x<=10?20:30的值为________。 15. 表达式sqrt(81)和pow(6,3)的值分别为______________和 ______________。 16. 数学算式(1+x)sin48°和axbex+1对应的算术表达式分别为________和 ________。 17. 逻辑表达式:a>=x||b>2*y+10的相反式为:________。 18. 在嵌套的if语句中,每个else关键字与它前面最接近的________关键字相配套。 19. 在for语句中,假定循环体被执行次数为n,则<表达式1>共被计算________次,<表达式2>共被计算________次,<表达式3>共被计算________次。20. 执行for和while循环时,每次是先进行________的判断,然后再执行 ________,执行do循环时则相反。 第1.题*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面的程序是求1!+3!+5!+……+n!的和。 -------------------------------------------------------*/ #include 模块三循环程序设计习题及答案 一、填空题 1、当在数据处理中要重复执行相同的操作时,宜采用程序结构来实现。 2、循环的3要素是、、。 3、在循环语句体中包含另一个循环语句的用法称为。 4、执行循环语句体中的break语句后将使用包含它的循环语句。 5、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行语句。 6、在for语句中表达式允许省略,但不能少,语句for( ; ;) ;构成的是循环。 7、在for语句中,省略表达式2时,则循环为循环。 8、执行语句for(i=1;i++<4; );后变量i的值是。 9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用语句。 10、在每次循环周期均要执行一次的语句,称为。 11、for语句括号内的3个表达式的作用分别是、和循环控制变量的更新。 二、选择题 1、若k为整形变量,则while循环共循环()。 k=5; while(k>=0) k-1; A、无限循环 B、6次 C、5次 D、4次 2、与while( ! n) ; 中表达式!dn等价的是()。 A、dn>=0 B 、dn!=0 C、dn == 0 D、dn != 1 3、以下程序段,while循环执行的次数是() int k=0; while( k == 1) k++; A、无限次 B、有语法错,不能执行 C、一次也不执行 D、执行1次 4、在C语言中,当do while语句中的条件为()时,结束该循环。 A、0 B、1 C、TRUE D、非0 5、下面程序段的输出结果是() do { b-=a; a++; }while(b--<0); A、10,-1 B、2,8 C、9,0 D、4,-3 6、以下描述正确的是() A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do while循环体中,一定要有能使while后面匠值变为零的操作 D、do while循环中,根据情况可以省略while 7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。 s=c; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是() A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c; 8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是() A、d=a+b; B、d=a+c; C、d=a-b; D、d=a-c 9、下列关于for循环的说法正确的是() A、for循环只能用于循环次数已经确定的情况 1. 在考生目录下,给定程序FILL1.C的功能是: 计算正整数num的各位上的数字之积。 例如,若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。 程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! #include /**************found************/ ___(1)___; scanf("%s",s); /**************found************/ for(i=0;___(2)___;s[i] != ‘\0’ ;i++) n=n*10+s[i]-'0'; printf("n=%ld\n",n); } 3. 在考生目录下,给定程序FILL1.C的功能是:输出Fabonacci数列:1,1,2,3,5,8,……的前20项的 项值,要求每行输出5个数。请填空。 程序有两个空(1)、(2)需要补充完整。请将程序调试出 所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include "stdio.h" main() { long int f[20]={1,1}; int i; clrscr(); /**************found************/ ___(1)___; printf("%8ld,%8ld",f[0],f[1]); for(i=2;i<20;i++) { f[i]=f[i-1]+f[i-2]; /**************found************/ if(___(2)i%5==0) printf("\n"); printf("%8ld",f[i]); } printf("\n"); } 4. 在考生目录下,给定程序FILL1.C的功能是:实现在N行M列的二维数组中,找出每一行上的最大值,且原数组值不变。 例如:如果二维数组元素的值为: 1 5 7 4 2 6 4 3 8 2 3 1 时,程序的运行结果应为: The max value in line 0 is 7 The max value in line 1 is 6c语言程序填空题1
C语言程序的设计填空题及答案复习用
C语言常见复习题(选择填空)及参考答案
c语言程序填空题
1-8道程序填空题
C语言程序设计程序填空题库及答案
C语言题库(填空题部分)
c语言程序填空题完整
程序填空题(1)
C语言程序填空题及答案
C语言填空题
模块化程序设计练习题及答案
C语言填空题以及答案
-程序填空部分试题及答案
循环程序设计习题及答案
C语言填空题