求C语言程序题要有答案的

如题所述

第1个回答  2009-08-09
http://tieba.baidu.com/f?kz=8618367

这是C语言贴里。我见到过的最好的题目贴了。楼主可以小看一下。
题目简单易懂,方法可实现性高。
在重点位置还有注释。
个人感觉相当好了
第2个回答  2009-08-09
去迅雷下载啊,南开一百题最经典的,有答案啊!
第3个回答  2009-08-09
好,我可以帮你看看,不过题在哪里?
第4个回答  2009-08-09
1、 编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后第三个字母代替该字母,若为其它字符时不变。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

void main()

{

char str[1024];

int i=0;

printf("请输入一串字符:");

scanf("%s",str);

while(str[i]!='\0')

{

if((str[i]>='a'&&str[i]<='w')||(str[i]>='A'&&str[i]<='W'))

str[i]+=3;

else if((str[i]>='x'&&str[i]<='z')||(str[i]>='X'&&str[i]<='Z'))

str[i]=str[i]-26+3;

i++;

}

printf("加密后的字符串为%s\n",str);

}

2、 编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

void main()

{

int inter;

int R;

char result[100];

int temp1,temp2;

int i;

int flag;

printf("请输入一个十进制整数:");

scanf("%d",&inter);

printf("请输入需要转换的进制数(2-16之间):");

scanf("%d",&R);

if(R<2||R>16)

{

printf("输入数据错误");

exit(0);

}

if(inter<0)

{

inter=-inter;

flag=1;

}

temp1=inter;

for(i=0;temp1!=0;i++)

{

temp2=temp1%R;

if(temp2>=10)

result[i]='A'+temp2-10;

else

result[i]='0'+temp2;

temp1=temp1/R;

}

if(flag==1)

printf("-");

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

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

printf("\n");

}

3、 从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

void main()

{

int money[9]={10000,5000,1000,500,200,100,10,5,1};

float temp;

int data;

int result[9];

int i;

printf("请输入一金额(精确到分):");

scanf("%f",&temp);

if(temp<0)

{

printf("输入金额小于0,错误");

exit(0);

}

data=temp*100;

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

{

result[i]=data/money[i];

data=data%money[i];

if(i==6)

printf("%d角%d张;",money[i]/10,result[i]);

else if(i>6)

printf("%d分%d张;",money[i],result[i]);

else

printf("%d元%d张;",money[i]/100,result[i]);

}

}

4、 随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main(void)

{

int i;

int inter[20];

int max,min,value,sum=0;

srand(time(0));

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

{

inter[i]=1+(int)(50.0*rand()/(RAND_MAX+10.0));

printf("%d ",inter[i]);

}

max=min=inter[0];

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

{

if(max<inter[i])

max=inter[i];

if(min>inter[i])

min=inter[i];

sum+=inter[i];

}

value=sum/20;

printf("最大值是%d,最小值是%d,平均值是%d,各元素之和是%d\n",max,min,value,sum);

}

5、 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main()

{

char str[]={"ASEEsdffw WEsdfe joiejorjerojeojr ASOJGWOEJIOJERJJ wejr"};

int len=0;

int temp;

int point;

int i=0;

while(str[i]!='\0')

{

temp=0;

while(str[i]!=' '&&str[i]!='\0')

{

temp++;

i++;

}

if(len<temp)

{

len=temp;

point=i-len;

}

if(str[i]=='\0')

break;

else

i++;

}

while(str[point]!=' '&&str[point]!='\0')

{

printf("%c",str[point]);

point++;

}

printf("\n");

}

6、 模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define N 100

void main()

{

int num[5]={0,0,0,0,0};

int temp;

int i,j;

char str[]={"ABCD0"};

srand(time(0));

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

{

temp=1+(int)(5.0*rand()/(RAND_MAX+1.0));

printf("%d ",temp);

switch(temp)

{

case 1:

num[0]++;

break;

case 2:

num[1]++;

break;

case 3:

num[2]++;

break;

case 4:

num[3]++;

break;

case 5:

num[4]++;

break;

}

}

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

{

for(j=i+1;j<5;j++)

{

if(num[i]<num[j])

{

temp=num[j];

num[j]=num[i];

num[i]=temp;

temp=str[i];

str[i]=str[j];

str[j]=temp;

}

}

printf("\n编号为%c,得票数为%d",str[i],num[i]);

}

}

7、任何一个自然数m的立方均可写成m个连续奇数之和。例如:

1^3=1

2^3=3+5

3^3=7+9+11

4^3=13+15+17+19

编程实现:输入一自然数n,求组成n3的n个连续奇数。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main()

{

int num;

int i;

int first;

int n;

printf("输入一个自然数:");

scanf("%d",&n);

if(n<0)

{

printf("输入数据有错误");

exit(0);

}

num=0;

for(i=1;i<n;i++)

num+=i;

first=num*2+1;

printf("组成%d的立方的%d个连续奇数为:",n,n);

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

printf("%d ",first+2*i);

}

8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main()

{

int a,b,c;

int temp;

for(a=1;a<10;a++)

{

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

for(c=1;c<10;c++)

if((temp=a*100+b*10+c+c*100+b*10+a)==1333)

printf("a=%d,b=%d,c=%d\n",a,b,c);

}

}

9、编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main()

{

char ch;

float a,b,result;

printf("请输入两个数和操作符(例如46+78):");

scanf("%f%c%f",&a,&ch,&b);

switch(ch)

{

case '+':result=a+b;break;

case '-':result=a-b;break;

case '*':result=a*b;break;

case '/':result=a/b;break;

default:printf("输入操作符错误");exit(0);

}

printf("运算结果为%.2f\n",result);

}

10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。

如输入:56439,输出:5位数

5,6,4,3,9

9,3,4,6,5

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <math.h>

void main()

{

int n=0;

int inter;

int ys;

int num[5];

int i;

printf("请输入一个5位以内的正整数:");

)scanf("%d",&inter);

if(inter<=0||inter>99999)

{

printf("输入错误");

exit(0);

}

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

{

if(inter/int(pow(10,4-i))!=0)

break;

}

n=5-i; //位数

printf("%d位数\n",n);

ys=inter; //余数

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

{

num[i]=ys/int(pow(10,n-i-1));

ys=ys%int(pow(10,n-i-1));

}

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

printf("%d ",num[i]);

printf("\n");

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

printf("%d ",num[i]);

}
LZ是要题呢吧。。。。本回答被提问者采纳

谁能提供点C语言的试题给我,最好能有答案的,非常感谢!
答案:include <stdio.h>#include <ctype.h> int main() {char c;while ((c = getchar()) != EOF) {putchar(tolower(c));}return 0;}4、编写一个程序,从标准输入中读取一个字符串,判断其中是否有重复的字符,并输出结果。答案:include <stdio.h>#include <stdbool.h> bool has_dup...

C语言入门题目,求详细易懂的解答过程。
答案为第一行:Tony。解答:for循环共循环2次,然后strcpy(a,b)比较两串字符大小,如果strcpy值大于0,则a大于b。具体的比较是看字符串的字母的ASCII码的大小,如果相同,再继续比较第二个,这个不赘述。主要看一下name[],对于一维数组来讲,它是元素,对于二维数组来讲,它不是具体的元素,而是代...

C语言题目,求大佬解答
答案B

c语言题目 求答案
因为 7*7+18*18 = 373,373 >100,所以:输出 373 \/ 100 的整数部分,所以答案为: 3

C语言程序分析题 大佬救救我?
答案:这2段程序不相等。第一段程序的输出结果:1 1 1、2 2 2、3 3 3、4 4 4;第二段程序的输出结果:1 1 1。分析:第一段程序使用for循环,每一次循环时,都对变量进行了初始赋值,即i=1,j=1,k=1。就是说,嵌套的内循环变量,如j,k都是从1开始的。而第二段程序使用while循环,...

C语言程序设计试题 求标准答案 都是多选
1、答案:A (单引号括起来的都是字符,而且一对单引号最多对应一个字符,\\反斜杠是转义字符的开始,\\72是ASCII码对应的字母H。也就是把H这个字母存到了变量char a中。就一个字符H。)2、ACDE 解析:int a=3,b=4,c=5;,A、a>b B、a<=b C、(a||b)>c D、a<=(b||c)E、!

C语言程序设计,求答案。万分感谢!
第一题的:include<stdio.h> int main(){ char c;scanf("%c",&c);if('a'<=c&&c<='z')printf("%c\\n",char(c-32));else if('A'<=c&&c<='Z')printf("%c\\n",char(c+32));else printf("what you input is not a letter! ");return 0;} 第二题的:include<stdio.h> ...

C语言题目,求详细解答。
答案是:x=5,y=4,a=1;过程:当x=3,y=6时 执行while(x(3)++!=(y=5))a+=1; (a=1);if(y<x) break; (因为y=5,x=4,所以不成立,因此不执行)注意:这时x因为(x++)所以,x=4;继续执行while(x++(4)!=(y=4))(因为上面y通过想减已经为5了,再减一,等4,与x...

一道c语言题,求解答,急!
x+=x-=x*x;等同于 x+=(x-=x*x);等同于 x+=(x-=36);等同于 x+=(x=x-36);等同于 x+=(x=-30);等同于 x+=(-30);等同于 x=x-30;x=-30-30=-60;答案是B。

c语言的一道题目 知道答案但是我不知道怎么运行的求大佬
int fun(int x, int y);int main(void){ printf("%d\\n", fun(60,70));return 0;} int fun(int x, int y){ if (x > y){ return fun(x - y, y);} else if (x < y){ return fun(x,y-x);} else { return x;} } \/\/像这种既不给分,又不给酬金的题也就只有我...

相似回答