大学C++复习题

合集下载

《C语言》总复习题

《C语言》总复习题

《C语言》课程综合复习资料一、单项选择1. 若有如下语句: int *p1,*p2; 则其中int所指的是(D )A. p1的类型B. *p1和*p2的类型C. p2的类型D. p1和p2所能指向变量的类型2. 下列程序段的输出结果是(C )x=9; while(x>7) {printf(“*”);x--;}A. ****B. ***C. **D. *3. 下列变量的定义及赋值正确的是(C)A. int i=0;j;B. char c=”A”;C. double x,y,z; x=y=z=100;D. float a=b=100;4. 设有语句:int x=10;x = x -= x - x;,则执行语句后,x的值为(B )A. 30B. 20C. 10D. 405. 设有语句:float x=1,y; y=x 3/2; 则y的值是(C )A. 1B. 2C. 2.0D. 2.56. 设有如下定义和执行语句,其输出结果为(A )int a=3,b=3; a = --b + 1; printf(“%d %d”,a,b);A. 3 2B. 4 2C. 2 2D. 2 37. 设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为(C )A. strcpy(str1,str2);B. strcpy(str1, “China”);C. strcat(str1,“China”)D. strcat(“Beijing”,str2);8. 设有定义语句:char str[][20]={""Hello"",""Beijing""},*p=str; 则printf(""%d\n"",strlen(p+20)); 输出结果是(C )A. 0B. 5C. 7D. 209. 设有定义int a[ ]={1,5,7,9,11,13},*p=a 3;则*(p-2),*(a 4)的值是(A )C. 5 9D. 有错误10. 设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y,z的值分别是(D )A. 1,1,1B. 1,2,0C. 0,1,1D. 0,2,011. 设有定义:int x=12,n=5; 则表达式x%=(n%2) 的值为(A )A. 0B. 1C. 2D. 312. 设有定义int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是(D )A. a&&bB. a<=bC. a||b c&&b-cD. !((a<b)&&!c||1)13. 设有定义int a[ ]={1,5,7,9,11,13}, *p=a 3; 则*(p-2) , *(a 4) 的值是(A )A. 5 11B. 1 9C. 5 9D. 有错误14. 设有定义char *p=“abcde\0fghjik\0”; 则printf(“%d\n”,strlen(p));输出结果是(D )A. 12B. 15C. 6D. 515. 设有int x=11;则表达式(x *1/3)的值是(A )A. 3B. 4C. 11D. 1216. 设a=3,b=4,c=-5,则逻辑表达式:a || b c && b==c 的值是(A )A. 1B. 0C. 非0D. 语法错17. 若有以下定义:int a[10],*p=a; 则*(p+3)表示的是(B )A. 元素a[3]的地址B. 元素a[3]的值C. 元素a[4]的地址D. 元素a[4]的值18. 若有以下定义:char s[20]= "programming",*ps=s;则不能代表字符g的表达式是(A )A. ps 3D. ps =3,*ps19. C语言中,函数返回值的类型是由(D )A. return语句中的表达式类型决定B. 调用函数的主调函数类型决定C. 调用函数时的临时类型决定D. 定义函数时所指定的函数类型决定20. C语言提供的合法关键字是(D )A. swicthB. chaC. CaseD. default二、读程序题1. "#include <stdio.h>void main(){ int a=4,x=3,y=2,z=1;printf(""%d\n"",(a<x ? a : z<y ? z : x)); }"2. "#include <stdio.h>void main(){ int x=12,y=0;if(x>=0){ if(x>0) y=10; }else y=-10;printf(“y=%d\n”,y);}"3. "#include <stdio.h>void main(){ int k=1;switch(k){ case 0: printf(""A""); break;case 1: printf(""B"");case 2: printf(""I"");case 3: printf(""G""); break;default: printf(""E"");}}"4. "#include <stdio.h>#define S(x) x*xvoid main(){int a,k=3,m=1;a=S(k+m);printf(""%d"",a);}"5. "#include <stdio.h>int fun(int a, int b){ if(a>b) return(a);else return(b);}void main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf(""%d\n"", r);}"6.#include <stdio.h&>void main(){ int k=4,n=0;for(;n<k;){ n++;if(n%3!=0) continue;k- -;}printf(""%d,%d\n"",k,n);}三、编程题1. 写一个判断素数的函数。

c语言复习题

c语言复习题

模拟题一一、单项选择题(每题2分, 30分)1. 结构化程序设计方法中有三种基本结构,不正确的是____D_____。

A.顺序结构B.选择结构C.循环结构D.数组结构2. 在C语言中,下列变量名称中合法的是___C______。

A.7x B.int C.ELse D.a-b3. 合法的字符常量是_C___。

A. ‘\084’B. ‘ab’C. ‘\x43’D. “\0”4. 下列变量的定义及赋值正确的是___ C ___。

A. int i=0;j;B. char c=”A”;C. double x,y,z;D. float a=b=100;x=y=z=100;5.如有以下变量定义:int a=5,b=6,c=12;那么下列表达式结果为真的是____A_____。

A. a-bB. a>bC. b/cD. c%b6. 下列的数组定义中合法的是( A )A.int a[]="string";B.int a[5]={0,1,2,3,4,5};C.char s="string";D.char a[]={0,1,2,3,4,5};7.下列循环语句中,不能够正常结束的是___C______。

A. int i=0;B. int i=0;for(;i<100;i++); for(;;){if(i++>100)break;}C. int i=0,j=0;D. int i=0,j=0;while(i<=j)j++; do{i+=j;i++;j++;}while(i<j);8. 若有:int a[ ]= {1,2,3,4,5,6,7,8},*p=a ;不能正确表示a[5]的表达式是____A____。

A. p + 5B. p[5]C. *(a +5)D. *(p +5)9. 设有int x=15,y=20则表达式(x/=2+1,y*5),y+25的值和执行表达式后x、y的值分别是____B_____。

C期末考试复习题2(1)

C期末考试复习题2(1)

(1) int a[4]={5,3,8,9};其中a[3]的值为( D )。

A. 5B. 3 C。

8 D。

9(2)以下 4 个数组定义中,(D )是错误的。

A. int a[7];B.int n=5; long b[n];C. char c[5];D. int n,d[7];(3) 对字符数组进行初始化,( B )形式是错误。

A。

char c1[]={’1’,'2',’3'}; B. char c2[ ]=123;C. char c3[10 ]={'1', ’2','3','\0'};D。

char c4[]="123”;(5)在数组中,数组名表示( A. )。

A。

数组第 1 个元素的首地址B。

数组第 2 个元素的首地址C. 数组所有元素的首地址D.数组最后 1 个元素的首地址(6)若有以下数组说明,则数值最小的和最大的元素下标分别是(B ).int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};A。

1,12 B. 0,11 C. 1,11 D。

0,12(7)若有以下说明,则数值为 4 的表达式是( D )。

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d=4, g=3A. a[g-c] B。

a[4]C。

a['d’—'c’] D. a['d’-c](8) 设有定义:char s[12] = "string”; 则printf( ”%d\n",strlen(s)); 的输出是( A )。

A。

6 B. 7 C。

11 D. 12(9)设有定义:char s[12]= "string”;则printf(”%d\n ",sizeof(s));的输出是( D)。

A。

6 B。

7 C. 11 D. 12(10)合法的数组定义是(A).A. char a[ ]= ”string" ;B. int a[5]={0,1,2,3,4,5};C. char a= "string ”;D. char a[]={0,1,2,3,4,5}(11)下面的程序中哪一行有错误( D )。

C语言程序设计期末考试复习题及答案[]

C语言程序设计期末考试复习题及答案[]

C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。

switch(i+1){ case 10: i++。

break。

case 11: ++i。

case 12: ++i。

break。

default : i=i+1。

}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。

中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。

对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。

则语句printf(“%c”,*(p+2))运行结果是 ( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。

函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。

大学计算机C语言期末考试复习试题及答案 (26)

大学计算机C语言期末考试复习试题及答案 (26)

C语言试题试卷编号:9618 版面整理着:一、填空共8题(共计8分)第1题(1.0分)题号:513若有以下定义,则计算表达式y+=y-=m*=y后的y值是()int m=5,y=2; 答案:-16第2题(1.0分)题号:84写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】. 答案: 18第3题(1.0分)题号:293getchar()函数只能接收一个【1】. 答案:字符第4题(1.0分)题号:437以下程序的输出结果为【1】,#include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);} 答案:9,10第5题(1.0分)题号:86写出表达式 1.234&&5.982 的值是【1】. 答案:1第6题(1.0分)题号:303为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的【1】语句配对. 答案: if第7题(1.0分)题号:311若所用变量均已正确定义,则执行下面程序段后的值是【1】.for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案:YESYES 第8题(1.0分)题号:312以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则括号内应填写【1】.ch=getchar();while(ch ____ 'Y')/*在括号中填写*/ch=getchar(); 答案:==二、判断共15题(共计15分)第1题(1.0分)题号:937在C程序中,每行中只能写一条语句答案:N第2题(1.0分)题号:928C程序中的关键字必须小写. 答案:Y第3题(1.0分)题号:715整数 -32100可以赋值给int型和long int型变量. 答案:Y第4题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double 答案:Y第5题(1.0分)题号:947printf函数中,%c和%s都可以输出字符串. 答案:N第6题(1.0分)题号:194若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5. 答案:Y第7题(1.0分)题号:944C语言中,赋值表达式加上分号就构成了赋值语句. 答案:Y激情活力精彩学联版权所有违者必究第8题(1.0分)题号:961C语言本身并不提供输入输出语句.但可以通过输入输出函数来实现数据的输入输出. 答案:Y第9题(1.0分)题号:950逻辑运算符中的"&&"和"||"低于关系运算符,"!"高于算术运算符. 答案:Y第10题(1.0分)题号:951在执行switch语句时,default和各个case的出现次序不影响执行结果. 答案:Y第11题(1.0分)题号:723若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". 答案:Y 第12题(1.0分)题号:709int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A. 答案:N第13题(1.0分)题号:742若有说明int c;则while(c=getchar());是正确的C语句. 答案:Y第14题(1.0分)题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立. 答案:Y第15题(1.0分)题号:952do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式. 答案:N三、单项选择共20题(共计40分)第1题(2.0分)题号:2016设C语言中,int类型数据占2个字节,则short类型数据占().A:1个字节B:2个字节C:4个字节D:8个字节答案:B第2题(2.0分)题号:2209若变量已正确定义并赋值,下面符合C语言语法的表达式是().A:a:=b+1B:a=b=c+2C:int 18.5%3D:a=a+7=c+b 答案:B第3题(2.0分)题号:2000以下的选择中,正确的赋值语句是().A:a=1,b=2B:j++C:a=b=5;D:y=int(x) 答案:C第4题(2.0分)题号:2130下列字符序列中,是C语言保留字的是().A:sizeofB:include激情活力精彩学联版权所有违者必究C:scanfD:sqrt 答案:A第5题(2.0分)题号:2211设以下变量均为int类型,则值不等于7的表达式是().A:(x=y=6,x+y,x+1)B:(x=y=6,x+y,y+1)C:(x=6,x+1,y=6,x+y)D:(y=6,y+1,x=y,x+1) 答案:C第6题(2.0分)题号:2127下列程序段的输出结果为().float k=0.8567;printf("%4.1f%%",k*100);A:0085.6%%B:85.7%C:0085.6%D:.857 答案:B第7题(2.0分)题号:2135下列程序段的输出结果为().int x=3,y=2;printf("%d",(x-=y,x*=y+8/5));A:1B:7C:3D:5 答案:C第8题(2.0分)题号:2189从键盘上输入某字符串时,不可使用的函数是().A:getchar()B:gets()C:scanf()D:fread() 答案:A第9题(2.0分)题号:2039若k为int型变量,则以下程序段的执行结果是().k=-8567; printf("k=|%06D|\n");A:格式描述符不合法,输出无定值B:输出为k=|%06D|C:输出为|0-8567|D:输出为|-8567| 答案:B第10题(2.0分)题号:2049以下程序的输出结果为().main(){int i=010,j=10;printf("%d,%d\n",++i,j--);激情活力精彩学联版权所有违者必究}A:11,10 B:9,10 C:010,9 D:10,9答案:B第11题(2.0分)题号:2144int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第12题(2.0分)题号:2259以下关于运算符优先顺序的描述中正确的是().A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C第13题(2.0分)题号:2318在C语言中,要求运算数必须是整型的运算符是().A:&&B:%C:!D:|| 答案:B第14题(2.0分)题号:2261若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是().A:A%2==1B:!(A%2==0)C:!(A%2)D:A%2 答案:C第15题(2.0分)题号:2063执行下列语句后的输出为().int j=-1;if(j<=1) printf("****\n");else printf("%%%%\n");A:****B:%%%%C:%%%%cD:有错,执行不正确答案:A第16题(2.0分)题号:2248下面有关 for 循环的正确描述是().激情活力精彩学联版权所有违者必究A:for 循环只能用于循环次数已经确定的情况B:for 循环是先执行循环循环体语句,后判断表达式C:在 for 循环中,不能用 break 语句跳出循环体D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D第17题(2.0分)题号:2059以下程序的运行结果是().main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}A:12457810B:369C:12D:1234567890 答案:A第18题(2.0分)题号:2141以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无B:######C:#D:### 答案:B第19题(2.0分)题号:2251以下不是无限循环的语句为().A:for(y=0,x=1;x>++y;x=i++) i=x;B:for(;;x++=i);C:while(1){x++;}D:for(i=10;;i--) sum+=i; 答案:A第20题(2.0分)题号:2249若i为整型变量,则以下循环执行次数是().for(i=2;i==0;) printf("%d",i--);A:无限次B:0次C:1次D:2次答案:B四、程序填空共3题(共计27分)第1题题目:要求输出结果为:A,B激情活力精彩学联版权所有违者必究#include<stdio.h>void main()/***********SPACE***********/{char a,【?】/***********SPACE***********/a=【?】;b='b';a=a-32;/***********SPACE***********/b=b-【?】;printf("%c, %c\n%d,%d\n",a,b,a,b);}答案:=======(答案1)=======b;=======(答案2)======='a'=========或=========97=======(答案3)=======32第2题(9.0分)题号:24题目:以下程序的功能是对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。

C语言复习题

C语言复习题

《C语言》复习题一、选择题(1) 有如下程序main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}运行该程序的输出结果是: DA) 3 4 B) 4 2 C) 4 3 D) 3 3(第三章输出语句)(2)当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是: CA)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;(第四章关系表达式)(3)在以下一组运算符中,优先级最高的运算符是: CA)<= B)=C)% D)&&(第四章运算符的优先级)(4) 请选出合法的C语言赋值语句: BA) a=b=58 B) i++;C) a=58,b=58 D) k=int(a+b)(第三章赋值语句)(5)以下说法中正确的是: CA)#define和printf都是C语句B)#define是C语句,而printf不是C)printf是C语句,但#define不是D)#define和printf都不是C语句(第三章语句概述)(6)若有以下定义: Dchar a; int b;float c; double d;则表达式a*b+d-c值的类型为A) float B) int C) char D) double(第二章类型混合运算)(7)若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是: CA)1 B)2C)2.0 D)2.5(第二章类型混合运算)(8)有以下程序#includemain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是: AA) 2,1 B) 3,2 C) 4,3 D) 2,-1(第四章逻辑运算符)(9) 以下程序运行后,输出结果是: CA) cde B) 字符c的ASCII码值C) 字符c的地址D) 出错main(){ char *s="abcde";s+=2;printf("%ld\n",s);}(第九章指针的概念)(10)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为:DA)a<>0 B)!aC)a=0 D)a(第4章条件表达式)(11)有如下程序段,其输出结果是什么: Amain( ){int a=1,b=3,c=5;if (c=a+b)printf ("yes\n");else printf("no\n"); }A) yes B) no C) yes\n D) no\n(第4章条件语句)(12) 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表1示代数式----- 的表达式是: DabcA) 1/a*b*cB) 1/(a*b*c)C) 1/a/b/(float)cD) 1.0/a/b/c(第二章类型混合运算)(13)若i ,j已定义为int类型,则以下程序段中内循环体的总的执行次数是: Afor (i=5;i;i--)for(j=0;j<4;j++){...}A)20 B)15C)24 D)16(第五章for循环语句)(14)下面哪个程序段不是死循环: C(A) a=0; sum=0;while(a=1){sum=sum+a;a++;}(B) {int I,sum=0;For(i=1;i<=3;sum++)sum+=I;}(C) sum=0;for(i=1;i<10;i++);sum=sum+i;(D) sum=0;for(i=1; ;i++)sum=sum+i;(第五章for循环语句)15、设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)16、不能把字符串:Hello!赋给数组b的语句是: BA)char b[10]={'H','e','l','l','o','!'};B)char b[10];b="Hello!";C)char b[10];strcpy(b,"Hello!");D)char b[10]="Hello!";17、设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)18、请选出以下语句的输出结果: Aprintf("%d\n",strlen("\t\"\065\xff\n"));A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出(19)假定所有变量均已正确说明,下列程序段运行后x的值是: Ba=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4;A)34 B)4 C)35 D)3(第四章if语句)(20) 运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为: CA) 2,0 B) 5,0 C) 5,5 D) 2,5#include<stdio,h>main(){ int v1=0,v2=0;char ch;while((ch=getchar())!='#')switch(ch){ case 'a';case 'h';default; v1++;case '0'; v2++;}printf("%d,%d\n",v1,v2);}(第四章switch语句)(21) 执行以下程序段时: AA) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误x=-1;do {x=x*x; } while(! x);(第五章do_whule语句)(22)执行下面的程序后,a的值为: Bmain(){ int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7 B)8C)9 D)10(第5章break,continue 语句)23) 下面能正确进行字符串赋值操作的语句是: CA) char s[5]={"ABCDE"}; B) char s[5]={'A','B','C','D','E'};C) char *s;s="ABCDEF"; D) char *s; scanf("%s",s);(第6章字符数组的定义;第9章字符串指针)(24)不能把字符串:Hello!赋给数组b的语句是: BA)char b[10]={'H','e','l','l','o','!'};B)char b[10];b="Hello!";C)char b[10];strcpy(b,"Hello!");D)char b[10]="Hello!";(第6章字符数组的使用)(25)函数调用:strcat(strcpy(str1,str2),str3)的功能是: CA)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中(第6章字符串处理函数)(26)给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为: CA) 数组X和数组Y等价B) 数组x和数组Y的长度相同C) 数组X的长度大于数组Y的长度D) 数组X的长度小于数组Y的长度(第6章字符数组的定义)(27)以下程序的输出结果是: DA)AfghdEFG B)Abfhd C)Afghd D)Afgd#includemain( ){ char *p1,*p2,str[50]="ABCDEFG";p1="abcd";p2="efgh";strcpy(str+1,p2+1);strcpy(str+3,p1+3);printf("%s",str);}(第6章字符串处理函数;第9章字符串指针)(28)下面哪个程序段编译会出错: DA) max(int x,int y,int *z) B) max(int x, int y){ *z=x>y?x:y;} {return x>y?x:y;}C) max(int x,int y) D) int max(int x, y){ int z; { int zz=x>y?x:y; z=x>y?x:y;return z;} return z;}(29)下列程序执行后输出的结果是: D#include 〈stdio.h〉f(int a){ int b=0;static c=3:a=c+ +,b+ +;returu(a);}main( ){ int a=2,i,k;for(i=0;i<2;i+ +)k=f(a+ +);printf("%d\n",k);}A)3 B)0 C)5 D)4(第7章静态变量)(30)下列程序执行后输出的结果是: Aint d=1;fun (int q){ int d=5;d + =q+ +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d);}A)8 4 B)9 6 C)9 4 D)8 5(第7章函数调用;第3章复合赋值运算符)(31)以下程序的输出结果是: Dmain(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A)10 10 B)9 9C)9 10 D)10 9(第7章函数调用时,参数结合方式:右结合)(32)有以下程序int fun(int x , int y , int *cp , int *dp){ *cp=x+y; *dp=x-y; }main(){ int a, b, c, d;a=30; b=50;fun(a,b,&c,&d);printf("%d,%d\n", c, d);}输出结果是: CA)50,30 B)30,50 C)80,-20 D)80,20(第7章函数调用;第9章指针变量做参数)(33)执行下面的程序后,a的值是: B#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}A)10 B)1 C)9 D)0(第8章带参宏定义)(34) 以下有关宏替换的叙述不正确的是: DA) 宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符替换 D)宏名必须用大写字母表示(第8章宏定义)(35)C语言的编译系统对宏命令的处理是: DA) 在程序运行时进行的B) 在程序连接时进行的C) 和C程序中的其它语句同时进行编译的D) 在对源程序中其它成份正式编译之前进行的(第8章宏定义运行特点)(36)若有宏定义如下:#define X 5#define Y X+1#define Z Y * X / 2则执行以下printf语句后,输出结果是: Dint a; a=Y;Printf("%d\n", Z);Printf("%d\n", - - a);A) 7 B) 12 C) 12 D) 76 6 5 5(第7章函数调用;第8章带参宏定义)37、若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是: DA) &t[3][2]B) t[3][2] C) t[1][0] D) t[2]+138、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是: CA)1 B)2C)2.0 D)2.539、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是: CA)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;40、C语言的编译系统对宏命令的处理是: DA) 在程序运行时进行的B) 在程序连接时进行的C) 和C程序中的其它语句同时进行编译的D) 在对源程序中其它成份正式编译之前进行的(41)请读程序:#define ADD(x) x+xmain(){int m=1, n=2, k=3;int sum=ADD(m+n) * k;printf("sum=%d", sum);}上面程序的运行结果是: BA) sum=9 B) sum=10 C) sum=12 D) sum=18(第8章带参宏定义)(42)在宏定义 #define PI 3.14159中,用宏名PI代替一个: DA) 常量 B)单精度数 C)双精度数 D)字符串(第8章宏定义)(43)设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)(第9章数组指针与指向主组的指针)44、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假“的表达式是___C____。

C语言复习题及答案

C语言复习题及答案

复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个? ( )A)int B)char C)long D)float2、若x 为unsigned int 型变量,则执行下列语句后x值为()x = 65535;printf(“%d\n”,x);A)65535 B)1 C)无定值D)-13、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);}程序运行后的输出结果是()A)0,0 B)0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型,则输出的结果是()。

sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是()。

main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0的数D)-16、当执行以下程序段时()。

x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为()。

A)auto或static B)extern或registerC)auto或extern D)extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是()。

A)auto B)registerC)extern D)static9、已知:int a, x; 则正确的赋值语句是()。

A)a=(a[1]+a{2})/2; B)a*=*a+1; C)a=(x=1, x++, x+2); D)a="good";10、已知:int a, *p=&a; 则下列函数调用中错误的是()。

C复习题

C复习题

一、填空题(每空2 分,共 20 分)1.数据结构分为逻辑结构与()。

2.在面向对象方法中,对象之间进行通信的构造称为()。

3.衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,其()是度量一个模块功能强度的一个相对指标。

4.一名学生只能住一间宿舍,一间宿舍可住多名学生,则实体“宿舍”与实体“学生”的联系属于()的联系。

5.数据模型包括数据结构、()和数据条件。

6.若有定义:int a=10,b=8,c=4;然后顺序执行下列语句后,变量a中的值是()。

c=(b-=(a-4));a=(c%2)+(b-1);1.C语言中,用关键字()定义基本整型变量,用关键字(),定义单精度实型变量,用关键字()定义字符型变量。

2.表达式3*20/4%10的计算结果是()。

3.复合语句是将多个语句用()括起来组成一个语句。

4.程序中使用putchar( )函数和getchar( )函数,在程序的开头必()。

5.C语言的预处理语句以()开头。

6.goto语句为(),当程序执行到该语句时,转向指定位置执行。

7.return语句的功能是使程序控制从被调用函数返回到()中。

1.一个算法应具有的特点有:()、()、有零个或多个输入、有一个或多个输出、有效性。

2.在程序执行过程中,其值不发生改变的量称为(),其值可变的量称为()。

3.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是()。

4.在三种正规循环中,当条件表达式的值为()时,就结束循环。

5.C语言中函数的参数分为()和()。

1.程序的三种基本结构为()、()和()。

2.在C语言中,用()表示语句的结束。

3.语句printf("%%d%d",123);将输出:()。

4.逻辑运算的结果值是()或()。

5.数组 int a[3][4];共定义了()个数组元素。

6.在C语言中,正确的标识符是由()组成的,且由()开头的。

大学物理c 复习题

大学物理c 复习题

大 学 物 理 C 复 习 题一、选择题:1、以下四种运动形式中,a 保持不变的运动为[ D ] (A) 单摆的运动 (B) 匀速圆周运动 (C) 变加直线运动 (D) 抛体运动2、在经典力学中,下列哪个说法是错误的[ D ](A) 质点的位置、速度、加速度都是矢量 (B) 刚体定轴转动的转动惯量是标量 (C) 质点运动的总机械能是标量 (D) 刚体转动的角速度是标量3、一均匀的细圆环质量为m ,半径为R ,对过环中心且与环面垂直的轴转动的惯量为[ A ] (A) 2/2mR (B) 4/2mR (C) 2mR (D) 必须用实验才能测定 4、当质点以频率ν,作简谐振动时,它的动能变化频率为 [ B ] (A) ν (B) 2ν (C) 4ν (D)ν215、如图一所示,一简谐振动曲线如图所示,则振动周期试[B ] (A) 2.62s (B) 2.40s (C) 2.20s (D) 2.00s6、弹簧振子做简谐振动时如果振幅增为原来的两倍,而频率减少为原来的一半,他的总能量[ B ](A) 减少为原来的一半; (B) 不变;(C) 增为原来的两倍; (D) 增为原来的四倍; 7、根据电场强度的定义式 E =F /q 可知:[ C ] (A) E 正比于F ,反比于q 。

(B) 如果电场中某一点处没有试验电荷,则该点的电场强度就等于零。

(C) 和试验电荷的有无没有任何关系。

8、静电场的环路定理0=⋅⎰Ll d E 说明静电场的性质 [ B ](A) 电场线不是闭合曲线 (B) 电场力是保守力 (C) 静电场是有源场9、当机械振动在弹性介质中传播时,组成弹性介质的每一个质点:[ B ] (A) 和振动状态的传播一起流动。

(B) 只在各自的平衡位置附近作振动。

(C) 边流动边振动10、利用惠更斯原理可以确定: [ A ](A) 任意时刻波的传播方向。

(B) 沿任意方向传播的光的强度。

(C) 沿任意方向传播的光的能量。

大学C语言复习题_附答案

大学C语言复习题_附答案

(A)字节 (B)位 (C)字 (D)记录 12. 因特网中某主机的二级域名为“edu” ,表示该主机属于______。C (A)赢利性商业机构 (B)军事机构 (C)教育机构 (D)非军事性政府组织机构 13. 下列字符中,其 ASCII 码值最大的是______。D (A)9 (B)D (C)a (D)y 14. 语句 printf(“%%d%d”, 123); 将输出: A、%123%d B、%%d123 √C、%d123 D、上述语句语法有错 15. 对于 int x, y; 语句 if (x<0) y= -1; else if (!x) y=0; else y=1; 等价于: A、 y=0; if (x>=0) if (x) y=1; else y= -1; √B、 if (x!=0) if (x>0) y=1; else y= -1; else y=0; C、 if (x<0) y= -1; if (x!=0) y=1; else y=0; D、 y= -1; if (x!=0) if (x>0) y=1; else y=0; 16. 语句 if (a>b) k=0; else k=1;等价于: A、k=(a>b)?1:0; B、k=a>b; √C、k=a<=b; D、以上均不是 17. 执行下列程序段: int i, j; i = 3/2 + 7/2 == 5; j = 45 % 11 + (((7>8) ? 14:21) == 14); 后变量 i,j 的值应为: √A、i=0 j=1 B、i=1 j=1 C、i=0 j=2 D、i=1 j=2 18. 如果 int i=16, j=23 ; 执行 printf("%x--%o",i, j)后输出为: A、10—23 √B、10--27 C、16--23 D、16—27 19. 若 x 是 double 型变量,n 是 int 型变量,执行 ,并输入 3 1.25 后,x=1.25, n=3。 √A、scanf("%d%lf", &n, &x); B、scanf("%lf%d", &x, &n); C、scanf("%lf%d", &n, &x); D、scanf("%d,%lf", &n, &x); 20. 若变量已经被正确定义,为表示“变量 x 和 y 都能被 3 整除” ,应使用的 C 表达式 是 。 A、(x%3 != 0) || (y%3 != 0) B、(x%3 != 0) && (y%3 != 0) C、(x%3 == 0) || (y%3 == 0) √D、(x%3 == 0) && (y%3 == 0) 21. while( ) 等价于 while(x)。 A、x == 0 √B、x != 0 C、x == 1 D、x != 1 22. 下列程序段的输出结果是 。 int count = 0, x, y, z; for(x = 1; x <= 2; x++) for(y = 1; y <= 3; y++) for(z = 1; z <= 4; z++) count++; printf("%d", count); A、10 B、9 √C、24 D、0 23. 判断变量 ch 是英文字母的表达式为 。 A、( 'a' <= ch <= 'z') || ( 'A' <= ch <= 'Z')

C语言考试复习题

C语言考试复习题

11.如下定义“char c1=’a’, c2=’b’, c3=c1-c2;”后执行printf(“%d”,c3);结果为无任何显示。( )
12.可以有如下定义:“int a=b=c=0;”。( )
13.执行“int x=4, y=5; float z=x/y;”后,z的值为0.8。( )
A.0 B. C. 2 D. -1
20. 下列程序执行后的输出结果是( )。
A. G B. H C. I D. J
main ( )
{ int x=’f’;printf(“%c\n”,’A’+(x-‘a’+1));}
21. 下列程序执行后的输出结果是( )。
printf(“%d\n”,d*y); }
18. 下列变量定义中合法的是( )。
A.short _a=.1e-1; B. double b=1+5e2.5;
C. long do=0xfdaL; D. float 2_and=1-e-3;
19. 设“int x=1,y=1;“,表达式(!x||y--)值是( )。
3. 字符型常量在内存中存放的是( )。
A.ASCII码 B. BCD码 C. 内部码 D. 十进制码
4. 若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。
A. a==1 B. ++i; C. a=a++=5; D. a=int(i);
A.复数型 B. 逻辑型 C. 双精度型 D. 集合型
15.在C语言中,不正确的int类型的常数是( )。
A.32768 B. 0 C. o37 D. oxAF
16. 当c的值为0时,在下列选项中能正确将c的值赋给变量a,b的是( )。

C语言 复习题

C语言 复习题

山东理工大学成人高等教育 C语言复习题一、判断正误( )1.main函数必须位于整个C语言程序的开头.()2.在C语言程序中不能使用二进制整数。

()3.’\101’和'\n’都代表单个字符。

()4.C语言程序中的变量必须先定义后使用。

( ) 5.a=3是一个赋值表达式。

( ) 6.一个函数可以有多个返回值。

() 7.一个数组名实际上是代表一个地址.( )8.C语言中不区分字母的大小写。

()9.'a’和'\n’都是字符型常量.( )10.5%3的结果是2。

( )11.在C语言中表示逻辑运算结果时,以1表示真,以0表示假。

()12.计算字符串长度时,'\0’不包括在内.( )13.在一条if-else语句中,若if和else之间有多条语句,则必须用花括号括起来。

( )14.一个数组的所有元素具有相同的数据类型。

二、填空1.C语言的标识符只能由字母、和组成。

2.用于从循环体中跳出的语句是语句。

3.一个函数是由和两部分组成的.4.用双引号括起来的若干个字符称为常量。

5.有符号整数在内存中是以二进制码形式存储的。

6.若有int n=3.96;则n的结果为.7.若有int a=5;则printf(“%d",++a);的结果为。

8.若有char s[10]=”abcd1234";则strlen(s)的结果为。

9.C语言程序的基本组成单位是,C程序的执行总是从函数开始。

10.表达式10!=9的值是;若a=3,b=5,则表达式a&&!b的值是11.若x=10,y=5,则x>y?2:3的结果为。

12.已知字母A的ASCII码为十进制数65,且c为字符型,则执行语句c=’A'+3;后,c 中的值为_______;若有说明语句:char c=’\172';则变量c包含个字符。

13.若有说明:int i,j=7,*p=&i;,执行i=j;语句后*p的值为 .三、写出下列程序的运行结果1.main() 运行结果为:{int f[6]={1,2,3,4,5,6},i;for(i=5;i〉=0;i-—)printf(”%d\n”,f[i]);}2.main()运行结果为:{int f[5],i;for(i=0;i〈=4;i++){f[i]=i*i;printf("%d\n”,f[i]);}}3.下面程序的输出结果是#include <stdio。

C复习题(全部答案)

C复习题(全部答案)

C复习题(全部答案)一、C++基础、变量、常量部分试题:(一)单选题8.由C++语言编写的代码程序()A.可直接执行(.e某e才可以直接执行)B.是一个源程序C.经过编译即可执行(经过编译链接才可以执行)9.按照C++语言规定的用户标识符命名规则,不能出现在标识符中的是()A.大写字母10.下列选项中,不能用作标识符的是()A._1234_11.以下选项中合法的用户标识符是()A.long(关键字)12.以下不能定义为用户标识符的是()A.Main13.列定义变量的语句错误的是()A.int_int;14.在C++语言中,非法的字符常量是()A.‘\\t’29.以下程序的输出结果是()voidmain(){intk=11;cout<A.k=11,k=12,k=1141.B.k=11,k=13,k=13D.k=11,k=13,k=bC.k=11,k=013,k=0某bB.‘\\017’C.\D.‘\\某aa’B.doubleint_;C.charFor;D.floatUSA;B._0C._intD.izeof(运算符)B._2TetC.3Dma某D.A.datB._1_2C.int_2_D.2_intB.中划线C.数字字符D.下划线D.经过编译解释才能执行不属于C++语言关键字的是()。

A.intB.breakC.whileD.character42.是C++语言提供的合法关键字的是()。

A.FloatB.ignedC.integerD.Char43.下列说法中,错误的是()。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数(二)填空题1.一个C++源程序至少有并且只能有一个main(主)函数。

c语言基础习题、复习题(含答案)

c语言基础习题、复习题(含答案)

c语言基础习题、复习题(含答案)《C语言设计》复习题一选择题1、以下说法中正确的是(C )。

C语言程序总是从main()函数开始执行2、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是___C___.C. 2.03、以下叙述正确的是(D )。

D. 用do…while语句构成循环时,在while后的表达式为零时结束循环4、C程序是( B)B. 从Main函数开始5、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为__C____。

C. 326、设int b=2;表达式b/(b*2)的值是___A_____.A. 07、表示关系X<=Y<=Z的C语言表达式为__A___.A. (X < =Y)&&(Y < =Z)8、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是BB. x=20,y=30,z=309、设A=3,B=4,执行printf("%d,%d",(A,B),(B,A));的输出是___B___.B. 4,310、下面判断正确的是CC. char *s="china";等价于char *s;s="china";11、若有说明:int a[10];,则对a数组元素的正确引用是(D )。

D. a[10-10]12、在C语言中,int、char和short三种类型数据在内存中所占用的字节数DD. 由所用机器的机器字长决定13、C语言规定,函数返回值的类型是由DD. 在定义该函数时所指定的函数类型所决定14、与y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是AA. if(x > 0) y=1; else if(x < 0) y=-1; else y=015、执行语句:for(i=1;i++ < 4;)后;变量i的值是(C )C. 516、语句while(!E);中的表达式!E等价于_____A__A. E==017、假定a和b为int型变量,则执行以下语句后b的值为DD. -418、对以下说明语句的正确理解是____B____int a[10]={6,7,8,9,10};B. 将5个初值依次赋给a[0]至a[4]19、以下不能对二维数组a进行正确初始化的语句是CC. int a[2][3]={{1,2},{3,4},{5,6}}; 20、在C语言中,一维数组的定义方式为:类型说明符数组名___D______D. [整型常量]21、下列说法中正确的是_D___。

重庆理工大学c语言上机考试复习题 (1)

重庆理工大学c语言上机考试复习题 (1)

1、根据公式e=1+1/(1!)+1/(2!)+1/(3!)+……。

求e 的近似值,精度要求为10-6。

2、读入10个数,计算它们的和、积、平方和及和的平方。

3、计算并输出1!,2!,3!,4!,……,35!。

4、输入20个数,统计其中正、负和零的个数。

5、利用公式:)12)(12()2(......756653443*12222+-⨯⨯⨯⨯⨯⨯⨯⨯⨯=n n n π计算π的值(取前100项)。

6、利用公式:)12(1)1(......9171513114+⨯-++-+-=n n π计算π的值(省略的项都<10-5)。

7、编程计算0*1+2*3+4*5+……+100*101+101*102之和。

8、编程计算5/6+6/7+7/8+……+99/100+5!+6!+7!之和。

9、编程计算1!-2!+3!-4!+5!-6!之和。

10、编程计算1/(1+2)+2/(2+3)+3/(3+4)+……100/(100+101)之和。

11、编程计算(0+1)/1+(2+3)/3+(3+4)/4+……(99+100)/100之和。

12、求100 ~ 200中能被3或7整除的自然数。

13、统计77到210中偶数的个数。

14、统计7到91中能被3整除的奇数的个数。

15、7到91中有多少能既能被2又能被3整除的数。

16、显示7到100中所有不能被5整除的数,要求每行显示5个数。

17、找出1000之内的所有完数(完数是指:该数的各因子之和正好等于该数本身,例如:6的因子是1,2,3,而6 = 1+2+3,故6是完数)。

18、求2~1000中的所有亲密数对(亲密数对是指:如果a 的因子和等于b ,b 的因子和等于a ,则(a ,b )就是亲密数对)。

19、100元钱买100只鸡,已知公鸡3元1只,母鸡1元1只,小鸡1元3只,编程输出总的方案数以及每种方案中公鸡、母鸡、小鸡的数量。

20、100匹马驮100担货,大马驮3担,中马驮2担,小马驮0.5担,编程求大、中、小马的数量。

大学C语言期末考试题库试题及答案汇总-填空 复习题

大学C语言期末考试题库试题及答案汇总-填空 复习题

大学C语言期末考试题库试题及答案汇总-填空复习题1.以下程序的输出结果是______。

main(){ int a=0;a+=(a=8);printf("%d\n",a);}答案:16知识点:赋值表达式2.若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。

c=(a-=(b-5));c=(a % 11)+(b=3);答案:3知识点:赋值表达式3.以下程序运行后的了输出结果是______。

main(){ int a=1,b=2,c=3;if(c=a) printf("%d\n",c);else printf("%d\n",b);}答案:1知识点:赋值表达式4.若有语句int i=-19, j=i%4;printf("%d\n",j);则输出结果是______。

答案:-3知识点:算术表达式7.设y 是int型变量,请写出判断y为奇数的关系表达式______。

答案:y%2知识点:算术表达式12.下面程序的输出是______。

main(){ int x=2;while(x--);printf("%d\n", x);}答案:-1知识点:自加、自减运算符和逗号运算符19.以下程序的输出结果是______。

void fun(){ static int a=0;a+=2; printf("%d",a);}main(){ int cc;for(cc=1;cc<4;cc++) fun();printf("\n")}答案:246知识点:函数的调用21.若有以下程序int f(int x,int y){ return(y-x)*x; }main(){ int a=3,b=4,c=5,d;d=f(f(3,4),f(3,5));printf("%d\n",d);}执行后输出结果是______。

c语言复习题

c语言复习题
C)变量x的地址D)变量x的值
44.以下数组的定义形式正确的是()。
A)int k=5,a[k]; B)int a[ ]; C)char c[]={'a'}; D)char a(10);
45.以下一维数组的定义及初始化中,错误的是()。
A)int a[3]={0}; B)int a[3]={1,1,1};
21. A 22. D 23. B 24. C 25. C 26. B 27. B 28. A 29. D 30. A
31. C 32. A 33. B 34. A 35. C 36. D 37. B 38. D 39. A 40. C
41. B 42. D 43. C 44. C 45. D 46. D 47. D 48. C 49. D 50. C
51. A 52. B 53. B 54. A 55. C 56. A 57. B 58. A 59. B 60. C
61. D 62. C 63. C 64. A 65. B 66. C
1.下列关于C程序的说法错误的是()。
A)一个程序必须有一个main函数B)函数首部后面必须有分号
C)可以使用“/* */”来注释一段代码D)每个语句的末尾必须有分号
{ x=10; y=20; }
void main( )
{ int a=1, b=2;
fun(a, b);
printf("%d, %d\n", a,b);
}
A)1,2 B)10,20 C)10,2 D)1,20
40.执行函数调用“fun('5')”得到的返回值为()。
int fun(char ch)
{ return(ch>='0'&&ch<='9'); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++复习题一、简答题1.在c++中,内联函数中不能使用什么语句?答:不允许使用循环语句和分支语句2.在c++中,封装可以由那几个关键字提供控制方式?分别作用是什么?答:在类定义体里,使用了private、protected、public三个关键字是用来说明数据成员和函数成员的访问权限。

public说明公有成员,该类成员都可以通过对象被访问的。

private说明私有成员,该类成员只能被自己的成员函数或友元访问;protected说明保护型的成员,可以被自己的成员函数或友元访问,也可以被派生类的函数成员访问;3.由于二义性原因,一个类如何防止从一个类中重复继承?答:①通过使用作用运算符“::”明确指出访问的是哪个基类中的成员;②在类中定义同名成员;③虚基类(virtual 继承方式基类名)4.在c++中,如果在多条继承路径有一个公共的基类,如果想使这个公共的基类只产生一个拷贝,则如何处理这个基类?用什么关键字?答:将这个公共基类说明为虚基类,用virtual 关键字5.简单成员函数是指声明中不含有什么关键字的函数?(关注存储类型)答:简单成员函数是指存储类型为auto型。

static,extern,register6.静态成员的特点?答:静态成员的特点是:不管这个类创建多少个对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象所共享。

7.当访问私有静态数据成员时,可通过什么来访问?答:在类外,私有静态数据成员不能直接访问,必须通过公有的成员函数访问。

8.有关继承,静态成员是否可以被继承?可以。

友元是否可以被继承?不可以构造函数是否可以被继承?不可以9.c++不允许重载什么运算符?答:成员访问运算符.;作用域运算符∷;条件运算符?:;成员指针运算符*;长度运算符sizeof()10.那些运算符只能用类运算符来重载?答:= () [] * 这四个只能用类重载11.c++提供格式宽度控制方式有哪几种?关键字是?答1.int width(int val) int width( ) int ios::width(int n) 2.setw(int n) ????12.十进制数0.1的二进制表示是什么?答:(0.1)10= (0.000110011...)2,它是无限循环小数。

也就是说,十进制数0.1无法精确用二进制表示!13.简述程序设计的步骤。

答:程序设计一般遵循以下步骤:明确问题;系统设计;用某种语言进行编程;测试与调试;运行与维护14.简述编译与解释的区别。

答:编译是指把高级语言程序首先翻译成功能上等价的机器语言程序或汇编语言程序,然后执行目标代码程序,在目标代码程序的执行中不再需要源程序。

解释则是指对源程序中的语句进行逐条翻译并执行,翻译完了程序也就执行完了,这种翻译方式不产生目标程序。

一般来说,编译执行比解释执行效率要高15.简述C++程序的编译执行过程答:编译过程主要分为4个阶段:编译预处理;编译、优化阶段;汇编过程;链接程序(?)16.下面哪一些是合法的C++字面常量,它们的类型是什么?-5.23, 1e+50, -25, 105, 20.20, e5, 1e-5, -0.0e5, '\n'-000, 'A', '5', '3.14', falsered, '\r', '\f' "Today is Monday.", "\""答:字面常量是指在程序中直接写出常量值的常量。

-5.23, 1e+50,-25, 20 ,.20, 1e-5, -0.0e5, '\n', -000, 'A', '5', '\r', '\f' , "Today is Monday.", "\""都是字面常量。

其中:整数类型常量:-25, 20, -000实数类型常量:-5.23, 1e+50 , .20, 1e-5, -0.0e5字符常量: '\n', 'A', '5', '\r', '\f'字符串常量:"Today is Monday.", "\""17.什么是符号常量?符号常量的优点是什么?答:符号常量是指有名字的常量,在程序中通过常量的名字来使用这些常量。

程序中使用符号常量有以下优点:(1)增加程序易读性;(2)提高程序对常量使用的一致性;(3)增强程序的易维护性18.如何理解变量?变量定义和声明的作用是什么答:值可以改变的量叫变量,可变的数据.使用变量前,C++要对变量做声明19.指针类型主要用于什么场合?引用类型与指针类型相比,其优势在哪里?答:指针类型主要用于参数传递和对动态变量的访问。

在C++中,指针类型还用于访问数组元素,以提高访问效率。

引用类型与指针类型都可以实现通过一个变量访问另一个变量,但访问的语法形式不同:引用是采用直接访问形式,指针则采用间接访问形式。

在作为函数参数类型时,引用类型参数的实参是一个变量,而指针类型参数的实参是一个变量的地址。

除了在定义时指定的被引用变量外,引用类型变量不能再引用其他变量;而指针变量定义后可以指向其他同类型的变量。

因此,引用类型比指针类型要安全。

20.const int * p1 和 int * const p2的区别是什么?答:const int * p1 是指向常量的指针,指针指向一个常量,无需初始化,指针本身可以改变,但是指针指向的值不能改变。

int * const p2是指向常量的引用,使用时必须初始化,而且初始化后,引用值不可以改变,引用的常量也不能改变。

21.表达式中的类型转换规则是什么?下面的表达式计算时如何进行操作数类型转换? (1)3/5*12.3 (2)'a'+10*5.2 (3)12U+3.0F*24L表达式中类型转换规则是:基于单个操作符依次进行转换。

1)3 与 5 同类型,不转换,结果为 0,转换成double 型后与 12.3 做乘法。

2)10 转换成double 型与 5.2 做乘法,’a ’转换成double 型后与前者结果做加法。

22.将下列公式表示成C++的表达式:(1)aac b b 242-+- (可利用C++标准库中的求平方根的函数:sqrt(x))(-1*b+sqrt(b*b-4*a*c))/(2*a)(2)))()((c s b s a s s --- :sqrt(s*(s-a)*(s-b)*(s-c))(3)345.2133r cb dc b a ⋅⋅+++⋅⋅⋅π((a*b)/(c*d))*(3/(1+(b/(2.5+c))))+(4*pi*r*r*r/3)23.派生类构造函数执行的次序是怎样的?答:派生类构造函数执行的一般次序为:调用基类构造函数;调用成员对象的构造函数;派生类的构造函数体中的内容。

24.如果在派生类B 已经重载了基类A 的什么叫做多态性 ?在C++中是如何实现多态的?答:多态是指同样的消息被不同类型的对象接收时导致完全不同的行为,是对类的特定成员函数的再抽象。

C++支持的多态有多种类型,重载(包括函数重载和运算符重载)和虚函数是其中主要的方式。

25.一个成员函数fn1(),没有重载成员函数fn2(),如何调用基类的成员函数fn1()、fn2()?答:A::fn1(); fn2();26.如果类A 是类B 的友元,类B 是类C 的友元,类D是类A 的派生类,那么类B 是类A 的友元吗?类C 是类A 的友元吗?类D 是类B 的友元吗?答:类B 不是类A 的友元,类C 不是类A 的友元,类D 不是类B 的友元二、选择题1. 下列的各类函数中, C 不是类的成员函数。

A) 构造函数 B) 析构函数C) 友元函数 D) 拷贝初始化构造函数 2.作用域运算符“::”的功能是 D 。

A) 标识作用域的级别的 B) 指出作用域的范围的C) 给定作用域的大小的D) 标识成员是属于哪个类的3. A 是析构函数的特征。

A) 一个类中只能定义一个析构函数B) 析构函数名与类名不同C) 析构函数的定义只能在类体内 D) 析构函数可以有一个或多个参数4下述静态数据成员的特性中, D 是错误的。

A) 说明静态数据成员时前边要加修饰符static B) 静态数据成员要在类体外进行初始化C) 引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符D) 静态数据成员不是所有对象所共用的 5. 友元关系不能 CA) 是类是与类的关系B) 是一个类成员函数与另一个类的关系C) 继承 D) 提高程序的运行效率6.下列关于对象数组的描述中, D 是错的。

A) 对象数组的下标是从0开始的B) 对象数组的数组名是一个常量指针C) 对象数组的每个元素是同一个类的对象D) 对象数组只能赋初值,而不能被赋值7. 下列说明中const char *ptr; ptr应该是 CA) 指向字符常量的指针B) 指向字符的常量指针C) 指向字符串常量的指针D) 指向字符串的常量指针8. 已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,A是正确的。

A) void print()const; B) const void print();C) void const print():D) void print(const);9. 关于new运算符的下列描述中,D是错的。

A) 它可以用来动态创建对象和对象数组B) 使用它创建的对象或对象数组可以使用运算符delete 删除C) 使用它创建对象时要调用构造函数D) 使用它创建对象数组时必须指定初始值10. 下列对派生类的描述中,D是错的A) 一个派生类可以作另一派生类的基类B) 派生类至少有一个基类C) 派生类的成员除了它自己的成员外,还包含了它的基类的成员D) 派生类中继承的基类成员的访问权限到派生类中保持不变11. 派生类的构造函数的成员初始化列表中,不能包含 DA) 基类的构造函数B) 派生类中子对象的初始化C) 派生类中一般数据成员的初始化D) 基类的子对象初始化12. 设置虚基类的目的是BA) 简化程序B) 消除二义性C) 提高运行效率D) 减少目标代码13. 下列函数中,C不能重载A) 成员函数B) 非成员函数C) 析构函数D) 构造函数注:重载函数:同名不同参(个数、类型、顺序)14. 关于动态联编的下列描述中D 是错误的A) 动态联编是以虚函数为基础的B) 动态联编是在运行时确定所调用的函数代码的C) 动态联编调用函数操作是指向对象的指针或对象引用D) 动态联编是在编译时确定操作函数的15. 关于虚函数的描述中,D是正确的A) 虚函数是一个static类型的成员函数B) 虚函数是一个非成员函数C) 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D) 派生类的虚函数与基类的虚函数具有不同的参数个数和类型16. 下列描述中,D是抽象类的特性A) 可以说明虚函数B) 可以进行构造函数重载C) 可以定义友元函数D) 不能说明其对象17. 在类定义的外部,可以被访问的成员有CA) 所有类成员B) private的类成员C) public的类成员D) public或private的类成员18.下面对构造函数的不正确描述是BA) 系统可以提供默认的构造函数B) 构造函数可以有参数,所以可以有返回值没有C) 构造函数可以重载D) 构造函数可以设置默认参数19. 在创建派生类对象时,构造函数的执行顺序是DA) 对象成员构造函数、基类构造函数、派生类本身的构造函数B) 派生类本身的构造函数、基类构造函数、对象成员构造函数C) 基类构造函数、派生类本身的构造函数、对象成员构造函数D) 基类构造函数、对象成员构造函数、派生类本身的构造函数20. 在C++中,要实现动态联编,必须使用D调用虚函数A) 类名B) 派生类指针C) 对象名D) 基类指针三、运行结果1.在你的计算机上运行下面的程序:#include <iostream>using namespace std;int main(){ double a=3.3, b=1.1;int i=a/b;cout << i << endl;return 0;}结果与你预期的是否相符?如果不符,请解释它的原因结果为 2。

相关文档
最新文档