程序设计基础习题及答案_第1页
程序设计基础习题及答案_第2页
程序设计基础习题及答案_第3页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

;.程序设计基础习题参考答案【习题 1基本概念】一、简答题 ( 在课本中寻找答案,略)1.1 c 程序的基本结构包括哪些内容?1.2 如何定义标识符?1.3 输入格式、输出格式的组成包括哪些内容?1.4 c 语言函数分为哪两类?1.5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?1.7 常量与变量的区别?1.8 c 语言中的标识符的定义规则?1.9 变量为什么要“先定义,后使用”?1.10 字符常量 a与字符串常量a 有何区别?1.11 大小写字母转换的规则是什么?1.12 变量的具有哪三种属性?二、单项选择题1.13 c 语言中, int 型数据在内存中的存储形式是(d)。a ) ascii 码b)原码c)反码d)补码1.14 下面四个选项中,均是不合法的用户标识符的选项是(c)。) ba 、x_0 、do) float、1a0、_y ) x-y 、 goto 、 123 ) _123、tmp、char1.15 下列选项中不正确的常数的选项是(d)。) 0x12f) -1.23e-2) 12.0) 03881.16 下面正确的字符常量是(b)。) a) ) n) 3761.17 下面正确的字符串常量是(c)。) a) 376) n) 3761.18表达式 a+4*25.0-b 的正确结果是(b)。) 67) 67.0)不确定) 67l1.19 执行 printf(%x,100);后的输出结果是(c)。 ) 100) 0x100) 0x64) 641.20 int型的-1 在内存中的存储形式是(a)。) 1111 1111 1111 1111) 0000 0000 0000 0001) 1111 1111 1111 1110) 1000 0000 0000 00011.21 存储字符串 abc376 需要的字节数是(d)。 ) 11) 13) 6) 7三、判断并改错;.;.1.22 c 程序执行的入口是main() 函数,所以main 函数必须放在程序的开头。错误: main函数可以放在程序的任何位置。并不限定在程序的开头。1.23 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。错误:不可以交叉出现,数据说明部分在执行语句部分的前面。1.24 编辑与编译不是一回事。错误: 不是一回事。 编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。1.25 scanf(%d,%d,&x,&y);的正确输入格式:3,4。正确1.26 注释内容太多会影响程序的执行效率。错误: 不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。1.27 所有的数学公式可以直接出现在源程序中。错误:数学公式需要转换成c 语言能够接受的公式才能出现在源程序中。四、编程题1.28 在屏幕上输出自己名字的拼音。提示:中文名字叫“张三”,对应的拼音为“zhang san” ,输出用 printf()函数。1.29 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。提示:定义圆的半径r,圆的周长: 2*3.14*r,输出结果保留2 位小数可以用%.2f【习题 2运算符与表达式】一、计算题2.12.8+7%3*11%2/4(答案: 2.8)2.25/2+5.0/2+7%6(答案: 5.5)2.3a=12,a*=2+3(答案: a=60)2.4a=3,b=4,c=5,a+bc&b= =c(答案: 0)2.535?3:5b)&(n=cd),计算表达式后m,n 的值?(答案: m=0,n=1)2.7 设 int b=7;float a=2.5,c=4.7;求下面表达式的值。a+(int)(b/2*(int)(a+c)/2)%4(答案: 4.5)二、单项选择题2.8 若有代数式8xy ,则不正确的c 语言表达式是(c )。bc;.a ) x/b/c*y*8b) 8*x*y/b/cc)8*x*y/b*cd ) x*y/c/b*82.9 有如下类型说明:int k,a,b;unsigned long w=8; double x=2.9则以下不符合c 语言语法的表达式是(a)。) x%(-3)) w*=-2) k=(a=6,b=4,a-b)) a*=a+=a-=(b=4)*(a=3)2.10 有如下类型说明: float n;int m;则以下能实现将n 中的数值保留小数点后两位,第三位四舍五入的表达式是(b)。) n=(n*100+0.5)/100.0) m=n*100+0.5,n=m/100.0) n=n*100+0.5/100.0) n=(n/100+0.5)*100.02.11 设 k=7,x=12; 则下列表达式值为3 的是( d)。 ) x%=(k%=5)) x%=(k-k%5)) x%=k-k%5) (x%=k)-(k%=5)2.12已知 m=48,ch= a,n=0;则表达式( m=n&chy?1:1.5);后的输出结果是(d)。 )语法错误) 1) 1.5) 1.5000002.14 能表示条件0 x 100 的表达式是(d)。) 0=x=0,x=0&x=0&ch=0&ch=0|ch60?pass:fail);2.17 输入一个年份y,如果是闰年,输出“y is a leapyear ”, 否则输出“ y isnot a leapyear. ”提示:printf(%d is %s,y%4=0&y%100!=0|y%400=0?a leap year.:not a leap year.);2.18 输入三条边a,b,c ,如果它们能构成一个三角形,输出“yes”,否则输出“no”。提示: printf(%s,a+bc&a+cb&b+ca?yes:no);2.19 输入三个数x,y,z,按从小到大的输出结果。提示:分别用max0 , min0代表最大、最小值,mid0表示中间值。;.max0=(xy?x:y)z?(xy?x:y):z;max0=(xy?x:y)z?(xy?x:y):z;mid0=x+y+z-max0-min0;2.20 输入一个平面上的点坐标,判断它是否落在圆心(0,0),半径为1 的圆内,如果在圆内,输出“ yes”,否则输出“no”。提示:分别用x,y 代表平面上一个点。printf(%s,x*x+y*y=0?yes:no);2.21 自增、自减运算符的用法与运算规则示例。2.22 计算下列表达式。( 1)( 2)x1bysin xb2 2a cos x4actan x提示 :模仿例2.272.23 字母的大小写转换。2.24 计算圆柱体的体积v= r2h,其中 =3.14159。提示:模仿2.272.25 输入两个整数,输出其中最大者。提示 :模仿 p292.26 输入三个整数,输出其中最小者。提示 : min(min(a,b),c);2.27 设圆半径r=1.5 ,圆柱高 h=3,求圆周长、 圆面积、 圆球表面积、 圆球体积、 圆柱体积。用 scanf输入数据, 输出计算结果, 输出时要求文字说明,取小数点后两位数字。请编程序。参考源程序:main()float r,h,c1,sa,sb,va,vb;scanf(%f,%f,&r,&h);c1=2*3.14*r;sa=3.14*r*r;sb=4*sa;va=4*3.14*r*r*r/3;vb=sa*h;printf(c1=%.2fn,c1); printf(sa=%.2fnsb=%.2fnva=%.2fnvb=%.2fn,sa,sb,va,vb);【习题 3控制流】3.1 编程实现,输入一个整数,判断它是否为偶数,并显示相应的信息。提示: x 代表输入的整数,if(x%2=0) printf(neven);else printf(nodd);3.2 编程实现,输入一个平面上的点,判断它是否落在单位圆上,并显示相应的信息。提示: x,y 代表平面坐标,if(x*x+y*y=1) printf(nyes);else printf(nno);3.3 编程实现,输入一个成绩等级(a-e),显示相应的百分制成绩段。a: 90-100b: 80-89c: 70-79d: 60-69e: 60提示: char grade;if(grade=a) printf(n90-100); else if(grade=b) printf(n80-89);.3.4 写出下面程序的运行结果:#include main()int a=-1,b=1,c=5; switch(a0)case 1:switch(b-21)|(t8) x=3; else x=1;else x=0;提示: int t;if(t10) c=0; else c=t;switch(t) case 0: x=0;break; case 1: case 2: x=3;case 3:case 4:case 5: case 6: x=2; case 7:case 8: case 9: x=3;case 10: x=2;3.7 编程实现一个具有简单四则运算功能的计算器。提示:参照例4.18 ,随机产生3 个数,其中一个数用来判断是哪种运算。3.8 编程实现,输入一行字符,将其中的数字字符对应的整数值加起来并输出结果。如:a45b8&*3则是 4+5+8+3, 结果为 20。提示: char c; int sum=0;while(c=getchar()!=n) if(c=0&c=9) sum=sum+c-0;3.9 编程实现,求20n! 的值。1提示:先计算n! ,再在计算阶乘的外面套上一层循环。注意:20 !是一个很大的值, float s=1;int i;例如:计算6 !:for(i=1;i=6;i+) s=s*i;3.10 编程实现,找出1000 之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3,所谓“完数”是指一个数如果恰好等于它的因子之和,因子是指能够整除该数的数。提示:先判断数是否为完数,如果是再考虑输出因子。以6 为例输出因子:for(i=1;i6;i+) if(6%i=0) printf(%d,i);3.11 编程实现,计算序列的前20 项之和,2 , 3 , 5 , 8 , 13 ,21 , .1235813提示:这是一个累加式,每项是一个分式,用a、b 分别表示分子、分母。注意:如果a、b 都是整数,则是整除。float sum=0,a=2,b=1; int i; for(i-1;i=20;i+)sum=sum+a/b;a=a+b;b=a-b;3.12 编 程 实现 , 求sn=a+aa+aaa+.+aa.a之 值 , 其 中a是 一 个 数 字 。 如 :;.2+22+222+2222+22222(此时 n=5), n,a 由键盘输入。提示:这是一个累加式,后1 项可以由前一项表示,譬如:第2 项可以由第1 项表示:第 1 项 t=a;第 2 项 : t=t*10+a;3.13 编程实现,把从键盘输入的金额数(以圆为单位)按人民币面额划分,然后显示支付该金额的各种面额人民币的数量。提示:譬如:123.58元可以表示100 元: 1 张; 20 元: 1 张; 2 元: 1 张; 1 元: 1张; 5 角: 1 张; 5 分: 1 枚; 2 分: 1 枚; 1 分: 1 枚。为了简单可以只完成整数部分转换,即输入的金额数为整数。3.14 编程实现,使用循环结构打印以下图案。* * * * * * * * * * * * * * * * * * *提示: 输出时, 本图案要按向上三角形和向下三角形进行输出。每行输出中包括空格输出, * 号输出。输出空格和* 号个数要与行循环控制变量关联起来。3.15 编程实现,以菜单方式实现猜数游戏系统。(功能自己设定)提示:模仿例4.14 和例 4.18 完成。功能可以包括猜数范围,人数等设置。3.16 编程实现,以菜单方式实现四则运算辅助教学系统。提示:随机产生两个操作数和运算符+、- 、* 、/ ,由使用者输入一个数,判断计算结果与输入的数是否相等,如果相等,表示正确,否则是错误的。3.17 输入四个整数,要求按大小顺序输出。参考源程序:main() int a,b,c,d,t;scanf(%d,%d,%d,%d,&a,&b,&c,&d); if(ab) t=a,a=b,b=t;if(ac) t=a,a=c,c=t; if(ad) t=a,a=d,d=t; if(bc) t=b,b=c,c=t; if(bd) t=b,b=d,d=t; if(c20),(即求 1!+2!+3!+4!+5!+20! )参考源程序 :main() int n,i=1;long sum=0,s=1; scanf(%d,&n);while(i=n)s=s*i;sum=sum+s;i+; printf(sum=%ldn,sum);3.19 输入两个正整数m和 n,求其最大公约数和最小公倍数。main()long m,n,i=1,j,s;scanf(%ld,%ld,&m,&n); for(;i=m&i=n) j=m; else j=n;for(;!(j%m=0&j%n=0);j+);printf(s=%ld,j=%ldn,s,j);3.20 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。参考源程序:#includestdio.h main()char c;int i=0,j=0,k=0,l=0; while(c=getchar()!=n)if(c=65&c=97&c=48&c=100&x1000)a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b; if(x=(pow(a,3)+pow(b,3)+pow(c,3) printf(%5d,x);x+;3.22 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。 以后每天早上都吃了前一天剩下的一半零一个。到第10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。参考源程序:main()int i=1,sum=0; for(;i=10; i+)sum=2*sum+1;printf(sum=%dn,sum);3.23 打印以下图案*参 考 源 程 序 : #includemath.h main()int i=1,k,l,m; for(;i=49;i+)if(k=1) if(m=l) elsek=i%7;l=3-fabs(i-1)/7-3);m=fabs(i-4-7*(i-1)/7); printf(n);printf(*);printf( );printf(n);3.24 古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.;.2.程序源代码:main()long f1,f2; int i; f1=f2=1;for(i=1;i=20;i+) printf(%12ld %12ld,f1,f2);if(i%2=0) printf(n);/*控制输出,每行四个f1=f1+f2; /* 前两个月加起来赋值给第三个月f2=f1+f2; /* 前两个月加起来赋值给第三个月*/*/*/【习题 4函数与程序结构】一、填空题4.1 c 语言程序执行的开始处是main 函 数4.2 c 程序中的一个函数由两部分组成,即。声明部分4.3 为了保证被调用函数不返回任何值,其函数定义的类型应为4.4 若一个局部变量的存储类型是4.5 预处理命令 #include 的作用是static, 则该变量的值在和 执行部分。void。程序执行完成时被释放。文件包含。4.6 定义一个宏,功能是判断两个数是否相等,相等为1,不等为0。#define equ(a,b)4.7 变量的存储类别有(a)=(b)?1:0自动型、 静态型、 寄存器型、和外部类型共4种,它们分别用auto 、static 、register 、extern标识。二、选择题4.8 下述函数定义形式正确的是(c )。a. int f(int x; int y)b. int f(int x,y)c. int f(int x, int y)d. int f(x,y: int)4.9 关于函数参数,说法正确的是(a )。a. 实参与其对应的形参各自占用独立的内存单元b. 实参与其对应的形参共同占用一个内存单元c. 只有当实参和形参同名时才占用同一个内存单元d. 形参是虚拟的,不占用内存单元a.数组的首地址b.数组的第1 个元素c.数组中的全部元素d.数组的元素个数复合语句中定义的变量的作用范围是(d)。a.整个源文件b. 整个函数c.整个程序d. 所定义的复合语句4.10 用数组名作为函数的实参时,传递给形参的是(a )。4.114.12 一个函数的返回值由(d)确定。a. return 语句中的表达式b.调用函数的类型c. 系统默认的类型d.被调用函数的类型4.13 在 一个c 源文件中,若要定义一个只允许本源文件所有函数使用的全局变量,其他文件中不允许使用,则该变量需要使用的存储类别是(d)。a. auto三、判断题b. registerc. externd. static4.14 若定义的函数没有参数,则函数名后的圆括号可以省略。()4.15 函数的函数体可以是空语句()。4.16 只有 main 函数才能调用其他函数。()4.17 return 语句中表达式的类型必须与函数定义的类型一致。()4.18 函数的实参和形参可以是相同的名字。()4.19 函数调用中,形参与实参的类型和个数必须保持一致。4.20 外部类型的变量只能定义一次,但可在不同地方声明多次。4.21 外部类型的变量作用范围大,编程中应多用外部变量。()()4.22 预处理命令行必须以开头,且最后要用分号结尾。()4.23 宏命令的处理占用编译时间,而不占用运行时间。( )四、看程序写结果4.24int fun(int n)int f=1;f = f*n*2; return(f);main() int i,j;for(i=1; in, 临时变量t,t=m%n;m=n;n=t;直 到 n 等于 0 。4.26 有 33 的矩阵 a 和 3 2 的矩阵 b ,编制一个函数,求c=axb 。提示:参照习题5.17 , a,b,c 三个数组作为函数参数。4.27 编写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。提示: 一维字符数组用来存放字符串,并且将它传递到函数,在函数中通过元素值交换来完成反序存放。4.28 编制一个函数,由参数传入一个字符串,统计此字串中字母、数字、和其他字符的个数,在主函数中输入字符串并显示统计结果。提示:参照例题6.10 。4.29 定义一个宏,实现将两个数互换,并写出程序,输入两个数作为使用参数,并显示结果。提示:带参数宏,swap(a,b,t).4.30 编写以下函数:输入职工的姓名和职工号;按职工号由小到大排序,姓名顺序也随之调整; 输入一个职工号,用折半法找出该职工的姓名,从主函数输入要查找的职工 号,输出该职工姓名。提示: 定义一个二维数组来存放职工信息;用数组名作函数的参数传递;通过“起泡算法”或“选择算法” ;折半查找法先决条件是数据已经有序。4.31 用函数实现牛顿迭代法求一元三次方程的根。-5解:牛顿迭代法的公式是:x=x 0-f(x)/f (x) ,设迭代误差小于10参考源程序:#include float solut(float a,float b,float c,float d)时结束。;. float x=1,x0,f,f1; dox0=x; f=(a*x0+b)*x0+c)*x0+d; f1=(3*a*x0+2*b)*x0+c; x=x0-f/f1;while(fabs(x-x0)=1e-5); return(x);main() float a,b,c,d;printf(“请输入一元三次方程的系数a,b,c,c:n”);scanf(“ %f,%f,%f,%f”,&a,&b,&c,&d);printf(“一元三次方程为:%5.2fx3+%5.2fx2+%5.2fx+%5.2f=0n” ,a,b,c,d);printf(“该方程的根为:x=%7.2fn ” ,solut(a,b,c,d);4.32 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。解:参考源程序:/* 是素数返回1,否则返回0*/ int sushuis(int m) int m; int i=2,t;for(;i=m;i+) if(m%i=0&im) break; if(m-i=0) t=1;else t=0; return t;main() int a,s;printf(enter number is: n); scanf(%d,&a); s=sushuis(a);if(s=1) printf(a是素数 !n);else printf(a不是素数 !n);printf(%5d,yi); printf(n);4.33 利用递归函数调用方式,将所输入的5 个字符,以相反顺序打印出来。1.程序分析:2.程序源代码:#include stdio.h main()int i=5;void palin(int n); printf(40:); palin(i); printf(n);void palin(int n)char next; if(n=1)elsenext=getchar(); printf(n0:); putchar(next);next=getchar(); palin(n-1); putchar(next);4.34 在 5*5 格的棋盘上从点出发,按日字跳马,要求不重复地跳经所有方格。求出所有跳马方案。参考程序:#includestdio.hint map1212, status1212, kp; int c82=2,1,2,-1,1,2,1,-2,-2,1,-2,-1,-1,2,-1,-2;void prt(int a12)/*打印棋盘状态*/int i,j,i2,j2;printf(n);for (i=2;i=9;i+) for (j=2;j=9;j+)printf(%4d,aij); printf(n);void status2(void)/*计算棋盘各点条件数*/ int i,j,k,i2,j2,kz; for(i=0;i12;i+)for(j=0;j12;j+)statusij=100; for(i=2;i=9;i+)for(j=2;j=9;j+)kz=0;for (k=0;k=7;k+)i2=i+ck0;j2=j+ck1;if (mapi2j250)kz+;statusij=kz;prt(status);void sort1(int b1,int b2)/*对 8 个可能的方向按条件数排序*/int i,j,mini,t; /*b1记录状态值(升序) , b2 记录排序后的下标for (i=0;i7;i+)*/mini=i;for (j=i+1;j=7;j+)if (b1jb1mini)mini=j; t=b1i;b1i=b1mini;b1mini=t;t=b2i;b2i=b2mini;b2mini=t;void init1(void)/*初始化*/int i,j,k; for(i=0;i12;i+)for(j=0;j12;j+) mapij=100;for(i=2;i=9;i+)for(j=2;j=9;j+) mapij=0;status2();void search(int i2,int j2) /*利用递归回溯进行搜索*/int b18,b28,i,i3,j3; kp+;if(kp=65)prt(map);exit(0); for(i=0;i=7;i+)b2i=i; b1i=statusi2+ci0j2+ci1;sort1(b1,b2); for(i=0;i0 )。5.6 语句 int a,*p=&a; 的含义是( 定义整型变量 a,和整型指针变量 p,并且 p 指向变量 a。)5.7 定义语句int*f();和 int(*f)(); 的含义分别是(int *f(); 表示函数返回一个整型指针;int (*f)( ); 表示 f 是函数指针,指向整型函数)二、选择题5.8 若 有 int s4=1,2,3,4;,则 ss0+2*s2-s3的值是(d )a.1b.2c.3d.45.9 对数组的描述正确的是( b )。a 数组一旦定义其大小是固定的,但数组元素的类型可以不同。b 数组一旦定义其大小是固定的,但数组元素的类型必须相同。c数组一旦定义其大小是可变的,但数组元素的类型可以不同。d 数组一旦定义其大小是可变的,但数组元素的类型必须相同。5.10 对字符串 boy 进行完整赋值的操作是( b )。a char s3 = b,o,y;b. char s = boy;c char s3 = boy;d.char s3; s=boy;5.11 在 c 语言中引用数组元素时,其数组下标的数据类型允许是(c)。a 整型常量b. 整型表达式c整型常量或整型表达式d. 任何类型的表达式5.12 对以下说明语句的正确理解是(b)。int a10=6,7,8,9,10;a 将 5 个初值依次赋给 a1 至 a5 b 将 5 个初值依次赋给 a0 至 a4 c将 5 个初值依次赋给 a6 至 a10d 因为数组长度与初值的个数不相同,所以此语句不正确三、看程序写结果5.13main()int a5=1,2,3,4,5;int *p=&a1; printf(%d,p2);输出结果: 45.14main() char a=i love china!; char *p=a;p=p+2; printf(%s,p);输出结果: love china!5.15main()int a34=1,2,3,4,5,6,7,8,9,10,11,12;int (*pa)4=a; pa+;printf(%d,*(*(pa+1)+2);输出结果: 115.16main() char *str=zhao,qian,sun,li; int i;for (i=0;i4;i+) printf(%c,stri0);输出结果: zqsl5.17void sub(int x,int y,int *z)*z=y-x; main()int a,b,c; sub(10,5,&a);sub(7,a,&b);sub(a,b,&c); printf(%4d,%4d,%4dn,a,b,c);输出结果:-5, -12,-75.18#include fun(char *s) char *p=s; while (*p) p+; return(p-s);main() char *str=abcd; int i;i=fun(str); printf(%d,i);输出结果: 45.19main()int a33 = 1,0,2, 2,2,0,2, c33,i,j;for(i=0; i3; i+)for(j=0; j3; j+)cij = aaijaji; printf(%5d,cij);printf(n);运行结果为 :2200022015.20 当运行以下程序时,从键盘输入 :ah2maa3ha ,请写出输出结果。main()chars80, c=a; int i=0; scanf(%s,s);while(si+!=0)if(si = c)si=si-32;elseif(si=c-32)si=si+32; puts(s);运行结果为:ah2maa3ha四、编程题5.21 用数组方法定义一个矩阵,求其转置矩阵。提示:已知a32 ,转置后的结果存放在b23;则 bji=aij;.5.22 从键盘输入9 个不同的整数,组成三行三列的二元数组,找出每一列中的最大元素, 并输出其行、列下标。提示:已知a33 , max,row,col分别用来存放一列的最大值,行下标和列下标。11121133114641151010515.23 利用一个二维数组,打印出以下杨辉三角形,要求打印出10 行。1提示:定义一个10 行 10 列的二维数组,并且通过两重循环对第1 列所有元素赋值1 , 主对角线也赋值。根据aij=ai-1j+ai-1j-1求出其它元素的值。5.16 从键盘上输入一串字符(长度小于50 个字符),找出其中最前面的一个x 和最后面的一个 x 之间的子串,并输出子串的长度。提示:定义一个长度为81 的字符数组,从左边查找第一字符x 的下标,从右边查找第一个字符 x 的下标。5.24 矩阵 a 是一个 33 的矩阵, b 是一个 32 的矩阵,编程求c=ab 。提示: 定义一个3x2 的数组 c32,该数组的元素值由a 数组的一行元素分别与b 的一列元素相乘得到。譬如:c00=a00*b00+a01*b10+a02*b20。5.25 把 30 个学生的学号和两门课程的成绩输入到一个二维数组中,求出的每个学生的两门课程的总成绩也放于此数组中,请按学生总分的高低打印出成绩单(包括学号、两门课程成绩和总分) 。提示: 定义一个30 行 4 列的数组。 为了先快速测试算法是否正确?可以定义一个3 行4 列的数组,并且通过赋初始值,减少调试程序时反复输入数据的麻烦,算法调试成功后在加上输入数据部分。实现从高到低打印出成绩可以通过排序(降序);也可以通过另外定义1 个一维数组作为索引,再通过索引打印成绩。5.26 不用现有的函数求计算字符串长度的程序。提示:通过循环从前到后计算字符个数,遇到字符串结束标志0 结束。5.27 从键盘上输入一串字符,将其逆向显示。提示:首先计算字符串的长度,在从右边逐一显示字符,直到下标等于0 为止。5.28 找出一个二位数组中的鞍点的位置,即该位置上的元素在该行上最大,在该列上最小。如果有,输出其所在的行、列号,如果没有,则输出提示信息。提示:先找出行的最大元素,根据列下标找出列的最大元素。5.29 从键盘上输入一串字符,将字符串中的所有a 去掉后组成新的字符串,并将两字符串输出。提示:简单的方法是通过定义两个一维数组,逐个读出原字符串的字符,如果不为a ,则存入目的数组。当然也可以只用一个一维数组实现,通过两个下标指示来实现。5.30 输入一个字符串,内有数字和非数字字符,例如:a345dsaf412 x?371+89tah74编程将其中连续的数字作为一个证书,一次存放到一个数组d 中,例如: 345 放在 d0 , 412 放 在 d1 ,。统计共有多少个证书,并输出这些整数。提示:从字符串中提取345 : t=ch-0;t=t*10+(ch-0);t=t*10+(ch-0);t=3-0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论