=a" />
文档库 最新最全的文档下载
当前位置:文档库 › c语言第六章习题

c语言第六章习题

c语言第六章习题
c语言第六章习题

第六章练习题

一、填空题

1、定义int a[]={1,2,3,4,5,6},*p=a;语句printf("%d",(*++p)++);的输出结果是()。

2、以下程序的执行结果是()。

main()

{ char s[]="abcdefg"; char *p;

p=s; printf("ch=%c\n",*(p+5)); }

3、以下程序的执行结果是()。

main()

{ int a[][={1,2,3,4,5,6};

for(p=&a[5];p>=a;p--) printf("%d",*P);

printf("\n"); }

4、以下程序的执行结果是()。

main()

{ int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;

for(i=0;i<4;i++)

p[i]=&a[i*3];

printf("%d\n",p[3][2]);}

5、设包含如下程序的文件名为myprog.c,编译后键入命令:myprog one two three,则执行结果是()。

main(int argc,char *argv[])

{ int i;

for(i=1;i

printf("%s%c",argv[i],(i

6、下面程序的运行结果是()

char s[80],*sp="HELLO!";sp=strcpy(s,sp); s[0]='h'; puts(s);

7、下面程序段的运行结果是()

char *s1="AbcdEf",*s2="aB";

s1++; t=(strcmp(s1,s2)>0); printf("%d\n",t);

8、下面程序段的运行结果是()

char str[]="abc\0def\0ghi"; char *p=str; printf("%s",p+5)

9、若有以下定义和语句:

int a[4]={0,1,2,3},*p; p=&a[1]; 则++(*p)的值是()。

10、若有定义:int a[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是(),*(a[1]+2)

的值()。

11、若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是(),*(a+5)的值是()。

12、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; 则*--p的值是()。

13、若有以下定义和语句:int s[2][3]={0},(*p)[3]; p=s; 则(*(p+1)+2)的值是()。

14、若有定义:int a[2][3]={2,4,6,8,10,12}; 则a[1][0]的值是(),*(*(a+1)+0)的值是()。

15、若有定义:int a[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[3],k;则下面程序段的输出是()。for(k=0;k<3;k++) q[k]=&a[k*4]; printf("%d\n",q[2][3]);

16、若有以下输入:1,2代表回车),则下面程序的运行结果是()。

main()

{int a[2][3]={2,4,6,8,10,12} , (*p)[3],i,j;

p=a; scanf("%d,%d",&i,&j); printf("%d\n",*(*(p+i)+j); )

17、下面程序的运行结果是()。

main()

{ char *a[]={"P","C","B","L"}, (* *p)[ ]; int j;

p=a+3;

for(j=3;j>=0;j--) printf("%s",*(p--));}

18、以下程序的执行结果是()。

main()

{ char *p1,*p2,str[20]="xyz"; p1="abcd"; p2="ABCD";

strcpy(str+1,strcat(p1+1,P2+1)); printf("%s",str); }

19、若输入的值分别是1 3 5,下面程序的运行结果是()

main()

{int a=0,i,*p,sum; p=&a;

for(i=0;i<=2;i++) { scanf("%d",p); sum=s(p); printf("sum=%d,",sum); }}

s(int *p)

{int sum=10; sum=sum+*p; return(sum); }

20、下面程序段的运行结果是()

char s[20]="abcd"; char *sp=s; sp++; puts(strcat(sp,"ABCD"));

21、下面程序段的运行结果是()

char a[]="12345",*p; int s=0;

for(p=a;*p!='\0';p++) s=10*s+*p-'0'; printf("%d\n",s);

22、下面程序段的运行结果是()

char a[]="123456789",*p; int i=0; p=a;

while(*p) {if(i%2==0) *p='*'; p++;i++; } puts(a);

23、下面程序的运行结果是()。

main()

{ char *str[]={"Pascal","C language","Dbase","Cobol"}; char **p; int k;

p=str;

for(k=0;k<4;k++) printf("%s,",*(p++)); }

二、选择题

1、以下程序的运行结果是()

void sub (int x,int y,int *z)

{ *z=y-x;}

main()

{ int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%4d,%4d,%4d\n",a,b,c);}

A)5, 2, 3 B)-5, -12, -7

C)-5, -12, -17 D)5, -2, -7

2、执行以下程序后,b的值为()

main()

{int b,k=4,m=6,*p1=&k,*p2=&m; b=(-*p1)/(*p2)+7; printf("%d\n",b); }

A)5 B)6 C)7 D)10

3、下面程序应能对两个整型变量的值进行交换。以下正确的说法是()

main()

{int a=10,b=20; printf("%d,%d",a,b); swap(&a,&b); printf("%d,%d",a,b); }

swap(int p,int q)

{ int t; t=p;p=q;q=t;}

A)该程序完全正确

B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句为变)即可

D)以下说法都不正确

4、设*p,i;以下正确的语句是()。

A)*p=&i; B)i=p; C)i=*p; D)p=2*p+1;

5、设char s[10];int i=1;以下正确的表达式是()。

A)[i+2] B)*(s+i) C)*(&s+i) D)*((s++)+i)

6、设有语句:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;以下对a数组的元素值不正确的引用是()。A)a[p-a] B)*(&a[i]) C)p[i] D)*(a[0]+1)

7、设有说明int(*ptr)[M];其中ptr是()。

A)M个指向整型变量的指针B)指向M个整型变量的函数指针

C)一个指向具有M个整型元素的一维数组的指针

D)具有M个指针元素的一维指针数组,每一元素只能指向整型量

8、如下程序的执行结果是()。

main()

{ int i; char *s="a\\\\\n"; for(i=0;s[i]!='\n';i++) printf("%c",*(s+i)); }

A)a B)a\ C)a\\ D)a\\\\

9、有四组对指针变量进行操作的语句,以下判断正确的选项是()

(1)int *p,*q;q=p;

int a,*p,*q;*p=*q=&a;

(2)int a,*p,*q;q=&a;p=*q;

int a=20,*p;*p=a;

(3)int a=b=0,*p;p=&a;b=*p;

int a=20,*p,*q=&a;*p=*q;

(4)int a=20,*p,*q=&a;p=q;

int p,q;q=&p;

A)(1)正确,其余错B)(1),(4)正确,其余错

C)(3)正确,其余错D)以下结论都不正确

10、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()main()

{ int *p,*q,a,b; p=&a; scanf("%d",*p);........ }

A)*p表示的是指针变量p的地址

B)*p表示的是变量a的值,而不是变量a的地址

C)*p表示的是指针变量p的值

D)*p只能用来说明p是一个指针变量

11、若有以下定义,则*(p+5)表示()。int a[10],*p=a;

A)元素a[5]的地址B)元素a[5]的值C)元素a[6]的地址D)元素a[6]的值

12、若有定义:int *p[4];则标识符p()。

A)是一个指向整型变量的指针B)是一个指针数组

C)是一个指针,它指向一个含有四个整型元素的一维数组。

D)说明不合法

13、若有以下定义,且0<=i<6,则正确的赋值语句是()。int s[4][6],t[6][4],(*p)[6];

A)p=t; B)p=s; C)p=s[i]; D)p=t[i];

14、若有定义:int a[4][6];则能正确表示a数组中任一元素a[i][j](此处0<=i<4,0<=j<6)地址的

表达式是()

A)&a[0][0]+6*i+j B)&a[0][0]+4*j+I C)&a[0][0]+4*i+j D)&a[0][0]+6*j+i

15、以下选项中,对指针变量p的正确操作是()

A)int a[5],*p;p=&a; B)int a[5],*p;p=a;

C)int a[5];int *p=a=1000 D)int a[5];int *p1,*p2=a;

*p1=*p2;

16、若有以下定义,且0<=i<5,则对数组a元素的非法引用是()

int a[5],*p=a;

A)a[i] B)*(a+i) C)*(p+i) D)*(&a+i)

17、设有以下定义:char *cc[2]={"1234","5678"}; 则正确的叙述是()

A)cc数组的两个元素中各自存放了字符串"1234"和"5678"的首地址

B)cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

C)cc是指针变量,它指向含有两个数组元素的字符型一维数组

D)cc数组元素的值分别是"1234"和"5678"

18、若有以下定义:int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[3]=x;

则能够正确表示数组元素x[1][2]的表达式是()

A)*((*p+1)[2]) B)(*p+1)+2 C)*(*(p+5)) D)*(*(p+1)+2)

19、以下正确的叙述是()

A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定。

B)C语言允许main函数带形参,形参名只能是argc和argv。

C)当main函数带有形参时,传给形参的值只能从命令行中得到。

D)若有说明,main(int argc,char *argv),则形参argc的值必须大于1。

20、main函数的正确说明形式是()

A)main(int argc,char **argv[])

B)main(int abc,char *abv)

C)main(int argc,char argv)

D)main(int c,char *v[])

21、以下程序能找出数组x中的最大值和该值所在的元素下标,数组元素值从键盘输入。main()

{

int x[10],*p1,*p2,k;

for(k=0;k<10;k++) scanf("%d",x+k);

for(p1=x,p2=x;p1-x<10;p1++) if(*p1>*p2) p2=p1;

printf("MAX=%d,INDEX=%d\n", *p2,《》);}

A)p1-x B)p1

C)p2-x D)x-p2

22、若有说明:char *language[]={"FORTRAN","BASIC","PASCAL","JA V A","C"};则表达式*language[1]>*language[3]比较的是()

A)字符F和字符P B)字符串BASIC和字符串JA V A

C)字符B和字符J D)字符串FORTRAN和字符串PASCAL

23、若有说明:char *language[]={"FORTRAN","BASIC","PASCAL","JA VA","C"};则language[2]的值是()

A)一个字符B)一个地址C)一个字符串D)一个不定值

24、语句int(*ptr)();的含义是()

A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量

C)ptr是指向函数的指针,该函数返回一个int型数据

D)ptr是一个函数名,该函数的返回值的指向int型数据的指针

25、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是()

A)(*p)max(a,b); B)*pmax(a,b); C)(*p)(a,b); D)*p(a,b);

26、已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是()

A)p=max B)*p=max; C)p=max(a,b) D)*p=max(a,b)

27、已有定义int(*p)();指针p可以()。

A)代表函数的返回值B)指向函数的入口地址

C)表示函数的类型D)表示函数返回值的类型

28、若要对a进行++运算,则a应具有下面说明()

A)int a[3][2]; B)char *a[]={"12","ab"}; C)char (*a)[3]; D)int b[10],*a=b;

29、下面正确的程序段是()

A)char str[20]; scanf("%s",&str); B)char *p; scanf("%s",p);

C)char str[20]; scanf("%s",&str[2]); D)char str[20],*p=str; scanf("%s",p[2]);

30、下面程序段的运行结果是()char str[]="ABC",*p=str; printf("%d\n",*(p+3));

A)67 B)0 C)字符'C'的地址D)字符'C'

31、下面程序段的运行结果是()

char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABC")));

A)8 B)12 C)4 D)7

32、下面说明不正确的是()

A)char a[10]="china"; B)char [10],*p=a; p="china";

C)char *a; a="china"; D)char a[10],*p; p=a="china";

33、若有说明语句

char a[]="It is mine";char *p="It is mine";

则以下不正确的叙述是()

A)a+1表示的是字符t的地址

B)p指向另外的字符串时,字符串的长度不受限制

C)p变量中存放的地址值可以改变

D)a中只能存放10个字符

34、若已定义char s[10];则在下面表达式中不表示s[1]的地址是()

A)s+1 B)s++ C)&s[0]+1 D)&s[1]

35、下面程序段的运行结果是()

char s[6]; strcpy(s,"abcd"); printf("\"%s\"\n",s);

A)"abcd" B)"abcd " C)\"abcd\" D)编译出错

36、若有说明:char *language[]={"FORTRAN","BASIC","PASCAL","JA V A","C"};则以下不正确的叙述是()

A)language[2]表示字符串"pascal"的首地址

B)*language[2]的值是字母P

C)language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串变量的指针

D)language是一个字符型指针数组,它包含5个元素,其初值分别是:"FORTRAN","BASIC","PASCAL","JA V A","C"

37、设char s[10],*p=s;以下不正确的表达是()

A)p=s+5; B)s=p+s; C)s[2]=p[4]; D)*p=s[0];

38、设char **s;以下正确的表达式是()。

A)s="computer" B)*s="computer" C)**s="computer" D)*s='c'

39、选择i的正确结果()。

int i; char *s="a\045+045\'b"; for(i=0;*s++;i++);

A)7 B)8 C)11 D)12

40、如下程序的执行结果是()。

main()

{ int i; char *s="a\nn35\b"; for(i=0;*s++;i++); printf("i=%d\n",i);}

A)i=5 B)i=6 C)i=7 D)i=8

41、如下程序的执行结果是()。

main()

{ int i; char *s="\""; for(i=0;s[i]!='\0';i++); printf("%c",*(s+i));}

A)\" B)" C)"\"" D)不正确

42、如下程序的执行结果是()。

main()

{ int i; char *s="\\\"" for(i=0;s[i]!='\0';i++) printf("%c",*(s+i));}

A)\" B)a" C)"\" D)不正确

43、如下执行的程序结果是()。

main()

{static int a[ ]={1,2,3,4,5,6};int *p;p=a;*(p+3)+=2;printf("%d,%d\n",*p,*(p+3));}

A)1,3 B)1,6 C)3,6 D)1,4

44、以下正确的说明语句是()

A)int *b[]={1,3,5,7,9}; B)int a[2]; int *num[2]={&a[0],&a[1]};

C)int a[]={1,2}; int *num[2]={a[0],a[1]};D)int a[3][4],(*num)[4]; num[1]=&a[1][3];

45、若有以下定义,且0<=i<4,则不正确的赋值语句是()

int b[4][6],*p,*q[4];

A)q[i]=b[i]; B)p=b; C)p=b[i]; D)q[i]=&b[0][0];

46、若有定义:int a[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;则下面程序段的输出是()for(k=0;k<4;k++) q[k]=&a[k*3]; printf("%d\n",q[3][0]);

A)8 B)16 C)20 D)结果不确定

47、若有以下定义,则数值不为3的表达式是()int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;

A)x[3] B)p1=x+3,*p1++ C)p1=x+2,*(p1++)D)p1=x+2,*++p1

48、下面程序的运行结果是()

main()

{int x[5]={2,4,6,8,10},*p,**pp;p=x;pp=&p;printf("%d",*(p++));printf("%3d\n",**pp);}

A)4 4 B)2 4 C)2 2 D)4 6

49、若有以下说明和语句:

char *language[]={"FORTRAN","BASIC","PASCAL","JA V A","C"};

char **q;q=language+2;

则语句printf("%o\n",*q);

A)输出的是language[2]元素地址B)输出的是字符串PASCAL

C)输出的是language[2]元素的值,它是字符串PASCAL的首地址

D)格式说明不正确,无法得到确定的输出

50、下面程序段的运行结果是()

char *format="%s,a=%d,b=%d\n"; int a=1,b=10; a+=b;printf(format,"a+=b",a,b);

A)for,"a+=b",ab B)format,"a+=b" C)a+=b,a=11,b=10 D)以下结果都不对

三、编程题

1、有3个学生,每人考5门课,求每个学生的平均分和每门课的平均分数

2、输入一个字符串,内有数字和非数字字符,如:a123x456 1760?302ab567,将其中连续的数字作为一个整数依次存放到一数组a中,如123存放到a[0]中,456存放到a[1]中。

3、求定积分:计算[0,1]之间函数1+x2、[0,2]之间函数1+x+x2+x3、[0,3.5]之间函数x/(1+x2)的定积分。

附录:答案

一、填空题

1、2

2、f

3、654321

4、12

5、one:two:three

6、HELLO!

7、1

8、of

9、2 10、12 12 11、4 12 12、1

13、0 14、8 8 15、24 16、12

17、LBCP 18、xbcdBCD 23、Pascal,C language,Dbase,Cobol

二、选择题

1—5 BCCCB 6—10 DBCCB 11—15 BCBCB

16—20 DADCD 21—25 BCBDC 26—30 ABDCB

31—35 ADDBA 36—40 CBBBB 41—45 DABBA

46—50 CBBCC

三、编程题

1、

main( )

{

float stu_ave(float (*p)[5]);

float cour_ave(float *pt);

float score[3][5]={{100,60,70,80,67},{62,71,98,45,57},{90,39,89,39,90}};

int I;

for(I=0;I<3;I++)

printf(“%f”,stu_ave(score+i));

for(I=0;I<5;I++)

printf(“%f”,cour_ave(score[0]+i));

}

float stu_ave(float (*p)[5])

{

int j; float sum;

float sum=0,ave;

for(j=0;j<5;j++)

sum=sum +*(*p+j);

return(sum/5)

}

float cour_ave(float *pt)

{int I;

float sum;

for(I=0;I<3;I++)

{sum=sum+*pt;

pt=pt+5;

}

return(sum/3);

}

2、

main( )

{char s[80],*p,*q;

int a[80],I,t=0,flag=0;

gets(s);p=s;q=s;

for( ; *p!=?\0? ; p++)

{ if((*p>=?0? && *p<=?9?)&&(flag= =0))

{flag=1;q=p;}

if!((*p?9?)&&(flag= =1))

{t=0;

for(;q

s=s*10+(*q-…0?);

a[j]=s; j=j+1; flag=0;

}

}

}

3、

float f1(float x)

{return(1+x*x);}

float f2(float x)

{return(1+x+x*x+x*x*x);}

float f3(float x)

{return(x/(1+x*x));}

float integral(float a,float b,float (*fun)( ))

{ int n=100,I;

float s,h=(b-a)/n;

s=((*fun)(a)+(*fun)(b))/2;

for(I=1;I

s=s+(*fun)(a+I*h);

return(s*h);

}

main( )

{

printf(“%f”,integral(0,1,f1)); printf(“%f”,integral(0,2,f2)); printf(“%f”,integral(0,3.5,f3)); }

C语言程序设计第四版第六章答案-谭浩强

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

《C语言程序设计教程》(第三版)李凤霞 主编——第一章习题答案

第一章:程序设计基础知识 一、单项选择题 1、面向过程的程序设计语言是________。 A)机器语言 B)汇编语言 C)高级语言 D)第四代语言 2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是_________。 A)设计数据结构和算法B)建立数学模型 C)编写程序 D)调试和运行程序 3、以下常用算法中适合计算等差级数的算法是_________。 A)枚举法B)递推法 C)分治法 D)排序法 4、以下不属于算法基本特征的是__________。 A)有穷性 B)有效性C)可靠性 D)有一个或多各输出 5、以下描述中不正确的是___________。 A)程序就是软件,但软件不仅仅是程序。 B)程序是指令的集合,计算机语言是编写程序的工具。 C)计算机语言都是形式化的语言,它有一个语法规则和定义。 D)计算机语言只能编写程序而不能表示算法。 6、下面描述中,正确的是_____________。 A)结构化程序设计方法是面向过程程序设计的主流。 B)算法就是计算方法。 C)一个正确的程序就是指程序书写正确。 D)计算机语言就是编写程序的工具而不是表示算法的工具。 7、下面描述中,不正确的是______________。 A)递归法的关键是必须有一个递归终止的条件。 B)递归算法要求语言具有反复自我调用子程序的能力。 C)对于同一个问题,递推算法比递归算法的执行时间要长。 D)递推算法总可以转换为一个递归算法。 8、N-S图与传统流程图比较,主要优点是_________。 A)杜绝了程序的无条件转移。 B)具有顺序、选择和循环三种基本结构。 C)简单、只管。 D)有利于编写程序。 A)B)C)D) 二、填空题 1、在流程图符号中,判断框中应该填写的的是________。(判断条件) 2、结构化程序设计是__________应遵循的方法和原则。(面向过程编程) 3、结构化程序必须用__________程序设计语言来编写。(具有结构化控制语句) 4、可以被连续执行的一条条指令的集合称为计算机的________。(程序) 5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。(面向对象) 6、任何简单或复杂的算法都是由_____和_____这两个要素组成。(功能操作流程控制) 7、算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。(有穷性) 8、在三种基本结构中,先执行后判断的结构被称为_________。(直到型循环结构) 9、在程序设计中,把解决问题确定的方法和有限的步骤称为______。(算法) 10、程序设计风格主要影响程序的________。(可读性)

C语言第六章习题带答案

练习6-1答案 一、选择题 1.已知函数abc的定义为: void abc() {……} 则函数定义中void的含义是( A )。 A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回C.执行函数abc后,可以返回任意类型 D.以上三个答案全是错误的 2.已知:int p();,p是( C )。 A.int型变量 B.函数p的调用 C.一个函数声明,该函数的返回值是int型的值 D.强制类型转换表达式中的变量 3.以下正确的函数形式是( D )。 A.double fun(int x, int y) B.fun(int x, y) { z=x+y; return z; } { int z; return z; } C.fun(x, y) D.double fun(int x, int y) { int x, y; double z; z=x+y; return z; } { double z; z=x+y; return z; } 4.以下说法正确的是( C )。 A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式 C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准 D.如果形参与实参的类型不一致,以实参类型为准 5.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。 A.float 型B.int型C.long型D.double型6.下面函数调用语句含有实参的个数为( B )。 func((exp1, exp2), (exp3, exp4, exp5)); A.1 B.2 C.4 D.5 7.以下程序的功能是计算函数F(x, y, z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include #include float f(float, float); main() {float x, y, z, sum; scanf("%f%f%f", &x, &y, &z); sum=f( ①B )+f( ②C ); (注:或者选择sum=f( ①C )+f( ②B )) printf("sum=%f\n", sum); } float f(float a, float b) {float value; value=a/b;

C语言基础练习题(含答案)Word版

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。B A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C语言标识符的是()。B A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是()。A A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。B A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。B A.\\ B.\0xAA C.\t D.\0 6. 不属于C语言关键字的是()。d A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。b A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是()。b A.scanf B.Void C._3com_ D.int 9. 一个C程序是由()。 b A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 c A.程序行 B.语句 C.函数 D.字符 11. 下列说法中,错误的是()。 a A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 c A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

《C语言程序设计》第1章 C语言概述练习题答案

第一章 C语言概述练习题 一、选择题 1.C语言是一种( )。 A) 机器语言B) 汇编语言C) 高级语言D) 低级语言 2.下列各项中,不是C语言的特点是( )。 A) 语言简洁、紧凑,使用方便B) 数据类型丰富,可移植性好 C) 能实现汇编语言的大部分功能D) 有较强的网络操作功能 3.下列叙述正确的是( )。 A) C语言源程序可以直接在DOS环境中运行 B) 编译C语言源程序得到的目标程序可以直接在DOS环境中运行 C) C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D) Turbo C系统不提供编译和连接C程序的功能 4.下列叙述错误的是()。 A) C程序中的每条语句都用一个分号作为结束符 B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 5.一个C程序的执行是从()。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 6.以下叙述不正确的是()。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 7.C语言规定:在一个源程序中,main函数的位置( )。 A)必须在程序的开头B)必须在系统调用的库函数的后面 C)可以在程序的任意位置D)必须在程序的最后 8.一个C语言程序是由( )。 A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成D) 若干子程序组成 9.以下有4组用户标识符,其中合法的一组是()。 A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define 10. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 ()。 A) 有零个或多个输入B) 有零个或多个输出C) 有穷性D) 可行性 二、填空题 1.汇编语言属于面向( 面向机器的 )语言,高级语言属于(面向问题的)语言。 2.用高级语言编写的程序称为(源)程序,它可以通过解释程序翻译一句执行一句的方式 执行,也可以通过编译程序一次翻译产生(目标)程序,然后执行。

最新数据结构C语言版章节练习题(1-6章)知识分享

数据结构章节练习题 第一章绪论 一、单选题 1.一个数组元素a[i]与________的表示等价。 A、 *(a+i) B、 a+i C、 *a+i D、 &a+i 2.下面程序段的时间复杂度为____________。 for(int i=0; i

C语言程序设计教程第一章练习题题目

单选题 1、下列语言中不属于计算机语言的三大类的是(C)。 A.机器语言 B.汇编语言 C.脚本语言 D.高级语言 2、下列说法中不正确的是(C) A.计算机语言大致可分为三大类,即机器语言、汇编语言和高级语言 B.C语言是一种通用的、过程式的编程语言,具有高效、灵活、可移植等优点 C.C语言属于汇编语言 D.高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用 3、以下开发工具中不属于主流的开发工具的是(B) A.Visual Studio B.Xcode C.Code::Block D.Eclipse 4、下列选项是对主流开发工具的介绍,其中错误的是(B) A.Visual Studio支持C/C++、C#、F#、VB等多种程序语言的开发和测试 B.Code::Block是一个免费的跨平台IDE,支持C、C++和Fortan程序的开发 C.Eclipse是一种被广泛使用的免费跨平台IDE,最初由IBM公司开发 D.Vim是一款功能非常强大的IDE ( 和其他IDE不同的是,Vim本身并不是一个用于开发计算机程序的IDE,而是一款功能非常强大的文本编辑器,它是UNIX系统上Vi编辑器的升级版。) 5、下列选项中,不属于开发一个C语言应用程序的具体实现步骤的是(A) A.启动开发工具 B.添加源文件 C.编写代码 D.运行程序 6、下列选项中,关于main()函数叙述不正确的是(C) A.一个完整的C语言程序中,有且只能有一个main()函数 B.main()函数是程序的主入口,程序总是从main()函数开始执行 C.如果没有声明main()函数,程序将从第1行开始执行 D.main()函数可以有返回值,也可以没有返回值 7、下面程序中,合法的选项是(D) A.#includeint main() { printf("hello world\n"); return 0; } B.#includeint man() { printf("hello world\n"); return 0; } C.#includeint main() { printf("hello world\n") return 0; } D.#includeint main() { print("hello world\n"); return 0; } 8、下面程序中,运行结果为“1,2”的是(A) A.#includeint main() { int a = 1; int b = 2; printf("%d %d\n",a,b); return 0; } B.#includeint main() { int a = 1; int b = 2; printf("%d,"a); printf("%d\n",b); return 0; } C.#includeint main() { int a = 1, b = 2; printf("%d,,%d\n",a,b); return 0; }

c语言习题第六章下解析

/*下列给定程序中函数fun的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s 中的字符按正序连接到t串的后面。 例如,当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include #include #include void fun (char *s, char *t ) { int i,s1; s1=strlen(s); for (i=0;i

第一章C语言概述习题附答案

第一章C语言概述 一、单选题 1. C语言程序的执行,总是起始于()。C A.程序中的第一条可执行语句 B.程序中的第一个函数 C.main函数 D.包含文件中的第一个函数 分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。本题正确答案为C。 2、C语言程序的基本单位是()。C A)程序行B)语句C)函数D)字符 3、C语言中规定:在一个源程序中main函数的位置()。C A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 4、以下述叙正确的是()。C A.在C程序中,main函数可有可无 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 5、能将高级语言编写的源程序转换为目标程序的是()。C A.链接程序 B.网络程序 C.编译程序 D.WORD字处理程序 6、下列说法中正确的是()。C A)C程序书写时,不区分大小写字母 B)C程序书写时,一行只能写一个语句 C)C程序书写时,一个语句可分成几行书写 D)C程序书写时每行必须有行号 分析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。本题正确答案为C。 7、下面对C语言特点,不正确描述的是()。C A)C语言兼有高级语言和低级语言的双重特点,执行效率高 B)C语言既可以用来编写应用程序,又可以用来编写系统软件 C)C语言的可移植性较差 D)C语言是一种结构式模块化程序设计语言 分析:C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。本题正确答案为C。 8、C语言源程序的最小单位是()。D A)程序行B)语句C)函数D)字符 分析:程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。本题正确答案为D。 9.计算机内部运算使用的数是()。C A)十进制数B)十六进制数C)二进制数D)八进制数

C语言全部章节习题集(参考答案)

第一章 C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 [ 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 ~ A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 》 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 ~ 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

C语言第六章数组习题

C语言第六章数组习题 第六章数组 6.1 选择题 [题]在C语言中,引用数组元素时,其数组下标的数据类型允许是_____. A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 [题]以下对一维整型数组a的正确说明是_____。 A)int a(10);B)int n=10,a[n]; C)int n;D)#define SIZE 10 scanf(\%d,&n);int a[SIZE]; int a[n]; [题]若有说明:int a[l0];则对a数组元素的正确引用是_____。 A) a[10] B)a[3.5] C)a(5) D)a[10-10] [题]在C 语言中,一维数组的定义方式为:类型说明符数组名_____。 A)[常量表达式] B)[整型表达式] C)[整型常量]或[整型表达式] D)[整型常量] [题]以下能对一维数组a进行正确初始化的语句是_____。 A)int a[l0]=(0,0,0,0,0); B)int a[l0]={}; C)int a={0};D)int a[10]={10*1}; [题]以下对二维数组a的正确说明是_____。

1 A)int a[3]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); [题]若有说明:int a[3][4];则对a数组元素的正确引用是_____。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) [题]若有说明:int a[3][4];则对a数组元素的非法引用是_____。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] [题]以下不能对二维数组a进行正确初始化的语句是_____。 A)int a[2][3]={0}; B)int a[3]={{1,2},{0}}; C)int a[2][3]={{l,2},{3,4},{5,6}}; D)int a[3]={1,2,3,4,5,6}; [题]若有说明:int a[3][4]={0};则下面正确的叙述是_____。 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 [题]若有说明:int a[3][4];则数组a中各元素_____。 2

C语言第一章习题带答案

练习1-1答案 选择题 1.下列4组字符串中都可以用作C语言程序中的标识符的是( D )。 A.print 3d oodb B.I\m one_half start$it C.Pxq my->book line# D.str_1 Cpp into 2.下面的说法正确的是( C )。 A.C程序由符号构成B.C程序由标识符构成 C.C程序由函数构成D.C程序由C语句构成3.与十进制数35相等的二进制数是( A )。 A.100011 B.01001 C.100110 D.100101 4.与47值相等的十六进制数是( A )。 A.2F B.215 C.32F D.115 5.(01101)2 + (101101)2的值是( B )。 A.(101010)2 B.(3A)16 C.(2A)16 D.57 6.将15向左移动2位后的值是( D )。 A.(3C)16 B.(00111100)2 C.(60)10 D.都正确7.将250与5进行按位与的结果是( A )。 A.0 B.1 C.(FF)16 D.(F0)16 8.将(AF)16与(78)16进行按位异或的结果是( A )。 A.(D7)16 B.(28)16 C.(D8)16 D.(27)16 9.将(717)8按位取反的结果是( B )。

A.(110001)2 B.(060)8 C.(60)10 D.都不正确 练习2-1答案 选择题 1.C语言中的简单数据类型包括( B )。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的int类型的常数是( A )。 A.32768 B.0 C.037 D.0Xaf 3.下列常数中不能作为C的常量的是( D )。 A.0x45 B.2.5e-2 C.3e2 D.0582 4.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( B )。 A.0至255 B.0~65535 C.-32768~32767 D.-256~255 5.下面4个选项中,均是合法转义字符的选项是( A )。 A.'\'','\\','\n' B.'\','\017','\' C.'\018','\f','xab' D.'\\0,'101','x1f 6.在C语言中,数字029是一个( D )。 A.八进制数B.十六进制数 C.十进制数D.非法数 7.下列可以正确表示字符型常数的是( B )。 A."a" B.'\t' C."\n" D.297 8.以下( C )是错误的转义字符。 A.'\\' B.'\'' C.'\81' D.'\0'

C语言第六章习题1

第6章作业 一.选择题 1.以下while循环中,循环体执行的次数是:() k=1; while (--k) k=10; a) 10次b) 无限次c) 一次也不执行d) 1次 2.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:() x=0; while (!x!=0) x++; a) 退出while循环后,x的值为0 b) 退出while循环后,x的值为1 c) while的控制表达式是非法的 d) while循环执行无限次 3. 有以下程序段,其中n为整型变量,执行后输出结果是:() n=20 ; while(n--) ; printf(“%d”,n) ; a) 2 b) 19 c) -1 d) 0 4. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:() t=1; while (-1) { t--; if(t) break;} a) 循环一次也不执行 b) 循环执行一次 c) 循环控制表达式(-1)不合法 d) 循环执行2次 5. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:() x=-1; do {;} while (x++); printf(“x=%d”,x); a) 该循环没有循环体,程序错误 b) 输出x=1 c) 输出x=0 d) 输出x=-1 6. 有以下程序段,其中x,y为整型变量,程序输出结果是:() for(x=0,y=0;(x<=1)&&(y=1);x++,y--) ;

printf(“x=%d,y=%d”,x,y); a) x=2,y=0 b) x=1,y=0 c) x=1,y=1 d) x=0,y=0 7. 有以下程序: main() { int x=3,y; do { y=--x; if( !y) printf(“x”) ; else printf(“y”) ; } while(x); } 程序的输出结果是:() a) xyx b) yyx c) yxx d) yxy 8. 有以下程序段,此处do-while循环的结束条件是:() int n=0,p; do {scanf(“%d”,&p);n++;} while (p!=12345&&n<3); a) p的值不等于12345并且n的值小于3 b) p的值等于12345并且n的值大于等于3 c) p的值不等于12345或者n的值小于3 d) p的值等于12345或者n的值大于等于3 9. 有以下程序: main() { int a,b,t; for(a=3,b=0 ;!a==b ;a--,b++) if(a>b) { t=a;a=b;b=t;} printf(“%d,%d\n”,a,b); } 程序的输出结果是:() a) 4,1 b) 1,4 c) 4,-1 d) -1,4 10. 有以下程序: main() { int x=3,y=0; do { while( !y) y=-x; } while(x--); printf(“%d,%d\n”,x,y); } 程序的输出结果是:() a) -1,3 b) -1,-3 c) 0,0 d) 1,-3 11. 有以下程序: main() { int m,n;

c语言 第6章作业

书面作业8 专业理科学号3120101717 姓名马凌浩 习题6 一、选择题 1.设float x=2.5, y=4.7; int a=7;,printf(“%.1f”, x+a%3*(int)(x+y)%2/4)的结果为 A 。 A.2.5 B.2.8 C.3.5 D.3.8 2.执行下列程序段的输出结果是 C 。 int a = 2; a += a *= a -= a *= 3; printf("%d", a); A.-6 B.12 C.0 D.2 3.设字符型变量x 的值是064,表达式“~ x ^ x << 2 & x”的值是 A 。 A.0333 B.333 C.0x333 D.020 4.设a 为整型变量,不能正确表达数学关系:1010 && a<15 D.!(a<=10) && !(a>=15) 5.设以下变量均为int 类型,表达式的值不为9 的是 C 。 A.(x=y=8,x+y,x+1) B.(x=y=8,x+y,y+1) C.(x=8,x+1,y=8,x+y) D.(y=8,y+1,x=y,x+1) 二.填空题 1 .-127 的原码为11111111 、反码为10000000 、补码为10000001 。 2.逻辑表达式x && 1 等价于关系表达式if(x==0) 表达式的值为0;else 表达式的值为1;。3.设int a=5, b=6; 则表达式(++a==b--)? ++a : --b 的值是7 。 4.设c = 'w', a = 1, b = 2, d = -5, 则表达式'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==(a=2)的值 分别为 1 、0 、 1 、 1 。 5.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为c1=2,c2=5 。 #include int main(void) { int c1 = 0, c2 = 0; char ch; while((ch = getchar()) !=?#?) switch(ch){ case …a?: case …h?: c1++; default: c2++; } printf(“c1=%d,c2=%d\n”, c1, c2); return 0; }

《明解C语言》第1章 初识C语言练习题答案

【个人观点】 练习1-1 #include int main(void) { printf("15减去的结果是%d\n",15 - 37); return (0); } 练习1-2 #include int main(void) { printf("风\n林\n火\n山\n"); return (0); } 练习1-3 #include int main(void) { printf("喂!\n您好!\n\n再见\n"); return (0); } 练习1-4 #include int main(void) { int no; printf("请输入一个整数:"); scanf("%d",&no); printf("它与10的和是:%d\n",10 + no); return (0); } 练习1-5 #include

int main(void) { int no; printf("请输入一个整数:"); scanf("%d",&no); printf("该数减去10的结果是:%d\n",no - 10); return (0); } 练习1-6 #include int main(void) { puts("风"); puts("林"); puts("火"); puts("山"); } 练习1-7 #include int main(void) { int n1,n2; int wa; puts("请输入两个整数:"); printf("整数:"); scanf("%d",&n1); printf("整数:"); scanf("%d",&n2); wa = n1 * n2; printf("它们的和是:%d\n",wa); return (0); } 练习1-8 #include

C语言第六章数组习题答案

第六章 数组 习题答案 2、0 4 3、0 6 4、&a[i] i%4==0 printf("\n"); 5、i+j==3_ a[i][j] 6、12 7、a[i][j]+b[i][j] printf(“\n ”) 8、按行存放 9、( a[i]>a[j]) 10、将串str2复制到串str1中后再将串str3连接到串str1之后 三、阅读题 1、如右图所示 2、AQM 3、AzyD 4、9198 5、如右图所示 6、92 7、1,2,5,7, 8、2 9、v1=5,v2=8,v3=6,v4=1 10、a*b*c*d* 四、编程题 1(1)选择法排序 #include void main( ) {int i,j,n=10,p,a[10];int temp; for(i=0;i

for(j=i+1;j void main( ) {int i,j,n=10,p,a[10];int temp; for(i=0;ia[j]) {temp=a[i];a[i]=a[j];a[j]=temp;} printf("\n排序后的一维数组:\n"); for(i=0;i void main( ) {int a[11],i,n=10,k; int point; printf("\n 请输入原始数据:\n"); for(i=0;ik) {point=i; break;} if(i!=n) {for(i=n;i>point;i--) a[i]=a[i-1]; a[point]=k;} /*从后向前方式*/ else a[n]=k; printf("插入后的数是:\n"); for(i=0;i int main() {int i,j,upp,low,dig,spa,oth; char text[3][80];

C语言预习及课后习题

第一章 C 语言概述 课前预习题 1.函数 2.main()函数 3.单行注释、块注释、A 参考分析:C 语言总是从main 函数开始,main 函数结束。但是C 语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。如果不考虑exit(0)等函数的特殊作用,C 则总是在main 函数结束。 2. C 参考分析:C 程序对main 函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C 语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。因此,如果注释中存在错误,系统是不可能发现的。另外,C 语言的I/O 操作均通过函数实现,系统本身未提供相应的语句。 3. D 参考分析:C 语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。C 语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。 4. C 5. B 参考分析:通常许多语言程序由主程序和子程序构成,但是C 语言是函数式语言,整个程序由众多函数组成。尽管有时习惯上称main 函数为主程序,显然,严格地讲还是B 更为符合C 语言的规则。 6.C 7.B 8.C 9.C 10.C 11.绘制NS 算法流程图。 (1)输入10个数,求其中的最大值。 (2)输入3个数,将它们升序排列输出。 (3)输入2个数,求它们的最大公约数。(4)输入一元二次方程的系数a 、b 、c ,判断其根。 第二章 数据类型、运算符与表达式 课前预习题 1.变量在内存中所占的字节数、变量的表数范围、变量允许参与的运算 2.1、4、8 3.float 、double 4.八进制、十进制、十六进制 5.1 6.26 7.12、4 8.6、4、2 9.-60 10.2 11.10、6 12. 13. 14.4 15.1 16.0 17.9 18.字符、数字、下划线 19.'f' 20. 21.int 型 22.m/10%10*100+m/100*10+m%10 课后习题 1.A 分析:在不同的计算机系统中,不同的C 语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有A 符合16位PC 机中的具体环境。 2.C 参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号内最后一个表达式,因此x 变量的值来自k 变量的值。 3.B 参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b 进行自增运算,故a+b 的值为2+6=8。 4.A 参考分析:是关键字的有:char 、case 、while 。

相关文档
相关文档 最新文档