华中科技大学2010年计算机考研复试机试题...

没有昵称阿
阿里巴巴Java技术专家
博客专家认证
2010-07-07 10:30:28
这是华中科技大学2010年硕士研究生入学复试机试题,大家看看呗,有想法赶紧说哈、有代码的可以贴上来啊.....

讨论讨论......

总共三道题:

a、输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数!(如‘3’,输出:10110011);

b、设计8个任务函数task0()-task8()只输出一句话:如task0()输出“task0 is called!”;设计一个调度函数schedule()输入一个字符串如"012345"然后返回一个函数指针数组和字符串的长度作为执行函数execute()的参数进行调度任务函数。主函数只有调度函数。

c、实现一个加法器,保证两个加数是任意长的整数。
...全文
1188 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
Teng_s2000 2010-07-19
  • 打赏
  • 举报
回复
leonardWang 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 aaa20090987 的回复:]
C:

C/C++ code
#include <iostream>
#include <string>
using namespace std;

string Addition(string one, string two);

int main()
{
int n, i;
string first, second;
cout << "Plea……
[/Quote]

没说是正整数吧
softwarekid 2010-07-18
  • 打赏
  • 举报
回复
第三题 用数组吧
zhengjiankang 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhu_nn 的回复:]

b
没有看明白,输入的字符串“012345”和返回的函数指针数组有什么关系?不太清楚
[/Quote]

012345 作为函数 Func(char* pstr)的参数
调用Func的时候 就能依次的调用 Task0() - Task(5) ~
这题目很简单的嘛~ 就是把Task函数指针放在一个数组里面就可以了~
haoruixiang 2010-07-16
  • 打赏
  • 举报
回复
路过~~~~
没有昵称阿 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 winematrix 的回复:]

能解释下以下两句的用法吗?谢谢
C/C++ code
printf("%c",x&1?'0':'1');

C/C++ code
putchar(((str[i]>>j)&1)+'0');

引用 2 楼 fanster28_ 的回复:

a C/C++ code
#include <iostream>

int f(int n) {
int c;
for……
[/Quote]

&是按位与的意思,》是右移的意思。
winematrix 2010-07-16
  • 打赏
  • 举报
回复
能解释下以下两句的用法吗?谢谢
printf("%c",x&1?'0':'1');

putchar(((str[i]>>j)&1)+'0');

[Quote=引用 2 楼 fanster28_ 的回复:]

a C/C++ code
#include <iostream>

int f(int n) {
int c;
for (c=0;n!=0;++c)
n=n&(n-1);
return c;
}

int main() {
char str[1000];
for (;scanf("%s",str)!=EOF;) {
……
[/Quote]
wbgxx 2010-07-16
  • 打赏
  • 举报
回复
菜鸟提问
 sum[slen-j-1] = sum[slen-j-1] + one[flen-j-1] - '0'
为哈要减去‘0’啊??????????????
没有昵称阿 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 sosidami 的回复:]

唉,这也太简单了吧。。。。
[/Quote]

1、3题也确实不是太难,知识第二题...搞不懂!
wbgxx 2010-07-15
  • 打赏
  • 举报
回复
我咋觉得题目描述的不是很清楚啊
sosidami 2010-07-15
  • 打赏
  • 举报
回复
唉,这也太简单了吧。。。。
没有昵称阿 2010-07-11
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 fanster28_ 的回复:]

这有必要纠结么,自己改vector有何困难?
[/Quote]

知道了,学习了!
fanster28_ 2010-07-11
  • 打赏
  • 举报
回复
这有必要纠结么,自己改vector有何困难?
没有昵称阿 2010-07-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fanster28_ 的回复:]

c
C/C++ code
#include<stdio.h>
#include<string.h>

int main()
{
int T = 0;
int i,j,k,t,bf,f;
int x,y;
char a[1001], b[1001];
char c[1001];
scanf("%d", &T);
for(i = 0……
[/Quote]

这个貌似不能算是任意长的吧......
biosxjj 2010-07-09
  • 打赏
  • 举报
回复
void task0() {puts("task0 is called!");}
void task1() {puts("task1 is called!");}
void task2() {puts("task2 is called!");}
void task3() {puts("task3 is called!");}
void task4() {puts("task4 is called!");}
void task5() {puts("task5 is called!");}
void task6() {puts("task6 is called!");}
void task7() {puts("task7 is called!");}
void task8() {puts("task8 is called!");}


typdef void (*ptask)();

ptask fun[9]={task0,task1,task2,task3,task4,task5,task6,task7,task8};



ptask schedule(char* str)
{
int len=strlen(str);

return execute(fun,len);

}
execute(ptask* fun,len){
ptask pfun=fun[len%9];
pfun();

}

main(){

schedule("12345");
}
biosxjj 2010-07-09
  • 打赏
  • 举报
回复
void task0() {puts("task0 is called!");}
void task1() {puts("task1 is called!");}
void task2() {puts("task2 is called!");}
void task3() {puts("task3 is called!");}
void task4() {puts("task4 is called!");}
void task5() {puts("task5 is called!");}
void task6() {puts("task6 is called!");}
void task7() {puts("task7 is called!");}
void task8() {puts("task8 is called!");}


typdef void (*ptask)();

ptask fun[9]={task0,task1,task2,task3,task4,task5,task6,task7,task8};



ptask schedule(char* str)
{
int len=strlen(str);

return execute(fun,len);

}
execute(ptask* fun,len){
ptask pfun=fun[len%9];


}

main(){

schedule("12345");
}
biosxjj 2010-07-09
  • 打赏
  • 举报
回复
第三题 我还以为是画 逻辑电路图 原来是程序。。
budweiser 2010-07-08
  • 打赏
  • 举报
回复
我看第二个也挺简单的, 我大致写一下:


void task0();
void task1();
void task2();
void task3();
void task4();
void task5();
void task6();
void task7();

typydef void (*FuncPtr)();

FuncPtr arrayFunc[] = {task0, task1, task2, task3, task4, task5, task6, task7};

bool schedule(const char* input, FuncPtr* & arrayFuncPtr, int & size)
{
int length = strlen(input);
FuncPtr *arrFunc = (FuncPtr*)malloc(sizeof(FuncPtr)*length);
char *ptr = input;
FuncPtr *ptrDest = arrFunc;
while (ptr) {
*ptrDest++ = arrayFunc[*ptr-'0'];
}
return true;
}

typedef bool (*SCHEDULE)(cosnt char*, FuncPtr* &, int &);

void execute(SCHEDULE schedule)
{
int size = 0;
FuncPtr* arrayFuncPtr = 0;
schedule("012345", arrayFuncPtr, size);

for (int i=0; i<size; ++i) {
*arrayFuncPtr[i]();
}
}

就用记事本写的 只是思路
fairywell 2010-07-08
  • 打赏
  • 举报
回复
研究生的题目还是太。。 呵呵
zhu_nn 2010-07-08
  • 打赏
  • 举报
回复
b
没有看明白,输入的字符串“012345”和返回的函数指针数组有什么关系?不太清楚
加载更多回复(10)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧