c语言经典常用习题Word文档格式.docx
《c语言经典常用习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《c语言经典常用习题Word文档格式.docx(73页珍藏版)》请在冰豆网上搜索。
![c语言经典常用习题Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/25/54c0c76b-eace-47d3-b5fd-2a6c4e5346a8/54c0c76b-eace-47d3-b5fd-2a6c4e5346a81.gif)
m);
n=strlen(a);
if(m==0)
puts(a);
else
{
for(i=0;
i<
n;
i+=m)
{
if(a[i]=='
\0'
)
return0;
for(j=0;
j<
m;
++j)
{
if(a[i+j]=='
{
printf("
\n"
);
return0;
}
printf("
%c"
a[i+j]);
}
printf("
}
}
return0;
}
2.题目描述
输入一个长度不超过100的字符串,删除串中的重复字符。
输入要检查的字符串,长度不超过100个字符。
例如:
abacaeedabcdcd。
删除重复字符后的字符串。
abced。
saas
sa
#include<
intmain()
{
chara[100];
inti,j,m;
%s"
a);
for(i=0;
a[i]!
=0;
i++)
for(j=i+1;
a[j]!
j++)
if(a[i]==a[j])
{
for(m=j;
a[m]!
m++)
a[m]=a[m+1];
}
j--;
puts(a);
3.请编写C程序,输入5个不同的且为字符格式的学生编号,将其先由大到小排序,再将最大的学生编号和最小的学生编号互换位置,然后输出此时5位学生的编号。
输入5位学生的编号(只含数字字符、英文字母或空格)。
输出按题意要求排序后的5位学生的编号。
good1
tiger100
horse2011
mouse022
21century
用gets()函数输入字符串。
char*temp,*p[5];
charstr[5][50];
inti,j,c;
i<
5;
i++)
gets(str[i]);
p[i]=str[i];
for(i=0;
for(j=4;
j>
=i+1;
j--)
if((*p[j])>
(*p[j-1]))
temp=p[j];
p[j]=p[j-1];
p[j-1]=temp;
printf("
%s\n"
p[4]);
for(i=1;
4;
p[i]);
p[0]);
4.编程实现将字符串中最短的单词输出,在主函数中输入字符串,编写一个函数完成最短单词的查找,如果有多个相同长度单词,则只输出第一个最短单词。
假设单词之间用空格分隔(一个或多个空格),findshort(s1,s2)函数完成s1串是最短单词的查找,找到的最短单词存储于s2中。
一行字符串
最短单词
Happynewyear
new
#include<
inti,l;
intmin=0,p,q;
charstr[10000];
gets(str);
for(i=0;
str[i]!
='
;
i++)
if(str[i]!
'
)
q=i;
l=1;
while(str[++i]!
&
&
++l;
if(min==0||min>
l)
min=l;
p=q;
--i;
for(i=p;
++i)
printf("
str[i]);
5.输出任意的一个字符串内(字符串内可以包含空格)的所有整数。
输出时两整数间有四个空格。
输入一串字符
输出所有的整数
a00asd123e24
012324
inti;
a[i];
if(a[i]>
'
0'
a[i]<
='
9'
a[i]);
while(a[++i]>
a[i]);
"
elseif(a[i]=='
if(a[i+1]>
a[i+1]<
continue;
elseprintf("
0"
elsecontinue;
6.输入一字符串,对其按给定的条件进行排序,并输出。
排序条件为:
将字符串从中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。
如果字符串长度为奇数,则最中间的字符不参与处理。
例如,输入dcbahgfe,则输出hgfeabcd;
若输入432198765,则输出876591234。
输入一个字符串。
输出按题中条件排序后的字符串。
432198765
876591234
stdlib.h>
char*p,*q,ch;
p=newchar[100];
gets(p);
inti,j;
intn=strlen(p);
q=newchar[n];
if(n%2==0)
n/2-1;
j<
n/2;
if(p[i]>
p[j])
ch=p[i];
p[i]=p[j];
p[j]=ch;
ch=p[i];
p[i]=p[i+n/2];
p[i+n/2]=ch;
p[i]=p[i+n/2+1];
p[i+n/2+1]=ch;
p);
7.激动人心的时刻到了!
我们开发的记账软件即将在欧美地区发布,但我希望能把本土化工作做得更好。
所谓的本土化可不仅仅是把软件界面语言翻译成英语,还要根据当地的习俗来调整软件的使用方法。
比如我国在书写数字时,习惯根据“万位”用逗号将数字分隔,10001000写成1000,1000;
而欧美国家使用“千位”来分隔,10001000会写成10,001,000。
现在,请你帮我写一个程序:
将那些按“万位”来分隔的数字转换成按“千位”来分隔,让欧美的用户使用更加方便。
输入有多行,每一行包含一个以万位分隔的数字。
对应每组输入,输出以千位分隔的数字。
12,3456,7890
1000,1000
1,234,567,890
10,001,000
inti,a,b,j;
charP[100];
charq[100];
while(scanf("
P)==1)
a=strlen(P);
b=0;
j=0;
for(i=a-1;
i>
=0;
i--)
if(P[i]!
'
q[j++]=P[i];
b+=1;
if(b==3)
q[j++]='
if(j%4==0)j-=1;
for(i=j-1;
q[i]);
8.绝对素数是指本身是素数,其逆序数也是素数的数。
10321与12301是绝对素数。
编写一个程序,求出所有m~n(m≥11,n≤1000)之间的绝对素数。
程序要求实现两个自定义函数,prime(n)用于判断一个整数n是否是素数,是则返回1,否则返回0;
inv(n)用于对整数n进行逆序,函数返回逆序后的整数。
主函数通过调用上述两个自定义函数实现绝对素数的判断和输出。
mn
m~n之间的绝对素数,每个输出整数占5位,每行输出10个
111000
111317313771737997101
107113131149151157167179181191
199311313337347353359373383389
701709727733739743751757761769
787797907919929937941953967971
983991
intprime(intx)
for(i=2;
x;