本文作者:sukai

c语言指针编程题(c语言指针编程题及答案解析)

sukai 2023-12-01 104

1、includeltstdiohvoid Sortint *a,int n int *p,*q,*v,tforp = ap lt a + n 1++p v = pforq = p + 1 q lt a + n ++qif*v *q v = qif*p != *v t;答案是D 在循环开始,ptr指向了数组的首地址,经过一次循环,指针指向了下一个字节第一次循环 ptr指向该数组第一个字节,通过printf函数,输出了指针所指的字符串“ABCDE”一次循环,每次指针后移一个字节然后输出该字符;在C语言中指针之间是可以相互赋值的,但是使用不当可能会造成部分;void StrSortchar *pN,int n char tNforint i=0iltni++forint j=0jltni1j++ifstrlenpjstrlenpj+1 strcpyt,pjstrcpypj,pj+1strcpypj+;应该把指向int型的指针p改成int型,只需改变相应的交换程序,其它不用变改正后的完整的C语言程序如下改动的地方见注释includeltstdioh void swapint *p1,int *p2 int p这里定义int型变量p p=*p1*p1=*。

2、cprintfquotInput a string quotfgetss,300,stdinprintfquotInput a char quotc=getcharfflushstdinprintfquotAfter deleted,the string is %s\nquot;include ltstdiohint maindouble x,y,zdouble *px,*py,*pzpx=xpy=ypz=zprintfquot输入3个数据 quotscanfquot%lf%lf%lfquot,px,py,pzprintfquot输出数据%82lf%82lf%82lf\nquot,*px,*。

c语言指针编程题(c语言指针编程题及答案解析)

3、includeltstdioh int nvoid multiplyArrayint *a,int m int *p =a+nfora!=pa++a*=ma=n int main int mscanfquot%d%dquot,n,m 输入数组长度N和乘数 M int *a=new intn;int a=2,4,6,*prt=a0,x=8,y,z *定义整形数组a,把246依次存入数组a的前三个地址 中,定义一个整形指针prt,并把数组a中首地址的值赋值给 prt指向的地址中* fory=0ylt3y++。

4、includeltstdioh define N 10 int main int i,*p,*p_max,*p_min,s,aNfloat avgprintfquot请输入%d个数 quot,Np=afori=0iltNi++scanfquot%dquot,p+ip=ap_max=ap_min=as=*pf;p2是指针变量,指向的是字符型数据第二句话表示p2这个指针变量指向的是包含有abc等三个元素的字符型数组strcpystr+1,strcatp1,p2表示现将p2所指向的内容添加到p1这个数组的结尾处,并且存放在p1中,那么做完之后;includeltstdioh int a200void rotateArrayint *a,int n,int m m%=n 这句是防止m大于n 结果会不正确的情况 forint i=miltn++iscanfquot%dquot,aiforint i=0iltm++iscanf。

5、int aint bint *pa = aint *pb = bprintfquot请输入a和b的值 quotscanfquot%d %dquot, pa, pb 在高版本的vs里要用scanf_s printfquota和b的和是 %d\nquot, *pa + *pbprintfquota和b;include quotstdiohquotvoid Swapint *p1,int *p2 int temp = *p1p1 = *p2p2 = temp int main int a,bprintfquot输入两个数quotscanfquot%d%dquot,a,bSwapa,bprintfquot交换后的数%d;A char s5=quotabcdequot字符串这样赋值时,末尾有一个默认的串尾符\0,所以字符串quotabcdequot的实际长度是6,s5是存储不下的,溢出了 B char *s getsschar *s只是声明了一个指针,并没有分配存储空间。

阅读
分享