目录
C语言练习题专栏: C语言习题_繁星Starry的博客-CSDN博客
试题1
【题目描述】
提取一个字符串(少于80个字符)中的所有数字字符(‘0’...‘9’)并输出。
【输入】
一个字符串(少于80个字符),无空格。
【输出】
将字符串中的所有数字字符(‘0’...‘9’)提取组合成一个整数并输出。
【样例输入】
UPC1953
【样例输出】
1953
例如:
输入 | Result |
---|---|
Qingdao1903 | 1903 |
free82jeep5 | 825 |
000a0000aa0a0b0c00d | 0 |
2qing8dao60 | 2860 |
0a1b6c | 16 |
#include<stdio.h>
#define N 80
int main()
{
char a[N];
int i=0,j=0,b[N],num=0;
fgets(a,N-1,stdin);
while(a[i]!='\0')
{
if(a[i]>='0'&&a[i]<='9')
{
b[j]=a[i]-'0';
j++;
}
i++;
}
for(i=0;i<j;i++)
{
num=num*10+b[i];
}
printf("%d",num);
return 0;
}
试题2
【题目描述】
对字符数组c赋值小写字母’a’~’z’,然后输出c的数据。
【输入】
【输出】
abcdefghijklmnopqrstuvwxyz
#include<stdio.h>
int main()
{
char i,str[27];
for(i=0;i<26;i++)
{
str[i]=i+'a';
}
puts(str);
return 0;
}
试题3
【题目描述】
设计一个程序,将一个字符串(长度小于80)中的大写英文字母转换成对应的小写英文字母,而将小写英文字母转换成对应的大写英文字母,其余字符保持不变。
【输入】
一个字符串。
【输出】
转换后的字符串。
【样例输入】
upc 1953 bEIJING↙
【样例输出】
UPC 1953 Beijing
#include<stdio.h>
#define N 80
int main()
{
int i;
char str[N];
fgets(str,N,stdin);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='Z')
str[i]=str[i]+'a'-'A';
else if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]+'A'-'a';
}
puts(str);
return 0;
}
试题4
【题目描述】
从键盘输入一行文本,统计其中数字字符‘0’~‘9’出现的频率并输出。没出现的不需要输出。
【输入】
一行文本,长度不超过1000,注意:字符串含有空格。
【输出】
按照从0到9顺序输出统计结果。每个数字的信息占一行,如“0:2”表示数字字符0出现了2次。
【样例输入】
Qingdao2011↙
【样例输出】
0:1
1:2
2:1
#include<stdio.h>
#define M 10
#define N 1000
int main()
{
int i,j,num[M]={0};
char str[N];
fgets(str,N,stdin);
for(i=0;str[i]!='\0';i++)
{
for(j=0;j<=9;j++)
{
if(str[i]==j+'0')
num[j]++;
}
}
for(j=0;j<=9;j++)
{
if(num[j]!=0)
printf("%d:%d\n",j,num[j]);
}
return 0;
}
试题5
【题目描述】
输入两个字符串s1和s2 ,以及s1中任意一个字符ch。在s1中第一次出现指定字符ch的后面位置处插入字符串s2并输出。
【输入】
两个字符串s1和s2 ,以及s1中任意一个字符ch,其中字符串s1和s2的长度均不超过80。
【输出】
插入指定字符ch后的字符串s1。
【样例输入】
Chinaabc 1949 a↙
【样例输出】
China1949abc
例如:
输入 | Result |
---|---|
beijing NORTH i | beiNORTHjing |
China,abc 1949 , | China,1949abc |
#include<stdio.h>
#define N 80
int main()
{
int i,j,loc;
char s1[N],s2[N],ch;
scanf("%s %s %c",s1,s2,&ch);
for(i=0;s1[i]!='\0';i++)
{
if(s1[i]==ch)
{
loc=i+1;
break;
}
}
strcat(s2,s1+loc);
strcpy(s1+loc,s2);
puts(s1);;
return 0;
}
试题6
【题目描述】
输入一个字符串(不超过200)的,删除串中的重复字符。例如:输入的字符串为abacaeedabcdcd,删除重复字符串后为abced。
【输入】
一个长度不超过200个字符的字符串。
【输出】
删除重复字符后的字符串,保留原来的顺序。
【样例输入】
111122233344455577ok↙
【样例输出】
123457ok
#include<stdio.h>
#define N 200
int main()
{
int i,j,k;
char str[N];
fgets(str,N-1,stdin);
for(i=0;i<strlen(str);i++)
{
for(j=i+1;j<strlen(str);)
{
if(str[i]==str[j])
{
for(k=j;k<strlen(str);k++)
str[k]=str[k+1];
}
else
j++;
}
}
puts(str);
return 0;
}
本文就到这里啦,如有帮助,请多支持~