c语言程序设计基础单元总结与练习题及答案(6)

2018-12-09 17:21

《C语言程序设计基础》课程单元总结与单元练习 答案

{int b=0; //定义b为自动变量 static int c=3; //定义c为静态局部变量 b=b+1; c=c+1; return b+c; } void main( ) {int a1,a2; a1=f(); a2=f();

printf(\}

5.以下程序输出结果为 。

#include int fun(int n) { }

void main() { }

int i,j=0; for(i=1;i<3;i++)

j+=fun(i); printf(\if(n==1) return 1; else return fun(n-1)+1;

6.以下程序输出结果为 。

#include void fun(int a[ ], int n) { }

void main() { }

int b[5]={1,2,3,4,5}; fun(b,5);

for(int i=0;i<5;i++) printf(\for(int i=0;i

if(a[i]>0) a[i]*=2;

*******************************************************************************

习题答案:

一.选择题

《C语言程序设计基础》课程单元总结与单元练习 答案

1.A 2.A 3.D 4.A 5.B 6.B 7.B

二.填空题

1.11 2.3,2 2,3

3.3,9 4.5,6 5.3 6.2 4 6 8 10

*******************************************************************************

《C语言程序设计基础》课程单元总结与单元练习 答案

单元八 指针的使用

单元总结提升

在本单元中,对指针的理解,以及利用指针访问不同形式的数据是核心内容。通过本单元的学习,我们应该知道:

6. 内存地址就称为指针。C语言允许用一个变量来存放指针,这种变量称为指针变量,而指针变量的值就是某个内存单元的地址。 7. 定义指针变量的一般格式为: 类型标识符 *指针变量名 ,其中: (1)“指针变量名”前面的“*”,表示该变量是指针变量,不能省略。 (2)“类型标识符”表示该指针变量所指向的变量的数据类型。 (3)当一个指针变量已确定指向某类型的变量时,不能再指向另一种类型的变量。 3.指针变量被赋值后即可引用,引用指针变量的一般方法为: *指针变量名 。 4.指针和数组有着密切的关系,任何通过控制数组下标实现的对数组的操作,都可用指针来实现。要通过指针操作数组,首先要建立指针变量与数组之间的关系,然后才能通过指针变量访问数组元素。若有语句段: int a[10]; int *p; p=a;,则对于数组元素的访问方式有 a[i]、 *(p+i) 、 p[i] ,对数组元素地址的表示方式有 a+i 、 p+i 、 &a[i] 。 5.数组名代表数组的首地址,利用函数处理一维数组数据时,函数之间的参数传递为 数组首地址 。将数组的首地址作为实参传递给函数的形参以后,实参数组和形参数组其实是同一段内存中的数据。 6.字符串是存放在某存储区域的一串字符序列,可通过字符数组和字符指针两种方式操作字符串。 7.函数返回值可以是地址(指针类型),返回值为地址的函数定义形式为: <类型标识符> *<函数名> ([形参列表]); 。 通过本单元的学习,应明确地址和指针的关系,掌握使用指针访问内存数据的基本方法。

单元练习

一.选择题

《C语言程序设计基础》课程单元总结与单元练习 答案

1.假设整型变量a的值是12,a的地址是2200,若想使整型指针变量p指向a,以下赋值正确的是( )。 A.&a=2200;

B.*p=12;

C.*p=2200;

D.p=&a;

2.若有定义int *p,m=5,n;,以下正确的程序段是( )。 A.p=&n; scanf\ C.scanf(\

B.p=&n; scanf(\D.p=&n; *p=m;

3.以下合法的定义是( )。 A.str[]={\

B.char *p=\D.char str[13]; str[]=\

C.char *p; strcpy(p, \

4.若有定义int a[ ]={1,3,5,7,9,11}, *p=a;,则能够正确引用该数组元素的是( )。 A.a

B.a[6]

C.*(p--)

D.*(--p)

5.以下程序运行结果为( )。

#include void main( ) { }

char a[]=\char *p,*q; int k; p=a;q=b; for(k=0;k<8;k++)

if(*(p+k)==*(q+k))

printf(\

A.gae B.ga C.Language

D.programe

二.填空题

1.给出以下程序的执行结果 。

#include void main( ) {

int *p1,*p2,*p; int a=10,b=12; p1=&a;p2=&b; if(a

{p=p1;p1=p2;p2=p;} printf(\printf(\

《C语言程序设计基础》课程单元总结与单元练习 答案

}

2.以下程序的功能是把数组元素的最大值放入a[0]中,则条件表达式应为 。

#include void main( ) { }

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

for(i=0;i<10;i++,p++)

if( ) *a=*p; printf(\

3.以下程序的输出结果是 。

#include void main( ) { }

int a[2][3]={{1,2,3},{4,5,6}}; int m,*ptr; ptr=&a[0][0];

m=(*ptr)*(*(ptr+2))*(*(ptr+4)); printf(\

4.下列函数功能是计算str所指字符串的长度,并作为函数值返回。请填空。

int mystrlen(char *str) { }

char *p;

for(p=str; !='\\0';p++); return( ); 5.以下程序中,函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。试问当程序运行时依次输入:abcd、abba和abc三个字符串,则输出结果为 。

#include #include

char *scmp(char *s1,char *s2) { if(strcmp(s1,s2)<0) return(s1);


c语言程序设计基础单元总结与练习题及答案(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:十条路上名校825

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: