C语言的指针一向使人头疼,下面是从网上收集的一下关于指针的练习题,忘了作者是谁了,先贴上供大家参考:
第一题:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
main()
{
char *p,*q;
char str[]="Hello,World\n";
q = p = str;
p++;
printf(q);
printf(p);
}
运行结果是什么?____________
第二题:
void fun(char* str1, char* str2)
{
static char buffer[21];
strncpy(buffer, str1, 10);
strncat(buffer, str2, 10);
*str1 = *str2;
str1 = buffer;
}
main()
{
char *str1="ABC\n";
char *str2="BCD\n";
fun(str1, str2);
printf(str1);
printf(str2);
}
程序运行结果是__________________
第三题:
main()
{
short ar[11]={1,2,3,4,5,6,7,8,9,0,11};
short* par=&ar[1];
int i;
for(i=0; i<10; i++)
{
printf("%-5hd%-5hd%-5hd", ar[i], par[i],*(ar+i));
}
}
程序运行结果是__________________
第四题:
main()
{
short *p, *q;
short ar[10]={0};
p = q = ar;
p++;
printf("%5d", p-q);
printf("%5d", (char*)p - (char*)q);
printf("%5d", sizeof(ar)/sizeof(*ar));
}
假设sizeof(short)==2
程序运行结果是__________________
第五题:
int sub(int a, int b)
{
return a-b;
}
main()
{
typedef int (*SUB)(int, int);
SUB psub=sub;
/* psub++; */
printf("%d", psub(10,(10,5)));
}
程序运行结果是__________________, 如果将中间注释掉的语句加上, 编译为什么会报错?
第六题:
main()
{
char* pstrar[3];
int i;
for(i=1; i<3; i++)
{
pstrar[i]=" ";
}
strcpy(pstrar[1], "你好");
/* strcpy(pstrar[0], "世界"); */
printf(pstrar[2]);
}
假设编译器设置字符串常量为可读写,则程序结果是_____________
为什么说注释掉的程序语句是不正确的?
第七题:
main()
{
char *p1,*p2;
{
char* pchar;
char charar[] = "你好,世界";
pchar = "Hello,World!";
p1 = pchar;
p2 = charar;
}
printf(p1);
printf(p2);
}
说出此程序的错误之处?
第八题:
main()
{
int i;
char **p;
int msg[16]={0x40, 0x41, -1, 0x00, 0x01, -1, 0x12, -1, 0x20, 0x27, 0x41, 0x35, -1, 0x51, 0x12, 0x04};
char* strar[]={"bejing", "shanghai", "guangzhou", "guangdong", "Tokyo", "American"};
char* (*pstrar)[6];
pstrar = &strar;
p = strar;
for(i=0; i<16; i++)
{
if(msg[i] == -1)
{
putchar(' ');
continue;
}
else if(msg[i]&0xF0 == 0x40)
{
putchar(p[msg[i]>>4][msg[i]&0x<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F">0F</chmetcnv>]);
continue;
}
else if(msg[i]&0xF0 == 0x30)
{
putchar(*(strar[msg[i]>>4]+(msg[i]&0x<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F">0F</chmetcnv>)));
continue;
}
else
{
putchar(*((*pstrar)[msg[i]>>4]+(msg[i]&0x<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F">0F</chmetcnv>)));
}
}
}
此题有故弄玄虚之处,但如理解指针,不难解出.
请问此题的运行结果是____________________
第九题:
main()
{
typedef char CA3[2][2][2];
typedef CA3 *PCA3;
typedef char CA2[2][2];
typedef CA2* PCA2[2];
CA3 ca3={'A', '\0', 'B', '\0', 'C', '\0', 'D', '\0'};
PCA3 pca3 = &ca3;
PCA2 pca2={ca3, ca3+1};
int i=0,j=0;
for(i=0; i<2; i++)
{
printf("\n");
printf("%s\n", (char*)pca3[0][i]);
printf("%s\n", (*(pca2+i))[0][1]);
for(j=0; j<2; j++)
{
putchar(*(*(ca3+i)+j)[0]);
putchar(' ');
}
}
}
求输出的结果是:_____________________
第十题:
/*C++ 题*/
#include
class Display
{
public:
virtual int ShowIt(int num) {printf("%d\n", num); return 0;}
int ShowIt(double num) {printf("%lf\n", num); return 0;}
};
class DisplayEx: public Display
{
public:
int ShowIt(int num) {printf("It is Integer, value is %d\n", num); return 0;}
int ShowIt(const char* str) {printf("%s\n", str); return 0;}
};
int main()
{
DisplayEx dpex;
Display *p_base=&dpex;
p_base->ShowIt(168);
p_base->ShowIt(1.68);
dpex.ShowIt("Hello,World\n");
dpex.ShowIt(1.69);
dpex.Display::ShowIt(1.69);
return 0;
}
请说出其运行结果___________________
详细叙述c++编译器实现这一过程的方法.
分享到:
相关推荐
本资源主要涵盖了C语言指针的相关知识点,包括指针的基本概念、指针运算、指针与数组的关系、指针与字符串的关系等。通过本资源的学习,可以帮助读者更好地理解和掌握C语言指针的知识。 一、指针的基本概念 指针是...
理解指针的使用是掌握C语言的关键。本文将深入探讨指针的一些注意事项,尤其是如何理解和解析复杂的指针类型。 首先,我们要明白指针的基本概念。一个指针变量存储了一个内存地址,这个地址指向了另一个变量。例如...
C语言中的指针是一种基础而...本文档为C语言指针的学习笔记,从基础到深入逐步介绍了指针的概念、定义、初始化、运算和使用。通过本文档的阅读,学习者应能更好地掌握C语言中的指针知识,并在实际编程中正确使用指针。
虽然指针的使用具有一定的难度和复杂性,但是只要我们遵循正确的声明规则,理解指针类型和指针所指向类型的差异,掌握指针的基本操作,并注意使用指针时的安全性问题,我们就能充分利用指针的强大功能,编写出更加...
综上所述,C语言指针的知识点涵盖了指针声明、初始化、运算、与数组和函数的关系、字符串处理、内存管理、类型转换以及高级用法等。掌握这些知识点,有助于编写高效、复杂的C程序。在学习指针时,务必注意指针的类型...
本文主要讨论了使用C语言指针实现字符串的反转的方法,并提供了两个不同的实现程序。 标题解释 "C语言指针实现字符串的反转"这个标题表明本文的主要内容是使用C语言中的指针来实现字符串的反转操作。 描述解释 ...
### C语言指针用法难点解析 在C语言中,指针是一种强大的工具,它能够直接操作内存地址,实现高效的数据处理与管理。然而,由于其复杂性与灵活性,掌握指针的正确使用方法成为了很多程序员面临的一大挑战。本文将...
### 彻底搞定C语言指针(分类讲解) #### 知识点一:变量与内存空间 在深入了解C语言指针之前,首先需掌握变量在内存中的存储方式。内存被视为一系列连续的单元,每个单元拥有唯一的地址标识。当声明一个变量如`...
### C语言中指针的知识点 #### 一、引言 C语言作为一种高效且功能强大的编程语言,在系统级编程和底层开发中具有不可替代的地位。其中,指针是C语言中一个非常重要的特性,它允许程序员直接操作内存,极大地提高了...
C语言指针知识点总结 本资源摘要信息主要介绍C语言指针的相关知识点,涵盖指针的基本概念、...本资源摘要信息总结了C语言指针的基础知识点和高级应用场景,旨在帮助开发者更好地理解和使用指针这项重要的编程技术。
### C语言指针学习笔记知识点解析 #### 一、C语言中的数据类型 在学习C语言的过程中,了解数据类型是非常重要的第一步。数据类型不仅决定了变量所占用的内存大小,还决定了变量的操作方式。 ##### 1. 基本数据...
总之,C语言指针的深入学习包括理解指针的性质、操作和用途,以及如何安全有效地使用指针进行程序设计。通过不断的实践和理解,你将能够得心应手地运用指针,进一步提升你的C语言编程能力。记得阅读提供的"让你不再...
### C语言指针知识点解析 #### 一、基础指针表达式求值 根据题目描述,我们有以下信息: - `ints` 数组在内存中的起始位置是 100,每个整型值和指针占用 4 个字节。 - `ints` 数组初始化为 `{10,20,30,...,200}`。...
《灵活使用C语言指针--深入理解C语言指针》这篇文章详细探讨了C语言中指针的使用,这是C语言核心特性之一。指针在C语言中扮演着至关重要的角色,因为它允许直接操作内存地址,提供了高效的数据操作和强大的功能。 ...
《C语言指针学习笔记》 指针是C语言中的一种强大特性,它允许程序员直接操作内存地址,实现高效的数据处理和复杂的程序设计。要掌握指针,我们需要理解其四方面的核心概念:指针的类型、指针所指向的类型、指针的值...
在C语言中,指针是其核心特性之一,也是许多高级功能实现的基础。指针能够直接存储内存地址,使得...通过《C语言指针详解》这样的资料,你可以系统地学习和巩固这些知识,消除对指针的畏惧,成为一名更出色的C程序员。
以下是对C语言指针的一些关键知识点的详细阐述: 1. **指针变量**:在C语言中,指针是一种特殊类型的变量,它存储了内存地址。声明指针变量时,我们需要指定它将指向的数据类型,如`int *p`表示`p`是一个指向整型...
"深入理解C语言指针的奥秘"这份资料旨在揭示指针的内在工作原理,帮助开发者掌握这一强大的工具。以下是对指针相关知识点的详细解释: 1. **指针的定义与类型**:指针是一种特殊的数据类型,它存储的是内存地址,即...
C语言中的指针是一个非常核心和重要的概念,它提供了操作内存空间的能力,这对于理解C语言和编写高效的代码至关重要。以下是对文件中提到的知识点的...因此,理解和正确使用指针对于一个C语言程序员来说是非常重要的。