懂C语言的进来,急求答题 在线等 给100分

1.已知;char a; int b,c;表达式"b=2.5*a/b+c"计算结果的数据类型是_____
Achar B double C float D int
2.与条件表达式"(!n)?(c++):(c--)"中表达式(!n)等价的表达式是____
A (n==0) B (n==1) C (n!=0) D (n!=1)
3.已知函数f的定义为:
void f ()
{……}则函数定义中void的含义是_____
A执行函数f后,函数没有返回值
B执行函数f后,函数不再返回
C执行函数f后,可以返回任意类型
D以上三个答案全是错误的
4.已知,int a=1,b=3,c;则执行:c=a>b?++b;则c的值为____
A 1 B 2 C 3 D 4
5.若int k=5;执行语句k+=++k;k的值是_____
A 10 B 11 C 12 D 以上均错
6.下列常量中不能作为C常量的是___
A OxA5 B 2.5e-2 C 3e2 D 0582
7.下列关于C语言的错误的是___
A大写字母和小写字母的意义相同
B不同类型的变量可以在一个表达式中
C在赋值运算符左边的变量和右边的值可以是不同类型
D同一个运算符号在不同的场合可以有不同的含义
8.字符串"\"EOF=-\61\""的长度是____
A 8 B 9 C 14 D 非法字符串
9.执行float x=0,while(x=1)x++;后共循环___次
A有错 B 无数 C 0 D 1

10.float t;表达式t=1,t+5,t++的值是_____
A 1 B 6.0 C 2.0 D 1.0
11已知:
strucl sk
{ int a; float b;}data,*p;
苦有p=&data,则对data中的成员a的正确引用是____
A(*p).data.a B p->a C p->data.a D p.a

二填空题
1.下面程序的输出的结果是_____
long fun (int k)
{if(k==1) retrurn(1);
return (fun(k-1)*k);}
main()
{ printf("%ld\n",fun(5));}

2.下列程序的输出是_____
#include "stdio.h"
main()
{char b[]="Goodbye",*chp=&b[7];
while(--chp>=&b[0] putchar(*chp);}

3若执行以下程序时从键盘上输入3 4 ,则输出结果是___
main()
{int a,b,s;
scanf("&d&d",&a,&b);
s=a;
in (a<b) s=b;
s*=s;
printf("%d\n",s);}

4下列程序段执行的结果是_____
main()
{double a;float b; int c;
c=b=a=20/3;
printf("%d,%f,%f\n",c,b,a);}

5.下列程序的输出是____
main()
{ int x=1,y=2,z=3,t;
while(y<x<z)
{ t=x;x=y;y=t;z-=1;}
printf("%d\n",y);}

6-9。填空,使下列程序具有如下功能,调用swap函数,交换main函数中两个变量x和y的值,使得程序输出x的值为20,y的值为10。
#include<stdio.h>
main()
{float x=10,y=20;
swap(_______);
printf("&f...&f\n",x,y);}
swap(float *x,float *y )
{ float temp;
temp=_______;
_________;
_________;
}

10-11 填空,使下列程序具有如下功能;从终端上读入的10个整数以二进制方式写入一个名为“bi.dat”的新文件中。
#include <stdio.h>
FILE *fp;
main()
{ int i,k;
if(( fp=fopen("bi.dat", "_______"))==NULL)exit(0);
for( i=0;i<10;i++)
{ scanf("%d",&j);
fwrite(_______, sizeof(int),1,fp);}
fclose(fp);}

12-13 下面的递归函数的功能是计算1~n的累加和。填空,使函数正确
sum(int n)
{ if(n<=0)
printf("data error\n");
if(n==1) return ___________;
else ________;
}

1.D
2.A
3.A
4.题目有误
5.C
6.D
7.A
8.A
9.B
10.A
11.B


1.120
2.存在语法错误,如果忽略错误,那么输出eybdooG
3.存在语法错误,如果忽略错误,那么输出65536
4. 6,6.000000,6.000000
5. 1

6-9:

#include<stdio.h>
main()
{float x=10,y=20;
swap(&x,&y);
printf("&f...&f\n",x,y);}
swap(float *x,float *y )
{ float temp;
temp=*x;
*x=*y;
*y=temp;
}

10-11:

#include <stdio.h>
FILE *fp;
main()
{ int i,k;
if(( fp=fopen("bi.dat", "wb"))==NULL)exit(0);
for( i=0;i<10;i++)
{ scanf("%d",&j);
fwrite(&j, sizeof(int),1,fp);}
fclose(fp);}

12-13:

sum(int n)
{ if(n<=0)
printf("data error\n");
if(n==1) return 1;
else return n+sum(n-1);
}

参考资料:YASK

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-15
1、D 2、A 3、A 4、没有答案5、C 6、D 7、A 8、A 9、B 10、B 11、B
填空
1、120 2、eybdooG 3、16 4、6.000000,6.000000,6
5、1
6-9 swap(&x,&y);temp=*x;*x=*y;*y=temp;
12-13 1;sum(n-1)+n;
不好意思10-11类型我没有学,不能给答案了,其他的应该没有问题
第2个回答  2010-05-15
唉,杯具呀
1、d
2、a
3、a
4、表达式不合语法,编译不过
5、c
6、d
7、a
8、b
9、c
10、c
11、b

1、120
2、while后面少半边括号,不知道加在哪的
3、16
4、6,6.000000,6.000000
5、1
6、swap(float *x,float *y)
temp=*x;
*x=*y;
*y=*x;
10、文件读写忘了
12、1
return n+sum(n-1);
大概就是这样了
第3个回答  2010-05-15
一:1-11:AAADC BADAD D
二:1.120
2.
3.16
4.6,6.000000,6.000000
5.2
6-9. &x,&y;*x;*x=*y;*y=temp;
10-11. wb;&j;
12-13. 1;return (n+sum(n-1));楼主有空还是验证下,鄙人不敢保证全对
相似回答