在线跪求C语言试题答案,请高手帮帮我~~~~~~~~

一、 单项选择题(共40分,每小题2分)
1. 声明语句为“char a[10]”,执行printf(“%d,%d\n”,sizeof(a),strlen(strcpy(a, “Windows”)));语句后的输出结果为( )。
A.7,7 B.7,8 C. 10,7 D. 10,8

2. 以“只读”方式打开文本文件c:\xy.text,下列语句中哪一个是正确的( )。
A.fp=fopen(“c:\\xy.txt”, “a”); B. fp=fopen(“c:\\xy.txt”, “r”);
C. fp=fopen(“c:\\xy.txt”, “wb”) D. fp=fopen(“c:\xy.txt”, “r”);

3. 要为字符型变量a赋初值,下列语句中哪一个是正确的( )。
A.char a='3'; B.char a=“3” C. char a=%; D. char a=*;

4. 常量字符串”This is Sunday!”,通过strlen函数求其长度,结果为( )。
A.14 B.15 C. 16 D. 17

5. 若定义数组char a[10],char *p=a,则下面变量中,表示地址的是( )。
A.a+4 B.*p C. &a D. &p

6. 在下面定义中,是指针数组的为( )。
A. int *p[8] B. int (*p)[8] C. int (*p)(8) D. int *p(8)

7. 在C语言中可以用( )来定义一个新的变量类型。
A. #define B. #include C. typedef D. struct

8. 下面函数中不是关于文件操作的是( )。
A. fopen B. fclose C. fseek D. format

9. 结构型变量占用内存的字节数是( )。
A.各成员占用内存字节数之和
B.第一个成员占用的内存字节数
C.占用内存最大成员所需的字节数
D.最后一个成员占用的内存字节数

10. 设 struct st
{ int i;
int j;} *p;
main ( )
{
struct st m[ ]={{10, 1}, {20, 2}, {30, 3}};
p=m;
printf (〃%d\n〃,(*++p). j);
}
则程序的输出结果是( )。
A. 1 B. 2 C. 3 D. 10

11. 若p是一个字符指针,则&*p为( )。
A. 地址 B. 字符 C. 字符串 D. NULL。

12. 如果有二维数组a[8][6],则可以使用地址方式来表示第i行第j列的元素的是( )。
A. a[i][j] B. *(*(a+i)+j) C. *(*(a+j)+i) D. *a[i][j]

13. 在说明语句:int *f();中,标识符f代表的是( )。
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名

14. 如果定义结构体
struct student {
int id;
char name[8];
} *s1;
则如果要表示其成员变量,可以用( )。
A. s1.name B. s1->name C. s1[name] D. s1=name

15. 若有以下的定义:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,则值为3的表达式是( )。
A. p+=2,*(p++) B. p+=2,*++p C. p+=3,*p++ D. p+=2,++*p

16. 在定义了数组int a[5][6];后,第10个元素是( )。
A.a[2][5] B.a[2][4] C.a[1][3] D.a[4][2]

17. 现有语句:int a[10], *p=a;,则下列表达式中不能表示数组第i个元素的是( )。
A.a[i] B.*(a+i) C.*(p+i) D.*p+i

18. 现有语句char chName[10]={“Wang”};,则语句sizeof(chName)的结果为( )。
A.3; B.4 C.10 D.9

19. 设结构体S定义为:struct S{ short g; char h; double *pf;};,则该结构体共占用( )个字节(短整型变量占2个字节)。
A.11 B.7 C.8 D.14

20. 表示链表结构结束的标识符是( )。
A.NULL B.EOF C.BOF D./0

1.C(sizeof取的是真个数组长度,strlen取的则是字符串长度)
2.B(反斜杠“\”本身有转义符的概念,当需要使用时,需要先转义,所以写成“\\”。而只读方式为“r”,“a”为附加,“wb”为二进制写入)
3.A(字符要用单引号引用,双引号是字符串,区别在于字符串最后有一个空字符作为结束,而字符没有)
4.B(就是字符串长度,算中间的空格,但不算最后那个看不见的结束符)
5.A(a是数组,p是指针,两者概念相似,本身就是地址,星号“*”表示取内容,而和号“&”则表示取地址,但前面已经说了a和p本身就是地址,所以什么都不用取,则a+4很显然是地址)
6.A(没啥好说的,就这么规定的)
7.C(同上)
8.D(format是字符串的格式化输出操作,与文件操作无关)
9.C(字节对齐的问题,印象里应该是最大成员的字节数)
10.B(p为m的首地址,++p后取第二组数据的首地址,*取值后为第二组数据中的第一个数据位置,.j为取j位置上的数据,结果为2)
11.A(上面已经说了,指针本身就是地址,&和*两个符号取地址再取内容,等于抵消,所以还是地址)
12.B(a+i确定行,之后去内容,再+j确定列,再取内容,即可)
13.D(int为返回值类型,*表示返回值为指针,后面的括号表示这是一个函数)
14.B(s1是一个指针,指针结构体的成员用“->”引用,而非指针结构体的成员用“.”引用)
15.A(先自加2,再++运算,最后取内容)
16.C(扳着手指头算都可以)
17.D(*p+i表示数组的第一个元素的值加上i)
18.C(sizeof是数组的大小,与里面的值无关)
19.C(short占用2字节,char占用1字节,double看起来是8字节,但其实double是个指针,指针都是4字节,不看类型。如此相加看起来应该是7个字节,但其中有个字节对齐的问题,所以char后面要空出来一个字节作为对齐,最终结果是8个字节)
20.A(NULL为结束符,EOF应该是结束函数用的,BOF不清楚,/0啥都不是,NULL可以表示为"\0",注意斜杠方向)
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-04
2.多个源文件的C程序编译和连接:
1)首先分别编辑、编译file1.c和file2.c ;
2)在TC下编辑一个项目文件,扩展名为.PRJ;
如: 文件内容——c:\\zyc\\cprg\\file1.c
c:\\zyc\\cprg\\file2.c
文件内容指出了要参加联调的源程序文件名
3)编译运行

4.结果:
main:x=5 y=1 n=1
func:x=6 y=21 n=11
main:x=5 y=1 n=11
func:x=8 y=31 n=21

5.
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
max=a;
else
max=b;
if(c>max)
max=c;
printf("max=%d",max);

}

6.
#include<stdio.h>
void main(){
float x,y;
printf("请输入x的值:\n");
scanf("%f",&x);
if(x<1)
printf("y的值是:%f",x);
else if(1<=x<10){
y=2*x-1;
printf("y的值是:%f",y);
}
else {
y=3*x-11;
printf("y的值是:%f",y);
}
}

7题
57
5 7
67.856400,-789.124023
67.856400 ,-789.124023
67.86,-789.12,67.864,-789.1240,67.856400,-789.124023
6.78564e+01, -7.9e+02
A,65, 101, 41
1234567,4553207, d687
65535,177777,ffff,-1
COMPUTER, COM

8.结果9

二、编程:
1.
#include<stdio.h>
void main()
{
int a,s;
scanf("%d",&s);
if(s==100)
a=9;
else
a=s/10;
switch(a)
{
case 0:printf("E\n");break;
case 1:printf("E\n");break;
case 2:printf("E\n");break;
case 3:printf("E\n");break;
case 4:printf("E\n");break;
case 5:printf("E\n");break;
case 6:printf("D\n");break;
case 7:printf("C\n");break;
case 8:printf("B\n");break;
case 9:printf("A\n");break;
default:printf("error\n");
}}

2.
#include<stdio.h>
#define N 10
main()
{
int i,j,k;
int a[N];
printf("\nplease input %d datas:\n\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
for(j=0;j<N-i;j++)
if(a[j]<a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
printf("\n\nthe sortde numbers are:\n\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
}

祝你好运!
另外,站长团上有产品团购,便宜有保证
第2个回答  2011-05-04
1.C
2.B
3.A
4.B
5.A
6.A
7.C
8.D
9.A
10.B
11.A
12.B
13.D
14.B
15.A
16.C
17.D
18.C
19.C
20.A
第3个回答  2011-05-04
1.C
2.B
3.A
4.B
5.A
6.A
7.C
8.D
9.A
10.B
11.A
12.B
13.D
14.B
15.A
16.C
17.D
18.C
19.B
20.A
第4个回答  2011-05-04
B B A C C A C D A B A B D B A B D B B A

在线跪求C语言试题答案,请高手帮帮我~~~
1.C(sizeof取的是真个数组长度,strlen取的则是字符串长度)2.B(反斜杠“\\”本身有转义符的概念,当需要使用时,需要先转义,所以写成“\\\\”。而只读方式为“r”,“a”为附加,“wb”为二进制写入)3.A(字符要用单引号引用,双引号是字符串,区别在于字符串最后有一个空字符作为结束,而字符没...

C语言试题啊,求大神帮忙答案啊!
d、register 这个题目容易,没有指定当然是自动指定的了。本题答案为a。另外一个小知识,我们平常看到的int a,b,c;实际上省略了auto,全部应该是 auto int a,b,c;题号:7 以下程序的运行结果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub (10,5,&a)...

C语言题目 求大佬帮看一下
首先说一下题目的答案是:11 程序运行了一下, 截图如下:下面解析一下原因:1、根据判断条件来看,当 k = 10时, while 条件不成立。2、但是需要注意的一点是,在while条件中,使用的是 K++, 而++符号在后面。3、++运算符使用有两种, 先+1在用, 和先使用在+1。而此处使用的明明是后者。4...

C语言的题,都不难,帮忙解答,追加悬赏喔。麻烦把各个选项都解释解释最好...
A)int a=b=0 ;不允许这样赋值,可以int b=0;a=b;B)char A=65+1,b='b';这个A的赋值错误,C)float a=1,*b=&a,*c=&b ; 这个&b的是指针类型,而C却是float D)double a=0.0,b=1.1; 正确 第十一题:先判断a>b,不是,所以a=b不执行,接着执行c=a,所以这时c,a都是3,在...

C语言题,求高手指点!?
答案A 在使用指针变量P之前没有对其初始化,不能使用。2. 答案B 错误纠正 int *s,k;s=&k;s=100;通A,都是指针在使用前没有初始化。3.答案C 正确 4. 答案D 错误 s=p;是错误的 因为s是 一个整型数指针,而p是字符型指针。指针类型不同的两个变量不能赋值。=== 希望我的回答对你有所...

两道c语言题,谢谢帮帮忙
我给你第一题的答案:include<stdio.h> include<math.h> void getit(int);bool haveit=false;void main(){ while(true){ int a,i;printf("请输入一个整数\\n这个数以下的完全平方数将全部输出>:");scanf("%d",&a);getit(a);printf(haveit==true? "输出完毕!\\n":"%d 以下没有完全...

急求解答:C语言程序设计试题 请专长人士帮忙解答 谢!!!
一、填空题 1.一个函数一般由两部分组成,它们分别是函数名和函数体。2.一个C语言的程序至少应包含一个主函数。3.函数体用{符号开始,用}符号结束。4.欲将一个16位二进制的整数变量的高8位清零,而只保留低8位,可用的方法是和0x00ff进行与运算。5.数组在内存中是一块连续的储存区,数组名...

C语言习题请高手帮忙解答
1.1:-200 2500 2:i=-200,j=2500 3: i=-200 j=2500 2.i=12 j=0 k=0 3. 复合语句在语法上被认为是一条语句。空语句形式是只有一个分号的空行 4.C语句最后用分号结束

C语言高手帮帮我!!!
i++=t*=i可以这样算.先算t*=i => t=(t*i); 再算 i++=t; => (i=t;i++;)第二题:第一次循环.k=1; if不运行得到a = b =s[1]-'0' 的ASC码.第二次循环k=2(也就是最后一次循环)=> a=s[1]-'0'+s[2]-'0'都用ASC码运算....

C语言高手进,帮忙解答一下下列各题的标准答案。此题是我的重要复习题...
专业回答,质量保证!【答案】32.D 33.B 36.A 45.C 47.C 50.D 58.B 【解析】32.字符串数组除了里面的实际字符,系统还会自动的分配一个结束符"\\0",所以该数组所占空间为6+1=7个。33.一句话说不明白,放心,已经通过程序验证,答案肯定正确。36.括号内的只能算是一个参数。45.因为是...

相似回答