C语言复习2008

合集下载

2008年4月二级C语言笔试真题及答案

2008年4月二级C语言笔试真题及答案

2008年4月二级C语言笔试真题及答案一、选择题(共70分)(1)程序流程图中指有箭头的线段表示的是A)图元关系B)数据流C)控制流D)调用关系(2)结构化程序设计的基本原则不包括A)多态性B)自顶向下C)模块化D)逐步求精(3)软件设计中模块划分应遵循的准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是A)可行性分析报告B)软件需求规格说明书C)概要设计说明书D)集成测试计划(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)下列关于栈的叙述正确的是A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据C)只能在栈底插入数据D)不能删除数据(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C]A)需求分析阶段B)概念设计阶段C)逻辑设计阶段D)物理设计阶段(9)有三个关系R、S和T如下:TB C Da 0 k1R SB C Da 0 k1b 1 n1B C Df 3 h2a 0 k1n 2 x1 有关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为A)课号,成绩B)学号,成绩C)学号,课号D) 学号,姓名,成绩(11)以下叙述中正确的是A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中(12)以下选项中不合法的标识符是A)print B)FOR C)&a D)_00(13)以下选项中不属于字符常量的是A)'C' B)"C" C)'\xCC0' D)'\072'(14)设变量已正确定义并赋值,以下正确的表达式是A)x=y*5=x+z B)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0(15)以下定义语句中正确的是A)int a=b=0 ; B)char A=65+1,b='b'; C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1;(16)有以下程序段char ch; int k;ch='a'; k=12;printf("%c,%d,",ch,ch,k); printf("k=%d\n",k); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kk>='A'&&kk<='Z' B)!(kk>='A'‖kk<='Z') C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为“真”的表达式是A)(c==2)‖(c==4)‖(c==6) B)(c>=2&&c<=6)‖(c!=3)‖(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c); 其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0: a++; break;case 1: b++; break; }case 2: a++; b++; break;case 3: a++; b++;}printf(“a=%d,b=%d\n”,a,b);} 程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)有以下程序#include <stdio.h>main(){ int x=8;for( ; x>0; x--){ if(x%3) {printf(“%d,”,x--); continue;}printf(“%d,”,--x);}} 程序的运行结果是A)7,4,2 B)8,7,5,2 C)9,7,6,4 D)8,5,4,2(22)以下不构成无限循环的语句或者语句组是A)n=0; B)n=0; do{++n;}while(n<=0); while(1){n++;}C)n=10; D)for(n=0,i=1; ;i++) n+=i;while(n);{n--;}(23)有以下程序#include <stdio.h>main(){ int a[ ]={1,2,3,4},y,*p=&a[3];--p; y=*p; printf(“y=%d\n”,y);} 程序的运行结果是A)y=0 B)y=1 C)y=2 D)y=3 (24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)设有如下程序段char s[20]= “Bejing”,*p;p=s; 则执行p=s;语句后,以下叙述正确的是A)可以用*p表示s[0] B)s数组中元素的个数和p所指字符串长度相等C)s和p都是指针变量D)数组s中的内容和指针变量p中的内容相等(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][ !1](27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf(“%s”,s+1); C)gets(s); D)scanf(“%s”,s[1]);(28)以下叙述中错误的是A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)以下结构体类型说明和变量定义中正确的是A)typedef struct B)struct REC; {int n; char c;}REC; {int n; char c;};REC t1,t2; REC t1,t2;C)typedef struct REC ; D)struct{int n=0; char c=‟A‟;}t1,t2; {int n;char c;}REC t1,t2;(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)有以下程序#include <stdio.h>main(){ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++) c[s[i]]++;for(i=1;i<5;i++) printf(“%d”,c[i]);printf(“\n”);} 程序的运行结果是A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D )1 1 2 3(32)有以下程序#include <stdio.h>void fun(int *s,int nl,int n2){ int i,j,t;i=nl; j=n2;while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3); fun(a,4,9); fun(a,0,9);for(k=0;k<10;k++)printf(“%d”,a[k]); printf(“\n”);} 程序运行的结果是A)0987654321 B)4321098765 C)5678901234 D)0987651234(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[ ],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]=s[j];s[j]=t;}}main(){char *ss[]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};fun(ss,5); printf(“%s,%s\n”,ss[0],ss[4]);} 程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){int y;if(x==0||x==1) return (3);y=x*x-f(x-2);return y;}main(){int z;z=f(3); printf(“%d\n”,z);} 程序的运行结果是A)0 B)9 C)6 D)8(35) 有以下程序#include <stdio.h>void fun(char *a,char *b){while(*a==‟*‟) a++;while(*b=*a) {b++;a++;}}main(){char *s=”****a*b****”,t[80];fun(s,t); puts(t);} 程序的运行结果是A)*****a*b B) a*b C) a*b**** D) ab (36) 有以程序#include <stdio.h>#include <string.h>typedef struct { char name[9]; char sex; float score[2]; } STU;void f( STU a){ STU b={“Zhao” ,‟m‟,85.0,90.0} ; int i;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++) a.score[i]=b.score[i];}main(){ STU c={“Qian”,‟p‟,95.0,92.0};f(c); printf(“%s,%c,%2.0f,%2.0f\n”,,c.sex,c.score[0],c.score[1]);} 程序的运行结果是A)Qian,f,95,92 B) Qian,m,85,90 C) Zhao,f,95,92 D) Zhao,m,85,90(37) 有以下程序#include <stdio.h>main(){FILE *fp; int a[10]={1,2,3},i,n;fp=fopen(“dl.dat”,”w”);for(i=0;i<3;i++) fprintf(fp,”%d”,a[i]);fprintf(fp,”\n”);fclose(fp);fp=fopen(“dl.dat”,”r”);fscanf(fp,”%d”,&n);fclose(fp);printf(“%d\n”,n);} 程序的运行结果是A)12300 B) 123 C) 1 D) 321(38)变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。

全国计算机等级考试二级C语言 2008年4月真题卷参考答案及解析

全国计算机等级考试二级C语言 2008年4月真题卷参考答案及解析

全国计算机等级考试二级C语言 2008年4月真题卷答案及解析一、选择题(1)C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。

其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。

带箭头的线段在数据流程图中表示数据流,而在程序流程图中表示控制流。

在所给出的选项中,在图元之间用带有箭头的线段表示图元关系。

在模块之间用带有箭头的线段表示调用关系。

构成程序流程图的基本图符及其含义是:→或↓表示控制流,□表示加工步骤,◇表示逻辑条件。

(2)A解析:结构化程序设计的原则包括:"自顶而下,逐步求精"的设计思想,"独立功能,单出口、单入口"的模块化设计等。

多态性是面向对象程序语言的特征。

(3)B解析:模块划分应遵循的准则包括模块之间的耦合和内聚。

一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、低耦合的原则。

(4)B解析:需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等四方面。

产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。

(5)A解析:算法具有6个特性。

①有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。

②确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义。

③可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。

④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。

⑤输出:一个算法有一个或多个输出。

(6)D解析:在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是n(n-1)/2,堆排序需要比较的次数为nlog2n。

C语言全部知识点复习资料

C语言全部知识点复习资料

C语言全部知识点复习资料C语言知识点复资料总体上必须清楚的:1.程序中基本的控制结构是三种:顺序结构、选择结构(分支结构)、循环结构。

2.读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。

3.计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是它的地址.4.bit是位是指为或者1。

byte是指字节,一个字节=八个位.5.编译预处理不是C语言的一部分,不占运行时间,不要加分号。

(常考!)#define PI 3.;这个写法是错误的,一定不能出现分号。

6.每个C语言程序中main函数是有且只有一个。

7.用C语言编写的程序称为源程序,扩展名是.c。

C程序必须经过编辑、编译、链接、运行四个步骤才可得到运行结果。

注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。

(常考!)8. C语言书写格式是自由的,每行可以写多个语句,一条语句也可以写在多行。

9.一个C语言程序有且只有一个main 函数,是程序运行的起点。

10. Cfree、VC/VC++、CodeBlock等是软件,用来运行写的C语言程序。

(编译环境)11.标识符(必考内容):正当的要求是由字母,数字,下划线组成。

有其它元素就错了。

并且第一个必须为字母或则是下划线。

第一个为数字就错了12.标识符分为关键字、预定义标识符、用户标识符。

关键字(P259):不可以作为用户标识符号。

main define scanf printf都不是关键字。

迷惑你的中央是If、Main 等可以做为用户标识符。

因为If、Main中的第一个字母大写了,以是不是关键字和特定字了。

预定义标识符:如define scanf printf include。

记住预定义标识符可以做为用户标识符,但因为它们有特定含义,一般不做用户标识符。

用户标识符:可作为常量名、变量名、函数名、组织类型名等。

13.整型常量:C语言只有八、十、十六进制整数,没有二进制。

计算机等级 C语言二级(2008年09月)真题及答案

计算机等级 C语言二级(2008年09月)真题及答案

2008年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)注意:解答中所提到的教材是新视野教育培训使用的教材《全国计算机等级考试--二级教程》,此教材是由新视野教学组编写,中国地质大学出版社出版。

详情可联系长沙新视野0731--1)栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次放入栈,然后再依次出栈,则元素的顺序是:A) 12345ABCDE B) EDCBA54321C) ABCDE12345 D) 54321EDCBA答案:B详细解答:该知识点是考查了栈的先进后出,是我们公共基础的重点考点,在公共基础的10页纸上多次强调。

栈和队列是每年必考的题目。

此题与对应教材第三分册81页14题。

2)下列叙述中正确的是A)循环队列有对头和对尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队列头指针就能够反映队列中元素的动态变化情况C)在循环队列中,只需要队列头指针就能够反映队列中元素的动态变化情况D)循环队列中的元素的个数是有队头和队尾指针共同决定的。

答案:D详细解答:该知识点是考查了循环队列的知识点,队列是线性结构。

处理队列的话我们是有两个指针的,一个是头指针,一个是尾指针。

此题与对应教材第三分册81页10题。

(类似)3) 在长度为n的有序线性表中进行二分查找,最坏的情况下需要比较的次数是A)O(n) B)O(n2) C)O(log2n) D)O(nlog2n)答案:C详细解答:该知识点是考查了二分查找。

二分查找:对于长度为n的线性表,在最坏情况进行log2n次。

此题与对应教材第三分册83页32题。

4)下列叙述中正确的是A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。

B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构。

C)顺序存储结构能存储有序表,链式存储结构不能存储有序表。

D)链式存储结构比顺序存储结构节省空间。

2008年9月全国计算机二级笔试C语言程序设计真题及答案

2008年9月全国计算机二级笔试C语言程序设计真题及答案

2008年9月全国计算机二级笔试C语言程序设计真题及答案2008年9月全国计算机二级笔试C语言程序设计真题及答案一、选择题((1)~(10)、(21)~(40)每题2 分,(11)~(20)每题1 分,70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是()。

A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA(2)下列叙述中正确的是()。

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。

A)O(n) B)O(n2) C)O(log2n) D)O(n log2n)(4)下列叙述中正确的是()。

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是()。

A)控制流 B)事件驱动 C)模块调用 D)数据流(6)在软件开发中,需求分析阶段可以使用的工具是()。

A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是()。

A)一致性 B)分类性 C)多态性 D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A)一对一 B)一对多 C)多对一 D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。

2008C语言考试知识点说明

2008C语言考试知识点说明

考试知识点说明:80%范围在作业册的习题中,并且集中在前三大题里。

第1章: C语言程序的基本结构
C语言字符集、标识符与关键字、C语言程序的开发调试方法
第2章:
C语言的基本数据类型、常量与变量、运算符与表达式
数据类型的转换
第3章:
C语言的基本语句;数据输入与输出
第4章:
关系运算符与关系表达式、逻辑运算符与逻辑表达式
If语句、switch语句、选择结构的嵌套
第5章:
while和do while语句
for语句
break、continue语句
循环的嵌套
第6章:
函数的定义与调用、函数的递归调用
变量作用域与存储方式
编译预处理(只考宏替换
第7章:
一维数组、二维数组的定义和引用
字符数组与字符串
第8章:
指针变量的定义和使用(小题
第9章:
结构体类型的定义、结构体变量定义和使用第10章
位运算(移位运算小题
第11章:
标准文件操作(小题。

C语言总复习全

C语言总复习全
格式说明: % - 0 m.n 格式字符
指定输出类型 输出宽度说明及精度 指定空位是否填0 指定是否左对齐输出
12
2、scanf(“格式控制”,地址表列 )
在输入数据时,遇以下情况时该数据认为结束。 ① 遇空格,或按“回车”或“跳格”(tab)键。 ② 按指定的宽度结束,如“%3d”,只取3列。 ③ 遇非法输入。 scanf (“%d%c%f”,&a,&b,&c); 输入: 1234a123o.26
int i; for(i=0;
;i++)

*(a+i) != ′\0′; *(b+i)=*(a+i);
*(b+i)=′\0′;
方法2:定义
printf("string a is:%s\n",a); char *p1=a,*p1=b;
printf("string b is:");
循环体换成:
for(i=0; b[i]!=′\0′; i++)
C运算符
算术运算符(+,-,*,/,%) 关系运算符(>,<,= =,>=,<=,!=)
基本运算符
逻辑运算符(!,&&,||) 增 1 减 1 运算符(++,――) 赋值运算符(= ) 算术复合赋值运算符(+=,-=,*=,/=,%=) 逗号运算符(,) 条件运算符(? :)
C 语言运算符 位运算符
专用运算符
(数据)长度运算符 (sizeof)
位逻辑运算符(~,&, ^, | )
位移位运算符(>>,<<)
位复合赋值运算符(&=,|=,^=,>>=,<<=)

2008春C语言笔试卷

2008春C语言笔试卷

第二部分 C语言程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)21.下列叙述中正确的是 (21) 。

A. main函数必须出现在其他函数之前B. main函数中至少必须有一条语句C. C程序总是从main函数的第一条语句开始执行D. C程序总是在执行完main函数的最后一条语句后结束22.以下常量表示中正确的是 (22) 。

A. \xffB.5LC. aEbD. 3.14U23.若程序中已有相应的声明,下列语句中错误的是 (23) 。

A.printf(i==4 ? "%6d\n" : "%6d" , i );B.i==4 ? printf("%6d\n",i ) : printf("%6d" , i ) ;C.for (i=10 ; ; i--) if(i==1) break;D.for (i=10 ; ; ) if(i--); break;24.若有声明“float f=123.45678;”,则执行语句“printf( "%.3f",f );”后,输出结果是 (24) 。

A. 1.23e+02 B. 123.457 C. 123.456780 D. 1.234e+0225.若有声明“int x=2,y=1,z=0;”,则下列关系表达式中有语法错误的是 (25) 。

A. x>y=2 B.z>y>xC. x>y==1 D.x==(x=0,y=1,z=2)26.若有声明“int x[10]={0,1,2,3,4,5,6,7,8,9},*p;”,则值不为4的表达式是(26)。

A.p=x,*(p+4) B.p=x+4,*p++C.p=x+3,*(p++) D.p=x+3,*++p27.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句是 (27) 。

C语言复习提纲(全)

C语言复习提纲(全)

C语言复习提纲:第一章 C语言程序设计概述一、Visual C++6.0开发环境1、了解Visual C++6.0的安装过程;2、了解Visual C++6.0的工作界面,菜单和工具栏的使用;▲二、掌握C语言程序运行的过程1、编辑:是指把按照C语法规则编写的程序代码通过编辑器(Visual C++ 6.0,Turbo C 3.0)输入计算机,并存盘。

在存盘时,C源文件的扩展名为 .c2、编译:将C语言源程序编译成目标程序,即对源程序进行编译,并将源程序转换为扩展名为.obj的二进制目标代码(即把已经编辑好的源程序翻译成二进制目标代码的过程)。

3、连接:将用户程序生成的目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。

4、执行:执行生成的可执行代码,并输出结果。

5、调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。

▲三、结构化程序设计的基本概念1、概念以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,将原来较为复杂的问题化简为一系列简单模块的设计,任何模块都可以使用一些基本的结构来实现,任何复杂的程序,都可以使用这些基本结构按一定的顺序组合起来,这些基本结构的特点都是只有一个入口、一个出口,这样的程序设计方法称为结构化程序设计。

2、基本思想结构化程序设计的基本思想是采用"自顶向下,逐步细化、模块化设计、结构化编码"的程序设计方法和"单入口单出口"的控制结构。

3、三种基本结构⑴顺序结构⑵选择结构⑶循环结构4、三种基本结构的特点⑴只有一个入口⑵只有一个出口⑶每一个基本结构中的每一部分都有机会执行到⑷结构内不存在“死循环”5、设计原则⑴自顶向下⑶逐步细化⑶模块化设计⑷结构化编码▲四、C程序的基本组成:C程序是由若干个函数构成的,至少有一个主函数main(),main()的位置可以任意,其他各函数在程序中的前后位置也是可以任意的。

C语言重要的知识点复习资料

C语言重要的知识点复习资料

C 语言重要知识点复习资料一、C 语言基础(一)C 语言特点(1)语言简洁、紧凑、使用方便、灵活。

(2)运算符及数据结构丰富(3)具有结构化的控制语句,程序设计自由度大,代码质量高(4)具有位处理和地址操作能力(5)用C 语言写的程序可移植性好(二)(三)结构 ①C 程序是由函数构成的,至少要有main()函数②函数由函数的首部和函数体组成 ③函数首部由函数名、类型、属性、参数名、参数类型组成④函数体由声明部分和执行部分组成⑤C 程序总是从main 函数开始运行⑥每个语句和数据声明的最后必须有一个分号(四)常量1.整型常量:(1)十进制整数(2)八进制整数(以0开头)(3)十六进制整数(以0x 开头)(4)长整型常数(在数字后加字符L 或l )2.实型常量(1)十进制数(小数形式)(2)指数形式(e 前e 后必有数,e 后必为整数).⑶字符串常量:用“”的字符序列 eg :“A ”为两个字符,即“A ”和“\0”(4)字符常量:用‘’的字符序列(5)符号常量:不是常量的数据类型 # define 符号常量 常量 (符号常量通常用大写字母)(五)变量标识符:字母,数字和下划线三种字符组成,且第一个字符必须是字母或者下划线。

1.整型变量:(1)基本型:int(2)短整型:short int 或short(3)长整型:long short 或long枚举型 enum 整型 int 实型(浮点型) 基本类数组类型 数据类型 构造类型 结构体型 struct 指针类型共用体型 union 空类型(无值类型) void字符型 char 单精度型 float双精度型 double(4)无符号型:存储单元中全部二进制用做存放数本身,不包括符号位(5)C语言提供四个标识符long、short、unsigned、signed来表示基本类型。

①Signed int 有符号基本整型 (可简写为 int)②Unsigned int 无符号基本整型③Signed short int有符号短整型④Unsigned short int 无符号短整型⑤Signed long int有符号长整型⑥Unsigned long int 无符号长整型2.实型变量(1)单精度(float型):占4个字节(32位),只提供7位有效数字(2)双精度(double型):占8个字节,只提供15~16位有效数字3.字符变量:用来存放字符常量 char c1,c2; c1='a';c2='b'注意:%c表示将输出字符 %d表示将输出十进制数.注解:‘a’的ASCII码为97,‘A’的ASCII码为654.变量初始化:变量名=表达式(六)运算符和表达式1.运算符类型算术运算符 + — * / %(求余数)比较运算符 > < ==(等于) >= <= !=(不等于)逻辑运算符 ! && ||位运算符 << >> ~ | ^ &赋值运算符=条件运算符 ?:逗号运算符,指针运算符 * & 求字节数运算符 sizeof注意:参加+ - * / 运算两个数中有一个数为实数或双精度数,则结果是double型(双精度) P365运算符优先级来执行2.自增、自减运算符:(1)只用于变量(++5)×(2)++i,--i :在使用i之前,先使i的值加或减1(3)I++,i-- :在使用i之后,再使i的值加或减1注意:-I++ 相当于-(i++)3.关系运算符(比较运算符)> (大于) < (小于)== (等于) >= (大于等于)<= (小于等于) != (不等于)4.逻辑运算符运算符作用使用方式&& a、b都为真,则a&&b为真,否则为假。

计算机语言B(C语言)2008春季学期A卷及参考答案

计算机语言B(C语言)2008春季学期A卷及参考答案

2008 春计算机语言B(C语言)A卷一、选择题(每小题1分,共30分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将你认为正确的选项填写在题干的括号内。

1.C语言源程序文件的扩展名是【】。

A..exe B..C C..obj D..cpp2.以下叙述中,正确的是【】。

A.C程序中注释只能出现在程序的开始位置和语句的后面B.C程序书写格式严格,要求一行内只能写一个语句C.C程序书写格式自由,一个语句可以写在多行上D.用C语言编写的程序只能放在一个源程序文件中3.以下选项中可用作用户标示符的一组是【】。

A._2008,_main B.Date y-m-dC.txt D.case _0014.以下不符合C语言语法的字符常量是【】。

A.′C′ B.′\xDD′ C.′\012′ D.″p″5.若以下选项中的变量已正确定义,则正确的赋值表达式是【】。

A.x=y==5; B.x=n%2.5; C.x+n=i; D.x=5=4+1; 6.以下叙述中,错误的是【】。

A.改变函数形参的值,不会改变对应实参的值B.函数可以返回地址值C.可以给指针变量赋一个整数作为地址值D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL7.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是【】。

A.scanf(″%d″,a,b,c); B.scanf(″%d%d%d″,a,b,c); C.scanf(″%d″,p); D.scanf(″%d″,&p);8.有以下程序段int j; float y; char name[50];scanf(″%2d%f%s″,&j,&y,name);当执行时,从键盘输入55566 777abc后,y的值为:A.55566.0 B.566.0 C.7777.0 D.566777.09. 若变量已正确定义,有以下程序段i=0;doprintf(″%d,″,i); while(i++);printf(″%d\n″,i);其输出结果是【】A.0,0 B.0,1 C.1,1 D.程序进入无限循环10.有以下程序:main(){ int x=17;do{--x;printf("%d",x);}while(!x);}程序运行后的输出结果是【】。

2008年9月计算机二级C语言真题

2008年9月计算机二级C语言真题

本文由忠愚冀贡献 doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

做题+继续做题+还是做题=通过二级 全国计算机等级考试 历年真题 一、选择题(每题 2 分,共计 70 分) 选择题( 1.一个栈的初始状态为空。

现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后 再依次出栈,则元素出栈的顺序是 A)12345ABCDE C)ABCDE12345 B)EDCBA54321 D)54321EDCBA 2008 年 9 月计算机二级 C 语言真题 A B C D 2. 下列叙述中正确的是 A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D)循环队列中元素的个数是由队头指针和队尾指针共同决定 A B C D 3. 在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是 A)O(n) B)O(n2) C)O(log2n) D)O(nlog2n) A B C D 4. 下列叙述中正确的是 A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 C)顺序存储结构能存储有续表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间 A B C D 5. 数据流图中带有箭头的线段表示的是 A)控制流 C)模块调用 B)事件驱动 D)数据流 A B C D 6. 在软件开发中,需求分析阶段可以使用的同居是 A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图 A B C D 7. 在面向对象方法中,不属于“对象”基本特点的是 A)一致性 B)分类性 C)多态性 D)标识唯一性 D 8. 一间宿舍可以住多个学生,则实体宿舍和学生之间的联系是 A)一对一 B)一对多 C)多对一 D)多对多 A B C D 9. 在数据管理技术发展的三个阶段中,数据共享最好的是 A)人工管理阶段 C)数据库系统阶段 B)文件系统阶段 D)三个阶段相同 A B C D 10.有三个关系 R、S、和 T 如下: 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为 A)笛卡尔积 B)交 C)并 D)自然连接 A B C D 11. 以下叙述中正确的是 A)C 程序的基本组成单位是语句 C)简单 C 语句必须以分号结束 B)C 程序中的每一行只能写一条语句 D)C 语句必须在一行内写完 A B C D 12. 计算机能直接执行的程序是 A)源程序 B)目标程序 C)汇编程序 D)可执行程序 A B C D 13. 以下选项中不能作为 C 语言合法常量的是 A)'cd' B)0.1e+6 C)"\a" D)'\011' A B C D 14. 以下选项中正确的定义语句是 A)double C)double a;b; a=7,b=7; B)double a=b=7; D)double,a,b; A B C D 15. 以下不能正确表示代数式 2ab/cd 的 C 语言表达式是 A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d A 16. C 源程序中不能表示的数制是 A)二进制 B)八进制 C)十进制 D)十六进制 A B C D 17. 若有表达式(w)?(--x):(++y),则其中与 w 等价的表达式是 A)w==1 B)w==0 C)w!=1 D)w!=0 A B C D 18. 执行以下程序段后,w 的值为 int w='A',x=14,y=15; w=((x||y)&&(w<'a')); A)-1 B)NULL C)1 D)0 A B C D 19. 若变量已正确定义为 int 型,要通过语句 scanf("%d,%d,%d",&a,&b,&c);给 a 赋值 1、 给 b 赋值 2、给 c 赋值 3,以下输入形式中错误的是(μ 代表一个空格符) A)μμμ1,2,3<回车> C)1,μμμ2,μμμ3<回车> B)1μ2μ3<回车> D)1,2,3<回车> A B C D 20. 有以下程序段 int a,b,c; b=50; c=30; a=10; if(a>b) a=b,b=c; c=a; printf("a=%d 程序的输出结果是 A)a=10 C)a=10 b=50 c=10 b=30 c=10 B)a=10 D)a=50 b=50 c=30 b=30 c=50 b=%d c=%d\n",a,b,c); A B C D 21. 若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对 m 数组元素的引用错误的是 A)m[--i] B)m[2*2] C)m[m[0]] D)m[m[i]] A B C D 22. 下面的函数调用语句中 func 函数的实参个数是 func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8))); A)3 B)4 C)5 D)8 A B C D则错误引用 x 数组元素的是 C)*(p+1) D)*x A B C D 24. 若有定义语句:char s[10]="1234567\0\0";,则 strlen(s)的值是 A)7 B)8 C)9 D)10 A B C D 25. 以下叙述中错误的是 A)用户定义的函数中可以没有 return 语句 B)用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值 C)用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型 D)函数的 return 语句中可以没有表达式 A B C D 26. 以下关于宏的叙述中正确的是 A)宏名必须用大写字母表示 C)宏替换没有数据类型限制 B)宏定义必须位于源程序中所有语句之前 D)宏调用比函数调用耗费时间 A B C D 27. 有以下程序 #include main() { int i,j;  for(i=3;i>=1;i--) { for(j=1;j<=2;j++) printf("%d",i+j); printf("\n"); } } 程序的运行结果是 A)2 3 3 4 4 5 B)4 5 3 2 4 3 C)2 3 4 3 4 5 D)4 3 2 5 4 3 A B C D 28. 有以下程序 #include main() { int x=1,y=2,z=3;  if(x>y) if(y<z) else printf("%d",++z); printf("%d",++y); printf("%d\n",x++); } 程序的运行结果是 A)331 B)41 C)2 D)1 A B C D 29. 有以下程序 #include main() { int do { if(i%3==1) if(i%5==2) { printf("*%d",i); i++; }while(i!=0); printf("\n"); } 程序的运行结果是 A)*7 B)*3*5 C)*5 D)*2*6 break; } i=5;  A B C D 30. 有以下程序 #include int { a,int b) fun(int if(b==0) else return a; return(fun(--a,--b)); 程序的运行结果是 A)1 B)2 C)3 D)4 A B C D 31. 有以下程序 #include #include int { n) fun(int int *p; p=(int*)malloc(sizeof(int)); *p=n; } main() { int a; printf("%d\n",a+fun(10)); return *p; a=fun(10); } 程序的运行结果是 A)0 B)10 C)20 D)出错 A B C D 32. 有以下程序 #include void { a,int b) fun(int int t; t=1;a=b;b=t; } main() { int c[10]={1,2,3,4,5,6,7,8,9,0},i; fun(c[i],c[i+1]); printf("%d,",c[i]); for(i=0;i<10;i+=2) for(i=0;i<10;i++) printf("\n"); } 程序的运行结果是 A)1,2,3,4,5,6,7,8,9,0, C)0,9,8,7,6,5,4,3,2,1, B)2,1,4,3,6,5,8,7,0,9, D)0,1,2,3,4,5,6,7,8,9, A B C D 33. 有以下程序 #include struct { int st x,y;} data[2]={1,10,2,20}; main() { struct st *p=data; printf("%d\n",(++p)->x); printf("Td,",p->y); } 程序的运行结果是 A)10,1 B)20,1 C)10,2 D)20,2 A B C D 34. 有以下程序 #include void a[], int n) fun(int { int i,t; } for(i=0;i<n 2;i++) {t=a[i];a[i]=a[n-1-i]; a[n-1-i]=t; } main() { int k[10]={1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2;i<8;i++) printf("\n"); } 程序的运行结果是 A)345678 B)876543 C)1098765 D)321678 printf("%d",k[i]); A B C D 35. 有以下程序 #include #define void { N 4 a[][N],int b[]) for(i=0;i<N;i++) } main() { int b[i]=a[i][i]; x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i; fun(x,y); for(i=0;i<N;i++) printf("\n"); } 程序的运行结果是 printf("%d,",y[i]); A)1,2,3,4, B)1,0,7,0, C)1,4,5,9, D)3,4,8,10, A B C D 36. 有以下程序 #include int { (*s)[4],int m,i; n,int k) fun(int int m=s[0][k]; for(i=1;i<n;i++) return m; } main() { int a[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}}; if(s[i][k]>m) m=s[i][k]; printf("%d\n",fun(a,4,0)); } 程序的运行结果是 A)4 B)34 C)31 D)32 A B C D 37. #include main() { struct struct b=a; printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]); } STU{ char name[9]; char sex; double score[2]; };  STU a={"Zhao",'m',85.0,90.0},b={"Qian",'f',95.0,92.0}; 程序的运行结果是 A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90 A B C D 38. 假定已建立一下链表结构,且指针 p 和 q 已指向如图所示的结点: 则以下选项中 可将 q 所指结点从链表中删除并释放该结点的语句组是 A)(*p).next=(*q).next; C)p=q; free(q); free(p); B)p=q->next; free(q); free(q); D)p->next=q->next; A B C D 39. 有以下程序 #include main() { char a=4;  printf("%d\n",a=a<<1); } 程序的运行结果是 A)40 B)16 C)8 D)4 A B C D 40. 有以下程序 #include main() { FILE char *pf; *s1="China",*s2="Beijing"; pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); rewind(pf); fwrite(s1,5,1,pf); fclose(pf); } 以上程序执行后 abc.dat 文件的内容是 A)China B)Chinan D 二、填空题(每空 2 分,共计 30 分) 填空题( 1.对下列二叉树进行中序遍历的结果是【1】 输入答案,中间不含空格: 2. 按照软件测试的一般步骤,继承测试应在【2】测试之后进行。

C语言常见复习题(选择填空)及参考答案

C语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案一、选择题1.下述标识符中,()是合法的用户标识符。

A.A#CB.getchC.voidD.ab*2.在C语言中,字符型数据在内存中是以()形式存放的。

A.原码B.BCD码C.反码D.ASCII码3.以下选项中不合法的用户标识符是()。

A.abc.cB.fileC.MainD.PRONTF4.以下选项中不合法的用户标识符是()。

A.123B.printfC.Anbsp;D.Dim5.可以在C语言程序中用做用户标识符的一组标识符是()。

A.voidB.as-b3C.forD.2cdefine -123 -abc DoWORD If cas SIG6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。

(1)A.001 B.table_1 C.0_t D.k%Int t*.1 W10 point(2)A.Fast_ B.void C.pbl D.Fast+Big abs fabs beep(3)A.xy_ B.longdouble C.*p D.CHAR变量1 signed history Float7.()是构成C语言的基本单位。

A.函数B.过程C.子程序D.子例程8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符C.包含1个字符D.无定值,说明不合法(2).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法(3).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法9.若x为int型变量,则执行以下语句后,x的值为x=6;x+=x-=x*xA.36B.-60C.60D.-2410.在C语言中,char 型数据在内存中是以()形式存储的。

A.原码B.补码C.ASCII码D.反码11.以下运算符中优先级最低的算符为(),优先级最高的为()。

2008年4月国家二级(C语言)笔试真题试卷(题后含答案及解析)

2008年4月国家二级(C语言)笔试真题试卷(题后含答案及解析)

2008年4月国家二级(C语言)笔试真题试卷(题后含答案及解析) 题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.程序流程图中带有箭头的线段表示的是()。

A.图元关系B.数据流C.控制流D.调用关系正确答案:C解析:程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。

其中,用带箭头的线段表示控制流,用矩形表示加工步骤,用菱形表示逻辑条件,2.结构化程序设计的基本原则不包括()。

A.多态性B.自顶向下C.模块化D.逐步求精正确答案:A解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。

3.软件设计中模块划分应遵循的准则是()。

A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合正确答案:B解析:耦合性和内聚性是模块独立性的两个定性标准,各模块的内聚性越强,则耦合性越弱。

软件设计应该遵循高内聚低耦合。

4.在软件开发中,需求分析阶段产生的主要文档是()。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成设计计划正确答案:B解析:需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标确认,又可以作为控制软件开发进程的依据。

5.算法的有穷性是指()。

A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用正确答案:A解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。

6.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序正确答案:D解析:各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2,快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序O(n1.5),简单选择排序n(n-1)/2、堆排序O(nlog2n),7.下列关于栈的叙述正确的是()。

C语言全部知识点复习资料

C语言全部知识点复习资料

C语言全部知识点复习资料C语言知识点复资料在复C语言知识点时,需要掌握以下内容:1.程序中基本的控制结构包括三种:顺序结构、选择结构(分支结构)和循环结构。

2.读程序时应从main()入口开始,按顺序往下读,遇到循环就处理循环,遇到选择就处理选择。

每个C语言程序中只有一个main函数。

3.计算机中的数据以二进制形式保存,其存放位置即为其地址。

bit指的是0或1,而byte指的是8个bit。

4.编译预处理不是C语言的一部分,不占用运行时间,不要在#define语句中加入分号,否则会出现错误。

5.每个C语言程序中只有一个main函数,它是程序运行的起点。

6.C语言程序的源代码扩展名为.c,必须经过编辑、编译、链接和运行四个步骤才能得到运行结果。

注意。

c和.obj文件无法直接运行,必须先编译链接生成.exe文件才能运行。

7.C语言书写格式是自由的,每行可以写多个语句,一条语句也可以写在多行。

8.标识符是由字母、数字和下划线组成的,第一个字符必须是字母或下划线。

标识符分为关键字、预定义标识符和用户标识符。

关键字不能作为用户标识符,而预定义标识符可以作为用户标识符,但一般不建议这样做。

9.C语言中只有八进制、十进制和十六进制整数,没有二进制整数。

在运行时,所有进制都要转换成二进制来进行处理。

八进制数必须以0开头,而十六进制数必须以0x开头。

10.实型常量可以写成小数的形式,如果小数点两边有一个是零,则可以省略。

自增、自减表达式:自加、自减表达式的值取决于它们在变量名前面还是后面。

例如,如果a=5,则++a的值为6,而a++的值为5.记忆口诀是“++在前先加后用,++在后先用后加”。

逗号表达式:逗号表达式的优先级最低,其数值为逗号后面的表达式的值。

例如,(2,3,4)的值为4.在赋值表达式中,z=(2,3,4)时,z的值为4;而在逗号表达式中,z=2,3,4时,z的值为2.关系表达式:关系表达式的值只能为1(真)或0(假)。

C语言知识复习资料

C语言知识复习资料

第一部分 C语言知识复习资料第一章C语言基本知识【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。

源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。

C语言有三种基本结构:顺序结构、选择结构、循环结构。

【考点2】main函数又称主函数,是C程序的入口。

main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体。

一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。

每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。

【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。

二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。

数据的存放位置就是它的地址。

【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。

【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。

一行内可写多条语句,一个语句可写在多行上。

【考点6】标识符是标识名字的有效字符序列,可以理解为C程序中的单词。

标识符的命名规则是:(1)标识符只能由字母、数字和下划线组成,字母区分大小写。

(2)标识符的第一个字符必须是字母或下划线,不能为数字。

C语言标识符分如下3类(1)关键字。

它们在程序中有固定的含义,不能另作他用。

如int、for、switch 等。

(2)预定义标识符。

预先定义并具有特定含义的标识符。

如define、include 等。

(3)用户标识符。

用户根据需要定义的标识符,符合命名规则且不与关键字相同。

【考点7】常量与变量常量是指在程序运行过程中,其值不能改变的量。

C语言程序设计复习资料教案资料

C语言程序设计复习资料教案资料

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位系统。

碰到这种情况,不要去管,一样做题。

2008C语言讲义第12章

2008C语言讲义第12章
12
2、文件的关闭 fclose
文件使用完毕后,应当关闭。关闭就意味着 释放文件指针以供别的程序使用,同时也释放文 件缓冲区的内存,避免文件中数据的丢失,使指 针与文件脱钩。 fclose (文件指针) fclose (fp)
fclose 亦有返回值,正常关闭返回值为0,否则 为非0。关闭是否出错可由ferror函数来检验。
并且结构体数组student中的元素都已有 值,若要将这些元素写到硬盘文件fp中, 以下不正确的形式是:
A) fwrite(student, sizeof(struct st), 50, fp); B) fwrite(student, 50*sizeof(struct st), 1, fp); C) fwrite(student, 25*sizeof(struct st), 25, fp); D) for (i=0;i<50;i++) fwrite( student+i, sizeof(struct st), 1, fp);
21
下面程序从一个二进制文件中读入结构体数据,并把 结构体数据显示在终端屏幕上。
FILE *f #include “stdio.h” reout(______________) struct rec { struct rec r; { int num; while (!feof(f)) float total; sizeof(rec) } { fread(&r, _________, 1, f ); main( ) r.num, r.total printf(“%d,%f\n” ,_____________); { FILE *f; } f=fopen( “bin.dat”, “rb”); reout(f); } fclose(f); }

2008-4c语言课件

2008-4c语言课件

例 输入两个数并判断两数相等否
Ch4_2.c
/*ch4_2.c*/ #include <stdio.h> main() { int a,b; printf("Enter integer a:"); scanf("%d",&a); printf("Enter integer b:"); scanf("%d",&b); if(a==b) printf("a==b\n"); else printf("a!=b\n"); }
=0 statement2
形式三: 格式:
if ( expr1 ) else if (expr2 ) else if (expr3 )
statement1 statement2 statement3
执行过程:
=0

…... [ else statementn ]
例:if (salary>1000) index=0.4; 非0 if (salary>800) =0 index=0.3; else expr2 else if (salary>600) index=0.2; =0 非0 else if (salary>400) expr3 index=0.1; else 非0 index=0;
编写一个程序,接受键盘输入的一个实型数.如果它 大于等于60,则打印输出信息"Passed".
只有一种情况
双分支选择语句举例: 双分支选择语句举例:
编写一个程序,接受键盘输入的两个整型数.根 据两数的关系,打印出相等或不等的信息.
==是双等号 是双等号 有两个选项
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言规定:非0值都是真,效果同1。
注意: || 、&&的逻辑运算顺序和结果
选择结构
2. if-else结构:if和else之间只能有一 条语句。可以是一条简单语句,也可以 是一条复合语句。当if块中有多条简单语 句时一定要使用{ }复合语句! 3. else:要和if配对使用,且else后不能
直接加条件!
件指针操作函数
考试说明

选择题:表达式的值,++,- -,switch
结构,图形,分支结构,概念。

程序填空题:填写一行。计算表达式,赋
初值,判断,循环变量++,变量定义,函
数声明,整数整除表达式

程序补充:函数体。判断数字,表达式,
分支结构,累加,连乘…..
考试说明
注意事项 (1){ }的配对 (2)缺少 ; “ ” & 等; (3)变量初值:sum=0,1; (4)=与==:比较,赋值; (5)类型转换:/运算,double; (6)分号:for()后,while()后,if()后等;

考试说明
编程题: (1)分段计算:if-else嵌套 (2)数学公式:分数,double,分子 分母的变化规律,数学函数exp, log, log10, fabs, abs, sin, cos, pow, sqrt

考试说明
编程题: (3)函数计算n!,累加 (4)已知当前项终值,或者项数确定的 累加连乘运算; (5)数组排序 (6)数组求最值
&&,||,sizeof(),复合运算等
9. 自增/减:k++,++k
数据类型与表达式
10.=和==的区别:赋值,比较 if(k=3) printf(“hi”); if(k==3) printf(“hi”);
11.逗号表达式:
x=3,4; x=(3,4);
顺序结构
1. ch=getchar():获得一个输入的任意字符。 多个要连续输入,且都是有效字符。 2. gets(s1): 输入一个字符串数组,回车结束。 puts(s1): 输出s1地址开始的字符串。 3. scanf():表达式的类型与控制符类型要一致, 简单变量或数组元素要加&。%s的输入以第一 个空格结束,即不能输入空格字符。
6. 枚举型:序号比较大小;
7. typedef:不能定义新类型,只是已
有类型的别名。
位运算
1. 二进制运算: 0,1
2. 运算符: ~,& ,|,>>,<<。
如:3>>2 5|3
文件操作
1. 文件类型指针变量:FILE *fp;
2. 函数:fopen(),fclose()。
3. 常见用法:打开文件,文件指针,文
作变量名,其中标准函数名可以做 变量名。
数据类型与表达式
4. 类型转换:强制转换,自动转换 5. 实数运算问题:有效位数 ,实型的
判断,大数和小数(忽略)的运算
6. 转义符: 计算字符串的长度,\b、
\0
书P48
数据类型与表达式
7. char和int:相互转换,ASCII码。 8. 表达式:运算顺序,结果,%,/,
1. 程序构成:以函数为基本单位; 2. 主函数:main(),程序开始运行位置。
3. 调用关系:相互调用、嵌套调用、递归
调用。
4. 头文件:作用及使用方法 #include 5. 注释标志:/* xxx */ 6. 上机步骤:见下页
C语言概述
C语言上机步骤: • 双击桌面TC图标;Turbo C2.0 • 打开程序: File-load或者F3,回 车,光标键选择文件,不要输入! • 保存程序: File-save或者F2 • 运行程序:Run-run或者ctrl+F9
交换两个数的值-函数,地址,指针
数组-排序、最值、删除、插入
结构体应用
1. 结构体变量:定义,成员的访问 . ; 2. 结构体指针:定义,成员的访问 -> ; 3. 结构体数组与指针:p++; 4. 链表处理:插入、删除等; 5. 共用体:大小等于最长成员的大小,其
值为最后赋值的成员有效。
结构体应用
2. 函数调用:有返回,无返回值。有返
回值时引用类型要和定义的一致!
函数的应用
3. 形参/实参:类型和个数一致,按照位
置对应传递,值传递方式!参数为地址 或指针时,实际指向同一个地址,修改 的值双方有效!
变量地址、数组名、指针 4. 变量类型:全局,局部,static,auto, register, extern。
循环结构
2. while结构:while()前循环变量的初始
化,条件非0执行循环,循环体中破坏语 句的书写。
终值已知型,for()型,其他所有类型。
字符数组的应用;多循环条件类。
循环结构
3. do-while结构:较少使用,先执行一次再
判断,循环条件的表示和结束同while结构。
4. brak/continue语句:break结束本层循环,
函数的应用
典型问题:
最大公约数,数组排序,数组最值, 判断数(返回数字/字母),计算阶乘
注意:指针、数组名、变量地址作为参
数的函数实现。
指针应用
1. 指针与指针变量:
地址,保存地址的变量;
2. 指针变量的类型:
要与指向的变量类型一致! 2. 运算:&,* &k *p *(p+i) *(a+i)
指针应用
选择结构
4. else if结构:否定上层if条件,且还有 条件限制时使用,一般多分支情况使用 该结构,而不能简单使用多个if单独判断!
5. switch结构:
多分支时使用,该结构执行满足的第一 个条件分支及其后所有分支的语句!
选择结构
6. break:
可以在switch中使用,表示不执行 后续分支!
考试说明
典型题目:
1、分段函数的计算。数学表达式书写 2、将数组a中所有数字进行大小排序。 3、统计字符数组中大写字母的个数。 4、判断数n是否为素数。 5、判断数n是否为水仙花数? 7、计算字符串中数字字符的累加和。 8、指针交换两个数的值。地址、指针 9、地址参数得到计算结果。 10、数列的累加和。分子 分母 11、阶乘表达式的累加和(单层循环) 12、数组的查找、插入、删除。 13、 标志变量的使用。

考试说明

编程题:
(7)数组元素的删除,插入 (8)数字的判定:素数,水仙花数,完数; (9)数列:杨辉三角,F氏数列; (10)数制转换:2进制,10进制,8进制; (11)矩阵运算:赋值,求最值等;
考试说明

编程题:
(12)数组元素个数统计:符合某条件
(13)大小写转换:+-32;
(14)字符转换数字:‘2’-------2
while(*p!=„\0‟) { p++;} while(*p++!=„\0‟) { } while(*(p+i)!=„\0‟) { i++;} 7. argc/argv:所有部分的个数,所有部 分的字符串形式。char *argv[]
指针应用
典型问题:
字符串的处理-大小写转换、统计个数、
复制、比较大小
跳到}后执行;continue结束本次循环,返
回循环条件的判断,开始下次循环。
循环结构
典型问题: • 输出所有水仙花数 • 累加,连乘 • 各数位之和 • 素数的判断 • 数的反转 • 完数的判断 • 数的进制转换
数组的应用
1.数组元素:下标从0开始,先赋值后使用。 2.字符数组:最后一个元素保留给‘\0’,
顺序结构
4.printf():%o,%x,%.2f,%3d P81 “使用scanf函数时应注意的问题” long输入/出时使用%ld 输出输入控制符和表达式类型要匹配!
5.例题复习:
P83 例4.11字母大小写转换程序。
选择结构
1. if条件:关系表达式,逻辑表达式,
赋值表达式,简单变量表达式 如:k==10 k%2!=0 j=4 k++ n
C语言程序设计
(2008版)
讲 授:韩晓芸
Email:hxylc@
hxy@
福州大学数学与计算机科学学院
C语言程序设计复习


C语言概述 数据类型与表达式 顺序、选择、循环结构设计 数组应用 函数应用 指针应用 结构体、位运算、文件操作
C语言概述
C语言概述
6) 重新运行:alt+c→compile → make
7) 进入编辑状态:Alt+E,F6切换 8) 死循环:Ctrl+Pause →ESC 9) 菜单激活:F10
数据类型与表达式
1. 常量表示方法:2.1,‟a‟,”didi”,
3L,1.2e2 ,符号常量
2. 整数除法:5/2 →1.0*5/2 3. 变量名:合法变量名称,保留字不
6. 字符串:处理字符串时,最后要确保
字符串结束标志的存在,即‘\0’。
数组的应用
典型问题:
数列,数组最值,排序(冒泡法、选择 法),查找(顺序,二分),数组插入/ 删除,矩阵处理(行列的最值,对角线 元素),字符串处理(复制、比较大小、 删除)
函数的应用
1.函数定义和声明:定义表示要完成什
么功能,声明如同变量的声明,形式和 定义时一样,形参变量名可以省略。有 返回值的函数一定声明类型!
可以在循环结构中使用,表示结束 本层循环结构。
选择结构
典型问题:
• 奇偶数判断
相关文档
最新文档