2014C语言答案大全
- 格式:docx
- 大小:79.67 KB
- 文档页数:14
一、改错题1.p=malloc(sizeof(int)*10); q=malloc(sizeof(int)*20);p=q; free(p); free(q);Free(q) 错了,因为p=q后,就指向同一块地址了。
内存泄露(p分配了空间没释放)==============我的一:由于malloc函数返回值为void *,所以还是应该强制转换为(int *),虽然我在运行时没有错,但一般都要指定指针类型。
二:由于p=q,两个指针指向同一个地址,free(p)之后,则该内存空间被释放,则q此时就没有具体指向一个地址,free(q)就会出错。
一般我们常说的内存泄露是指堆内存泄露,堆内存是指程序从对中分配的,大小任意的(内存块的大小可以再程序运行期确定),使用完后必须先释放内存。
2.和去年一样 void swap(char *a,char *b){char *temp; *temp=*a;*a=*b;*b=*temp;}1.函数类型大小写错误。
2. 交换形参指针地址不能修改实参的值。
正确修改法:见下(解释)实参是str1和str2的地址,函数里改变了*p,*q的值,也就是str1和str2中存放的字符串的地址做了改变。
所以str1里存放的str2所指字符串的地址3. for(num=N;arr[num]!=item;num--);printf("%d",num);问异常情况结果可能是输出一个负值,因为item是个变量,分配了存储空间, arr[-2]也是可以输出的,因为arr 只是个地址,经过测试会找到item,printf他的地址=========我的首先如果item在数组中,则不会出错,可以输出所在的位置。
如果不在,则num最后会变为负值,由于C 语言没有自动对数组进行下标检查,则会产生数组下标越界,而且会继续运行,出现死循环。
如果编译器检查,则会产生数组下标越界出错。
二、简答题1. if(b) s1 else s2; 请问是什么结构,并用伪代码写出来(注明条件跳转和强制跳转)选择结构。
一、写出下列程序段的运行结果(40分)1.(4分)char a= 'F'-'E',b= '\12',c=12,d;c = a<b<c;d =--a&& b++;printf("%d,%d,%d,%d",a,b,c,d);2.(4分)int a=2, b=5;printf("a=%%d,b=\\d,");b/=a;a+=a-b;printf("%d,%d",a,b);3.(4分)char a=256;printf("%d,",a++);a=(int)(13/5+1.4);printf("%d",a);4.(4分)int p[8]={11,12,13,14,15,16,17}; int i=0,j=0;while (i++<7) (第一次循环i=1)if (p[i]%2) j+=p[i];printf("%d\n",j);5.(4分)int a=3,b=5;void exchange(int a, int b){int t;t=a; a=b; b=t;printf("%d,%d\n", a, b);} int main(){exchange(a,b);printf("%d,%d\n",a,b);return 0;}6.(4分)void f(char ch){if (ch>'A'){f(ch-1);}putchar(ch);}int main(){f('D');return 0;}7.(4分)char str[10]="123456789"; int i;for (i=9; i>0; i/=2){str[i]=0;printf("%s\n",str);}8.(4分)struct {int x; int y; int z;}a[3] ={1,2,3,4,5,6,7,8,9};printf("%d,%d\n", a[1].x+a[2].y, a[1].y+a[2].z);9.(4分)int a[8]={1,2,3,4,5,6,7,8};int i=1, *p = a;while (p<a+8){p rintf("%d ",*p);p = p+i;i*=2;} 10.(4分)FILE *fp;int d=20150111;char c1,c2;char str[4];fp=fopen("a.tmp","w");fprintf(fp,"%d", d);fclose(fp);fp=fopen("a.tmp","r");c1=fgetc(fp);fgets(str, 4, fp);c2=fgetc(fp);fscanf(fp, "%d", &d);printf("%c,%s,%c,%d",c1,str,c 2,d);二、改错题(20分)以下程序实现:从键盘输入20个学生的成绩数据,将这些数据存到磁盘文件“stu.dat”上,并求这些学生的最差成绩。
2014计算机二级c语言试题及答案一、单项选择题(每题1分,共40分)1. C语言中,用于定义变量的关键字是:A. intB. floatC. doubleD. char答案:A2. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = 'Hello';D. char str[6] = 'Hello';答案:A3. C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 在C语言中,以下哪个选项是正确的数组定义方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4};5. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strcat()C. strcmp()D. strlen()答案:A6. 在C语言中,以下哪个选项是正确的函数定义?A. int function(int a, int b) { return a + b; }B. int function(int a, int b) = { return a + b; }C. int function(int a, int b) { return a + b; }D. int function(int a, int b) { return a + b; }答案:A7. C语言中,以下哪个关键字用于定义函数?A. defineB. defC. functionD. void答案:D8. 在C语言中,以下哪个选项是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D9. C语言中,以下哪个选项是正确的条件语句?B. elseC. switchD. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针定义方式?A. int *ptr;B. int ptr*;C. *int ptr;D. int * ptr;答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型变量的关键字是________。
2014年C语言答案(伊诺版)好吧,我又来了= =。
本来想着14年网上是有答案就不传上来了,但发现有几题差异较大,传上来供大家参考参考,题源为《2014计算机C语言笔试题目(回忆版by松)》。
欢迎大家指出错误!——伊诺2015年3月16日一、指出程序中的错误,说明原因并修正。
1、Int *p,*q;p=malloc(sizeof(int)*20);q=malloc(sizeof(int)*10);…q=p;…free(p);free(q);答:由于free(p);已经将p所指内存区域释放掉,又q和p都指向同个内存区域,之后free(q);试图释放一个已经被释放的内存区域,会使程序崩溃。
此外原来q指向的内存区域由于指针丢失,会导致内存泄露。
修正方法:删除语句q=p;2、交换两个字符串Void swap(char *p, char *q){Char *temp;*temp=*p;*p=*q;*q=*temp;}答:*temp、*p、*q都是指向的一个字符,所以该函数只实现了交换两个字符串的首字符而已。
修正:void swap(char *p, char *q){char temp[100];strcpy(temp, p);strcpy(p, q);strcpy(q, temp);}此外:由于题目要求的是字符数组,如果是字符串,可以用以下解法:void swap(char **p, char **q){char *temp;temp=*p;*p=*q;*q=temp;int main(){char *a="123";char *b="456";swap(&a, &b);printf("%s\n%s\n", a, b);return 0;}二、简答题1、arr为整型数组,N为数组长度-1,enumb为整型变量,下列函数负责找出arr数组中等于enumb的元素所在位置。
NOIP2014(第二十届)初赛普及组C语言试题及答案第二十届全国青少年信息学奥林匹克联赛初赛普及组C语言试题竞赛时间:2014年10月12日14:30~16:30 选手注意:l 试题纸共有8页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上的一律无效。
l 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1. 以下哪个是面向对象的高级语言()。
A. 汇编语言B. C++C. FortranD. Basic 2. 1TB代表的字节数量是()。
A. 2的10次方B. 2的20次方C. 2的30次方D. 2的40次方3. 二进制数__和__的和是()。
A. __B. __0C. __D. __ 4. 以下哪一种设备属于输出设备()。
A. 扫描仪B. 键盘C. 鼠标D. 打印机5. 下列对操作系统功能的描述最为完整的是()。
A. 负责外设与主机之间的信息交换B. 负责诊断机器的故障 C. 控制和管理计算机系统的各种硬件和软件资源的使用 D. 将源程序编译成目标程序6. CPU、存储器、I/O设备是通过()连接起来的。
A. 接口B. 总线C. 控制线D. 系统文件7. 断电后会丢失数据的存储器是()。
A. RAMB. ROMC. 硬盘D. 光盘8. 以下哪一种是属于电子邮件收发的协议()。
A. SMTPB. UDPC. P2PD. FTP 9. 下列选项中不属于图像格式的是()。
A. JPEG格式B. TXT格式C. GIF格式D. PNG格式10. 链表不具有的特点是()。
A. 不必事先估计存储空间B. 可随机访问任一元素C. 插入删除不需要移动元素D. 所需空间与线性表长度成正比11. 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是()。
A. 296B. 133C. 256D. 199 12. 下列几个32位IP地址中,书写错误的是()。
2014年9月二级C语言程序设计模拟(7)试题及答案单项选择题1.下面关于算法的叙述中,正确的是( )。
A:算法的执行效率与数据的存储结构无关B:算法的有穷性是指算法必须能在执行有限个步骤之后终止C:算法的空间复杂度是指算法程序中指令(或语句)的条数D:以上三种描述都正确参考答案: B 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。
算法的有穷性是指一个算法必须在执行有限的步骤以后结束。
2.下列二叉树描述中,正确的是( )。
A:任何一棵二叉树必须有一个度为2的结点B:二叉树的度可以小于2C:非空二叉树有0个或1个根结点D:至少有2个根结点参考答案: B 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 二叉树是由n≥0个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。
二叉树可以是空集合,根可以有空的左子树或空的右子树。
二叉树不是树的特殊情况,它们是两个概念。
二叉树具有如下两个特点:①非空二叉树只有一个根结点。
②每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
3.如果进栈序列为A,B,C,D,则可能的出栈序列是( )。
A: C,A,D,BB: B,D,C,AC: C,D,A,BD:任意顺序参考答案: B 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 栈的操作原则为后进先出。
选项B)中出栈顺序可按“A进,B进,B出,C进,D进,D出,C出,A出”实现。
4.下列各选项中,不属于序言性注释的是( )。
A:程序标题B:程序设计者C:主要算法D:数据状态参考答案: D 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 注释一般为序言性注释和功能性注释。
序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。
2014年腾讯校园招聘C语言笔试题含答案1.输入一个链表的头结点,从尾到头反过来输出每个结点的值。
链表结点定义如下:struct ListNode{int m_nKey;ListNode*m_pNext;};A:递归方法逆序输出,栈方法逆序输出。
(任意实现一种既可)void PrintListUsingRecursicve(pListNode head){if(head!=NULL){PrintListUsingRecursicve(head->m_pNext);printf("%d/n",head->m_nKey);}}void PrintListUsingStack(pListNode head){Stack s;s.top=0;pListNode p=head;do{push(&s,p->m_nKey);p=p->m_pNext;}while(p!=NULL);while(!IsEmpty(&s)){printf("%d/n",pop(&s));}}2.二元树的深度题目:输入一棵二元树的根结点,求该树的深度。
从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define MAXLEN100#define MAXNUM10typedef int Tree[MAXLEN];Tree bt;int GetDeep(int i){int l=0,r=0;if(bt[i*2]!=-1){l=GetDeep(i*2)+1;}if(bt[i*2+1]!=-1){r=GetDeep(i*2+1)+1;}return l>r?l:r;}int main(){int i=0;memset(bt,-1,sizeof(bt));for(i=1;i<=MAXNUM;i++)bt[i]=i;bt[(i-1)*2]=i*2;printf("%d/n",GetDeep(1));return0;}3.整数的二进制表示中1的个数题目:输入一个整数,求该整数的二进制表达中有多少个1。
期末复习一、题型:共有5大题:1、单项选择题(每小题1.5分,小计30分)2、填空题(每空2分,小计20分)3、写出下列程序的运行结果(每小题5分,小计20分)4、程序填空(每空2分,小计10分)5、程序设计题(有3小题,其中:第1、2小题各6分,第3小题8分,小计20分)二、考试形式、时间、涉及内容考试形式为闭卷,时间为90分钟涉及内容:各讲内容均有涉及三、样题(与考题无必然联系,仅供参考)(1)单选题:1、C语言中,运算对象必须是整型的运算符是【】A. /B.%C. ++D. !2、下列标识符中,不合法的是【】A. x2B. sizeofC. _123D. char23、若x, i, j和k都是int型变量,则计算表达式x=(i=4, j=16, k=32)后,x的值为【】A. 4B. 16C. 32D. 524、设有数组定义:char a[ ]="China";则数组a所占的空间为【】字节A. 4B. 5C. 6D. 75、设d是double型变量,若要从键盘输入数据给d,正确的语句是【】A. scanf(d);B. scanf(" %f", d) ;C. scanf(" %f", &d) ;D. scanf(" %lf", &d) ;6、以下程序段的输出结果是【】int x=3;do{printf("%d",x-=2);} while(!(--x));A. 1-2B. 30C. 1D. 无输出7、下列程序段执行之后,输出的结果是【】double x=4,y;if (x<0)y=0;else if(x<10)y=1.0/x;elsey=1;printf("%.2f\n",y);A. 0.25B. 0.50C. 0.75D. 1.008、若已定义: int a[ ]={0, 11, 22, 33, 44, 55, 66, 77, 88, 99}, *p=a,i; 其中0≤i≤9, 则对a数组元素不正确的引用是【】A. p[i]B. *(&a[i]) //a[i]C. a[10]D. a[p-a]//a[0]9、现有定义:int *p[3]; 下列关于标识符p的描述中,正确的是【】A.定义不合法B. 是一个指向整型变量的指针C. 是一个指针,它指向一个具有3个元素的一维数组D. 是一个指针数组名,每个元素是一个指向整型变量的指针10、若有如下定义,则对ex中的a成员的正确引用是【】struct sk { int a; float b;} ex, *p = &ex;A. (*p).ex.aB. p->aC. p->ex.aD. p.ex.a11、判断字符串s1和s2是否相等的表达式是【】A. s1=s2B. s1==s2C. strcpy(s1,s2)==0D.strcmp(s1,s2)==012、数字11与13进行“位或”运算(即11|13)的结果是【】A. 1B. 11C. 13D. 15(2)填空题1、一个C语言程序的执行是从main 函数开始的。
《C语言程序设计基础》教材参考答案包括各单元:一.随堂练习二.单元总结三.单元练习四.实训指导单元一程序设计宏观认识一.随堂练习【随堂练习1-1】1.根据上述示例模仿编程,输入正方形的边长,计算其面积。
#include <stdio.h>void main( ){ int a,s; //数据准备,边长a,面积sprintf("请输入正方形的边长:");scanf("%d",&a); //数据输入s=a*a; //数据计算printf("该正方形的面积为:%d.\n",s);}【随堂练习1-2】1.下面哪些标识符属于合法的用户自定义标识符:Main、void、_num、my$、a*、N4、3m、a-2答:合法的用户自定义标识符是:Main、_num、N42.结合【例1.2】指出程序代码中所用到的标识符哪些是关键字,哪些是预定义标识符,哪些是用户自定义标识符。
答:关键字:void、int预定义标识符:include、main、printf、scanf用户自定义标识符:a、b、c3.分析【例1.2】中函数的结构,包括函数首部(函数返回值类型、函数名、形式参数)、函数体语句(说明语句、可执行语句)。
答:函数首部:void main( ),其中函数返回值类型为void、函数名为main、形式参数无;函数体语句:{}内的语句为函数体,其中:说明语句为int a,b,c;,其余为可执行语句。
【随堂练习1-3】1.在VC++6.0环境中完成【例1.2】程序开发过程。
(略)2.查阅【例1.2】所对应的工程文件夹,了解相关文件的含义。
工程文件夹中:.CPP:用C/C++语言编写的源代码文件。
.DSP:VC开发环境生成的工程文件,VC4及以前版本使用MAK文件来定义工程。
项目文件,文本格式。
.DSW:VC开发环境生成的WorkSpace文件,用来把多个工程组织到一个WorkSpace中。
(1)公式1 程序填空给定程序中,函数fun的功能是计算下式s=3/22-5/42+7/62-…+(-1)n-1(2×n-1)/(2×n)2直到︱(2×n-1)/(2×n2)︱≤10-3并把计算结果作为函数值返回,例如:若形参e的值为-le-3,函数的返回值为0.551690。
第1处x=3.0/4;第2处while(x>e)第3处x=(2*i+1)/(t*t);2.程序修改/**found**/double fun(int n)/**found**/s=s+(double)a/b;3.程序设计fun(int a[][M]){int i,j,max=a[0][0]; for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}1.程序填空给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。
例如:当形参n的值为10 的时,函数返回:9.6125588。
第一处s=0;第二处for(i=1;i<=n;i++)第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t);2.程序修改/**found**/for(i=0;str[i];i++)/**found**/if(substr*k+1+==’\0’)3.程序设计double fun(doubleeps){ double s=1,t=1./3;int n=1;while(t>=eps){s+=t;n++;t=t*n/(2.0*n+1);}return(s*2.0);}1程序填空给定程序中,函数fun的功能是:计算下式前5项的和作为函数值返回。
S=1×3/22-3×5/42+5×7/62-……+(-1)n-1(2×n-1)×(2×n+1)/(2×n)2例如,当形参n的值为10时,函数返回:-0.204491。
第1处k=1;第2处t=2*j;第3处k=k*(-1);2.程序修改/**found**/K++;/**found**/if (m==k)3 程序设计void fun (int a[], int n,int *max, int *d){int i;*max=a[0];*d=0;for (i=1; i<n;i++)if (*max<a[ i ]){ *max=a[ i ];*d=i;}}1.程序填空计算下式s=1/(2*2)+3/(4*4)+5/(6*6)+....(2n-1)/(2n*2n)..并把计算结果作为函数值返回。
填空:(1)0(2)i++(3)2.0*i改错:(1)void fun(char *s,char *t)(2)t[2*d]='\0';编程:int i,j=o;for(i=1;i<strlen(s);i+=2)if(i%2==0&&s[i]%2)t[j++]=s[i];t[j]='\0';1.程序填空函数fun的功能是计算f(x)=1+x-2/2!+3/3!-4/4!+……的前n项和。
若x=2.5,n=15时,函数值为1.917914。
第一处f=1;第二处t*=(-1)*x/i;第三处f+=t;2.程序修改/**found**/for(i=1;i<=3;i++)/**found**/if(k>=0&&k<=6)3.程序设计double fun(int n){double s=1’long t=1;int i;for(i=1;i<=n;i++){t=t*i;s+=1.0/t;}return s;}1.程序填空函数fun的功能是:计算f(x)=1+x-x2∕2!+x3∕3!-X4/4! 直到∣xn/n!∣<10-6若x=2.5,函数值为:1.917915。
第1处t=x第2处t*=(-1.0)*x/n;第3处while(fabs(t)>=1e-6)2.程序修改/**found**/for(i=1;i<=y;i++)/**found**/t=t%1000;3程序设计double fun(double x){int n=1;double sn=1;double xn=1,xn1=0;while(fabs(xn-xn1)>=0.000001){xn=xn*x*(0.5-n+1)/n;n+=1;sn+=xn;}return(sn);}1.程序填空给定程序中,函数fun的功能是:计算f(x)=1+x+x2/+…+xn/n!的前n项。
若x=2.5,函数值为:12.182340。
第1 处t=1 ;第2 处for(i=1 ;i<n ;i++)第3处t*=x/ i ;2.程序修改/**found**/k= i ;/**found**/c=k%10;3.程序设计double fun (double x[10]){Int i;double avg =0. 0,sum =0. 0, abs =0. 0,fc;for (i=0; i<10; i ++)sum +=x[ i ];avg =sum/10;for (i=0; i<10; i++)abs +=(x[i]- avg)*(x [i ]-avg );fc =sqrt (abs/10);return fc ; }1.程序填空给定程序中,函数fun的功能是:f(x)=1+x+x2/+…+xn/n!直到|x/n!|<10-6,若x=2.5,函数值为:12.182494。
第1处f=1. 0+x ;第2处t*=x/n第3处f+=t ;2.程序修改/**found**/d=1 ; s=0 ;/**found**/d=d/10 ;3.程序设计double fun (doublex[9]){int i ;double avg=0. 0,sum=0. 0 ;for (i=0 ; i<8 ; i++){avg =( x [i] + x[i+1])/2;sum += sqrt ( avg);} rturn sum ;}(2)素数1.程序填空给定程序中,函数fun的功能是:统计所有<=n(n>2)的素数的个数,素数的个数作为函数值返回。
第1处for ( j=2;j<i ;j++)第2处if (i%j==0)第3处if (j>=i)2.程序修改/**found**/sum =0; j=0;/**found**/if (sum %4==2)3 程序设计double fun (int n) {int i ;double sum=0.0;if (n>1&&n<=100) { for ( i=1 ; i<=n; i++) sum +=1. 0/(2*i - 1)- 1. 0/(2* i);}return sum;}1.程序填空用筛选法可得到2—n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数,依此类推,直到所找的下一个数等于n为止。
这样会得到一个序列:2、3、5、7、11、13、17、19、23……函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。
第一处for(j=a[i]*2;j<=n;j+=a[i])第二处while(a[i]==0)第三处if(a[i]!=0)2.程序修改/**found**/y=1;/**foune**/d=a-i;3.程序设计double fun(int n){int i;doublesum=0.0;for(i=1;i<n;i++)if(i%5==0||i%9==0)sum+=1.0/i;return sum;}N×N矩阵1 程序填空N×N矩阵,根据给定的m(m<=N)填空:(1) i++ (2)m (3) m改错:(1)while((high>=2)&&(n<10)) (2) 缺分号编程:floatx1=0.0,x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>0.000001);return x1;1. 程序填空给定程序中,函数fun的功能是:有N*N矩阵,将矩阵的外围元素顺时针旋转。
操作的顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为第一行,临时数组中和元素成为最后一列。
第一处t[0][N-j-1]=t[j][0];第二处for(j=N-1;j>=0;j--)第三处t[j][N-1]=r[j];2. 程序修改/**found**/double f(double x)/**found**/return s;3. 程序设计double fun(int m){double s=0.0;int i;for(i=0;i<=m;i++)s+=log(1.0*i);s=sqrt(s);return s;}1程序填空给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。
例如:若N=3有下列矩阵:1 2 34 5 67 8 9交换后:3 2 14 5 69 8 7第1处void fun (int t[] [N], int n)第2处for (i=0; i<n;i++)第3处t [i] [n-i-1]=s;2 程序修改/**found**/fun (int a [], int m)/**found**/else if (m>a [mid])3 程序设计void fun (char*a,char *p){ char *q=a;intj=0;while (*q&&q<p){if (*q!='*')a[j++]=*q;q++; }while (*p) a [j++]= *p++;a [j]=0; }1 程序填空给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素来。
第1处void fun (int) (*t)[N]第2处t[i][j]=t[i][j]+t[j][i];第3处t[j][i]=0;2程序修改/**found**/#define FU(m,n)((m)/(n))/**found**/return (value); }3程序设计void fun (char *a){ int j=0;char *p=a;while (*p=='*')p++;while (*p){a[j++]=*p;p++; }a[j]=0; }1. 程序填空给定程序中,函数fun的功能是:计算N*N矩阵的主对角线元素和方向对角线元素之和,并作为函数值返回。