当前位置:首页 » 编程语言 » c语言程序设计复习技巧
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言程序设计复习技巧

发布时间: 2022-09-22 16:24:52

1. c语言程序设计 怎样在短时间内复习好 有哪些重点内容需要特别注意 谢谢!

多做几套以前考过的题吧,题型都一样!!!多注意数组,指针这些重点,难点!!
上机考试题要多练,自己没事找些上机题做做!!

2. 如何学习c语言程序设计

C语言的基础语法包括数据类型、运算符、表达式、数组、逻辑运算、函数、指针等。学习这些先买一本入门书籍,个人还是推荐经典的《C语言》,既然挺多大学选择这本书作为教材,总归有其合理之处吧。这本书对知识点的介绍都比较浅显,但涵盖面比较广。边学语法便敲案例,看着代码在计算机上运行起来是不是也有点小激动。这样便有了继续学习下去的动力。

C语言深入的话推荐《c primer plus》,你会发现有些地方晦涩难懂,不要被疑问绊住脚步,浪费太多时间在细枝末节的地方。C语言只是你进入新世界的第一步而已,而编程的世界远比你想象的更广阔,更有意思。《c primer plus》更适合作为一本字典使用,放在电脑旁,方便随时查阅。

3. 计算机三级c语言怎样复习

三级上机考试复习技巧之C语言程序设计
计算机等级考试改革后,三级考试由A、B两类改为PC技术、数据库技术、网络技术、信息管理技术四类。其后三类的上机考试内容均为C语言程序设计。
三级上机不同于二级,它只有一道编程题,风险更大。但只要能达到题目的要求,一般都能拿到3分。

参加过考试的人都应该知道一本书——南开大学出版的《全国计算机等级考试·上机考试习题集》,这本书基本上包含了所有的上机考试题目类型。这本书里一共有100道题,都很经典。但也许有人会觉得太多了,没时间看完所有的题目。下面我给大家介绍一个复习技巧。

简化问题

每道试题的程序都很长,而且涉及的知识点很多。实际上,在考试时看完全部程序并没有必要。每次只用把主要精力放在子程序的编制上,认真思考其“功能要求”。所以平时我们只用关注需要编制的子程序。

试题归类

要学会找出题目之间的规律,复习起来就会事半功倍。在一百道题目中,实际上只需要仔细分析其中的二十多道题就足够了,其他的只用看一下就行。因为大部分的题目都是类似的,总结出规律来之后,我们可以举一反三。例如下面两类题目:

例1. (占题库10%)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。

程序:void SortDat( )

{int I,J;

PRO xy;

for (I=0;I<100;I++)

{if (strcmp(sell[I].dm,sell[J].dm)<0)①

{ xy=sell[I];

sell[I]=sell[J];

sell[J]=xy; }

else if (strcmp(sell[I].dm,sell[J].dm)==0)②

if (sell[I].je

{ xy=sell[I];

sell[I]=sell[J];

sell[J]=xy;}

}

}

分析:这类程序题目的关键部分在于①、②、③三句上。它们的作用就是给出调换记录次序的条件。与其类似的题目只是在功能要求上有所不同(例如把“从大到小”改为“从小到大”,把“产品代码”换成“产品名称”等),所以我们只需要修改这三句。如果我们抽到的题目是“金额从小到大,如相同,则产品名称从大到小”,我们就将

①改为:if (sell[I].je>sell[J].je)

②改为:else if (sell[I].je= =sell[J].je)

③改为:if (strcmp(sell[I].mc,sell[J].mc)<0)

而对于将记录次序进行调换的程序xy=sell[I]、sell[I]=sell[J]、sell[J]=xy,我们只需要套用就行。

例2. (占题库10%)函数ReadDat()的功能是实现从文件ENG.IN中读取一篇英文文章,存入大字符串数组xx中;请编制函数encryptChar(),按给定的代替关系对数组xx中的所有字符进行代替,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。

代替关系:f(p)=p*11 mod 256。其中p是数组xx中某一个字符的ASCII值,f(p)是计算后的新字符的ASCII值,如果计算后f (p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行代替。

程序:void encryptChar()

{ int I;

char *pf;

for (I=0;I

{ pf=xx[I];

while(*pf!=0)

{ if(*pf*11%256>130||*pf*11%256<=32)①

{ pf++;

continue;}

*pf=*pf*11%256;

pf++;

}

}

}

分析:这一类题目较例1更为简单,其关键只有①一句,它是对条件“如果计算后f(p)的值小于等于32或大于130”的描述。上机考试中类似的题目可能只对这个条件作少许变动。例如:“如果原字符是大写字母或计算后f(p)的值小于等于32”,则只需把①改为:if ((*pf>=`A`&&&&*pf<=`Z`)||*pf*11%256<=32)

其他试题也可以按照上述方法进行总结。总而言之,对于三级上机考试,我们不仅要提高编程能力,还应该注意分析试题,寻找规律,用更少的时间和精力解决更多的问题!

等级考试三级C语言上机注意事项

计算机三级考试马上就要到了,然而很多朋友对计算机上机考试却仍旧十分茫然,
参加这次考试的人有很大一部分是上次机试没有通过的朋友,甚至还有一些考了两次机试都没有通过的……
这其中不乏一些C语言学的很不错的高手,大部分人到现在都不明白为什么自己亲手编的程序却是0分……
究竟是什么原因呢?不就是那100道题目吗?翻来覆去的看也没有发现自己的程序有什么错误啊,
看资料,用模拟盘模拟也是满分啊,可为什么正式考试就是0分呢?
于是很多人甚至把通过上机考试当成一件*运气的事了,甚至有的朋友对上机考试感到十分恐惧
然而这其中真正的原因……
大家不妨和我一起看一下考试中心命题组的正确答案~
顺便提醒一下大家在考试的时候要注意的问题,希望对大家有所帮助。

第一条:审题要仔细!正式考试的时候会遇到很多面熟的题目,这些题目有的似乎和
平常资料中看到的一样,然而,千万不要见到面熟的题目而沾沾自喜,因为有很多的
“陷阱”会使你审题的时候就出错~!
我们看一道所有人都做过的的 “数字题目” 。
考试中心命题组第23题:
已知在文件in.dat中存有N个实数,(N<200),函数readdat()是读取这N个实数并存入数组xx中。
请编制函数CalValue(),其功能要求:
1、求出这N个实数的整数部分平均值aver;
2、分别求出这N个实数中其整数部分值小于平均值ever的数的整数部分值之和sumint与小数部分之和sumdec
最后调用函数WriteDat()把所求的结果输出到文件OUT8.dat中。
这一题看起来很眼熟,然而你仔细看~!
1、aver是整数部分的平均值~!不是普通的哦!
2、整数部分值小于平均值ever的数的整数部分值之和sumint与小数部分之和sumdec!!
呼~,原来这么复杂~!稍不留心就错了~,结果就想当然的……0分
考试中心命题组第4题
函数ReadDat()实现从文件ENG.IN中读取一篇英文文章存入到字符
串数组xx中;请编制函数ComWord()分别计算出10个不区分大小写
的英文单词的首字母(b,c,f,s,n,r,u,e,o,p)的频数并依次存入
整型数组yy[0]至yy[9]中,最后调用函数WriteDat( )把结果yy
输出到文件PS1.OUT中。
这题也很眼熟,然而你仔细看~!
英文单词的首字母,呵呵,不是平常的字母的个数,是作为单词的首字母的个数啊,晕~
上面两道题目并没有在其他资料上见过,考试的时候也不一定会出,
这里仅仅是给大家提个醒儿,正式考试一定要仔细审题,严格按照题目的要求去做,
不要受以前做过的题目的影响。

第二条:一定要考虑除零、溢出、类型转换、精度等细节问题~!!
虽然我们在平时学C语言的时候老师都提醒过,可是真正到了编程序的时候,
却没有几个人会考虑。这些细节问题似乎并不直接影响题目的输出结果,
然而,因为溢出和类型转换错误而造成考试得不到满分的可是大有人在啊!
我们看下面一道最害人的题目~!!,很多朋友考了这道题目都没有过。
下面来看看你为什么是0分~!
考试中心命题组64题:
请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,
仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS8.DAT中。
替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),
如果原字符小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。
这道题目所有的人都做过,但几乎就没有人做对,包括南开无忧在内~!
原因就在于这一句!
无忧:int f; f=(xx[i][k]*11)%256;
南开:char *pf; *pf=*pf*11%256;
表面看来,好象两个都对,
请你在TC下运行一下下面的代码,看一下结果你就知道了是怎么回事了……:
main()
{
char nk='E',*nkp,wuyou='E';
int wy;
nkp=&nk;
*nkp=*nkp*11%256;
wy=wuyou*11%256;
printf("%c %c %c %c\n",nk,*nkp,wuyou,wy);
printf("%d %d %d %d\n",nk,*nkp,wuyou,wy);
}
看到结果了么?是不是很吃惊啊?
≈ ≈ E ≈
-9 -9 69 247
大家看到了,南开的结果是负数,连原来的变量nk都变成了负数,这显然错了。
无忧的聪明一点,知道int比char大,定义了个int,对了。
南开错误原因就是在TC2.0中char型变量只有一个字节,根本容纳不下'E'*11,
所以产生了溢出,上次考这道题目没过的同学是不是有所启发呢?
这里给出考试中心命题组的答案:
void encryptChar(){
int i,k,ch;
for(i=0;i<maxline;i++)
for(k=0;k<strlen(xx[i]);k++){
ch=xx[i][k];
ch=(ch*11)%256;
if(!(ch<=32||ch>=130))xx[i][k]=ch;
}
}
似乎一个例子不能说明什么,那就把上面的数字题目的答案给大家看看:
考试中心命题组23题答案:
int i;
long val;
float dec;
for(i=0;i<N;i++){
val=(long)xx[i];
aver+=xx[i]-val;
}
aver/=(double)N;
for(i=0;i<N;i++){
val=(long)xx[i];
dec=xx[i]-val;
if(dec>aver){
sumint+=val;
sumdec+=(xx[i]-val);
}
}
看到了吧,首先,val的定义,不是我们习惯的int,而是能容纳更大数的 long ,
这样在求和的时候就不会溢出,无忧和南开的答案没有吧~
再看,算aver平均值的细节,不是我们平常习惯的aver/=N,更不是无忧的1.0* sum/N,
而是aver/=(double)N,所以大家在考试的时候要时刻注意你的变量类型,特别是在一些求平均值的题目中,千万要注意,用sum/n的时候,sum的类型一定不要用整形。

第三条:不要使用快捷键!!很多人在使用TC的时候习惯于用F9,CTRL+F9或者其他的热键,
首先F9只是编译了,并没有运行程序,考试一定要运行一下你的程序才会有输出文件,
否则一定是0分。
热键在考试的时候是很危险的,因为UCDOS的热键和TC的冲突,CTRL+F9变成了全角半角转换,
如果不小心按了,会导致你的程序有中文字符,编译的时候出错,而且很难查找排除错误~!
所以建议大家在考试的时候使用ALT+红色字母 来调出菜单进行编译调试等步骤,建议步骤为:
写完代码后用ALT+F,S存盘,然后ALT+C,M编译,然后ALT+R,R运行,这样就万无一失了。

第四条:不要加载任何输入法
上机考试用的DOS环境内存十分有限,如果你加载了任何一个输入法,都有可能造成编译程序的时候出现out of memory 内存不足的情况,到那时就麻烦了。
程序只要写的对就可以,不要画蛇添足的加注释,没有人看的~!
第五条:不要提前交卷!考场一般使用NOVELL网络,有的时候存在网络状况不好而连接失败等问题,
这时,如果你已经提前交卷的话就不太好了。另外也可以防止别人有意无意的改动你的程序。
第六条:考试时候的一些技巧。
1、进入TC以后如果想查看题干要求,不用退出TC,直接用F12就可以显示出来。
2、用F12显示题目之后可以通过CTRL+BACKSPACE把题目定在屏幕上。
3、编译运行之后,可以通过type out.dat或edit out.dat或tc out.dat查看输出文件。
(千万不要改动!不然影响考试结果。如果不小心改动,再重新编译运行一次你的程序就可以了)
4、如果考试的时候不小心改动了代码的主函数或其他部分,可以进入考生目录下的warn隐藏目录,
把里边的备份文件复制到考生目录。步骤:
在考生目录下输入cd warn
输入 *.c ..输入cd ..
就可以了
5、如果调试的时候不小心死循环了,可以通过CTRL+C或CTRL+BREAK来终止,如果连按多次都没反应,
不要慌,立即找监考老师说明情况,可以重新启动机器继续答原题,你的程序还在,时间也是继续刚才的。
所以这也提醒大家,运行程序之前一定要先存盘。

4. c语言程序设计需要如何复习最有效率

如果你是要考二级的话就做原题,做完一套后对答案,有错的不懂得翻书查,多做几套就行了;如果你是搞竞赛,那么去oj刷题POJ,ZOJ,HDU,多做多练就行了

5. 急!!!怎样快速的复习好C语言

总体上必须清楚的:
1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)¬
2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。¬
3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.¬
4)bit是位 是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.¬
5)一定要记住 二进制 如何划成 十进制。¬
概念常考到的:¬
1、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。¬
2、每个C语言程序中main函数是有且只有一个。¬
3、在函数中不可以再定义函数。¬
4、算法的是一定要有输出的,他可以没有输入。¬
5、break可用于循环结构和switch语句。¬
6、逗号运算符的级别最低。¬

第一章¬
1)合法的用户标识符考查:¬
合法的要求是由字母,数字,下划线组成。有其它元素就错了。¬
并且第一个必须为字母或则是下划线。第一个为数字就错了。¬
关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。¬
2)实型数据的合法形式:¬
2.333e-1 就是合法的,且数据是2.333×10-1。¬
考试口诀:e前e后必有数,e后必为整数。.¬
3)字符数据的合法形式::¬
'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。¬
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。¬
4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:¬
考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。¬
5)转义字符的考查:¬
在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。¬
在程序中 int a = 06d, 是一个八进制的形式。¬
在转义字符中,’\x6d’ 才是合法的,0不能写,并且x是小写。¬
‘\141’ 是合法的, 0是不能写的。¬
‘\108’是非法的,因为不可以出现8。¬
6)算术运算符号的优先级别:¬
同级别的有的是从左到右,有的是从右到左。¬
7)强制类型转换:¬
一定是 (int)a 不是 int(a),注意类型上一定有括号的。¬
注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。¬
8)表达式的考查:¬
是表达式就一定有数值。¬
赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。¬
自加、自减表达式:假设a=5,++a(是为6), a++(为5);¬
运行的机理:++a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这¬
个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,¬
再放到变量a中。 进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了。¬
考试口诀:++在前先加后用,++在后先用后加。¬
逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。-
(2,3,4)的表达式的数值就是4。¬
9)位运算的考查:¬
会有一到二题考试题目。¬
总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。¬
例1:char a = 6, b;¬
b = a<<2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。¬
例2:一定要记住,¬
例3:在没有舍去数据的时候,<>右移一位表示除以2。¬
10)018的数值是非法的,八进制是没有8的,逢8进1。 ¬
11)%符号两边要求是整数。不是整数就错了。¬
12)三种取整丢小数的情况:¬
1、int a =1.6;¬
2、(int)a;¬
3、¬
¬

第二章¬
1)printf函数的格式考查:¬
%d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。-
%ld对应 long int;%lf 对应double。¬
2)scanf函数的格式考察:¬
注意该函数的第二个部分是&a 这样的地址,不是a; ¬
Scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。¬
3)putchar ,getchar 函数的考查:¬
char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。¬
putchar(‘y’)把字符y输出到屏幕中。¬
4)如何实现两个变量x ,y中数值的互换(要求背下来)¬
不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。¬
5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)¬
这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。¬

第三章¬
特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。¬
1)关系表达式:¬
表达式的数值只能为1(表示为真),或0(表示假)¬
当关系的表达是为真的时候得到1。如 9>8这个是真的,所以表达式的数值就是1;¬
2)逻辑表达式:¬
只能为1(表示为真),或0(表示假)¬
a) 共有&& || ! 三种逻辑运算符号。¬
b) !>&&>|| 优先的级别。¬
c) 注意短路现象。考试比较喜欢考到。¬
d) 要表示 x 是比0大,比10小的方法。0<x<10是不可以的(一定记住)。是先计算0<x 得到的结果为1或则0;再用0,或1与10比较得到的总是真(为1)。所以一定要用 (0<x)&&(x<10)表示比0大比10小。¬
3)if 语句¬
else 是与最接近的if且没有else的相组合的。¬
4)条件表达式:¬
表达式1 ?表达式2 :表达式3¬
注意是当非0时候是表达式2的数值,当为0是就是表达式2的数值。¬
考试口诀:真前假后。¬
5)switch语句:¬
a)一定要注意 有break 和没有break的差别,书上(34页)的两个例子,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句。¬
b)switch只可以和break一起用,不可以和continue用。¬
¬
第四章¬
1)三种循环结构:¬
a)for() ; while(); do- while()三种。¬
b)for循环当中必须是两个分号,千万不要忘记。¬
c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。-
d) do-while()循环的最后一个while();的分号一定不能够丢。(当心上机改错)¬
2) break 和 continue的差别¬
记忆方法:¬
break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。-
continue:是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。¬
3)嵌套循环¬
就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。¬
4) while((c=getchar())!=’\n’) 和 while(c=getchar() !=’\n’)的差别¬
先看a = 3 != 2 和 (a=3)!=2 的区别:¬
(!=号的级别高于=号 所以第一个先计算 3!=2) 第一个a的数值是得到的1;第二个a的数值是3。¬
考试注意点: 括号在这里的重要性。¬
¬

第五章¬
函数:是具有一定功能的一个程序块;¬
1) 函数的参数,返回数值(示意图):¬
main()¬

int a = 5,b=6,c;¬
c = add(a,b);¬
printf(“%d”,c);¬

¬
调用函数¬
a,b是实参¬
整个函数得到一个数值就是¬
Add函数的返回数值。¬
int add ( int x, int y)¬

int z;¬
z=x+y;¬
return z;¬

被调用函数¬
x,y是形式参数¬
函数返回数值是整型¬
¬
z就是这个add函数计算后得到的结果,就是函数返回给主程序的返回数值。¬
程序是在从上往下顺序执行,当碰到了函数add后,把a,b的数值穿给调用函数,程序暂时中断等待返回数值。当得到了返回数值后,再顺序的往下执行¬
2)一定要注意参数之间的传递¬
实参和形参之间 传数值,和传地址的差别。(考试的重点)¬
传数值的话,形参的变化不会改变实参的变化。¬
传地址的话,形参的变化就会有可能改变实参的变化。¬
3)函数声明的考查:¬
一定要有:函数名,函数的返回类型,函数的参数类型。¬
不一定要有:形参的名称。¬
¬
第六章¬
指针变量的本质是用来放地址,而一般的变量是放数值的。¬
int *p 中 *p和p的差别:¬
*p可以当做变量来用;*的作用是取后面地址p里面的数值¬
p是当作地址来使用。¬
*p++ 和 (*p)++的之间的差别:改错题目中很重要¬
*p++是 地址会变化。¬
(*p)++ 是数值会要变化。 ¬
三名主义:(考试的重点)¬
数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。(考了很多次)¬
函数名:表示该函数的入口地址。¬
字符串常量名:表示第一个字符的地址。¬
¬

第七章¬
1一维数组的重要概念:¬
对a[10]这个数组的讨论。¬
1、a表示数组名,是第一个元素的地址,也就是元素a[10]的地址。¬
2、a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。¬
3、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。¬
对a[3][3]的讨论。¬
1、a表示数组名,是第一个元素的地址,也就是元素a[10]的地址。¬
2、a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。¬
3、a是二维数组名,所以它是行指针,也就是说a+1是跳一行。¬
4、a[0]、a[1]、a[2]也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a[0]+1,a[1]+1,a[2]+1都是跳一列。¬
5、注意a和a[0] 、a[1]、a[2]是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。¬
二维数组做题目的技巧:¬
如果有a[3][3]={1,2,3,4,5,6,7,8,9}这样的题目。¬
步骤一:把他们写成:第一列第二列第三列¬
a[0]à 1 2 3 ->第一行¬
a[1]à 4 5 6 —>第二行¬
a[2]à 7 8 9 ->第三行¬
步骤二:这样作题目间很简单:¬
*(a[0]+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a[0][1]元素,所以是1。¬
*(a[1]+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a[1][2]元素,所以是6。¬
一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。¬
数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写¬
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。 但int a[4][]={2,3,4}非法。¬
二维数组中的行指针¬
int a[1][2]; ¬
其中a现在就是一个行指针,a+1跳一行数组元素。 搭配(*)p[2]指针¬
a[0],a[1]现在就是一个列指针。a[0]+1 跳一个数组元素。搭配*p[2]指针数组使用¬
还有记住脱衣服法则:¬
a[2] 变成 *(a+2) a[2][3]变成 *(a+2)[3]再可以变成 *(*(a+2)+3)¬
这个思想很重要!¬

6. 如何高效的学好C 语言啊

美河提供.C.精髓.软件工程方法.pdf,免费下载

链接:https://pan..com/s/17Q0JIVCI98FVDaRaisgA3A

提取码:ikzw

C++是一种大型而复杂的语言,其设计目标是作为一种通用的工程语言。 本书分4个部分共19章,不仅详细介绍了C++语言的基本语法,而且讲解了 C++的高级应用(如虚函数、模板、异常等),并通过大量详尽的代码表达了有关软件工程及维护的观点。

7. 怎样学习C语言程序设计求解

如果是想通过计算机等级考试 就买一本全国计算机等级考试二级试题认真做就可以了 当然也要加强上机实践。怎样才能学好C语言第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。 第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的indows, Unix, Linux, Mac, os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。 第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。 那么究竟怎样学习C语言呢? 1:工欲善其事,必先利其器 这里介绍几个学习C语言必备的东东: 一个开发环境,例如turbo C 2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。 一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社,此书编写的很适合初学者,并且内容也很精到。 除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。 2:葵花宝典 学习计算机语言最好的方法是什么?答曰:读程序。 没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。 3:登峰造极 写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。 是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高手的人研读此书。 编译软件,对于新手来说VC++6.0简单易操作下载地址http://hi..com/%D3%A5%DE%C4/blog/item/2a8d0df7180b9b4c342acc5e.html谭浩强《C程序设计》上机试题可以下载http://hi..com/%D3%A5%DE%C4/blog/item/1b8c968f649f4e639e2fb49c.html其他C语言资料参考书,如趣味一百例http://hi..com/%D3%A5%DE%C4/blog/item/019bcafefade81c2b58f3159.html基础C视频教程http://hi..com/%D3%A5%DE%C4/blog/item/31e3eac0cc57f3d738db495f.html 郝斌C语言视频http://hi..com/%D3%A5%DE%C4/blog/item/df9b5a26c00bc1b84623e894.html]

8. 怎么速学复习c语言程序设计

我想哈 c语言实际多练下 多动手写点chengxu数据结构呢 弄清楚概念和基本的算法 每一种去练习下 要是你能看完算法导论 我觉得在这方面应该问题不大