设有int a[5,5],通达信公式编写教程程序计算每行元素之和及每列元素之和.(帮我看一下我哪错了 谢谢!!)

查看: 9673|回复: 36
黄迪明版C语言课后题,我自己做的答案,交流一下吧。
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
复试资料里有黄迪明版的C语言,但是找不到答案,网上有一个题解的pdf但是版次不同,答案对不上。所以自己在做,把自己做的顺手发出来和大家交流一下,求改错。。。
以及,附上我下载的黄迪明版C语言题解吧。
1.1 C语言具有哪些主要特点?
答:(pdf版24页,P13)
① C语言是一种兼有高级语言和汇编语言优点的语言,它既有高级语言面向用户、语句简单、编程容易的优点,又有一般高级语言难以完成只能在汇编级才能进行的处理和操作,如地址操作、位操作、寄存器操作、系统功能调用等。
② C语言是一种结构化程序设计语言。使用C语言提供的结构化语句,便于实现由顶向下、逐步细化的结构化程序设计方法。C语言的主要结构成分是函数。程序以函数为模块的结构有利于把整体程序分割成若干相对独立的功能模块,并且为程序模块间的相互调用及数据传递提供了方便。这一特点有利于大型软件模块化,为多人共同开发大型软件的软件工程技术方法提供了强有力的支持。
③ C语言数据类型丰富。C语言数据类型包括整型,实型,字符型,数组类型、结构类型、联合类型、枚举类型、及指针类型等,可以用来实现各种复杂的数据结构。C语言具有较强的数据处理能力。
④ C语言具有种类丰富的运算符,除一般高级语言具有的运算功能外,还可以实现以二进制为单位的位运算,自增、自减等单目运算和各种复合赋值运算等。丰富的数据类型与丰富的运算符相结合,使C语言具有表达灵活和高效率的优点。
⑤ C语言具有预处理功能。采用预处理语句给大型程序的编写和调试提供了方便。
1.2 C语言的主要用途是什么?
答:(同上题)
C语言广泛用于为各种计算机系统编写有关的系统软件,如操作系统,编译系统,汇编器,及编辑器等。作为一种应用程序设计语言,C语言已广泛用于编写各种领域的应用软件,如数据库管理软件、CAD/CAM软件、文字处理软件、图形软件、办公自动化软件、科学计算及工程应用软件等。
1.3 简述C语言程序的结构特点。
答:(pdf版26页,P15)
C语言程序的基本结构是:C语言程序为函数模块结构,每个C语言程序都是由一个或多个函数组成,其中至少有一个main()函数;程序从main()函数开始执行,程序执行中可以调用由编译系统提供的各种标准库函数和用户自定义的函数。
1.4 简述C语言程序开发的一般步骤。
答:编辑、编译、链接、运行四个步骤(具体的好麻烦,打字累 &.&)
1.5 以下几个语句的显示结果是什么?
① printf(&&);
② printf(&first second third\n&);
③ printf(&first\n second\n third\n&);
④ printf(&first\n\n senond\n\n third\n&);
frist second third (ps:行末未换行)
first second third【CR】 (ps:【CR】表示换行符)
first【CR】
second【CR】
third【CR】
first【CR】
second【CR】
third【CR】
1.6 以下程序完成的功能是什么?
main(){
&&int i,j,k;
&&printf(&Please in put the two integers: i and j\n&);
&&scanf(&%d,%d&, &i, &j );
&&k=i*i+j*j;
&&printf(&The result of i*i+j*j is %d\n&, k);
}
复制代码答: 获取用户输入的两个整数,计算出这两个数的平方和并输出。
1.7 以下哪些标识符是合法的?
1.int_do 2.int 3.dO 4.32data 5.DWMax_Value 6.one_$ 7.TWO_AND_THREE
答:合法标识符有 1、3、5、7
1.8 试编写一个C语言程序,它输入一个浮点数,计算它的倒数,并将结果输出。
#include &stdio.h&
int main(void){
&&float input,
&&printf(&Please input a number:&);
&&scanf(&%f&, &input);
&&result = 1 /
&&printf(&The reciprocal of %5.2f is %5.2f\n&, input, result);
&&return 0;
}
复制代码
1.9 试编写一个C语言程序,它输入三个整数,计算他们的和,并将结果输出。
#include &stdio.h&
int main(void){
&&int n1, n2, n3,
&&printf(&Please input three integers:&);
&&scanf(&%d,%d,%d&, &n1, &n2, &n3);
&&sum = n1+n2+n3;
&&printf(&The sum of the three number is:%d\n&, sum);
&&return 0;
}
复制代码
1.10 试编写输出如下信息的C语言程序。
& && && && && & *****************************
& && && && && && && && && && && &Turbo C
& && && && && & *****************************
#include &stdio.h&
int main(void){
&&int n1, n2, n3,
&&printf(&\t*****************************\n&);
&&printf(&\t\tTurbo C\n&);
&&printf(&\t*****************************\n&);
&&return 0;
}
复制代码
本帖子中包含更多资源
才可以下载或查看,没有帐号?
王道威望 +10
戰爭即和平;
自由即奴役;
無知即力量。
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
本帖最后由 lostyear540 于
11:49 编辑
2.1 请把整数 200 表示为十六进制数、八进制和二进制数。
答:十六进制,0xc8;八进制,0310;二进制,
2.2 以下哪些常数是C语言中合法的数?
&&①12345& &②0123 ③0x43ff ④b&&⑤21.345&&⑥2.3e12&&⑦E-10
&&⑧234.78&&⑨'c'&&⑩'fhsgfh'&&(11)123,345
答:①、②、③、⑤、⑥、⑧、⑨
2.3 以下程序的输出结果是什么?
main(){
&&char c,d;
&&c='d';
&&d=c;
&&printf(&%d=%c&,d);
}
复制代码答: d=?&&【经lland指正,应为100=?】
(ps:等于号后面的字符是个谜 -_-||)
2.4 以下各数所对应的十进制数是什么?
①0x1a&&②0xb7&&③022&&④0xf91&&⑤0x4444&&⑥0621
答:①26&&②183&&③18&&④3985&&⑤2340&&⑥401
【经lland指正,⑤2340应为17476】
2.5 设 c, d, e 为字符型变量,且c='c'。问:d=c+1 和 e=c-1 的值分别是什么?
答: 'd' 和 'b' (100和98)
2.6 试编制一个程序,输入一个字符,找出与这个字符前后各隔一个字符的字符。如输入d,显示b和f。
#include &stdio.h&
int main(void){
&&
&&c = getchar();
&&putchar(c-2);
&&putchar('\t');
&&putchar(c+2);
&&return 0;
}
复制代码
2.7 假定 ch 是一个字符型变量,且有 ch='c'。一下语句显示的结果是什么?
& & printf(&%d%c\n&, ch, ch);
2.8 试编写一个程序,用一下公式把华氏温度转换为摄氏温度: C=(F-32)/1.8。
#include &stdio.h&
int main(void){
&&float f=0.0f, c=0.0f;
&&scanf(&%f&, &f);
&&c = (f-32)/1.8;
&&printf(&%f&, c);
&&return 0;
}
复制代码
2.9 在微型机上一个整型数的最大值为32767,如果需要定义一个变量i,它的数值可达1000000,问这个变量应该怎样定义?
答:使用 long int 类型定义,代码为:
2.10 请只出以下程序段中的错误。
int j, i,
&&char a, b,
&&float x, y,
&&
&&i = 30000;
&&j = 30000;
&&a = '9';
&&b = '5';
&&k = a*i+b*j;
&&z = x*x+y*y;
&&...
}
复制代码
答:①计算出 a*i+b*j 表达式的值将超过 k 可以表示的范围
②x与y尚未赋初始值,不能进行运算。
2.11 假定我们希望求3个整数 a, b, c 的平均值 d。则变量 a, b, c, d应该定义为什么类型?
答: a, b, c 应为整型,d为浮点型
2.12 计算下列整数表达式:
①1+55/2&&②10/9*3&&③23-12%7&&④(-12)%(-3)&&⑤34/3*3+34%3
答:①28&&②3&&③18&&④0&&⑤34
2.13 以下各关系表达式的值等于什么?
①1!=2&&②8&=10==1&&③x=(3+4)==2&&④x!=!x
答:①1&&②1&&③0&&④1
2.14 以下两个程序段的输出分别是什么?
printf(&%d %d\n&, x++, y++);
printf(&%d %d\n&, x--, y--);
printf(&%d %d\n&, ++x, ++y);
printf(&%d %d\n&, --x, --y);
2.15 编写一个程序完成三角函数中度与弧度数的转换,即输入一个角度,输出它对应的弧度。
#include &stdio.h&
#define PI 3.f
int main(void){
&&float degress,
&&scanf(&%f&, &degress);
&&radians = degress/180*PI;
&&printf(&%f&, radians);
&&return 0;
}
复制代码
2.16 给定表达式 “a=(b=(c=8)+3)-7”,则 a, b, c 的值分别是多少?
答: a=4, b=11, c=8
2.17 编写一个程序输入两个整数 a和 b,计算并显示表达式 ①a&&b==a||b&&②a&b==a|b
#include &stdio.h&
int main(void){
&&int a,b,r1,r2;
&&scanf(&%d,%d&, &a, &b);
&&r1 = (a&&b==a||b);
&&r2 = (a&b==a|b);
&&printf(& %d %d\n&, r1,r2);
&&return 0;
}
复制代码
2.18 编写一个程序,它读入一个整数 i,然后把i的高八位和低八位分别按16进制数显示。例如,输入2157,则输出“高八位:0x08&&低八位:0x6d”
#include &stdio.h&
int main(void){
&&int input,r1,r2;
&&scanf(&%d&, &input);
&&r1 = input&0
&&r2 = (input&0xff00)&&8;
&&printf(&高八位:0x%02x 低八位0x%02x\n&, r2,r1);
&&return 0;
}
复制代码
2.19 以下程序的输出是什么?
main(){
&&
&&
&&i = ~0;
&&j = ~0;
&&printf(&i=%d j=%d\n&, i,j);
}
复制代码答:i=-1 j=-1
(我的编译器这样输出的我看不懂为什么。。。求解答。)
2.20 如果 x=6,则-x,!x和~x分别等于什么?
答: -x等于-6; !x等于0; ~x等于-7。
2.21 编写一个程序,它读入一个整数i,然后把i所对应的二进制码的最高位和最低位分别显示。
#include&stdio.h&
int main(void)
{
&&int i,highb,
&&scanf(&%d&,&i);
&&highb = i&0x8000&&15;
&&lowb = i&0x0001;
&&printf(&high bit:%x\nnlow bit:%x\n&,highb,lowb);
&&return 0;
}
复制代码
2.22 编写程序,读入一个整数i,判断i++与++i的区别。
答: 我略过此题了。
2.23 编写一个程序,它读入两个浮点数 a, b,分别计算并显示下列各式的值。
①a+b&&②a-b&&③a*b&&④a/b
#include&stdio.h&
int main(void){
&&float a,b;
&&scanf(&%f,%f&, &a, &b);
&&printf(&%f, %f, %f, %f\n&, a+b, a-b, a*b, a/b);
&&return 0;
}
复制代码
2.24 假定x的值为100,问在执行以下四个语句的过程中,x的值和表达式的值分别是怎样变化的?
①x++&&②++x&&③x--&&④--x
答:①x的值为101,表达式的值为100&&②x的值为102,表达式的值为102
&&③x的值为101,表达式的值为102&&④x的值为100,表达式的值为100
2.25 假定 y 的值等于100,问下述语句执行后,x的值分别是多少?
①x=y;&&②x=--y*4;&&③x=y==y++;&&④x=y==100;&&⑤x=y==y--;&&⑥x=y==++y;
答:①100&&②396&&③1&&④1&&⑤1&&⑥0
【经lland指正,⑥0应为1】
2.26 给定以下程序段:
&&int i,j,k;
&&k=(i/j)*j;
请补充若干个语句,以显示以下逻辑表达式是否为真。
①i==k&&②i&k&&③i&k
答:(i的值为10,k的值为9,补充表达式什么意思?)
2.27 编写程序输入一个整数i,并显示i所对应的二进制码的 D9 位和 D10 位的值。
#include&stdio.h&
int main(void)
{
&&int i,d9,d10;
&&scanf(&%d&,&i);
&&d9 = i&0x100&&8;
&&d10 = i&0x200&&9;
&&printf(&D9:%x\nD10:%x\n&,d9,d10);
&&return 0;
}
复制代码
2.28 使用++运算符可以把以下三个语句写成一个语句。请设法写出这个语句,并编程上机验证结果。
&&y=y+1;&&z=x+y; x=x+1;
答:z=(++y)+(x++);
2.29 假定 x=3, y=2, z=1, t=0。以下表达式的值分别是多少?
①t&!(z-1)&&②x|y&&t&z&&③x!=y!=z!=t&&④~x&~y&&⑤x==y==z&&⑥t==(x&y)
答:①0&&②0&&③0&&④0&&⑤0&&⑥0
戰爭即和平;
自由即奴役;
無知即力量。
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
本帖最后由 lostyear540 于
11:52 编辑
3.1 以下每个printfO函数的显示结果是什么?
①printf(&%9.4f\n&, 123.456789);
②printf(&%-9.4f\n&, 123.456789);
③printf(&%*d\n&, 4, 2345);
④printf(&%4c\n&, 'd');
答:(_表示空格)①__123.4567
②123.4567__
④___d【经lland指正,①②的空格数量均应为一个】
3.2 假定输入的数据流如下:
&&23..23 567 hello F 34.32
为了把第二个数赋给变量second,把第三个数赋给变量third,把字符'F'赋给变量ch。问scanfO函数的表示形式是什么?
答:
scanf(&%*f %f %d %*s %c %*f&, &second, &third, &ch);复制代码
3.3 请编写一个程序,它读入一个浮点数,然后分别显示该数的整数部分和小数部分。
#include &stdio.h&
int main(void){
&&scanf(&%f&, &input);
& &printf(&%d %f\n&, (int)input, input-(int)input);
&&return 0;
}
复制代码
3.4 输入一个不大于1000的整数,分别显示它的个位数、十位数和百位数以及每位数所对应的ASCII码。例如,输入345,显示:
#include &stdio.h&
int main(void){
&&char ch1,ch2,ch3;
&&scanf(&%c%c%c&, &ch1,&ch2,&ch3);
&&printf(&%4c %4c %4c\n&, ch3, ch2, ch1);
&&printf(&%4d %4d %4d\n&, ch3, ch2, ch1);
&&return 0;
3.5 找出并更正以下程序中的错误。
&&scanf(&%f&, pound);
&&ki1ogram=pound/2.2
&&printf(&%d pounds equals %d kilograms\n&,pounds,kilograms);
①② scanf(&%f&, pound); → scanf(&%lf&, £);
③ ki1ogram=pound/2.2 → ki1ograms=pound/2.2
④⑤⑥ printf(&%d pounds equals %d kilograms\n&,pounds,kilograms); → printf(&%lf pounds equals %lf kilograms\n&,pound,kilograms);
3.6 找出并更正以下程序中的错误。
&&scanf (&%d&, &big);
&&printf(&%f&, big/2.2);
}
复制代码
① scanf (&%d&, &big); → scanf (&%ld&, &big);
② printf(&%f&, big/<font color="#ff); → printf(&%f&, big/<font color="#fff);
3.7 编写程序输入一个整数,把它左移4位后输出。
#include &stdio.h&
int main(void){
&&scanf(&%d&, &input);
&&printf(&%d\n&, input&&4);
&&return 0;
3.8 编写一个程序,它读入两个浮点数a和b,分别计算并显示:
(1) a+b (2) a-b (3) a*b (4) a/b
显示格式为:
显示宽度为每个数占10位,其中小数点后占3位。
#include &stdio.h&
int main(void){
&&float a,b;
&&scanf(&a=%f b=%f&, &a, &b);
&&printf(&a+b=%10.3f\na-b=%10.3f\na*b=%10.3f\na/b=%10.3f\n&,
& && && && &a+b, a-b, a*b, a/b);
&&return 0;
3.9 编写一个程序,读入一个小写字母,显示这个小写字母、它所对应的大写字母及大小写字母的ASCII码。
#include &stdio.h&
int main(void){
&&scanf(&%c&, &ch);
&&printf(&%c %c %d %d&, ch, ch-32, ch, ch-32); //感谢lland指出的错误
&&return 0;
}
复制代码
3.10 编程输出以下图形
#include &stdio.h&
int main(void){
&&char ch='*';
&&char* str=&*********&;
&&printf(&%5c\n&,ch);
&&printf(&%4c%2c\n&,ch,ch);
&&printf(&%3c%4c\n&,ch,ch);
&&printf(&%2c%6c\n&,ch,ch);
&&printf(&%s\n&, str);
&&return 0;
}
复制代码
#include &stdio.h&
int main(void){
&&char ch='*';
&&char* str=&*********&;
&&printf(&%s\n&, str);
&&printf(&%c%8c\n&,ch,ch);
&&printf(&%c%8c\n&,ch,ch);
&&printf(&%c%8c\n&,ch,ch);
&&printf(&%c%8c\n&,ch,ch);
&&printf(&%s\n&, str);
&&printf(&%c%8c\n&,ch,ch);
&&printf(&%c%8c\n&,ch,ch);
&&printf(&%c%8c\n&,ch,ch);
&&printf(&%c%8c\n&,ch,ch);
&&printf(&%s\n&, str);
&&return 0;
3.11 熟悉并上机运行C程序的方法,运行习题3.7~3.10所编写的程序,检查运行结果是否正确。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
戰爭即和平;
自由即奴役;
無知即力量。
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
本帖最后由 lostyear540 于
11:54 编辑
4.1 编写一个程序从终端上输入两个整数,检查第一个是否能被第二个数整除。
#include &stdio.h&
int main(void){
&&int n1,n2;
&&scanf(&%d %d&, &n1, &n2);
&&if(n1%n2)
& & printf(&不能被整除&);
&&else
& & printf(&能被整除&);
&&return 0;
}
4.2 以下程序的功能是什么?
main(){
&&int a,b;
&&scanf(&%d %d&, &a,&b);
&&a=a&b?a:b;
&&printf(&%d\n&,a);
}
答:显示用户输入的两个整数中较小的一个。
4.3 编写一个程序输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦:
(1)标准体重=身高-110; (2)超过标准体重5kg为过胖;(3)低于标准体重5kg为过瘦。
#include &stdio.h&
int main(void){
&&int height,weight,
&&scanf(&%d %d&, &height, &weight);
&&fit = height - 110;
&&if( weight & fit+5 )
& & printf(&过胖&);
&&else if(weight & fit-5 )
& & printf(&过瘦&);
&&else
& & printf(&正常&);
&&return 0;
}
复制代码
4.4 编写程序计算:
#include &stdio.h&
int main(void){
&&int i,result=0;
&&scanf(&%d&, &i);
&&if( i &= 5 )
& & for( ; i&0; i-- )
& && &result +=
&&else if(i & 10 )
& & result = i*i;
&&else
& & for( result=100; i&0; i--)
& && &result -=
&&printf(&%d\n&, result);
&&return 0;
}
4.5 编程序输入5个整数,求其中数值最大者。
#include &stdio.h&
int main(void){
&&int a1,a2,a3,a4,a5,
&&scanf(&%d %d %d %d %d&, &a1,&a2,&a3,&a4,&a5);
&&max = a1;
&&if(max&a2)
& & max=a2;
&&if(max&a3)
& & max=a3;
&&if(max&a4)
& & max=a4;
&&if(max&a5)
& & max=a5;
&&printf(&%d\n&, max);
&&return 0;
}
4.6 编写一个程序计算x^y ,其中x是浮点数,y是正整数。
#include &stdio.h&
int main(void){
&&float x,
&&
&&scanf(&%f %d&, &x,&y);
&&for(; y&=1; y--)
& & result *=
&&printf(&%f\n&, result);
&&return 0;}
4.7 编写一个程序能读入并计算一个只包含加减运算的表达式,每个输入的数据都是浮点数.除第一个 数以外,其余每个数前面都有一个运算符.如“23+43-233+234;”,表达式以分号结束.
#include &stdio.h&
int main(void){
&&float number,
&&
&&scanf(&%f%c&, &number,&ch);
&&result =
&&while(ch!=';'){
& & scanf(&%f&, &number);
& & switch(ch){
& && &case '+':
& && &&&result +=
& && &&&
& && &case '-':
& && &&&result -=
& && &&&
& & }
& & ch = getchar();
&&}
&&printf(&%f&, result);
&&return 0;
}
第四章还在做。。。。。但是太晚了,先去碎觉,明天继续。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
戰爭即和平;
自由即奴役;
無知即力量。
主题帖子积分
考研年份2013
报考学校电子科大
本科学校福建师范大学
主题帖子积分
王道论坛中级道友, 积分 270, 距离下一级还需 730 积分
王道论坛中级道友, 积分 270, 距离下一级还需 730 积分
考研年份2013
报考学校电子科大
本科学校清华大学
网络上有答案
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
挑战全国第一
& &没找到啊,我发的附件里有一部分答案,但是不全。。哪里能找到求一份啊。。。。
戰爭即和平;
自由即奴役;
無知即力量。
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
本帖最后由 lostyear540 于
22:57 编辑
继续 第四章&&(给家里的网速跪了,一直出错。。。夜里更新吧)
4.8 编写一个程序计算
e^x = 1+x+x^2/2!+x^3/3!+…+x^n/n!
#include &stdio.h&
int main(void){
&&float x,up,
&&scanf(&%f&, &x);
&&result = 1;
&&down = 1;
&&for( n=1; n&=30; n++){
& & down *=
& & result += up/
&&printf(&%f&, result);
&&return 0;
4.9 编写一个程序求满足以下公式的变量k的最大值。
& & 2^k≤m&&(其中,m是程序输入的一个正整数。)
#include &stdio.h&
int main(void){
&&int m,k=0,sqrt=1;
&&scanf(&%d&, &m);
&&while( sqrt&=m ){
& & sqrt *= 2;
&&printf(&%d&,--k);
&&return 0;
4.10 以下程序输入一个整数,然后依次显示该整数的每一位。
&&int number,
&&scanf (&%d&, &number);
& & digit=number%10;
& & printf (&%d&, digit);
& & number/=10;
&&}while(number!=0);
&&printf(&\n&);
该程序对输入的正整数可以正常工作,但如果输入负数,则会得到错误的结果。请改进该程序,使它在 输入负数时也能工作。例如,如果输入的数是-4567,则输出7654-。
#include &stdio.h&
#define bool _Bool
#define true 1
#define false 0
int main(void){
&&int number,
&&bool isNega=
&&scanf (&%d&, &number);
&&if(number&0){
& & isNega=
& & number = -
& & digit=number%10;
& & printf (&%d&, digit);
& & number/=10;
&&}while(number!=0);
&&if(isNega)
& & putchar('-');
&&printf(&\n&);
&&return 0;
4.11 编写一个程序,计算一个整数的各位数字之和,如输入2568,该程序计算并显示2+5+6+8的值。
#include &stdio.h&
int main(void){
&&int number,digit,sum=0;
&&scanf (&%d&, &number);
& & digit=number%10;
& & sum +=
& & number/=10;
&&}while(number!=0);
&&printf(&%d\n&, sum);
&&return 0;
4.12 编写一个程序输入一个整数,用英语单词输出该数的每一位数字。例如输入3567,输出为:
first_digit& && &&&second_digit& && && &third_digit& && && &four_digit
seven& && && &six& && && && && & five& && && && && & three
#include &stdio.h&
char* NumberToString(int);
char* NumberToDigitString(int);
int main(void){
&&int number,i,count=0,digits[10];
&&number=123;//scanf (&%d&, &number);
& & digits[count] = number%10;
& & number/=10;
&&}while(number!=0 && count&10);
&&for(i=1;i&=i++){
& & printf(&%15s&, NumberToDigitString(i));
&&putchar('\n');
&&for(i=0;i&i++){
& & printf(&%15s&, NumberToString(digits[i]));
&&putchar('\n');
&&return 0;
char * NumberToString(int number){
&&switch(number){
& & case 1:
& &&&return &one&;
& & case 2:
& &&&return &two&;
& & case 3:
& &&&return &three&;
& & case 4:
& &&&return &four&;
& & case 5:
& &&&return &five&;
& & case 6:
& &&&return &six&;
& & case 7:
& &&&return &seven&;
& & case 8:
& &&&return &eight&;
& & case 9:
& &&&return &nine&;
& & case 0:
& &&&return &zero&;
char* NumberToDigitString(int number){
&&switch(number){
& & case 1:
& &&&return &first_digit&;
& & case 2:
& &&&return &second_digit&;
& & case 3:
& &&&return &third_digit&;
& & case 4:
& &&&return &fourth_digit&;
& & case 5:
& &&&return &fifth_digit&;
& & case 6:
& &&&return &sixth_digit&;
& & case 7:
& &&&return &seventh_digit&;
& & case 8:
& &&&return &eighth_digit&;
& & case 9:
& &&&return &ninth_digit&;
& & case 10:
& &&&return &tenth_digit&;
主题帖子积分
考研年份2014
报考学校电子科大
本科学校湖北师范学院
确实&&,,,网上的那个是08年的那个三个人编的&&,,,电子教材是05年的黄迪明一个人编的 ,,lz好强呀,,,,
主题帖子积分
王道论坛中级道友, 积分 270, 距离下一级还需 730 积分
王道论坛中级道友, 积分 270, 距离下一级还需 730 积分
考研年份2013
报考学校电子科大
本科学校清华大学
本帖最后由 挑战全国第一 于
22:50 编辑
梦里独行11
同学你好 电子科技大学的教材是05年那个版本?这本?
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
第四章的代码略长,家里网速不好,分开发吧。。。。要不然经常发出来被截掉一般。。。。
4.13 编写一个程序找出1—100中所有的素数。
#include &stdio.h&
#define bool _Bool
#define true 1
#define false 0
bool isPrime(int);
int main(void){
&&int number,
&&for(number=2; number&100; number++){
& & if(isPrime(number))
& && &printf(&%4d&,number);
&&}
&&return 0;
}
bool isPrime(int number){
&&
&&for(i=2;i&i++){
& & if(!(number%i))
& && &
&&}
&&
}
复制代码
4.14 编写一个程序,找出被2,3, 5整除时余数均为1的最小的10个自然数。
#include &stdio.h&
#define bool _Bool
#define true 1
#define false 0
bool isNeeded(int);
int main(void){
&&int number, count=0;
&&for(number=6; count&10; number++){
& & if(isNeeded(number)){
& && &++
& && &printf(&%5d&,number);
& & }
&&}
&&return 0;
}
bool isNeeded(int number){&&if( (number%2)!=1 )& &&&if( (number%3)!=1 )& &&&if( (number%5)!=1 )& &&&}
复制代码
4.15 编程序输入一组数,以0作为输入结束标志,然后显示与第一个数符号相同的所有数。
#include &stdio.h&
int main(void){
&&int first,
&&scanf(&%d&, &number);
&&first=
&&while(number){
& & scanf(& %d&, &number);
& & if( first*number & 0)
& && &printf(&%d\t&, number);
&&}
&&return 0;
}
复制代码
4.16 编写一个程序,求两个正整数x和y的最小公倍数。
#include &stdio.h&
int main(void){
&&int x, y, i,
&&scanf(&%d %d&, &x, &y );
&&min = x&y?x:y;
&&while( min%x || min%y )
& & ++
&&printf(&%d&,min);
&&return 0;
}
复制代码
4.17 编写一个程序输入两个整数i和j;如果j的值大于0,则把i循环左移j位;如果j的值小于0, 则把i循环右移j位,最后输出i的值。
#include &stdio.h&
int main(void){
&&int i,j,
&&scanf(&%d %d&, &i, &j );
&&printf(&%04x\n&,i);
&&if(j&0){
& & temp = i&& (8*sizeof(i)-j);
& & i &&=
& & i |=
&&}
&&else if(j&0){
& & j = -j;
& & temp = i&& (8*sizeof(i)-j);
& & i &&=
& & i |=
&&}
&&printf(&%04x\n&,i);
&&return 0;
}
复制代码
4.18 编写一个程序输入两个整数i和j,显示i的第j个二进制位。
#include &stdio.h&
int main(void){
&&short i,j,
&&scanf(&%hd %hd&, &i, &j );
&&printf(&%04o\n&,i);
&&i &&= j-1;
&&i &= 1;
&&printf(&%04o\n&,i);
&&return 0;
}
复制代码
戰爭即和平;
自由即奴役;
無知即力量。
主题帖子积分
王道论坛初级道友, 积分 39, 距离下一级还需 161 积分
王道论坛初级道友, 积分 39, 距离下一级还需 161 积分
考研年份2014
报考学校电子科大
本科学校中国海洋大学
本帖最后由 lland 于
23:22 编辑
把我觉得楼主大意的地方说说 我也不知道是否正确 欢迎指正
我觉得应该是100=?
我用gcc编译 输出是100=0
~这个是求反位操作
0的二进制0)
求反就是1111(0xffff)
输出是按%d(有符号整形)输出的 所以是-1
如果按%u(无符号整形)输出 就是65535
如果系统是64位就是0xffffffff
⑥x=y==++y;
相当于使用表达式x=(y==y)之前y自增 尽管==是左结合
所以为x=101==101
if(i&k) printf(&i&k&);
else if(i&k) printf(&i&k&);
else printf(&i==k&);
我个人以为应该也许是这个意思吧
①_123.4567
②123.4567_
应该是1个空格不是2个空格吧
printf(&%c %c %d %d&, ch, ch-32, ch, ch-32);
考虑2^0&=1的情况
可以使用位移int main(){
& && &&&long m, s = 1;
& && &&&int k = 0;
& && &&&scanf(&%ld&, &m);
& && &&&while(s &= m){
& && && && && & s=s&&1;
& && && && && & ++k;
& && &&&}
& && &&&printf(&%d&, --k);
& && &&&return 0;
}复制代码
主题帖子积分
王道论坛实习道友, 积分 13, 距离下一级还需 7 积分
王道论坛实习道友, 积分 13, 距离下一级还需 7 积分
考研年份2014
报考学校电子科大
本科学校华中科大
谢谢楼主,进度没你快呀
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
& &终于有人来交流了泪目&&
嗯,我看了你说的,
2.3&&确实是100=?无误,我看错了,当成char输出了
2.4&&⑤0x 我当时脑袋一定是坏掉了,竟然对着0x当8进制算
2.19 这个答案是我用程序输出验证的,关键是它把一个负数赋值给一个无符号整数,赋值之后的结果如果能搞明白那这个题也就不难了,关键不在输出的格式控制符,而在赋值语句
2.25 原来是先自增再判断相等,原来都不知道。。。
3.1& &是2个空格,忘记小数点也要占位了。。。。。。
3.9& &竟然还有这个隐蔽的错误。。。。
4.9& &位移的办法没想到啊!!!太精髓了。学习了!!!!
我去把原帖改了,省得再有人来看的时候带坏小朋友。。。。
戰爭即和平;
自由即奴役;
無知即力量。
主题帖子积分
考研年份2014
报考学校电子科大
本科学校湖北师范学院
挑战全国第一
& &我也不清楚& &他这做的是05年的&&网上的那是08年的&&都看下把,,没办法
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
本帖最后由 lostyear540 于
18:59 编辑
继续更新。。。习题5
5.1 说明下面各语句所定义的数组的含义。
(1) char name[30];& &(2) float c[6];& &(3) int params[5][5];
(4) #define A 66
& & #define B 132
& & char memo[A][B];
答:(1)定义一个长度为30的char类型数组,数组名为name
(2)定义一个长度为6的float类型数字,数组名为name
(3)定义一个5行5列的二位数组,数组类型为int,数组名为params
(4)定义一个66行132列的二位数组,数组类型为char,数组名为memo
5.2 假设下面的数组均为外部数组,说明各数组定义的含义,并指出个数组元素所赋的值。
(1) float c[8]={2.,5.,3.1,-4.5};
(2) int z[12]={0, 0, 8, 0, 0, 6};
(3) char flag[4]={'T','R','U','E'};
(4) char flag[]=&true&;
(5) int p[2][4]={{1,3,5,7},{2,4,6,8}};
(6) int p[2][4]={1,3,5,7};
(7) char color[3][6]={{'R','E','D'},{'G','R','E','E','N'},{'B','L','U','E'}};
答:(1) 定义一个长度为8的float类型数组,数组名为c;并将数组的前4个元素初始化为 2.0,5.0,3.1,-4.5
(2)定义一个长度为12的int类型数组,数组名为z;并将数组前6个元素初始化为0,0,8,0,0,6
(3)定义一个长度为4的char类型数组,数组名为flag;并将数组的四个元素初始化为T,R,U,E
(4)定义一个char类型数组,数组名为flag;由初始化得知,数组长度为5,四个元素为t,r,u,e,\0
(5)定义一个2行4列的二位数组,数组类型为int,数组名为p;数组第一行元素被初始化为1,3,5,7,数组第二行元素被初始化为2,4,6,8
(6)定义一个2行4列的二位数组,数组类型为int,数组名为p;数组第一行元素被初始化为1,3,5,7
(7)定义一个3行6列的二位数组,数组类型为char,数组名为color;数组第一行元素被初始化为R,E,D,数组第二行元素被初始化为G,R,E,E,N,数组第三行元素被初始化为B,L,U,E
5.3 指出下列各程序的输出结果。
main(){
&&int a,b=0;
&&static int c[10]={1,2,3,4,5,6,7,8,9,0};
&&for(a=0;a&10;++a)
& & if((c[a]%2)==0)
& && &b+=c[a];
&&printf(&%d&,b);
}
复制代码
main(){
&&int a,b=0;
&&static int c[10]={1,2,3,4,5,6,7,8,9,0};
&&for(a=0;a&10;++a)
& & if((a%2)==0)
& && &b+=c[a];
&&printf(&%d&,b);
}
复制代码
main(){
&&int a,b=0;
&&static int c[10]={1,2,3,4,5,6,7,8,9,0};
&&for(a=0;a&10;++a)
& & b+=c[a];
&&printf(&%d&,b);
}
复制代码
int c[10]={l,2,3,4,5,6,7,8,9,0];
main(){
&&int a,b=0;
&&for(a=0;a&10;++a)
& & if((c[a]%2)==1)
& && &b+=c[a];
&&printf(&%d&, b);
}
复制代码
答:(1) 20 (2) 25 (3) 45 (4) 25
5.4 指出并改正以下程序中的错误。
main(){
&&char data[]={34,56,213,34,24};
&&
&&for(i=1;i&=5;i++)
& & if(data[i]==8)
& && &printf(&error\n&);
& & else
& && &printf (&OK \n&);
}
复制代码
答:&&for(i=1;i&=5;i++) →&&for(i=0;i&5;i++)
5.5 编写一个程序实现“查表”功能,即如果有若干个数据存放在一个一维数组data中,输入任意一个数,程序查找数组data中是否有与这个数相等的数:若有,则输出该数在data中的位置,否则输出“NO”。
#include &stdio.h&
int getIndex(int[], int, int);
int main(void){
&&int data[10]={1,2,3,4,5,6,7,8,9,0};
&&int num,
&&scanf(&%d&, &num);
&&index = getIndex(data,10,num);
&&if( index&=0 )
& & printf(&%d\n&, index);
&&else
& & printf(&NO&);
&&return 0;
}
int getIndex(int data[],int length, int num){
&&
&&for(i=0;i&i++)
& & if(num == data[i])
& && &
&&return -1;
}
复制代码
5.6 以下程序执行以后,变量i和j的值分别变为多少?
main(){
&&int data[][3]={{1,2,3},{2,9,6},{2,2,2}};
&&int i,j;
&&for(i=0;i&3;i++)
& & for(j=0;j&3;j++)
& && &if(data[i][j]==2)
& && &&&goto end;
&&end: printf(&i=%d j=%d\n&, i, j);
}
复制代码
答:i为0;j为1
5.7 编写一个程序,输入n个整数,求这n个整数中的最小值以及最小值元素在这n个数中的排列位置。
#include &stdio.h&
#define MAX 100
int getIndex(int[], int, int);
int main(void){
&&int data[MAX], input, length, max, min,
&&printf(&Please input the numbers, ended by -1:&);
&&scanf(&%d&, &input);
&&for(i=0; i&MAX&&input!=-1; ++i){
& & data[i] =
& & scanf(&%d&, &input);
&&}
&&length =
&&max=min=0;
&&for(i=1; i& ++i){
& & if(data[i]&data[max])
& && &max=i;
& & else if(data[i]&data[min])
& && &min=i;
&&}
&&printf(&The max number is %d, index=%d\n&, data[max], max);
&&printf(&The min number is %d, index=%d\n&, data[min], min);
&&return 0;
}
复制代码
5.8 编写程序完成以下功能:输入一串字符,直到读到句号时为止,记录下这串字符中既不是字母也不是数字的所有字符,然后把这些字符按与输入相反的次序输出。
#include &stdio.h&
#define MAX 100
int main(void){
&&int length=0, i=0;
&&char data[MAX],
&&printf(&Please input the data, ended by .:&);
&&input=getchar();
&&while( i&MAX&&input!='.' ){
& & if((input&='a'&&input&='z')||(input&='A'&&input&='Z')||(input&='0'&&input&='9'))
& && &;
& & else{
& && &data[i]=
& && &++i;
& & }
& & input=getchar();
&&}
&&for(i-=1; i&=0; --i){
& & putchar(data[i]);
&&}
&&return 0;
}
复制代码
5.9 编写一个程序,求一个二维矩阵的转置矩阵。
答:只会写方阵。。。求大神教导怎么写任意矩阵
『C99标准好像是支持变长数组的,这样应该能写出来吧,但是C89标准的写法还是想不通啊』
int transpos(int a[][], int n)
{
& && &&&int i,j,
& && &&&for(i=0;i&n;i++)
& && && && && & for(j=0;j&n;j++){
& && && && && && && && &temp=a[i][j];
& && && && && && && && &a[i][j]=a[j][i];
& && && && && && && && &a[j][i]=
& && && && && & }
& && &&&return 0;
}
复制代码
5.10 编写一个程序实现一个正弦函数表。该程序以5°的间隔输入自变量x的值,然后通过查表得到sin x的值并将这个值显示出来,其中x的变化范围为0°—90°。
答:还没想明白,不知道这样对不对?
#include &stdio.h&
int main(void){
&&
&&scanf(&%d&, &a);
&&float data[]={0,0....3420201,
& && && && && & 0.....7071068,
& && && && && & 0.....9396926,
& && && && && & 0...};
&&if( a&=0 && a&=90 && a%5==0 )
& & printf(&%f&, data[a/5]);
&&else
& & printf(&Wrong input&);
&&return 0;
}
复制代码
5.11 编写一个程序,输入矩阵的阶数n,然后按以下规律形成二维数组Anxn。
A中第1行元素为1,2,…,n;第2行元素为n+1,n+2,2n;第3行元素为2n+l,2n+2,…,3n…
计算:(1)A中所有不靠边元素之和; (2) A的两条对角线元素之和。
#include &stdio.h&
#define MAX 100
void initArray(int mitrix[MAX][MAX], int n){
&&int i,j,count=0;
&&for(i=0; i&n; i++)
& & for(j=0; j&n; j++)
& && &mitrix[i][j]=++
}
int sumOfCenter(int mitrix[MAX][MAX], int n){
&&int i,j,sum=0;
&&for(i=1; i&n-1; ++i)
& & for(j=1; j&n-1; ++j)
& && &sum+=mitrix[i][j];
&&
}
int sumOfLine(int mitrix[MAX][MAX], int n){
&&int i,j,sum=0;
&&for(i=0; i&n; ++i)
& & for(j=0; j&n; ++j)
& && &if( i+j==n-1 || i==j )
& && &&&sum+=mitrix[i][j];
&&
}
int main(void){
&&int mitrix[MAX][MAX];
&&int n, sum1, sum2;
&&scanf(&%d&, &n);
&&initArray(mitrix, n);
&&sum1 = sumOfCenter(mitrix,n);
&&sum2 = sumOfLine(mitrix,n);
&&printf(&%8d%8d&,sum1,sum2);
&&return 0;
}
复制代码
滚去做后面的题了。。。。
戰爭即和平;
自由即奴役;
無知即力量。
主题帖子积分
王道论坛初级道友, 积分 39, 距离下一级还需 161 积分
王道论坛初级道友, 积分 39, 距离下一级还需 161 积分
考研年份2014
报考学校电子科大
本科学校中国海洋大学
本帖最后由 lland 于
23:31 编辑
楼主更新真快...每天回来看看楼主做的题感觉都比看书好...
弄2个这样的矩阵
a[m][n];b[n][m];
直接保存到另一个矩阵里面方便些吧,没说要保存在原矩阵啊#include &stdio.h&
#include &stdlib.h&
#define M 4
#define N 7
int initMatrix(int *a, int m, int n){
& & & &
& & & & for(i=0; i & m*n; i++)
& & & & & & & & *(a + i) = i + 1;
& & & & return 0;
}
int printMatrix(int *a, int m, int n){
& & & & int i,
& & & & for(i = 0; i & i++){
& & & & & & & & for(j = 0; j & j++)
& & & & & & & & & & & & printf(&%4d&, *(a + i*n + j));
& & & & & & & & printf(&\n&);
& & & & }
& & & & return 0;
}
int transMatrix(int *a, int m, int n, int *t){
& & int i,
& & for(i = 0; i&m; i++)
& && &&&for(j = 0; j & j++)
& && && && &*(t + j*m + i) = *(a + i*n + j);
& & return 0;
}
int main(){
& & & & int i,
& & & & int a[M][N];
& & & & int b[N][M];
& & & & int *pa, *
& & & & pa = (int*)
& & & & pb = (int*)
& & & & initMatrix(pa, M, N);
& & & & printMatrix(pa, M, N);
& & & & transMatrix(pa, M, N, pb);
& & & & printMatrix(pb, N, M);
& & & & return 0;
}复制代码
主题帖子积分
考研年份2014
报考学校电子科大
本科学校郑州大学
& &关键是二位矩阵m,n怎么声明啊。C89不支持变长数组。。。难道定义返回一个MAX*MAX的二维矩阵???
这样的话我连怎么定义函数原型都不会了。。。。。
毕竟C语言战5渣,本科阶段学校没开C语言,C++老师是个混事的(教完我们就被开除了),于是自己C++也混着上的。
好多东西基本是重新学的。。。现在心有余而力不足啊。。。
现在看到第六章指针,表示开始做不动题了。指针什么的,我在概念上还有一些是混淆的。
至于结构体和文件操作,那是什么?根本不懂得说。。。。
诶,算了,滚去睡觉吧,明天继续垒代码。。。。
戰爭即和平;
自由即奴役;
無知即力量。

我要回帖

更多关于 c int数组添加元素 的文章

 

随机推荐