第6章 指针--编程
- 格式:doc
- 大小:26.50 KB
- 文档页数:3
习题解答一、单项选择题1.若定义了int n=2, *p=&n, *q=p;则下面【】的赋值是非法的。
A.p=qB. *p=*qC. n=*qD. p=n【答案】D2.若定义了double *p, a;则能通过scanf函数给输入项读入数据的程序段是【】。
A.p=&a; scanf(“%1e”,p);B. *p=&a; scanf(“%1f”,p);C. p=&a; scanf(“%f”,p);D. p=&a; scanf(“%1f”,a);【答案】C3.若定义了int a[10], i=3, *p; p=&a[5];下面不能表示为a数组元素的是【】。
A.p[-5]B. a[i+5]C. *p++D. a[i-5]【答案】D4.若有如下定义:int n[5]={1,2,3,4,5},*p=n;则值为5的表达式是【】。
A.*+5B. *(p+5)C. *p+=4D. p+4【答案】C5.设变量b的地址已赋给指针变量ps,下面为“真”的表达式是【】。
A.b==&psB. b==psC. b==*psD. &b==&ps【答案】C6.设有以下定义和语句:int a[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是【】。
A.a[0][1]B. a[1][0]C. a[1][1]D. a[1][2]【答案】C7.若定义了char *str=”Hello!”;下面程序段中正确的是【】。
A.char c[ ], *p=c; strcpy(p,str);B.char c[5], *p; strcpy(p=&c[1],&str[3]);C.char c[5]; strcpy(c,str);D.char c[5]; strcpy(p=c+2,str+3);【答案】B8.若有下面的程序段,则不正确的fxy函数的首部是【】。
第6章TUXEDO的服务端编程
TUXEDO服务端编程指的是编写TUXEDO服务器,以响应来自TUXEDO
客户端的请求。
TUXEDO服务器程序的主要工作是接收来自TUXEDO客户端
的请求和数据,并使用CORBA或RPC来处理或响应这些请求。
TUXEDO服
务器程序的具体设计和实现也将受到TUXEDO的软件安装、配置和管理设
置的影响。
TUXEDO服务器程序主要实现的功能有:
(1)服务注册。
服务注册是指在TUXEDO服务器上注册一组服务,使
其可以处理客户端发送的请求。
主要包括服务的类型、服务名称、函数指针、参数和数量等信息。
(2)客户端消息处理。
当TUXEDO服务器接收到客户端发送的请求时,服务器将调用与请求服务对应的函数,并将客户端发送的消息和数据作为
参数传递。
服务器程序需要处理客户端发送的消息、数据和参数,生成响
应消息,并将其回传给客户端。
(3)消息队列处理。
TUXEDO服务器程序需要监听系统的消息队列,
当客户端发送消息到消息队列时,服务器程序将检索相应的消息,并作出
相应的处理。
(4)数据库操作。
TUXEDO服务器程序也可以操作后台数据库来处理
客户端请求,比如客户端请求查询一些表中的数据,服务器程序将读取数
据库并返回查询结果给客户端。
(5)日志管理。
c程序设计第4版C程序设计第4版C语言是一种通用的、过程式的计算机程序设计语言,广泛用于系统软件与应用软件的开发。
自从1972年由丹尼斯·里奇在贝尔实验室开发以来,C语言已经成为计算机编程领域的基石之一。
随着计算机科学的发展,C语言也在不断地更新和完善,其中《C程序设计》这本书就是学习C语言的重要教材之一。
第1章:C语言概述在第4版中,C语言概述部分会对C语言的历史、特点以及它在现代编程中的地位进行介绍。
C语言以其高效性、灵活性和广泛的应用领域而著称。
本章还会简要介绍C语言的基本语法结构和编程范式。
第2章:C语言基础本章将详细介绍C语言的基本元素,包括数据类型、变量声明、运算符和表达式。
此外,还会讲解控制语句,如if语句、switch语句、循环语句(for、while、do-while)等,这些都是编写C程序时不可或缺的基础。
第3章:函数函数是C语言中实现代码复用的重要手段。
本章将介绍函数的定义、声明、调用以及参数传递机制。
同时,也会探讨递归函数的概念和应用。
第4章:数组和字符串数组是存储固定大小同类型元素的集合,而字符串实际上是字符数组的一种特殊形式。
本章将深入讲解一维数组和多维数组的使用,以及字符串处理函数的应用。
第5章:指针指针是C语言中非常强大的一个特性,它允许程序员直接操作内存地址。
本章将介绍指针的基本概念、指针与数组的关系、指针的算术运算以及函数指针等高级主题。
第6章:结构体和联合体结构体和联合体是C语言中用于创建复杂数据类型的工具。
本章将讲解如何定义和使用结构体、联合体以及枚举类型,以及它们在实际编程中的应用。
第7章:预处理器预处理器是C语言编译过程中的一个阶段,它提供了宏定义、文件包含、条件编译等功能。
本章将详细介绍预处理器的使用方法和技巧。
第8章:文件操作文件操作是程序与外部世界交互的一种方式。
本章将介绍如何在C语言中打开、读取、写入和关闭文件,以及文件指针的概念。
第9章:动态内存分配动态内存分配允许程序在运行时申请和释放内存。
第6章指针
1 fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N
个最大值中的最小的那个数作为函数值返回。
请填空。
#include "stdio.h"
#include <stdio.h>
#define N 100
int fun(int(*a)[N])
{ int row,col,max,min;
for(row=0;row<N;row++)
{ for(max=a[row][0],col=1;col<N;col++)
if( [13] )max=a[row][col];
if( row==0)min=max;
else if( [14] )min=max;
}
return min;
}
2 以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数
值返回,并通过形参传回此最大值所在的行下标。
请填空。
#include "stdio.h"
#define N 3
#define M 3
select(int a[N][M],int *n)
{ int i,j,row=1,colum=1;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n= 【17】;
return 【18】;
}
main()
{int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,line=%d\n",max,n);
}
3. mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。
请填空。
int mystrlen(char *str)
{ int i;
for(i=0; 【19】!=‘\0';i++);
return(【20】);}
4、函数sstrcmp()的功能是对两个字符串进行比较。
当s所指字符串和t所指字符串相等时,
返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。
请填空。
#include "stdio.h"
#include <stdio.h>
int sstrcmp(char *s,char *t)
{ while(*s&&*t&& *s== [15] )
{ s++;t++;}
return [16] ;
}
5 输入整型变量a、b的值,利用指针使它们的值交换,并输出交换后a、b的值。
6 有三个整型变量i、j、k。
请编一程序,设置三个指针变量p1、p2、p3,分别指向i、j、k。
然后通过指针变量使i、j、k三个变量的值顺序交换,即把i的原值赋给k,把j的原值赋给i,把k的原值赋给j。
i、j、k的原值由键盘输入,要求输出i、j、k的原值和新值。
7 从键盘输入三个整数,要求设三个指针变量p1,p2,p3,使p1指向三个数的最大者,p2
指向次大者,p3指向最小者,然后按由小到大的顺序输出这三个数。
8 请编写程序,判断一个字符串是否是回文。
若是回文,输出“yes”,否则输出“no”。
回文是顺读和到读都一样的字符串。
要求用指针实现。
9 编一个程序,输入n个互不相等的整数存于数组中,并输出。
程序如发现输入的数据已输入过,则要求重新输入。
要求用指针实现。
10 利用指针,向一整型数组a中输入数据并将数组a中的数据复制到另一个数组b中。
11 编写函数把任意十进制正整数转换成二进制数。
提示:把十进制数不断被2除余数放在一个一维数组中,直到商为0。
结果在主函数中输出。
12 编写函数对字符数组中的字母,按由大到小的顺序进行排序。
13 编一个程序,输入n个整数存于数组。
编写函数找出数组中出现次数最多且是最早出现的整数。
14 编写函数调用随机函数产生0到99之间的随机数,在数组中存入20个互不重复的整数。
要求在主函数中输出结果。
若已定义x为int类型,调用随机函数步骤如下:
#include “stdlib.h”
……
……
x=rand()%100; /*产生0到99的随机数*/
15 有一个数列,有20个整数,今要求编一个函数,它能够对从指定位置开始的n个数按相反顺序重新排列。
例如数列原为:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
若要求对从第五个数开始的10个数进行逆序处理,则得到的新数列为:
1,2,3,4,14,13,12,11,10,9,8,7,6,5,15,16,17,18,19,20
数列中的数在main()函数中输入,在调用函数时应给出从第几个位置开始(以m表示)和要处理的是多少个数(以n表示),例如对上面的情况,m=5,n=10。
最后在main函数中输出新的数列。
16 调用随机函数为5×4的矩阵置100以内的整数,求出每行元素之和,并把和值最大的那一行与第一行上的元素对调。
以上功能都通过函数实现,最后在主函数中输出最终的矩阵。
17 有一个整型二维数组,大小为5×4,要求找出其中最大值所在的行和列,以及该最大值。
请编一个函数max,m和n是该函数形参,数组元素的值在main函数中输入,结果在函数max中输出。
18 编写一个str_len函数,它能对一个字符串测出其长度,函数的返回值就是字符串的长度(说明:长度不包括字符串结束标志“\0”)。
19 请编写函数,判断一个字符串是否是回文。
若是回文,函数返回值为1;否则返回值为0。
回文是顺读和到读都一样的字符串。
20 请编写函数,删除字符串中指定位置上的字符。
删除成功函数返回被删字符;否则返回空值。