C语言复习资料 上机模拟题

更新时间:2024-03-19 10:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

40001 求1+1/2+1/3+……+1/n

读入1 个正整数 n(n<=50),计算并输出1+1/2+1/3+……+1/n (保留3位小数)。

例:运行2次程序 输入 2 输出 1.500 输入 10 输出 2.929

#include int main( ) { int i, n; float sum=0; scanf(\ for(i=1;i<=n;i++) sum+=1.0/i;

printf(\}

40002 求n!

读入1 个正整数 n (n<=50),计算并输出 n! 例:运行3次程序 括号内是说明 输入 1 输出 1 输入 10 输出 3628800 输入 5 输出 120

#include int main( ) { int i, n;

double fact=1; scanf(\

。 for(i=1;i<=n;i++) fact*=i;

printf(\}

40003 求x的n次幂

读入1 个正实数x和1个正整数 n(n<=50),计算并输出x的n次幂(保留2位小数)。

例:运行2次程序 括号内是说明 输入 1.5 2 输出 2.25 输入 2.0 10 输出 1024.00

#include int main( ) { int i, n;

double x, mypow=1;

scanf(\ for(i=1;i<=n;i++) mypow*=x;

printf(\}

40004 求1-1/2+1/3-1/4+……

读入1 个正整数 n(n<=100),计算并输出1-1/2+1/3-1/4+……的前n项和(保留3位小数)。

例:运行2次程序 括号内是说明 输入 10 输出 0.646 输入 3 输出 0.833

#include int main()

{ int i, n, flag=1;

float sum=0; scanf(\ for(i=1;i<=n;i++){ sum+=flag*1.0/i; flag=-flag; }

printf(\}

40005 求1+1/3+1/5+1/7+……

读入1 个正整数 n(n<=100),计算并输出1+1/3+1/5+1/7+……的前n项和(保留3位小数)。

例:运行2次程序 括号内是说明 输入 10 输出 2.133 输入 3 输出 1.533

#include int main( )

{ int i, n, temp=1; float sum=0; scanf(\ for(i=1;i<=n;i++){ sum=sum+1.0/temp; temp=temp+2; }

printf(\}

40006 求1-1/3+1/5-1/7+……

读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps(保留6位小数)。 例:运行2次程序 括号内是说明 输入 1E-4 输出

0.785348 输入 0.1

输出

0.834921

#include #include int main( )

{ int temp=1, flag=1;

double eps, item=1.0, sum=0; scanf(\ while(fabs(item)>=eps){ sum+=item;

item=flag*1.0/temp; flag=-flag; temp+=2; }

sum-=1;

printf(\}

40007 摄氏温度和华氏温度转换表

输入2个整数begin和end,分别代表摄氏温度的起止值,输出该范围内摄氏温度C和华氏温度F的转换表。 F = 32 + C * 9 / 5

输出语句:printf(\例:括号内是说明 输入 5 7 输出

Celsius Fahrenheit 5 41 6 42 7 44

#include int main( )

{ int begin, c, end, f;

scanf(\ printf(\ for(c=begin;c<=end;c++){ f=32+c*9/5;

printf(\ } }

40008 求奇数和

读入一批正整数(以零或负数为结束标志),求其中的奇数和。 例:运行2次程序 括号内是说明 输入

1 3 90 7 0 输出 11 输入

8 7 4 3 70 5 6 101 -1 输出 116

#include int main( )

{ int x, sum=0; scanf(\ while(x>0){

if(x%2!=0) sum+=x; scanf(\ }

printf(\}

40009 求最大值

输入一个正整数n, 再输入n个整数,输出最大值。 例:运行3次程序 括号内是说明 输入

4 2 123 -100 0 输出 123 输入

4 9 1 -1 8 输出 9 输入 3 1 3 5 输出 5

#include int main( )

{ int i , max, n, x; scanf(\ max=0;

for(i=1;i<=n;i++){ scanf(\ if(max

printf(\}

40010 求整数的位数以及各位数之和

输入一个整数,输出它的位数以及各位数之和。 例:运行4次程序 括号内是说明 输入 123456 输出

number=6, sum=21 (123456的位数是6, 各位数之和是21) 输入 -100 输出

number=3, sum=1 (-100的位数是3, 各位数之和是1) 输入 -1 输出

number=1, sum=1 (-1的位数是1, 各位数之和是1) 输入 99 输出

number=2, sum=18 (99的位数是2, 各位数之和是18)

#include int main( )

{ int number=0, sum=0; long in;

scanf(\ if(in<=0) in=-in; while(in!=0){ sum+=in; in=in/10; number++; }

printf(\}

40011 求2/1+3/2+5/3+8/5+...

输入一个正整数n,输出 2/1+3/2+5/3+8/5 +...的前n项之和,保留2位小数。(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)

例:运行3次程序 括号内是说明 输入 1 输出

2.00 (第1项是2.00) 输入 5 输出

8.39 (前5项的和是8.39) 输入 20 输出

32.66 (前20项的和是32.66)

#include int main( ) { int i,n;

float a=2,b=1,s=0,t; scanf(\ for(i=1;i<=n;i++){ s+=a/b; t=a; a=a+b; b=t; }

printf(\}

40012 求a+aa+aaa+aa…a

输入2个正整数a和n, 求a+aa+aaa+aa…a(n个a)之和。 例:运行2次程序 括号内是说明 输入

2 3 (a=2, n=3) 输出

246 (2+22+222) 输入

8 5 (a=8, n=5) 输出

98760 (8+88+888+8888+88888)

#include

void main() { int i,n;

long int a,sn=0, tn; scanf(\ while(n!=0){ tn=0;

for(i=1;i<=n;i++) tn=tn*10+a; sn+=tn; n--; }

printf(\}

40013 判断素数

输入一个正整数m,如果它是素数,输出\,否则,输出\(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 例:运行4次程序 括号内是说明 输入 1 输出

NO (1不是素数) 输入 2 输出

YES (2是素数) 输入 9 输出

NO (9不是素数) 输入 17 输出

YES (17是素数)

#include #include int main( )

{ int flag, i, m, n; scanf(\ if(m==1) flag=0;

if(m==2|| m==3) flag=1; n=sqrt(m);

for(i=2;i<=n;i++){

if(m%i==0){ flag=0;break;} flag=1; }

if(flag) printf(\ else printf(\}

40021 求1 + 1/2! +....+ 1/n!

输入1 个正整数n,计算 s 的前n项的和(保留 4 位小数)。 s = 1 + 1/2! +....+ 1/n! 例:运行2次程序 括号内是说明 输入:

2 (n=2) 输出: 1.5000 输入:

10 (n=10) 输出: 1.7183

#include \int main( ) { int i,j,n; float s=0,t; scanf(\ for(i=1;i<=n;i++){ t=1;

for(j=1;j<=i;j++) t*=j; s+=1.0/t; }

printf(\ }

40022 求各位数字的立方和等于它本身的数

输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有满足各位数字的立方和等于它本身的数。 输出语句:printf(\例:运行2次程序 括号内是说明 输入:

100 400 (m=100, n=400) 输出:

153 (1*1*1+5*5*5+3*3*3=153)

370 (3*3*3+7*7*7=370)

371 (3*3*3+7*7*7+1*1*1=371) 输入:

1 100 (m=1, n=100) 输出: 1

#include \int main( )

{ int i, digit, m, n, number, sum; scanf(\ for(i=m;i<=n;i++){ digit=i; sum=0;

while(digit!=0){ number=digit;

sum+=number*number*number; digit=digit/10; }

if(i==sum) printf(\ } }

40023 统计素数并求和

输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

例:运行3次程序 括号内是说明 输入:

1 10 (m=1, n=10) 输出:

count=4, sum=17 (1到10之间有4个素数:2,3,5,7) 输入:

20 35 (m=20, n=35) 输出:

count=3, sum=83 (20到35之间有3个素数:23, 29, 31) 输入:

14 16 (m=14, n=16) 输出:

count=0, sum=0 (14到16之间没有素数)

#include \#include \int main( )

{ int count=0, digit, i, j, k, m, n, sum=0; scanf(\ for(i=m;i<=n;i++){ if(i>1){ digit=i;

k=sqrt(digit); for(j=2;j<=k;j++)

if(digit%j==0) break;

if(j>k){ count++;sum+=digit;} } }

printf(\}

40032 输出一个整数的各位数字(选作)

输入一个整数,从高位开始逐位输出它的各位数字。 输出语句:printf(\例:运行3次程序 括号内是说明 输入 123456 输出

1 2 3 4 5 6 输入 -600 输出 6 0 0 输入 8 输出 8

#include int main( )

{ int i,digit=0,count=0; long in, temp, pow; scanf(\ if(in<0) in=-in; temp=in;

while(temp!=0){ temp=temp/10; count++; } }

40033 简单计算器(选作)

程序模拟简单运算器的工作:输入一个算式(没有空格),遇等号\说明输入结束,输出结果。

假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。 例:运行2次程序 括号内是说明 输入 15+2/3= 输出 5 输入

1+2*10-10/2= 输出 10

#include int main( )

{ int op1, op2, res=0; char operator; scanf(\

while((operator=getchar())!='='){ scanf(\ switch(operator){

case'+':res=op1+op2;break; case'-':res=op1-op2;break; case'*':res=op1*op2;break; case'/':res=op1/op2;break; }

op1=res; }

printf(\}

50001 求1 + 1/2! +....+ 1/n!

输入1 个正整数n,计算 s 的前n项的和(保留 4 位小数)。 s = 1 + 1/2! +....+ 1/n!

要求定义并调用函数fact(n)计算n的阶乘。 例:运行2次程序 括号内是说明 输入:

2 (n=2) 输出: 1.5000 输入:

10 (n=10)

输出: 1.7183

#include \int main( ) { int i,n; double s=0;

double fact(int n); scanf(\ for(i=1;i<=n;i++) s+=1.0/fact(i); printf(\}

double fact(int n) { int i,sum=1;

for(i=1;i<=n;i++) sum*=i; return sum; }

50002 求a+aa+aaa+aa…a

输入2个正整数a和n, 求a+aa+aaa+aa…a(n个a)之和。

要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如,fn(3,2)的返回值是33。

例:运行2次程序 括号内是说明 输入

2 3 (a=2, n=3) 输出

246 (2+22+222) 输入

8 5 (a=8, n=5) 输出

98760 (8+88+888+8888+88888)

#include void main() { int i, n; long a, sn;

long fn(long a, int n); scanf(\ sn=0;

for(i=1;i<=n;i++) sn+=fn(a,i);

printf(\

}

long fn(long a,int n) { int i;

long temp,sum=0; while(n!=0){ temp=a;

for(i=1;i

return(sum); }

50003 统计一个整数中数字的个数

读入1 个整数,统计并输出该数中2的个数。

要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)的返回值是3。 例:运行3次程序 括号内是说明 输入: -21902 输出:

count=2 (-21902中有2个2) 输入: 2

输出:

count=1 (有1个2) 输入: 345543 输出:

count=0 (345543中没有2)

#include \int main( ) { int count; long in;

int countdigit(long number, int digit); scanf(\

count=countdigit(in,2); printf(\}

countdigit(long number,int digit) { int count=0;

if(number<0) number=-number;

while(number!=0){

if(number==digit) count++; number=number/10; }

return count; }

50004 判断素数

输入一个正整数n,如果它是素数,输出\,否则,输出\(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 例:运行4次程序 括号内是说明 输入 1 输出

NO (1不是素数) 输入 2 输出

YES (2是素数) 输入 9 输出

NO (9不是素数) 输入 17 输出

YES (17是素数)

#include #include int main( ) { int flag,n;

int prime(int m); scanf(\ flag=prime(n);

if(flag) printf(\ else printf(\}

int prime(int n) { int i; if(n>1){

for(i=2;i<=sqrt(n);i++) if(n%i==0) return 0;

return 1; }

else return 0; }

50005 统计素数并求和

输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

要求定义并调用函数prime(m)判断m是否为素数。 例:运行3次程序 括号内是说明 输入:

1 10 (m=1, n=10) 输出:

count=4, sum=17 (1到10之间有4个素数:2,3,5,7) 输入:

20 35 (m=20, n=35) 输出:

count=3, sum=83 (20到35之间有3个素数:23, 29, 31) 输入:

14 16 (m=14, n=16) 输出:

count=0, sum=0 (14到16之间没有素数)

#include \#include \int main( )

{ int count=0, i, m, n, sum=0; int prime(int m);

scanf(\ for(i=m;i<=n;i++)

if(prime(i)){ count++;sum+=i;}

printf(\}

int prime(int m) { int i; if(m>1){

for(i=2;i<=sqrt(m);i++) if(m%i==0) return 0; return 1; }

else return 0; }

50006 输出 Fibonacci 序列

输入2 个正整数m和n(1<=m,n<=10000),输出m 和n之间所有的Fibonacci数。 Fibonacci 序列(第1项起):1 1 2 3 5 8 13 21 ...... 要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如,fib(7)的返回值是13。

输出语句:printf(\

例:运行3次程序 括号内是说明 输入:

1 10 (m=1, n=10) 输出:

1 1 2 3 5 8 (1到10之间的Fibonacci数) 输入:

20 100 (m=20, n=100) 输出:

21 34 55 89 (20到100之间的Fibonacci数) 输入:

1000 6000 (m=1000, n=6000) 输出:

1597 2584 4181 (1000到6000之间的Fibonacci数)

#include \#include \int main( ) { int i, m, n; long f;

long fib(int n);

scanf(\ for(i=1;fib(i)<=n;i++){ f=fib(i);

if(f>=m&&f<=n) printf(\ }

printf(\}

long fib(int n) { int a=1,b=1,i,t;

if(n==1||n==2) return 1; for(i=1;i

return t; }

50007 求完数

输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有完数(完数就是因子和与它本身相等的数)。

要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,digitsum(12)的返回值是16(1+2+3+4+6)。 输出语句:printf(\例:运行2次程序 括号内是说明 输入:

20 500 (m=100, n=400) 输出: 28 496 输入:

1 100 (m=1, n=100) 输出: 1 6 28

#include \int main( ) { int i, m, n;

int factorsum(int number); scanf(\ for(i=m;i<=n;i++)

if(i==factorsum(i)) printf(\ printf(\}

int factorsum(int number) {

int i,sum=0;

if(number==1) return 1; for(i=1;i<=number/2;i++) if(number%i==0) sum+=i; return sum; }

50008 求各位数字的立方和等于它本身的数

输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有满足各位数字的立方和等于它本身的数。

要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。

输出语句:printf(\例:运行2次程序 括号内是说明 输入:

100 400 (m=100, n=400)

输出:

153 370 371 (1*1*1+5*5*5+3*3*3=153; 3*3*3+7*7*7=370; 3*3*3+7*7*7+1*1*1=371) 输入:

1 100 (m=1, n=100) 输出: 1

#include \int main( ) { int i, m, n;

int is(int number); scanf(\ for(i=m;i<=n;i++)

if(is(i)) printf(\ printf(\}

int is(int number) { int t,sum=0,temp; t=number; while(t!=0){ temp=t;

sum+=temp*temp*temp; t=t/10; }

if(sum==number) return 1; else return 0; }

50009 将一个整数逆序输出 输入一个整数,将它逆序输出。

要求定义并调用函数reverse(number),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。 例:运行4次程序 括号内是说明 输入 123456 输出 654321 输入 -100 输出 -1 输入 -2

输出 -2 输入 99 输出 99

#include int main( )

{ long in, res;

long reverse(long number); scanf(\ res=reverse(in);

printf(\ }

long reverse(long number) { int i;

long sum=0;

while(number!=0){

sum=sum*10+number; number=number/10; }

return sum; }

50010 十进制转换二进制

输入1 个正整数n,将其转换为二进制后输出。

要求定义并调用函数 dectobin(n),它的功能是输出 n 的二进制。例如,调用dectobin(10),输出1010。 输出语句:printf(\

例:运行3次程序 括号内是说明 输入: 15 输出: 1111 输入: 100 输出: 1100100 输入: 0

输出: 0

#include \int main( ) { int i,n;

void dectobin(int n); scanf(\ dectobin(n); printf(\}

void dectobin(int n) { int i,j,s[80];

if(n==0) printf(\ for(i=0;n!=0;i++){ s[i]=n%2; n=n/2; }

for(j=i-1;j>=0;j--) printf(\}

60001 求平均值 输入一个正整数n (1

aver=-1.00 输入

5 12 2 5 4 0 输出

aver=4.60

#include int main( )

{ int i, n, sum=0; float aver; int a[10];

scanf(\ for(i=0; i

aver=sum/(float)n;

printf(\

}

60002 求最大值及其下标

输入一个正整数n (1

例:运行3次程序 括号内是说明 输入 3 1 6 4 输出

max=6,index=1 (最大值6的下标是1) 输入

3 10 8 1 输出

max=10,index=0 (最大值10的下标是0) 输入

5 1 2 5 4 0 输出

max=5,index=2 (最大值5的下标是2)

#include int main( )

{ int i, index=0, n; int a[10];

scanf(\ for(i=0; i

if(a[index]

printf(\}

60003 逆序输出

输入一个正整数n (1

4 10 8 1 2 输出

2 1 8 10 输入

5 1 2 5 4 0 输出

0 4 5 2 1

#include

void main( )

{ int i, n, temp; int a[10];

scanf(\ for(i=0; i

for(i=0; i

printf(\ printf(\}

60004 交换最小值和最大值

输入一个正整数n (1

5 4 3 5 1 2 输出

1 3 2 4 5 输入

4 1 5 6 7 输出 1 5 6 7 输入

5 5 4 3 2 1 输出

1 4 3 2 5

#include int main( )

{ int i, index=0, n, t; int a[10];

scanf(\ for(i=0; i

if(a[index]>a[i]) index=i; t=a[0];

a[0]=a[index];

a[index]=t; index=0;

for(i=1;i

if(a[index]

a[n-1]=a[index]; a[index]=t;

for(i=0; i

printf(\ printf(\}

60005 排序 输入一个正整数n (1

4 5 1 7 6 输出

7 6 5 1 输入 3 1 2 3 输出 3 2 1 输入

5 5 4 3 2 1 输出

5 4 3 2 1

#include int main( )

{ int i, index, k, n, temp; int a[10];

scanf(\ for(i=0; i

for(k=i+1;k

if(a[index]

for(i=0; i

printf(\ printf(\}

600011 矩阵运算

读入 1 个正整数 n(1≤n≤6), 再读入 n 阶方阵 a , 计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和.(副对角线为从矩阵的右上角至左下角的连线)

例:括号内是说明 输入: 4 (n=4) 2 3 4 1 5 6 1 1 7 1 8 1 1 1 1 1 输出:

sum=35 (2+3+4+5+6+7+8=35)

#include \int main( )

{ int a[6][6],i,j,n,sum=0; scanf(\ for (i=0;i

scanf(\ for(i=0;i

printf(\}

60012 加法口诀表

输入 1 个正整数 n(1≤n≤10), 输出一张 20 以内的加法口诀表. 加数与被加数都不大于 n, 分列第一行和第一列.(将加数、被加数、和放入一个二维数组中, 再输出该数组) 例:括号内是说明 输入:

3 (n=3)

输出:

+ 1 2 3 1 2

2 3 4

3 4 5 6

#include \int main( )

{ int i,j,n,a[10][10]; scanf(\ for(i=0;i<=n;i++) for(j=0;j<=n;j++) a[i][j]=i+j; for( i=0; i<=n; i++ ){ for( j=0; j<=n; j++ )

if(i==0&&j==0) printf( \

else if(i==0||j<=i) printf( \ printf(\ } } }

60013 判断上三角矩阵 输入1 个正整数 n (1≤n≤6)和n 阶方阵a中的元素,如果a是上三角矩阵, 输出\否则, 输出\。(上三角矩阵,即主对角线以下的元素都为0, 主对角线为从矩阵的左上角至右下角的连线) 例:运行2次程序 括号内是说明 输入:

3 1 2 3 0 4 5 0 0 6 (n=3) 输出: YES 输入:

2 1 0 -8 2 (n=2) 输出: NO

#include \#include \int main( )

{ int a[6][6],flag=1,i,j,n; scanf(\ for (i=0;i

for (j=0;j

scanf(\ for(i=1;i

60014 求矩阵每行元素之和 输入2 个正整数 m 和 n (1≤m, n≤6),然后输入该m 行 n 列矩阵a中的元素,分别求出各行元素之和, 并存入一维数组row中, 再输出row. 例:括号内是说明 输入:

3 2 (m=3, n=2) 6 3 1 -8 3 12 输出:

sum of row 0 is 9 sum of row 1 is -7 sum of row 2 is 15

#include \#include \int main( )

{ int flag,i,j,m,n,sum; int a[6][6], row[6]; scanf(\ for(i=0;i

scanf(\ for(i=0;i

for(j=0;j

for(i=0;i

printf(\}

60019 找鞍点(选作)

输入 1 个正整数 n(1≤n≤6)和n 阶方阵a中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标, 否则,输出\(设a最多有1个鞍点)。

例:运行2次程序 括号内是说明 输入:

4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9 (n=4) 输出: a[2][1]=6 输入:

2 1 7 4 1 (n=2) 输出: NO

#include \int main( )

{ int flag,i,j,k,row,col,n,a[6][6]; scanf(\ for(i=0; i

scanf(\ flag=0;

for(i=0;i

for(j=0;j

if(a[i][col]

if(a[k][col]

if(flag)

printf(\ else

printf(\}

60021 求字符串长度

输入一个字符串(字符串的长度不超过80),统计并输出该字符串的有效长度。 例:运行2次程序,括号内是说明 输入:

hello (输入字符串\输出:

5 (\的有效长度是5) 输入:

abc+12? (输入字符串\

输出:

7 (\的有效长度是7)

#include \#define MAXLEN 80 int main( )

{ int len,i=0;

char str[MAXLEN]; scanf(\ while(str[i]!='') i++; len=i;

printf(\}

60022 统计大写辅音字母

输入一个字符串(字符串的长度不超过80),统计并输出该字符串中大写辅音字母的个数(大写辅音字母:除'A','E','I','O','U'以外的大写字母)。 例:运行3次程序,括号内是说明 输入:

HELLO (输入字符串\输出:

3 (\中有3个大写辅音字母) 输入:

IT12 (输入字符串\输出:

1 (\中有1个大写辅音字母) 输入:

uieiaba (输入字符串\输出:

0 (\中没有大写辅音字母)

#include \#define MAXLEN 80 int main( )

{ int count=0,i; char str[MAXLEN]; scanf(\

for(i=0;str[i]!='';i++)

if(str[i]>'A'&&str[i]<='Z'&&str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U') count++;

printf(\

}

60024 字符串替换

输入一个字符串(字符串的长度不超过80),将该字符串中的大写字母用下面列出的对应大写字母替换, 其余字符不变, 输出替换后的字符串。 原字母 对应字母 A ──→ Z B ──→ Y C ──→ X D ──→ W …… X ──→ C Y ──→ B Z ──→ A

例:运行3次程序,括号内是说明 输入:

A-flag-of-USA (输入一个字符串\输出:

Z-flag-of-FHZ

输入:

IT12 (输入一个字符串\输出: RG12 输入:

oueiaba (输入一个字符串\输出: oueiaba

#include \#define MAXLEN 80 int main( ) { int i;

char str[MAXLEN]; scanf(\

for(i=0;str[i]!='';i++)

if(str[i]>='A'&&str[i]<='Z') str[i]=(char)('A'-str[i]+'Z'); printf(\ }

60025 十六进制转换十进制

输入一个字符串(字符串的长度不超过80),对该字符串做如下处理:滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。

例:运行3次程序,括号内是说明 输入:

10 (输入字符串\输出: 16 输入:

Pf4+1 (输入字符串\输出: 3905 输入:

-+A (输入字符串\输出: 10

#include \#define MAXLEN 80 int main( )

{ int i=0,k=0; long number=0;

char str[MAXLEN], num[MAXLEN]; scanf(\ while(str[i]!=''){

if((str[i]>='0'&&str[i]<='9')||(str[i]>='a'&&str[i]<='f')||(str[i]>='A'&&str[i]<='F')){

num[k]=str[i]; k++; } i++; }

num[k]='';

for(i=0;num[i]!='';i++){

if(num[i]>='0'&&num[i]<='9') number=number*16+(num[i]-'0'); if(num[i]>='a'&&num[i]<='z') number=number*16+(num[i]-'a'+10); if(num[i]>='A'&&num[i]<='Z') number=number*16+(num[i]-'A'+10); }

printf(\}

例:运行3次程序,括号内是说明 输入:

10 (输入字符串\输出: 16 输入:

Pf4+1 (输入字符串\输出: 3905 输入:

-+A (输入字符串\输出: 10

#include \#define MAXLEN 80 int main( )

{ int i=0,k=0; long number=0;

char str[MAXLEN], num[MAXLEN]; scanf(\ while(str[i]!=''){

if((str[i]>='0'&&str[i]<='9')||(str[i]>='a'&&str[i]<='f')||(str[i]>='A'&&str[i]<='F')){

num[k]=str[i]; k++; } i++; }

num[k]='';

for(i=0;num[i]!='';i++){

if(num[i]>='0'&&num[i]<='9') number=number*16+(num[i]-'0'); if(num[i]>='a'&&num[i]<='z') number=number*16+(num[i]-'a'+10); if(num[i]>='A'&&num[i]<='Z') number=number*16+(num[i]-'A'+10); }

printf(\}

本文来源:https://www.bwwdw.com/article/t4t8.html

Top