C程序设计复习题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计基础复习题答案

一、填空题

1、C语言所提供的实型变量分为两种类型,它们是float和double 。

2、一个C源程序中至少应包含一个主函数或main函数。

3.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-’3’

4.在标准C

5;

c[4]的值为 100 。

6.在C语言中,引用数组元素时,引用数组元素时,其数组下标的数组类型允许是整型常量或整型表达式。

7.设y为int 型变量,请写出描述“y是偶数”的表达式 (y%2)==0 。

8.设int i=0,j=1,k=2,a=3,b=4; 执行表达式(a=ik)的值为 0 。

9.与表达式 a+=b 等价的另一书写形式是 a=a+b 。

10.有以下定义和语句

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

p[0]=a[1];

则*(p[0]+1)所代表的数组元素是a[1][1] 。

11.代表一个反斜杠字符“\”的转义字符是'\\' 。

12.变量的指针就是变量的地址,存放变量地址的变量就是指针变量,它用来指向另一个变量。

13.++i和i++的不同之处在于i++是先使用i的值后,再执行i=i+1;而++i是先执行i=i+1后,再使用i的值。

14.设x、y和z是int 型变量,且x=3,y=4,z=5, 则表达式! ((x

则f(3)的值是 5 。

16.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。

17.计算表达式:x=(i=4, j=10, k=24)后,x的值为24 。

18.若a和b均是int型变量,且a和b的初值均为5,则计算表达式a+=b++ 后,a的值为10 ,b的值为 6 。

19.设int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; 则表达式*(p+8)的值是9 。

20.若有以下定义:

char a; int b;

float c; double d;

则表达式a*b+d-c值的类型为double 。

21.*(p++)和*(++p)作用不同,它们的意义分别是*(p++)先取*p的值,后使p加1,*(++p)

先使p加1,再取*p

二、程序理解题

请给出运行以下程序的输出结果:

1.

#include

void main()

{ int u=24,v=16,w;

while(v)

{w=u % v; u=v ; v=w;}

printf("%d\n",u);

}

输出结果为: 8

2.

void main()

{ char s[]"Yes\n/No",*ps=s;

puts(ps+4);

*(ps+4)=0;

puts(s);

}

输出结果:/No

Yes

3.

main()

{ int p[7]={11,13,14,15,16,17,18};

int i=0,j=0;

while(i<7 && p[i]%2==1) j+=p[i++];

printf("%d\n",j);

}

输出结果:24 。

4

void main()

{ int arr_sum(int arr[],int n);

int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

int *p,total;

p=a[0];

total= arr_sum (p,12);

printf(“total=%d\n”,total);

}

int arr_sum(int arr[],int n)

{ int i,sum=0;

for(i=0;i

sum=sum+arr[i];

return(sum);

}

5. 给出以下程序的运行结果:

void main()

{ int a,b,c; a=25b=025;c=0x25;printf("%d, %d, %d\n",a,b,c);

}

运行结果:25, 21, 37

6. 给出有下面一段程序的运行结果。

void main()

{ int p[7]={11,13,14,15,16,17,18};

int i=0, ,j=0;

while(i<7 && p[i]%2==1) j+=p[i++];

printf("%d\n",j);

}

运行结果:24

7. 给出有下面一段程序的运行结果。

#include

int fac(int n)

{

static int f=1;

f=f*n;

return(f);

}

void main()

{

int i;

for(i=1;i<=5;i++)

printf("%d!=%d\n",i,fac(i));

}

答案:1!=1

2!=2

3!=6

4!=24

5!=120

8. 给出有下面一段程序的运行结果。

main()

{ int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

int i=0,j=0,s=0;

while(i++<4)

{

if(i==2||i==4) continue;

j=0;

do{ s+= a[j]; j++; } while(j<4);

}

printf("%d\n",s);

}

运行结果:92

三、程序填空题

1.以下程序可判断输入的一个整数是否能被5或13整除,若能整除,输出“yes”并换行,否

相关文档
最新文档