C语言的问题求高手解答

来源:百度知道 编辑:UC知道 时间:2024/06/07 10:57:02
1.两队乒乓球比赛,各出3人。甲队为A、B、C,乙队为X、Y、Z。抽签决定比 赛名单,已知A不和X比,C不和X、Z比。请编程找出对阵名单。
2.甲、乙、丙3个射手,命中率分别为0.7、0.6、0.5,按“甲-乙-丙-甲-乙-丙...”的顺序,相继射击同一目标,直至有人命中为止。试计算击中100次目标所需要的子弹数。
3.若已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0<=i<=9。
(1)数组元素引用不正确的是
A) a[p-a] B) *(&a[i]) C) p[i] D)*(*(a+i))
(2) 数组元素地址表示正确的是
A) &(A+1) B) a++ C)&p D)&p[i]
4.已定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*ptr)[3]=a,
*p=[0];则能正确表示数组元素a[1][2]的表达式是
A)*((*ptr+1)[2]) B) *(*(p+5)) C) (*ptr+1)+2 D) *(*(a+1)+2)
5.已定义:int c[4][5],(*cp)[5]=c;则对c数组元素引用正确的是
A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)
问题比较多,所以给出一道题答案再追加10分,后三道题最好能给出解释说明为什么;

这是第一题的答案

#include<stdio.h>

void main()
{
int a,b,c;
char s[3]={'x','y','z'};

for (a=1;a<4;a++)
for (b=1;b<4;b++)
for (c=1;c<4;c++)
if ((a!=1)&&(a+b+c==6)&&(a*b*c==6)&&(c!=1)&&(c!=3))
printf("A和%c比,B和%c比,C和%c比\n",a+87,b+87,c+87);
}

第一题
#include "stdio.h"
main()
{
char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!=j)
for(k='x';k<='z';k++)
{
if(i!=k&&j!=k)
{
if(i!='x'&&k!='y'&&k!='z')
printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
getchar();
}

第二题用数学的方法做的……
#include <stdio.h>
main()
{
int number=100;
float total=0.7+0.6+0.5;