程序设计实验及在线指导课后习题答案

合集下载

C语言程序设计实验指导书参考答案

C语言程序设计实验指导书参考答案

C 语言程序设计上机实验指导与习题参考答案(仅供教师内部参考)华南农业大学目录上机实验 (1)实验 1 C 语言程序初步 (1)一、实验目的 (1)二、实验内容 (1)实验 2 基本数据类型、运算和表达式 (3)一、实验目的 (3)二、实验内容 (3)实验 3 基本输入与输出 (5)一、实验目的 (5)二、实验内容 (5)实验 4 选择结构程序设计 (4)一、实验目的 (4)二、实验内容 (4)实验 5 循环结构程序设计(一) (9)一、实验目的 (9)二、实验内容 (9)实验 6 循环结构程序设计(二) (15)一、实验目的 (15)二、实验内容 (15)实验7 数组 (17)一、实验目的 (17)二、实验内容 (17)实验8 字符数组的应用 (22)一、实验目的 (22)二、实验内容 (22)实验9 函数的基本应用 (24)一、实验目的 (24)二、实验内容 (24)实验10 指针与结构体 (26)一、实验目的 (26)二、实验内容 (26)*实验11 链表 (29)一、实验目的 (29)二、实验内容 (29)*实验12 文件 (32)一、实验目的 (32)二、实验内容 (32)上机实验实验1 C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C 程序。

(3)通过运行简单的 C 程序,初步了解C 程序的特点。

(4)在教师的指导下,学会使用JudgeOnline 实验系统。

二、实验内容1. 运行第一个C 程序[题目:The first C Program]将下列程序输入TC(或VC++),编译、连接和运行该程序。

void main(){printf("The first C Program\n");}[具体操作步骤]以Turbo C 上的操作为例(1)Windows 进入后,按照第一章中介绍的方法,进入Turbo C。

《C语言程序设计实验指导与习题集》练习题的参考答案(中国铁道出版社)

《C语言程序设计实验指导与习题集》练习题的参考答案(中国铁道出版社)










答案
B
A
C
C
D
D
B
A
A
C
编号




答案
A
C
D
B
(一)填空题
编号
答案
编号
答案





b=i+1
i<10j%3!=0
52
right
17





X
S=25489213**六、数组(一)选择题
编号










答案
C
D
C
D
D
A
C
A
A
B
编号




答案
D
B
A
D
(一)填空题
编号
答案
C
D
D
A
7
8
9
10
11
12
C
A
C
D
C
B
13
14
15
16
17
18
A
C
D
C
A
B
2.填空
(1)22(2)struct st(3)2,3(4)zhao
(5)13(6)380039(7)struct list q
9
十一文件
1.选择
1
2
3
4
5
6

Java6程序设计实践教程实验指导课后答案

Java6程序设计实践教程实验指导课后答案

第1章:习题集:一、填空题1.多态2.java.exe 3.jdb.exe 4.标准字节码5.Java 6.独立于平台二、选择题1.B 2.A 3.B 4.A 5.A 6.C 7.C 8.D 9.C第2章:实验指导:.第一处需要的代码:yourGuess>realNumber第二处需要的代码:yourGuess=input.nextInt();第三处需要的代码:yourGuess<realNumber第四处需要的代码:yourGuess=input.nextInt();.第一处需要的代码:iArray[i] < iArray[j]第二处需要的代码:iTemp = iArray[i];iArray[i] = iArray[j];iArray[j] = iTemp;.第一处需要的代码:continue lable;第二处需要的代码:System.out.print(" "+(i+j));.第一处需要的代码:System.out.print("\t");第二处需要的代码:System.out.print(j + "*" + i + "=" + (i*j) + "\t");习题集:一、填空题1.i=i+1 sum=sum+1 i<1002.while do while for 3.94.The symbol is an a.The symbol is a b.The symbol is c.The symbol is not a,b,or c.Switch is completed5.sum=0 pos++二、选择题1.D 2.A 3.D 4.A 5.D 6.A 7.B 8.B 9.C三、简答题2、there is no this value 3.Message four i is 1,2,3 i is 1,2,3 i is 1,2,3 i is 4第3章实验指导:.第一处需要的代码:balance+=saveAccount;第二处需要的代码:balance+=calculateInterst(Days);第三处需要的代码:ba.setMoney(save_value);ba.setInterstRate(interst_rate);第四处需要的代码:ba.accountInterst(365);.第一处需要的代码:minute=this.m_Minute;second=this.m_Second;第二处需要的代码:s=d.getMinutes()+":"+d.getSeconds()+":"+d.getTime();.第一处需要的代码:super(number,pass);balance=bal;第二处需要的代码:connect.第一处需要的代码:super(pass, motor);this.make=make;this.model=model;第二处需要的代码:am.run();习题集:一、填空题1.类2.代码和数据3.点4.实例变量5.Test te=new Test();6.对象实例化7.值、引用8.the original is data is:-1now the data is:109.I am parentI am childI am child二、选择题1.B 2.A 3.C 4.C 5.A 6.A 7.C 8.A 9.D 10.C 11.A 12.C 13.C 三、简答题6. A abstract和final修饰符不能同时使用B 未给出类型定义,final int MAX_NUMBER=10;C 常量不能修改D 静态方法值能访问静态变量,static int data。

VisualBasic程序设计学习与实验指导

VisualBasic程序设计学习与实验指导

Visual Basic 程序设计学习与实验指导答案上篇学习指导第1章Visual Basic 概述1.事件2.查看对象3.工程4.视图属性窗口5窗体编辑器第2章面向对象程序设计初步1.控件2.事件3.类属性4.属性5第3章Visual Basic 语言基础1.(a*sin(30/180*3.14)+c*(log(b)/log(10)))/((Abs(d)+1)*(e+f))+12.mod3.X=Int(X) And Y=Int(Y) And X*Y>04.Y Mod 4=0 And Y Mod 100<>0 Or Y Mod 400=05.x=Int((99-10+1)*Rnd+10)6.0 “”7.空格8.6,845.309.(1)8(2)1(3)abcd(4)出错,类型不匹配(5)False(6)2008-6-29(7)I likeVB(8)4(9)4 4(10)3 4(11)10 -10(12)-1(13)aa(14)3(15)0(16)1(17)C(18)5(19)8(20)34.54(21)中国(22)上海(23)VISUAL BASIC(24)visual basic10.(1)x<-100 or x>100(2)a=Int(a) And b =Int(b) Or a<0 And b<0 (3)x<=y or x>=z(4)a>0 And a<>Int(a)(5)a=0 xor b=0(6)Len(S)<10(7)UCase(S)=S(8)Left(S,1)=”a” And Right(S,1)=”a”(9)Instr(S,”@”)<>0(10)Trim(S)=S(11)Date=#8/8/2008#(12)Weekday(Date)=2第4章程序控制结构与算法基础一.简单填空1.Randomize2.N=Int((99-10+1)*Rnd+10)3.M=(Int((100-10+1)*Rnd+10))/104.Exit For5.Exit Do二.读程序写结果1.150 122.22 23 -13.5 3 04.20 40 60三.程序填空1. Len(s)Mid(s,i,1)c>=”A” And c<=”Z”c>=”a” And c<=”z”c>=”0” And c<=”9”n3=n3+12.01 n-1n Mod i=0sum+isum=n3.1000CStr(n)CStr(n*n)Right(s2,Len(s1))=s14.100 2002 N-1Exit Forcount+1count Mod 5=0 Print5.sum=1a*x^2/((2*n-1)*(2*n))sum+aAbs(a)<=0.0000001下篇实验教程实验2 Visual Basic 变量、函数与表达式的使用实验2-1 算术运算符的使用13178332262-2-22007-10-153 2.857143 2.85714285714286实验2-2 字符运算符的使用20071020071020172007-10-10102007-10-20出错,类型不匹配实验2-3 关系运算符的使用FalseFalseFalseFalseFalseFalseFalseTrueFalseTrue实验2-4 逻辑运算符的使用TrueTrueFalseTrueFalseFalseTrueTrueFalse5-59实验2-5 常用函数的使用3.14 3.147.389056098930651 -1 .999999998205103 4-1 1 0.70554755825 251250 0A a65 9748 688 -98 -89 -9aaa 4.5 aaa4.516 5Visua 6.0sua Basic Basic 6.0 abcde EFGBasic Basic Basic Visual Basic 6.0 Basic 8 8aaa dd2011-3-152011-3-15 14:35:5215320113001.731.731.7317.32E-010173%实验3 算法基础及程序控制结构实验3-1 三个数的交换A=CC=BB=TBC实验3-2 求周长和面积Const PI=3.14159262*PI*RPI*R*RPicture1.ClsFormat(L, ".00")Format(M, ".00")实验3-3 求分段函数的值x=Val(Text1.Text)y=1+Sin(x)y=Log(x)Text1.Text = ""Text2.Text = ""实验3-4 求一元二次方程的根Val(Text2.Text)Val(Text3.Text)b ^ 2 - 4 * a * c"x1=" & (-b + Sqr(delt)) / (2 * a)"x2=" & (-b - Sqr(delt)) / (2 * a)Text2.Text = ""Text3.Text = ""End实验3-5 判断素数N Mod k = 0k=NN Mod i=0k=2实验3-6 求最大公约数和最小公倍数M<NL=ML=NM Mod k = 0 And N Mod k = 0Text3.Text = kExit ForM>NL=ML=Nk Mod M = 0 And k Mod N = 0Text4.Text = kExit For实验3-7 判断升序数、降序数CStr(N)Len(S) – 1Mid(S, k, 1) >= Mid(S, k + 1, 1)k = Len(S)N = Val(Text1.Text)S = CStr(N)For k = 1 To Len(S) - 1If Mid(S, k, 1) <= Mid(S, k + 1, 1) Then Exit For Next kk = Len(S)实验3-8 判断回文数1Len(s)\2-1Mid(S, k, 1) <> Mid(S, Len(S) - k + 1, 1)k = Len(S) \ 2Mid(S, k, 1) + S1S = S1实验3-9 求级数的值Val(Text1.Text)1x ^ ns * nt / s <= 10 ^ -6Text2.Text = y实验3-10 查找数字串并求和Text1.Text = ""Text2.Text = ""List1.ClearText1.TextFalseWhile Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= "9" Flag = Truek = k * 10 + Mid(s, i, 1)i = i + 1Flag = Truesum + kText2.Text = sum实验3-11 随机产生20个奇数Int((99 - 10 + 1) * Rnd) + 10a Mod 2 = 1n Mod 5 = 0Picture1.Cls实验3-12 加密解密Chr(Asc("a") + (Asc(c) - Asc("a") + 3) Mod 26)c = Chr(Asc("A") + (Asc(c) - Asc("A") + 3) Mod 26) c & s2Text2.TextLen(s2)Mid(s2, i, 1)c = Chr(Asc("a") + (Asc(c) - Asc("a") + 23) Mod 26) c = Chr(Asc("A") + (Asc(c) - Asc("A") + 23) Mod 26) c & s1s1Text1.Text = ""Text2.Text = ""实验3-13 统计单词个数Text1.TextMid(s, i, 1) <> " " And i <= Len(s)i = i + 1Mid(s, start, i - start)nText1.Text = ""List1.Clear实验4 数组的使用实验4-1 一维数组的产生及输出i = 1 To 20Int((9 - 0 + 1) * Rnd + 0)i = 1 To 20Print a(i);Printi = 1 To 20Picture1.Print a(i);If i Mod 5 = 0 Then Picture1.Printi = 1 To 20Text1.Text & Space(2) & a(i)If i Mod 5 = 0 Then Text1.Text = Text1.Text & vbCrLf v In aIf i Mod 5 = 0 Then Picture2.Print实验4-2 选手得分Int((50 - 10 + 1) * Rnd + 10) / 10i = 1 To 6sum = sum + score(i)max = score(1)min = score(1)score(i) > max Then max = score(i)score(i) < min Then min = score(i)(sum - max - min) / 4实验4-3 产生10个互不相同的整数Int((999 - 10 + 1) * Rnd + 10)t Mod 10 = 5Then Exit Forn= n + 1a(i) = tFor i = 1 To 10Print a(i);If i Mod 5 = 0 Then PrintNext i实验4-4 统计数字出现的次数IsNumeric(S) = FalseExit SubLen(S)c >= "0" And c <= "9"A(c) = A(c) + 1A(k) <> 0m = m + 1实验4-5 排序1 To 10Int((99 - 10 + 1) * Rnd + 10)Text1.Text & A(n) & " "1 To 9i + 1 To 10A(i) > A(j)T = A(j)A(j) = A(i)A(i) = T1 To 910 - iA(j) > A(j + 1)T = A(j + 1)A(j + 1) = A(j)A(j) = T1 To 10Text3.Text = Text3.Text & A(i) & " "10T = A(i)ji - 1k + 11 To 10Text4.Text = Text4.Text & A(i) & " "实验4-6 二维数组的产生及输出1 To 41 To 5Int((9 - 0 + 1) * Rnd + 0)1 To 41 To 5Print A(i, j);Print1 To 41 To 5Picture1.Print A(i, j);Picture1.Print1 To 41 To 5Text1.Text = Text1.Text & A(i, j) & " "Text1.Text = Text1.Text & vbCrLf实验4-6 查找最大和最小元素及其位置1 To 31 To 4A(i, j) = Int((99 - 10 + 1) * Rnd + 10)Picture1.Print A(i, j);Picture1.PrintA(1, 1), 1, 1A(1, 1), 1, 1A(i, j)ijA(i, j) < minA(i, j)ij"最大元素" & "A(" & maxi & "," & maxj & ")=" & max "最小元素" & "A(" & mini & "," & minj & ")=" & min实验4-7 矩阵转置Dim A() As Integer"请输入N的值"ReDim A(N, N) As IntegerFor i = 1 To NFor j = 1 To NA(i, j) = Int((99 - 10 + 1) * Rnd + 10)Text1.Text = Text1.Text & A(i, j) & " "Next jText1.Text = Text1.Text & vbCrLfNext it = A(i, j)A(i, j) = A(j, i)A(j, i) = tFor i = 1 To NFor j = 1 To NText2.Text = Text2.Text & A(i, j) & " "Next jText2.Text = Text2.Text & vbCrLfNext i实验6 界面设计实验6-1 用户登陆MsgBox "请登录!"PassWordInput=TxtPassW.TextUserIdInput=UserId And PassWordInput=PassWordCmdReset_Click实验6-2 学籍登记OptXb(0).Value = TrueList1.AddItem Space(4) & xh & Space(6) & xm & Space(6) & xb & Space(12) & xy & Space(16) & zy & Space(4)List1.RemoveItem List1.ListIndex实验6-3 字体格式设置Select Case OpFontCheck2.Value = 1OpColor = IndexOpFont = Index实验6-4 兴趣调查List1.AddItem ItemEndSelect Case IndexItem = Text1.Text实验6-5 调色板。

C语言程序设计练习指导书实验答案

C语言程序设计练习指导书实验答案
}
(2)以下程序输入圆的半径,求圆面积。请将程序中的5处语法错误和逻辑错误改正。
#include "stdio.h"
void main()
{ int r;
float s;
printf("Enter r:");
scanf("%d", &r);
s=3.14159*r*r;
}
}
(2)已知鸡兔共有30只,脚共有90个,下面程序的功能计算并输出鸡兔各有多少只,请改正程序中的错误。
#include "stdio.h"
void main()
{ int x,y;
for(x=1;x<=30;x++)
{ y=30-x ;
if(2*x+4*y==90)printf("%d,%d\n",x,y) ;
0 x<0
y= x 0<=x<10
10 10<=x<20
-0.5x+20 20<=x<40
#include "stdio.h"
void main()
{ int a=1,b=2,c=3;
float d=4,e;
e=a/((b+c)*d);
printf("%f\n",e);
}
3.2 顺序结构程序设计
1、改错题
(1)以下程序计算并输出长方形面积和体积,请改正程序中的错误。
printf("s=%f\n",s);
}
2、填空题

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。

解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。

因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。

8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。

请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。

解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。

【精品】C语言程序设计实验与习题指导课后程序设计答案

【精品】C语言程序设计实验与习题指导课后程序设计答案

P18(1)#include<stdio.h>int main(void){int celsius,fahr;fahr=150;celsius=5*fahr/9-5*32/9;printf("fahr=%d,celsius=%d\n",fahr,celsius);return 0;}(2)#include<stdio.h>int main(void){int celsius,fahr;celsius=26;fahr=9*celsius/5+32;printf("celsius=%d,fahr=%d\n",celsius,fahr);return 0;}(3)#include<stdio.h>int main(void){int average,math,eng,comp;math=87;eng=72;comp=93;average=(math+eng+comp)/3;printf("math=%d,eng=%d,comp=%d,average=%d\n",math,eng,comp, average);return 0;}(4)#include<stdio.h>int main(void){int n,a,b,c;n=152;c=n%10;b=(n/10)%10;a=n/100;printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",n,c,b,a);return 0;}P27(1)#include<stdio.h>#include<math.h>int main(void){int celsius,fahr;printf("Enter celsius:");scanf("%d",&celsius);fahr=9*celsius/5+32;printf("fahr%d\n",fahr);return 0;}(2)#include<stdio.h>#include<math.h>int main(void){int money,year;double rate,interest;printf("Enter money,year,rate:");scanf("%d%d%lf",&money,&year,&rate);interest=money*pow(1+rate,year)-money;printf("interest=%.2f\n",interest);return 0;}(3)#include<stdio.h>#include<math.h>int main(void){double x,y;printf("Enter x:");scanf("%lf",&x);if(x<0){y=pow(x+1,2)+2*x+1/x;}else{y=sqrt(x);}printf("y=f(%f)=%.2f\n",x,y);return 0;}(4)#include<stdio.h>int main(void){int x,y;printf("Enter num1:");scanf("%d",&x);printf("Enter num2:");scanf("%d",&y);printf("%d+%d=%d\n",x,y,x+y);printf("%d-%d=%d\n",x,y,x-y);printf("%d*%d=%d\n",x,y,x*y);printf("%d/%d=%d\n",x,y,x/y);printf("%d%%%d=%d\n",x,y,x%y);return 0;}10的阶乘#include<stdio.h>int main(void){int i,n,product;printf("Enter n:");scanf("%d",&n);product=1;for(i=1;i<=n;i++){product=product*i;}printf("product=%d\n",product);return 0;}。

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。

(3)通过运行简单的 C 程序,初步了解 C程序的特点。

(4)在教师的指导下,学会使用在线评判系统。

二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。

includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。

(2)保存程序,取名为a1.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

,则该题完成。

4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。

实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为a2.c。

(3)按照前二章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。

45(6)按照第三章中介绍的方法进入在线评判系统。

(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。

(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。

(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计实验及在线指导课后习题答案第二章/*一:求平均年龄描述班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。

输入第一行有一个整数n(1<= n <= 100),表示学生的人数。

其后n行每行有1个整数,取值为15到25。

输出输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。

样例输入21817样例输出17.50提示要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:printf("%.2f", num);#include<stdio.h>int main(){int n,i,age;double sum,average;sum=0.00;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&age);sum+=age;}average=sum/n;printf("%.2f\n",average);}/*二:数字求和描述给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?输入输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。

输出输出一行,给出一个正整数,是5个数中小于a 的数的和。

样例输入10 1 2 3 4 11样例输出10#include<stdio.h>int main(){int a,i,s[5];int sum;sum=0;scanf("%d",&a);for(i=0;i<5;i++){scanf("%d",&s[i]);}for(i=0;i<5;i++)if(s[i]<a)sum+=s[i];}printf("%d\n",sum);}/*三:两倍:描述给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。

比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。

输入输入包括多组测试数据。

每组数据包括一行,给出2到15个两两不同且小于100的正整数。

每一行最后一个数是0,表示这一行的结束后,这个数不属于那2到15个给定的正整数。

输入的最后一行只包括一个整数-1,这行表示输入数据的结束,不用进行处理。

对每组输入数据,输出一行,给出有多少个数对满足其中一个数是另一个数的两倍。

样例输入1 4 32 9 7 18 22 02 4 8 10 07 5 11 13 1 3 0-1样例输出320*/#include<stdio.h>int main(){int a[16],i;int count,j,m=0;while(1){scanf("%d",&a[0]);if(a[0]==-1)break;m=0;for(i=1;;i++){scanf("%d",&a[i]);m++;if(a[i]==0)break;}count=0;j=m;while(j--){for(i=0;i<m;i++){if(a[j]==2*a[i])count++;}}printf("%d %d\n",count,m); }}}}四:肿瘤面积/*描述在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。

其它肿瘤内和肿瘤外的点都用255表示。

现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)。

已知肿瘤的边缘平行于图像的边缘。

输入只有一个测试样例。

第一行有一个整数n,表示正方形图像的边长。

其后n行每行有n个整数,取值为0或255。

整数之间用一个空格隔开。

已知n不大于1000。

输出输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数。

样例输入5255 255 255 255 255255 0 0 0 255255 0 255 0 255255 0 0 0 255255 255 255 255 255样例输出1提示如果使用静态数组来表示图片数据,需要将该数组定义成全局变量。

*/#include<stdio.h>int s[1000][1000];int main(){int n,i,j,b,c,k,t;int area;area=0;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++){scanf("%d",&s[i][j]); }j=0;for(i=0;i<n;i++){if(s[i][j]==0){b=i;t=j;break;}j++;}i=0;for(j=0;j<n;j++){if(s[i][j]==0){c=j;k=i;}i++;}area=(k-b-1)*(c-t-1);printf("%d %d %d %d %d\n",area,b,c,k,t); }/*五:肿瘤检测描述一张CT扫描的灰度图像可以用一个N*N (0<N<100)的矩阵描述,矩阵上的每个点对应一个灰度值(整数),其取值范围是0-255。

我们假设给定的图像中有且只有一个肿瘤。

在图上监测肿瘤的方法如下:如果某个点对应的灰度值小于等于50,则这个点在肿瘤上,否则不在肿瘤上。

我们把在肿瘤上的点的数目加起来,就得到了肿瘤在图上的面积。

任何在肿瘤上的点,如果它是图像的边界或者它的上下左右四个相邻点中至少有一个是非肿瘤上的点,则该点称为肿瘤的边界点。

肿瘤的边界点的个数称为肿瘤的周长。

现在给定一个图像,要求计算其中的肿瘤的面积和周长。

输入输入第一行包含一个正整数N(0<N<100),表示图像的大小;接下来N行,每行包含图像的一行。

图像的一行用N个整数表示(所有整数大于等于0,小于等于255),两个整数之间用一个空格隔开。

输出输出只有一行,该行包含两个正整数,分别为给定图像中肿瘤的面积和周长,用一个空格分开。

样例输入699 99 99 99 99 9999 99 99 50 99 9999 99 49 49 50 5199 50 20 25 52 9940 50 99 99 99 9999 99 99 99 99 99样例输出9 8*/#include<stdio.h>int s[1000][1000];int main(){int n,i,j;int area,permit;area=0;permit=0;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++){scanf("%d",&s[i][j]);}for(i=0;i<n;i++)for(j=0;j<n;j++)if(s[i][j]<=50){area++;if(s[i-1][j]>50||s[i+1][j]>50||s[i][j-1]>50||s[i][j+1]>50)permit++;}printf("%d %d\n",area,permit);}/*八:简单密码描述Julius Caesar曾经使用过一种很简单的密码。

对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。

比如字符A用F来代替。

如下是密文和明文中字符的对应关系。

密文A B C D E F G H I J K L M N O P Q R S T U V W X Y Z明文V W X Y Z A B C D E F G H I J K L M N O P Q R S T U你的任务是对给定的密文进行解密得到明文。

你需要注意的是,密文中出现的字母都是大写字母。

密文中也包括非字母的字符,对这些字符不用进行解码。

输入输入中的测试数据不超过100组。

每组数据都有如下的形式,而且各组测试数据之间没有空白的行。

一组测试数据包括三部分1.起始行- 一行,包括字符串"START"2.密文- 一行,给出密文,密文不为空,而且其中的字符数不超过2003.结束行- 一行,包括字符串"END"在最后一组测试数据之后有一行,包括字符串"ENDOFINPUT"。

输出对每组数据,都有一行输出,给出密文对应的明文。

样例输入STARTNS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX ENDSTARTN BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJENDSTARTIFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ ENDENDOFINPUT样例输出IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSESI WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROMEDANGER KNOWS FULL WELL THATCAESAR IS MORE DANGEROUS THAN HE*/#include<stdio.h>#include<string.h>int main(){char s[201],end[201];charb[27]="VWXYZABCDEFGHIJKLMNOPQRS TU";int i,len;gets(s);while(strcmp(s,"START")==0){gets(s);len=strlen(s);for(i=0;i<len;i++){if(s[i]>='A'&&s[i]<='Z')s[i]=b[s[i]-'A'];}gets(end);printf("%s\n",s);gets(s);}}第三章一:十进制到八进制#include<stdio.h>int main(){int n,i,j;int s[200];scanf("%d",&n);i=0;while(n>0){s[i]=n%8;n=n/8;i++;}for(j=i-1;j>=0;j--){printf("%o",s[j]);}}二:八进制到十进制#include<stdio.h>#include<string.h>int main(){int i,len,ret;char s[100];ret=0;scanf("%s",&s); len=strlen(s);for(i=0;i<len;i++) {ret*=8;ret+=s[i]-'0';}printf("%d\n",ret); }三:二进制到十六进制#include <stdio.h>#include <string.h>char alp[]="0123456789ABCDEF";int main(){int result = 0,ret;int i,len,t,j,k,p;char a[10002];char res[100];scanf("%d",&t);getchar();while(t--){ret=0;gets(a);len=strlen(a);for(i=0;i<len;i++){ret*=2;ret+=a[i]-'0';}j=0;while(ret>0){result=ret%16;res[j]=alp[result];ret=ret/16;j++;}for (i=j-1;i>=0;i--)printf("%c",res[i]);putchar('\n');}}#include <stdio.h>#include <string.h>char alp[]="0123456789ABCDEF"; int main(void){int result = 0,ret;int i,len,t,j,k,p;char a[10002];char res[100];scanf("%d",&t);getchar();while(t--){ret=0;gets(a);len=strlen(a);strrev(a);j=0;for (i=0;i<len;i+=4){result=0;p=1;for (k=i;k<i+4 && k<len;k++,p*=2)result+=(a[k]-'0')*p;res[j++]=alp[result];}for (i=j-1;i>=0;i--)printf("%c",res[i]);putchar('\n');}}/*m进制到n进制*/#include<stdio.h>#include<string.h>char apl[]="0123456789ABCDEF"; int main(){int ret,result;int m,n,t,i,j,len;char a[100002];char b[100002];scanf("%d",&t);getchar();while(t--){scanf("%d %d",&m,&n);ret=0;scanf("%s",a);len=strlen(a);for(i=0;i<len;i++){if(a[i]-'0'>=m)continue;ret*=m;ret+=a[i]-'0';}j=0;while(ret>0){result=ret%n;b[j]=apl[result];ret=ret/n;j++;}for(i=j-1;i>=0;i--){printf("%c",b[i]);}putchar('\n');}}/*将字符串倒着输出*/#include<stdio.h>#include<string.h>int main(){int t;char a[10002];scanf("%d",&t);getchar();while(t--){gets(a);strrev(a);printf("%s\n",a);}}第八章一:计算对数#include<stdio.h>#include<math.h>int main(){int a,b;int x,n;double temp;scanf("%d",&n);while(n--){scanf("%d %d",&a,&b);temp=log10(b)*1.0/log10(a);x=(int) temp;printf("%d\n",x);}}。

相关文档
最新文档