广工anyview的题目和答案

合集下载

广工Anyview试题答案 第四章

广工Anyview试题答案 第四章

/**********【习题4.011】关系表达式,if语句第一种形式在以下程序空缺处填写合适内容,使得程序判断用户输入的字符是否为'@',若是则显示:"输入正确"。

**********/#include<stdio.h>void main(){char c;scanf("%c",&c);if( c=='@' ) printf("输入正确\n");}/**********【习题4.012】关系表达式,if语句第一种形式在以下程序空缺处填写合适内容,使得程序输入一个整数赋给变量a,计算并输出a的绝对值a1。

**********/#include<stdio.h>#include<math.h>void main(){int a,a1;scanf("%d",&a);a1=abs(a);printf("|%d| = %d\n",a,a1);}/**********【习题4.013】逻辑表达式,if语句第一种形式在以下程序空缺处填写合适内容,使得程序对输入的整型变量x的值进行判断,若变量x值为“假”时输出“False”。

**********/#include<stdio.h>int main( ){int x;scanf("%d",&x);if(x==0 )printf("False!\n");return 0;}/**********【习题4.016】if语句的子句为复合语句在以下程序空缺处填写合适内容,使得程序将输入到变量a和b的两个整数按照由大到小的顺序输出。

**********/#include<stdio.h>void main( ){inta,b,t;scanf("%d %d",&a,&b);if(a<b){t=b;b=a;a=t;}printf("%d %d\n",a,b);}/**********【习题4.203】条件运算(3目运算)在以下程序空缺处填写合适内容,使得程序先令整型变量a取值0,b取值-20;然后用条件运算实现:若a>b成立则将b的平方值赋予c,否则将0赋予c;最后显示c的值。

广工Anyview试题答案

广工Anyview试题答案

/**********【习题9.023】结构体类型定义如下:struct date{int year; int month; int day;}; //定义日期结构体类型struct student{ char name[20];struct date birth; //出生日期};结构体数组s存储了n个人的名字和出生日期。

写一函数,求这n个人中年龄最大(即出生日期最小)者的姓名。

**********/char *oldest(student s[], int n){int j,k=0;for(j=1;j<n-1;j ){if(s[k].birth.year>s[j].birth.year) k=j;else if(s[k].birth.year==s[j].birth.year){if(s[k].birth.month>s[j].birth.month) k=j;else if(s[k].birth.month==s[j].birth.month)if(s[k].birth.day>s[j].birth.day) k=j;}}return s[k].name;}/**********【习题9.025】结构体类型定义如下:struct date{int year; int month; int day;}; //定义日期结构体类型struct student{ char id[10]; //学号char name[20]; //姓名struct date birth; //出生日期};结构体数组s存储了n个人的学号、名字和出生日期。

写一函数,以结构体的形式返回这n个人中年龄最大(即出生日期最小)者的信息。

**********/struct student oldest(struct student s[], int n){int j,k=0;for(j=1;j<n-1;j ){if(s[k].birth.year>s[j].birth.year) k=j;else if(s[k].birth.year==s[j].birth.year){if(s[k].birth.month>s[j].birth.month) k=j;else if(s[k].birth.month==s[j].birth.month)if(s[k].birth.day>s[j].birth.day) k=j;}}return s[k];}/**********【习题9.027】结构体类型定义如下:struct student{ char id[10]; //学号char name[10]; //姓名int score[5]; //各门课成绩};结构体数组s存储了n个学生的学号、名字和各门课成绩。

2016广工Anyview试题答案-第六章

2016广工Anyview试题答案-第六章

2016广工Anyview试题答案-第六章【习题6.033】系统给定外部整型数组a、整型变量n、max、min 和实型变量avg(不需要自行定义)。

编写程序,求数组a中前n 个元素的最大值max、最小值min及平均值avg。

**********/void main(){inti,sum=0;max=min=a[0];for(i=0;i<n;i++)< bdsfid="69" p=""></n;i++)<>{if(a[i]>=max)max=a[i];if(a[i]<=min)min=a[i];sum+=a[i];}avg=sum/(float)n;}/**********【习题6.043】系统给定外部整型变量n和整型数组a(不需要自行定义)。

编写程序,找出数组a中前n个元素中的最小元素及其下标,然后把它和数组中最前面的元素a[0]交换位置。

**********/void main(){int b=a[0],temp,min,z;for(int i=1;i<n;i++)< bdsfid="87" p=""></n;i++)<>{if(b>a[i])b=a[i];}min=b;for(int j=0;j<n;j++)< bdsfid="94" p=""></n;j++)<>{if(a[j]==min)z=j;}temp=a[0];a[0]=min;a[z]=temp;}【习题6.050】系统给定外部字符串s和整型数组c[26](不需要自行定义)。

编写程序,将字符串s中26个小写字母出现的次数依次统计到数组c中。

例如,当s=“abcijkabcdexyzuvwx”时,数组c的26个元素值依次为:2 2 2 1 1 0 0 0 1 1 1 0 0 00 0 0 0 0 0 1 1 1 2 1 1。

广工数据结构参考答案全(anyview)

广工数据结构参考答案全(anyview)

广工数据结构anyview 80道上机题1.void Descend(int &x, int &y, int &z)/* 按从大到小顺序返回x,y和z的值*/ {int t;if(x<z){t=z;z=x;x=t;}if(y<z){t=y;y=z;z=t;}if(y>x){t=x;x=y;y=t;}}2.Status Fibonacci(int k, int m, int &f)/* 求k阶斐波那契序列的第m项的值f */ {int *a;int i=1;if(k<2||m<0) return ERROR;if(m<k){if(m==k-1) f=1;else f=0;return OK;}a=(int*)malloc((m+1)*sizeof(int));for(i=0;i<k-1;i++) a[i]=0;i=k+1;a[k-1]=1;a[k]=1;while(i<=m){a[i]=2*a[i-1]-a[i-k-1];i++;}f=a[m];return OK;}3.void Scores(ResultType *result, ScoreType *score)/* 求各校的男、女总分和团体总分, 并依次存入数组score *//* 假设比赛结果已经储存在result[ ]数组中, *//* 并以特殊记录{"", male, ' ', "", 0 }(域scorce=0)*//* 表示结束*/{int i;for(i=0;result[i].score!=0;i++){score[result[i].schoolname-'A'].totalscore+=result[i].score;if(result[i].gender==male)score[result[i].schoolname-'A'].malescore+=result[i].score;elsescore[result[i].schoolname-'A'].femalescore+=result[i].score;}}4Status Series(int ARRSIZE, int a[])/* 求i!*2^i序列的值并依次存入长度为ARRSIZE的数组a;*//* 若所有值均不超过MAXINT,则返回OK,否则返回OVERFLOW */{int i=1,b=1,na=1;while(i<=ARRSIZE){na*=i;b*=2;if(na*b>MAXINT) return OVERFLOW;a[i-1]=na*b;i++;if(i>ARRSIZE+1) return OVERFLOW;}return OK;}5float Polynomial(int n, int a[], float x)/* 求一元多项式的值P(x)。

2014年广工离散数学Anyview参考答案

2014年广工离散数学Anyview参考答案

广东工业大学离散数学Anyview习题答案——更新于2014年12月作者Seasand2014 1.00①试设计一算法,判断元素与集合之间的关系。

实现下列函数:/*** 判断元素与集合之间的关系。

元素和集合之间的关系只有两种。

* @param elem:元素* @param pA:集合* @return: 如果elem ∈pA,则返回TRUE,否则返回FALSE*/Boolean IsInSet(SetElem elem, pSet pA){//Add your code here}//1.00Boolean IsInSet ( SetElem elem, pSet pA ){//Add your code hereSetElem * a = outToBuffer ( pA );for ( ; *a != '\n'; a++ ){if ( elem == *a ){return true;}}return false;}1.01③试设计一算法,实现集合的并运算。

实现下列函数:/*** 进行两个集合的并运算* @param pA:要进行并运算的集合* @param pB:要进行并运算的集合* @return: 将pA和pB进行并运算后得到的集合*/pSet SetUnion(pSet pA, pSet pB){//Add your code here}//1.01pSet SetUnion ( pSet pA, pSet pB ){SetElem * a = outToBuffer ( pA );SetElem * b = outToBuffer ( pB );pSet pC = createNullSet();int i = 0;for ( ; *b != '\n'; b++ ){directInsertSetElem ( pC ,*b );}for ( a = outToBuffer ( pA ); *a != '\n'; a++ ){if ( isInSet ( pB,*a ) != true ){directInsertSetElem ( pC ,*a );}}return pC;}1.02②试设计一算法,实现集合的交运算。

广东工业大学数据结构Aniview系统第三章参考答案

广东工业大学数据结构Aniview系统第三章参考答案

广东工业大学数据结构Aniview第三章参考答案◆3.17③试写一个算法,识别依次读入的一个以@为结束符的字符序列是否为形如'序列1&序列2'模式的字符序列。

其中序列1和序列2中都不含字符'&',且序列2是序列1的逆序列。

例如,'a+b&b+a'是属该模式的字符序列,而'1+3&3-1'则不是。

实现下列函数:Status match(char *str);/* 若str是属该模式的字符序列,*//* 则返回TRUE,否则返回FALSE */Stack是一个已实现的栈。

可使用的相关类型和函数:typedef char SElemType; // 栈Stack的元素类型Status InitStack(Stack &s);Status Push(Stack &s, SElemType e);Status Pop(Stack &s, SElemType&e);Status StackEmpty(Stack s);Status GetTop(Stack s, SElemType&e);Status match(char *str)/* 若str是属该模式的字符序列,*//* 则返回TRUE,否则返回FALSE */{ Stack S;inti;SElemType e;InitStack(S);for(i=0;str[i]!='&';i++){ Push(S,str[i]); }for(i=i+1;!StackEmpty(S)&&str[i]!='@';i++){Pop(S,e);if(e!=str[i]){ return FALSE;}}if(StackEmpty(S)&&str[i]=='@'){ return TRUE;}}3.18②试写一个判别表达式中开、闭括号是否配对出现的算法。

2015年广工数据结构Anyview答案-推荐下载

2015年广工数据结构Anyview答案-推荐下载

/********** 1.18【题目】试编写算法,计算 i!×2^i 的值并存入数组 a[0..n-1]的第 i-1 个分量中 (i=1,2,…,n)。假设计 算机中允许的整数最大值为 MAXINT,则当对某个 k (1≤k≤n)使 k!×2^k>MAXINT 时,应按出错处理。注意 选择你认为较好的出错处理方法。 **********/ Status Series(int a[], int n) /* 求 i!*2^i 序列的值并依次存入长度为 n 的数组 a; */ /* 若所有值均不超过 MAXINT,则返回 OK,否则 OVERFLOW */ {
long m=1; for(int i=1;i<=n;i++) {
m=m*i*2; if(m<=MAXINT) {
a[i-1]=m; } else return OVERFLOW; } return OK; } /********** 1.23【题目】假设有 A、B、C、D、E 五个高等院校进行田径对抗赛, 各院校的单项成绩均以存入计算机并构成一张表,表中每一行 的形式为: 项目名称 性别 校名 成绩 得分 编写算法,处理上述表格,以统计各院校的男、女总分和团体 总分,并输出。 **********/
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置2试时32卷,3各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并25工且52作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

单片机广东工业大学考试试卷 ( A )

单片机广东工业大学考试试卷 ( A )

广东工业大学考试试卷( A )课程名称:单片机原理与接口技术考试时间: 2007年1月26日 (第21周星期五)一、填空(每空1分,共25分)1.CPU核心部件为______,它承担了算术和_____运算。

2.MCS-51衍生型芯片89C51RD2内部RAM容量为_____,外部扩展RAM、____和___________读写方式相同,均使用MOVX指令。

3.指令由操作码和_______两部分组成,其中操作码决定了指令要执行的动作。

4.在由MCS-51构成的单片机应用系统中,如果没有外部程序存储器,则EA/Vpp引脚应(接地、接Vcc、悬空),PSEN引脚应(接地、接Vcc、悬空)。

5.根据指令特征,可将计算机指令系统分为RISC和两大类;其中MCS-51单片机采用指令系统。

6.在MCS-51中,执行了如下指令或程序段后,指出PSW寄存器内容(假设指令执行前PSW=00H,且各小题相互独立)。

(1) SUBB A,#5FH ;执行前A=87H,执行后PSW=______H(2) ANL 30H,#0FH ;执行后PSW=______H(3) DEC A;执行前A=00H,执行后A=___H;PSW=______H(4) CJNEA,#60H, NEXT1 ;执行前A=63H,执行后A=___H;PSW=______H(5) MOV A,#5FH ;执行后PSW=______H8.MCS-51响应定时/计数器T1溢出中断后,将从________单元中取指令码。

9.在MCS-51应用系统中,扩展的并行输出口应利用WR信号的_____(下降沿、上升沿)锁存由CPU输出的数据。

10.下面是定时/计数器T2中断服务程序片段(工作于自动重装初值方式),请在横线上填写相应指令,完善该中断服务程序。

PROC CTC2CTC2:PUSH Acc_______________INC 30HMOV A, 30HCJNE A, #60, NEXTNEXT:JC EXITMOV 30H, #0CPL P1.0EXIT:______________________________________________________RETIEND二、判断题(正确打√,错误打×) (每题1分,共10分)1.程序中伪指令在编译时将产生机器码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 23 3 1 2
4 56 ---> 6 4 5
7 89 9 7 8
**********/
voidturningRight(char a[N][N])
{
inti,j,t;
for(i=0;i<N;i++)
{
t=a[i][N-1];
for(j=N-1;j>0;j--)
a[i][j]=a[i][j-1];
}
}
/**********
【习题7.060】编写函数将一个nxn的二维数组按“次对角线”翻转。
例如:翻转前的数组翻转后的数组
1 23 9 6 3
4 56 ---> 8 5 2
7 89 7 4 1
**********/
voidinvert(char a[N][N])
{
inti,j,k;
for(i=0;i<N;i++)
n/=10;
i++;
}
s[i--]='\0';
k=i;
while(i>=0)
{
s[i]=c[k-i]/*** 3 ***/ ;
i--;
}
}
/**********
【习题7.125】编写函数,对非负浮点数r的值的第三位小数四舍五入,
在s中。例如,当n=20120826时,由n转换得到s="20120826"。
请仅在空缺处填入合适内容,使其实现上述功能。
**********/
voidmain()
{
inti=0,k;
charc[10];
while(n>0/*** 1 ***/ )
{
c[i]=n%10+'0' /*** 2 ***/ ;
intt[N];
for(i=0;i<N;i++)
t[i]=a[0][i];
for(i=0;i<N-1;i++)
for(j=0;j<N;j++)
a[i][j]=a[i+1][j];
for(i=0;i<N;i++)
a[N-1][i】编写函数,求整数m和n的最大公约数,
{
intj,min;
for(j=2;j<=i/2;j++)
if(prime(j)&&prime(i-j))
{
min=j;
break;
}
returnmin;
}
/**********
【习题7.050】编写函数,将字符串中ASCII码最小的字符
放在第一个字符位置,其余字符依次往后移。
**********/
1 23 7 8 9
4 56 ---> 1 2 3
7 89 4 5 6
**********/
voidturningDown(char a[N][N])
{
inti,j,t;
for(i=0;i<N;i++)
{
t=a[N-1][i];
for(j=N-1;j>0;j--)
a[j][i]=a[j-1][i];
**********/
voidmain()
{
inti;
i=0/*** 1 ***/ ;
while(i<n)
{
if(*(s+i)>='a' && *(s+i)<='z')
*(s+i)=*(s+i)-32/*** 2 ***/ ;
i++/*** 3 ***/ ;
}
}
/**********
【习题7.115】编写函数,将两个两位数的正整数a、b合并形成
/**********
【习题7.010】写一函数求3个整数中最小的数。
**********/
intmin(int x, int y, int z)
/*返回3个整数x,y和z中最小的数*/
{
intmin;
min=x>y?y:x;
if(min>z) min=z;
returnmin;
}
/**********
returnc;
}
/**********
7.120系统给定外部长整型变量n和字符数组变量s(不需要自行
定义)。main函数的功能是:把n的整数值转换成字符串,并逆序
保存在s中。例如,当n=20120826时,由n转换得到s="62802102"。
请仅在空缺处填入合适内容,使其实现上述功能。
**********/
for(i=0;i<=n/10;i++)
{ k=(n-i*10)/5;
for(j=0;j<=k;j++)
t++;}
returnt;
}
/**********
【习题7.030】先编写一个判断素数的函数。再编写一个函数
将一个偶数表示为两个素数之和,并返回其中较小的素数。
注:素数指只能被1和自身整除的正整数。规定0,1不是素数。
for(i=0;i<N-1;i++)
a[i][N-1]=a[i+1][N-1];
for(i=N-1;i>0;i--)
a[N-1][i]=a[N-1][i-1];
a[N-1][1]=t;
}
/**********
【习题7.072】编写函数将一个NxN的二维数组a的元素
按行向右轮转1位。
例如:轮转前的数组轮转后的数组
{
temp=a[i][j],a[i][j]=a[i][N-j-1],a[i][N-j-1]=temp;
}
}
/**********
【习题7.067】编写函数将一个NxN的二维数组的周边元素
“顺时针”轮转1位。
例如:轮转前的数组轮转后的数组
1 23 4 1 2
4 56 ---> 7 5 3
7 89 8 9 6
{
for(j=0;j<(N-i);j++)
k=a[i][j],a[i][j]=a[N-1-j][N-1-i],a[N-1-j][N-1-i]=k;
}
}
/**********
【习题7.064】编写函数将一个NxN的二维数组“水平”翻转。
例如:翻转前的数组翻转后的数组
1 23 7 8 9
4 56 ---> 4 5 6
值依次为:2 2 2 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0
0 0 1 1 1 2 1 1。
**********/
voidmain()
{
inti,j;
for(j=0;j<26;j++)
for(i=0;s[i]!='\0';i++)
{
if(s[i]==j+65||s[i]==j+97) c[j]++;
【习题7.020】编写函数,求用1元、5元和10元三种纸币
支付n元钱共有多少种支付法?
例如,16元可有6种支付方法:
方法1 2 3 4 5 6
10元0 0 0 0 1 1
5元0 1 2 3 0 1
1元16 11 6 1 6 1
**********/
intchange(int n)
{
inti,j,k,t=0;
7 89 1 2 3
**********/
voidinvertH(char a[N][N])
{
inttemp,i,j;
for(i=0;i<N-i;i++)
for(j=0;j<N;j++)
{
temp=a[i][j],a[i][j]=a[N-i-1][j],a[N-i-1][j]=temp;
}
}
/**********
一个整数c且作为函数值返回。合并的方式是:将a的十位和个位
数分别作为c的千位和十位数,b的十位和个位数分别作为c的百位
和个位数。例如,若a=45,b=12,则该函数返回值为4152。
**********/
intfunc(int a, int b)
{
intc;
c=(a/10)*1000+(a%10)*10+(b/10)*100+(b%10);
4 56 ---> 1 5 9
7 89 4 7 8
**********/
voidturningAnticlockwise(char a[N][N])
{
inti;
intt=a[N-1][0];
for(i=N-1;i>0;i--)
a[i][0]=a[i-1][0];
for(i=0;i<N-1;i++)
a[0][i]=a[0][i+1];
{
inti,j,t;
for(i=0;i<N;i++)
{
t=a[i][0];
for(j=0;j<N-1;j++)
a[i][j]=a[i][j+1];
a[i][N-1]=t;
}
}
/**********
【习题7.082】编写函数将一个NxN的二维数组a的元素
按列向下轮转1位。
例如:轮转前的数组轮转后的数组
相关文档
最新文档