当前位置: 代码迷 >> C语言 >> [求助]C语言两题考试题目 十万火急
  详细解决方案

[求助]C语言两题考试题目 十万火急

热度:575   发布时间:2007-06-21 12:29:01.0
[求助]C语言两题考试题目 十万火急

第一题
输入一个不多于5位的正整数m,及位数k,输出mk(从低位到高位)上的数值。若m没有第k位,则输出0

例: 输入 13572,输出5;输入13575,输出0
第二题

输入一行字符,将其中的字母循环左移四位,数字加二再模十{(a+2)%10},空格删除,其它符号不变。先将结果保存在数组中,再输出到屏幕上。

例:输入:9527In God We Trust

输出:1749Ej CkzWaPnqop

输入:XXXX”Glmre!” XXXX表示学号后四位)

输出:ZZZZ:”China!”

搜索更多相关的解决方案: C语言  考试  

----------------解决方案--------------------------------------------------------
第一题
#include<stdio.h>
main()
{int num,x,i,k,z,temp;
printf("Please input an integer:");
scanf("%d",&num);
temp=num;
printf("请输入第N位数");
scanf("%d",&x);
for(i=1;num!=0;i++)
num/=10;
if(x>i) printf("0");
else {for(k=1;k<x;k++)
temp/=10;
z=temp%10;
printf("%d",z);
}
}
----------------解决方案--------------------------------------------------------
回复:(zhao9302)第一题#includemai...
谢谢 下面那题呢?我觉得特别难 是否用指针做?

----------------解决方案--------------------------------------------------------
不好意思啊 我也是初学者  我不会用指针哦  我试下普通的
----------------解决方案--------------------------------------------------------
9527 加二再模十 怎么成 1749了?
----------------解决方案--------------------------------------------------------
是每个数字+2再模10
----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include<string.h>
#include<ctype.h>

main()
{
char a[81]; int x,i,j,k;
clrscr();
a[81]=gets();
x=strlen(a);
for(i=0;i<x;i++)
{if(isalpha(a[i])) a[i]-=4;
if(isdigit(a[i])) a[i]=((a[i]+2)%10);
if(isspace(a[i])) printf(" \b");
else a[i]=a[i];
}
for(j=0;j<x;j++);
printf("%c ",a[j]);
}

我觉得后面没错 只是 a[81]=gets();报错 为啥啊 ???


----------------解决方案--------------------------------------------------------
是不是要减少字母?还是用ASII?
----------------解决方案--------------------------------------------------------

#include "stdio.h"
#include "ctype.h"
main()
{
char str[80],a[80]={0};
int i=1,j=0;

scanf("%c\0",&str[0]);
while(scanf("%c\0",&str[i])&&str[i++]!='\n');

i=0;

while(str[i]!='\n'){
if(isalpha(str[i])) a[j]=str[i]-4;
if(isdigit(str[i])) a[j]=((str[i]-48+2)%10)+48;

j++;

if(isspace(str[i])) j--;

i++;
}
printf("%s\n",a);
getch();
}


----------------解决方案--------------------------------------------------------

上边是第2题,觉得用不用指针无所谓,主要是输入时空格问题的处理。

[此贴子已经被作者于2007-6-21 15:01:36编辑过]


----------------解决方案--------------------------------------------------------