读书人

c的选择题解决办法

发布时间: 2012-10-08 19:54:56 作者: rapoo

c的选择题
char *sz[ ]=“string4”;这个这样写有错吗?怎么理解?怎么改?
1.以下程序的功能是:按顺序读入10名学生和4门课程的成绩,计算出每位学生的平均分进行输出,但运行结果不正确。
造成程序计算结果错误的语句行是_a____。(知识点6.6)
main()
{ int n,k;float score,ave;
ave=0.0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{ scanf(“%f”,&score);
ave+=score/4 ;}
printf(“NO%d:%f\n”,n,ave);}
A)ave=0.0; B)for(n=1;n<=10;n++)
C)ave+=score/4 ; D)printf(“NO%d:%f\n”,n,ave);
2.下列程序的运行结果是___b____。(知识点10.2)
void fun(int *a,int *b)
{ int *k;
k=a;a=b;b=k;}
main()
{ int a=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf(“%d %d”,a,b);
}
A)6 3 B)3 6 C)编译出错 D)0 0
3.下列程序的运行结果是_d______。(知识点12.2)
main()
{ unsigned c1=0xff,c2=0x00;
c1=c2|c1>>2;c2=c1^0236;
printf(“%x,%x\n”,c1,c2);
}
A)0x3f,0XA1 B)3f,A1 C)ffff,61 D)3f,a1
4.若有以下说明:int a[5][9];则下列选项中对数组元素a[i][j]的引用错误的有_b______。
(0<=i<4,0<=j<9)(知识点10.3)
A)*(&a[0][0]+9*i+j) B)*(a+i)(j) C)*(*(a+i)+j) D)*(a[i]+j)
5.若有定义:char *st=“how are you!”;下面程序段正确的有_a____。(知识点:7.3)
a.char a[11],*p;strcpy(p=a+1,&st[4]);
b.char a[11];strcpy(++a,st);
c.char a[11];strcpy(a,st);
d.char a[ ],*p;strcpy(p=&a[1],st+2)
6.下列叙述不正确的有__abcd___。(知识点8.8)
A)全局变量可以为本文件中其他函数所调用,编译时分配在静态存储区
B)局部变量只在本函数范围内有效,形式参数属于局部变量
C)局部变量如没有被说明为静态的存储类别,则会被分配动态存储空间,存储在动态存储区中
D)局部静态变量在函数调用结束后依然存在,但其他函数不能引用它
7.若有以下说明,则对strcpy库函数的调用不正确的有_______。(知识点10.4)
char *str1=“copy”,str2[10],*str3=“abcde”,*str4,*str5=“hijk”
A)strcpy(str2,str1); B)strcpy(str3,str1);
C)strcpy(str4,str1); D)strcpy(str5 ,str1);
以上几道选择题不理解,希望有高手解析一下答案,尽量具体一点啊???、

[解决办法]
const char *sz =“string4”;
char sz[]=“string4”;
[解决办法]
自己写程序去验证吧。。。
[解决办法]
char *sz[]=“string4”;这个这样写有错吗?怎么理解?怎么改?
这样写没有错!声明并定义了一个指针数组,数组的每个值都是指向字符所在的地址的指针
[解决办法]
char *sz[1];
sz[0]="string4";

这样理解
[解决办法]
呵呵,这个真的没看出来,期待答案中 。。。。
[解决办法]
没看出来啊,期待高手的答案、
[解决办法]
应该有点不一样吧,
char sz[] = "string4";
char *sz[] = {"string4"};
初始化不一样,表示的意思也不一样,第一个表示定义并初始化一个字符数组;第二个表示定义并初始化一个指针数组。
eg:
#include <stdio.h>

int main(int argc, char * argv[])
{
char sz[] = "string4";
char *szs[] = {"string4","string5",""};
printf("sz=%s,szs=%s,szs+1=%s,szs+2=%s\n",sz, *szs, *(szs + 1), *(szs + 2));
return 0;
}

输出结果:
sz=string4,szs=string4,szs+1=string5,szs+2=
[解决办法]
没错,就是说数组只有一个元素,为字符串string4

读书人网 >C语言

热点推荐