《C语言》复习资料_第1页
《C语言》复习资料_第2页
《C语言》复习资料_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、下列四组选项中,均不疋c语言关健字的选项疋(A )oA) defi neB) gectC) in cludeD) whileIFcharsca nfgotypeprintfcasepow下面四个选项中,均是合法整型常量的选项A ) oA)160B)-Oxcdfc) -oiD)-OxffffOla986,01220x48aOilOxe0668Ox?02?B?2下面四个选项中,均是不合法的转义符的选项是B )A) B) * ioirC) '011'D) ' abc',''f'101''xf'A'xlf算法分析的

2、目的是C ,算法分析的两个主要方面是A(1) A.找出数据结构的合理性C分析算法的效率以求改进A.空间复杂度和时间复杂度C可读性和文档性F面程序段的时间复杂度是0(册)B研究算法中的输入和输出的关系 C文档性正确性和简明性B数据复杂性和程序复杂性D分析算法的易读性和s =0;for( I =0; i<n; i+)for(j=0;j <n ;j+) s+=Bij;sum = s ;F面程序段的时间复杂度是 Ofor( i =0; i<n; i+) for(j=0;j<m;j+)Aij = 0;F面程序段的时间复杂度是0(1。电i = 0;while (i<=n)i

3、= i*3 ;.在以下的叙述中,正确的是B。A. 线性表的顺序存储结构优于链表存储结构B. 二维数组是其数据元素为线性表的线性表C. 栈的操作方式是先进先出D. 队列的操作方式是先进后出通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着BA. 数据元素具有同一特点B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要C. 每个数据元素都样D. 数据元素所包含的数据项的个数要相等链表不具备的特点是A。A. 可随机访问任一结点 B.插入删除不需要移动元素不带头结点的单链表head为空的判定条件是一 A。A. head = NULLB head-> next =NUL

4、LC ? head->next =headD head !=NULL带头结点的单链表head为空的判定条件是一 B。A. head = NULLB head-> next =NULLC. head-> next =headD head! =NULL若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用 D存储方式最节省运算时间。A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是_B。A.单链表B,静态链表C.线性链表D.顺序存储结构18.非空的循环单链表head的尾结点

5、(由p所指向)满足oA. p->n ext = NULL B. p = NULLC. p->n ext =head D. p = head下面不正确的字符串常量是(A )oA) 'abc' B)"12'12" C) "0"D)" ”若有定义:int a=7: float x=2. 5, y=4. 7;则表达式 x+a%3*(int) (x+y)%2/4 的值为 2. 500000。 有程序段:int a10 = 1,2, 3,4, 5,6, 7,8,9, 10, *p=&a3,b; b=p5;则 b

6、中的值是 9。假设所有变量均为整型,则表达式(a=2, b=5, b+, a+b)的值是【8】。若x是int型变量,则执行下面表达式后,x的值为【12】。x=(a=4,6*2)若k为int整型变量且赋值7,请写出赋值表达式k *= k + 3的运算结果【70】 一个C程序的执行是从(A)。A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束0本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束则以下不符合C语言语法的表达式是(A )oA) x%(-3)B) w+=-2C)

7、k=(a=2, b=3, a+b)D) a+=a-=(b=4)*(a=3)若t为double类型,表达式t=l,t+5,t+的值是(D )oA)1B)6.0C)2.0D)l. 0设有以下宏定义:#define f(z) z*z,执行赋值语句k=f (4 + 4)/f (2 + 2) ; (k为int型变量)后,k的值是 28 。若x和n均是int型变量,且x的初值为12, n的初值为5,则执行下面表达式后,x的值为(0)。x%=( n%=2)若x为int型变量,则执行x=7; x+=x =x + x;语句后,x的值是T4。若 a=6, b=4, c=2则表达式! (a-b)+c-l&&

8、amp;b/3+c/2 的值是【1 设n=10, i=4,则赋值运算n%=i+l执行后,n的值是(A ).A)-OflB)-OxcdfC) -018 D)-0x48eg-Oxffff017999-068001112,4565e203f下面正确的字符常量是(c)oA) "c"B)C) ' WA) 0B) 3C) 2D) 1F面四个选项中,均是不合法整型常量的选项是 (D )以下每个选项都代表一个常量,其中正确的整型常量是(B)D)4 5 6A)I. 2B)-20C) 1,000下列选项中,不能用作标识符的是(D)。A) _1234_ B) _1_2C) int_2_D

9、) 2nt_以下4个选项中,不能作为一条 C语句的是"D) if(b=0) m=l; n=2;A) (:B) a=0, b=0, c=0; C) if(a>0):有以下定义语句 double a, b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是(C )A) a=a+b=b+ B) w%(int)a+b) C) (c+w)%(int)a D) w=a=b:设有定义:int n=0, *p=&n, *q=&p;则以下选项中,正确的赋值语句是(D)。A) p=l; B) *q=2; C) q=p;D) *p=5;若有说明:char *

10、language = ” FORTRANASIC ” , " PASCAL" JAVA ” , " C;则表达式Alanguage 1 >*language 2比较的是(A)。A)字符B和字符PB)字符串FORTRAN和字符串BASICC) 字符F和字符B D)字符串BASIC和字符串PASCAL执行语句for (i=l: i+<4;);后变量i的值是(C)。A) 3B)4C) 5D)不定以下叙述中正确的是(B )oA. a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值B. 在赋值表达式中,赋值号右边即可以是变量也

11、可以是任意表达式C. 执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为 b的值,b的值由原值变为0D. 已有a=3, b=5当执行了表达式a=b, b=a之后,已使a中的值为5, b中的值为3表达式18/4*sqrt (4. 0) /8值的数据类型为(C )。A) intB) float C) double D)不确定下列运算符中,不属于关系运算符的是(C )。A) < B) > = C) ! D) !=若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则以下不能 满足要求的表达式是(C )。A) A%2= =1 B) !(

12、A%2= =0) C) !(A%2) D) A%2函数 swap (int x, int y)实现对 x 和 y 值的交换。则执行语句int a2 = l, 2) ; swap (a0, al) ; 后,a 0= 1, a 1 =N o有以下程序int f(i nt a) (int b=0;static c=3: b=b+l:c=c+l: return(a+b+c);void mai n ()(int a=2, i;for (i=0;i<3;i+) printf ( " % 2d”,f(a); 执行后输出的结果是789。 有以下程序void f (int y, int *x)(

13、y 二 y+*x; *x=*x+y;void mai n()(int x=2,y=4;f (y, &x);n”,x, y);执行后输出的结果是x=8, y二4。 下列程序int c=l; main()(static int a=5;i nt b=6;printf ( "aF%d b=%d c=%dnw , a, b, c);func ();printf ( "aF%d, b=%d, c=%dnw , a, b, c);func ();func ()(static int a=4;int b=10;a+=2;c+二 10;b+二 c;printf ( "aF

14、%d, b=%d, c=%dnw , a, b, c);运行后输出的数据为_c_.A. a=5 b=6 c=lB. a=5 b=6 c=la=6 b=21 c=lla=7 b=17 c=lla=5 b=6 c=lla=5 b=6 c=lla=8 b=31 c=21a=9 b=17 c=21C. a=5 b=6 c=lD. a=5 b=6 c=la=6 b=21 c=lla=7 b=17 c=lla=6 b=21 c=lla=7 b=17 c=lla=8 b=31 c=21a=9 b=38 c=21若已知一个栈的进栈序列是 1,2, 3, n其输出序列为pl, p2, p3, ?, p若 pl

15、nA. i B. n-i C. n-i+1 D,不确定,判定一个顺序栈st (最多元素为MaxSize)为空的条件是B。A. st->top != -1B. st->top = -1C. st->top != MaxSizeD. st->top = MaxSize判定一个顺序栈st (最多元素为MaxSize)为满的条件是D 。A. st->top != -1B. st->top = -1C. st->top != MaxSizeD ? st->top = MaxSize一个队列的入队序列是1,2,3, 4则队列的输出序列是BA. 4, 3, 2

16、, 1B. 1,2, 3, 4C. 1,4, 3, 2D. 3,2, 4, 1判定一个循环队列qu(最多元素为MaxSize)为空的条件C。A. qu->rear 一 qu->front =MaxSizeB. qu->rear 一 qu->front - l=MaxSizeC. qu->rear =qu->frontD. qu->rear =qu->front -1在循环队列中,若front与rear分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是C OA. fron t=rear+l B. rear=fr on t+l C. fron

17、 t=rear D. fron t=0向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行D操作。A. h->n ext=s ;B. s->n ext=h ;C. s->n ext=h ;h =s ; D. s->n ext=h->n ext ;h->n ext=s ;输入序列为ABC,可以变为CBA时,经过的栈操作为B。A. push, pop, push, pop, push, pop B. push, push, push, pop, pop, popC. push, push, pop, pop, push, pop D. push,

18、pop, push, push, pop, pop若栈采用顺序存储方式存储,现两栈共享空间V1 m, topl, top分别代表第1和第2个栈的 栈顶,栈1的底在Vl,栈2的底在Vm,则栈满的条件是B。A. Itop2-topll=0 B. topl+l=top2 C. topl+top2=m D. topl=top2设计一个判别表达式中左、右括号是否配对出现的算法,采用D数据结构最佳A.线性表的顺序存储结构B.队列C.线性表的链式存储结构 D.栈允许对队列进行的操作有A.对队列中的元素排序C.在队头元素之前插入元素 对于循环队列D。A.无法判断队列是否为空C.队列不可能满 若用一个大小为6的

19、数值来实 现循环队列,且当前 一个元素,再加入两个元素 后,B.取出最近进队的元素D,删除队头元素B.无法判断队列是否为满D,以上说法都不对rear和front的值分别为0和3,当从队列中删除 别为 B。rear和front的值分A. 1 和 5 B. 2 和 4C. 4 和 2 D. 5 和 1队列的“先进先出”特性是指 DoA. 最早插入队列中的元B. 素总是最后被删除C. 当同时进行插入、删除操作时,总是插入操作优先D. 每当有删除操作时,总是要先做一次插入操作 每次从队列中删除的总是最早插入的元素用指针和数组两种方法实现如下功能:将一个字符串按逆序存放 要求(1)主函数中完成输入和输出

20、字符串。C2)逆序存放功能用子函数完成。答:(1)数组法tti nclude <stri ng. h>tti nclude <stdio. h>ttdefi ne N 20void inv (char str,i nt n);void mai n ()(char strN;gets (str);inv(str, strlen(str);puts (str);void inv (char str, int n)int i, j, temp;for (i=0, j=n-l; i<=j; i+, j )(temp=str i;stri=strj;str j二 temp;

21、(2)指针法tti nclude <stri ng. h>tti nclude <stdio. h>ttdefi ne N 20void inv (char *str,int n);void mai n () (char strN;gets (str); inv(str, strlen(str);puts (str);void inv (char *str, i nt n)(char *i,*j,temp;for(i=str, j=str+n-l;i<=j;i+,j 一) (temp=*i;i= j ; *j=temp; 实参可以是表达式实参变量与形参变量可以共用

22、内存单元 将为形参分配内存单元实参与形参的类型必须一致以下不正确的描述为(B).A)B)C)D)下面程序调用函数 时,调用函 数时,调用 函数时,调tti nc用函数£时lib.h> mai n ()char *aF 1234 ;fun (a);printf ( n );fun ( char *s)(char t;if(*s) (t = *s+; fun(s);) if (t !='0') putchar ( t );输出为(B).A) 1234 B) 4321 C) 1324 D) 4231一个整型数组有10个元素,编写程序删除所有值为n的元素。 要求(1)主

23、函数完成n的输入,数组元素输入以及删除后数组元素的输出。(2)删除功能用子函数完成。答:ttinclude <stdio. h> int m;void del_eleme nt(i nt nu m, int n); void mai n ()(int num10;int i, n;m=10;for(i=0;i<10;i+)scanf( d , &numi);printf ("please in put nn); scanf ( %d , &n); del_eleme nt (num, n); for(i=0;i<m;i+)printf( %d ,numi);void del_eleme nt(i nt nu m, int n)int i, j;for(i=0;i<m;i+)if (nu mi=n)for(j=i+l; j<m; j+)nu mj-l=nu mj;m;i ;下列程序段的运行结果为(B).float f (int x)x=x+3. 6;r

温馨提示

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

评论

0/150

提交评论