重庆建设医院官方网站,现在海外做的比较好一点的网站,wordpress采集优酷视频,品牌建设成绩第一题
6-1 调和平均 - C/C 指针及引用
函数hmean()用于计算整数x和y的调和平均数#xff0c;结果应保存在指针r所指向的浮点数对象中。当xy等于0时#xff0c;函数返回0表示无法计算#xff0c;否则返回1。数学上#xff0c;两个数x和y的调和平均数 z 2xy/(xy) 。
直接…第一题
6-1 调和平均 - C/C 指针及引用
函数hmean()用于计算整数x和y的调和平均数结果应保存在指针r所指向的浮点数对象中。当xy等于0时函数返回0表示无法计算否则返回1。数学上两个数x和y的调和平均数 z 2xy/(xy) 。
直接上答案
int hmean(const int x, const int y, float* r){if(xy0)return 0;else{*r2.0*x*y/(xy);return 1;}
} 第二关6-2 调和平均-引用 - C/C 指针及引用
函数hmean()用于计算整数x和y的调和平均数结果应保存在参数r所引用的浮点数对象中。当xy等于0时函数返回0表示无法计算否则返回1。数学上两个数x和y的调和平均数 z 2xy/(xy) 。
直接上答案
int hmean(const int x, const int y, float r){if(xy0) return 0;else{r2.0*x*y/(xy); return 1;}
} 第三关地球时间 - C/C 指针及引用 地球时间以第3章微实践-地球时间的代码为基础实现下述getTime()函数将当前小时、分钟和秒数写入指针h、m和s指向的整数对象
直接上答案
void getTime(int* h, int* m, int* s) {time_t timer;struct tm* tblock;timer time(NULL);tblock localtime(timer);*h tblock-tm_hour;*m tblock-tm_min;*s tblock-tm_sec;
} 第四关6-4 字符串长度 - C/C 指针及引用
strLength()函数用于统计指针s所指向的以0结尾的字符串的长度字符个数请实现该函数使得下述程序可以正确运行。注意不能使用原生的strlen()函数。
直接上答案
unsigned int strLength(const char* s){unsigned int len 0;while (*s ! \0) {len;s;}return len;
}
第五关6-5 字符串拼接 - C/C 指针及引用
函数strAppend(d,s)将以0结尾的字符串s附加到以0结尾的字符串d之后。请实现该函数使得后续程序可以正确运行。注意不能使用原生的strcat()函数。
示例指针d所指向的字符串hello在附加字符串world后变为helloworld。
直接上答案
void strAppend(char *d, char *s) {// 找到字符串d的末尾while (*d ! \0) {d;}// 将字符串s复制到字符串d的末尾while (*s ! \0) {*d *s;d;s;}// 在字符串d的末尾添加\0*d \0;
} 第六关6-6 IPv4地址 - C/C 指针及引用
一个IPv4地址可用一个4字节的无符号整数来表示。下述setByte(ip,idx,v)函数负责将指针ip所指向的IP地址的第idx个字节修改为v其中idx取值0到3。请实现该函数使得下述程序可以正常运行。 该程序通过4次调用该函数将一个ip地址设置为192.168.0.1然后将整个ip地址按通常格式输出。
直接上答案
void setByte(unsigned char *ip, int idx, unsigned char v) {ip[idx] v;
}
第七关6-7 地球时间-引用 - C/C 指针及引用
地球时间以第3章微实践-地球时间的代码为基础实现下述getTime()函数将当前小时、分钟和秒数写入参数h、m和s所引用的整数对象。
直接上答案
void getTime(int h, int m, int s) {time_t now time(0);tm* currentTime localtime(now);h currentTime-tm_hour;m currentTime-tm_min;s currentTime-tm_sec;
}
第八关6-8 拆分实数的整数与小数部分
本题要求实现一个拆分实数的整数与小数部分的简单函数。
直接上答案
void splitfloat( float x, int *intpart, float *fracpart )
{*intpart (int)x;*fracpart x - *intpart;
}
第九关6-9 有序表的增删改查操作
首先输入一个正整数N1≤N≤1000和一个无重复元素的、从小到大排列的、N个元素的有序表然后在屏幕上显示以下菜单编号和选项。
直接上答案 int insert(int a[ ], int value) {int i 0;for (i 0; i Count; i)if (a[i] value)return -1;i 0;while (i Count ) {if (a[i] value)break;i;}if (i Count)a[i] value;else {int tmp1 a[i], tmp2;a[i] value;while (i Count) {i;tmp2 a[i];a[i] tmp1;tmp1 tmp2;}}Count;return 1;
}int del(int a[ ], int value) {int i 0, j 0, flag 1;for (i 0; i Count; i) {if (a[i] value) {for (j i; a[j] ! \0; j)a[j] a[j 1];flag 0;}}if (flag)return -1;Count--;return 1;
}int modify(int a[ ], int value1, int value2) {int i, flag 1;for (i 0; i Count; i) {if (a[i] value2)return -1;if (a[i] value1)flag 0;}if (flag)return -1;for (i 0; i Count; i)if (a[i] value1) {a[i] value2;break;}for (i 0; i Count; i)for (int j i 1; j Count; j)if (a[j] a[i]) {int tmp a[j];a[j] a[i];a[i] tmp;}return 1;
}int query(int a[ ], int value) {int before 0, after Count - 1;while (before after) {int mid (before after) / 2;if (a[mid] value)after mid - 1;else if (a[mid] value)before mid 1;elsereturn mid;}return -1;
}
第十关6-10 链表拼接
本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下
直接上答案
struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2){struct ListNode *list(struct ListNode *)malloc(sizeof(struct ListNode ));struct ListNode *llist;while(list1!NULLlist2!NULL){if(list1-datalist2-data){list-nextlist1;list1list1-next;listlist-next;}else{list-nextlist2;list2list2-next;listlist-next;}}while(list1!NULL){list-nextlist1;list1list1-next;listlist-next;}while(list2!NULL){list-nextlist2;list2list2-next;listlist-next;}return l-next;
}
第十一关7-1 无符号整数的内部结构 - C/C 指针及引用
无符号整数v由4个字节构成。请编程完成下述任务
从键盘读取一个整数存入unsinged int v以16进制格式打印v的值取v的地址并强制类型转换成unsigned char*然后通过这个地址/指针依次打印构成v的第0第1第2第3个字节的16进制值。
直接上答案
#includeiostream
using namespace std;
int main()
{unsigned int v;cin v;cout hex;cout v endl;unsigned char* p (unsigned char*)v;for (int i 0; i 4; i){cout int(p[i]);if (i ! 3){cout ;}}return 0;
}