C语言基础题目与代码.docx
- 文档编号:28316162
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:16
- 大小:18.08KB
C语言基础题目与代码.docx
《C语言基础题目与代码.docx》由会员分享,可在线阅读,更多相关《C语言基础题目与代码.docx(16页珍藏版)》请在冰豆网上搜索。
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 */ #include ='\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 #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; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 题目 代码