1、如果存在,原因是什么?如果存在错误,要求在计算机上对这个例子程序进行调试修改,使之能够正确执行。#includevoid main(void) float *p; scanf(%f,p); printf(%fn,*p);存在,错误为指针一开始没有初始化,而sacnf传入的是float型指针指向的地址,我们并不知道系统能给我们分配什么地址,所以说我们输入的地址很有可能使程序崩溃。修改后代码:int main(void)float *p;float a10;/这里可以换成其他数字p=&a0;printf(return 0;(1)下面的程序通过函数指针和菜单选择来调用字符串拷贝函数或字符串连接函数,
2、请在下划线处填写合适的表达式、语句、或代码片段来完善该程序。#include char*(*p)(char a,char b); char a80,b80,c160,*result=c; int choice,i; do printf(tt1 copy string.n);tt2 connect string.ntt3 exit.nttinput a number (1-3) please!n scanf(%d,&choice); while(choice5); switch(choice) case 1: p=strcpy; break; case 2: p=strcat; case 3:
3、goto down; getchar();input the first string please! i=0; gets(a);input the second string please! gets(b); result= p(a,b);the result is %sn,result);down: ;(2)请上机运行第(1)题程序,使之能按要求输出下面结果:(输入)表示该数据是键盘输入数据) 1 copy string. 2 connect string. 3 exit. input a number (1-3) please!2 (输入)the more you learn, (输入)
4、the more you get. (输入)the result is the more you learn,the more you get.char *strcpy(char *,char *); char a20,b60=there is a boat on the lake.;%sn,strcpy(a,b);char *strcpy(char *s,char *t) while(*s+=*t+) return (s);(1)单步执行。进入strcpy时watch窗口中s为何值?返回main时, watch窗口中s为何值?进入strcpy时:返回main时:(2)排除错误,使程序输出结果
5、为: there is a boat on the lake.void *strcpy(char *,char *); char a30,b60= strcpy(a,b);,a); return 0;void *strcpy(char *s,char *t) while(*t!=0) *s+=*t+; *s=/将函数类型设置为void型,然后不再返回直接打印a字符串即可(1)一个长整型变量占4个字节,其中每个字节又分成高4位和低4位。试从该长整型变量的高字节开始,依次取出每个字节的高4位和低4位并以数字字符的形式进行显示。int n,i;scanf(%xn); char *p=(char *)
6、&n; int high_half,low_half; for(i=3; i=0; i-) low_half = pi & 0x0f; if (low_half 4; if (high_half high_half += %c %cn,high_half,low_half);(2)利用大小为n的指针数组指向用gets函数输入的n行,每行不超过80个字符。编写一个函数,它将每一行中连续的多个空格字符压缩为一个空格字符。在调用函数中输出压缩空格后的各行,空行不予输出。#define N 10void reducespace(char *p,int n);int main() int i; char
7、 *pN,arrN81;Input %d-line strings:,N); for (i = 0; i int main(int argc,char *argv) void downsort(char* *p,int m); void upsort(char * *q,int k); int n=0; while(nargc) %s,argvn); n+; if(!strcmp(argv1,-d) downsort(&argv2,n-2); else upsort(&argv1,n-1);void downsort(char * *p,int m) int i,j; char t; for(i=0;im-1;i+) for(j=0;jj+) if(*pj*qj+1) t=*qj,*qj=*qj+1,*qj+1=t;k; *qi=*qi-,*qi);注:我的电脑总是缺少一个插件,当我把这个插件
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1