- 关于指针的概念,错误的是:( )
A. 指针是变量,用来存放地址
B. 指针变量中存的有效地址可以唯一指向内存中的一块区域
C. 野指针也可以正常使用
D. 局部指针变量不初始化就是野指针
AC
以下系统中,int类型占几个字节,指针占几个字节,操作系统可以使用的最大内存空间是多大:( )
A.32位下:4,4,2^32 64位下:8,8,2^64
B.32位下:4,4,不限制 64位下:4,8,不限制
C.32位下:4,4,2^32 64位下:4,8,2^64
D.32位下:4,4,2^32 64位下:4,4,2^64
C
写一个函数打印arr数组的内容,不使用数组下标,使用指针。
#include<stdio.h>
#include<stdlib.h>
int main(void){
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int i;
int *p;
p = arr;
for(i = 0;i<10;i++)
{
printf("%d",*(p+i));
}
system("pause");
return 0;
}
- 下面代码输出的结果是:( )
#include <stdio.h>
int main()
{
int a = 0x11223344;
char pc = (char)&a;
*pc = 0;
printf("%x\n", a);
return 0;
}
A. 00223344
B. 0
C. 11223300
D. 112233
C
- 下面代码的结果是:( )
#include <stdio.h>
int main()
{
int arr[] = {1,2,3,4,5};
short p = (short)arr;
int i = 0;
for(i=0; i<4; i++)
{
*(p+i) = 0;
}
for(i=0; i<5; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
A. 1 2 3 4 5
B. 0 0 3 4 5
C. 0 0 0 0 5
D. 1 0 0 0 0
C
- 下列程序段的输出结果为( c )
unsigned long pulArray[] = {6,7,8,9,10};
unsigned long *pulPtr;
pulPtr = pulArray;
*(pulPtr + 3) += 3;
printf(“%d,%d\n”,*pulPtr, *(pulPtr + 3));
A.9,12
B.6,9
C.6,12
D.6,10
- 下面关于指针运算说法正确的是:( abc )
A. 整形指针+1,向后偏移一个字节
B. 指针-指针得到是指针和指针之间的字节个数
C. 整形指针解引用操作访问4个字节
D.指针不能比较大小
- 写一个函数,可以逆序一个字符串。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void Reverse(char *p);
int main(void){
char arr[] = "hello bit";
Reverse(arr);
printf("%s ", arr);
system("pause");
return 0;
}
void Reverse(char *p){
int i = 0;
char tmp = 0;
int len = strlen(p);
for( i = 0;i<len/2;i++){
tmp = p[i];
p[i] = p[len - i - 1];
p[len - i - 1] = tmp;
}
return ;
}
- 关于二级指针描述描述正确的是:( bd )
A. 二级指针也是指针,只不过比一级指针更大
B. 二级指针也是指针,是用来保存一级指针的地址
C. 二级指针是用来存放数组的地址
D. 二级指针的大小是4个字节
- 下面哪个是数组指针:( d )
A. int* arr[10];
B. int * arr[];
C. int **arr;
D. int (*arr)[10];
屏幕输出星星
#include<stdlib.h>
int main(void){
int i,j,k;
for(i = 0;i < 7;i++){
for(j = 0;j < 6 - i;j++){
printf(" ");
}
for(k = 0;k < 2 * i + 1;k++)
{
printf("*");
}
printf("\n");
}
for(i = 0;i < 7;i++){
for( j = 0;j <=i;j++){
printf(" ");
}
for(k = 0;k < 11-2*i;k++){
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
水仙化数
#include<stdio.h>
#include<stdlib.h>
int main(void){
int num,i,j,k;
for(num = 0;num <= 100000;num++){
i = num/100;
j =(num-i*100)/10;
k = num%10;
if(num == i*i*i+j*j*j+k*k*k)
printf("%d ",num);
}
printf("\n");
system("pause");
return 0;
}
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
#include<stdio.h>
#include<stdlib.h>
int main(void){
int i;
int a = 0,sum = 0,num = 0;
scanf("%d",&num);
for(i = 0 ;i < 5;i++){
a = a * 10 + num;
sum = a + sum;
}
printf("%d",sum);
system("pause");
return 0;
}