c语言基础题目与代码.docx

上传人:b****7 文档编号:10407600 上传时间:2023-02-11 格式:DOCX 页数:17 大小:18.15KB
下载 相关 举报
c语言基础题目与代码.docx_第1页
第1页 / 共17页
c语言基础题目与代码.docx_第2页
第2页 / 共17页
c语言基础题目与代码.docx_第3页
第3页 / 共17页
c语言基础题目与代码.docx_第4页
第4页 / 共17页
c语言基础题目与代码.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

c语言基础题目与代码.docx

《c语言基础题目与代码.docx》由会员分享,可在线阅读,更多相关《c语言基础题目与代码.docx(17页珍藏版)》请在冰豆网上搜索。

c语言基础题目与代码.docx

c语言基础题目与代码

/*读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含1个测试用例,即给出自然数n的值。

这里保证n小于10100。

输出格式:

在一行内输出n的各位数字之和的每一位,拼音数字间有1空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yisanwu

*/

#include

voidshuchu(intx);

intmain(){

charn;

inta,b,s=0;

scanf("%c",&n);

while(n!

='\n')

{

s+=n-'0';

scanf("%c",&n);

}

shuchu(s);

return0;

}

voidshuchu(intx)

{

if(x<0)

{

printf("fu");

x=-x;

}

intmask=1;

intt=x;

while(t>9){

t/=10;

mask*=10;

}

do{

intd=x/mask;

switch(d)

{

case0:

printf("ling");break;

case1:

printf("yi");break;

case2:

printf("er");break;

case3:

printf("san");break;

case4:

printf("si");break;

case5:

printf("wu");break;

case6:

printf("liu");break;

case7:

printf("qi");break;

case8:

printf("ba");break;

case9:

printf("jiu");break;

}

if(mask>9)printf("");

x%=mask;

mask/=10;

}while(mask>0);

return;

}

/*

给定区间[-231,231]内的3个整数A、B和C,请判断A+B是否大于C。

输入格式:

输入第1行给出正整数T(<=10),是测试用例的个数。

随后给出T组测试用例,每组占一行,顺序给出A、B和C。

整数间以空格分隔。

输出格式:

对每组测试用例,在一行中输出“Case#X:

true”如果A+B>C,否则输出“Case#X:

false”,其中X是测试用例的编号(从1开始)。

输入样例:

4

123

234

214748364702147483646

0-2147483648-2147483647

输出样例:

Case#1:

false

Case#2:

true

Case#3:

true

Case#4:

false

*/

#include

intmain()

{

intt,i=1;

doublea,b,c;

scanf("%d",&t);

do

{

i++;

scanf("%lf%lf%lf",&a,&b,&c);

if((a+b)>c)

{

printf("Case#%d:

true\n",i-1);

}

else

{

printf("Case#%d:

false\n",i-1);

}

}while(i<=t);

return0;

}

/*

给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。

本题要求给定矩阵的全部局部极大值及其所在的位置。

输入格式:

输入在第1行中给出矩阵A的行数M和列数N(3<=M,N<=20);最后M行,每行给出A在该行的N个元素的值。

数字间以空格分隔。

输出格式:

每行按照“元素值行号列号”的格式输出一个局部极大值,其中行、列编号从1开始。

要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号递增输出。

若没有局部极大值,则输出“None总行数总列数”。

输入样例1:

45

11111

13931

15351

11111

输出样例1:

923

532

534

输入样例2:

35

11111

93991

15351

输出样例2:

None35

*/

#include

intmain()

{

intm,n,i,j,flag=0;

inta[20][20];

scanf("%d%d",&m,&n);

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=1;i

{

for(j=1;j

{

if((a[i][j]>a[i+1][j])&&(a[i][j]>a[i-1][j])&&(a[i][j]>a[i][j+1])&&(a[i][j]>a[i][j-1]))

{

flag=1;

printf("%d%d%d\n",a[i][j],i+1,j+1);

}

}

}

if(!

flag)

printf("None%d%d\n",m,n);

return0;

}

/*

给定数字0-9各若干个。

你可以以任意顺序排列这些数字,但必须全部使用。

目标是使得最后得到的数尽可能小(注意0不能做首位)。

例如:

给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。

现给定数字,请编写程序输出能够组成的最小的数。

输入格式:

每个输入包含1个测试用例。

每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。

整数间用一个空格分隔。

10个数字的总个数不超过50,且至少拥有1个非0的数字。

输出格式:

在一行中输出能够组成的最小的数。

输入样例:

2200030010

输出样例:

10015558

*/

#include

intmain()

{

inti,n,x,j;

inta[10];

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

{

scanf("%d",&a[i]);

}

/*输出第一个数*/

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

{

if(i!

=0&&a[i]!

=0)

{

printf("%d",i);

a[i]-=1;

break;

}

}

/*输出后面的数*/

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

{

while(a[i]!

=0)

{

printf("%d",i);

a[i]--;

}

}

return0;

}

/*

定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。

字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

HelloWorldHereICome

输出样例:

ComeIHereWorldHello

*/

#include

#include

intmain()

{

charstr[81];

charstr2[80][81];

char*p;

inti,count=0;

gets(str);

p=strtok(str,"");

while(p!

=NULL)

{

strcpy(str2[count],p);

p=strtok(NULL,"\n");

++count;

}

for(i=count-1;i>0;--i)

printf("%s",str2[i]);

printf("%s\n",str2[0]);

return0;

}

/*

输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。

输入格式:

输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

输出格式:

在一行中输出逆序后的字符串。

输入样例:

HelloWorld!

输出样例:

!

dlroWolleH

*/

#includeintmain()

{

chara[80];

inti=0;

while(a[i-1]!

='\n')

{

scanf("%c",&a[i]);

i++;

}

for(i=i-1;i>=0;i--)

{

if(a[i]=='\n')

continue;

printf("%c",a[i]);

}

return0;

}

/*

令Pi表示第i个素数。

现任给两个正整数M<=N<=104,请输出PM到PN的所有素数。

输入格式:

输入在一行中给出M和N,其间以空格分隔。

输出格式:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入样例:

527

输出样例:

11131719232931374143

47535961677173798389

97101103

*/

#include

intmain()

{

intx,j=1,s,m,n,count=0;

inta[10001];

scanf("%d%d",&m,&n);

for(x=2;x<=10000;x++){

inti;

intisPrime=1;//x是素数

for(i=2;i

if(x%i==0){

isPrime=0;

break;

}

}

if(isPrime==1){

a[j]=x;

j++;

}

}

for(s=m;s<=n;s++)

{

printf("%d",a[s]);

count++;

if(s!

=n&&(count%10!

=0))

printf("");

if(count%10==0)

{

printf("\n");

}

}

return0;

}

/*输入一个字符串S,再输入一个字符c,要求在字符串S中查找字符c。

如果找不到则输出“Notfound”;若找到则输出字符串S中从c开始的所有字符。

输入格式:

输入在第1行中给出一个不超过80个字符长度的、以回车结束的非空字符串;在第2行中给出一个字符。

输出格式:

在一行中按照题目要求输出结果。

输入样例1:

Itisablackbox

b

输出样例1:

blackbox

输入样例2:

Itisablackbox

B

输出样例2:

Notfound

提交代码*/

#include

XX文库-让每个人平等地提升自我#include

intmain()

{

charstr[81]="";

charch;

char*p;

gets(str);

scanf("%c",&ch);

p=strchr(str,ch);

if(p!

=NULL)

{

printf("%s",p);

}

else

printf("Notfound");

return0;

}

/*输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。

输入格式:

输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。

输出格式:

在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。

输入样例:

Tomcatisamaleccatat

cat

输出样例:

Tomisamale

提交代码*/

#include

#include

intmain()

{

charstr[81];

charch[80];

char*p;

gets(str);

gets(ch);

while(strstr(str,ch))

{

p=strstr(str,ch);//把p指向str中的ch位置,得到ch开始的一串字符

p[0]='\0';//把第一个字符单词改为'\0'

strcat(str,p+strlen(ch));//把去掉ch长度后的单词前移

}

printf("%s",str);

return0;

}

/*输入一个字符串和一个非负整数N,要求将字符串循环左移N次。

输入格式:

输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。

输出格式:

在一行中输出循环左移N次后的字符串。

输入样例:

HelloWorld!

2

输出样例:

lloWorld!

He

提交代码*/

#include

#include

intmain()

{

intn,m;

charstr1[100];

charstr2[100];

gets(str1);

scanf("%d",&n);

char*p=str1;

p=p+n;

for(m=0;m

{

str2[m]=str1[m];

}

p=strcat(p,str2);

printf("%s",*p);

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1