计算机重修班练习题

更新时间:2024-03-15 12:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 练 习 题

一、选择题

1、下列符号中,能用作VC++标识符的是________。 A. If B. double C. a$$ D. char

2、设CH为字符型变量,则语句CH= CH+’d’-’D’;的作用可能是________。 A. 将大写字母转换成对应的小写字母 B.将字母CH转换成d C. 将小写字母转换成对应的大写字母 D.将字母CH转换成D 3、下列正确的C++常量为_________。 A.’\\58’ B.“ab”12” C.1.5e5.0 D.0xABCL

4、设有说明语句:int a=7,b=12,e;以下表达式选项中,e的值为2的是_____。 A. e=b%=(a-a%5) B. e=b%=(a%=5) C. e=b%=b+1-a%5 D. e=(b%=a-a%=5)

5、设变量a,b,c为整型变量,以下选项中存在语法错误的是__________。

A.c=a++ +b B. c=a+b++ C. c=b++=c++ D.c=++a=b++

6、设有说明int x=1,y=1,z=1,c;执行语句c= --x&&--y|| !z--;后,x、y、z的值分别为_________。

A.0、1、1 B.0、1、0 C.1、0、1 D.0、0、1 7、若有以下定义和语句组,int a=-1,b=4,k;k=(a++<0)&&(!(b--<=0));

cout<<“a=”<

9、设有说明int a, b;执行语句b=(a=2*5,a*2),a+15;之后,b的值为__________。

A.10 B.25 C.20 D.35 10、以下选项中存在语法错误的是__________。

A. float x, &j=x; B. int c,&d=c,&e=d; C. char b, &k=b; D. int f, &g; g=f;

11、设有变量定义int x=8,n,*p1=&x,*p2;则下列表达式正确的是__________。

A.p2=&p1 B.*p2=*p1 C.p2=p1 D.n=*p2

12、若有定义enum week{ sun,mon,tue,wed,thu,fri,sat} day1,day2=wed;则下列对变

量操作不正确的是__________。

A.cin>>day1; B. day1=day2 C. day2==day1 D. cout<

二、填空题

1、写出下列程序的运行结果为第一行_______,第二行_______,第三行为_______。 #include \void main (void) { cout <<\<

2、已知 int i,a=3,b=2;求表达式i=(--a==b++);的值及a和b的值。

3、sizeof('a')值为______,sizeof('a'+3)值为______,sizeof( 'a' + 'b')值为______。 4、设有下列语句: int i=17; cin>>hex>>i; cout<<“i=”<

5、已知有变量a的值为9,计算表达式a+=a-=a+a的值是_______。

三、编写程序

1、编写程序,从键盘输入一个两位数的正整数,输出它的十位数与个位数。 2、编写程序,从键盘输入三个实数,输出它们的平方和与平均值。

第一章 练习题答案

选择题:

1、A 2、A 3、D 4、A 5、C 6、B 7、A 8、B 9、C 10、D 11、C 12、A 填空题: 1、m n 'x Sw

2、i=1,a=2,b=3 3、1,4,4

4、i = 23,i=16 5、-18 编程题 1、答案:

#include void main (void){ int n; cout <<\请从键盘输入一个两位正整数:\<>n; cout <<\这个数的十位数是:\<

2、答案:

#include using namespace std; void main (void){ float a,b,c; cout <<\请从键盘输入三个实数:\<>a>>b>>c; cout <<\这三个实数的平方和是:\<<(a*a+b*b+c*c)<

第二章 练 习 题

一、选择题

1、关于下面程序段的正确说法是 ________。

int n=0,s=0;

while(!n!=0) s+=++n;

cout<

A.执行结果是0 B.执行结果是1 C.程序段中控制表达式是非法的 D.程序段执行无限次 2、已知int a, b, c; a=b=c=5;则计算b+=++a>b&&++c>b后a,b和c的值分别是________。 A.6 6 6 B. 5 6 6 C. 6 5 6 D.6 5 5 3、int a=5,b=7,c=15,d;则经过下列表达d=b>a||(c=a+b);运算后,d和c的值是________。 A.0 12 B. 1 12 C. 1 15 D. 1 12

4、设有说明“int a,b;”,执行语句“b=(a=3*5,a*4),a+15”之后,b的值为 ________。

A 15 B 30 C 60 D 90 5、下列C++整型常量正确的有:________。

A.038 B.0XA1L C.0xBH D.097

6、执行下列程序段后,a的值是:________。 int a=0; if(a>0) a++;

else if(!(a<4))

if(a<3) a+=3; else a+=4; else a+=5;

A.2 B.3 C.4 D.5 7、以下程序的运行结果 ________。 #include void 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: b++; break; a++; } cout<

A.1,0 B.0,1 C. 0,0 D.1,1

8、若输入字符串“ABC”,下面程序段的输出是________。 char c; while(cin>>c, c!='\\n') cout<

A.222 B.CDE C.676869 D.333 9、对于如下程序段,执行后输出为 ________。 for( int i=0 ; ; ){ if( i% 2==0) { cout<

if(i>=4) break;

else i++; }

A.0 B.0 2 C.0 2 4 D.死循环,不断输出0

10、设变量a,b,c为整型变量,以下选项中存在语法错误的是__________。

A.c=b++=c++ B.c=a+b++ C.c=a+++b D.c=++a=b++

二、填空题

11、已知 int x,y,z; x=y=z=0;

求计算表达式++x||++y&&++z;后,x,y,z的值分别为______,______,______。 12、设有说明int x=1,y=1,z=1,c;执行语句c= --x&&--y|| !z--;后,x、y、z、c的值分别为______,______,______,______。

13、定义一个字符数组char *str=“abde\\x7\\13\\\\\\n4\\0”;则strlen(str)的值为 ______,sizeof(str)的值为 ______。

14、求∏/4=1-1/3+1/5-1/7+1/9……公式来求∏的值,直到最后一个项的绝对值小于10-4为止。

#include using namespace std; #include void main(void){ float n=1.0,t=1.0,pi=0.0; //n是分母,t是每一项。 int s=1; //分子

while(fabs(t)>=1e-4) { ______; n+=2;

______;

t=s/n; }

pi=pi*4;

cout<

15、下列程序的运行结果为:______。 #include void main( ){ char ss[]=\; char p;

for(int i=1;(p=ss[i])!='\\0';i++){ switch(p){

case 'A':cout<<\;continue; case 'B':++i;break; default:cout<<\;

case 'C':cout<<\;continue; }

cout<<\; }

cout<

三、编程题

1、编写程序:求100-1000以内的所有素数,并以每行10个数的形式输出。 2、编写程序,从键盘任意输入两个整数,求出它们的最大公约数和最小公倍数。 3、编写程序,从键盘输入一个整型数(不超过5位),判断该是几位数,逆序输出该数每一位上的数字,并输出各个数位上的数字之和。

第二章 练习题答案

选择题:1、B 2、A 3、C 4、C 5、B 6、D 7、D 8、C 9、D 10、A 填空题: 11、1,0,0 12、0,1,0,0 13、4,9

14、pi=pi+t; s=-1*s;

15、*&#*&

编程题: 答案1:

#include void main() {

int t=0,i; for(int n=100;n<1000;n++) { for(i=2;i<=n-1;i++) if(n%i==0) break; if(i>n-1) { cout<

} } }

答案2:

#include void main(void){ int x,y,t, max,min;

cout<<\输入两个整数(x,y):\<>x>>y;

if(x>y) {t=x;x=y;y=t;} for(int i=x; i>0; i--)

if(x%i==0&&y%i==0){max=i; break;} for( i=y;;i++) if(i%x==0&&i%y==0){min=i;break;} cout<

答案3

#include void main() {

int n,s=0,t=0;

cout<<\请输入一个(不超过5位)正整数:\ cin>>n; while(n) {

int i=n; cout<

cout<

cout<<\该正整数的各个位上的数字之和为\ cout<<\该数是\位数。\}

第三章 练 习 题

选择题:

1、已定义int a[5]={l00,200,300,400,500};int *P1=&a[0],若b=*++P1,则b和*P1的值分别为( )。

A.100 200 B.200 200 C.101 101 D.100 101

2、设有变量说明int a[ ][2]={{2,5}, {4,8}}; int *pa,(*pb)[2];则执行语句pa=&a[0][0]; pb=a;后, (*(pa+1))与(*(pb+1))的值为:______

A.5,4 B.&a[1][0],4 C.5,&a[1][0] D. &a[0][1], &a[1][0] 3、下列关于数组的应用中,( )是正确的。

A.int a[5]={1, 2, 3, 4, 5}; int b[5]; b=a; cout<

B.int a[5]={1, 2, 3, 4, 5}; int b[5]; strcpy(a,b); cout<

B.int a[][3]={{3,2,1},{1,2,3}}; C.im a[2][3]={1}

D.int a[2][]={{3,2,l},{1,2,3}}

5、下面给出的程序的输出结果不正确的是 _________ 。

A.char *sl,s2[]=“123”; sl=s2; cout<<*sl;结果:123 B.char *sl,s2[]=“123”; sl=s2; cout<

6、设有说明语句int a[10],*p1=a+4;则元素a[8]可以用p1表示为( )。 A.p1[8] B.p1[5] C.p1[3] D.p1[4]

7、设有说明语句char s[10],*p;p=s;则正确的是( )。

A.s=\

8、char *p[]={ \ A.输出的是元素p[2]的地址 B.输出的是字符串cdef C.输出的是字符c D.有语法错误

9、对于语句char s[20]=\正确的理解是( ) A.系统给s分配5个字节的空间,给p分配5个字节的空间。 B.系统给s分配20个字节的空间,给p分配4个字节的空间。 C.系统给s分配5个字节的空间,给p分配4个字节的空间。 D.数组s中的内容与指针变量p中的内容相同。 10、下列一维数组的定义正确的是( )

A.int a(5); B.int n=5,a[5];

C. const int n=32/6; int a[n]; D.#define S 5.0 int a[S]; 11、关于下列程序段,说法正确的是( )

int n=0;

while(n++<=1); cout<

A.运行结果为0 B、运行结果为1 C.运行结果为2 D.运行结果为3 12、下列程序段的输出结果是( )

int a[10]={1,2,3,4,5,6,7,8},*p; for(p=a;p

A.2468 B.1357 C.24680 D.13570

13、设有定义enum color{red,yellow=0,blue=8,white,green=2};

color c1=red,c2=white;则语句:cout<

A.0 9 B. 1 3 C. 0 3 D. 1 9 填空题:

1、已有定义int a[5]={1,3,5,7,9},*p1=&a[1],*p2=&a[3];则p2-p1的值为( ) , (int)p2-(int)p1的值为( ),*p2-*p1的值为( )。(注:一个整型变量在系统中占4个字节)。

2、对于定义的字符串char s1[ ]=“ef\\0\\123\\\\\\n89\\0”,s2[20]=“abc”;则strlen(s1)的值为( ), sizeof(s1)的值为 ( ) , sizeof(s2)的值为

( ) 。

3、下面程序实现判断字符c是否在字符数组a中。请完善程序。 #include void main(void)

{ char a[ ]=\ char c='i'; (1) ;

for( int i=0; a[i]!='\\0'; i++ ) if( (2) ){

pos=i+1; (3) ;} if( (4) )cout<<\在第\号元素位置上.\ else cout<<\没找到!\}

4、设有语句char s1[10]=\则输出结果是( )

5、对于定义的字符串char s1[]=\则strlen(s1)的值是( ),sizeof(s1)的值是( )。 6、#include void main(){

int a[3][4]={1,2,3,4,5,6,8,9,10},i,j,k;

for(i=0;i<3;i++) { k=(1);

for(j=3;j>0;j--) (2); (3)=k; }

for(i=0;i<3;i++)

{ for(j=0;j<4;j++)

cout<

编程题:

1、试定义一个整型数组,如:int a[10]={3,6,4,1,8,0,5,9,7,2},按照如下要求对数组元素进行处理:

(1) 对数组元素按照从小到大的顺序排序,并输出排序后的结果。

(2) 将排好序的数组元素每个元素循环后(右)移一位,并输出移动后的结果。

2、试定义一个二维数组b[4][5],分别用两种方法实现求数组元素的外围元素之和,并以矩阵形式输出二维数组元素和外围元素之和。

3、试定义一个二维数组t[3][4],将二维数组的每列元素循环后移一位,并以矩阵形式分别输出移动前和移动后的二维数组元素。

4、从键盘输入一个整型数12345,将这个数的各个数字分别存放到一个数组

b[10]中,求出这个数的反序数54321,并输出。用函数调用方法实现。

第四、五章 练习题

选择题

1、以下只有在使用时才为该类型变量分配内存的存储类型是___。 A.auto和 static B.auto和 register C.register和 static D.extern和 register

2.以下叙述中不正确的是___ 。 A.预处理命令行都必须以#号开始

B.在程序中凡是以#号开始的语句行都是预处理命令行

C.以下定义中C R是称为宏名的标识符:#define C R 145 D.宏替换不占用运行时间,只占编译时间

3.文件包含预处理语句中,当文件名用双引号括起来时,寻找被包含文件的方

式为___ 。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在目录搜索,再按系统设定的标准方式搜索 C.仅仅搜索当前目录

D.仅仅搜索源程序所在目录 4.设有宏定义:# define f(x) (-x*2)

执行语句: cout<

A.-14 B.5 C.2 D.-5 5.以下说法不正确的为____。

A.在不同函数中可以定义相同名字的变量 B.形参是局部变量

C.在函数内定义的变量只在本函数范围内有效

D.在函数内的复合语句中定义的变量在本函数范围内有效 6.以下程序的输出为 。

#include void main(){

static char c[ ][6]={\

static char *cp[ ]={c[0],c[1],c[2],c[3]}, **cpp=cp; cout<<**++cpp; }

A.F B.P C.A D.E

填空题

1.#include

void f(void)

{ static int i=2; int k=2; i*=2; k*=2;

cout<<\}

void main( )

{ f( ); f( ); }

该程序输出的第一行为 (1) ,第三行为 (2)

2.[程序]

#include void f1()

{ extern int a,b;

cout<

int a=5,b=10; void main()

{ extern int a,b; f1();

cout<

该程序输出的第一行为(3) ,第二行为(4) 3.[程序]

#include int a=2; void main() {

int b=2,c=3; ++a;c+=++b;

if(++a||++b||++c)

cout<

int a=3,c; c=b*3;a+=c;

cout<

a+=c;

cout<

该程序输出的第二行为 (5) ,第三行为 4. [程序]

#include int a=10;

int fun(int *a, int &b, int c) { static int e=1; int d=2;

(6)。 。

*a+=e++; b+=d; c+=::a++; e=*a+b+c; return e; }

void main(void)

{ int a=10,b=1,c=1;

cout<

cout<

cout<<::a+a+b+c<<'\\n'; }

该程序输出的第一行为 (7) ,第二行为(8) ,第三行为(9) 。 5.下列程序的运行结果为( ): #include void main(void) {

int a = 0,b = 1,c = 0,d = 20; if( a ) d = -10; else if( !b )

if( !c ) d=15; else d=25; cout<<“d=”<

? 求∏/4=1-1/3+1/5-1/7+1/9……公式来求∏的值,直到最后一个项的绝对值小于10-4为止。

#include #include void main(void)

{ float n=1.0,t=1.0,pi=0.0; //n是分母,t是每一项。 int s=1; //分子

while(fabs(t)>=1e-4) { pi=pi+t; n+=2; s=-s; t=s/n; } pi=pi*4;

cout<

第三章 练习题答案

选择题:

1、B 2、C 3、C 4、D 5、A 6、D 7、C 8、B 9、B 10、C 11、D 12、D 13、A 填空题: 1、2,8,4 2、2,10,20

3、(1)int pos=0;(2)a[i]==c;(3)break;(4)pos或pos!=0; 4、ent 5、2,10

6、(1)a[i][3] (2)a[i][j]=a[i][j-1] (3)a[i][0]

第四、五章练习题 答案

选择题

1、B 2、C 3、B 4、D 5、D 6、A 填空题 1、i=4 2、i=8 3、5 10 4、2 1 5、12,3,9 6、10,3,6 7、25 8、53 9、27

/*从键盘输入一个整型数12345,将这个数的各个数字分别存放到一个数组b[10]中,求出这个数的反序数54321,并输出*/ #include int fun(int b[],int x); void main(){

int x,k=0,b[10],s=0,t=1;

cout<<\ cin>>x;

k=fun(b,x);

/*方法一:for(int i=0;i

for(int i=k-1;i>=0;i--) { s+=t*b[i]; t=t*10; }

cout<

int fun(int b[],int x){ int i=0;

while(x){ b[i]=x; x/=10; i++; }

return i; }

从键盘上接收一个字符,判断该字符在字符串中是否存在,如果存在,就将其删掉,否则就将其添加到该字符串的末尾。

如字符串abc124,如果输入字符1,就删掉变为abc24,输入字符3,就添加到字符串末尾,变为abc1243 #include

char *search(char *s,char ch){ while(*s){

if(*s==ch)return s; else ++s;

} return 0; }

void dele(char *str,char ch){ char *p1=search(str,ch); char *p2=p1+1; while(*p2)

*p1++=*p2++; *p1='\\0'; }

void add(char *str,char ch){ char *p1=str; while(*p1) p1++; *p1++=ch; *p1='\\0'; }

void main(){

char str[100]=\ char c; cin>>c;

void (*fp)(char*,char); if(search(str,c)) fp=dele; else fp=add; fp(str,c);

cout<

综合练习题

一、选择题

1、若有以下定义和语句组,int a=-1,b=4,k;k=(a++<0)&&(!(b--<=0)); cout<<“a=”<

3、设有说明int a, b;执行语句b=(a=2*5,a*2),a+15;之后,b的值为( )。 A.10 B.25 C.20 D.35

4、若有定义int a[][3]={{1,10},{3,2},{4,5,6},{7,8,9}},则元素a[1][2]和a[2][2]的值为___。

A 10、6 B 0、6

C 10、5 D 5、8 5、设有以下语句组 , int x=2,a=1;

while(x) a=a+1;

则语句a=a+1执行的次数是 A 0 B 1 C 无限次 D 有限次

6、设有语句序列char s[10],*p=s;则对s[1]的地址表示不正确的是 A.s+1 B.s++ c.&s[0]+1 D p++ 7、设有如下定义 char *aa[2]={“abcd”,”ABCD”}; 则以下说法正确的是 。

A.aa数组元素的值分别是“abcd”,”ABCD”;

B.aa是指针变量,它指向含有两个数组元素的字符型一维数组;

C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符?a?,?A?的地址;

8、设有变量说明char s[]=“Program”, *p=s;则以下叙述正确的是__________。 A.s和p中存储的内容相同 B.strlen(s)等于strlen(p) C.sizeof(s)等于sizeof(p) D.sizeof(s)等于sizeof(*p)

9、若定义一个只允许在本源程序中使用的全局变量,则该变量的类型应为_____。

A、 auto B、 static C、extern D、register

二、填空题

1、语句 用于中止本次循环,立即进入下一次循环。

2、在定义函数时,类型前加上关键字 ,该函数就可能成为内联函数。 3、设有下列语句: int i=17; cin>>hex>>i; cout<<“i=”< class A{ int a; public:

A(){a=0;cout<<\调用缺省A\\n\

A(int x){ a=x; cout<<\调用A\\n\ void print( ){ cout<

class B:public A { int b1,b2; public:

B(){ b1=b2=0;cout<<“调用缺省B\\n”; } B(int i){ b1=i;b2=0;cout<<“调用B1\\n”; } B(int m,int n):A(m)

{ b1=m;b2=n;cout<<“调用B2\\n”; }

void show( ){ print(); cout<

void main( )

{ B c1,c2(2),c3(4,6); c1.show( ) ; c2.show( ) ; c3.show( ) ; }

程序共输出 行,其中第5行是 ,第8行是 ____ 5、class A{ public: int n; }; class B{ Public: int n; };

class C: public B, public A { int n; public:

void set(int x){ n=x; }

void show( ){cout<

void main() {

C c; c.set(6); c.show();}

程序输出的结果是 。

6、下列程序的功能是计算1-3+5-7……..-99+101,请完善程序。 #include void main() {

本文来源:https://www.bwwdw.com/article/f218.html

Top