指针
指针是一种特殊的数据类型,不同于Int、double、float等常用数据类型,它存储的是数据的地址。C/C++程序员特别重视对指针的学习,因为指针能够通过地址直接操作内存,提高数据操作效率;但同时指针也是一颗危险的“定时炸弹”,如果不能正确操作指针会造成程序未定义行为,导致不知所“错”,产生巨大的维护成本。
-
下列有关指针的用法中,错误的是()。
-
有如下程序,编译运行程序将出现的情况是()。#include<iostream> using namespace std; int main() { int *p; *p=9; cout<<"The value at p:"<<*p; return 0; }
-
下列枚举类型的定义中,包含枚举值3的是()。
-
有以下程序#include <stdio.h> void swap(char *x,char *y) { char t; t=*x; *x=*y; *y=t; } main() { char *s1,*s2; char a[]="abc"; char b[]="123"; s1=a; s2=b; swap(s1,s2); printf("%s,%s\n",s1,s2); }程序执行后的输出结果是( )。
-
有以下程序#include <stdio.h> void fun(char *t,char *s) { while(*t!=0) t++; while((*t++=*s++)!=0); } main() { char ss[10]="acc",aa[10]="bbxxyy"; fun(ss,aa); printf("%s,%s\n",ss,aa); }程序的运行结果是( )。
-
有以下程序: #include <stdio.h> void fun(char *c,int d) { *c=*c+1; d=d+1; printf("%c,%c,",*c,d); } main() { char b='a',a='A'; fun(&b,a); printf("%c,%c\n",b,a); }程序运行后的输出结果是 ()。
-
有以下程序 #include <stdio.h> void fun(char *a, char *b) { while(*a=='*') a++; while(*b=*a) { b++; a++; } } main() { char *s="*****a*b****" , t[80]; fun(s,t); puts(t); }程序的运行结果是( )。
-
有以下程序 #include <stdio.h> void fun1(char *p) { char *q; q=p; while(*q!='\0') { (*q)++; q++; } } main() { char a[]={"Program"},*p; p=&a[3]; fun1(p); printf("%s\n",a); }程序执行后的输出结果是( )。
-
有以下程序#include <stdio.h> void fun(int *p,int *q) { int t; t = *p; *p = *q; *q = t; *q = *p; } main() { int a = 0,b = 9; fun(&a,&b); printf("%d %d\n",a,b); }程序的输出结果是( )。
-
有以下程序 #include <stdio.h> void fun(int x,int y,int *c,int *d) { *c=x+y; *d=x-y; } main() { int a=4,b=3,c=0,d=0; fun(a,b,&c,&d); printf("%d %d\n",c,d); }程序的输出结果是( )。
-
若有以下程序 #include <stdio.h> void sp(int *a) { int b=2; a=&b; *a=*a*2; printf("%d,",*a); } main() { int k=3,*p=&k; sp(p); printf("%d,%d\n",k,*p); }则程序的输出结果是( )。
-
有以下程序: #include <stdio.h> void f(int*p,int*q); main() { int m=1,n=2,*r=&m; f(r,&n); printf("%d,%d",m,n); } void f(int*p,int*q) { p=p+1; *q=*q+1; }程序运行后的输出结果是( )。
-
有以下程序: #include <stdio.h> int *f(int *s,int *t) { if(*s < *t)*s=*t; return s; } main() { int i=3,j=5,*p=&i,*q=&j,*r; r=f(p,q); printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r); }程序的运行结果是( )。
-
有以下程序: #include <stdio.h> void fun(int*a,int*b) { int*c; c=a; a=b; b=c; } main() { int x=3,y=5,*p=&x,*q=&y; fun(p,q); printf("%d,%d",*p,*q); fun(&x,&y); printf("%d,%d\n",*p,*q); }程序运行后的输出结果是( )。
-
以下选项中,不能对主函数中变量i和j的值进行交换的程序是 ( )。
-
有以下程序:#include<stdio.h> int k = 5; void f( int *s) { s = &k; } main() { int m=3, *p=&m; f(p); printf("%d,%d\n",m,*p); }程序的运行结果是( )。
-
有以下程序#include <stdio.h> int k=5; void f(int *s) { s=&k; *s=7; } main() { int m=3; f(&m); printf("%d,%d\n", m,k); }程序运行后的输出结果是( )。
-
有如下程序:#include <stdio.h> int convert(int *data) { return (*data)++; } main() { int data=56; convert(&data); printf("%d,",data); data = convert(&data); printf("%d,",data); printf("\n"); }程序运行后的输出结果是( )。
-
有如下程序:#include <stdio.h> int change(int *data) { return (*data)++; } main() { int data=123; change(&data); printf("%d,",data); data = change(&data); printf("%d,",data); printf("\n"); }程序运行后的输出结果是( )。
-
以下程序的功能是:通过调用calc函数,把所求得的两数之和值 放入变量add中,并在主函数中输出。 #include <stdio.h> void calc(float x,float y,float *sum) { ______ = x+y; } main () { float x,y,add; scanf("%f%f",&x,&y); calc(x,y,&add); printf("x+y=%f\n",add); }calc函数中下划线处应填入的是( )。