输出第二个整数

| 汉语四六级 |

【www.guakaob.com--汉语四六级】

输出第二个整数篇一
《任意输入两个整数,输出它们的和》

本程序任意输入两个整数,输出它们的和。import javax.swing.JOptionPane;或者import javax.swing.*;public class B2{public static void main(String[] args) {int n1=Integer.parseInt(JOptionPane.showInputDialog("请输入第一个整数:"));或者 String s1=JOptionPane.showInputDialog("请输入第一个整数:");int n1=Integer.parseInt(s1);int n2=Integer.parseInt(JOptionPane.showInputDialog("请输入第二个整数:"))或者 String s2=JOptionPane.showInputDialog("请输入第二个整数:");int n2=Integer.parseInt(s2);JOptionPane.showMessageDialog(null,n1+"与"+n2+"的和是:"+(n1+n2));} }

输出第二个整数篇二
《输入一个整数,将其转换为字符串输出》

例9-15 编写函数,输入一个整数,将其转换为字符串输出。例如,输入整数86556,输出字符串"86556"。

首先确定函数头,函数输入一个long型整数,输出一个char型字符数组,因此可以定为void long2string(long lNum,char chWord[])。注意这里的整数可能比较大,不要定为int型。

函数中,可以首先利用循环和%和/运算符,依次取得整数的每个位。思路如下:例如86556,我们可以将其对10取余,得到个位6;将86556除10余8655,继续对10取余,得到十位5;… … 以此类推,直到该数变为0为止。这样就可以将整数的每个位分离出来。

在上述的循环过程中,将分离出的数字依次保存到字符数组中。但是要注意,字符数组中保存的是字符,是数字的ASCII码,而不是数字本身的值。因为ASCII码表中阿拉伯数字的码值是连续的,因此一个常用的技巧是,字符0加数字值即为该数字的ASCII码值。

上述过程结束后,字符数组里存放了整数的每个位,但是不符合题目的要求,顺序正好相反。这可以用一个循环对数组进行转置:字符串第一个元素和最后一个元素对换;第二个元素和倒数第二个元素对换;… …程序循环进行 字符串长度/2 次(如果字符串长度为奇数,中间元素正好不用处理)。

数据要求

问题中的常量:

问题的输入:

long lNum /*输入的long型数据*/

问题的输出:

char chWord[50] /*转换后的字符串*/

初始算法

1.初始化变量lNum;

2.调用函数得到字符串;

3.程序输出结果后退出。

算法细化

步骤2的细化

2.1 初始化临时变量

2.2 lNum!=0时,循环执行得到各个位的数字

2.2.1 转换数字ASCII码

2.2.2 i变量增1

2.2.3 lNum=lNum/10,本步骤的目的有两个,一是结束循环,二是正确的

得到数字

2.3 字符串最后加标志

2.4 循环进行数组的逆序

2.5 结束

流程图

图5-15 程序执行流程图

程序代码如下:

#include “stdio.h”

void long2string(long lNum,char chWord[])

{

int i=0,j;

char chTemp;

/*依次取整数的末位,存入chWord*/

while(lNum!=0)

{

chWord[i]='0'+lNum%10;/*转换为数字的ASCII码*/

i++;

lNum=lNum/10;

}

/*字符串最后一位加'\0'*/

chWord[i]='\0';

/*将字符串逆序*/

for(j=0;j<i/2;j++)

{

chTemp=chWord[j];

chWord[j]=chWord[i-1-j];

chWord[i-1-j]=chTemp;

}

}

main()

{

/* lNum是输入的整数,chWord是转换后的字符串*/

long lNum;

char chWord[50];

/*输入一个整数*/

printf("\nPlease input a integer:\n");

scanf("%ld",&lNum);

/*调用函数进行处理*/

long2string(lNum,chWord);

/*打印输出结果*/

printf("The outputed string=%s",chWord);

}

分析

运行结果为:

Please input a integer:

1972

The outputed string=1972

函数long2string也可以使用递归函数实现,下面是使用递归和指针的一个例子(main函数可以不做改动):

void long2string(long lNum,char *pszWord)

{

/*如果lNum等于0,不用继续递归*/

if(lNum==0)

{

/*字符数组的第一个单元是字符串结束符,后续的过程

要根据它添加整数的位*/

*pszWord='\0';

return;

}

/*先递归处理lNum前面的位*/

long2string(lNum/10,pszWord);

/*再将lNum的最后一位添加到字符串后*/

while(*pszWord) pszWord++;

*pszWord++='0'+lNum%10;

*pszWord='\0'; /*不要忘记处理字符串结束符*/

}

输出第二个整数篇三
《复习题二》

第三章 类与对象

7.编写一个程序:给定一个正整数,判断它是否为素数,并输出判断结果。 public class J_Prime

{

int number; //成员变量

public J_Prime(int n) //构造方法

{ number=n;}

public boolean isPrime()

{

boolean flag=true;

int i;

for(i=2;i<number;i++)

{

if(number%i==0)

{

flag=false;

break;

}

}

return flag;

}

public int getNumber(){

return number;

}

public static void main(String[] args)

{

J_Prime isp1=new J_Prime(11); //第一个实例对象

J_Prime isp2=new J_Prime(12); //第二个实例对象

boolean b;

b=isp1.isPrime(); //判别11是否为素数

if(b==true)

System.out.println(isp1.getNumber()+" is a prime!");

else

System.out.println(isp1.getNumber()+" is not a prime!");

b=isp2.isPrime(); //判别12是否为素数

if(b==true)

System.out.println(isp2.getNumber()+" is a prime!");

else

System.out.println(isp2.getNumber()+" is not a prime!");

}

}

6. 编写一个程序:给定一个整数,在控制台窗口中分别输出这个整数的补码形式的二进制数、八进制数和十六进制数。

第四章 数组与字符串

6. 调用类java.lang.Math的成员方法“public static double random()”,设法生成10个互不相同的从‘a’到‘z’的字母,然后对这10个字母按从小到大的方式排序。输出排序前的字母序列和排序后的字母序列。

import java.util.Arrays;

public class Chapter4_6 {

char c[]=new char[10];

public Chapter4_6() {

int i=0;

int j;

while(i<10) {

c[i]=(char)(Math.random()*26+97);

for (j=0;j<=i-1;j++ ) {

if(c[j]==c[i]) break;

}

if(j>i-1) i=i+1;

}

System.out.println("排序前的10个字符为:");

for(i=0;i<10;i++)

System.out.print(c[i]+" ");

System.out.println( );

Arrays.sort(c);

System.out.println("排序后的10个字符为:");

for(i=0;i<10;i++)

System.out.print(c[i]+" ");

System.out.println( );

}

public static void main(String[] args) {

new Chapter4_6();

}

}

魔方阵:每一行、每一列和对角线之和均相等的方阵。

(1)将数值1放在第一行中间的位置。

(2)从2开始到N*N为止,按照下列规则放置每个数值:

如果上一个数值的右上方为空(数组元素为0表示该位置为

空),则当前数值放在上一个数值的右上方;否则放在上一个数值

的正下方。

3阶魔方阵

5阶魔方阵的放置方法

试编程实现5阶魔方阵。

public class MagicMatrix

{

public static int N=5;

public static void main(String[] args)

{

int[][] m=new int[N][N];

int i,j,number;

i=0;

j=N/2;

m[i][j]=1;

for(number=2;number<=N*N;number++)

{

if(m[(i-1+N)%N][(j+1)%N]==0)

{

i=(i-1+N)%N;

j=(j+1+N)%N;

}

else

{

i=(i+1)%N;

}

m[i][j]=number;

}

for(i=0;i<m.length;i++)

{

for(j=0;j<m[i].length;j++)

{

System.out.printf("%4d",m[i][j]);

}

System.out.println();

}

}

}

向量类Vector的使用

创建向量类对象vc1,向里面添加String类型的元素;创建向量类对象vc2,向里面添加Integer类型的元素;创建向量类对象vc3,向里面添加各种不同类型的元素;分别输出vc1、vc2、vc3的内容。

问题:向量可以包含重复元素吗?(可以)

import java.util.Date;

import java.util.Vector;

public class TestVector{

public static void main(String[] args) {

Vector<String> vc1 = new Vector<String>();

vc1.add("one");

vc1.add("two");

vc1.add("three");

System.out.println("vc1的元素为:"+vc1);

Vector<Integer> vc2 = new Vector<Integer>();

vc2.add(1);

vc2.add(2);

vc2.add(3);

System.out.println("vc2的元素为:"+vc2);

Vector vc3 = new Vector();

vc3.add("one");

vc3.add("two");

vc3.add("three");

vc3.add(1);

vc3.add(2);

vc3.add(3);

System.out.println("vc3的元素为:"+vc3);

}

}

第七章 文件与数据流

3. 个程序。在控制台窗口中提示输入数,然后接收这两个整数,并输出它们的和。下面是运行过程的示例:

请输入第一个整数:45

请输入第二个整数:23

计算结果:45+23=68

方法一:用BufferedReader实现

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Ex_Chapter7_3

{

public static void main(String[] args)

{

输出第二个整数篇四
《ACM简单例题》

鸡兔同笼查看文章 C程序设计基础-鸡兔同笼2009-10-26 18:12问题描述一个笼子里面关了鸡和兔子(鸡有 2 只脚,兔子有 4 只脚,没有例外)。已经知道了笼子里面脚的总数 a,问笼子里面至少有多少只动物,至多有多少只动物输入第 1 行是测试数据的组数 n,后面跟着 n 行输入。每组测试数据占 1 行,包括一个正整数 a (a < 32768)。输出n 行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出 2 个 0。输入样例2320输出样例0 05 10源代码:#include <stdio.h>void main( ){int n, i, nFeet; scanf("%d", &n);for(i = 0; i < n; i++){scanf("%d", &nFeet);if(nFeet %2 != 0) printf("0 0\n");else if (nFeet%4 != 0) printf("%d %d\n", nFeet / 4 + 1, nFeet / 2);else printf("%d %d\n", nFeet / 4, nFeet / 2);}}查看文章 C程序设计基础-评委会打分2009-10-30 19:18问题描述青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。输入输入数据有多组,每组占一行,每行的第一个数是n(2<n<100),表示评委的人数,然后是n个评委的打分。输出对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。输入样例3 99 98 974 100 99 98 97输出样例98.0098.50源代码正确版本:#include <stdio.h>void main(){int n,i;float sum,ave,m,max,min;while((scanf("%d",&n))!=EOF){scanf("%f",&m);max=min=sum=m;for (i=1;i<n;i++){scanf("%f",&m);sum=sum+m;if (m>max){max=m;}else if (m<min) {min=m;}}ave=(sum-max-min)/(n-2);printf("%1.2f\n",ave);}}错误版本:#include <stdio.h>void main(){int n,i;float sum,ave,m,max,min;while((scanf("%d",&n))!=EOF){scanf("%f",&m);max=min=sum=m;for (i=1;i<n;i++){scanf("%f",&m);sum=sum+m;if (m>max){max=m;}else {min=m;}}ave=(sum-max-min)/(n-2);printf("%1.2f\n",ave);}}这是我第一次做该题时犯下的错误。该段程序中的if,else语句块存在逻辑错误,没有想清楚m值与最大值、最小值如何进行比较,就匆忙写代码。查看文章 C程序设计基础-多项式求和2009-10-30 19:24问题描述多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...现在请你求出该多项式的前n项的和。输入输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<100

0),求该多项式的前n项的和。输出对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。输入样例21 2输出样例1.000.50源代码正确版本:01.#include <stdio.h>02.main()03.{04.int m,n,i,j,k;05.double s;06.scanf("%d",&m);07.for (i=1;i<=m;i++)08. {09. scanf("%d",&n);10. s=0;11. for (j=1;j<=n;j++)12. { k=1;13. if (j%2==0)14. {15. k=(-1);16. }17. 18. 19. s=s+k*(1.00/j);20. 21. }22. printf("%.2lf\n",s);23. }24.}错误版本:01.#include <stdio.h>02.main()03.{04.int m,n,i,j;05.double s;06.scanf("%d",&m);07.for (i=1;i<=m;i++)08. {09. scanf("%d",&n);10. s=0;11. for (j=1;j<=n;j++)12. { 13. if (j%2==0)14. {15. j=(-1)*j;16. }17. 18. 19. s=s+(1.00/j);20. 21. }22. printf("%.2lf\n",s);23. }24.}该段代码中的if语句块存在逻辑错误。由于没有考虑到j被赋值后再递增会破坏整个循环,使得程序出错。此时,应当引入一个新的变量来解决该问题。查看文章 C程序设计基础-合法标识符2009-10-30 21:22问题描述输入一个字符串,判断其是否是C的合法标识符。输入输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。输出对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。输入样例312ajffi8x_aff ai_2输出样例noyesno源代码正确版本:#include <stdio.h>void main(){int n,i,j,flag1,flag2,flag3;char c;scanf("%d",&n);getchar();for (i=1;i<=n;i++){flag1=flag2=flag3=0;j=0;while ((c=getchar())!='\n'){j++;if (j==1){if (c>='a'&&c<='z'||c=='_')flag1=1;}else{if (c>='a'&&c<='z'||c>='A'&&c<='Z'||c=='_'||c>='1'&&c<='9')flag2=1;elseflag3=1;}}if (flag1==1&&flag2==1&&flag3==0)printf("yes\n");elseprintf("no\n");}}错误版本:#include <stdio.h>void main(){int n,i,j,var;char c;scanf("%d",&n);getchar();for (i=1;i<=n;i++){j=0;c=getchar();while((c=getchar())!='\n'){j++;if (j==1){if (c>='a'&&c<='z'||c=='_'){var=1;}else{var=0;break;}}else{if (c>='a'&&c<='z'||c=='_'||c>='0'&&c<='9'){printf("果然执行了这一语句块!\n ");var=1;}else{var=0;break;}}}if (var==0){printf("no\n");}else{printf("yes\n");} }}该段程序中错误地使用了break,导致break后面的else语句块也被执行。对于此类题目,还是应当使用条件变量。这题中,隐含的第三个条件变量flag3比较难想到,这是一个思维

缺陷。查看文章 C程序设计基础-小明A+B2009-11-02 21:00问题描述小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算.对于大于等于100的整数, 小明仅保留该数的最后两位进行计算, 如果计算结果大于等于100, 那么小明也仅保留计算结果的最后两位.例如, 对于小明来说:1) 1234和34是相等的2) 35+80=15给定非负整数A和B, 你的任务是代表小明计算出A+B的值.输入输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. 每组测试数据包含两个非负整数A和B(A和B均在int型可表示的范围内).输出对于每组测试数据, 输出小明A+B的结果.输入样例235 8015 1152输出样例1567源代码01.#include <stdio.h>02.void main()03.{04.int T,i,j,A,B,sum,temp;05.scanf("%d",&T);06.getchar();07.for(i=1;i<=T;i++)08.{09.sum=0;10.scanf("%d %d",&A,&B);11.sum=A+B;12.for(j=1;sum>=100;j++)13.{14.sum=sum-100;15.}16.printf("%d\n",sum);17.}18.} 查看文章 C程序设计基础-MAX,NUM2009-11-02 20:37问题描述There are some students in a class, Can you help teacher find the highest student .输入here are some cases. The first line contains an integer t, indicate the cases; Each case have an integer n ( 1 ≤ n ≤ 100 ) , followed n students’ height.输出For each case output the highest height, the height to two decimal plases;输入样例23 170.00 165.00 180.004 165.00 182.00 172.00 160.00输出样例180.00182.00源代码#include <stdio.h>void main(){int t,n,i,j;float height,max;scanf("%d",&n);getchar();for(i=1;i<=n;i++){scanf("%d",&t);scanf("%f",&height);max=height;for(j=1;j<t;j++){scanf("%f",&height);if(height>max){max=height;}}printf("%.2f\n",max);}} 查看文章 C程序设计基础-单词数2009-11-02 20:24问题描述小鱼最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里单词的总数。下面你的任务是帮助小鱼解决这个问题。输入有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由字母和空格组成,没有标点符号,遇到#时表示输入结束。每行的开头是字母或者是#,单词之间用若干个空格分开。输出每组只输出一个整数,其单独成行,该整数代表一篇文章里单词的总数。输入样例you are my friend#输出样例4源代码#include <stdio.h>void main(){char c;int sum,word;while ((c=getchar())!='#'){sum=word=0;while ((c=getchar())!='\n'){if (c==' ') word=0;else if (word==0) {word=1;sum++;}}printf("%d\n",sum);}}该题难点在于利用变量word来使得第一个单词自动加一。C程

序设计基础-开关灯2009-11-02 19:13问题描述有n只灯泡排成一条线,编号分别为1,2,...,n。初始状态灯泡都是不亮的。在这些灯泡上执行一系列的开关灯操作。这些操作的编号为1,2,3,.....,第i次操作把编号为i的倍数的灯泡的开关状态变换一下(亮的变成不亮,不亮的变成亮)。输入每个测试数据值为包含一个整数n ( 0< n<= 10^5)单独一行构成,由多个测试数据,输入有EOF结束。输出对每种情况,输出执行了无穷多次开光灯操作后第n只灯泡的状态。0表示灯不亮,1表示等亮。每个测试数据的输出单独一行。输入样例15输出样例10源代码#include <stdio.h>void main(){int n,i,j,light[100000];while((scanf("%d",&n))!=EOF){for (i=1;i<=n;i++){light[i]=0;}for (j=1;j<=n;j++){for (i=1;i<=n;i++){if (i%j==0){if (light[i]==0)light[i]=1;elselight[i]=0;}}}printf("%d\n",light[n]);}查看文章 C程序设计基础-亲和数2009-10-31 21:10问题描述古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为:1+2+4+5+10+11+20+22+44+55+110=284。而284的所有真约数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。你的任务就编写一个程序,判断给定的两个数是否是亲和数输入输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0 <= A,B <= 600000 ;输出对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。输入样例2220 284100 200输出样例YESNO源代码#include <stdio.h>void main(){int m,i,j,A,B,sum1,sum2;scanf("%d",&m);getchar();for (i=1;i<=m;i++){scanf("%d %d",&A,&B);sum1=sum2=0;for (j=1;j<A;j++){if (A%j==0){sum1=sum1+j;}}for (j=1;j<B;j++){if (B%j==0){sum2=sum2+j;}}if (sum1==B&&sum2==A){printf("YES\n");}else{printf("NO\n");}}}查看文章 C程序设计基础-统计字符数2009-10-31 20:19问题描述判断一个由 a-z 这 26 个字符组成的字符串中哪个字符出现的次数最多。输入第 1 行是测试数据的组数 n,每组测试数据占 1 行,是一个由 a-z 这 26 个字符组成的字符串,每组测试数据占一行,每行数据不超过 1000 个字符且非空。输出输出总共n 行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。 如果有多个字符出现的次数相同且最

多,那么输出 ascii 码最小的那一个字符。输入样例2abbcccadfadffasdf输出样例c 3f 4源代码#include <stdio.h>void main(){int n,i,j,num[26],max;char c,x;scanf("%d",&n);getchar();for (i=1;i<=n;i++){for (j=0;j<=25;j++) //初始化数组 {num[j]=0;}while ((c=getchar())!='\n') //统计字符 {j=c-'a';num[j]++;}max=num[0];x='a';for (j=1;j<=25;j++) //比较{if (max<num[j]){max=num[j];x='a'+j;}}printf("%c %d\n",x,max);}}该问题的难点在于利用数组进行统计并进行比较。查看文章 C程序设计基础-循环移动2009-12-16 20:56问题描述给定一组整数,要求利用数组把这组数保存起来,再利用指针实现对数组中的数循环移动。假定共有n个整数,则要使前面各数顺序向后移m个位置,并使最后m各数变为最前面的m各数。图 1:输入输入有两行:第一行包含一个正整数n和一个正整数m,第二行包含n个正整数。每两个正整数中间用一个空格分开。 输出输出有一行:经过循环移动后数组中整数的顺序依次输出,每两个整数之间用空格分隔。输入样例11 415 3 76 67 84 87 13 67 45 34 45输出样例67 45 34 45 15 3 76 67 84 87 13提示不要用先输出后m个数,再输出前n-m个数的方法实现,也不要用两个数组的方式实现。要求只用一个数组的方式实现,一定要保证在输出结果时,输出的顺序和数组中数的顺序是一致的。源代码#include <stdio.h>void Move(int num[1000],int n,int m){int i;for(i=n-1;i>=0;i--){num[i+m]=num[i];}for(i=0;i<m;i++){num[i]=num[n+i];}for(i=0;i<n;i++){if(i!=n-1)printf("%d ",num[i]);elseprintf("%d\n",num[i]);}}void main(){int n,m,i,num[1000];scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d",&num[i]);Move(num,n,m);}查看文章 C程序设计基础-指针 字符串比较2009-12-15 21:34问题描述编一程序,将两个字符串s1和s2比较,若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。两个字符串用gets函数读入。两个字符串的长度不超过1000。输出的正数或负数应是相比较的两个字符串相应字符的ASCII码的差值。如果两个字符串中有多个相应的字符不等,则取第一次相应不等的字符串的差值。例如,“A”与“C”相比,由于“A”<“C”,应输出负数,同时由于‘A’与‘C’的ASCII码差值为2,因此应输出“-2”。同理:“And”和“Aid”比较,根据第2个字符比较结果,“n”比“i”大5,因此应输出“5”。输入输入数据第一行包含一个数n,表示有n组测试数据。其中每组数据包括两行: 第一行是字符串s1,第二行是字符串s2。输出对于每组测

输出第二个整数篇五
《第4讲 数据的输入与输出》

输出第二个整数篇六
《从问题到程序--习题答案》

从问题到程序—高级语言程序设计 第二章

练习

1. 指出下面的哪些字符序列不是合法的标识符: _abc x+- 3x1 Xf_1__4 Eoof___ x__x__2 ____ I am 答:不合法的标示符有: a$#24 非法符号# x+- 非法符号#

3x1 不是以英文字母开头 I am 非法符号“空格” bg--1 非法符号-

2. 手工计算下列表达式的值: 1)125 + 0125 2)0XAF - 0XFA

3)24 * 3 / 5 + 6 4)36 + - (5 - 23) / 4 5)35 * 012 + 27 / 4 / 7 * (12 - 4)

答:1)210 2)-75 3)20 4)40 5)350

3. 在下面表达式的计算过程中,在什么地方将发生类型转换,各个转换是从什么类型转换 到什么类型,表达式计算的结果是什么? 1)3 * (2L + 4.5f) - 012 + 44

2)3 * (int)sqrt(34) - sin(6) * 5 + 0x2AF 3)cos(2.5f + 4) - 6 *27L + 1526 - 2.4L

答:1)53.5 2)703.397077 在此题中十六进制数会在计算中(编译时)自动转成十进制数 3)1362.59357

4. 写程序计算第3 题中各个表达式的值。 答:

#include<stdio.h> #include<math.h>

int main(){

printf("%f\n",3 * (2L + 4.5f) - 012 + 44);

printf("%f\n",3 * (int)sqrt(34) - sin(6) * 5 + 0x2AF); printf("%f\n",cos(2.5f + 4) - 6 *27L + 1526 - 2.4); system("pause"); return 0; }

5. 写程序计算下面各个表达式的值: 1) 2 34

1 257 .

+ 2) 1065

24*13

3) 23 582

7 96 3 67 .

. / . 4)

π2 +1 7)ln ln(10 1) 2π +

5)log5 2π −1 6)e π +1 7)arctan(log ( )) 3 e + π 8) 3.68

13−(2.24−0.242 )2 9)3 4 5

1 2

+ + / 10)ln(2π 13+ e )

6. 已知铁的比重是7.86,金的比重是19.3。写几个简单程序,分别计算出直径100 毫米和 150 毫米的铁球与金球的重量。 答:

#include<stdio.h>

double f1(double r){ double v,w;

v=4.0/3.0*r*r*r*3.1415926; w=7.86*v; return w; }

double f2(double r){ double v,w;

v=4.0/3.0*r*r*r*3.1415926; w=19.3*v; return w; }

int main(){

printf("铁球的重量为: %f,金球的重量为: %f\n",f1(0.1/2),f2(0.1/2.0)); printf("铁球的重量为: %f,金球的重量为: %f\n",f1(0.15/2),f2(0.15/2.0)); system("pause"); return 0; }

2

7. 写程序计算 5x + 2x + 6 的两个根,考虑用合适的方式输出。(提示:对这个具体问题,可以先人工计算

2

出判别式 b− 4ac 的值,以此作为已知信息,就可以写出程序

了。) 答:

#include <stdio.h> #include <math.h>

void f(double a,double b,double c){ double temp=b*b-4*a*c;

if(temp>0)

printf("方程的根为:%f,%f",(-b+sqrt(temp))/2/a,(-b-sqrt(temp))/2/a); else if(temp==0)

printf("方程有两个相同的根为:%f",-b/2/a); else

printf("方程无解!"); }

int main(){

f(5,2,6); //可以测试不同的数据 system("pause"); return 0; }

8. 在计算机上试验本章正文中的一些程序。对它们做一些修改,观察程序加工和运行的情 况,并对程序的行为做出解释。

9. 在一个能正确工作工作的输出整数结果的程序里,将printf 的相应转换描述改为 %f 或者 %ld,看看会出现什么问题。在一个能正确工作工作的输出双精度结果的程序里, 1、 将printf 的相应转换描述改为 %d 或者 %ld,看看会出现什么问题。

第三章

练习

1. 下面的字符序列中哪些不是合法的变量名: -abc __aa for pp.288 IBM/PC tihs

While r24_s25 __a__b a"bc _345 答:

-abc for pp.288 to be IBM/PC ms-c #micro m%ust While a"bc

2. 假设整型变量a 的值是1,b 的值是2,c 的值是3,在这种情况下分别执行下 面各个语句,写出执行对应语句后整型变量u 的值。 1) u = a ? b : c;

2) u = (a = 2) ? b + a : c + a; 答:

1)u=2 2)u=4

3. 假设整型变量a 的值是1,b 的值是2,c 的值是0,写出下面各个表达式的值。 1) a && !((b || c) && !a)

2) !(a && b) || c ? a || b : a && b && c 3) !(a + b < c) && b <= c * a – b 答:

1)1 2)0 3)0

4. 下面程序在执行时,哪些地方将发生类型转换?程序打印的值是什么?

int f (int n, float m) { return (m + n) / 4; }

int main () { float y = 3;

printf("%d\n", f(y, y + 1)); return 0; }

答:

{

}

}

5. 在计算机上试验本章正文中的一些程序。对它们做一些修改,观察程序加工和运行的情 况,并对程序的行为做出解释。 答案:略

6. 定义求圆球的体积、求圆球的表面积、求圆柱体的体积、求圆柱体的表面积的函数。 答:

#include<stdio.h> double f1(double r){

double v;

v=4.0/3.0*r*r*r*3.1415926; return v; }

double f2(double r){ double s;

s=4*r*r*3.1415926; return s; }

double f3(double r,double h){ double v;

v=r*r*3.1415926*h; return v; }

double f4(double r,double h){ double s;

s=2*3.1415926*r*h+2*3.1415926*r*r; return s; }

int main(){

printf("圆球的体积为%f\n",f1(0.15)); printf("圆球的面积为%f\n",f2(0.15));

printf("圆柱体的体积为%lf\n",f3(0.15,0.5)); printf("圆柱体的面积为%lf\n",f4(0.15,0.5)); system("pause"); return 0; }

7. 1)不用函数,直接写一个主程序计算并输出直径为100 毫米和150 毫米的金、银、铜、 铁、锡球的重量(以kg 为单位输出)。

2)重新完成上面程序,先定义一个带有两个参数的函数,它能求出直径为x 的比重为 y 的圆球的重量,而后在主程序里调用这个函数完成所需工作。将这样得到的解与不用 函数的解比较,比较它们的长度、容易出错的程度。假设现在要求修改所用圆周率的精 度,考虑用两种方式写程序的修改难度。

3)请写程序,求出边长为100 毫米和150 毫米的金、银、铜、铁、锡立方体的重量。 你可以利用前面的程序吗?是否很容易修改前面程序,完成这一计算?比较不用函数的 解法和使用函数的解法在易修改和重复使用方面的效用。

8. 定义函数:double tmax(double, double, double),它返回三个参数中最大的 一个。写一个主函数试验各种参数情况。 答:

#include<stdio.h>

double tmax(double x,double y,double z){ if(x>y)

return x>z?x:z; else

return y>z?y:z;

输出第二个整数篇七
《java经典编程题二及详细答案》

2.1 上机练习

 基本题

1) 编程观察如下输出语句:

System.out.println("hello test escape char");

在“escape”处换上各种转义字符测试输出效果。如何实现如下输出: Hello "test" Hello ‘\test’

2) 设有如下代码段,考虑赋值转换问题:

int a=234; byte b=a;

System.out.println("a=" a ",b=" b);

将a,b的类型以及数据进行各种替换,观察什么时候能赋值,什么时候需要使用强制转换,什么时候不能强制转换,什么时候强制转换会丢失数据。

3) 编写一个程序求半径R为10的圆的面积,结果保留2为有效小数。公式为:S=πR

注:π可用Math类的常量PI表示(即Math.PI)。保留小数请查阅DecimalFormat类

2

 提高题

1) 设有一个边长为30的等边三角形,三角形内有一个内切圆,计算除内切圆外三角形内其它部分的面积。

【提示】先算三角形面积,再计算圆的面积,其差即为结果。h是等边三角形的高,内切圆的半径r=h/3,面积s=πh�/9。

2) 调试分析以下程序的运行结果:

public class test {

public static void main(String a[]) { int m=10,n=517;

System.out.println(n % m); System.out.println(n / m); System.out.println(m >> 2);

System.out.println(m & n);

System.out.println(Integer.toBinaryString(m)); System.out.println(Integer.toBinaryString(m >> 2));

} }

注意:Integer.toBinaryString(int)用于将一个整数转化为二进制形式的数字串。在进行位运算时,注意观察二进制的数据变化规律。

2.2上机练习

 基本题

1) 从键盘输入4个学生的成绩,找出最高分和最低分。

【提示】引入两个变量分别存放最高分和最低分,根据比较改变这两个变量值。

2) 输入一个百分制分数,输出其对应的五分制成绩,包括:优、良、中、及格、不及格。

 提高题

1) 设有一元二次方程如下: aX bx c=0

试根据从键盘输入的a,b,c求解方程的根。

【提示】要考虑各种情形:一是a为0的情形,方程根为-c/b。还有就是根据判别式 Δ=b - 4ac进行判断,如果Δ.>0有两个实根;Δ=0,有一个实根;Δ<0,无实数解。

另外,求x的平方根可用Math.sqrt(x)方法。

2) 输入某人的应纳税所得额,计算个人所得税。税率表如下:

2

2

计算公式是:应纳个人所得税税额=应纳税所得额�适用税率-速算扣除数

例:王某当月应纳税所得额6400元。则应纳个人所得税税额=6400�20%-375=905元。

2.3.4 上机练习

 基本题

1)写一个程序输入一个整数n,输出相应三角形。例如:N=4,则三角形如下:

# ## ### ####

2) 计算算式: 1-1/2 1/3-1/4 1/5-„-1/100 3) 输出九九乘法表,格式如下: 1*1=1 1*1=2 1*3=3 „„ 2*1=1 2*2=2 2*3=3 „„ „„

9*1=1 9*2=18 9*3=27 „„

4) 编写一个程序,用于输出Fibonacci数列的前20项。 5) 编写一个程序,输出90度以内的各度的sin()函数值。

 提高题

1) 编写一个猜数的应用程序,用随机函数产生一个10到99的随机数。根据猜中使用的次数x计算得分。每次猜完给出是大于还是小于的提示。

注:得分计算办法:110-x*10 ;(其中,x为猜的次数) 2)找出1~100之间拥有除数最多的数。

【提示】在一定范围内找目标数,所以总体上是一个循环问题。对于每个被检测的数,要统计出其拥有除数的个数,这又是个循环问题,也就是在外循环内有内循环。为了求出拥有除数最多的哪个数,还涉及比较问题,所以要引入两个变量记下符合条件的这个数以及最多拥有的除数个数,在每次考察一个数的除数个数后要与最多者进行比较,从而决定是否要修改最多者。

3) 编写一个人与计算机对拿火柴的游戏程序。利用随机函数Math.random()产生火柴数量(20~50), 每次最多拿3根,拿到最后一根为胜者。

要求:游戏过程要显示火柴总数,选择谁先拿;每步要显示剩余火柴数量,以及计算机拿的数量,并提示用户输入拿多少;结束时显示谁是胜者。

【解题算法提示】

(1) 产生火柴总数(amount);

(2) 决定随先拿(whoplay:1--人, 2--计算机); (3) 定义一个变量保存剩余火柴数量(remain)=amount ; (4) 当remain>0 循环

4.1 根据whoplay的值决定是计算机拿x根还是提示人拿x根;计算机拿时最好带有智能,人拿时要限制输入数量。 4.2 修改 whoplay的值; 4.3 修改remain的值; (5) 根据whoplay的值决定胜者

4)某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析: A、B至少有一人作案; A、E、F三人中至少有两人参与作案; A、D不可能是同案犯; B、C或同时作案,或与本案无关; C、D中有且仅有一人作案;如果D没有参与作案,则E也不可能参与作案。 试编一程序,将作案人找出来。

2.4 上机练习

 基本题

1) 利用求n!的方法计算 2! 4! 5!的值。分别利用递归和非递归方法实现求n!。 2) 编写根据三条边求三角形面积的方法。利用该方法求以下两个三角形面积。

(1)三条边分别为:3,4,5 (2)三条边分别为:5.3, 6.2, 8

3)从命令行参数获取两个整数,找出两个整数之间的所有素数,每行输出3个数。

 提高题

1) 利用求素数的方法,就6~20之间的所有偶数验证歌德巴赫猜想: 任何一个大于6的偶数可以分解为两个素数之和。

2) 分别编写一个方法求两个整数的最大公约数和最小公倍数,输入两个整数,计算这两个整的最大公约数和最小公倍数。

2.5上机练习

 基本题

1)利用随机函数产生20个学生的英语成绩存入一个数组中。

 输出数组所有元素,每行输出3个数;  求最高分、最低分;  求平均成绩。

2) 产生Fibonacci数列的头20项存入一个一维数组中,按每行4个输出数组的元素。 3) 利用随机函数产生50~500之间的整数给一个6*6的矩阵赋值.

l 求第3行的元素之和; l 求第2列的最小元素; l 求主对角线上最大元素; l 求数组所有元素之和。

4)利用随机函数产生36个10~30之间的整数给一个6*6的矩阵赋值.

 求最大元素值,指出其在矩阵中的所有出现位置;  求该矩阵的转置矩阵。

5)利用数组元素间的关系输出含8行的杨辉三角形; 杨辉三角形特点:

(1)第1列元素为1,对角线元素为1;

(2)其他元素均为前一行的同一列位置元素和前一行的前一列元素之和。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1

 提高题

1)产生20个范围为0~50之间的不重复随机整数存入到一个数组中,将数组中元素按由小到大输出,并求数组所有元素的平均值。

【提示】每产生一个整数要跟前面已产生的数进行比较,如果已存在,则不算,要重新产生,可以用一个循环来控制产生一个新数,只有产生的数未出现过,才能出循环。

2)利用随机函数产生36个随机整数给一个6*6的二维数组赋值。求出所有鞍点,鞍点的条件是该元素在所在行是最大值,在所在列是最小值。

【提示】 先找出行上最大的元素,然后在判断该元素在所在的列上是否是最小的。

3)利用排序算法将一数组按由小到大排列,输入一个数据,查找在数组中是否存在,采用“折半查找”加快查找速度。

所谓“折半查找”就是先与中间位置元素进行比较,如果小于中间位置的元素,则在其上半部的中间位置继续查找,否则在下半部的中间位置查找,该过程反复进行,直到找到或发现不存在为止。

4) 构造一个n阶方阵,方阵的大小从键盘输入,方阵的最外一圈元素为1,以后往内依次为2,3,....n。例如:

1 1 1 1 1 1 2 2 2 1

输出第二个整数篇八
《第3章 数据的输入输出》

输出第二个整数篇九
《C_控制台输出方法详解》

C#控制台输出方法详解

C#控制台输出有两种方法:Write()和WriteLine(),它们都是命名空间System中Console类的方法,且都具有多达18种或以上的重载形式,能够直接输出C#提供的所有基本数据类型。其中,Write()方法输出一个或多个值后不换行,即其后没有新行符;而WriteLine()同样是输出一个或多个值,但输出完后换行,即其后有一个新行符。

为了控制输出内容或文本的输出格式,这两种方法提供了较丰富的格式控制方法。

1.基本的数据输出形式

基本数据类型的简单输出形式为:

Console.Write("格式串",参数表);

Console.WriteLine("格式串",参数表);

using System;

class Class1

{

static void Main(string[] args)

{

short shValue= 23;

int iValue= 7;

float fValue = 25.67f;

double dValue=11.23;

char cValue='f';

Console.Write("shValue={0} ",shValue);

Console.WriteLine(); //没有参数,则只输出一个换行

符,即光标移到下已行进行输出

Console.WriteLine("iValue={0},fValue={1}",iValue,fValue); Console.Write("dValue={0} ",dValue);

Console.WriteLine("cValue={0}",cValue);

}

}

程序中,{0}和{1}分别代表后面的参数,0为第一个参数,1为第二个,以此类推。

运行结果如下:

2.一般格式化输出

其形式为:

Console.WriteLine(“格式”,对象1,对象2);

如:

{0,-8} 输出第一个参数,且值占8个字符宽度,且为左对齐 {1,8} 输出第一个参数,且值占8个字符宽度,且为右对齐

{1:D7} 作为整数输出第二个参数,域宽为7,用0补齐

{0:E4} 输出以指数表示,且具有4位小数

如果我想显示一个分数格式的数字该怎么办呢?还提供了一些特殊格式化的输出形式:

3.特殊格式化形式

下面用一个例子来说明:

using System;

class Class1

{

static void Main( )

{

int iValue = 1025;

float fValue = 10.25f;

double dValue = 10.25;

Console.WriteLine("{0} {0:000000}",iValue); //填充0 Console.WriteLine("{0} {0:000000}\n",dValue);

Console.WriteLine("{0} {0:######}",iValue); //填充空占位符

Console.WriteLine("{0} {0:######}\n",dValue);

Console.WriteLine("{0} {0:#,####,#00}",iValue); //逗号分隔 Console.WriteLine("{0} {0:##,###,#00}\n",dValue);

Console.WriteLine("{0} {0:0%}",fValue); //百分号 Console.WriteLine("{0} {0:0%}",dValue);

}

}

运行结果如下:

4.日期与时间的格式化输出

本文来源:http://www.guakaob.com/zigeleikaoshi/132315.html

    上一篇:选择放弃的句子

    下一篇:金银财宝