C语言的几道考题,请各位高手帮忙,急!!!(追加50分)

1.有如下定义语句,若从键盘输入数据,请写出正确的输入∕输出语句。
int x;
char y;
char z[20];
int x; scanf("%d",&x); /printf("%d",x);
char y; scanf("%c",&y); /printf("%c",y);
char z[20]; for(i=0;i<20;i++) scanf("%d",&z[i]);
/for(i=0;i<20;i++) printf("%d",z[i]);
2.注意运算符的结合律:
若有X=4,则X+ =X- =X*X的值是多少?

赋值运算顺序是从右到左 所以先算X- =X*X
而X- =X*X 等价于X=X-X*X则X=-12在算X+ =X同理等价于X=X+X则X=-24

3.设有如下面结构体,请用C语言的语句定义出正确的结构体形式:
教师信息:包括(姓名,年龄,教龄:根据合适的情况选择各项类型)
Struct teacher
{ char name[8]或int name;
char sex;
int age;
int ttime 或float ttime;
}
4.设一组数值a的4个输入整数是4,3,2,1,则程序的输出是什么?
# include 〈stdio.h〉
#define M4
void main()
{
int i,j,k,m,a[4];
printf (“enter 4 number:”;
for(i=0;i<M;i ++)
scanf(“%d”,&a[i]);
for (i=M;i>0;i—)
{
K=a[M-1];
For(j=M-1;j>0;j—)
a[j]=a[j-1];
a[0]=k;
for(m=0;m<M;m++)
printf(“%d”,a[m]);
printf(“﹨n”);
}}

5.下列程序的功能是计算圆的周长,将程序补充完整(填空,改错)
# include 〈stdio.h〉
#define pl 3.14159
main()
{
float r,s;
printf (“enter a number r:”);
scanf (“%f”, &r);
s=0;
s=2*pl*r;
printf(“s=%f”,s);
getch();
}

编程
6.输入3个整数,调用函数stu()求三个数的平方和,返回主函数显示结果。
(1) 必须要有主函数和被调用函数
(2) 自定义函数stu实现求3个数的平方和,(设3个虚参,返回一个值)
(3) 3个数的输入∕输出在主函数中完成

7.读取7个(1-30)的整数 每读取一个值,程序打印出该值个数的*

8.从键盘上输入30个元素的值存入一维数组a中,然后将下标为(0,2,4,6,8……)的元素值赋值给数组b。输出数组b的内容。

(1) 定义数组A。用循环语句输入元素值
(2) 确定循环语句的控制变量初值与终值,每次增值2
(3) 以循环控制变量作数组下标,取出数组元素值送给数组B
(4) 输出数组B
9.给出程序的运算结果
main()
{
Int a[]={2,4,6,8,10},*p;
P=a
*(p+2)+ =2;
printf (“%d,%d”,*p,*(p+2));
getch();
}

10. struct cmplx{
int x;
int y;
} snu[]={2,3,1,7};

2计算表达式:
Snu[0].y/snu[0].x*snu[1].x的值

11.求输出的k和m
int k=1;
main()
{int i=4;
fun(i);
printf("(1)%d,%d\n",i,k);
}
fun(int m);
{m+=k;k+=m;
{char k='B';
printf("(2)%d.%d\n",k-'A');
}
printf("(3)%d,%d\n",m,k);
}

第1个回答  推荐于2018-04-12
第一题
你写上的答案有错误
最后一个明显是字符串而不是数组,输出应该是%s而不是%d,输入的时候不用加地址符&

第二题我算也等于-24
三题我答案和你的一样
四题
五题的S=0没什么作用,可以不写,最后的GETCH也可不写,我是没发现有什么用。

六题
include<stdio.h>

int stu(int a,int b,int c);

int stu(int a,int b,int c)
{

int s;

s=a*a+b*b+c*c;

return s;

}

void main()
{
int a,b,c;

printf("请输入3个数;")

scanf(“%d %d %d”,&a,&b,&c);

s=stu(a,b,c);

printf("%d",s);
}

实在是懒的写了,都快1点了。困了。。。。我给你写思路吧`我写清楚点~如果你有基础绝对可以自己写出来的。。。

第七题
要求不是很明确
要不要判断输入的数字合格?
不判断的话
输入FOR循环做,循环7次(i=0;i<7;i++)//因为输入7个数,所以循环7次,输入的数设个变量X(INT X)scanf("%d",x)
循环体再嵌套一个FOR循环(i=1;i<x;i++)用来输出*的,printf("*")
就解决了。

第八题
void main()
{
int A[30],b[15];
int i,j;
for(i=0;i<30;i++)
scanf("%d",&A[i]);
for(i=0,j=0;i<30;i+=2 j++ )
{

b[j]=A[i];

}
for(j=0;j<15;j++)
printf("%d",b[j]);
}

第9题 2 ; 8
10.3/2;本回答被提问者和网友采纳
第2个回答  2008-06-29
1.到3.这是有题解吧。
4.1 2 3 4
5.貌似是个完整的。
6.include<stdio.h>
int stu(int a,int b,int c);
void main()
{
int a,b,c;
scanf(“%d %d %d”,&a,&b,&c);
s=stu(a,b,c);
printf("%d",s);
}
int stu(int a,int b,int c)
{
int s;
s=a*a+b*b+c*c;
return s;
}
7.题干没看明白。。。不知道输出什么。
8.
include<stdio.h>

void main()
{
int A[30],b[15];
int i,j;
for(i=0;i<30;i++)
scanf("%d",&A[i]);
for(i=0;i<30;i+=2)
{
j=0;
b[j]=A[0];
j++;
}
for(j=0;j<15;j++)
printf("%d",b[j]);
}
9. 2 ; 8
10.3/2;
11.(1)4,1;(2)1;(3)5,6;
第3个回答  2008-06-29
貌似都会
相似回答